aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2008-04-01 00:22:26 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-04-01 00:22:26 -0400
commit399f486286f44d55c4fff0e9cc5d712f2b443489 (patch)
tree0c2820b3e04232eaa96f08c1057b87728fb3e7a4
parent481419ec9fbdf3f4ec5389c7e91a81b4a7ebee8d (diff)
parenta9edadbf790d72adf6ebed476cb5caf7743e7e4a (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
-rw-r--r--Documentation/00-INDEX6
-rw-r--r--Documentation/acpi/dsdt-override.txt12
-rwxr-xr-xDocumentation/acpi/initramfs-add-dsdt.sh43
-rw-r--r--Documentation/fb/cmap_xfbdev.txt53
-rw-r--r--Documentation/fb/metronomefb.txt38
-rw-r--r--Documentation/feature-removal-schedule.txt10
-rw-r--r--Documentation/filesystems/proc.txt4
-rw-r--r--Documentation/hw_random.txt59
-rw-r--r--Documentation/i386/IO-APIC.txt2
-rw-r--r--Documentation/ide/ide.txt21
-rw-r--r--Documentation/kernel-parameters.txt9
-rw-r--r--Documentation/laptops/00-INDEX2
-rw-r--r--Documentation/laptops/acer-wmi.txt4
-rw-r--r--Documentation/laptops/laptop-mode.txt (renamed from Documentation/laptop-mode.txt)0
-rw-r--r--Documentation/lguest/lguest.c70
-rw-r--r--Documentation/lguest/lguest.txt19
-rw-r--r--Documentation/mca.txt17
-rw-r--r--Documentation/nmi_watchdog.txt3
-rw-r--r--Documentation/power/00-INDEX6
-rw-r--r--Documentation/power/pm.txt (renamed from Documentation/pm.txt)2
-rw-r--r--Documentation/power/pm_qos_interface.txt (renamed from Documentation/pm_qos_interface.txt)0
-rw-r--r--Documentation/power/power_supply_class.txt (renamed from Documentation/power_supply_class.txt)0
-rw-r--r--Documentation/thermal/sysfs-api.txt22
-rw-r--r--MAINTAINERS63
-rw-r--r--Makefile4
-rw-r--r--arch/alpha/Kconfig3
-rw-r--r--arch/alpha/kernel/pci_iommu.c12
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/common/it8152.c6
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig71
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig123
-rw-r--r--arch/arm/kernel/head-common.S3
-rw-r--r--arch/arm/kernel/head.S3
-rw-r--r--arch/arm/kernel/kprobes.c5
-rw-r--r--arch/arm/kernel/signal.c4
-rw-r--r--arch/arm/mach-at91/board-sam9263ek.c5
-rw-r--r--arch/arm/mach-at91/gpio.c7
-rw-r--r--arch/arm/mach-h720x/common.c12
-rw-r--r--arch/arm/mach-imx/dma.c12
-rw-r--r--arch/arm/mach-imx/irq.c6
-rw-r--r--arch/arm/mach-iop13xx/iq81340mc.c2
-rw-r--r--arch/arm/mach-iop13xx/iq81340sc.c2
-rw-r--r--arch/arm/mach-iop13xx/pci.c8
-rw-r--r--arch/arm/mach-iop13xx/setup.c2
-rw-r--r--arch/arm/mach-iop32x/glantank.c12
-rw-r--r--arch/arm/mach-ixp4xx/common-pci.c2
-rw-r--r--arch/arm/mach-ixp4xx/gtwx5715-pci.c2
-rw-r--r--arch/arm/mach-netx/generic.c6
-rw-r--r--arch/arm/mach-ns9xxx/gpio.c2
-rw-r--r--arch/arm/mach-omap1/board-h2.c4
-rw-r--r--arch/arm/mach-omap1/board-h3.c22
-rw-r--r--arch/arm/mach-omap1/pm.c2
-rw-r--r--arch/arm/mach-omap1/time.c12
-rw-r--r--arch/arm/mach-omap2/io.c6
-rw-r--r--arch/arm/mach-orion/addr-map.c14
-rw-r--r--arch/arm/mach-orion/common.c24
-rw-r--r--arch/arm/mach-orion/common.h6
-rw-r--r--arch/arm/mach-orion/dns323-setup.c1
-rw-r--r--arch/arm/mach-orion/gpio.c12
-rw-r--r--arch/arm/mach-orion/kurobox_pro-setup.c1
-rw-r--r--arch/arm/mach-orion/ts209-setup.c1
-rw-r--r--arch/arm/mach-pnx4008/clock.c2
-rw-r--r--arch/arm/mach-pnx4008/dma.c2
-rw-r--r--arch/arm/mach-pxa/cm-x270-pci.c2
-rw-r--r--arch/arm/mach-pxa/cm-x270.c4
-rw-r--r--arch/arm/mach-pxa/dma.c2
-rw-r--r--arch/arm/mach-pxa/em-x270.c2
-rw-r--r--arch/arm/mach-pxa/mainstone.c4
-rw-r--r--arch/arm/mach-pxa/trizeps4.c8
-rw-r--r--arch/arm/mach-sa1100/badge4.c6
-rw-r--r--arch/arm/mach-sa1100/cpu-sa1100.c2
-rw-r--r--arch/arm/mach-sa1100/dma.c8
-rw-r--r--arch/arm/mach-sa1100/h3600.c14
-rw-r--r--arch/arm/mm/proc-xscale.S4
-rw-r--r--arch/arm/plat-iop/pci.c2
-rw-r--r--arch/arm/plat-omap/Kconfig1
-rw-r--r--arch/arm/plat-omap/Makefile5
-rw-r--r--arch/arm/plat-omap/cpu-omap.c32
-rw-r--r--arch/arm/plat-omap/devices.c63
-rw-r--r--arch/arm/plat-omap/dma.c23
-rw-r--r--arch/arm/plat-omap/dmtimer.c2
-rw-r--r--arch/arm/plat-omap/gpio.c68
-rw-r--r--arch/arm/plat-s3c24xx/dma.c64
-rw-r--r--arch/avr32/kernel/setup.c1
-rw-r--r--arch/avr32/kernel/traps.c4
-rw-r--r--arch/mips/Kconfig2
-rw-r--r--arch/mips/Makefile2
-rw-r--r--arch/mips/au1000/common/dbdma.c34
-rw-r--r--arch/mips/defconfig1158
-rw-r--r--arch/mips/kernel/Makefile1
-rw-r--r--arch/mips/kernel/cpu-bugs64.c4
-rw-r--r--arch/mips/kernel/cpu-probe.c10
-rw-r--r--arch/mips/kernel/csrc-r4k.c7
-rw-r--r--arch/mips/kernel/head.S2
-rw-r--r--arch/mips/kernel/traps.c38
-rw-r--r--arch/mips/lib/ucmpdi2.c2
-rw-r--r--arch/mips/lib/uncached.c2
-rw-r--r--arch/mips/mips-boards/generic/time.c2
-rw-r--r--arch/mips/mipssim/sim_time.c2
-rw-r--r--arch/mips/mm/c-r3k.c2
-rw-r--r--arch/mips/mm/c-r4k.c30
-rw-r--r--arch/mips/mm/c-tx39.c2
-rw-r--r--arch/mips/mm/cache.c5
-rw-r--r--arch/mips/mm/cex-sb1.S4
-rw-r--r--arch/mips/mm/pg-r4k.c22
-rw-r--r--arch/mips/mm/pg-sb1.c4
-rw-r--r--arch/mips/mm/sc-ip22.c2
-rw-r--r--arch/mips/mm/sc-mips.c3
-rw-r--r--arch/mips/mm/sc-r5k.c2
-rw-r--r--arch/mips/mm/sc-rm7k.c2
-rw-r--r--arch/mips/mm/tlb-r3k.c2
-rw-r--r--arch/mips/mm/tlb-r4k.c10
-rw-r--r--arch/mips/mm/tlb-r8k.c4
-rw-r--r--arch/mips/mm/tlbex.c70
-rw-r--r--arch/mips/mm/uasm.c68
-rw-r--r--arch/mips/mm/uasm.h76
-rw-r--r--arch/mips/pci/pci-bcm1480.c5
-rw-r--r--arch/mips/pci/pci-ip27.c2
-rw-r--r--arch/mips/pci/pci.c2
-rw-r--r--arch/mips/pmc-sierra/yosemite/smp.c6
-rw-r--r--arch/mips/sgi-ip27/ip27-init.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-xtalk.c6
-rw-r--r--arch/parisc/Makefile3
-rw-r--r--arch/parisc/configs/default_defconfig (renamed from arch/parisc/defconfig)0
-rw-r--r--arch/parisc/kernel/firmware.c27
-rw-r--r--arch/parisc/kernel/hardware.c13
-rw-r--r--arch/parisc/kernel/head.S7
-rw-r--r--arch/parisc/kernel/pdc_cons.c30
-rw-r--r--arch/parisc/kernel/syscall_table.S5
-rw-r--r--arch/parisc/kernel/traps.c25
-rw-r--r--arch/powerpc/Makefile2
-rw-r--r--arch/powerpc/boot/Makefile22
-rw-r--r--arch/powerpc/boot/dts/lite5200b.dts2
-rw-r--r--arch/powerpc/boot/dts/mpc8377_mds.dts70
-rw-r--r--arch/powerpc/boot/dts/mpc8378_mds.dts70
-rw-r--r--arch/powerpc/boot/dts/mpc8379_mds.dts70
-rw-r--r--arch/powerpc/boot/dts/sbc8548.dts16
-rwxr-xr-xarch/powerpc/boot/wrapper10
-rw-r--r--arch/powerpc/configs/adder875-uboot_defconfig798
-rw-r--r--arch/powerpc/configs/adder875_defconfig (renamed from arch/powerpc/configs/adder875-redboot_defconfig)61
-rw-r--r--arch/powerpc/configs/cell_defconfig141
-rw-r--r--arch/powerpc/configs/celleb_defconfig117
-rw-r--r--arch/powerpc/configs/chrp32_defconfig165
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig74
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig56
-rw-r--r--arch/powerpc/configs/g5_defconfig137
-rw-r--r--arch/powerpc/configs/iseries_defconfig99
-rw-r--r--arch/powerpc/configs/linkstation_defconfig131
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig119
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig75
-rw-r--r--arch/powerpc/configs/mpc8313_rdb_defconfig114
-rw-r--r--arch/powerpc/configs/mpc8315_rdb_defconfig110
-rw-r--r--arch/powerpc/configs/mpc832x_mds_defconfig101
-rw-r--r--arch/powerpc/configs/mpc832x_rdb_defconfig106
-rw-r--r--arch/powerpc/configs/mpc834x_itx_defconfig111
-rw-r--r--arch/powerpc/configs/mpc834x_itxgp_defconfig109
-rw-r--r--arch/powerpc/configs/mpc834x_mds_defconfig104
-rw-r--r--arch/powerpc/configs/mpc836x_mds_defconfig102
-rw-r--r--arch/powerpc/configs/mpc837x_mds_defconfig197
-rw-r--r--arch/powerpc/configs/mpc837x_rdb_defconfig83
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig88
-rw-r--r--arch/powerpc/configs/mpc8540_ads_defconfig121
-rw-r--r--arch/powerpc/configs/mpc8544_ds_defconfig127
-rw-r--r--arch/powerpc/configs/mpc8560_ads_defconfig126
-rw-r--r--arch/powerpc/configs/mpc8568mds_defconfig106
-rw-r--r--arch/powerpc/configs/mpc8572_ds_defconfig127
-rw-r--r--arch/powerpc/configs/mpc85xx_cds_defconfig131
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig111
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig131
-rw-r--r--arch/powerpc/configs/mpc8641_hpcn_defconfig115
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig112
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig56
-rw-r--r--arch/powerpc/configs/pasemi_defconfig142
-rw-r--r--arch/powerpc/configs/pmac32_defconfig195
-rw-r--r--arch/powerpc/configs/ppc64_defconfig169
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig89
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig160
-rw-r--r--arch/powerpc/configs/ps3_defconfig103
-rw-r--r--arch/powerpc/configs/pseries_defconfig136
-rw-r--r--arch/powerpc/configs/sbc834x_defconfig78
-rw-r--r--arch/powerpc/configs/sbc8548_defconfig115
-rw-r--r--arch/powerpc/configs/sbc8560_defconfig124
-rw-r--r--arch/powerpc/configs/storcenter_defconfig102
-rw-r--r--arch/powerpc/configs/stx_gp3_defconfig154
-rw-r--r--arch/powerpc/configs/tqm8540_defconfig133
-rw-r--r--arch/powerpc/configs/tqm8541_defconfig133
-rw-r--r--arch/powerpc/configs/tqm8555_defconfig133
-rw-r--r--arch/powerpc/configs/tqm8560_defconfig133
-rw-r--r--arch/powerpc/kernel/head_8xx.S30
-rw-r--r--arch/powerpc/kernel/misc_32.S15
-rw-r--r--arch/powerpc/kernel/pci-common.c8
-rw-r--r--arch/powerpc/kernel/ppc_ksyms.c3
-rw-r--r--arch/powerpc/kernel/process.c16
-rw-r--r--arch/powerpc/kernel/ptrace.c10
-rw-r--r--arch/powerpc/mm/hash_utils_64.c15
-rw-r--r--arch/powerpc/mm/slb.c6
-rw-r--r--arch/powerpc/oprofile/cell/vma_map.c37
-rw-r--r--arch/powerpc/platforms/83xx/mpc837x_mds.c8
-rw-r--r--arch/powerpc/platforms/Kconfig1
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype7
-rw-r--r--arch/powerpc/platforms/cell/iommu.c41
-rw-r--r--arch/powerpc/platforms/cell/setup.c36
-rw-r--r--arch/powerpc/platforms/cell/spufs/context.c3
-rw-r--r--arch/powerpc/platforms/cell/spufs/run.c3
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c4
-rw-r--r--arch/powerpc/platforms/cell/spufs/spufs.h1
-rw-r--r--arch/powerpc/platforms/powermac/pic.c2
-rw-r--r--arch/powerpc/platforms/pseries/xics.c2
-rw-r--r--arch/powerpc/sysdev/bestcomm/bestcomm.c8
-rw-r--r--arch/powerpc/sysdev/ipic.c2
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe.c7
-rw-r--r--arch/ppc/kernel/head_8xx.S30
-rw-r--r--arch/s390/lib/uaccess_pt.c2
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/Makefile8
-rw-r--r--arch/sh/boot/Makefile4
-rw-r--r--arch/sh/kernel/cpu/sh2/entry.S1
-rw-r--r--arch/sh/kernel/smp.c2
-rw-r--r--arch/sparc/kernel/sys_sunos.c2
-rw-r--r--arch/sparc64/defconfig12
-rw-r--r--arch/sparc64/kernel/cpu.c10
-rw-r--r--arch/sparc64/kernel/ds.c3
-rw-r--r--arch/sparc64/kernel/entry.S30
-rw-r--r--arch/sparc64/kernel/entry.h196
-rw-r--r--arch/sparc64/kernel/head.S8
-rw-r--r--arch/sparc64/kernel/iommu.c8
-rw-r--r--arch/sparc64/kernel/irq.c21
-rw-r--r--arch/sparc64/kernel/process.c3
-rw-r--r--arch/sparc64/kernel/ptrace.c20
-rw-r--r--arch/sparc64/kernel/setup.c5
-rw-r--r--arch/sparc64/kernel/signal.c3
-rw-r--r--arch/sparc64/kernel/smp.c20
-rw-r--r--arch/sparc64/kernel/stacktrace.c4
-rw-r--r--arch/sparc64/kernel/sys_sparc.c14
-rw-r--r--arch/sparc64/kernel/sys_sparc32.c3
-rw-r--r--arch/sparc64/kernel/sys_sunos32.c2
-rw-r--r--arch/sparc64/kernel/systbls.h53
-rw-r--r--arch/sparc64/kernel/time.c66
-rw-r--r--arch/sparc64/kernel/trampoline.S188
-rw-r--r--arch/sparc64/kernel/traps.c49
-rw-r--r--arch/sparc64/mm/init.c43
-rw-r--r--arch/sparc64/mm/tlb.c3
-rw-r--r--arch/um/drivers/net_kern.c6
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/kernel/aperture_64.c3
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-smi.c39
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c42
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c3
-rw-r--r--arch/x86/kernel/e820_32.c26
-rw-r--r--arch/x86/kernel/e820_64.c27
-rw-r--r--arch/x86/kernel/head_32.S2
-rw-r--r--arch/x86/kernel/io_delay.c8
-rw-r--r--arch/x86/kernel/mfgpt_32.c1
-rw-r--r--arch/x86/kernel/pci-dma_64.c5
-rw-r--r--arch/x86/kernel/ptrace.c169
-rw-r--r--arch/x86/kernel/quirks.c2
-rw-r--r--arch/x86/kernel/reboot.c18
-rw-r--r--arch/x86/kernel/setup64.c14
-rw-r--r--arch/x86/kernel/setup_32.c9
-rw-r--r--arch/x86/kernel/setup_64.c2
-rw-r--r--arch/x86/kvm/mmu.c18
-rw-r--r--arch/x86/kvm/vmx.c7
-rw-r--r--arch/x86/lguest/boot.c108
-rw-r--r--arch/x86/lguest/i386_head.S15
-rw-r--r--arch/x86/mach-rdc321x/gpio.c199
-rw-r--r--arch/x86/mach-rdc321x/platform.c2
-rw-r--r--arch/x86/mach-visws/traps.c5
-rw-r--r--arch/x86/mm/discontig_32.c1
-rw-r--r--arch/x86/mm/fault.c10
-rw-r--r--arch/x86/mm/highmem_32.c6
-rw-r--r--arch/x86/mm/hugetlbpage.c2
-rw-r--r--arch/x86/mm/ioremap.c12
-rw-r--r--arch/x86/mm/numa_64.c3
-rw-r--r--arch/x86/mm/pageattr.c2
-rw-r--r--arch/x86/xen/enlighten.c47
-rw-r--r--arch/x86/xen/xen-asm.S9
-rw-r--r--block/genhd.c4
-rw-r--r--crypto/async_tx/async_memcpy.c6
-rw-r--r--crypto/async_tx/async_memset.c6
-rw-r--r--crypto/async_tx/async_tx.c6
-rw-r--r--crypto/async_tx/async_xor.c14
-rw-r--r--drivers/acpi/Kconfig26
-rw-r--r--drivers/acpi/asus_acpi.c2
-rw-r--r--drivers/acpi/battery.c11
-rw-r--r--drivers/acpi/bus.c2
-rw-r--r--drivers/acpi/button.c1
-rw-r--r--drivers/acpi/dock.c1
-rw-r--r--drivers/acpi/ec.c6
-rw-r--r--drivers/acpi/osl.c86
-rw-r--r--drivers/acpi/pci_irq.c98
-rw-r--r--drivers/acpi/pci_root.c2
-rw-r--r--drivers/acpi/processor_core.c25
-rw-r--r--drivers/acpi/processor_idle.c19
-rw-r--r--drivers/acpi/sbshc.c1
-rw-r--r--drivers/acpi/scan.c23
-rw-r--r--drivers/acpi/sleep/main.c2
-rw-r--r--drivers/acpi/system.c2
-rw-r--r--drivers/acpi/thermal.c12
-rw-r--r--drivers/acpi/toshiba_acpi.c7
-rw-r--r--drivers/acpi/utilities/utdebug.c2
-rw-r--r--drivers/acpi/utilities/utobject.c2
-rw-r--r--drivers/acpi/utils.c6
-rw-r--r--drivers/acpi/video.c64
-rw-r--r--drivers/acpi/wmi.c10
-rw-r--r--drivers/ata/Kconfig1
-rw-r--r--drivers/ata/ahci.c78
-rw-r--r--drivers/ata/libata-acpi.c96
-rw-r--r--drivers/ata/libata-core.c48
-rw-r--r--drivers/ata/libata-eh.c2
-rw-r--r--drivers/ata/libata-scsi.c14
-rw-r--r--drivers/ata/pata_ali.c2
-rw-r--r--drivers/ata/pata_it821x.c2
-rw-r--r--drivers/ata/pata_sil680.c6
-rw-r--r--drivers/ata/sata_promise.c109
-rw-r--r--drivers/atm/firestream.c4
-rw-r--r--drivers/atm/fore200e.c114
-rw-r--r--drivers/atm/fore200e.h106
-rw-r--r--drivers/atm/idt77252.c12
-rw-r--r--drivers/base/core.c5
-rw-r--r--drivers/base/driver.c5
-rw-r--r--drivers/block/Kconfig10
-rw-r--r--drivers/block/Makefile1
-rw-r--r--drivers/block/floppy.c5
-rw-r--r--drivers/block/ps2esdi.c1079
-rw-r--r--drivers/block/viodasd.c3
-rw-r--r--drivers/block/virtio_blk.c1
-rw-r--r--drivers/bluetooth/hci_usb.c3
-rw-r--r--drivers/char/drm/ati_pcigart.c102
-rw-r--r--drivers/char/drm/drmP.h3
-rw-r--r--drivers/char/drm/drm_fops.c7
-rw-r--r--drivers/char/drm/drm_lock.c35
-rw-r--r--drivers/char/drm/drm_pciids.h7
-rw-r--r--drivers/char/drm/drm_scatter.c11
-rw-r--r--drivers/char/drm/drm_vm.c20
-rw-r--r--drivers/char/drm/i915_dma.c3
-rw-r--r--drivers/char/drm/r128_cce.c1
-rw-r--r--drivers/char/drm/r300_cmdbuf.c54
-rw-r--r--drivers/char/drm/radeon_cp.c1
-rw-r--r--drivers/char/drm/radeon_drm.h12
-rw-r--r--drivers/char/drm/radeon_mem.c8
-rw-r--r--drivers/char/drm/via_dma.c59
-rw-r--r--drivers/char/drm/via_dmablit.c2
-rw-r--r--drivers/char/hw_random/Kconfig9
-rw-r--r--drivers/char/n_tty.c2
-rw-r--r--drivers/char/nozomi.c20
-rw-r--r--drivers/char/riscom8.c2
-rw-r--r--drivers/char/rocket.c37
-rw-r--r--drivers/char/rocket_int.h83
-rw-r--r--drivers/connector/cn_queue.c2
-rw-r--r--drivers/cpuidle/cpuidle.c4
-rw-r--r--drivers/cpuidle/sysfs.c10
-rw-r--r--drivers/crypto/hifn_795x.c28
-rw-r--r--drivers/dma/dmaengine.c2
-rw-r--r--drivers/dma/fsldma.c88
-rw-r--r--drivers/dma/fsldma.h48
-rw-r--r--drivers/dma/ioat_dca.c4
-rw-r--r--drivers/dma/iop-adma.c32
-rw-r--r--drivers/firewire/Kconfig50
-rw-r--r--drivers/firewire/fw-ohci.c108
-rw-r--r--drivers/firewire/fw-sbp2.c36
-rw-r--r--drivers/firewire/fw-topology.c3
-rw-r--r--drivers/firewire/fw-transaction.c8
-rw-r--r--drivers/firewire/fw-transaction.h6
-rw-r--r--drivers/hid/hid-core.c2
-rw-r--r--drivers/hid/hid-input.c22
-rw-r--r--drivers/hid/usbhid/hid-core.c2
-rw-r--r--drivers/hid/usbhid/hid-quirks.c6
-rw-r--r--drivers/hwmon/Kconfig5
-rw-r--r--drivers/hwmon/ibmpex.c13
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/i2c/busses/i2c-amd756.c2
-rw-r--r--drivers/i2c/busses/i2c-omap.c36
-rw-r--r--drivers/i2c/chips/Makefile7
-rw-r--r--drivers/i2c/i2c-core.c10
-rw-r--r--drivers/ide/ide-iops.c1
-rw-r--r--drivers/ide/ide-lib.c10
-rw-r--r--drivers/ide/ide-probe.c5
-rw-r--r--drivers/ide/ide-tape.c5
-rw-r--r--drivers/ide/ide-taskfile.c36
-rw-r--r--drivers/ide/ide.c20
-rw-r--r--drivers/ieee1394/sbp2.c5
-rw-r--r--drivers/infiniband/core/addr.c8
-rw-r--r--drivers/infiniband/core/cm.c2
-rw-r--r--drivers/infiniband/core/cma.c24
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_common.h2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c28
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_mad.c7
-rw-r--r--drivers/infiniband/hw/ipath/ipath_qp.c13
-rw-r--r--drivers/infiniband/hw/ipath/ipath_rc.c4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_registers.h2
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c3
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_cm.c9
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c9
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c2
-rw-r--r--drivers/input/evdev.c3
-rw-r--r--drivers/input/misc/ixp4xx-beeper.c1
-rw-r--r--drivers/isdn/i4l/isdn_common.c4
-rw-r--r--drivers/isdn/i4l/isdn_v110.c2
-rw-r--r--drivers/lguest/Makefile8
-rw-r--r--drivers/lguest/core.c18
-rw-r--r--drivers/lguest/hypercalls.c11
-rw-r--r--drivers/lguest/interrupts_and_traps.c7
-rw-r--r--drivers/lguest/lguest_device.c11
-rw-r--r--drivers/lguest/lguest_user.c32
-rw-r--r--drivers/lguest/page_tables.c32
-rw-r--r--drivers/lguest/x86/core.c33
-rw-r--r--drivers/lguest/x86/switcher_32.S8
-rw-r--r--drivers/macintosh/via-pmu-backlight.c5
-rw-r--r--drivers/macintosh/via-pmu.c2
-rw-r--r--drivers/md/dm-crypt.c58
-rw-r--r--drivers/md/dm-io.c2
-rw-r--r--drivers/md/dm-raid1.c4
-rw-r--r--drivers/md/dm-snap.c2
-rw-r--r--drivers/md/kcopyd.c10
-rw-r--r--drivers/md/kcopyd.h4
-rw-r--r--drivers/md/md.c12
-rw-r--r--drivers/md/raid5.c6
-rw-r--r--drivers/media/common/saa7146_core.c13
-rw-r--r--drivers/media/common/saa7146_fops.c2
-rw-r--r--drivers/media/dvb/dvb-core/dvb_net.c4
-rw-r--r--drivers/media/dvb/dvb-usb/opera1.c2
-rw-r--r--drivers/media/video/Kconfig4
-rw-r--r--drivers/media/video/adv7170.c2
-rw-r--r--drivers/media/video/adv7175.c2
-rw-r--r--drivers/media/video/bt819.c2
-rw-r--r--drivers/media/video/bt856.c2
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c1
-rw-r--r--drivers/media/video/cx88/cx88-cards.c5
-rw-r--r--drivers/media/video/cx88/cx88-video.c2
-rw-r--r--drivers/media/video/dpc7146.c2
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c7
-rw-r--r--drivers/media/video/ivtv/ivtv-firmware.c8
-rw-r--r--drivers/media/video/mt20xx.c2
-rw-r--r--drivers/media/video/mxb.c5
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-ctrl.c4
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c6
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-io.c2
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-ioread.c2
-rw-r--r--drivers/media/video/pwc/pwc-if.c7
-rw-r--r--drivers/media/video/saa7110.c4
-rw-r--r--drivers/media/video/saa7111.c2
-rw-r--r--drivers/media/video/saa7114.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c41
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c5
-rw-r--r--drivers/media/video/saa7185.c2
-rw-r--r--drivers/media/video/tda9840.c2
-rw-r--r--drivers/media/video/tea6415c.c2
-rw-r--r--drivers/media/video/tea6420.c2
-rw-r--r--drivers/media/video/tvp5150.c8
-rw-r--r--drivers/media/video/usbvideo/usbvideo.c9
-rw-r--r--drivers/media/video/v4l1-compat.c50
-rw-r--r--drivers/media/video/zoran_driver.c2
-rw-r--r--drivers/media/video/zr364xx.c2
-rw-r--r--drivers/memstick/core/memstick.c9
-rw-r--r--drivers/memstick/core/mspro_block.c94
-rw-r--r--drivers/memstick/host/jmb38x_ms.c113
-rw-r--r--drivers/memstick/host/tifm_ms.c21
-rw-r--r--drivers/message/fusion/mptbase.c276
-rw-r--r--drivers/message/fusion/mptscsih.c11
-rw-r--r--drivers/mfd/asic3.c4
-rw-r--r--drivers/misc/Kconfig1
-rw-r--r--drivers/misc/acer-wmi.c44
-rw-r--r--drivers/misc/fujitsu-laptop.c2
-rw-r--r--drivers/misc/ibmasm/module.c2
-rw-r--r--drivers/misc/lkdtm.c2
-rw-r--r--drivers/misc/sony-laptop.c2
-rw-r--r--drivers/mmc/core/Makefile2
-rw-r--r--drivers/mmc/core/bus.c23
-rw-r--r--drivers/mmc/core/bus.h11
-rw-r--r--drivers/mmc/core/core.h2
-rw-r--r--drivers/mmc/core/mmc.c90
-rw-r--r--drivers/mmc/core/sd.c95
-rw-r--r--drivers/mmc/core/sdio.c2
-rw-r--r--drivers/mmc/core/sysfs.c43
-rw-r--r--drivers/mmc/core/sysfs.h26
-rw-r--r--drivers/mmc/host/tifm_sd.c2
-rw-r--r--drivers/mtd/devices/block2mtd.c1
-rw-r--r--drivers/mtd/maps/physmap.c15
-rw-r--r--drivers/mtd/nand/rtc_from4.c2
-rw-r--r--drivers/net/3c501.c16
-rw-r--r--drivers/net/Kconfig20
-rw-r--r--drivers/net/ac3200.c7
-rw-r--r--drivers/net/apne.c7
-rw-r--r--drivers/net/appletalk/ltpc.c3
-rw-r--r--drivers/net/arcnet/capmode.c6
-rw-r--r--drivers/net/atarilance.c5
-rw-r--r--drivers/net/atl1/atl1_main.c3
-rw-r--r--drivers/net/b44.c5
-rw-r--r--drivers/net/bnx2x.c36
-rw-r--r--drivers/net/bonding/bond_3ad.c4
-rw-r--r--drivers/net/bonding/bond_alb.c6
-rw-r--r--drivers/net/bonding/bond_main.c5
-rw-r--r--drivers/net/bonding/bonding.h4
-rw-r--r--drivers/net/cxgb3/sge.c30
-rw-r--r--drivers/net/dm9000.c12
-rw-r--r--drivers/net/e100.c31
-rw-r--r--drivers/net/ehea/ehea.h2
-rw-r--r--drivers/net/ehea/ehea_main.c2
-rw-r--r--drivers/net/enc28j60.c3
-rw-r--r--drivers/net/epic100.c47
-rw-r--r--drivers/net/fec_mpc52xx_phy.c3
-rw-r--r--drivers/net/forcedeth.c118
-rw-r--r--drivers/net/ibm_newemac/core.c7
-rw-r--r--drivers/net/ibm_newemac/tah.c4
-rw-r--r--drivers/net/ifb.c15
-rw-r--r--drivers/net/igb/e1000_82575.h42
-rw-r--r--drivers/net/igb/e1000_hw.h82
-rw-r--r--drivers/net/igb/igb_main.c42
-rw-r--r--drivers/net/ioc3-eth.c3
-rw-r--r--drivers/net/ipg.c10
-rw-r--r--drivers/net/ixgb/ixgb_main.c2
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c2
-rw-r--r--drivers/net/mv643xx_eth.c1
-rw-r--r--drivers/net/ne2k-pci.c8
-rw-r--r--drivers/net/netxen/netxen_nic.h27
-rw-r--r--drivers/net/netxen/netxen_nic_ethtool.c8
-rw-r--r--drivers/net/netxen/netxen_nic_hdr.h12
-rw-r--r--drivers/net/netxen/netxen_nic_hw.c2
-rw-r--r--drivers/net/netxen/netxen_nic_init.c201
-rw-r--r--drivers/net/netxen/netxen_nic_isr.c19
-rw-r--r--drivers/net/netxen/netxen_nic_main.c265
-rw-r--r--drivers/net/netxen/netxen_nic_phan_reg.h3
-rw-r--r--drivers/net/pcmcia/axnet_cs.c2
-rw-r--r--drivers/net/phy/Kconfig1
-rw-r--r--drivers/net/phy/davicom.c17
-rw-r--r--drivers/net/phy/marvell.c129
-rw-r--r--drivers/net/pppol2tp.c69
-rw-r--r--drivers/net/ps3_gelic_wireless.c29
-rw-r--r--drivers/net/r6040.c10
-rw-r--r--drivers/net/s2io.c5
-rw-r--r--drivers/net/skge.c6
-rw-r--r--drivers/net/smc91x.h8
-rw-r--r--drivers/net/sungem.c2
-rw-r--r--drivers/net/tg3.c6
-rw-r--r--drivers/net/tokenring/smctr.c2
-rw-r--r--drivers/net/tulip/de2104x.c13
-rw-r--r--drivers/net/ucc_geth.c6
-rw-r--r--drivers/net/usb/dm9601.c6
-rw-r--r--drivers/net/usb/rndis_host.c21
-rw-r--r--drivers/net/usb/rtl8150.c2
-rw-r--r--drivers/net/virtio_net.c22
-rw-r--r--drivers/net/wan/farsync.c17
-rw-r--r--drivers/net/wan/sbni.c2
-rw-r--r--drivers/net/wireless/arlan-proc.c8
-rw-r--r--drivers/net/wireless/ath5k/hw.c2
-rw-r--r--drivers/net/wireless/b43/debugfs.c4
-rw-r--r--drivers/net/wireless/b43/dma.c32
-rw-r--r--drivers/net/wireless/b43/main.c2
-rw-r--r--drivers/net/wireless/b43/phy.c2
-rw-r--r--drivers/net/wireless/iwlwifi/Kconfig4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c4
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c2
-rw-r--r--drivers/net/wireless/p54usb.c1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h3
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c38
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00lib.h20
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00rfkill.c116
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c7
-rw-r--r--drivers/net/wireless/wavelan_cs.h2
-rw-r--r--drivers/parisc/pdc_stable.c6
-rw-r--r--drivers/parisc/sba_iommu.c4
-rw-r--r--drivers/pci/bus.c6
-rw-r--r--drivers/pci/hotplug/pciehp_core.c2
-rw-r--r--drivers/pci/intel-iommu.c7
-rw-r--r--drivers/pci/pci-acpi.c24
-rw-r--r--drivers/pci/pci.c21
-rw-r--r--drivers/pci/quirks.c11
-rw-r--r--drivers/pci/setup-bus.c5
-rw-r--r--drivers/pnp/isapnp/core.c25
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c8
-rw-r--r--drivers/pnp/quirks.c100
-rw-r--r--drivers/rtc/Kconfig2
-rw-r--r--drivers/rtc/rtc-at91sam9.c6
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/a100u2w.c9
-rw-r--r--drivers/scsi/advansys.c2
-rw-r--r--drivers/scsi/arcmsr/arcmsr.h14
-rw-r--r--drivers/scsi/gdth.c7
-rw-r--r--drivers/scsi/scsi_lib.c5
-rw-r--r--drivers/scsi/scsi_sysfs.c2
-rw-r--r--drivers/scsi/sd.c1
-rw-r--r--drivers/scsi/sr.c1
-rw-r--r--drivers/serial/8250_pci.c7
-rw-r--r--drivers/serial/sh-sci.c4
-rw-r--r--drivers/sn/ioc3.c22
-rw-r--r--drivers/spi/au1550_spi.c4
-rw-r--r--drivers/spi/spi_bitbang.c8
-rw-r--r--drivers/thermal/Kconfig1
-rw-r--r--drivers/uio/uio.c2
-rw-r--r--drivers/usb/core/message.c5
-rw-r--r--drivers/usb/core/quirks.c3
-rw-r--r--drivers/usb/gadget/inode.c4
-rw-r--r--drivers/usb/host/ehci-pci.c14
-rw-r--r--drivers/usb/serial/pl2303.c1
-rw-r--r--drivers/usb/serial/pl2303.h1
-rw-r--r--drivers/usb/serial/sierra.c18
-rw-r--r--drivers/usb/storage/isd200.c6
-rw-r--r--drivers/usb/storage/transport.c3
-rw-r--r--drivers/usb/storage/unusual_devs.h11
-rw-r--r--drivers/video/Kconfig14
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/bf54x-lq043fb.c2
-rw-r--r--drivers/video/bfin-t350mcqb-fb.c38
-rw-r--r--drivers/video/fb_defio.c22
-rw-r--r--drivers/video/i810/i810_main.c2
-rw-r--r--drivers/video/metronomefb.c999
-rw-r--r--drivers/virtio/virtio_balloon.c4
-rw-r--r--drivers/virtio/virtio_pci.c22
-rw-r--r--drivers/virtio/virtio_ring.c1
-rw-r--r--fs/afs/cell.c15
-rw-r--r--fs/afs/internal.h1
-rw-r--r--fs/afs/mntpt.c8
-rw-r--r--fs/afs/super.c1
-rw-r--r--fs/aio.c8
-rw-r--r--fs/anon_inodes.c18
-rw-r--r--fs/bio.c2
-rw-r--r--fs/buffer.c17
-rw-r--r--fs/cifs/cifs_dfs_ref.c19
-rw-r--r--fs/cifs/cifsacl.c29
-rw-r--r--fs/cifs/cifsproto.h9
-rw-r--r--fs/cifs/dir.c5
-rw-r--r--fs/cifs/dns_resolve.c8
-rw-r--r--fs/cifs/file.c4
-rw-r--r--fs/cifs/inode.c161
-rw-r--r--fs/cifs/link.c2
-rw-r--r--fs/dquot.c2
-rw-r--r--fs/ecryptfs/dentry.c2
-rw-r--r--fs/ext3/acl.c8
-rw-r--r--fs/ext3/resize.c4
-rw-r--r--fs/ext3/xattr.c4
-rw-r--r--fs/file_table.c6
-rw-r--r--fs/fs-writeback.c6
-rw-r--r--fs/hfs/brec.c18
-rw-r--r--fs/hppfs/hppfs_kern.c435
-rw-r--r--fs/hugetlbfs/inode.c2
-rw-r--r--fs/isofs/compress.c11
-rw-r--r--fs/jbd/journal.c9
-rw-r--r--fs/jbd/recovery.c2
-rw-r--r--fs/jbd/revoke.c4
-rw-r--r--fs/jbd/transaction.c8
-rw-r--r--fs/jbd2/journal.c12
-rw-r--r--fs/jbd2/recovery.c2
-rw-r--r--fs/jbd2/revoke.c4
-rw-r--r--fs/locks.c4
-rw-r--r--fs/namei.c69
-rw-r--r--fs/namespace.c200
-rw-r--r--fs/nfs/read.c5
-rw-r--r--fs/nfs/super.c4
-rw-r--r--fs/nfs/write.c8
-rw-r--r--fs/nfsd/nfsfh.c4
-rw-r--r--fs/open.c12
-rw-r--r--fs/pipe.c19
-rw-r--r--fs/pnode.c2
-rw-r--r--fs/proc/base.c25
-rw-r--r--fs/proc/generic.c26
-rw-r--r--fs/proc/internal.h7
-rw-r--r--fs/proc/proc_net.c117
-rw-r--r--fs/proc/task_mmu.c68
-rw-r--r--fs/reiserfs/do_balan.c8
-rw-r--r--fs/reiserfs/fix_node.c8
-rw-r--r--fs/reiserfs/lbalance.c2
-rw-r--r--fs/reiserfs/namei.c2
-rw-r--r--fs/reiserfs/xattr.c110
-rw-r--r--fs/romfs/inode.c30
-rw-r--r--fs/smbfs/smbiod.c2
-rw-r--r--fs/super.c7
-rw-r--r--fs/sysfs/file.c8
-rw-r--r--fs/ufs/balloc.c4
-rw-r--r--include/asm-arm/arch-at91/at91cap9.h7
-rw-r--r--include/asm-arm/arch-omap/board-h3.h2
-rw-r--r--include/asm-arm/arch-omap/common.h9
-rw-r--r--include/asm-arm/arch-omap/dsp_common.h8
-rw-r--r--include/asm-arm/arch-omap/gpioexpander.h11
-rw-r--r--include/asm-arm/arch-s3c2410/irqs.h2
-rw-r--r--include/asm-arm/pgtable-nommu.h2
-rw-r--r--include/asm-arm/plat-s3c/uncompress.h4
-rw-r--r--include/asm-arm/proc-fns.h4
-rw-r--r--include/asm-avr32/byteorder.h6
-rw-r--r--include/asm-frv/system.h4
-rw-r--r--include/asm-h8300/uaccess.h11
-rw-r--r--include/asm-mips/cacheflush.h2
-rw-r--r--include/asm-mips/highmem.h1
-rw-r--r--include/asm-mips/mach-ip27/cpu-feature-overrides.h4
-rw-r--r--include/asm-mips/mach-jmr3927/ioremap.h2
-rw-r--r--include/asm-mips/mach-lasat/irq.h2
-rw-r--r--include/asm-mips/pgtable-32.h2
-rw-r--r--include/asm-mips/time.h5
-rw-r--r--include/asm-parisc/elf.h22
-rw-r--r--include/asm-parisc/fixmap.h9
-rw-r--r--include/asm-parisc/futex.h10
-rw-r--r--include/asm-parisc/pdc.h3
-rw-r--r--include/asm-parisc/pgalloc.h4
-rw-r--r--include/asm-parisc/pgtable.h8
-rw-r--r--include/asm-parisc/unistd.h5
-rw-r--r--include/asm-powerpc/pgtable-ppc32.h8
-rw-r--r--include/asm-ppc/pgtable.h8
-rw-r--r--include/asm-sh/byteorder.h15
-rw-r--r--include/asm-sh/posix_types.h6
-rw-r--r--include/asm-sparc64/backoff.h3
-rw-r--r--include/asm-sparc64/cpudata.h2
-rw-r--r--include/asm-sparc64/dcu.h41
-rw-r--r--include/asm-sparc64/hvtramp.h2
-rw-r--r--include/asm-sparc64/irq.h1
-rw-r--r--include/asm-sparc64/pgtable.h12
-rw-r--r--include/asm-sparc64/processor.h3
-rw-r--r--include/asm-sparc64/spitfire.h2
-rw-r--r--include/asm-sparc64/stacktrace.h6
-rw-r--r--include/asm-sparc64/timer.h9
-rw-r--r--include/asm-x86/cmpxchg_32.h32
-rw-r--r--include/asm-x86/e820_32.h2
-rw-r--r--include/asm-x86/e820_64.h2
-rw-r--r--include/asm-x86/io_32.h6
-rw-r--r--include/asm-x86/io_64.h6
-rw-r--r--include/asm-x86/lguest_hcall.h2
-rw-r--r--include/asm-x86/mach-rdc321x/gpio.h9
-rw-r--r--include/asm-x86/mach-rdc321x/rdc321x_defs.h8
-rw-r--r--include/asm-x86/page.h4
-rw-r--r--include/asm-x86/pgtable.h2
-rw-r--r--include/asm-x86/sync_bitops.h9
-rw-r--r--include/linux/Kbuild4
-rw-r--r--include/linux/bitops.h40
-rw-r--r--include/linux/compat.h4
-rw-r--r--include/linux/cpuidle.h4
-rw-r--r--include/linux/dmaengine.h2
-rw-r--r--include/linux/ethtool.h1
-rw-r--r--include/linux/exportfs.h4
-rw-r--r--include/linux/genhd.h30
-rw-r--r--include/linux/hardirq.h7
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/in.h2
-rw-r--r--include/linux/jbd.h11
-rw-r--r--include/linux/lguest_launcher.h6
-rw-r--r--include/linux/libata.h10
-rw-r--r--include/linux/memstick.h1
-rw-r--r--include/linux/mm.h13
-rw-r--r--include/linux/mount.h2
-rw-r--r--include/linux/netfilter/nfnetlink_compat.h2
-rw-r--r--include/linux/pci.h7
-rw-r--r--include/linux/pkt_cls.h8
-rw-r--r--include/linux/pmu.h9
-rw-r--r--include/linux/pnp.h2
-rw-r--r--include/linux/proc_fs.h3
-rw-r--r--include/linux/ps2esdi.h98
-rw-r--r--include/linux/rcupreempt.h4
-rw-r--r--include/linux/sched.h10
-rw-r--r--include/linux/security.h3
-rw-r--r--include/linux/topology.h3
-rw-r--r--include/linux/usb/quirks.h3
-rw-r--r--include/linux/usb_usual.h4
-rw-r--r--include/linux/virtio.h5
-rw-r--r--include/net/bluetooth/bluetooth.h2
-rw-r--r--include/net/dst.h23
-rw-r--r--include/net/irda/irttp.h6
-rw-r--r--include/net/neighbour.h4
-rw-r--r--include/net/net_namespace.h1
-rw-r--r--include/net/netfilter/nf_conntrack_extend.h1
-rw-r--r--include/net/sctp/sctp.h12
-rw-r--r--include/net/xfrm.h31
-rw-r--r--init/initramfs.c8
-rw-r--r--init/main.c7
-rw-r--r--kernel/acct.c23
-rw-r--r--kernel/audit.c17
-rw-r--r--kernel/cgroup.c4
-rw-r--r--kernel/fork.c2
-rw-r--r--kernel/futex.c6
-rw-r--r--kernel/futex_compat.c2
-rw-r--r--kernel/marker.c31
-rw-r--r--kernel/power/Kconfig2
-rw-r--r--kernel/power/snapshot.c41
-rw-r--r--kernel/printk.c83
-rw-r--r--kernel/relay.c12
-rw-r--r--kernel/sched.c115
-rw-r--r--kernel/sched_debug.c1
-rw-r--r--kernel/sched_fair.c291
-rw-r--r--kernel/time/clocksource.c16
-rw-r--r--kernel/time/timekeeping.c4
-rw-r--r--kernel/timer.c10
-rw-r--r--lib/devres.c25
-rw-r--r--lib/iomap.c2
-rw-r--r--lib/kobject_uevent.c2
-rw-r--r--lib/swiotlb.c30
-rw-r--r--mm/bootmem.c25
-rw-r--r--mm/filemap.c20
-rw-r--r--mm/fremap.c2
-rw-r--r--mm/highmem.c30
-rw-r--r--mm/hugetlb.c17
-rw-r--r--mm/memcontrol.c2
-rw-r--r--mm/oom_kill.c9
-rw-r--r--mm/pagewalk.c10
-rw-r--r--mm/readahead.c5
-rw-r--r--mm/rmap.c13
-rw-r--r--mm/shmem.c25
-rw-r--r--mm/slab.c9
-rw-r--r--mm/slub.c17
-rw-r--r--mm/sparse-vmemmap.c8
-rw-r--r--mm/swap.c5
-rw-r--r--mm/swap_state.c2
-rw-r--r--mm/tiny-shmem.c10
-rw-r--r--mm/vmalloc.c6
-rw-r--r--mm/vmscan.c27
-rw-r--r--net/8021q/vlan_dev.c4
-rw-r--r--net/9p/trans_fd.c4
-rw-r--r--net/atm/clip.c19
-rw-r--r--net/atm/lec.c4
-rw-r--r--net/ax25/TODO4
-rw-r--r--net/bluetooth/bnep/bnep.h2
-rw-r--r--net/bluetooth/bnep/sock.c4
-rw-r--r--net/bluetooth/hci_core.c4
-rw-r--r--net/bluetooth/hci_sock.c4
-rw-r--r--net/bridge/br_fdb.c2
-rw-r--r--net/core/dev.c4
-rw-r--r--net/core/neighbour.c23
-rw-r--r--net/core/netpoll.c6
-rw-r--r--net/core/sock.c4
-rw-r--r--net/ipv4/af_inet.c2
-rw-r--r--net/ipv4/esp4.c2
-rw-r--r--net/ipv4/fib_trie.c7
-rw-r--r--net/ipv4/icmp.c6
-rw-r--r--net/ipv4/ip_fragment.c2
-rw-r--r--net/ipv4/ip_sockglue.c2
-rw-r--r--net/ipv4/ipconfig.c9
-rw-r--r--net/ipv4/netfilter/ipt_recent.c2
-rw-r--r--net/ipv4/tcp.c4
-rw-r--r--net/ipv4/tcp_output.c14
-rw-r--r--net/ipv4/xfrm4_mode_beet.c11
-rw-r--r--net/ipv4/xfrm4_mode_tunnel.c2
-rw-r--r--net/ipv4/xfrm4_output.c2
-rw-r--r--net/ipv4/xfrm4_state.c2
-rw-r--r--net/ipv6/Kconfig5
-rw-r--r--net/ipv6/ndisc.c24
-rw-r--r--net/ipv6/xfrm6_mode_beet.c1
-rw-r--r--net/ipv6/xfrm6_mode_tunnel.c2
-rw-r--r--net/ipv6/xfrm6_output.c2
-rw-r--r--net/ipv6/xfrm6_state.c2
-rw-r--r--net/irda/irnet/irnet.h2
-rw-r--r--net/key/af_key.c2
-rw-r--r--net/netfilter/nf_conntrack_expect.c2
-rw-r--r--net/netfilter/nf_conntrack_extend.c19
-rw-r--r--net/netfilter/nf_conntrack_h323_main.c2
-rw-r--r--net/netfilter/nf_queue.c2
-rw-r--r--net/netfilter/nfnetlink_log.c32
-rw-r--r--net/netfilter/nfnetlink_queue.c17
-rw-r--r--net/netfilter/xt_time.c7
-rw-r--r--net/rxrpc/ar-internal.h2
-rw-r--r--net/rxrpc/ar-recvmsg.c3
-rw-r--r--net/rxrpc/rxkad.c27
-rw-r--r--net/sched/cls_u32.c8
-rw-r--r--net/sched/em_u32.c2
-rw-r--r--net/sched/sch_htb.c13
-rw-r--r--net/sctp/bind_addr.c4
-rw-r--r--net/sctp/input.c2
-rw-r--r--net/sctp/ipv6.c36
-rw-r--r--net/sctp/protocol.c143
-rw-r--r--net/sctp/sm_make_chunk.c8
-rw-r--r--net/sctp/socket.c73
-rw-r--r--net/socket.c7
-rw-r--r--net/sunrpc/auth_gss/gss_mech_switch.c2
-rw-r--r--net/sunrpc/svc_xprt.c2
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c23
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_sendto.c2
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c96
-rw-r--r--net/xfrm/xfrm_input.c22
-rw-r--r--net/xfrm/xfrm_output.c18
-rw-r--r--net/xfrm/xfrm_state.c54
-rw-r--r--net/xfrm/xfrm_user.c7
-rw-r--r--scripts/Makefile.modpost6
-rwxr-xr-xscripts/checkpatch.pl463
-rwxr-xr-xscripts/kernel-doc4
-rw-r--r--scripts/mod/file2alias.c4
-rw-r--r--scripts/mod/modpost.c5
-rw-r--r--scripts/mod/modpost.h1
-rw-r--r--security/capability.c1
-rw-r--r--security/commoncap.c40
-rw-r--r--security/selinux/hooks.c3
-rw-r--r--security/smack/smack.h8
-rw-r--r--security/smack/smack_lsm.c14
-rw-r--r--security/smack/smackfs.c66
-rw-r--r--sound/oss/ac97_codec.c2
-rw-r--r--sound/soc/codecs/tlv320aic3x.c2
886 files changed, 13399 insertions, 11005 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 042073f656e5..fc8e7c7d182f 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -225,8 +225,6 @@ kprobes.txt
225 - documents the kernel probes debugging feature. 225 - documents the kernel probes debugging feature.
226kref.txt 226kref.txt
227 - docs on adding reference counters (krefs) to kernel objects. 227 - docs on adding reference counters (krefs) to kernel objects.
228laptop-mode.txt
229 - how to conserve battery power using laptop-mode.
230laptops/ 228laptops/
231 - directory with laptop related info and laptop driver documentation. 229 - directory with laptop related info and laptop driver documentation.
232ldm.txt 230ldm.txt
@@ -301,12 +299,8 @@ pcmcia/
301 - info on the Linux PCMCIA driver. 299 - info on the Linux PCMCIA driver.
302pi-futex.txt 300pi-futex.txt
303 - documentation on lightweight PI-futexes. 301 - documentation on lightweight PI-futexes.
304pm.txt
305 - info on Linux power management support.
306pnp.txt 302pnp.txt
307 - Linux Plug and Play documentation. 303 - Linux Plug and Play documentation.
308power_supply_class.txt
309 - Tells userspace about battery, UPS, AC or DC power supply properties
310power/ 304power/
311 - directory with info on Linux PCI power management. 305 - directory with info on Linux PCI power management.
312powerpc/ 306powerpc/
diff --git a/Documentation/acpi/dsdt-override.txt b/Documentation/acpi/dsdt-override.txt
index 5008f256a2db..febbb1ba4d23 100644
--- a/Documentation/acpi/dsdt-override.txt
+++ b/Documentation/acpi/dsdt-override.txt
@@ -1,15 +1,7 @@
1Linux supports two methods of overriding the BIOS DSDT: 1Linux supports a method of overriding the BIOS DSDT:
2 2
3CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel. 3CONFIG_ACPI_CUSTOM_DSDT builds the image into the kernel.
4 4
5CONFIG_ACPI_CUSTOM_DSDT_INITRD adds the image to the initrd. 5When to use this method is described in detail on the
6
7When to use these methods is described in detail on the
8Linux/ACPI home page: 6Linux/ACPI home page:
9http://www.lesswatts.org/projects/acpi/overridingDSDT.php 7http://www.lesswatts.org/projects/acpi/overridingDSDT.php
10
11Note that if both options are used, the DSDT supplied
12by the INITRD method takes precedence.
13
14Documentation/initramfs-add-dsdt.sh is provided for convenience
15for use with the CONFIG_ACPI_CUSTOM_DSDT_INITRD method.
diff --git a/Documentation/acpi/initramfs-add-dsdt.sh b/Documentation/acpi/initramfs-add-dsdt.sh
deleted file mode 100755
index 17ef6e838e14..000000000000
--- a/Documentation/acpi/initramfs-add-dsdt.sh
+++ /dev/null
@@ -1,43 +0,0 @@
1#!/bin/bash
2# Adds a DSDT file to the initrd (if it's an initramfs)
3# first argument is the name of archive
4# second argument is the name of the file to add
5# The file will be copied as /DSDT.aml
6
7# 20060126: fix "Premature end of file" with some old cpio (Roland Robic)
8# 20060205: this time it should really work
9
10# check the arguments
11if [ $# -ne 2 ]; then
12 program_name=$(basename $0)
13 echo "\
14$program_name: too few arguments
15Usage: $program_name initrd-name.img DSDT-to-add.aml
16Adds a DSDT file to an initrd (in initramfs format)
17
18 initrd-name.img: filename of the initrd in initramfs format
19 DSDT-to-add.aml: filename of the DSDT file to add
20 " 1>&2
21 exit 1
22fi
23
24# we should check it's an initramfs
25
26tempcpio=$(mktemp -d)
27# cleanup on exit, hangup, interrupt, quit, termination
28trap 'rm -rf $tempcpio' 0 1 2 3 15
29
30# extract the archive
31gunzip -c "$1" > "$tempcpio"/initramfs.cpio || exit 1
32
33# copy the DSDT file at the root of the directory so that we can call it "/DSDT.aml"
34cp -f "$2" "$tempcpio"/DSDT.aml
35
36# add the file
37cd "$tempcpio"
38(echo DSDT.aml | cpio --quiet -H newc -o -A -O "$tempcpio"/initramfs.cpio) || exit 1
39cd "$OLDPWD"
40
41# re-compress the archive
42gzip -c "$tempcpio"/initramfs.cpio > "$1"
43
diff --git a/Documentation/fb/cmap_xfbdev.txt b/Documentation/fb/cmap_xfbdev.txt
new file mode 100644
index 000000000000..55e1f0a3d2b4
--- /dev/null
+++ b/Documentation/fb/cmap_xfbdev.txt
@@ -0,0 +1,53 @@
1Understanding fbdev's cmap
2--------------------------
3
4These notes explain how X's dix layer uses fbdev's cmap structures.
5
6*. example of relevant structures in fbdev as used for a 3-bit grayscale cmap
7struct fb_var_screeninfo {
8 .bits_per_pixel = 8,
9 .grayscale = 1,
10 .red = { 4, 3, 0 },
11 .green = { 0, 0, 0 },
12 .blue = { 0, 0, 0 },
13}
14struct fb_fix_screeninfo {
15 .visual = FB_VISUAL_STATIC_PSEUDOCOLOR,
16}
17for (i = 0; i < 8; i++)
18 info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16;
19memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8);
20memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8);
21
22*. X11 apps do something like the following when trying to use grayscale.
23for (i=0; i < 8; i++) {
24 char colorspec[64];
25 memset(colorspec,0,64);
26 sprintf(colorspec, "rgb:%x/%x/%x", i*36,i*36,i*36);
27 if (!XParseColor(outputDisplay, testColormap, colorspec, &wantedColor))
28 printf("Can't get color %s\n",colorspec);
29 XAllocColor(outputDisplay, testColormap, &wantedColor);
30 grays[i] = wantedColor;
31}
32There's also named equivalents like gray1..x provided you have an rgb.txt.
33
34Somewhere in X's callchain, this results in a call to X code that handles the
35colormap. For example, Xfbdev hits the following:
36
37xc-011010/programs/Xserver/dix/colormap.c:
38
39FindBestPixel(pentFirst, size, prgb, channel)
40
41dr = (long) pent->co.local.red - prgb->red;
42dg = (long) pent->co.local.green - prgb->green;
43db = (long) pent->co.local.blue - prgb->blue;
44sq = dr * dr;
45UnsignedToBigNum (sq, &sum);
46BigNumAdd (&sum, &temp, &sum);
47
48co.local.red are entries that were brought in through FBIOGETCMAP which come
49directly from the info->cmap.red that was listed above. The prgb is the rgb
50that the app wants to match to. The above code is doing what looks like a least
51squares matching function. That's why the cmap entries can't be set to the left
52hand side boundaries of a color range.
53
diff --git a/Documentation/fb/metronomefb.txt b/Documentation/fb/metronomefb.txt
new file mode 100644
index 000000000000..b9a2e7b7e838
--- /dev/null
+++ b/Documentation/fb/metronomefb.txt
@@ -0,0 +1,38 @@
1 Metronomefb
2 -----------
3Maintained by Jaya Kumar <jayakumar.lkml.gmail.com>
4Last revised: Nov 20, 2007
5
6Metronomefb is a driver for the Metronome display controller. The controller
7is from E-Ink Corporation. It is intended to be used to drive the E-Ink
8Vizplex display media. E-Ink hosts some details of this controller and the
9display media here http://www.e-ink.com/products/matrix/metronome.html .
10
11Metronome is interfaced to the host CPU through the AMLCD interface. The
12host CPU generates the control information and the image in a framebuffer
13which is then delivered to the AMLCD interface by a host specific method.
14Currently, that's implemented for the PXA's LCDC controller. The display and
15error status are each pulled through individual GPIOs.
16
17Metronomefb was written for the PXA255/gumstix/lyre combination and
18therefore currently has board set specific code in it. If other boards based on
19other architectures are available, then the host specific code can be separated
20and abstracted out.
21
22Metronomefb requires waveform information which is delivered via the AMLCD
23interface to the metronome controller. The waveform information is expected to
24be delivered from userspace via the firmware class interface. The waveform file
25can be compressed as long as your udev or hotplug script is aware of the need
26to uncompress it before delivering it. metronomefb will ask for waveform.wbf
27which would typically go into /lib/firmware/waveform.wbf depending on your
28udev/hotplug setup. I have only tested with a single waveform file which was
29originally labeled 23P01201_60_WT0107_MTC. I do not know what it stands for.
30Caution should be exercised when manipulating the waveform as there may be
31a possibility that it could have some permanent effects on the display media.
32I neither have access to nor know exactly what the waveform does in terms of
33the physical media.
34
35Metronomefb uses the deferred IO interface so that it can provide a memory
36mappable frame buffer. It has been tested with tinyx (Xfbdev). It is known
37to work at this time with xeyes, xclock, xloadimage, xpdf.
38
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index c1d1fd0c299b..bf0e3df8e7a1 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -172,16 +172,6 @@ Who: Len Brown <len.brown@intel.com>
172 172
173--------------------------- 173---------------------------
174 174
175What: ide-tape driver
176When: July 2008
177Files: drivers/ide/ide-tape.c
178Why: This driver might not have any users anymore and maintaining it for no
179 reason is an effort no one wants to make.
180Who: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Borislav Petkov
181 <petkovbb@googlemail.com>
182
183---------------------------
184
185What: libata spindown skipping and warning 175What: libata spindown skipping and warning
186When: Dec 2008 176When: Dec 2008
187Why: Some halt(8) implementations synchronize caches for and spin 177Why: Some halt(8) implementations synchronize caches for and spin
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 5681e2fa1496..518ebe609e2b 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -1506,13 +1506,13 @@ laptop_mode
1506----------- 1506-----------
1507 1507
1508laptop_mode is a knob that controls "laptop mode". All the things that are 1508laptop_mode is a knob that controls "laptop mode". All the things that are
1509controlled by this knob are discussed in Documentation/laptop-mode.txt. 1509controlled by this knob are discussed in Documentation/laptops/laptop-mode.txt.
1510 1510
1511block_dump 1511block_dump
1512---------- 1512----------
1513 1513
1514block_dump enables block I/O debugging when set to a nonzero value. More 1514block_dump enables block I/O debugging when set to a nonzero value. More
1515information on block I/O debugging is in Documentation/laptop-mode.txt. 1515information on block I/O debugging is in Documentation/laptops/laptop-mode.txt.
1516 1516
1517swap_token_timeout 1517swap_token_timeout
1518------------------ 1518------------------
diff --git a/Documentation/hw_random.txt b/Documentation/hw_random.txt
index bb58c36b5845..690f52550c80 100644
--- a/Documentation/hw_random.txt
+++ b/Documentation/hw_random.txt
@@ -1,33 +1,26 @@
1 Hardware driver for Intel/AMD/VIA Random Number Generators (RNG)
2 Copyright 2000,2001 Jeff Garzik <jgarzik@pobox.com>
3 Copyright 2000,2001 Philipp Rumpf <prumpf@mandrakesoft.com>
4
5Introduction: 1Introduction:
6 2
7 The hw_random device driver is software that makes use of a 3 The hw_random framework is software that makes use of a
8 special hardware feature on your CPU or motherboard, 4 special hardware feature on your CPU or motherboard,
9 a Random Number Generator (RNG). 5 a Random Number Generator (RNG). The software has two parts:
6 a core providing the /dev/hw_random character device and its
7 sysfs support, plus a hardware-specific driver that plugs
8 into that core.
10 9
11 In order to make effective use of this device driver, you 10 To make the most effective use of these mechanisms, you
12 should download the support software as well. Download the 11 should download the support software as well. Download the
13 latest version of the "rng-tools" package from the 12 latest version of the "rng-tools" package from the
14 hw_random driver's official Web site: 13 hw_random driver's official Web site:
15 14
16 http://sourceforge.net/projects/gkernel/ 15 http://sourceforge.net/projects/gkernel/
17 16
18About the Intel RNG hardware, from the firmware hub datasheet: 17 Those tools use /dev/hw_random to fill the kernel entropy pool,
19 18 which is used internally and exported by the /dev/urandom and
20 The Firmware Hub integrates a Random Number Generator (RNG) 19 /dev/random special files.
21 using thermal noise generated from inherently random quantum
22 mechanical properties of silicon. When not generating new random
23 bits the RNG circuitry will enter a low power state. Intel will
24 provide a binary software driver to give third party software
25 access to our RNG for use as a security feature. At this time,
26 the RNG is only to be used with a system in an OS-present state.
27 20
28Theory of operation: 21Theory of operation:
29 22
30 Character driver. Using the standard open() 23 CHARACTER DEVICE. Using the standard open()
31 and read() system calls, you can read random data from 24 and read() system calls, you can read random data from
32 the hardware RNG device. This data is NOT CHECKED by any 25 the hardware RNG device. This data is NOT CHECKED by any
33 fitness tests, and could potentially be bogus (if the 26 fitness tests, and could potentially be bogus (if the
@@ -36,9 +29,37 @@ Theory of operation:
36 a security-conscious person would run fitness tests on the 29 a security-conscious person would run fitness tests on the
37 data before assuming it is truly random. 30 data before assuming it is truly random.
38 31
39 /dev/hwrandom is char device major 10, minor 183. 32 The rng-tools package uses such tests in "rngd", and lets you
33 run them by hand with a "rngtest" utility.
34
35 /dev/hw_random is char device major 10, minor 183.
36
37 CLASS DEVICE. There is a /sys/class/misc/hw_random node with
38 two unique attributes, "rng_available" and "rng_current". The
39 "rng_available" attribute lists the hardware-specific drivers
40 available, while "rng_current" lists the one which is currently
41 connected to /dev/hw_random. If your system has more than one
42 RNG available, you may change the one used by writing a name from
43 the list in "rng_available" into "rng_current".
44
45==========================================================================
46
47 Hardware driver for Intel/AMD/VIA Random Number Generators (RNG)
48 Copyright 2000,2001 Jeff Garzik <jgarzik@pobox.com>
49 Copyright 2000,2001 Philipp Rumpf <prumpf@mandrakesoft.com>
50
51
52About the Intel RNG hardware, from the firmware hub datasheet:
53
54 The Firmware Hub integrates a Random Number Generator (RNG)
55 using thermal noise generated from inherently random quantum
56 mechanical properties of silicon. When not generating new random
57 bits the RNG circuitry will enter a low power state. Intel will
58 provide a binary software driver to give third party software
59 access to our RNG for use as a security feature. At this time,
60 the RNG is only to be used with a system in an OS-present state.
40 61
41Driver notes: 62Intel RNG Driver notes:
42 63
43 * FIXME: support poll(2) 64 * FIXME: support poll(2)
44 65
diff --git a/Documentation/i386/IO-APIC.txt b/Documentation/i386/IO-APIC.txt
index f95166645d29..30b4c714fbe1 100644
--- a/Documentation/i386/IO-APIC.txt
+++ b/Documentation/i386/IO-APIC.txt
@@ -70,7 +70,7 @@ Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD:
70 70
71These INTA-D PCI IRQs are always 'local to the card', their real meaning 71These INTA-D PCI IRQs are always 'local to the card', their real meaning
72depends on which slot they are in. If you look at the daisy chaining diagram, 72depends on which slot they are in. If you look at the daisy chaining diagram,
73a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ2 of 73a card in slot4, issuing INTA IRQ, it will end up as a signal on PIRQ4 of
74the PCI chipset. Most cards issue INTA, this creates optimal distribution 74the PCI chipset. Most cards issue INTA, this creates optimal distribution
75between the PIRQ lines. (distributing IRQ sources properly is not a 75between the PIRQ lines. (distributing IRQ sources properly is not a
76necessity, PCI IRQs can be shared at will, but it's a good for performance 76necessity, PCI IRQs can be shared at will, but it's a good for performance
diff --git a/Documentation/ide/ide.txt b/Documentation/ide/ide.txt
index e3b3425328b6..818676aad45a 100644
--- a/Documentation/ide/ide.txt
+++ b/Documentation/ide/ide.txt
@@ -105,7 +105,7 @@ Drives are normally found by auto-probing and/or examining the CMOS/BIOS data.
105For really weird situations, the apparent (fdisk) geometry can also be specified 105For really weird situations, the apparent (fdisk) geometry can also be specified
106on the kernel "command line" using LILO. The format of such lines is: 106on the kernel "command line" using LILO. The format of such lines is:
107 107
108 hdx=cyls,heads,sects,wpcom,irq 108 hdx=cyls,heads,sects
109or hdx=cdrom 109or hdx=cdrom
110 110
111where hdx can be any of hda through hdh, Three values are required 111where hdx can be any of hda through hdh, Three values are required
@@ -214,9 +214,9 @@ driver using the "options=" keyword to insmod, while replacing any ',' with
214Summary of ide driver parameters for kernel command line 214Summary of ide driver parameters for kernel command line
215-------------------------------------------------------- 215--------------------------------------------------------
216 216
217 "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". 217 "hdx=" is recognized for all "x" from "a" to "u", such as "hdc".
218 218
219 "idex=" is recognized for all "x" from "0" to "3", such as "ide1". 219 "idex=" is recognized for all "x" from "0" to "9", such as "ide1".
220 220
221 "hdx=noprobe" : drive may be present, but do not probe for it 221 "hdx=noprobe" : drive may be present, but do not probe for it
222 222
@@ -228,13 +228,6 @@ Summary of ide driver parameters for kernel command line
228 228
229 "hdx=cyl,head,sect" : disk drive is present, with specified geometry 229 "hdx=cyl,head,sect" : disk drive is present, with specified geometry
230 230
231 "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive)
232
233 "hdx=remap63" : remap the drive: add 63 to all sector numbers
234 (for DM OnTrack)
235
236 "idex=noautotune" : driver will NOT attempt to tune interface speed
237
238 "hdx=autotune" : driver will attempt to tune interface speed 231 "hdx=autotune" : driver will attempt to tune interface speed
239 to the fastest PIO mode supported, 232 to the fastest PIO mode supported,
240 if possible for this drive only. 233 if possible for this drive only.
@@ -244,10 +237,6 @@ Summary of ide driver parameters for kernel command line
244 237
245 "hdx=nodma" : disallow DMA 238 "hdx=nodma" : disallow DMA
246 239
247 "hdx=scsi" : the return of the ide-scsi flag, this is useful for
248 allowing ide-floppy, ide-tape, and ide-cdrom|writers
249 to use ide-scsi emulation on a device specific option.
250
251 "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, 240 "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz,
252 where "xx" is between 20 and 66 inclusive, 241 where "xx" is between 20 and 66 inclusive,
253 used when tuning chipset PIO modes. 242 used when tuning chipset PIO modes.
@@ -282,10 +271,6 @@ Summary of ide driver parameters for kernel command line
282 271
283 "ide=reverse" : formerly called to pci sub-system, but now local. 272 "ide=reverse" : formerly called to pci sub-system, but now local.
284 273
285The following are valid ONLY on ide0, which usually corresponds
286to the first ATA interface found on the particular host, and the defaults for
287the base,ctl ports must not be altered.
288
289 "ide=doubler" : probe/support IDE doublers on Amiga 274 "ide=doubler" : probe/support IDE doublers on Amiga
290 275
291There may be more options than shown -- use the source, Luke! 276There may be more options than shown -- use the source, Luke!
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 09118a045942..508e2a2c9864 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -138,7 +138,7 @@ and is between 256 and 4096 characters. It is defined in the file
138 strict -- Be less tolerant of platforms that are not 138 strict -- Be less tolerant of platforms that are not
139 strictly ACPI specification compliant. 139 strictly ACPI specification compliant.
140 140
141 See also Documentation/pm.txt, pci=noacpi 141 See also Documentation/power/pm.txt, pci=noacpi
142 142
143 acpi_apic_instance= [ACPI, IOAPIC] 143 acpi_apic_instance= [ACPI, IOAPIC]
144 Format: <int> 144 Format: <int>
@@ -177,9 +177,6 @@ and is between 256 and 4096 characters. It is defined in the file
177 177
178 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT 178 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT
179 179
180 acpi_no_initrd_override [KNL,ACPI]
181 Disable loading custom ACPI tables from the initramfs
182
183 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS 180 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS
184 Format: To spoof as Windows 98: ="Microsoft Windows" 181 Format: To spoof as Windows 98: ="Microsoft Windows"
185 182
@@ -1133,6 +1130,10 @@ and is between 256 and 4096 characters. It is defined in the file
1133 memmap=nn[KMG]$ss[KMG] 1130 memmap=nn[KMG]$ss[KMG]
1134 [KNL,ACPI] Mark specific memory as reserved. 1131 [KNL,ACPI] Mark specific memory as reserved.
1135 Region of memory to be used, from ss to ss+nn. 1132 Region of memory to be used, from ss to ss+nn.
1133 Example: Exclude memory from 0x18690000-0x1869ffff
1134 memmap=64K$0x18690000
1135 or
1136 memmap=0x10000$0x18690000
1136 1137
1137 meye.*= [HW] Set MotionEye Camera parameters 1138 meye.*= [HW] Set MotionEye Camera parameters
1138 See Documentation/video4linux/meye.txt. 1139 See Documentation/video4linux/meye.txt.
diff --git a/Documentation/laptops/00-INDEX b/Documentation/laptops/00-INDEX
index 729c2c062e10..ee5692b26dd4 100644
--- a/Documentation/laptops/00-INDEX
+++ b/Documentation/laptops/00-INDEX
@@ -2,6 +2,8 @@
2 - This file 2 - This file
3acer-wmi.txt 3acer-wmi.txt
4 - information on the Acer Laptop WMI Extras driver. 4 - information on the Acer Laptop WMI Extras driver.
5laptop-mode.txt
6 - how to conserve battery power using laptop-mode.
5sony-laptop.txt 7sony-laptop.txt
6 - Sony Notebook Control Driver (SNC) Readme. 8 - Sony Notebook Control Driver (SNC) Readme.
7sonypi.txt 9sonypi.txt
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt
index b06696329cff..23df051dbf69 100644
--- a/Documentation/laptops/acer-wmi.txt
+++ b/Documentation/laptops/acer-wmi.txt
@@ -48,7 +48,7 @@ DSDT.
48 48
49To send me the DSDT, as root/sudo: 49To send me the DSDT, as root/sudo:
50 50
51cat /sys/firmware/acpi/DSDT > dsdt 51cat /sys/firmware/acpi/tables/DSDT > dsdt
52 52
53And send me the resulting 'dsdt' file. 53And send me the resulting 'dsdt' file.
54 54
@@ -169,7 +169,7 @@ can be added to acer-wmi.
169 169
170The LED is exposed through the LED subsystem, and can be found in: 170The LED is exposed through the LED subsystem, and can be found in:
171 171
172/sys/devices/platform/acer-wmi/leds/acer-mail:green/ 172/sys/devices/platform/acer-wmi/leds/acer-wmi::mail/
173 173
174The mail LED is autodetected, so if you don't have one, the LED device won't 174The mail LED is autodetected, so if you don't have one, the LED device won't
175be registered. 175be registered.
diff --git a/Documentation/laptop-mode.txt b/Documentation/laptops/laptop-mode.txt
index eeedee11c8c2..eeedee11c8c2 100644
--- a/Documentation/laptop-mode.txt
+++ b/Documentation/laptops/laptop-mode.txt
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c
index bec5a32e4095..4c1fc65a8b3d 100644
--- a/Documentation/lguest/lguest.c
+++ b/Documentation/lguest/lguest.c
@@ -1,7 +1,7 @@
1/*P:100 This is the Launcher code, a simple program which lays out the 1/*P:100 This is the Launcher code, a simple program which lays out the
2 * "physical" memory for the new Guest by mapping the kernel image and the 2 * "physical" memory for the new Guest by mapping the kernel image and
3 * virtual devices, then reads repeatedly from /dev/lguest to run the Guest. 3 * the virtual devices, then opens /dev/lguest to tell the kernel
4:*/ 4 * about the Guest and control it. :*/
5#define _LARGEFILE64_SOURCE 5#define _LARGEFILE64_SOURCE
6#define _GNU_SOURCE 6#define _GNU_SOURCE
7#include <stdio.h> 7#include <stdio.h>
@@ -43,7 +43,7 @@
43#include "linux/virtio_console.h" 43#include "linux/virtio_console.h"
44#include "linux/virtio_ring.h" 44#include "linux/virtio_ring.h"
45#include "asm-x86/bootparam.h" 45#include "asm-x86/bootparam.h"
46/*L:110 We can ignore the 38 include files we need for this program, but I do 46/*L:110 We can ignore the 39 include files we need for this program, but I do
47 * want to draw attention to the use of kernel-style types. 47 * want to draw attention to the use of kernel-style types.
48 * 48 *
49 * As Linus said, "C is a Spartan language, and so should your naming be." I 49 * As Linus said, "C is a Spartan language, and so should your naming be." I
@@ -320,7 +320,7 @@ static unsigned long map_elf(int elf_fd, const Elf32_Ehdr *ehdr)
320 err(1, "Reading program headers"); 320 err(1, "Reading program headers");
321 321
322 /* Try all the headers: there are usually only three. A read-only one, 322 /* Try all the headers: there are usually only three. A read-only one,
323 * a read-write one, and a "note" section which isn't loadable. */ 323 * a read-write one, and a "note" section which we don't load. */
324 for (i = 0; i < ehdr->e_phnum; i++) { 324 for (i = 0; i < ehdr->e_phnum; i++) {
325 /* If this isn't a loadable segment, we ignore it */ 325 /* If this isn't a loadable segment, we ignore it */
326 if (phdr[i].p_type != PT_LOAD) 326 if (phdr[i].p_type != PT_LOAD)
@@ -387,7 +387,7 @@ static unsigned long load_kernel(int fd)
387 if (memcmp(hdr.e_ident, ELFMAG, SELFMAG) == 0) 387 if (memcmp(hdr.e_ident, ELFMAG, SELFMAG) == 0)
388 return map_elf(fd, &hdr); 388 return map_elf(fd, &hdr);
389 389
390 /* Otherwise we assume it's a bzImage, and try to unpack it */ 390 /* Otherwise we assume it's a bzImage, and try to load it. */
391 return load_bzimage(fd); 391 return load_bzimage(fd);
392} 392}
393 393
@@ -433,12 +433,12 @@ static unsigned long load_initrd(const char *name, unsigned long mem)
433 return len; 433 return len;
434} 434}
435 435
436/* Once we know how much memory we have, we can construct simple linear page 436/* Once we know how much memory we have we can construct simple linear page
437 * tables which set virtual == physical which will get the Guest far enough 437 * tables which set virtual == physical which will get the Guest far enough
438 * into the boot to create its own. 438 * into the boot to create its own.
439 * 439 *
440 * We lay them out of the way, just below the initrd (which is why we need to 440 * We lay them out of the way, just below the initrd (which is why we need to
441 * know its size). */ 441 * know its size here). */
442static unsigned long setup_pagetables(unsigned long mem, 442static unsigned long setup_pagetables(unsigned long mem,
443 unsigned long initrd_size) 443 unsigned long initrd_size)
444{ 444{
@@ -850,7 +850,8 @@ static void handle_console_output(int fd, struct virtqueue *vq)
850 * 850 *
851 * Handling output for network is also simple: we get all the output buffers 851 * Handling output for network is also simple: we get all the output buffers
852 * and write them (ignoring the first element) to this device's file descriptor 852 * and write them (ignoring the first element) to this device's file descriptor
853 * (stdout). */ 853 * (/dev/net/tun).
854 */
854static void handle_net_output(int fd, struct virtqueue *vq) 855static void handle_net_output(int fd, struct virtqueue *vq)
855{ 856{
856 unsigned int head, out, in; 857 unsigned int head, out, in;
@@ -924,7 +925,7 @@ static void enable_fd(int fd, struct virtqueue *vq)
924 write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); 925 write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd));
925} 926}
926 927
927/* Resetting a device is fairly easy. */ 928/* When the Guest asks us to reset a device, it's is fairly easy. */
928static void reset_device(struct device *dev) 929static void reset_device(struct device *dev)
929{ 930{
930 struct virtqueue *vq; 931 struct virtqueue *vq;
@@ -1003,8 +1004,8 @@ static void handle_input(int fd)
1003 if (select(devices.max_infd+1, &fds, NULL, NULL, &poll) == 0) 1004 if (select(devices.max_infd+1, &fds, NULL, NULL, &poll) == 0)
1004 break; 1005 break;
1005 1006
1006 /* Otherwise, call the device(s) which have readable 1007 /* Otherwise, call the device(s) which have readable file
1007 * file descriptors and a method of handling them. */ 1008 * descriptors and a method of handling them. */
1008 for (i = devices.dev; i; i = i->next) { 1009 for (i = devices.dev; i; i = i->next) {
1009 if (i->handle_input && FD_ISSET(i->fd, &fds)) { 1010 if (i->handle_input && FD_ISSET(i->fd, &fds)) {
1010 int dev_fd; 1011 int dev_fd;
@@ -1015,8 +1016,7 @@ static void handle_input(int fd)
1015 * should no longer service it. Networking and 1016 * should no longer service it. Networking and
1016 * console do this when there's no input 1017 * console do this when there's no input
1017 * buffers to deliver into. Console also uses 1018 * buffers to deliver into. Console also uses
1018 * it when it discovers that stdin is 1019 * it when it discovers that stdin is closed. */
1019 * closed. */
1020 FD_CLR(i->fd, &devices.infds); 1020 FD_CLR(i->fd, &devices.infds);
1021 /* Tell waker to ignore it too, by sending a 1021 /* Tell waker to ignore it too, by sending a
1022 * negative fd number (-1, since 0 is a valid 1022 * negative fd number (-1, since 0 is a valid
@@ -1033,7 +1033,8 @@ static void handle_input(int fd)
1033 * 1033 *
1034 * All devices need a descriptor so the Guest knows it exists, and a "struct 1034 * All devices need a descriptor so the Guest knows it exists, and a "struct
1035 * device" so the Launcher can keep track of it. We have common helper 1035 * device" so the Launcher can keep track of it. We have common helper
1036 * routines to allocate and manage them. */ 1036 * routines to allocate and manage them.
1037 */
1037 1038
1038/* The layout of the device page is a "struct lguest_device_desc" followed by a 1039/* The layout of the device page is a "struct lguest_device_desc" followed by a
1039 * number of virtqueue descriptors, then two sets of feature bits, then an 1040 * number of virtqueue descriptors, then two sets of feature bits, then an
@@ -1078,7 +1079,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs,
1078 struct virtqueue **i, *vq = malloc(sizeof(*vq)); 1079 struct virtqueue **i, *vq = malloc(sizeof(*vq));
1079 void *p; 1080 void *p;
1080 1081
1081 /* First we need some pages for this virtqueue. */ 1082 /* First we need some memory for this virtqueue. */
1082 pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1) 1083 pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1)
1083 / getpagesize(); 1084 / getpagesize();
1084 p = get_pages(pages); 1085 p = get_pages(pages);
@@ -1122,7 +1123,7 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs,
1122} 1123}
1123 1124
1124/* The first half of the feature bitmask is for us to advertise features. The 1125/* The first half of the feature bitmask is for us to advertise features. The
1125 * second half if for the Guest to accept features. */ 1126 * second half is for the Guest to accept features. */
1126static void add_feature(struct device *dev, unsigned bit) 1127static void add_feature(struct device *dev, unsigned bit)
1127{ 1128{
1128 u8 *features = get_feature_bits(dev); 1129 u8 *features = get_feature_bits(dev);
@@ -1151,7 +1152,9 @@ static void set_config(struct device *dev, unsigned len, const void *conf)
1151} 1152}
1152 1153
1153/* This routine does all the creation and setup of a new device, including 1154/* This routine does all the creation and setup of a new device, including
1154 * calling new_dev_desc() to allocate the descriptor and device memory. */ 1155 * calling new_dev_desc() to allocate the descriptor and device memory.
1156 *
1157 * See what I mean about userspace being boring? */
1155static struct device *new_device(const char *name, u16 type, int fd, 1158static struct device *new_device(const char *name, u16 type, int fd,
1156 bool (*handle_input)(int, struct device *)) 1159 bool (*handle_input)(int, struct device *))
1157{ 1160{
@@ -1383,7 +1386,6 @@ struct vblk_info
1383 * Launcher triggers interrupt to Guest. */ 1386 * Launcher triggers interrupt to Guest. */
1384 int done_fd; 1387 int done_fd;
1385}; 1388};
1386/*:*/
1387 1389
1388/*L:210 1390/*L:210
1389 * The Disk 1391 * The Disk
@@ -1493,7 +1495,10 @@ static int io_thread(void *_dev)
1493 while (read(vblk->workpipe[0], &c, 1) == 1) { 1495 while (read(vblk->workpipe[0], &c, 1) == 1) {
1494 /* We acknowledge each request immediately to reduce latency, 1496 /* We acknowledge each request immediately to reduce latency,
1495 * rather than waiting until we've done them all. I haven't 1497 * rather than waiting until we've done them all. I haven't
1496 * measured to see if it makes any difference. */ 1498 * measured to see if it makes any difference.
1499 *
1500 * That would be an interesting test, wouldn't it? You could
1501 * also try having more than one I/O thread. */
1497 while (service_io(dev)) 1502 while (service_io(dev))
1498 write(vblk->done_fd, &c, 1); 1503 write(vblk->done_fd, &c, 1);
1499 } 1504 }
@@ -1501,7 +1506,7 @@ static int io_thread(void *_dev)
1501} 1506}
1502 1507
1503/* Now we've seen the I/O thread, we return to the Launcher to see what happens 1508/* Now we've seen the I/O thread, we return to the Launcher to see what happens
1504 * when the thread tells us it's completed some I/O. */ 1509 * when that thread tells us it's completed some I/O. */
1505static bool handle_io_finish(int fd, struct device *dev) 1510static bool handle_io_finish(int fd, struct device *dev)
1506{ 1511{
1507 char c; 1512 char c;
@@ -1573,11 +1578,12 @@ static void setup_block_file(const char *filename)
1573 * more work. */ 1578 * more work. */
1574 pipe(vblk->workpipe); 1579 pipe(vblk->workpipe);
1575 1580
1576 /* Create stack for thread and run it */ 1581 /* Create stack for thread and run it. Since stack grows upwards, we
1582 * point the stack pointer to the end of this region. */
1577 stack = malloc(32768); 1583 stack = malloc(32768);
1578 /* SIGCHLD - We dont "wait" for our cloned thread, so prevent it from 1584 /* SIGCHLD - We dont "wait" for our cloned thread, so prevent it from
1579 * becoming a zombie. */ 1585 * becoming a zombie. */
1580 if (clone(io_thread, stack + 32768, CLONE_VM | SIGCHLD, dev) == -1) 1586 if (clone(io_thread, stack + 32768, CLONE_VM | SIGCHLD, dev) == -1)
1581 err(1, "Creating clone"); 1587 err(1, "Creating clone");
1582 1588
1583 /* We don't need to keep the I/O thread's end of the pipes open. */ 1589 /* We don't need to keep the I/O thread's end of the pipes open. */
@@ -1587,14 +1593,14 @@ static void setup_block_file(const char *filename)
1587 verbose("device %u: virtblock %llu sectors\n", 1593 verbose("device %u: virtblock %llu sectors\n",
1588 devices.device_num, le64_to_cpu(conf.capacity)); 1594 devices.device_num, le64_to_cpu(conf.capacity));
1589} 1595}
1590/* That's the end of device setup. :*/ 1596/* That's the end of device setup. */
1591 1597
1592/* Reboot */ 1598/*L:230 Reboot is pretty easy: clean up and exec() the Launcher afresh. */
1593static void __attribute__((noreturn)) restart_guest(void) 1599static void __attribute__((noreturn)) restart_guest(void)
1594{ 1600{
1595 unsigned int i; 1601 unsigned int i;
1596 1602
1597 /* Closing pipes causes the waker thread and io_threads to die, and 1603 /* Closing pipes causes the Waker thread and io_threads to die, and
1598 * closing /dev/lguest cleans up the Guest. Since we don't track all 1604 * closing /dev/lguest cleans up the Guest. Since we don't track all
1599 * open fds, we simply close everything beyond stderr. */ 1605 * open fds, we simply close everything beyond stderr. */
1600 for (i = 3; i < FD_SETSIZE; i++) 1606 for (i = 3; i < FD_SETSIZE; i++)
@@ -1603,7 +1609,7 @@ static void __attribute__((noreturn)) restart_guest(void)
1603 err(1, "Could not exec %s", main_args[0]); 1609 err(1, "Could not exec %s", main_args[0]);
1604} 1610}
1605 1611
1606/*L:220 Finally we reach the core of the Launcher, which runs the Guest, serves 1612/*L:220 Finally we reach the core of the Launcher which runs the Guest, serves
1607 * its input and output, and finally, lays it to rest. */ 1613 * its input and output, and finally, lays it to rest. */
1608static void __attribute__((noreturn)) run_guest(int lguest_fd) 1614static void __attribute__((noreturn)) run_guest(int lguest_fd)
1609{ 1615{
@@ -1644,7 +1650,7 @@ static void __attribute__((noreturn)) run_guest(int lguest_fd)
1644 err(1, "Resetting break"); 1650 err(1, "Resetting break");
1645 } 1651 }
1646} 1652}
1647/* 1653/*L:240
1648 * This is the end of the Launcher. The good news: we are over halfway 1654 * This is the end of the Launcher. The good news: we are over halfway
1649 * through! The bad news: the most fiendish part of the code still lies ahead 1655 * through! The bad news: the most fiendish part of the code still lies ahead
1650 * of us. 1656 * of us.
@@ -1691,8 +1697,8 @@ int main(int argc, char *argv[])
1691 * device receive input from a file descriptor, we keep an fdset 1697 * device receive input from a file descriptor, we keep an fdset
1692 * (infds) and the maximum fd number (max_infd) with the head of the 1698 * (infds) and the maximum fd number (max_infd) with the head of the
1693 * list. We also keep a pointer to the last device. Finally, we keep 1699 * list. We also keep a pointer to the last device. Finally, we keep
1694 * the next interrupt number to hand out (1: remember that 0 is used by 1700 * the next interrupt number to use for devices (1: remember that 0 is
1695 * the timer). */ 1701 * used by the timer). */
1696 FD_ZERO(&devices.infds); 1702 FD_ZERO(&devices.infds);
1697 devices.max_infd = -1; 1703 devices.max_infd = -1;
1698 devices.lastdev = NULL; 1704 devices.lastdev = NULL;
@@ -1793,8 +1799,8 @@ int main(int argc, char *argv[])
1793 lguest_fd = tell_kernel(pgdir, start); 1799 lguest_fd = tell_kernel(pgdir, start);
1794 1800
1795 /* We fork off a child process, which wakes the Launcher whenever one 1801 /* We fork off a child process, which wakes the Launcher whenever one
1796 * of the input file descriptors needs attention. Otherwise we would 1802 * of the input file descriptors needs attention. We call this the
1797 * run the Guest until it tries to output something. */ 1803 * Waker, and we'll cover it in a moment. */
1798 waker_fd = setup_waker(lguest_fd); 1804 waker_fd = setup_waker(lguest_fd);
1799 1805
1800 /* Finally, run the Guest. This doesn't return. */ 1806 /* Finally, run the Guest. This doesn't return. */
diff --git a/Documentation/lguest/lguest.txt b/Documentation/lguest/lguest.txt
index 722d4e7fbebe..29510dc51510 100644
--- a/Documentation/lguest/lguest.txt
+++ b/Documentation/lguest/lguest.txt
@@ -1,6 +1,7 @@
1Rusty's Remarkably Unreliable Guide to Lguest 1 __
2 - or, A Young Coder's Illustrated Hypervisor 2 (___()'`; Rusty's Remarkably Unreliable Guide to Lguest
3http://lguest.ozlabs.org 3 /, /` - or, A Young Coder's Illustrated Hypervisor
4 \\"--\\ http://lguest.ozlabs.org
4 5
5Lguest is designed to be a minimal hypervisor for the Linux kernel, for 6Lguest is designed to be a minimal hypervisor for the Linux kernel, for
6Linux developers and users to experiment with virtualization with the 7Linux developers and users to experiment with virtualization with the
@@ -41,12 +42,16 @@ Running Lguest:
41 CONFIG_PHYSICAL_ALIGN=0x100000) 42 CONFIG_PHYSICAL_ALIGN=0x100000)
42 43
43 "Device Drivers": 44 "Device Drivers":
45 "Block devices"
46 "Virtio block driver (EXPERIMENTAL)" = M/Y
44 "Network device support" 47 "Network device support"
45 "Universal TUN/TAP device driver support" = M/Y 48 "Universal TUN/TAP device driver support" = M/Y
46 (CONFIG_TUN=m) 49 "Virtio network driver (EXPERIMENTAL)" = M/Y
47 "Virtualization" 50 (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m)
48 "Linux hypervisor example code" = M/Y 51
49 (CONFIG_LGUEST=m) 52 "Virtualization"
53 "Linux hypervisor example code" = M/Y
54 (CONFIG_LGUEST=m)
50 55
51- A tool called "lguest" is available in this directory: type "make" 56- A tool called "lguest" is available in this directory: type "make"
52 to build it. If you didn't build your kernel in-tree, use "make 57 to build it. If you didn't build your kernel in-tree, use "make
diff --git a/Documentation/mca.txt b/Documentation/mca.txt
index aabce4ad90f9..510375d4209a 100644
--- a/Documentation/mca.txt
+++ b/Documentation/mca.txt
@@ -143,14 +143,7 @@ MCA Device Drivers
143 143
144Currently, there are a number of MCA-specific device drivers. 144Currently, there are a number of MCA-specific device drivers.
145 145
1461) PS/2 ESDI 1461) PS/2 SCSI
147 drivers/block/ps2esdi.c
148 include/linux/ps2esdi.h
149 Uses major number 36, and should use /dev files /dev/eda, /dev/edb.
150 Supports two drives, but only one controller. May use the
151 command-line args "ed=cyl,head,sec" and "tp720".
152
1532) PS/2 SCSI
154 drivers/scsi/ibmmca.c 147 drivers/scsi/ibmmca.c
155 drivers/scsi/ibmmca.h 148 drivers/scsi/ibmmca.h
156 The driver for the IBM SCSI subsystem. Includes both integrated 149 The driver for the IBM SCSI subsystem. Includes both integrated
@@ -159,25 +152,25 @@ Currently, there are a number of MCA-specific device drivers.
159 machine with a front-panel display (i.e. model 95), you can use 152 machine with a front-panel display (i.e. model 95), you can use
160 "ibmmcascsi=display" to enable a drive activity indicator. 153 "ibmmcascsi=display" to enable a drive activity indicator.
161 154
1623) 3c523 1552) 3c523
163 drivers/net/3c523.c 156 drivers/net/3c523.c
164 drivers/net/3c523.h 157 drivers/net/3c523.h
165 3Com 3c523 Etherlink/MC ethernet driver. 158 3Com 3c523 Etherlink/MC ethernet driver.
166 159
1674) SMC Ultra/MCA and IBM Adapter/A 1603) SMC Ultra/MCA and IBM Adapter/A
168 drivers/net/smc-mca.c 161 drivers/net/smc-mca.c
169 drivers/net/smc-mca.h 162 drivers/net/smc-mca.h
170 Driver for the MCA version of the SMC Ultra and various other 163 Driver for the MCA version of the SMC Ultra and various other
171 OEM'ed and work-alike cards (Elite, Adapter/A, etc). 164 OEM'ed and work-alike cards (Elite, Adapter/A, etc).
172 165
1735) NE/2 1664) NE/2
174 driver/net/ne2.c 167 driver/net/ne2.c
175 driver/net/ne2.h 168 driver/net/ne2.h
176 The NE/2 is the MCA version of the NE2000. This may not work 169 The NE/2 is the MCA version of the NE2000. This may not work
177 with clones that have a different adapter id than the original 170 with clones that have a different adapter id than the original
178 NE/2. 171 NE/2.
179 172
1806) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and 1735) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and
181 Reply Sound Blaster/SCSI (SCSI part) 174 Reply Sound Blaster/SCSI (SCSI part)
182 Better support for these cards than the driver for ISA. 175 Better support for these cards than the driver for ISA.
183 Supports multiple cards with IRQ sharing. 176 Supports multiple cards with IRQ sharing.
diff --git a/Documentation/nmi_watchdog.txt b/Documentation/nmi_watchdog.txt
index c025a4561c10..757c729ee42e 100644
--- a/Documentation/nmi_watchdog.txt
+++ b/Documentation/nmi_watchdog.txt
@@ -23,8 +23,7 @@ kernel debugging options, such as Kernel Stack Meter or Kernel Tracer,
23may implicitly disable the NMI watchdog.] 23may implicitly disable the NMI watchdog.]
24 24
25For x86-64, the needed APIC is always compiled in, and the NMI watchdog is 25For x86-64, the needed APIC is always compiled in, and the NMI watchdog is
26always enabled with I/O-APIC mode (nmi_watchdog=1). Currently, local APIC 26always enabled with I/O-APIC mode (nmi_watchdog=1).
27mode (nmi_watchdog=2) does not work on x86-64.
28 27
29Using local APIC (nmi_watchdog=2) needs the first performance register, so 28Using local APIC (nmi_watchdog=2) needs the first performance register, so
30you can't use it for other purposes (such as high precision performance 29you can't use it for other purposes (such as high precision performance
diff --git a/Documentation/power/00-INDEX b/Documentation/power/00-INDEX
index 8db4e41a052d..a55d7f1c836d 100644
--- a/Documentation/power/00-INDEX
+++ b/Documentation/power/00-INDEX
@@ -14,6 +14,12 @@ notifiers.txt
14 - Registering suspend notifiers in device drivers 14 - Registering suspend notifiers in device drivers
15pci.txt 15pci.txt
16 - How the PCI Subsystem Does Power Management 16 - How the PCI Subsystem Does Power Management
17pm.txt
18 - info on Linux power management support.
19pm_qos_interface.txt
20 - info on Linux PM Quality of Service interface
21power_supply_class.txt
22 - Tells userspace about battery, UPS, AC or DC power supply properties
17s2ram.txt 23s2ram.txt
18 - How to get suspend to ram working (and debug it when it isn't) 24 - How to get suspend to ram working (and debug it when it isn't)
19states.txt 25states.txt
diff --git a/Documentation/pm.txt b/Documentation/power/pm.txt
index da8589a0e07d..be841507e43f 100644
--- a/Documentation/pm.txt
+++ b/Documentation/power/pm.txt
@@ -108,7 +108,7 @@ void pm_unregister_all(pm_callback cback);
108 * EINVAL if the request is not supported 108 * EINVAL if the request is not supported
109 * EBUSY if the device is now busy and cannot handle the request 109 * EBUSY if the device is now busy and cannot handle the request
110 * ENOMEM if the device was unable to handle the request due to memory 110 * ENOMEM if the device was unable to handle the request due to memory
111 * 111 *
112 * Details: The device request callback will be called before the 112 * Details: The device request callback will be called before the
113 * device/system enters a suspend state (ACPI D1-D3) or 113 * device/system enters a suspend state (ACPI D1-D3) or
114 * or after the device/system resumes from suspend (ACPI D0). 114 * or after the device/system resumes from suspend (ACPI D0).
diff --git a/Documentation/pm_qos_interface.txt b/Documentation/power/pm_qos_interface.txt
index 49adb1a33514..49adb1a33514 100644
--- a/Documentation/pm_qos_interface.txt
+++ b/Documentation/power/pm_qos_interface.txt
diff --git a/Documentation/power_supply_class.txt b/Documentation/power/power_supply_class.txt
index a8686e5a6857..a8686e5a6857 100644
--- a/Documentation/power_supply_class.txt
+++ b/Documentation/power/power_supply_class.txt
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt
index ba9c2da5a8c2..d9f28be75403 100644
--- a/Documentation/thermal/sysfs-api.txt
+++ b/Documentation/thermal/sysfs-api.txt
@@ -143,10 +143,10 @@ type Strings which represent the thermal zone type.
143 This is given by thermal zone driver as part of registration. 143 This is given by thermal zone driver as part of registration.
144 Eg: "ACPI thermal zone" indicates it's a ACPI thermal device 144 Eg: "ACPI thermal zone" indicates it's a ACPI thermal device
145 RO 145 RO
146 Optional 146 Required
147 147
148temp Current temperature as reported by thermal zone (sensor) 148temp Current temperature as reported by thermal zone (sensor)
149 Unit: degree Celsius 149 Unit: millidegree Celsius
150 RO 150 RO
151 Required 151 Required
152 152
@@ -163,7 +163,7 @@ mode One of the predefined values in [kernel, user]
163 charge of the thermal management. 163 charge of the thermal management.
164 164
165trip_point_[0-*]_temp The temperature above which trip point will be fired 165trip_point_[0-*]_temp The temperature above which trip point will be fired
166 Unit: degree Celsius 166 Unit: millidegree Celsius
167 RO 167 RO
168 Optional 168 Optional
169 169
@@ -193,7 +193,7 @@ type String which represents the type of device
193 eg. For memory controller device on intel_menlow platform: 193 eg. For memory controller device on intel_menlow platform:
194 this should be "Memory controller" 194 this should be "Memory controller"
195 RO 195 RO
196 Optional 196 Required
197 197
198max_state The maximum permissible cooling state of this cooling device. 198max_state The maximum permissible cooling state of this cooling device.
199 RO 199 RO
@@ -219,16 +219,16 @@ the sys I/F structure will be built like this:
219 219
220|thermal_zone1: 220|thermal_zone1:
221 |-----type: ACPI thermal zone 221 |-----type: ACPI thermal zone
222 |-----temp: 37 222 |-----temp: 37000
223 |-----mode: kernel 223 |-----mode: kernel
224 |-----trip_point_0_temp: 100 224 |-----trip_point_0_temp: 100000
225 |-----trip_point_0_type: critical 225 |-----trip_point_0_type: critical
226 |-----trip_point_1_temp: 80 226 |-----trip_point_1_temp: 80000
227 |-----trip_point_1_type: passive 227 |-----trip_point_1_type: passive
228 |-----trip_point_2_temp: 70 228 |-----trip_point_2_temp: 70000
229 |-----trip_point_2_type: active[0] 229 |-----trip_point_2_type: active0
230 |-----trip_point_3_temp: 60 230 |-----trip_point_3_temp: 60000
231 |-----trip_point_3_type: active[1] 231 |-----trip_point_3_type: active1
232 |-----cdev0: --->/sys/class/thermal/cooling_device0 232 |-----cdev0: --->/sys/class/thermal/cooling_device0
233 |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */ 233 |-----cdev0_trip_point: 1 /* cdev0 can be used for passive */
234 |-----cdev1: --->/sys/class/thermal/cooling_device3 234 |-----cdev1: --->/sys/class/thermal/cooling_device3
diff --git a/MAINTAINERS b/MAINTAINERS
index 25f450fe1059..90dcbbcad91c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -163,6 +163,12 @@ M: A2232@gmx.net
163L: linux-m68k@lists.linux-m68k.org 163L: linux-m68k@lists.linux-m68k.org
164S: Maintained 164S: Maintained
165 165
166AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
167P: David Howells
168M: dhowells@redhat.com
169L: linux-afs@lists.infradead.org
170S: Supported
171
166AIO 172AIO
167P: Benjamin LaHaise 173P: Benjamin LaHaise
168M: bcrl@kvack.org 174M: bcrl@kvack.org
@@ -266,6 +272,15 @@ L: linux-acpi@vger.kernel.org
266W: http://www.lesswatts.org/projects/acpi/ 272W: http://www.lesswatts.org/projects/acpi/
267S: Maintained 273S: Maintained
268 274
275AD1889 ALSA SOUND DRIVER
276P: Kyle McMartin
277M: kyle@parisc-linux.org
278P: Thibaut Varene
279M: T-Bone@parisc-linux.org
280W: http://wiki.parisc-linux.org/AD1889
281L: linux-parisc@vger.kernel.org
282S: Maintained
283
269ADM1025 HARDWARE MONITOR DRIVER 284ADM1025 HARDWARE MONITOR DRIVER
270P: Jean Delvare 285P: Jean Delvare
271M: khali@linux-fr.org 286M: khali@linux-fr.org
@@ -443,7 +458,7 @@ S: Maintained
443 458
444ARM/ATMEL AT91RM9200 ARM ARCHITECTURE 459ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
445P: Andrew Victor 460P: Andrew Victor
446M: andrew@sanpeople.com 461M: linux@maxim.org.za
447L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 462L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
448W: http://maxim.org.za/at91_26.html 463W: http://maxim.org.za/at91_26.html
449S: Maintained 464S: Maintained
@@ -871,7 +886,7 @@ P: Marcel Holtmann
871M: marcel@holtmann.org 886M: marcel@holtmann.org
872P: Maxim Krasnyansky 887P: Maxim Krasnyansky
873M: maxk@qualcomm.com 888M: maxk@qualcomm.com
874L: bluez-devel@lists.sf.net 889L: linux-bluetooth@vger.kernel.org
875W: http://bluez.sf.net 890W: http://bluez.sf.net
876W: http://www.bluez.org 891W: http://www.bluez.org
877W: http://www.holtmann.org/linux/bluetooth/ 892W: http://www.holtmann.org/linux/bluetooth/
@@ -2052,43 +2067,19 @@ M: kernel@wantstofly.org
2052L: netdev@vger.kernel.org 2067L: netdev@vger.kernel.org
2053S: Maintained 2068S: Maintained
2054 2069
2055INTEL PRO/100 ETHERNET SUPPORT 2070INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe)
2056P: Auke Kok 2071P: Auke Kok
2057M: auke-jan.h.kok@intel.com 2072M: auke-jan.h.kok@intel.com
2058P: Jesse Brandeburg 2073P: Jesse Brandeburg
2059M: jesse.brandeburg@intel.com 2074M: jesse.brandeburg@intel.com
2060P: Jeff Kirsher 2075P: Jeff Kirsher
2061M: jeffrey.t.kirsher@intel.com 2076M: jeffrey.t.kirsher@intel.com
2077P: Bruce Allan
2078M: bruce.w.allan@intel.com
2062P: John Ronciak 2079P: John Ronciak
2063M: john.ronciak@intel.com 2080M: john.ronciak@intel.com
2064L: e1000-devel@lists.sourceforge.net 2081L: e1000-devel@lists.sourceforge.net
2065W: http://sourceforge.net/projects/e1000/ 2082W: http://e1000.sourceforge.net/
2066S: Supported
2067
2068INTEL PRO/1000 GIGABIT ETHERNET SUPPORT
2069P: Auke Kok
2070M: auke-jan.h.kok@intel.com
2071P: Jesse Brandeburg
2072M: jesse.brandeburg@intel.com
2073P: Jeff Kirsher
2074M: jeffrey.t.kirsher@intel.com
2075P: John Ronciak
2076M: john.ronciak@intel.com
2077L: e1000-devel@lists.sourceforge.net
2078W: http://sourceforge.net/projects/e1000/
2079S: Supported
2080
2081INTEL PRO/10GbE SUPPORT
2082P: Ayyappan Veeraiyan
2083M: ayyappan.veeraiyan@intel.com
2084P: Auke Kok
2085M: auke-jan.h.kok@intel.com
2086P: Jesse Brandeburg
2087M: jesse.brandeburg@intel.com
2088P: John Ronciak
2089M: john.ronciak@intel.com
2090L: e1000-devel@lists.sourceforge.net
2091W: http://sourceforge.net/projects/e1000/
2092S: Supported 2083S: Supported
2093 2084
2094INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT 2085INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
@@ -2125,7 +2116,7 @@ M: reinette.chatre@intel.com
2125L: linux-wireless@vger.kernel.org 2116L: linux-wireless@vger.kernel.org
2126L: ipw3945-devel@lists.sourceforge.net 2117L: ipw3945-devel@lists.sourceforge.net
2127W: http://intellinuxwireless.org 2118W: http://intellinuxwireless.org
2128T: git git://intellinuxwireless.org/repos/iwlwifi 2119T: git git://git.kernel.org/pub/scm/linux/kernel/git/rchatre/iwlwifi-2.6.git
2129S: Supported 2120S: Supported
2130 2121
2131IOC3 ETHERNET DRIVER 2122IOC3 ETHERNET DRIVER
@@ -2329,14 +2320,14 @@ L: kexec@lists.infradead.org
2329S: Maintained 2320S: Maintained
2330 2321
2331KPROBES 2322KPROBES
2332P: Prasanna S Panchamukhi
2333M: prasanna@in.ibm.com
2334P: Ananth N Mavinakayanahalli 2323P: Ananth N Mavinakayanahalli
2335M: ananth@in.ibm.com 2324M: ananth@in.ibm.com
2336P: Anil S Keshavamurthy 2325P: Anil S Keshavamurthy
2337M: anil.s.keshavamurthy@intel.com 2326M: anil.s.keshavamurthy@intel.com
2338P: David S. Miller 2327P: David S. Miller
2339M: davem@davemloft.net 2328M: davem@davemloft.net
2329P: Masami Hiramatsu
2330M: mhiramat@redhat.com
2340L: linux-kernel@vger.kernel.org 2331L: linux-kernel@vger.kernel.org
2341S: Maintained 2332S: Maintained
2342 2333
@@ -2950,9 +2941,9 @@ S: Maintained
2950 2941
2951ORACLE CLUSTER FILESYSTEM 2 (OCFS2) 2942ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
2952P: Mark Fasheh 2943P: Mark Fasheh
2953M: mark.fasheh@oracle.com 2944M: mfasheh@suse.com
2954P: Kurt Hackel 2945P: Joel Becker
2955M: kurt.hackel@oracle.com 2946M: joel.becker@oracle.com
2956L: ocfs2-devel@oss.oracle.com 2947L: ocfs2-devel@oss.oracle.com
2957W: http://oss.oracle.com/projects/ocfs2/ 2948W: http://oss.oracle.com/projects/ocfs2/
2958S: Supported 2949S: Supported
diff --git a/Makefile b/Makefile
index 0eb23e5bfc88..b08a259e21dc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 25 3SUBLEVEL = 25
4EXTRAVERSION = -rc5 4EXTRAVERSION = -rc7
5NAME = Funky Weasel is Jiggy wit it 5NAME = Funky Weasel is Jiggy wit it
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
@@ -189,7 +189,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
189# Alternatively CROSS_COMPILE can be set in the environment. 189# Alternatively CROSS_COMPILE can be set in the environment.
190# Default value for CROSS_COMPILE is not to prefix executables 190# Default value for CROSS_COMPILE is not to prefix executables
191# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile 191# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
192 192export KBUILD_BUILDHOST := $(SUBARCH)
193ARCH ?= $(SUBARCH) 193ARCH ?= $(SUBARCH)
194CROSS_COMPILE ?= 194CROSS_COMPILE ?=
195 195
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 002703b8c0b0..729cdbdf8036 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -330,6 +330,9 @@ config PCI_DOMAINS
330config PCI_SYSCALL 330config PCI_SYSCALL
331 def_bool PCI 331 def_bool PCI
332 332
333config IOMMU_HELPER
334 def_bool PCI
335
333config ALPHA_CORE_AGP 336config ALPHA_CORE_AGP
334 bool 337 bool
335 depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL 338 depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c
index e07a23fc5b74..4e1c08636edd 100644
--- a/arch/alpha/kernel/pci_iommu.c
+++ b/arch/alpha/kernel/pci_iommu.c
@@ -10,6 +10,7 @@
10#include <linux/scatterlist.h> 10#include <linux/scatterlist.h>
11#include <linux/log2.h> 11#include <linux/log2.h>
12#include <linux/dma-mapping.h> 12#include <linux/dma-mapping.h>
13#include <linux/iommu-helper.h>
13 14
14#include <asm/io.h> 15#include <asm/io.h>
15#include <asm/hwrpb.h> 16#include <asm/hwrpb.h>
@@ -125,14 +126,6 @@ iommu_arena_new(struct pci_controller *hose, dma_addr_t base,
125 return iommu_arena_new_node(0, hose, base, window_size, align); 126 return iommu_arena_new_node(0, hose, base, window_size, align);
126} 127}
127 128
128static inline int is_span_boundary(unsigned int index, unsigned int nr,
129 unsigned long shift,
130 unsigned long boundary_size)
131{
132 shift = (shift + index) & (boundary_size - 1);
133 return shift + nr > boundary_size;
134}
135
136/* Must be called with the arena lock held */ 129/* Must be called with the arena lock held */
137static long 130static long
138iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, 131iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena,
@@ -147,7 +140,6 @@ iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena,
147 base = arena->dma_base >> PAGE_SHIFT; 140 base = arena->dma_base >> PAGE_SHIFT;
148 if (dev) { 141 if (dev) {
149 boundary_size = dma_get_seg_boundary(dev) + 1; 142 boundary_size = dma_get_seg_boundary(dev) + 1;
150 BUG_ON(!is_power_of_2(boundary_size));
151 boundary_size >>= PAGE_SHIFT; 143 boundary_size >>= PAGE_SHIFT;
152 } else { 144 } else {
153 boundary_size = 1UL << (32 - PAGE_SHIFT); 145 boundary_size = 1UL << (32 - PAGE_SHIFT);
@@ -161,7 +153,7 @@ iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena,
161 153
162again: 154again:
163 while (i < n && p+i < nent) { 155 while (i < n && p+i < nent) {
164 if (!i && is_span_boundary(p, n, base, boundary_size)) { 156 if (!i && iommu_is_span_boundary(p, n, base, boundary_size)) {
165 p = ALIGN(p + 1, mask + 1); 157 p = ALIGN(p + 1, mask + 1);
166 goto again; 158 goto again;
167 } 159 }
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 955fc53c1c01..4039a133006e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -469,6 +469,7 @@ config ARCH_OMAP
469 bool "TI OMAP" 469 bool "TI OMAP"
470 select GENERIC_GPIO 470 select GENERIC_GPIO
471 select GENERIC_TIME 471 select GENERIC_TIME
472 select GENERIC_CLOCKEVENTS
472 help 473 help
473 Support for TI's OMAP platform (OMAP1 and OMAP2). 474 Support for TI's OMAP platform (OMAP1 and OMAP2).
474 475
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 7b8ff66febe1..1a4649667ec8 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -251,6 +251,7 @@ define archhelp
251 echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' 251 echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
252 echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' 252 echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
253 echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' 253 echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
254 echo ' uImage - U-Boot wrapped zImage'
254 echo ' bootpImage - Combined zImage and initial RAM disk' 255 echo ' bootpImage - Combined zImage and initial RAM disk'
255 echo ' (supply initrd image via make variable INITRD=<path>)' 256 echo ' (supply initrd image via make variable INITRD=<path>)'
256 echo ' install - Install uncompressed kernel' 257 echo ' install - Install uncompressed kernel'
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
index 97b7dc13d9aa..538262241483 100644
--- a/arch/arm/common/it8152.c
+++ b/arch/arm/common/it8152.c
@@ -274,7 +274,7 @@ static int it8152_pci_platform_notify_remove(struct device *dev)
274int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) 274int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size)
275{ 275{
276 dev_dbg(dev, "%s: dma_addr %08x, size %08x\n", 276 dev_dbg(dev, "%s: dma_addr %08x, size %08x\n",
277 __FUNCTION__, dma_addr, size); 277 __func__, dma_addr, size);
278 return (dev->bus == &pci_bus_type) && 278 return (dev->bus == &pci_bus_type) &&
279 ((dma_addr + size - PHYS_OFFSET) >= SZ_64M); 279 ((dma_addr + size - PHYS_OFFSET) >= SZ_64M);
280} 280}
@@ -289,7 +289,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size)
289 */ 289 */
290int pci_set_dma_mask(struct pci_dev *dev, u64 mask) 290int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
291{ 291{
292 dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); 292 dev_dbg(&dev->dev, "%s: %llx\n", __func__, mask);
293 if (mask >= PHYS_OFFSET + SZ_64M - 1) 293 if (mask >= PHYS_OFFSET + SZ_64M - 1)
294 return 0; 294 return 0;
295 295
@@ -299,7 +299,7 @@ int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
299int 299int
300pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) 300pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
301{ 301{
302 dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); 302 dev_dbg(&dev->dev, "%s: %llx\n", __func__, mask);
303 if (mask >= PHYS_OFFSET + SZ_64M - 1) 303 if (mask >= PHYS_OFFSET + SZ_64M - 1)
304 return 0; 304 return 0;
305 305
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index c2345af3707a..323c1deeb953 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc3
4# Mon Dec 17 20:04:38 2007 4# Mon Mar 3 03:39:48 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_ZONE_DMA=y 25CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -40,17 +41,22 @@ CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set 41# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_PID_NS is not set
45# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14 46CONFIG_LOG_BUF_SHIFT=14
48# CONFIG_CGROUPS is not set 47# CONFIG_CGROUPS is not set
48CONFIG_GROUP_SCHED=y
49CONFIG_FAIR_GROUP_SCHED=y 49CONFIG_FAIR_GROUP_SCHED=y
50CONFIG_FAIR_USER_SCHED=y 50# CONFIG_RT_GROUP_SCHED is not set
51# CONFIG_FAIR_CGROUP_SCHED is not set 51CONFIG_USER_SCHED=y
52# CONFIG_CGROUP_SCHED is not set
52# CONFIG_SYSFS_DEPRECATED is not set 53# CONFIG_SYSFS_DEPRECATED is not set
53# CONFIG_RELAY is not set 54# CONFIG_RELAY is not set
55CONFIG_NAMESPACES=y
56# CONFIG_UTS_NS is not set
57# CONFIG_IPC_NS is not set
58# CONFIG_USER_NS is not set
59# CONFIG_PID_NS is not set
54CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
55CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -64,17 +70,26 @@ CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 70CONFIG_PRINTK=y
65CONFIG_BUG=y 71CONFIG_BUG=y
66CONFIG_ELF_CORE=y 72CONFIG_ELF_CORE=y
73CONFIG_COMPAT_BRK=y
67CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
68CONFIG_FUTEX=y 75CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y 76CONFIG_ANON_INODES=y
70CONFIG_EPOLL=y 77CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y 78CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y 80CONFIG_EVENTFD=y
73CONFIG_SHMEM=y 81CONFIG_SHMEM=y
74CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y 83CONFIG_SLAB=y
76# CONFIG_SLUB is not set 84# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 85# CONFIG_SLOB is not set
86# CONFIG_PROFILING is not set
87# CONFIG_MARKERS is not set
88CONFIG_HAVE_OPROFILE=y
89# CONFIG_KPROBES is not set
90CONFIG_HAVE_KPROBES=y
91CONFIG_PROC_PAGE_MONITOR=y
92CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
@@ -102,6 +117,8 @@ CONFIG_DEFAULT_AS=y
102# CONFIG_DEFAULT_CFQ is not set 117# CONFIG_DEFAULT_CFQ is not set
103# CONFIG_DEFAULT_NOOP is not set 118# CONFIG_DEFAULT_NOOP is not set
104CONFIG_DEFAULT_IOSCHED="anticipatory" 119CONFIG_DEFAULT_IOSCHED="anticipatory"
120CONFIG_CLASSIC_RCU=y
121# CONFIG_PREEMPT_RCU is not set
105 122
106# 123#
107# System Type 124# System Type
@@ -130,6 +147,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
130# CONFIG_ARCH_KS8695 is not set 147# CONFIG_ARCH_KS8695 is not set
131# CONFIG_ARCH_NS9XXX is not set 148# CONFIG_ARCH_NS9XXX is not set
132# CONFIG_ARCH_MXC is not set 149# CONFIG_ARCH_MXC is not set
150# CONFIG_ARCH_ORION is not set
133# CONFIG_ARCH_PNX4008 is not set 151# CONFIG_ARCH_PNX4008 is not set
134# CONFIG_ARCH_PXA is not set 152# CONFIG_ARCH_PXA is not set
135# CONFIG_ARCH_RPC is not set 153# CONFIG_ARCH_RPC is not set
@@ -139,6 +157,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
139# CONFIG_ARCH_LH7A40X is not set 157# CONFIG_ARCH_LH7A40X is not set
140# CONFIG_ARCH_DAVINCI is not set 158# CONFIG_ARCH_DAVINCI is not set
141CONFIG_ARCH_OMAP=y 159CONFIG_ARCH_OMAP=y
160# CONFIG_ARCH_MSM7X00A is not set
142 161
143# 162#
144# TI OMAP Implementations 163# TI OMAP Implementations
@@ -155,6 +174,7 @@ CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set 174# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y 175CONFIG_OMAP_MUX_WARNINGS=y
157CONFIG_OMAP_MCBSP=y 176CONFIG_OMAP_MCBSP=y
177# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MPU_TIMER is not set 178# CONFIG_OMAP_MPU_TIMER is not set
159CONFIG_OMAP_32K_TIMER=y 179CONFIG_OMAP_32K_TIMER=y
160CONFIG_OMAP_32K_TIMER_HZ=128 180CONFIG_OMAP_32K_TIMER_HZ=128
@@ -266,6 +286,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
266CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" 286CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
267# CONFIG_XIP_KERNEL is not set 287# CONFIG_XIP_KERNEL is not set
268# CONFIG_KEXEC is not set 288# CONFIG_KEXEC is not set
289# CONFIG_ATAGS_PROC is not set
269 290
270# 291#
271# CPU Frequency scaling 292# CPU Frequency scaling
@@ -311,9 +332,10 @@ CONFIG_PM=y
311# CONFIG_PM_LEGACY is not set 332# CONFIG_PM_LEGACY is not set
312# CONFIG_PM_DEBUG is not set 333# CONFIG_PM_DEBUG is not set
313CONFIG_PM_SLEEP=y 334CONFIG_PM_SLEEP=y
314CONFIG_SUSPEND_UP_POSSIBLE=y
315CONFIG_SUSPEND=y 335CONFIG_SUSPEND=y
336CONFIG_SUSPEND_FREEZER=y
316# CONFIG_APM_EMULATION is not set 337# CONFIG_APM_EMULATION is not set
338CONFIG_ARCH_SUSPEND_POSSIBLE=y
317 339
318# 340#
319# Networking 341# Networking
@@ -330,6 +352,7 @@ CONFIG_XFRM=y
330# CONFIG_XFRM_USER is not set 352# CONFIG_XFRM_USER is not set
331# CONFIG_XFRM_SUB_POLICY is not set 353# CONFIG_XFRM_SUB_POLICY is not set
332# CONFIG_XFRM_MIGRATE is not set 354# CONFIG_XFRM_MIGRATE is not set
355# CONFIG_XFRM_STATISTICS is not set
333# CONFIG_NET_KEY is not set 356# CONFIG_NET_KEY is not set
334CONFIG_INET=y 357CONFIG_INET=y
335# CONFIG_IP_MULTICAST is not set 358# CONFIG_IP_MULTICAST is not set
@@ -384,6 +407,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
384# 407#
385# CONFIG_NET_PKTGEN is not set 408# CONFIG_NET_PKTGEN is not set
386# CONFIG_HAMRADIO is not set 409# CONFIG_HAMRADIO is not set
410# CONFIG_CAN is not set
387# CONFIG_IRDA is not set 411# CONFIG_IRDA is not set
388# CONFIG_BT is not set 412# CONFIG_BT is not set
389# CONFIG_AF_RXRPC is not set 413# CONFIG_AF_RXRPC is not set
@@ -421,11 +445,13 @@ CONFIG_BLK_DEV_LOOP=y
421CONFIG_BLK_DEV_RAM=y 445CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 446CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=8192 447CONFIG_BLK_DEV_RAM_SIZE=8192
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 448# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 449# CONFIG_CDROM_PKTCDVD is not set
426CONFIG_ATA_OVER_ETH=m 450CONFIG_ATA_OVER_ETH=m
427CONFIG_MISC_DEVICES=y 451CONFIG_MISC_DEVICES=y
428# CONFIG_EEPROM_93CX6 is not set 452# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set
454# CONFIG_HAVE_IDE is not set
429 455
430# 456#
431# SCSI device support 457# SCSI device support
@@ -489,6 +515,7 @@ CONFIG_SMC91X=y
489# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 515# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
490# CONFIG_B44 is not set 516# CONFIG_B44 is not set
491CONFIG_NETDEV_1000=y 517CONFIG_NETDEV_1000=y
518# CONFIG_E1000E_ENABLED is not set
492CONFIG_NETDEV_10000=y 519CONFIG_NETDEV_10000=y
493 520
494# 521#
@@ -512,7 +539,6 @@ CONFIG_SLIP_COMPRESSED=y
512CONFIG_SLHC=y 539CONFIG_SLHC=y
513# CONFIG_SLIP_SMART is not set 540# CONFIG_SLIP_SMART is not set
514# CONFIG_SLIP_MODE_SLIP6 is not set 541# CONFIG_SLIP_MODE_SLIP6 is not set
515# CONFIG_SHAPER is not set
516# CONFIG_NETCONSOLE is not set 542# CONFIG_NETCONSOLE is not set
517# CONFIG_NETPOLL is not set 543# CONFIG_NETPOLL is not set
518# CONFIG_NET_POLL_CONTROLLER is not set 544# CONFIG_NET_POLL_CONTROLLER is not set
@@ -616,12 +642,10 @@ CONFIG_I2C_OMAP=y
616# 642#
617# Miscellaneous I2C Chip support 643# Miscellaneous I2C Chip support
618# 644#
619# CONFIG_SENSORS_DS1337 is not set
620# CONFIG_SENSORS_DS1374 is not set
621# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
622# CONFIG_SENSORS_EEPROM is not set 646# CONFIG_SENSORS_EEPROM is not set
623# CONFIG_SENSORS_PCF8574 is not set 647# CONFIG_SENSORS_PCF8574 is not set
624# CONFIG_SENSORS_PCA9539 is not set 648# CONFIG_PCF8575 is not set
625# CONFIG_SENSORS_PCF8591 is not set 649# CONFIG_SENSORS_PCF8591 is not set
626# CONFIG_ISP1301_OMAP is not set 650# CONFIG_ISP1301_OMAP is not set
627CONFIG_TPS65010=y 651CONFIG_TPS65010=y
@@ -649,6 +673,7 @@ CONFIG_HWMON=y
649# CONFIG_SENSORS_ADM1031 is not set 673# CONFIG_SENSORS_ADM1031 is not set
650# CONFIG_SENSORS_ADM9240 is not set 674# CONFIG_SENSORS_ADM9240 is not set
651# CONFIG_SENSORS_ADT7470 is not set 675# CONFIG_SENSORS_ADT7470 is not set
676# CONFIG_SENSORS_ADT7473 is not set
652# CONFIG_SENSORS_ATXP1 is not set 677# CONFIG_SENSORS_ATXP1 is not set
653# CONFIG_SENSORS_DS1621 is not set 678# CONFIG_SENSORS_DS1621 is not set
654# CONFIG_SENSORS_F71805F is not set 679# CONFIG_SENSORS_F71805F is not set
@@ -676,6 +701,7 @@ CONFIG_HWMON=y
676# CONFIG_SENSORS_SMSC47M1 is not set 701# CONFIG_SENSORS_SMSC47M1 is not set
677# CONFIG_SENSORS_SMSC47M192 is not set 702# CONFIG_SENSORS_SMSC47M192 is not set
678# CONFIG_SENSORS_SMSC47B397 is not set 703# CONFIG_SENSORS_SMSC47B397 is not set
704# CONFIG_SENSORS_ADS7828 is not set
679# CONFIG_SENSORS_THMC50 is not set 705# CONFIG_SENSORS_THMC50 is not set
680# CONFIG_SENSORS_VT1211 is not set 706# CONFIG_SENSORS_VT1211 is not set
681# CONFIG_SENSORS_W83781D is not set 707# CONFIG_SENSORS_W83781D is not set
@@ -683,6 +709,7 @@ CONFIG_HWMON=y
683# CONFIG_SENSORS_W83792D is not set 709# CONFIG_SENSORS_W83792D is not set
684# CONFIG_SENSORS_W83793 is not set 710# CONFIG_SENSORS_W83793 is not set
685# CONFIG_SENSORS_W83L785TS is not set 711# CONFIG_SENSORS_W83L785TS is not set
712# CONFIG_SENSORS_W83L786NG is not set
686# CONFIG_SENSORS_W83627HF is not set 713# CONFIG_SENSORS_W83627HF is not set
687# CONFIG_SENSORS_W83627EHF is not set 714# CONFIG_SENSORS_W83627EHF is not set
688# CONFIG_HWMON_DEBUG_CHIP is not set 715# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -705,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y
705# Multifunction device drivers 732# Multifunction device drivers
706# 733#
707# CONFIG_MFD_SM501 is not set 734# CONFIG_MFD_SM501 is not set
735# CONFIG_MFD_ASIC3 is not set
708 736
709# 737#
710# Multimedia devices 738# Multimedia devices
@@ -802,10 +830,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y
802# 830#
803# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 831# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
804# 832#
805
806#
807# USB Gadget Support
808#
809# CONFIG_USB_GADGET is not set 833# CONFIG_USB_GADGET is not set
810# CONFIG_MMC is not set 834# CONFIG_MMC is not set
811# CONFIG_NEW_LEDS is not set 835# CONFIG_NEW_LEDS is not set
@@ -826,12 +850,10 @@ CONFIG_EXT2_FS=y
826# CONFIG_XFS_FS is not set 850# CONFIG_XFS_FS is not set
827# CONFIG_GFS2_FS is not set 851# CONFIG_GFS2_FS is not set
828# CONFIG_OCFS2_FS is not set 852# CONFIG_OCFS2_FS is not set
829# CONFIG_MINIX_FS is not set 853CONFIG_DNOTIFY=y
830CONFIG_ROMFS_FS=y
831CONFIG_INOTIFY=y 854CONFIG_INOTIFY=y
832CONFIG_INOTIFY_USER=y 855CONFIG_INOTIFY_USER=y
833# CONFIG_QUOTA is not set 856# CONFIG_QUOTA is not set
834CONFIG_DNOTIFY=y
835# CONFIG_AUTOFS_FS is not set 857# CONFIG_AUTOFS_FS is not set
836# CONFIG_AUTOFS4_FS is not set 858# CONFIG_AUTOFS4_FS is not set
837# CONFIG_FUSE_FS is not set 859# CONFIG_FUSE_FS is not set
@@ -874,8 +896,10 @@ CONFIG_SYSFS=y
874# CONFIG_EFS_FS is not set 896# CONFIG_EFS_FS is not set
875CONFIG_CRAMFS=y 897CONFIG_CRAMFS=y
876# CONFIG_VXFS_FS is not set 898# CONFIG_VXFS_FS is not set
899# CONFIG_MINIX_FS is not set
877# CONFIG_HPFS_FS is not set 900# CONFIG_HPFS_FS is not set
878# CONFIG_QNX4FS_FS is not set 901# CONFIG_QNX4FS_FS is not set
902CONFIG_ROMFS_FS=y
879# CONFIG_SYSV_FS is not set 903# CONFIG_SYSV_FS is not set
880# CONFIG_UFS_FS is not set 904# CONFIG_UFS_FS is not set
881CONFIG_NETWORK_FILESYSTEMS=y 905CONFIG_NETWORK_FILESYSTEMS=y
@@ -946,9 +970,6 @@ CONFIG_NLS_ISO8859_1=y
946# CONFIG_NLS_KOI8_U is not set 970# CONFIG_NLS_KOI8_U is not set
947# CONFIG_NLS_UTF8 is not set 971# CONFIG_NLS_UTF8 is not set
948# CONFIG_DLM is not set 972# CONFIG_DLM is not set
949CONFIG_INSTRUMENTATION=y
950# CONFIG_PROFILING is not set
951# CONFIG_MARKERS is not set
952 973
953# 974#
954# Kernel hacking 975# Kernel hacking
@@ -975,6 +996,7 @@ CONFIG_FRAME_POINTER=y
975CONFIG_CRYPTO=y 996CONFIG_CRYPTO=y
976CONFIG_CRYPTO_ALGAPI=y 997CONFIG_CRYPTO_ALGAPI=y
977CONFIG_CRYPTO_BLKCIPHER=y 998CONFIG_CRYPTO_BLKCIPHER=y
999# CONFIG_CRYPTO_SEQIV is not set
978CONFIG_CRYPTO_MANAGER=y 1000CONFIG_CRYPTO_MANAGER=y
979# CONFIG_CRYPTO_HMAC is not set 1001# CONFIG_CRYPTO_HMAC is not set
980# CONFIG_CRYPTO_XCBC is not set 1002# CONFIG_CRYPTO_XCBC is not set
@@ -992,6 +1014,9 @@ CONFIG_CRYPTO_CBC=y
992CONFIG_CRYPTO_PCBC=m 1014CONFIG_CRYPTO_PCBC=m
993# CONFIG_CRYPTO_LRW is not set 1015# CONFIG_CRYPTO_LRW is not set
994# CONFIG_CRYPTO_XTS is not set 1016# CONFIG_CRYPTO_XTS is not set
1017# CONFIG_CRYPTO_CTR is not set
1018# CONFIG_CRYPTO_GCM is not set
1019# CONFIG_CRYPTO_CCM is not set
995# CONFIG_CRYPTO_CRYPTD is not set 1020# CONFIG_CRYPTO_CRYPTD is not set
996CONFIG_CRYPTO_DES=y 1021CONFIG_CRYPTO_DES=y
997# CONFIG_CRYPTO_FCRYPT is not set 1022# CONFIG_CRYPTO_FCRYPT is not set
@@ -1006,12 +1031,14 @@ CONFIG_CRYPTO_DES=y
1006# CONFIG_CRYPTO_KHAZAD is not set 1031# CONFIG_CRYPTO_KHAZAD is not set
1007# CONFIG_CRYPTO_ANUBIS is not set 1032# CONFIG_CRYPTO_ANUBIS is not set
1008# CONFIG_CRYPTO_SEED is not set 1033# CONFIG_CRYPTO_SEED is not set
1034# CONFIG_CRYPTO_SALSA20 is not set
1009# CONFIG_CRYPTO_DEFLATE is not set 1035# CONFIG_CRYPTO_DEFLATE is not set
1010# CONFIG_CRYPTO_MICHAEL_MIC is not set 1036# CONFIG_CRYPTO_MICHAEL_MIC is not set
1011# CONFIG_CRYPTO_CRC32C is not set 1037# CONFIG_CRYPTO_CRC32C is not set
1012# CONFIG_CRYPTO_CAMELLIA is not set 1038# CONFIG_CRYPTO_CAMELLIA is not set
1013# CONFIG_CRYPTO_TEST is not set 1039# CONFIG_CRYPTO_TEST is not set
1014# CONFIG_CRYPTO_AUTHENC is not set 1040# CONFIG_CRYPTO_AUTHENC is not set
1041# CONFIG_CRYPTO_LZO is not set
1015CONFIG_CRYPTO_HW=y 1042CONFIG_CRYPTO_HW=y
1016 1043
1017# 1044#
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index d592a6487114..d4ca5e6e4ffa 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc3
4# Mon Dec 17 21:12:45 2007 4# Mon Mar 3 03:35:17 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_ZONE_DMA=y 25CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -39,17 +40,22 @@ CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set 40# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set 41# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set 42# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
44# CONFIG_AUDIT is not set 43# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set 44# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14 45CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set 46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y 49# CONFIG_RT_GROUP_SCHED is not set
50# CONFIG_FAIR_CGROUP_SCHED is not set 50CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set
51# CONFIG_SYSFS_DEPRECATED is not set 52# CONFIG_SYSFS_DEPRECATED is not set
52# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
53CONFIG_BLK_DEV_INITRD=y 59CONFIG_BLK_DEV_INITRD=y
54CONFIG_INITRAMFS_SOURCE="" 60CONFIG_INITRAMFS_SOURCE=""
55CONFIG_CC_OPTIMIZE_FOR_SIZE=y 61CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -63,17 +69,26 @@ CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 69CONFIG_PRINTK=y
64CONFIG_BUG=y 70CONFIG_BUG=y
65CONFIG_ELF_CORE=y 71CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
66CONFIG_BASE_FULL=y 73CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y 74CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y 75CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y 76CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
71CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 80CONFIG_SHMEM=y
73CONFIG_VM_EVENT_COUNTERS=y 81CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_SLAB=y 82CONFIG_SLAB=y
75# CONFIG_SLUB is not set 83# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
85# CONFIG_PROFILING is not set
86# CONFIG_MARKERS is not set
87CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y
90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_SLABINFO=y
77CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
78# CONFIG_TINY_SHMEM is not set 93# CONFIG_TINY_SHMEM is not set
79CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
@@ -101,6 +116,8 @@ CONFIG_IOSCHED_CFQ=y
101CONFIG_DEFAULT_CFQ=y 116CONFIG_DEFAULT_CFQ=y
102# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="cfq" 118CONFIG_DEFAULT_IOSCHED="cfq"
119CONFIG_CLASSIC_RCU=y
120# CONFIG_PREEMPT_RCU is not set
104 121
105# 122#
106# System Type 123# System Type
@@ -129,6 +146,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
129# CONFIG_ARCH_KS8695 is not set 146# CONFIG_ARCH_KS8695 is not set
130# CONFIG_ARCH_NS9XXX is not set 147# CONFIG_ARCH_NS9XXX is not set
131# CONFIG_ARCH_MXC is not set 148# CONFIG_ARCH_MXC is not set
149# CONFIG_ARCH_ORION is not set
132# CONFIG_ARCH_PNX4008 is not set 150# CONFIG_ARCH_PNX4008 is not set
133# CONFIG_ARCH_PXA is not set 151# CONFIG_ARCH_PXA is not set
134# CONFIG_ARCH_RPC is not set 152# CONFIG_ARCH_RPC is not set
@@ -138,6 +156,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
138# CONFIG_ARCH_LH7A40X is not set 156# CONFIG_ARCH_LH7A40X is not set
139# CONFIG_ARCH_DAVINCI is not set 157# CONFIG_ARCH_DAVINCI is not set
140CONFIG_ARCH_OMAP=y 158CONFIG_ARCH_OMAP=y
159# CONFIG_ARCH_MSM7X00A is not set
141 160
142# 161#
143# TI OMAP Implementations 162# TI OMAP Implementations
@@ -154,6 +173,7 @@ CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set 173# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y 174CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y 175CONFIG_OMAP_MCBSP=y
176# CONFIG_OMAP_MMU_FWK is not set
157# CONFIG_OMAP_MPU_TIMER is not set 177# CONFIG_OMAP_MPU_TIMER is not set
158CONFIG_OMAP_32K_TIMER=y 178CONFIG_OMAP_32K_TIMER=y
159CONFIG_OMAP_32K_TIMER_HZ=128 179CONFIG_OMAP_32K_TIMER_HZ=128
@@ -173,13 +193,13 @@ CONFIG_ARCH_OMAP16XX=y
173# 193#
174# OMAP Board Type 194# OMAP Board Type
175# 195#
176# CONFIG_MACH_OMAP_INNOVATOR is not set 196CONFIG_MACH_OMAP_INNOVATOR=y
177# CONFIG_MACH_OMAP_H2 is not set 197CONFIG_MACH_OMAP_H2=y
178# CONFIG_MACH_OMAP_H3 is not set 198CONFIG_MACH_OMAP_H3=y
179CONFIG_MACH_OMAP_OSK=y 199CONFIG_MACH_OMAP_OSK=y
180# CONFIG_OMAP_OSK_MISTRAL is not set 200# CONFIG_OMAP_OSK_MISTRAL is not set
181# CONFIG_MACH_NOKIA770 is not set 201CONFIG_MACH_NOKIA770=y
182# CONFIG_MACH_OMAP_GENERIC is not set 202CONFIG_MACH_OMAP_GENERIC=y
183 203
184# 204#
185# OMAP CPU Speed 205# OMAP CPU Speed
@@ -275,6 +295,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
275CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" 295CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
276# CONFIG_XIP_KERNEL is not set 296# CONFIG_XIP_KERNEL is not set
277# CONFIG_KEXEC is not set 297# CONFIG_KEXEC is not set
298# CONFIG_ATAGS_PROC is not set
278 299
279# 300#
280# CPU Frequency scaling 301# CPU Frequency scaling
@@ -307,9 +328,10 @@ CONFIG_PM=y
307# CONFIG_PM_LEGACY is not set 328# CONFIG_PM_LEGACY is not set
308# CONFIG_PM_DEBUG is not set 329# CONFIG_PM_DEBUG is not set
309CONFIG_PM_SLEEP=y 330CONFIG_PM_SLEEP=y
310CONFIG_SUSPEND_UP_POSSIBLE=y
311CONFIG_SUSPEND=y 331CONFIG_SUSPEND=y
332CONFIG_SUSPEND_FREEZER=y
312# CONFIG_APM_EMULATION is not set 333# CONFIG_APM_EMULATION is not set
334CONFIG_ARCH_SUSPEND_POSSIBLE=y
313 335
314# 336#
315# Networking 337# Networking
@@ -326,6 +348,7 @@ CONFIG_XFRM=y
326# CONFIG_XFRM_USER is not set 348# CONFIG_XFRM_USER is not set
327# CONFIG_XFRM_SUB_POLICY is not set 349# CONFIG_XFRM_SUB_POLICY is not set
328# CONFIG_XFRM_MIGRATE is not set 350# CONFIG_XFRM_MIGRATE is not set
351# CONFIG_XFRM_STATISTICS is not set
329# CONFIG_NET_KEY is not set 352# CONFIG_NET_KEY is not set
330CONFIG_INET=y 353CONFIG_INET=y
331CONFIG_IP_MULTICAST=y 354CONFIG_IP_MULTICAST=y
@@ -381,6 +404,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
381# 404#
382# CONFIG_NET_PKTGEN is not set 405# CONFIG_NET_PKTGEN is not set
383# CONFIG_HAMRADIO is not set 406# CONFIG_HAMRADIO is not set
407# CONFIG_CAN is not set
384# CONFIG_IRDA is not set 408# CONFIG_IRDA is not set
385# CONFIG_BT is not set 409# CONFIG_BT is not set
386# CONFIG_AF_RXRPC is not set 410# CONFIG_AF_RXRPC is not set
@@ -493,11 +517,13 @@ CONFIG_BLK_DEV_LOOP=y
493CONFIG_BLK_DEV_RAM=y 517CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16 518CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=8192 519CONFIG_BLK_DEV_RAM_SIZE=8192
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 520# CONFIG_BLK_DEV_XIP is not set
497# CONFIG_CDROM_PKTCDVD is not set 521# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set 522# CONFIG_ATA_OVER_ETH is not set
499CONFIG_MISC_DEVICES=y 523CONFIG_MISC_DEVICES=y
500# CONFIG_EEPROM_93CX6 is not set 524# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_ENCLOSURE_SERVICES is not set
526CONFIG_HAVE_IDE=y
501CONFIG_IDE=m 527CONFIG_IDE=m
502CONFIG_BLK_DEV_IDE=m 528CONFIG_BLK_DEV_IDE=m
503 529
@@ -519,7 +545,6 @@ CONFIG_IDE_PROC_FS=y
519# 545#
520# CONFIG_IDE_GENERIC is not set 546# CONFIG_IDE_GENERIC is not set
521# CONFIG_BLK_DEV_PLATFORM is not set 547# CONFIG_BLK_DEV_PLATFORM is not set
522# CONFIG_IDE_ARM is not set
523# CONFIG_BLK_DEV_IDEDMA is not set 548# CONFIG_BLK_DEV_IDEDMA is not set
524CONFIG_IDE_ARCH_OBSOLETE_INIT=y 549CONFIG_IDE_ARCH_OBSOLETE_INIT=y
525# CONFIG_BLK_DEV_HD is not set 550# CONFIG_BLK_DEV_HD is not set
@@ -553,6 +578,7 @@ CONFIG_SMC91X=y
553# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 578# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
554# CONFIG_B44 is not set 579# CONFIG_B44 is not set
555CONFIG_NETDEV_1000=y 580CONFIG_NETDEV_1000=y
581# CONFIG_E1000E_ENABLED is not set
556CONFIG_NETDEV_10000=y 582CONFIG_NETDEV_10000=y
557 583
558# 584#
@@ -574,7 +600,6 @@ CONFIG_PPP_MULTILINK=y
574# CONFIG_PPPOL2TP is not set 600# CONFIG_PPPOL2TP is not set
575# CONFIG_SLIP is not set 601# CONFIG_SLIP is not set
576CONFIG_SLHC=y 602CONFIG_SLHC=y
577# CONFIG_SHAPER is not set
578# CONFIG_NETCONSOLE is not set 603# CONFIG_NETCONSOLE is not set
579# CONFIG_NETPOLL is not set 604# CONFIG_NETPOLL is not set
580# CONFIG_NET_POLL_CONTROLLER is not set 605# CONFIG_NET_POLL_CONTROLLER is not set
@@ -671,6 +696,7 @@ CONFIG_HW_RANDOM_OMAP=m
671# CONFIG_SYNCLINK_CS is not set 696# CONFIG_SYNCLINK_CS is not set
672# CONFIG_CARDMAN_4000 is not set 697# CONFIG_CARDMAN_4000 is not set
673# CONFIG_CARDMAN_4040 is not set 698# CONFIG_CARDMAN_4040 is not set
699# CONFIG_IPWIRELESS is not set
674# CONFIG_RAW_DRIVER is not set 700# CONFIG_RAW_DRIVER is not set
675# CONFIG_TCG_TPM is not set 701# CONFIG_TCG_TPM is not set
676CONFIG_I2C=y 702CONFIG_I2C=y
@@ -698,12 +724,10 @@ CONFIG_I2C_OMAP=y
698# 724#
699# Miscellaneous I2C Chip support 725# Miscellaneous I2C Chip support
700# 726#
701# CONFIG_SENSORS_DS1337 is not set
702# CONFIG_SENSORS_DS1374 is not set
703# CONFIG_DS1682 is not set 727# CONFIG_DS1682 is not set
704# CONFIG_SENSORS_EEPROM is not set 728# CONFIG_SENSORS_EEPROM is not set
705# CONFIG_SENSORS_PCF8574 is not set 729# CONFIG_SENSORS_PCF8574 is not set
706# CONFIG_SENSORS_PCA9539 is not set 730# CONFIG_PCF8575 is not set
707# CONFIG_SENSORS_PCF8591 is not set 731# CONFIG_SENSORS_PCF8591 is not set
708# CONFIG_ISP1301_OMAP is not set 732# CONFIG_ISP1301_OMAP is not set
709CONFIG_TPS65010=y 733CONFIG_TPS65010=y
@@ -731,6 +755,7 @@ CONFIG_HWMON=y
731# CONFIG_SENSORS_ADM1031 is not set 755# CONFIG_SENSORS_ADM1031 is not set
732# CONFIG_SENSORS_ADM9240 is not set 756# CONFIG_SENSORS_ADM9240 is not set
733# CONFIG_SENSORS_ADT7470 is not set 757# CONFIG_SENSORS_ADT7470 is not set
758# CONFIG_SENSORS_ADT7473 is not set
734# CONFIG_SENSORS_ATXP1 is not set 759# CONFIG_SENSORS_ATXP1 is not set
735# CONFIG_SENSORS_DS1621 is not set 760# CONFIG_SENSORS_DS1621 is not set
736# CONFIG_SENSORS_F71805F is not set 761# CONFIG_SENSORS_F71805F is not set
@@ -758,6 +783,7 @@ CONFIG_HWMON=y
758# CONFIG_SENSORS_SMSC47M1 is not set 783# CONFIG_SENSORS_SMSC47M1 is not set
759# CONFIG_SENSORS_SMSC47M192 is not set 784# CONFIG_SENSORS_SMSC47M192 is not set
760# CONFIG_SENSORS_SMSC47B397 is not set 785# CONFIG_SENSORS_SMSC47B397 is not set
786# CONFIG_SENSORS_ADS7828 is not set
761# CONFIG_SENSORS_THMC50 is not set 787# CONFIG_SENSORS_THMC50 is not set
762# CONFIG_SENSORS_VT1211 is not set 788# CONFIG_SENSORS_VT1211 is not set
763# CONFIG_SENSORS_W83781D is not set 789# CONFIG_SENSORS_W83781D is not set
@@ -765,6 +791,7 @@ CONFIG_HWMON=y
765# CONFIG_SENSORS_W83792D is not set 791# CONFIG_SENSORS_W83792D is not set
766# CONFIG_SENSORS_W83793 is not set 792# CONFIG_SENSORS_W83793 is not set
767# CONFIG_SENSORS_W83L785TS is not set 793# CONFIG_SENSORS_W83L785TS is not set
794# CONFIG_SENSORS_W83L786NG is not set
768# CONFIG_SENSORS_W83627HF is not set 795# CONFIG_SENSORS_W83627HF is not set
769# CONFIG_SENSORS_W83627EHF is not set 796# CONFIG_SENSORS_W83627EHF is not set
770# CONFIG_HWMON_DEBUG_CHIP is not set 797# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -780,6 +807,7 @@ CONFIG_SSB_POSSIBLE=y
780# Multifunction device drivers 807# Multifunction device drivers
781# 808#
782# CONFIG_MFD_SM501 is not set 809# CONFIG_MFD_SM501 is not set
810# CONFIG_MFD_ASIC3 is not set
783 811
784# 812#
785# Multimedia devices 813# Multimedia devices
@@ -865,10 +893,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y
865# 893#
866# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 894# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
867# 895#
868
869#
870# USB Gadget Support
871#
872# CONFIG_USB_GADGET is not set 896# CONFIG_USB_GADGET is not set
873# CONFIG_MMC is not set 897# CONFIG_MMC is not set
874# CONFIG_NEW_LEDS is not set 898# CONFIG_NEW_LEDS is not set
@@ -889,12 +913,10 @@ CONFIG_EXT2_FS=y
889# CONFIG_XFS_FS is not set 913# CONFIG_XFS_FS is not set
890# CONFIG_GFS2_FS is not set 914# CONFIG_GFS2_FS is not set
891# CONFIG_OCFS2_FS is not set 915# CONFIG_OCFS2_FS is not set
892# CONFIG_MINIX_FS is not set 916CONFIG_DNOTIFY=y
893# CONFIG_ROMFS_FS is not set
894CONFIG_INOTIFY=y 917CONFIG_INOTIFY=y
895CONFIG_INOTIFY_USER=y 918CONFIG_INOTIFY_USER=y
896# CONFIG_QUOTA is not set 919# CONFIG_QUOTA is not set
897CONFIG_DNOTIFY=y
898CONFIG_AUTOFS_FS=y 920CONFIG_AUTOFS_FS=y
899CONFIG_AUTOFS4_FS=y 921CONFIG_AUTOFS4_FS=y
900# CONFIG_FUSE_FS is not set 922# CONFIG_FUSE_FS is not set
@@ -948,8 +970,10 @@ CONFIG_JFFS2_RTIME=y
948# CONFIG_JFFS2_RUBIN is not set 970# CONFIG_JFFS2_RUBIN is not set
949# CONFIG_CRAMFS is not set 971# CONFIG_CRAMFS is not set
950# CONFIG_VXFS_FS is not set 972# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set
951# CONFIG_HPFS_FS is not set 974# CONFIG_HPFS_FS is not set
952# CONFIG_QNX4FS_FS is not set 975# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set
953# CONFIG_SYSV_FS is not set 977# CONFIG_SYSV_FS is not set
954# CONFIG_UFS_FS is not set 978# CONFIG_UFS_FS is not set
955CONFIG_NETWORK_FILESYSTEMS=y 979CONFIG_NETWORK_FILESYSTEMS=y
@@ -1019,9 +1043,6 @@ CONFIG_NLS_ISO8859_1=m
1019# CONFIG_NLS_KOI8_U is not set 1043# CONFIG_NLS_KOI8_U is not set
1020# CONFIG_NLS_UTF8 is not set 1044# CONFIG_NLS_UTF8 is not set
1021# CONFIG_DLM is not set 1045# CONFIG_DLM is not set
1022CONFIG_INSTRUMENTATION=y
1023# CONFIG_PROFILING is not set
1024# CONFIG_MARKERS is not set
1025 1046
1026# 1047#
1027# Kernel hacking 1048# Kernel hacking
@@ -1045,7 +1066,51 @@ CONFIG_FRAME_POINTER=y
1045# CONFIG_KEYS is not set 1066# CONFIG_KEYS is not set
1046# CONFIG_SECURITY is not set 1067# CONFIG_SECURITY is not set
1047# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1068# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1048# CONFIG_CRYPTO is not set 1069CONFIG_CRYPTO=y
1070# CONFIG_CRYPTO_SEQIV is not set
1071# CONFIG_CRYPTO_MANAGER is not set
1072# CONFIG_CRYPTO_HMAC is not set
1073# CONFIG_CRYPTO_XCBC is not set
1074# CONFIG_CRYPTO_NULL is not set
1075# CONFIG_CRYPTO_MD4 is not set
1076# CONFIG_CRYPTO_MD5 is not set
1077# CONFIG_CRYPTO_SHA1 is not set
1078# CONFIG_CRYPTO_SHA256 is not set
1079# CONFIG_CRYPTO_SHA512 is not set
1080# CONFIG_CRYPTO_WP512 is not set
1081# CONFIG_CRYPTO_TGR192 is not set
1082# CONFIG_CRYPTO_GF128MUL is not set
1083# CONFIG_CRYPTO_ECB is not set
1084# CONFIG_CRYPTO_CBC is not set
1085# CONFIG_CRYPTO_PCBC is not set
1086# CONFIG_CRYPTO_LRW is not set
1087# CONFIG_CRYPTO_XTS is not set
1088# CONFIG_CRYPTO_CTR is not set
1089# CONFIG_CRYPTO_GCM is not set
1090# CONFIG_CRYPTO_CCM is not set
1091# CONFIG_CRYPTO_CRYPTD is not set
1092# CONFIG_CRYPTO_DES is not set
1093# CONFIG_CRYPTO_FCRYPT is not set
1094# CONFIG_CRYPTO_BLOWFISH is not set
1095# CONFIG_CRYPTO_TWOFISH is not set
1096# CONFIG_CRYPTO_SERPENT is not set
1097# CONFIG_CRYPTO_AES is not set
1098# CONFIG_CRYPTO_CAST5 is not set
1099# CONFIG_CRYPTO_CAST6 is not set
1100# CONFIG_CRYPTO_TEA is not set
1101# CONFIG_CRYPTO_ARC4 is not set
1102# CONFIG_CRYPTO_KHAZAD is not set
1103# CONFIG_CRYPTO_ANUBIS is not set
1104# CONFIG_CRYPTO_SEED is not set
1105# CONFIG_CRYPTO_SALSA20 is not set
1106# CONFIG_CRYPTO_DEFLATE is not set
1107# CONFIG_CRYPTO_MICHAEL_MIC is not set
1108# CONFIG_CRYPTO_CRC32C is not set
1109# CONFIG_CRYPTO_CAMELLIA is not set
1110# CONFIG_CRYPTO_TEST is not set
1111# CONFIG_CRYPTO_AUTHENC is not set
1112# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y
1049 1114
1050# 1115#
1051# Library routines 1116# Library routines
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S
index 024a9cf469b4..50f667febe29 100644
--- a/arch/arm/kernel/head-common.S
+++ b/arch/arm/kernel/head-common.S
@@ -11,6 +11,9 @@
11 * 11 *
12 */ 12 */
13 13
14#define ATAG_CORE 0x54410001
15#define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2)
16
14 .type __switch_data, %object 17 .type __switch_data, %object
15__switch_data: 18__switch_data:
16 .long __mmap_switched 19 .long __mmap_switched
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 7898cbc9861a..bff4c6e90dd5 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -29,9 +29,6 @@
29#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET) 29#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET)
30#define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET) 30#define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET)
31 31
32#define ATAG_CORE 0x54410001
33#define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2)
34
35 32
36/* 33/*
37 * swapper_pg_dir is the virtual address of the initial page table. 34 * swapper_pg_dir is the virtual address of the initial page table.
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c
index a22a98c43ca5..13e371aad879 100644
--- a/arch/arm/kernel/kprobes.c
+++ b/arch/arm/kernel/kprobes.c
@@ -431,6 +431,11 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
431 return 0; 431 return 0;
432} 432}
433 433
434int __kprobes arch_trampoline_kprobe(struct kprobe *p)
435{
436 return 0;
437}
438
434static struct undef_hook kprobes_break_hook = { 439static struct undef_hook kprobes_break_hook = {
435 .instr_mask = 0xffffffff, 440 .instr_mask = 0xffffffff,
436 .instr_val = KPROBE_BREAKPOINT_INSTRUCTION, 441 .instr_val = KPROBE_BREAKPOINT_INSTRUCTION,
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 54cdf1aeefc3..ef2f86a5e78a 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -26,8 +26,8 @@
26/* 26/*
27 * For ARM syscalls, we encode the syscall number into the instruction. 27 * For ARM syscalls, we encode the syscall number into the instruction.
28 */ 28 */
29#define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)) 29#define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE))
30#define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)) 30#define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE))
31 31
32/* 32/*
33 * With EABI, the syscall number has to be loaded into r7. 33 * With EABI, the syscall number has to be loaded into r7.
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index 38313abef657..bf103b24c937 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -245,10 +245,7 @@ static struct fb_monspecs at91fb_default_monspecs = {
245 245
246static void at91_lcdc_power_control(int on) 246static void at91_lcdc_power_control(int on)
247{ 247{
248 if (on) 248 at91_set_gpio_value(AT91_PIN_PA30, on);
249 at91_set_gpio_value(AT91_PIN_PD12, 0); /* power up */
250 else
251 at91_set_gpio_value(AT91_PIN_PD12, 1); /* power down */
252} 249}
253 250
254/* Driver datas */ 251/* Driver datas */
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index f629c2b5f0c5..ee4964abcaf5 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -490,6 +490,11 @@ postcore_initcall(at91_gpio_debugfs_init);
490 490
491/*--------------------------------------------------------------------------*/ 491/*--------------------------------------------------------------------------*/
492 492
493/* This lock class tells lockdep that GPIO irqs are in a different
494 * category than their parents, so it won't report false recursion.
495 */
496static struct lock_class_key gpio_lock_class;
497
493/* 498/*
494 * Called from the processor-specific init to enable GPIO interrupt support. 499 * Called from the processor-specific init to enable GPIO interrupt support.
495 */ 500 */
@@ -510,6 +515,8 @@ void __init at91_gpio_irq_setup(void)
510 __raw_writel(~0, this->regbase + PIO_IDR); 515 __raw_writel(~0, this->regbase + PIO_IDR);
511 516
512 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { 517 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) {
518 lockdep_set_class(&irq_desc[pin].lock, &gpio_lock_class);
519
513 /* 520 /*
514 * Can use the "simple" and not "edge" handler since it's 521 * Can use the "simple" and not "edge" handler since it's
515 * shorter, and the AIC handles interrupts sanely. 522 * shorter, and the AIC handles interrupts sanely.
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
index 7f31816896ad..45144ad2bed9 100644
--- a/arch/arm/mach-h720x/common.c
+++ b/arch/arm/mach-h720x/common.c
@@ -103,7 +103,7 @@ static void
103h720x_gpio_handler(unsigned int mask, unsigned int irq, 103h720x_gpio_handler(unsigned int mask, unsigned int irq,
104 struct irq_desc *desc) 104 struct irq_desc *desc)
105{ 105{
106 IRQDBG("%s irq: %d\n",__FUNCTION__,irq); 106 IRQDBG("%s irq: %d\n", __func__, irq);
107 desc = irq_desc + irq; 107 desc = irq_desc + irq;
108 while (mask) { 108 while (mask) {
109 if (mask & 1) { 109 if (mask & 1) {
@@ -123,7 +123,7 @@ h720x_gpioa_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
123 123
124 mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT); 124 mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
125 irq = IRQ_CHAINED_GPIOA(0); 125 irq = IRQ_CHAINED_GPIOA(0);
126 IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); 126 IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
127 h720x_gpio_handler(mask, irq, desc); 127 h720x_gpio_handler(mask, irq, desc);
128} 128}
129 129
@@ -133,7 +133,7 @@ h720x_gpiob_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
133 unsigned int mask, irq; 133 unsigned int mask, irq;
134 mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT); 134 mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
135 irq = IRQ_CHAINED_GPIOB(0); 135 irq = IRQ_CHAINED_GPIOB(0);
136 IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); 136 IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
137 h720x_gpio_handler(mask, irq, desc); 137 h720x_gpio_handler(mask, irq, desc);
138} 138}
139 139
@@ -144,7 +144,7 @@ h720x_gpioc_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
144 144
145 mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT); 145 mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
146 irq = IRQ_CHAINED_GPIOC(0); 146 irq = IRQ_CHAINED_GPIOC(0);
147 IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); 147 IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
148 h720x_gpio_handler(mask, irq, desc); 148 h720x_gpio_handler(mask, irq, desc);
149} 149}
150 150
@@ -155,7 +155,7 @@ h720x_gpiod_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
155 155
156 mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT); 156 mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
157 irq = IRQ_CHAINED_GPIOD(0); 157 irq = IRQ_CHAINED_GPIOD(0);
158 IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); 158 IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
159 h720x_gpio_handler(mask, irq, desc); 159 h720x_gpio_handler(mask, irq, desc);
160} 160}
161 161
@@ -167,7 +167,7 @@ h720x_gpioe_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
167 167
168 mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT); 168 mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
169 irq = IRQ_CHAINED_GPIOE(0); 169 irq = IRQ_CHAINED_GPIOE(0);
170 IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); 170 IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq);
171 h720x_gpio_handler(mask, irq, desc); 171 h720x_gpio_handler(mask, irq, desc);
172} 172}
173#endif 173#endif
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c
index bc6fb02d213b..a59ff2987cb7 100644
--- a/arch/arm/mach-imx/dma.c
+++ b/arch/arm/mach-imx/dma.c
@@ -54,7 +54,7 @@ static inline int imx_dma_sg_next(imx_dmach_t dma_ch, unsigned int lastcount)
54 54
55 if (!imxdma->name) { 55 if (!imxdma->name) {
56 printk(KERN_CRIT "%s: called for not allocated channel %d\n", 56 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
57 __FUNCTION__, dma_ch); 57 __func__, dma_ch);
58 return 0; 58 return 0;
59 } 59 }
60 60
@@ -288,7 +288,7 @@ imx_dma_setup_handlers(imx_dmach_t dma_ch,
288 288
289 if (!imxdma->name) { 289 if (!imxdma->name) {
290 printk(KERN_CRIT "%s: called for not allocated channel %d\n", 290 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
291 __FUNCTION__, dma_ch); 291 __func__, dma_ch);
292 return -ENODEV; 292 return -ENODEV;
293 } 293 }
294 294
@@ -321,7 +321,7 @@ void imx_dma_enable(imx_dmach_t dma_ch)
321 321
322 if (!imxdma->name) { 322 if (!imxdma->name) {
323 printk(KERN_CRIT "%s: called for not allocated channel %d\n", 323 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
324 __FUNCTION__, dma_ch); 324 __func__, dma_ch);
325 return; 325 return;
326 } 326 }
327 327
@@ -365,7 +365,7 @@ int imx_dma_request(imx_dmach_t dma_ch, const char *name)
365 365
366 if (dma_ch >= IMX_DMA_CHANNELS) { 366 if (dma_ch >= IMX_DMA_CHANNELS) {
367 printk(KERN_CRIT "%s: called for non-existed channel %d\n", 367 printk(KERN_CRIT "%s: called for non-existed channel %d\n",
368 __FUNCTION__, dma_ch); 368 __func__, dma_ch);
369 return -EINVAL; 369 return -EINVAL;
370 } 370 }
371 371
@@ -396,7 +396,7 @@ void imx_dma_free(imx_dmach_t dma_ch)
396 if (!imxdma->name) { 396 if (!imxdma->name) {
397 printk(KERN_CRIT 397 printk(KERN_CRIT
398 "%s: trying to free channel %d which is already freed\n", 398 "%s: trying to free channel %d which is already freed\n",
399 __FUNCTION__, dma_ch); 399 __func__, dma_ch);
400 return; 400 return;
401 } 401 }
402 402
@@ -456,7 +456,7 @@ imx_dma_request_by_prio(imx_dmach_t * pdma_ch, const char *name,
456 } 456 }
457 } 457 }
458 458
459 printk(KERN_ERR "%s: no free DMA channel found\n", __FUNCTION__); 459 printk(KERN_ERR "%s: no free DMA channel found\n", __func__);
460 460
461 return -ENODEV; 461 return -ENODEV;
462} 462}
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c
index a7465db84893..e6695c4e623b 100644
--- a/arch/arm/mach-imx/irq.c
+++ b/arch/arm/mach-imx/irq.c
@@ -160,21 +160,21 @@ imx_gpio_irq_type(unsigned int _irq, unsigned int type)
160static void 160static void
161imx_gpio_ack_irq(unsigned int irq) 161imx_gpio_ack_irq(unsigned int irq)
162{ 162{
163 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); 163 DEBUG_IRQ("%s: irq %d\n", __func__, irq);
164 ISR(IRQ_TO_REG(irq)) = 1 << ((irq - IRQ_GPIOA(0)) % 32); 164 ISR(IRQ_TO_REG(irq)) = 1 << ((irq - IRQ_GPIOA(0)) % 32);
165} 165}
166 166
167static void 167static void
168imx_gpio_mask_irq(unsigned int irq) 168imx_gpio_mask_irq(unsigned int irq)
169{ 169{
170 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); 170 DEBUG_IRQ("%s: irq %d\n", __func__, irq);
171 IMR(IRQ_TO_REG(irq)) &= ~( 1 << ((irq - IRQ_GPIOA(0)) % 32)); 171 IMR(IRQ_TO_REG(irq)) &= ~( 1 << ((irq - IRQ_GPIOA(0)) % 32));
172} 172}
173 173
174static void 174static void
175imx_gpio_unmask_irq(unsigned int irq) 175imx_gpio_unmask_irq(unsigned int irq)
176{ 176{
177 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); 177 DEBUG_IRQ("%s: irq %d\n", __func__, irq);
178 IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); 178 IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32);
179} 179}
180 180
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c
index 268a8d84999c..77b24cd1d88d 100644
--- a/arch/arm/mach-iop13xx/iq81340mc.c
+++ b/arch/arm/mach-iop13xx/iq81340mc.c
@@ -81,7 +81,7 @@ static void __init iq81340mc_init(void)
81static void __init iq81340mc_timer_init(void) 81static void __init iq81340mc_timer_init(void)
82{ 82{
83 unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); 83 unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio();
84 printk(KERN_DEBUG "%s: bus frequency: %lu\n", __FUNCTION__, bus_freq); 84 printk(KERN_DEBUG "%s: bus frequency: %lu\n", __func__, bus_freq);
85 iop_init_time(bus_freq); 85 iop_init_time(bus_freq);
86} 86}
87 87
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c
index a51ffd2683e5..e8522b3b8163 100644
--- a/arch/arm/mach-iop13xx/iq81340sc.c
+++ b/arch/arm/mach-iop13xx/iq81340sc.c
@@ -83,7 +83,7 @@ static void __init iq81340sc_init(void)
83static void __init iq81340sc_timer_init(void) 83static void __init iq81340sc_timer_init(void)
84{ 84{
85 unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); 85 unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio();
86 printk(KERN_DEBUG "%s: bus frequency: %lu\n", __FUNCTION__, bus_freq); 86 printk(KERN_DEBUG "%s: bus frequency: %lu\n", __func__, bus_freq);
87 iop_init_time(bus_freq); 87 iop_init_time(bus_freq);
88} 88}
89 89
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c
index 99d94cb1bafd..7825c1aaa27b 100644
--- a/arch/arm/mach-iop13xx/pci.c
+++ b/arch/arm/mach-iop13xx/pci.c
@@ -94,13 +94,13 @@ void iop13xx_map_pci_memory(void)
94 , 0, iop13xx_atux_mem_size, MT_DEVICE); 94 , 0, iop13xx_atux_mem_size, MT_DEVICE);
95 if (!iop13xx_atux_mem_base) { 95 if (!iop13xx_atux_mem_base) {
96 printk("%s: atux allocation " 96 printk("%s: atux allocation "
97 "failed\n", __FUNCTION__); 97 "failed\n", __func__);
98 BUG(); 98 BUG();
99 } 99 }
100 } else 100 } else
101 iop13xx_atux_mem_size = 0; 101 iop13xx_atux_mem_size = 0;
102 PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", 102 PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n",
103 __FUNCTION__, atu, iop13xx_atux_mem_size, 103 __func__, atu, iop13xx_atux_mem_size,
104 iop13xx_atux_mem_base); 104 iop13xx_atux_mem_base);
105 break; 105 break;
106 case 1: 106 case 1:
@@ -120,13 +120,13 @@ void iop13xx_map_pci_memory(void)
120 , 0, iop13xx_atue_mem_size, MT_DEVICE); 120 , 0, iop13xx_atue_mem_size, MT_DEVICE);
121 if (!iop13xx_atue_mem_base) { 121 if (!iop13xx_atue_mem_base) {
122 printk("%s: atue allocation " 122 printk("%s: atue allocation "
123 "failed\n", __FUNCTION__); 123 "failed\n", __func__);
124 BUG(); 124 BUG();
125 } 125 }
126 } else 126 } else
127 iop13xx_atue_mem_size = 0; 127 iop13xx_atue_mem_size = 0;
128 PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", 128 PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n",
129 __FUNCTION__, atu, iop13xx_atue_mem_size, 129 __func__, atu, iop13xx_atue_mem_size,
130 iop13xx_atue_mem_base); 130 iop13xx_atue_mem_base);
131 break; 131 break;
132 } 132 }
diff --git a/arch/arm/mach-iop13xx/setup.c b/arch/arm/mach-iop13xx/setup.c
index bfe0c87e3397..246f6d478720 100644
--- a/arch/arm/mach-iop13xx/setup.c
+++ b/arch/arm/mach-iop13xx/setup.c
@@ -519,7 +519,7 @@ void __init iop13xx_platform_init(void)
519 if (iq8134x_flash_resource.end > iq8134x_flash_resource.start) 519 if (iq8134x_flash_resource.end > iq8134x_flash_resource.start)
520 iop13xx_devices[plat_idx++] = &iq8134x_flash; 520 iop13xx_devices[plat_idx++] = &iq8134x_flash;
521 else 521 else
522 printk(KERN_ERR "%s: Failed to probe flash size\n", __FUNCTION__); 522 printk(KERN_ERR "%s: Failed to probe flash size\n", __func__);
523#endif 523#endif
524 524
525 platform_add_devices(iop13xx_devices, plat_idx); 525 platform_add_devices(iop13xx_devices, plat_idx);
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c
index 74c65ce221de..d2a7b04f1cb0 100644
--- a/arch/arm/mach-iop32x/glantank.c
+++ b/arch/arm/mach-iop32x/glantank.c
@@ -14,8 +14,10 @@
14 14
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/f75375s.h>
17#include <linux/kernel.h> 18#include <linux/kernel.h>
18#include <linux/pci.h> 19#include <linux/pci.h>
20#include <linux/pm.h>
19#include <linux/string.h> 21#include <linux/string.h>
20#include <linux/slab.h> 22#include <linux/slab.h>
21#include <linux/serial_core.h> 23#include <linux/serial_core.h>
@@ -167,11 +169,21 @@ static struct platform_device glantank_serial_device = {
167 .resource = &glantank_uart_resource, 169 .resource = &glantank_uart_resource,
168}; 170};
169 171
172static struct f75375s_platform_data glantank_f75375s = {
173 .pwm = { 255, 255 },
174 .pwm_enable = { 0, 0 },
175};
176
170static struct i2c_board_info __initdata glantank_i2c_devices[] = { 177static struct i2c_board_info __initdata glantank_i2c_devices[] = {
171 { 178 {
172 I2C_BOARD_INFO("rtc-rs5c372", 0x32), 179 I2C_BOARD_INFO("rtc-rs5c372", 0x32),
173 .type = "rs5c372a", 180 .type = "rs5c372a",
174 }, 181 },
182 {
183 I2C_BOARD_INFO("f75375", 0x2e),
184 .type = "f75375",
185 .platform_data = &glantank_f75375s,
186 },
175}; 187};
176 188
177static void glantank_power_off(void) 189static void glantank_power_off(void)
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c
index bf04121d1a31..64be341109b3 100644
--- a/arch/arm/mach-ixp4xx/common-pci.c
+++ b/arch/arm/mach-ixp4xx/common-pci.c
@@ -87,7 +87,7 @@ static inline int check_master_abort(void)
87 if (isr & PCI_ISR_PFE) { 87 if (isr & PCI_ISR_PFE) {
88 /* make sure the Master Abort bit is reset */ 88 /* make sure the Master Abort bit is reset */
89 *PCI_ISR = PCI_ISR_PFE; 89 *PCI_ISR = PCI_ISR_PFE;
90 pr_debug("%s failed\n", __FUNCTION__); 90 pr_debug("%s failed\n", __func__);
91 return 1; 91 return 1;
92 } 92 }
93 93
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-pci.c b/arch/arm/mach-ixp4xx/gtwx5715-pci.c
index 0d5a42455820..49dec7868807 100644
--- a/arch/arm/mach-ixp4xx/gtwx5715-pci.c
+++ b/arch/arm/mach-ixp4xx/gtwx5715-pci.c
@@ -65,7 +65,7 @@ static int __init gtwx5715_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
65 else 65 else
66 rc = gtwx5715_irqmap[slot][pin-1]; 66 rc = gtwx5715_irqmap[slot][pin-1];
67 67
68 printk("%s: Mapped slot %d pin %d to IRQ %d\n", __FUNCTION__,slot, pin, rc); 68 printk("%s: Mapped slot %d pin %d to IRQ %d\n", __func__, slot, pin, rc);
69 return(rc); 69 return(rc);
70} 70}
71 71
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c
index b9ca8f98265d..fd7537f7d11e 100644
--- a/arch/arm/mach-netx/generic.c
+++ b/arch/arm/mach-netx/generic.c
@@ -133,7 +133,7 @@ netx_hif_ack_irq(unsigned int _irq)
133 val &= ~((1 << 24) << irq); 133 val &= ~((1 << 24) << irq);
134 writel(val, NETX_DPMAS_INT_EN); 134 writel(val, NETX_DPMAS_INT_EN);
135 135
136 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); 136 DEBUG_IRQ("%s: irq %d\n", __func__, _irq);
137} 137}
138 138
139static void 139static void
@@ -145,7 +145,7 @@ netx_hif_mask_irq(unsigned int _irq)
145 val = readl(NETX_DPMAS_INT_EN); 145 val = readl(NETX_DPMAS_INT_EN);
146 val &= ~((1 << 24) << irq); 146 val &= ~((1 << 24) << irq);
147 writel(val, NETX_DPMAS_INT_EN); 147 writel(val, NETX_DPMAS_INT_EN);
148 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); 148 DEBUG_IRQ("%s: irq %d\n", __func__, _irq);
149} 149}
150 150
151static void 151static void
@@ -157,7 +157,7 @@ netx_hif_unmask_irq(unsigned int _irq)
157 val = readl(NETX_DPMAS_INT_EN); 157 val = readl(NETX_DPMAS_INT_EN);
158 val |= (1 << 24) << irq; 158 val |= (1 << 24) << irq;
159 writel(val, NETX_DPMAS_INT_EN); 159 writel(val, NETX_DPMAS_INT_EN);
160 DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); 160 DEBUG_IRQ("%s: irq %d\n", __func__, _irq);
161} 161}
162 162
163static struct irq_chip netx_hif_chip = { 163static struct irq_chip netx_hif_chip = {
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c
index b2230213b983..5286e9fc1d30 100644
--- a/arch/arm/mach-ns9xxx/gpio.c
+++ b/arch/arm/mach-ns9xxx/gpio.c
@@ -31,7 +31,7 @@
31static spinlock_t gpio_lock = __SPIN_LOCK_UNLOCKED(gpio_lock); 31static spinlock_t gpio_lock = __SPIN_LOCK_UNLOCKED(gpio_lock);
32 32
33/* only access gpiores with atomic ops */ 33/* only access gpiores with atomic ops */
34static DECLARE_BITMAP(gpiores, GPIO_MAX); 34static DECLARE_BITMAP(gpiores, GPIO_MAX + 1);
35 35
36static inline int ns9xxx_valid_gpio(unsigned gpio) 36static inline int ns9xxx_valid_gpio(unsigned gpio)
37{ 37{
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index 070345ee39a5..507987720015 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -350,6 +350,10 @@ static void __init h2_init_smc91x(void)
350 350
351static struct i2c_board_info __initdata h2_i2c_board_info[] = { 351static struct i2c_board_info __initdata h2_i2c_board_info[] = {
352 { 352 {
353 I2C_BOARD_INFO("tps65010", 0x48),
354 .type = "tps65010",
355 .irq = OMAP_GPIO_IRQ(58),
356 }, {
353 I2C_BOARD_INFO("isp1301_omap", 0x2d), 357 I2C_BOARD_INFO("isp1301_omap", 0x2d),
354 .type = "isp1301_omap", 358 .type = "isp1301_omap",
355 .irq = OMAP_GPIO_IRQ(2), 359 .irq = OMAP_GPIO_IRQ(2),
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 6fc516855a8c..c3ef1ee5f77b 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -26,6 +26,7 @@
26#include <linux/mtd/nand.h> 26#include <linux/mtd/nand.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/input.h> 28#include <linux/input.h>
29#include <linux/spi/spi.h>
29#include <linux/i2c/tps65010.h> 30#include <linux/i2c/tps65010.h>
30 31
31#include <asm/setup.h> 32#include <asm/setup.h>
@@ -51,6 +52,8 @@
51#include <asm/arch/mcbsp.h> 52#include <asm/arch/mcbsp.h>
52#include <asm/arch/omap-alsa.h> 53#include <asm/arch/omap-alsa.h>
53 54
55#define H3_TS_GPIO 48
56
54static int h3_keymap[] = { 57static int h3_keymap[] = {
55 KEY(0, 0, KEY_LEFT), 58 KEY(0, 0, KEY_LEFT),
56 KEY(0, 1, KEY_RIGHT), 59 KEY(0, 1, KEY_RIGHT),
@@ -373,6 +376,17 @@ static struct platform_device h3_lcd_device = {
373 .id = -1, 376 .id = -1,
374}; 377};
375 378
379static struct spi_board_info h3_spi_board_info[] __initdata = {
380 [0] = {
381 .modalias = "tsc2101",
382 .bus_num = 2,
383 .chip_select = 0,
384 .irq = OMAP_GPIO_IRQ(H3_TS_GPIO),
385 .max_speed_hz = 16000000,
386 /* .platform_data = &tsc_platform_data, */
387 },
388};
389
376static struct omap_mcbsp_reg_cfg mcbsp_regs = { 390static struct omap_mcbsp_reg_cfg mcbsp_regs = {
377 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3), 391 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
378 .spcr1 = RINTM(3) | RRST, 392 .spcr1 = RINTM(3) | RRST,
@@ -457,6 +471,14 @@ static struct omap_board_config_kernel h3_config[] __initdata = {
457 { OMAP_TAG_LCD, &h3_lcd_config }, 471 { OMAP_TAG_LCD, &h3_lcd_config },
458}; 472};
459 473
474static struct i2c_board_info __initdata h3_i2c_board_info[] = {
475 {
476 I2C_BOARD_INFO("tps65010", 0x48),
477 .type = "tps65013",
478 /* .irq = OMAP_GPIO_IRQ(??), */
479 },
480};
481
460static struct omap_gpio_switch h3_gpio_switches[] __initdata = { 482static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
461 { 483 {
462 .name = "mmc_slot", 484 .name = "mmc_slot",
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 8eb5dcdaead2..e6c64e10b7ec 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -717,7 +717,7 @@ static int __init omap_pm_init(void)
717#endif 717#endif
718 718
719#ifdef CONFIG_OMAP_32K_TIMER 719#ifdef CONFIG_OMAP_32K_TIMER
720 error = sysfs_create_file(power_kobj, &sleep_while_idle_attr); 720 error = sysfs_create_file(power_kobj, &sleep_while_idle_attr.attr);
721 if (error) 721 if (error)
722 printk(KERN_ERR "sysfs_create_file failed: %d\n", error); 722 printk(KERN_ERR "sysfs_create_file failed: %d\n", error);
723#endif 723#endif
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
index 237651ebae5d..a4f8b2055437 100644
--- a/arch/arm/mach-omap1/time.c
+++ b/arch/arm/mach-omap1/time.c
@@ -132,13 +132,20 @@ static inline void omap_mpu_timer_start(int nr, unsigned long load_val,
132 timer->cntl = timerflags; 132 timer->cntl = timerflags;
133} 133}
134 134
135static inline void omap_mpu_timer_stop(int nr)
136{
137 volatile omap_mpu_timer_regs_t* timer = omap_mpu_timer_base(nr);
138
139 timer->cntl &= ~MPU_TIMER_ST;
140}
141
135/* 142/*
136 * --------------------------------------------------------------------------- 143 * ---------------------------------------------------------------------------
137 * MPU timer 1 ... count down to zero, interrupt, reload 144 * MPU timer 1 ... count down to zero, interrupt, reload
138 * --------------------------------------------------------------------------- 145 * ---------------------------------------------------------------------------
139 */ 146 */
140static int omap_mpu_set_next_event(unsigned long cycles, 147static int omap_mpu_set_next_event(unsigned long cycles,
141 struct clock_event_device *evt) 148 struct clock_event_device *evt)
142{ 149{
143 omap_mpu_timer_start(0, cycles, 0); 150 omap_mpu_timer_start(0, cycles, 0);
144 return 0; 151 return 0;
@@ -152,6 +159,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode,
152 omap_mpu_set_autoreset(0); 159 omap_mpu_set_autoreset(0);
153 break; 160 break;
154 case CLOCK_EVT_MODE_ONESHOT: 161 case CLOCK_EVT_MODE_ONESHOT:
162 omap_mpu_timer_stop(0);
155 omap_mpu_remove_autoreset(0); 163 omap_mpu_remove_autoreset(0);
156 break; 164 break;
157 case CLOCK_EVT_MODE_UNUSED: 165 case CLOCK_EVT_MODE_UNUSED:
@@ -163,7 +171,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode,
163 171
164static struct clock_event_device clockevent_mpu_timer1 = { 172static struct clock_event_device clockevent_mpu_timer1 = {
165 .name = "mpu_timer1", 173 .name = "mpu_timer1",
166 .features = CLOCK_EVT_FEAT_PERIODIC, CLOCK_EVT_FEAT_ONESHOT, 174 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
167 .shift = 32, 175 .shift = 32,
168 .set_next_event = omap_mpu_set_next_event, 176 .set_next_event = omap_mpu_set_next_event,
169 .set_mode = omap_mpu_set_mode, 177 .set_mode = omap_mpu_set_mode,
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 5a4091f582ed..69c8174f3aac 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -42,6 +42,12 @@ static struct map_desc omap2_io_desc[] __initdata = {
42 .length = L3_24XX_SIZE, 42 .length = L3_24XX_SIZE,
43 .type = MT_DEVICE 43 .type = MT_DEVICE
44 }, 44 },
45 {
46 .virtual = L4_24XX_VIRT,
47 .pfn = __phys_to_pfn(L4_24XX_PHYS),
48 .length = L4_24XX_SIZE,
49 .type = MT_DEVICE
50 },
45#ifdef CONFIG_ARCH_OMAP2430 51#ifdef CONFIG_ARCH_OMAP2430
46 { 52 {
47 .virtual = L4_WK_243X_VIRT, 53 .virtual = L4_WK_243X_VIRT,
diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c
index 2e2fd63643c3..58cc3c0333b6 100644
--- a/arch/arm/mach-orion/addr-map.c
+++ b/arch/arm/mach-orion/addr-map.c
@@ -97,14 +97,20 @@
97#define PCIE_BAR_CTRL(n) ORION_PCIE_REG(0x1804 + ((n - 1) * 4)) 97#define PCIE_BAR_CTRL(n) ORION_PCIE_REG(0x1804 + ((n - 1) * 4))
98#define PCIE_BAR_LO(n) ORION_PCIE_REG(0x0010 + ((n) * 8)) 98#define PCIE_BAR_LO(n) ORION_PCIE_REG(0x0010 + ((n) * 8))
99#define PCIE_BAR_HI(n) ORION_PCIE_REG(0x0014 + ((n) * 8)) 99#define PCIE_BAR_HI(n) ORION_PCIE_REG(0x0014 + ((n) * 8))
100#define PCIE_WIN_CTRL(n) ORION_PCIE_REG(0x1820 + ((n) << 4)) 100#define PCIE_WIN_CTRL(n) (((n) < 5) ? \
101#define PCIE_WIN_BASE(n) ORION_PCIE_REG(0x1824 + ((n) << 4)) 101 ORION_PCIE_REG(0x1820 + ((n) << 4)) : \
102#define PCIE_WIN_REMAP(n) ORION_PCIE_REG(0x182c + ((n) << 4)) 102 ORION_PCIE_REG(0x1880))
103#define PCIE_WIN_BASE(n) (((n) < 5) ? \
104 ORION_PCIE_REG(0x1824 + ((n) << 4)) : \
105 ORION_PCIE_REG(0x1884))
106#define PCIE_WIN_REMAP(n) (((n) < 5) ? \
107 ORION_PCIE_REG(0x182c + ((n) << 4)) : \
108 ORION_PCIE_REG(0x188c))
103#define PCIE_DEFWIN_CTRL ORION_PCIE_REG(0x18b0) 109#define PCIE_DEFWIN_CTRL ORION_PCIE_REG(0x18b0)
104#define PCIE_EXPROM_WIN_CTRL ORION_PCIE_REG(0x18c0) 110#define PCIE_EXPROM_WIN_CTRL ORION_PCIE_REG(0x18c0)
105#define PCIE_EXPROM_WIN_REMP ORION_PCIE_REG(0x18c4) 111#define PCIE_EXPROM_WIN_REMP ORION_PCIE_REG(0x18c4)
106#define PCIE_MAX_BARS 3 112#define PCIE_MAX_BARS 3
107#define PCIE_MAX_WINS 5 113#define PCIE_MAX_WINS 6
108 114
109/* 115/*
110 * Use PCIE BAR '1' for all DDR banks 116 * Use PCIE BAR '1' for all DDR banks
diff --git a/arch/arm/mach-orion/common.c b/arch/arm/mach-orion/common.c
index 5f0ee4b8a9b7..bbc2b4ec932c 100644
--- a/arch/arm/mach-orion/common.c
+++ b/arch/arm/mach-orion/common.c
@@ -17,7 +17,9 @@
17#include <linux/mv643xx_eth.h> 17#include <linux/mv643xx_eth.h>
18#include <linux/mv643xx_i2c.h> 18#include <linux/mv643xx_i2c.h>
19#include <asm/page.h> 19#include <asm/page.h>
20#include <asm/setup.h>
20#include <asm/timex.h> 21#include <asm/timex.h>
22#include <asm/mach/arch.h>
21#include <asm/mach/map.h> 23#include <asm/mach/map.h>
22#include <asm/arch/hardware.h> 24#include <asm/arch/hardware.h>
23#include "common.h" 25#include "common.h"
@@ -177,8 +179,8 @@ static struct platform_device orion_ehci1 = {
177 179
178static struct resource orion_eth_shared_resources[] = { 180static struct resource orion_eth_shared_resources[] = {
179 { 181 {
180 .start = ORION_ETH_PHYS_BASE, 182 .start = ORION_ETH_PHYS_BASE + 0x2000,
181 .end = ORION_ETH_PHYS_BASE + 0xffff, 183 .end = ORION_ETH_PHYS_BASE + 0x3fff,
182 .flags = IORESOURCE_MEM, 184 .flags = IORESOURCE_MEM,
183 }, 185 },
184}; 186};
@@ -347,3 +349,21 @@ void __init orion_init(void)
347 platform_device_register(&orion_ehci1); 349 platform_device_register(&orion_ehci1);
348 platform_device_register(&orion_i2c); 350 platform_device_register(&orion_i2c);
349} 351}
352
353/*
354 * Many orion-based systems have buggy bootloader implementations.
355 * This is a common fixup for bogus memory tags.
356 */
357void __init tag_fixup_mem32(struct machine_desc *mdesc, struct tag *t,
358 char **from, struct meminfo *meminfo)
359{
360 for (; t->hdr.size; t = tag_next(t))
361 if (t->hdr.tag == ATAG_MEM &&
362 (!t->u.mem.size || t->u.mem.size & ~PAGE_MASK ||
363 t->u.mem.start & ~PAGE_MASK)) {
364 printk(KERN_WARNING
365 "Clearing invalid memory bank %dKB@0x%08x\n",
366 t->u.mem.size / 1024, t->u.mem.start);
367 t->hdr.tag = 0;
368 }
369}
diff --git a/arch/arm/mach-orion/common.h b/arch/arm/mach-orion/common.h
index 10154ec885df..501497cc2c4d 100644
--- a/arch/arm/mach-orion/common.h
+++ b/arch/arm/mach-orion/common.h
@@ -83,4 +83,10 @@ struct mv_sata_platform_data;
83 83
84void __init orion_sata_init(struct mv_sata_platform_data *sata_data); 84void __init orion_sata_init(struct mv_sata_platform_data *sata_data);
85 85
86struct machine_desc;
87struct meminfo;
88struct tag;
89extern void __init tag_fixup_mem32(struct machine_desc *, struct tag *,
90 char **, struct meminfo *);
91
86#endif /* __ARCH_ORION_COMMON_H__ */ 92#endif /* __ARCH_ORION_COMMON_H__ */
diff --git a/arch/arm/mach-orion/dns323-setup.c b/arch/arm/mach-orion/dns323-setup.c
index 02b280c24820..076e155ad510 100644
--- a/arch/arm/mach-orion/dns323-setup.c
+++ b/arch/arm/mach-orion/dns323-setup.c
@@ -319,4 +319,5 @@ MACHINE_START(DNS323, "D-Link DNS-323")
319 .map_io = orion_map_io, 319 .map_io = orion_map_io,
320 .init_irq = orion_init_irq, 320 .init_irq = orion_init_irq,
321 .timer = &orion_timer, 321 .timer = &orion_timer,
322 .fixup = tag_fixup_mem32,
322MACHINE_END 323MACHINE_END
diff --git a/arch/arm/mach-orion/gpio.c b/arch/arm/mach-orion/gpio.c
index d5f00c86d616..f713818c66a3 100644
--- a/arch/arm/mach-orion/gpio.c
+++ b/arch/arm/mach-orion/gpio.c
@@ -36,7 +36,7 @@ int gpio_direction_input(unsigned pin)
36 unsigned long flags; 36 unsigned long flags;
37 37
38 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { 38 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) {
39 pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); 39 pr_debug("%s: invalid GPIO %d\n", __func__, pin);
40 return -EINVAL; 40 return -EINVAL;
41 } 41 }
42 42
@@ -62,7 +62,7 @@ int gpio_direction_output(unsigned pin, int value)
62 int mask; 62 int mask;
63 63
64 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { 64 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) {
65 pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); 65 pr_debug("%s: invalid GPIO %d\n", __func__, pin);
66 return -EINVAL; 66 return -EINVAL;
67 } 67 }
68 68
@@ -141,7 +141,7 @@ int gpio_request(unsigned pin, const char *label)
141 unsigned long flags; 141 unsigned long flags;
142 142
143 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { 143 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) {
144 pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); 144 pr_debug("%s: invalid GPIO %d\n", __func__, pin);
145 return -EINVAL; 145 return -EINVAL;
146 } 146 }
147 147
@@ -149,7 +149,7 @@ int gpio_request(unsigned pin, const char *label)
149 149
150 if (gpio_label[pin]) { 150 if (gpio_label[pin]) {
151 pr_debug("%s: GPIO %d already used as %s\n", 151 pr_debug("%s: GPIO %d already used as %s\n",
152 __FUNCTION__, pin, gpio_label[pin]); 152 __func__, pin, gpio_label[pin]);
153 ret = -EBUSY; 153 ret = -EBUSY;
154 } else 154 } else
155 gpio_label[pin] = label ? label : "?"; 155 gpio_label[pin] = label ? label : "?";
@@ -162,12 +162,12 @@ EXPORT_SYMBOL(gpio_request);
162void gpio_free(unsigned pin) 162void gpio_free(unsigned pin)
163{ 163{
164 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { 164 if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) {
165 pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); 165 pr_debug("%s: invalid GPIO %d\n", __func__, pin);
166 return; 166 return;
167 } 167 }
168 168
169 if (!gpio_label[pin]) 169 if (!gpio_label[pin])
170 pr_warning("%s: GPIO %d already freed\n", __FUNCTION__, pin); 170 pr_warning("%s: GPIO %d already freed\n", __func__, pin);
171 else 171 else
172 gpio_label[pin] = NULL; 172 gpio_label[pin] = NULL;
173} 173}
diff --git a/arch/arm/mach-orion/kurobox_pro-setup.c b/arch/arm/mach-orion/kurobox_pro-setup.c
index 6817aca4aa26..785a07bdf1e2 100644
--- a/arch/arm/mach-orion/kurobox_pro-setup.c
+++ b/arch/arm/mach-orion/kurobox_pro-setup.c
@@ -240,4 +240,5 @@ MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro")
240 .map_io = orion_map_io, 240 .map_io = orion_map_io,
241 .init_irq = orion_init_irq, 241 .init_irq = orion_init_irq,
242 .timer = &orion_timer, 242 .timer = &orion_timer,
243 .fixup = tag_fixup_mem32,
243MACHINE_END 244MACHINE_END
diff --git a/arch/arm/mach-orion/ts209-setup.c b/arch/arm/mach-orion/ts209-setup.c
index b8cfe6813e9d..45764dad16d0 100644
--- a/arch/arm/mach-orion/ts209-setup.c
+++ b/arch/arm/mach-orion/ts209-setup.c
@@ -357,4 +357,5 @@ MACHINE_START(TS209, "QNAP TS-109/TS-209")
357 .map_io = orion_map_io, 357 .map_io = orion_map_io,
358 .init_irq = orion_init_irq, 358 .init_irq = orion_init_irq,
359 .timer = &orion_timer, 359 .timer = &orion_timer,
360 .fixup = tag_fixup_mem32,
360MACHINE_END 361MACHINE_END
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c
index daa8d3d98eff..8e00ed43fb95 100644
--- a/arch/arm/mach-pnx4008/clock.c
+++ b/arch/arm/mach-pnx4008/clock.c
@@ -976,7 +976,7 @@ static int __init clk_init(void)
976 (*clkp)->set_parent((*clkp), (*clkp)->parent); 976 (*clkp)->set_parent((*clkp), (*clkp)->parent);
977 } 977 }
978 pr_debug("%s: clock %s, rate %ld\n", 978 pr_debug("%s: clock %s, rate %ld\n",
979 __FUNCTION__, (*clkp)->name, (*clkp)->rate); 979 __func__, (*clkp)->name, (*clkp)->rate);
980 } 980 }
981 981
982 local_clk_use(&ck_pll4); 982 local_clk_use(&ck_pll4);
diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c
index f7009d845be8..fe152e82590b 100644
--- a/arch/arm/mach-pnx4008/dma.c
+++ b/arch/arm/mach-pnx4008/dma.c
@@ -192,7 +192,7 @@ void pnx4008_free_channel(int ch)
192 if (!dma_channels[ch].name) { 192 if (!dma_channels[ch].name) {
193 printk(KERN_CRIT 193 printk(KERN_CRIT
194 "%s: trying to free channel %d which is already freed\n", 194 "%s: trying to free channel %d which is already freed\n",
195 __FUNCTION__, ch); 195 __func__, ch);
196 return; 196 return;
197 } 197 }
198 198
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c
index 15c4e0df3e10..fcda7d5cb693 100644
--- a/arch/arm/mach-pxa/cm-x270-pci.c
+++ b/arch/arm/mach-pxa/cm-x270-pci.c
@@ -104,7 +104,7 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
104{ 104{
105 int irq; 105 int irq;
106 106
107 dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __FUNCTION__, slot, pin); 107 dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __func__, slot, pin);
108 108
109 irq = it8152_pci_map_irq(dev, slot, pin); 109 irq = it8152_pci_map_irq(dev, slot, pin);
110 if (irq) 110 if (irq)
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
index 6012177a29a3..ecdbc96a4de1 100644
--- a/arch/arm/mach-pxa/cm-x270.c
+++ b/arch/arm/mach-pxa/cm-x270.c
@@ -504,11 +504,11 @@ static void cmx270_mci_setpower(struct device *dev, unsigned int vdd)
504 struct pxamci_platform_data *p_d = dev->platform_data; 504 struct pxamci_platform_data *p_d = dev->platform_data;
505 505
506 if ((1 << vdd) & p_d->ocr_mask) { 506 if ((1 << vdd) & p_d->ocr_mask) {
507 printk(KERN_DEBUG "%s: on\n", __FUNCTION__); 507 printk(KERN_DEBUG "%s: on\n", __func__);
508 GPCR(105) = GPIO_bit(105); 508 GPCR(105) = GPIO_bit(105);
509 } else { 509 } else {
510 GPSR(105) = GPIO_bit(105); 510 GPSR(105) = GPIO_bit(105);
511 printk(KERN_DEBUG "%s: off\n", __FUNCTION__); 511 printk(KERN_DEBUG "%s: off\n", __func__);
512 } 512 }
513} 513}
514 514
diff --git a/arch/arm/mach-pxa/dma.c b/arch/arm/mach-pxa/dma.c
index 93c4f31f127f..3215316d7b06 100644
--- a/arch/arm/mach-pxa/dma.c
+++ b/arch/arm/mach-pxa/dma.c
@@ -81,7 +81,7 @@ void pxa_free_dma (int dma_ch)
81 if (!dma_channels[dma_ch].name) { 81 if (!dma_channels[dma_ch].name) {
82 printk (KERN_CRIT 82 printk (KERN_CRIT
83 "%s: trying to free channel %d which is already freed\n", 83 "%s: trying to free channel %d which is already freed\n",
84 __FUNCTION__, dma_ch); 84 __func__, dma_ch);
85 return; 85 return;
86 } 86 }
87 87
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 3d0ad5065ee5..3bb31314429a 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -264,7 +264,7 @@ static int em_x270_mci_init(struct device *dev,
264 "MMC card detect", data); 264 "MMC card detect", data);
265 if (err) { 265 if (err) {
266 printk(KERN_ERR "%s: can't request MMC card detect IRQ: %d\n", 266 printk(KERN_ERR "%s: can't request MMC card detect IRQ: %d\n",
267 __FUNCTION__, err); 267 __func__, err);
268 return err; 268 return err;
269 } 269 }
270 270
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index 345c3deeb02e..72a436fb9a29 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -390,11 +390,11 @@ static void mainstone_mci_setpower(struct device *dev, unsigned int vdd)
390 struct pxamci_platform_data* p_d = dev->platform_data; 390 struct pxamci_platform_data* p_d = dev->platform_data;
391 391
392 if (( 1 << vdd) & p_d->ocr_mask) { 392 if (( 1 << vdd) & p_d->ocr_mask) {
393 printk(KERN_DEBUG "%s: on\n", __FUNCTION__); 393 printk(KERN_DEBUG "%s: on\n", __func__);
394 MST_MSCWR1 |= MST_MSCWR1_MMC_ON; 394 MST_MSCWR1 |= MST_MSCWR1_MMC_ON;
395 MST_MSCWR1 &= ~MST_MSCWR1_MS_SEL; 395 MST_MSCWR1 &= ~MST_MSCWR1_MS_SEL;
396 } else { 396 } else {
397 printk(KERN_DEBUG "%s: off\n", __FUNCTION__); 397 printk(KERN_DEBUG "%s: off\n", __func__);
398 MST_MSCWR1 &= ~MST_MSCWR1_MMC_ON; 398 MST_MSCWR1 &= ~MST_MSCWR1_MMC_ON;
399 } 399 }
400} 400}
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index 853fc9433750..f207fcd30cd7 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -217,7 +217,7 @@ void board_pcmcia_power(int power)
217 ConXS_BCR = trizeps_conxs_bcr; 217 ConXS_BCR = trizeps_conxs_bcr;
218 218
219 } 219 }
220 pr_debug("%s: o%s 0x%x\n", __FUNCTION__, power ? "n": "ff", trizeps_conxs_bcr); 220 pr_debug("%s: o%s 0x%x\n", __func__, power ? "n": "ff", trizeps_conxs_bcr);
221} 221}
222 222
223/* backlight power switching for LCD panel */ 223/* backlight power switching for LCD panel */
@@ -228,7 +228,7 @@ static void board_backlight_power(int on)
228 } else { 228 } else {
229 trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP; 229 trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP;
230 } 230 }
231 pr_debug("%s: o%s 0x%x\n", __FUNCTION__, on ? "n" : "ff", trizeps_conxs_bcr); 231 pr_debug("%s: o%s 0x%x\n", __func__, on ? "n" : "ff", trizeps_conxs_bcr);
232 ConXS_BCR = trizeps_conxs_bcr; 232 ConXS_BCR = trizeps_conxs_bcr;
233} 233}
234 234
@@ -238,10 +238,10 @@ static void board_mci_power(struct device *dev, unsigned int vdd)
238 struct pxamci_platform_data* p_d = dev->platform_data; 238 struct pxamci_platform_data* p_d = dev->platform_data;
239 239
240 if (( 1 << vdd) & p_d->ocr_mask) { 240 if (( 1 << vdd) & p_d->ocr_mask) {
241 pr_debug("%s: on\n", __FUNCTION__); 241 pr_debug("%s: on\n", __func__);
242 /* FIXME fill in values here */ 242 /* FIXME fill in values here */
243 } else { 243 } else {
244 pr_debug("%s: off\n", __FUNCTION__); 244 pr_debug("%s: off\n", __func__);
245 /* FIXME fill in values here */ 245 /* FIXME fill in values here */
246 } 246 }
247} 247}
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c
index f60b7a66dfa0..842d9e6dc5ff 100644
--- a/arch/arm/mach-sa1100/badge4.c
+++ b/arch/arm/mach-sa1100/badge4.c
@@ -206,7 +206,7 @@ static int __init badge4_init(void)
206 if (ret < 0) 206 if (ret < 0)
207 printk(KERN_ERR 207 printk(KERN_ERR
208 "%s: SA-1111 initialization failed (%d)\n", 208 "%s: SA-1111 initialization failed (%d)\n",
209 __FUNCTION__, ret); 209 __func__, ret);
210 210
211 211
212 /* maybe turn on 5v0 from the start */ 212 /* maybe turn on 5v0 from the start */
@@ -240,11 +240,11 @@ void badge4_set_5V(unsigned subsystem, int on)
240 /* detect on->off and off->on transitions */ 240 /* detect on->off and off->on transitions */
241 if ((!old_5V_bitmap) && (badge4_5V_bitmap)) { 241 if ((!old_5V_bitmap) && (badge4_5V_bitmap)) {
242 /* was off, now on */ 242 /* was off, now on */
243 printk(KERN_INFO "%s: enabling 5V supply rail\n", __FUNCTION__); 243 printk(KERN_INFO "%s: enabling 5V supply rail\n", __func__);
244 GPSR = BADGE4_GPIO_PCMEN5V; 244 GPSR = BADGE4_GPIO_PCMEN5V;
245 } else if ((old_5V_bitmap) && (!badge4_5V_bitmap)) { 245 } else if ((old_5V_bitmap) && (!badge4_5V_bitmap)) {
246 /* was on, now off */ 246 /* was on, now off */
247 printk(KERN_INFO "%s: disabling 5V supply rail\n", __FUNCTION__); 247 printk(KERN_INFO "%s: disabling 5V supply rail\n", __func__);
248 GPCR = BADGE4_GPIO_PCMEN5V; 248 GPCR = BADGE4_GPIO_PCMEN5V;
249 } 249 }
250 250
diff --git a/arch/arm/mach-sa1100/cpu-sa1100.c b/arch/arm/mach-sa1100/cpu-sa1100.c
index d68630b74d78..343368aa82de 100644
--- a/arch/arm/mach-sa1100/cpu-sa1100.c
+++ b/arch/arm/mach-sa1100/cpu-sa1100.c
@@ -139,7 +139,7 @@ static void sa1100_update_dram_timings(int current_speed, int new_speed)
139 139
140 if (settings->speed == 0) { 140 if (settings->speed == 0) {
141 panic("%s: couldn't find dram setting for speed %d\n", 141 panic("%s: couldn't find dram setting for speed %d\n",
142 __FUNCTION__, new_speed); 142 __func__, new_speed);
143 } 143 }
144 144
145 /* No risk, no fun: run with interrupts on! */ 145 /* No risk, no fun: run with interrupts on! */
diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c
index 1fbe053e8b59..e5080286060e 100644
--- a/arch/arm/mach-sa1100/dma.c
+++ b/arch/arm/mach-sa1100/dma.c
@@ -129,7 +129,7 @@ int sa1100_request_dma (dma_device_t device, const char *device_id,
129 if (err) { 129 if (err) {
130 printk(KERN_ERR 130 printk(KERN_ERR
131 "%s: unable to request IRQ %d for %s\n", 131 "%s: unable to request IRQ %d for %s\n",
132 __FUNCTION__, IRQ_DMA0 + i, device_id); 132 __func__, IRQ_DMA0 + i, device_id);
133 dma->device = 0; 133 dma->device = 0;
134 return err; 134 return err;
135 } 135 }
@@ -165,12 +165,12 @@ void sa1100_free_dma(dma_regs_t *regs)
165 if (regs == (dma_regs_t *)&DDAR(i)) 165 if (regs == (dma_regs_t *)&DDAR(i))
166 break; 166 break;
167 if (i >= SA1100_DMA_CHANNELS) { 167 if (i >= SA1100_DMA_CHANNELS) {
168 printk(KERN_ERR "%s: bad DMA identifier\n", __FUNCTION__); 168 printk(KERN_ERR "%s: bad DMA identifier\n", __func__);
169 return; 169 return;
170 } 170 }
171 171
172 if (!dma_chan[i].device) { 172 if (!dma_chan[i].device) {
173 printk(KERN_ERR "%s: Trying to free free DMA\n", __FUNCTION__); 173 printk(KERN_ERR "%s: Trying to free free DMA\n", __func__);
174 return; 174 return;
175 } 175 }
176 176
@@ -329,7 +329,7 @@ void sa1100_reset_dma(dma_regs_t *regs)
329 if (regs == (dma_regs_t *)&DDAR(i)) 329 if (regs == (dma_regs_t *)&DDAR(i))
330 break; 330 break;
331 if (i >= SA1100_DMA_CHANNELS) { 331 if (i >= SA1100_DMA_CHANNELS) {
332 printk(KERN_ERR "%s: bad DMA identifier\n", __FUNCTION__); 332 printk(KERN_ERR "%s: bad DMA identifier\n", __func__);
333 return; 333 return;
334 } 334 }
335 335
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c
index b72fee0f2538..8473c37b77d6 100644
--- a/arch/arm/mach-sa1100/h3600.c
+++ b/arch/arm/mach-sa1100/h3600.c
@@ -596,7 +596,7 @@ static void h3800_control_egpio(enum ipaq_egpio_type x, int setp)
596 case IPAQ_EGPIO_CODEC_NRESET: 596 case IPAQ_EGPIO_CODEC_NRESET:
597 case IPAQ_EGPIO_AUDIO_ON: 597 case IPAQ_EGPIO_AUDIO_ON:
598 case IPAQ_EGPIO_QMUTE: 598 case IPAQ_EGPIO_QMUTE:
599 printk("%s: error - should not be called\n", __FUNCTION__); 599 printk("%s: error - should not be called\n", __func__);
600 break; 600 break;
601 case IPAQ_EGPIO_OPT_NVRAM_ON: 601 case IPAQ_EGPIO_OPT_NVRAM_ON:
602 SET_ASIC2(GPIO2_OPT_ON_NVRAM); 602 SET_ASIC2(GPIO2_OPT_ON_NVRAM);
@@ -638,7 +638,7 @@ static int h3800_pm_callback(int req)
638 static u16 asic2_data; 638 static u16 asic2_data;
639 int result = 0; 639 int result = 0;
640 640
641 printk("%s %d\n", __FUNCTION__, req); 641 printk("%s %d\n", __func__, req);
642 642
643 switch (req) { 643 switch (req) {
644 case PM_RESUME: 644 case PM_RESUME:
@@ -666,7 +666,7 @@ static int h3800_pm_callback(int req)
666 asic2_data = H3800_ASIC2_GPIOPIOD; 666 asic2_data = H3800_ASIC2_GPIOPIOD;
667 break; 667 break;
668 default: 668 default:
669 printk("%s: unrecognized PM callback\n", __FUNCTION__); 669 printk("%s: unrecognized PM callback\n", __func__);
670 break; 670 break;
671 } 671 }
672 return result; 672 return result;
@@ -706,7 +706,7 @@ static void h3800_IRQ_demux(unsigned int irq, struct irq_desc *desc)
706{ 706{
707 int i; 707 int i;
708 708
709 if (0) printk("%s: interrupt received\n", __FUNCTION__); 709 if (0) printk("%s: interrupt received\n", __func__);
710 710
711 desc->chip->ack(irq); 711 desc->chip->ack(irq);
712 712
@@ -716,21 +716,21 @@ static void h3800_IRQ_demux(unsigned int irq, struct irq_desc *desc)
716 716
717 /* KPIO */ 717 /* KPIO */
718 irq = H3800_ASIC2_KPIINTFLAG; 718 irq = H3800_ASIC2_KPIINTFLAG;
719 if (0) printk("%s KPIO 0x%08X\n", __FUNCTION__, irq); 719 if (0) printk("%s KPIO 0x%08X\n", __func__, irq);
720 for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++) 720 for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++)
721 if (irq & kpio_irq_mask[j]) 721 if (irq & kpio_irq_mask[j])
722 handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j); 722 handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j);
723 723
724 /* GPIO2 */ 724 /* GPIO2 */
725 irq = H3800_ASIC2_GPIINTFLAG; 725 irq = H3800_ASIC2_GPIINTFLAG;
726 if (0) printk("%s GPIO 0x%08X\n", __FUNCTION__, irq); 726 if (0) printk("%s GPIO 0x%08X\n", __func__, irq);
727 for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++) 727 for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++)
728 if (irq & gpio_irq_mask[j]) 728 if (irq & gpio_irq_mask[j])
729 handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j); 729 handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j);
730 } 730 }
731 731
732 if (i >= MAX_ASIC_ISR_LOOPS) 732 if (i >= MAX_ASIC_ISR_LOOPS)
733 printk("%s: interrupt processing overrun\n", __FUNCTION__); 733 printk("%s: interrupt processing overrun\n", __func__);
734 734
735 /* For level-based interrupts */ 735 /* For level-based interrupts */
736 desc->chip->unmask(irq); 736 desc->chip->unmask(irq);
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S
index c156ddab9a2d..016690b9d564 100644
--- a/arch/arm/mm/proc-xscale.S
+++ b/arch/arm/mm/proc-xscale.S
@@ -114,6 +114,10 @@ clean_addr: .word CLEAN_ADDR
114 * Nothing too exciting at the moment 114 * Nothing too exciting at the moment
115 */ 115 */
116ENTRY(cpu_xscale_proc_init) 116ENTRY(cpu_xscale_proc_init)
117 @ enable write buffer coalescing. Some bootloader disable it
118 mrc p15, 0, r1, c1, c0, 1
119 bic r1, r1, #1
120 mcr p15, 0, r1, c1, c0, 1
117 mov pc, lr 121 mov pc, lr
118 122
119/* 123/*
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c
index 2b5aa1135b11..98d01517b563 100644
--- a/arch/arm/plat-iop/pci.c
+++ b/arch/arm/plat-iop/pci.c
@@ -371,7 +371,7 @@ static int __init iop3xx_init_atu_setup(char *str)
371 default: 371 default:
372 printk(KERN_DEBUG "\"%s\" malformed at " 372 printk(KERN_DEBUG "\"%s\" malformed at "
373 "character: \'%c\'", 373 "character: \'%c\'",
374 __FUNCTION__, 374 __func__,
375 *str); 375 *str);
376 *(str + 1) = '\0'; 376 *(str + 1) = '\0';
377 } 377 }
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index c1f7e5a819a3..b917206ee906 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -11,7 +11,6 @@ choice
11 11
12config ARCH_OMAP1 12config ARCH_OMAP1
13 bool "TI OMAP1" 13 bool "TI OMAP1"
14 select GENERIC_CLOCKEVENTS
15 14
16config ARCH_OMAP2 15config ARCH_OMAP2
17 bool "TI OMAP2" 16 bool "TI OMAP2"
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
index ce17df31b845..8f56c255d1ee 100644
--- a/arch/arm/plat-omap/Makefile
+++ b/arch/arm/plat-omap/Makefile
@@ -14,9 +14,14 @@ obj-$(CONFIG_OMAP_32K_TIMER) += timer32k.o
14# OCPI interconnect support for 1710, 1610 and 5912 14# OCPI interconnect support for 1710, 1610 and 5912
15obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o 15obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
16 16
17obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
17 18
18obj-$(CONFIG_CPU_FREQ) += cpu-omap.o 19obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
19obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o 20obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
20obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o 21obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
21obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o 22obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
22obj-$(CONFIG_I2C_OMAP) += i2c.o 23obj-$(CONFIG_I2C_OMAP) += i2c.o
24
25# OMAP mailbox framework
26obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
27
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
index c0d63b0c61c9..d719c15daa55 100644
--- a/arch/arm/plat-omap/cpu-omap.c
+++ b/arch/arm/plat-omap/cpu-omap.c
@@ -33,43 +33,33 @@
33#define MPU_CLK "virt_prcm_set" 33#define MPU_CLK "virt_prcm_set"
34#endif 34#endif
35 35
36static struct clk *mpu_clk;
37
36/* TODO: Add support for SDRAM timing changes */ 38/* TODO: Add support for SDRAM timing changes */
37 39
38int omap_verify_speed(struct cpufreq_policy *policy) 40int omap_verify_speed(struct cpufreq_policy *policy)
39{ 41{
40 struct clk * mpu_clk;
41
42 if (policy->cpu) 42 if (policy->cpu)
43 return -EINVAL; 43 return -EINVAL;
44 44
45 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, 45 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
46 policy->cpuinfo.max_freq); 46 policy->cpuinfo.max_freq);
47 mpu_clk = clk_get(NULL, MPU_CLK); 47
48 if (IS_ERR(mpu_clk))
49 return PTR_ERR(mpu_clk);
50 policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000; 48 policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
51 policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000; 49 policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
52 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, 50 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
53 policy->cpuinfo.max_freq); 51 policy->cpuinfo.max_freq);
54 clk_put(mpu_clk);
55
56 return 0; 52 return 0;
57} 53}
58 54
59unsigned int omap_getspeed(unsigned int cpu) 55unsigned int omap_getspeed(unsigned int cpu)
60{ 56{
61 struct clk * mpu_clk;
62 unsigned long rate; 57 unsigned long rate;
63 58
64 if (cpu) 59 if (cpu)
65 return 0; 60 return 0;
66 61
67 mpu_clk = clk_get(NULL, MPU_CLK);
68 if (IS_ERR(mpu_clk))
69 return 0;
70 rate = clk_get_rate(mpu_clk) / 1000; 62 rate = clk_get_rate(mpu_clk) / 1000;
71 clk_put(mpu_clk);
72
73 return rate; 63 return rate;
74} 64}
75 65
@@ -77,14 +67,9 @@ static int omap_target(struct cpufreq_policy *policy,
77 unsigned int target_freq, 67 unsigned int target_freq,
78 unsigned int relation) 68 unsigned int relation)
79{ 69{
80 struct clk * mpu_clk;
81 struct cpufreq_freqs freqs; 70 struct cpufreq_freqs freqs;
82 int ret = 0; 71 int ret = 0;
83 72
84 mpu_clk = clk_get(NULL, MPU_CLK);
85 if (IS_ERR(mpu_clk))
86 return PTR_ERR(mpu_clk);
87
88 freqs.old = omap_getspeed(0); 73 freqs.old = omap_getspeed(0);
89 freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000; 74 freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
90 freqs.cpu = 0; 75 freqs.cpu = 0;
@@ -92,15 +77,12 @@ static int omap_target(struct cpufreq_policy *policy,
92 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 77 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
93 ret = clk_set_rate(mpu_clk, target_freq * 1000); 78 ret = clk_set_rate(mpu_clk, target_freq * 1000);
94 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 79 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
95 clk_put(mpu_clk);
96 80
97 return ret; 81 return ret;
98} 82}
99 83
100static int __init omap_cpu_init(struct cpufreq_policy *policy) 84static int __init omap_cpu_init(struct cpufreq_policy *policy)
101{ 85{
102 struct clk * mpu_clk;
103
104 mpu_clk = clk_get(NULL, MPU_CLK); 86 mpu_clk = clk_get(NULL, MPU_CLK);
105 if (IS_ERR(mpu_clk)) 87 if (IS_ERR(mpu_clk))
106 return PTR_ERR(mpu_clk); 88 return PTR_ERR(mpu_clk);
@@ -111,17 +93,23 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy)
111 policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000; 93 policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
112 policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000; 94 policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000;
113 policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; 95 policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
114 clk_put(mpu_clk);
115 96
116 return 0; 97 return 0;
117} 98}
118 99
100static int omap_cpu_exit(struct cpufreq_policy *policy)
101{
102 clk_put(mpu_clk);
103 return 0;
104}
105
119static struct cpufreq_driver omap_driver = { 106static struct cpufreq_driver omap_driver = {
120 .flags = CPUFREQ_STICKY, 107 .flags = CPUFREQ_STICKY,
121 .verify = omap_verify_speed, 108 .verify = omap_verify_speed,
122 .target = omap_target, 109 .target = omap_target,
123 .get = omap_getspeed, 110 .get = omap_getspeed,
124 .init = omap_cpu_init, 111 .init = omap_cpu_init,
112 .exit = omap_cpu_exit,
125 .name = "omap", 113 .name = "omap",
126}; 114};
127 115
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index c5dab1d6417e..4a53f9ba6c43 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -89,68 +89,6 @@ static inline void omap_init_dsp(void) { }
89#endif /* CONFIG_OMAP_DSP */ 89#endif /* CONFIG_OMAP_DSP */
90 90
91/*-------------------------------------------------------------------------*/ 91/*-------------------------------------------------------------------------*/
92#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
93
94#define OMAP1_I2C_BASE 0xfffb3800
95#define OMAP2_I2C_BASE1 0x48070000
96#define OMAP_I2C_SIZE 0x3f
97#define OMAP1_I2C_INT INT_I2C
98#define OMAP2_I2C_INT1 56
99
100static struct resource i2c_resources1[] = {
101 {
102 .start = 0,
103 .end = 0,
104 .flags = IORESOURCE_MEM,
105 },
106 {
107 .start = 0,
108 .flags = IORESOURCE_IRQ,
109 },
110};
111
112/* DMA not used; works around erratum writing to non-empty i2c fifo */
113
114static struct platform_device omap_i2c_device1 = {
115 .name = "i2c_omap",
116 .id = 1,
117 .num_resources = ARRAY_SIZE(i2c_resources1),
118 .resource = i2c_resources1,
119};
120
121/* See also arch/arm/mach-omap2/devices.c for second I2C on 24xx */
122static void omap_init_i2c(void)
123{
124 if (cpu_is_omap24xx()) {
125 i2c_resources1[0].start = OMAP2_I2C_BASE1;
126 i2c_resources1[0].end = OMAP2_I2C_BASE1 + OMAP_I2C_SIZE;
127 i2c_resources1[1].start = OMAP2_I2C_INT1;
128 } else {
129 i2c_resources1[0].start = OMAP1_I2C_BASE;
130 i2c_resources1[0].end = OMAP1_I2C_BASE + OMAP_I2C_SIZE;
131 i2c_resources1[1].start = OMAP1_I2C_INT;
132 }
133
134 /* FIXME define and use a boot tag, in case of boards that
135 * either don't wire up I2C, or chips that mux it differently...
136 * it can include clocking and address info, maybe more.
137 */
138 if (cpu_is_omap24xx()) {
139 omap_cfg_reg(M19_24XX_I2C1_SCL);
140 omap_cfg_reg(L15_24XX_I2C1_SDA);
141 } else {
142 omap_cfg_reg(I2C_SCL);
143 omap_cfg_reg(I2C_SDA);
144 }
145
146 (void) platform_device_register(&omap_i2c_device1);
147}
148
149#else
150static inline void omap_init_i2c(void) {}
151#endif
152
153/*-------------------------------------------------------------------------*/
154#if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE) 92#if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE)
155 93
156static void omap_init_kp(void) 94static void omap_init_kp(void)
@@ -501,7 +439,6 @@ static int __init omap_init_devices(void)
501 * in alphabetical order so they're easier to sort through. 439 * in alphabetical order so they're easier to sort through.
502 */ 440 */
503 omap_init_dsp(); 441 omap_init_dsp();
504 omap_init_i2c();
505 omap_init_kp(); 442 omap_init_kp();
506 omap_init_mmc(); 443 omap_init_mmc();
507 omap_init_uwire(); 444 omap_init_uwire();
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index a46676db8113..793740686be2 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -137,7 +137,7 @@ static void omap_disable_channel_irq(int lch);
137static inline void omap_enable_channel_irq(int lch); 137static inline void omap_enable_channel_irq(int lch);
138 138
139#define REVISIT_24XX() printk(KERN_ERR "FIXME: no %s on 24xx\n", \ 139#define REVISIT_24XX() printk(KERN_ERR "FIXME: no %s on 24xx\n", \
140 __FUNCTION__); 140 __func__);
141 141
142#ifdef CONFIG_ARCH_OMAP15XX 142#ifdef CONFIG_ARCH_OMAP15XX
143/* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */ 143/* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */
@@ -699,7 +699,7 @@ omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams)
699 u32 reg; 699 u32 reg;
700 700
701 if (!cpu_class_is_omap2()) { 701 if (!cpu_class_is_omap2()) {
702 printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __FUNCTION__); 702 printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __func__);
703 return; 703 return;
704 } 704 }
705 705
@@ -1020,12 +1020,12 @@ static void create_dma_lch_chain(int lch_head, int lch_queue)
1020 } 1020 }
1021 1021
1022 w = OMAP_DMA_CLNK_CTRL_REG(lch_head); 1022 w = OMAP_DMA_CLNK_CTRL_REG(lch_head);
1023 w &= ~(0x0f); 1023 w &= ~(0x1f);
1024 w |= lch_queue; 1024 w |= lch_queue;
1025 OMAP_DMA_CLNK_CTRL_REG(lch_head) = w; 1025 OMAP_DMA_CLNK_CTRL_REG(lch_head) = w;
1026 1026
1027 w = OMAP_DMA_CLNK_CTRL_REG(lch_queue); 1027 w = OMAP_DMA_CLNK_CTRL_REG(lch_queue);
1028 w &= ~(0x0f); 1028 w &= ~(0x1f);
1029 w |= (dma_chan[lch_queue].next_linked_ch); 1029 w |= (dma_chan[lch_queue].next_linked_ch);
1030 OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w; 1030 OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w;
1031} 1031}
@@ -1248,7 +1248,7 @@ EXPORT_SYMBOL(omap_dma_chain_status);
1248 * @param frame_count 1248 * @param frame_count
1249 * @param callbk_data - channel callback parameter data. 1249 * @param callbk_data - channel callback parameter data.
1250 * 1250 *
1251 * @return - Success : start_dma status 1251 * @return - Success : 0
1252 * Failure: -EINVAL/-EBUSY 1252 * Failure: -EINVAL/-EBUSY
1253 */ 1253 */
1254int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start, 1254int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start,
@@ -1367,7 +1367,7 @@ int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start,
1367 dma_chan[lch].flags |= OMAP_DMA_ACTIVE; 1367 dma_chan[lch].flags |= OMAP_DMA_ACTIVE;
1368 } 1368 }
1369 } 1369 }
1370 return start_dma; 1370 return 0;
1371} 1371}
1372EXPORT_SYMBOL(omap_dma_chain_a_transfer); 1372EXPORT_SYMBOL(omap_dma_chain_a_transfer);
1373 1373
@@ -1663,6 +1663,7 @@ static int omap2_dma_handle_ch(int ch)
1663 if (!status) { 1663 if (!status) {
1664 if (printk_ratelimit()) 1664 if (printk_ratelimit())
1665 printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch); 1665 printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch);
1666 omap_writel(1 << ch, OMAP_DMA4_IRQSTATUS_L0);
1666 return 0; 1667 return 0;
1667 } 1668 }
1668 if (unlikely(dma_chan[ch].dev_id == -1)) { 1669 if (unlikely(dma_chan[ch].dev_id == -1)) {
@@ -1705,14 +1706,8 @@ static int omap2_dma_handle_ch(int ch)
1705 status = OMAP_DMA_CSR_REG(ch); 1706 status = OMAP_DMA_CSR_REG(ch);
1706 } 1707 }
1707 1708
1708 if (likely(dma_chan[ch].callback != NULL)) { 1709 if (likely(dma_chan[ch].callback != NULL))
1709 if (dma_chan[ch].chain_id != -1) 1710 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1710 dma_chan[ch].callback(dma_chan[ch].chain_id, status,
1711 dma_chan[ch].data);
1712 else
1713 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1714
1715 }
1716 1711
1717 OMAP_DMA_CSR_REG(ch) = status; 1712 OMAP_DMA_CSR_REG(ch) = status;
1718 1713
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index e719d0eeb5c8..302ad8dff2cb 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -268,7 +268,7 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id)
268 if (id <= 0 || id > dm_timer_count || dm_timers[id-1].reserved) { 268 if (id <= 0 || id > dm_timer_count || dm_timers[id-1].reserved) {
269 spin_unlock_irqrestore(&dm_timer_lock, flags); 269 spin_unlock_irqrestore(&dm_timer_lock, flags);
270 printk("BUG: warning at %s:%d/%s(): unable to get timer %d\n", 270 printk("BUG: warning at %s:%d/%s(): unable to get timer %d\n",
271 __FILE__, __LINE__, __FUNCTION__, id); 271 __FILE__, __LINE__, __func__, id);
272 dump_stack(); 272 dump_stack();
273 return NULL; 273 return NULL;
274 } 274 }
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 56f4d1394d56..8c78e4e57b5c 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -333,13 +333,14 @@ static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input)
333void omap_set_gpio_direction(int gpio, int is_input) 333void omap_set_gpio_direction(int gpio, int is_input)
334{ 334{
335 struct gpio_bank *bank; 335 struct gpio_bank *bank;
336 unsigned long flags;
336 337
337 if (check_gpio(gpio) < 0) 338 if (check_gpio(gpio) < 0)
338 return; 339 return;
339 bank = get_gpio_bank(gpio); 340 bank = get_gpio_bank(gpio);
340 spin_lock(&bank->lock); 341 spin_lock_irqsave(&bank->lock, flags);
341 _set_gpio_direction(bank, get_gpio_index(gpio), is_input); 342 _set_gpio_direction(bank, get_gpio_index(gpio), is_input);
342 spin_unlock(&bank->lock); 343 spin_unlock_irqrestore(&bank->lock, flags);
343} 344}
344 345
345static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) 346static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
@@ -406,13 +407,14 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
406void omap_set_gpio_dataout(int gpio, int enable) 407void omap_set_gpio_dataout(int gpio, int enable)
407{ 408{
408 struct gpio_bank *bank; 409 struct gpio_bank *bank;
410 unsigned long flags;
409 411
410 if (check_gpio(gpio) < 0) 412 if (check_gpio(gpio) < 0)
411 return; 413 return;
412 bank = get_gpio_bank(gpio); 414 bank = get_gpio_bank(gpio);
413 spin_lock(&bank->lock); 415 spin_lock_irqsave(&bank->lock, flags);
414 _set_gpio_dataout(bank, get_gpio_index(gpio), enable); 416 _set_gpio_dataout(bank, get_gpio_index(gpio), enable);
415 spin_unlock(&bank->lock); 417 spin_unlock_irqrestore(&bank->lock, flags);
416} 418}
417 419
418int omap_get_gpio_datain(int gpio) 420int omap_get_gpio_datain(int gpio)
@@ -624,6 +626,7 @@ static int gpio_irq_type(unsigned irq, unsigned type)
624 struct gpio_bank *bank; 626 struct gpio_bank *bank;
625 unsigned gpio; 627 unsigned gpio;
626 int retval; 628 int retval;
629 unsigned long flags;
627 630
628 if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE) 631 if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE)
629 gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE); 632 gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE);
@@ -642,13 +645,13 @@ static int gpio_irq_type(unsigned irq, unsigned type)
642 return -EINVAL; 645 return -EINVAL;
643 646
644 bank = get_irq_chip_data(irq); 647 bank = get_irq_chip_data(irq);
645 spin_lock(&bank->lock); 648 spin_lock_irqsave(&bank->lock, flags);
646 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); 649 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type);
647 if (retval == 0) { 650 if (retval == 0) {
648 irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK; 651 irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK;
649 irq_desc[irq].status |= type; 652 irq_desc[irq].status |= type;
650 } 653 }
651 spin_unlock(&bank->lock); 654 spin_unlock_irqrestore(&bank->lock, flags);
652 return retval; 655 return retval;
653} 656}
654 657
@@ -830,11 +833,13 @@ static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int ena
830 */ 833 */
831static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) 834static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
832{ 835{
836 unsigned long flags;
837
833 switch (bank->method) { 838 switch (bank->method) {
834#ifdef CONFIG_ARCH_OMAP16XX 839#ifdef CONFIG_ARCH_OMAP16XX
835 case METHOD_MPUIO: 840 case METHOD_MPUIO:
836 case METHOD_GPIO_1610: 841 case METHOD_GPIO_1610:
837 spin_lock(&bank->lock); 842 spin_lock_irqsave(&bank->lock, flags);
838 if (enable) { 843 if (enable) {
839 bank->suspend_wakeup |= (1 << gpio); 844 bank->suspend_wakeup |= (1 << gpio);
840 enable_irq_wake(bank->irq); 845 enable_irq_wake(bank->irq);
@@ -842,7 +847,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
842 disable_irq_wake(bank->irq); 847 disable_irq_wake(bank->irq);
843 bank->suspend_wakeup &= ~(1 << gpio); 848 bank->suspend_wakeup &= ~(1 << gpio);
844 } 849 }
845 spin_unlock(&bank->lock); 850 spin_unlock_irqrestore(&bank->lock, flags);
846 return 0; 851 return 0;
847#endif 852#endif
848#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) 853#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
@@ -853,7 +858,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
853 (bank - gpio_bank) * 32 + gpio); 858 (bank - gpio_bank) * 32 + gpio);
854 return -EINVAL; 859 return -EINVAL;
855 } 860 }
856 spin_lock(&bank->lock); 861 spin_lock_irqsave(&bank->lock, flags);
857 if (enable) { 862 if (enable) {
858 bank->suspend_wakeup |= (1 << gpio); 863 bank->suspend_wakeup |= (1 << gpio);
859 enable_irq_wake(bank->irq); 864 enable_irq_wake(bank->irq);
@@ -861,7 +866,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
861 disable_irq_wake(bank->irq); 866 disable_irq_wake(bank->irq);
862 bank->suspend_wakeup &= ~(1 << gpio); 867 bank->suspend_wakeup &= ~(1 << gpio);
863 } 868 }
864 spin_unlock(&bank->lock); 869 spin_unlock_irqrestore(&bank->lock, flags);
865 return 0; 870 return 0;
866#endif 871#endif
867 default: 872 default:
@@ -897,16 +902,17 @@ static int gpio_wake_enable(unsigned int irq, unsigned int enable)
897int omap_request_gpio(int gpio) 902int omap_request_gpio(int gpio)
898{ 903{
899 struct gpio_bank *bank; 904 struct gpio_bank *bank;
905 unsigned long flags;
900 906
901 if (check_gpio(gpio) < 0) 907 if (check_gpio(gpio) < 0)
902 return -EINVAL; 908 return -EINVAL;
903 909
904 bank = get_gpio_bank(gpio); 910 bank = get_gpio_bank(gpio);
905 spin_lock(&bank->lock); 911 spin_lock_irqsave(&bank->lock, flags);
906 if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) { 912 if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) {
907 printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio); 913 printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio);
908 dump_stack(); 914 dump_stack();
909 spin_unlock(&bank->lock); 915 spin_unlock_irqrestore(&bank->lock, flags);
910 return -1; 916 return -1;
911 } 917 }
912 bank->reserved_map |= (1 << get_gpio_index(gpio)); 918 bank->reserved_map |= (1 << get_gpio_index(gpio));
@@ -925,7 +931,7 @@ int omap_request_gpio(int gpio)
925 __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg); 931 __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg);
926 } 932 }
927#endif 933#endif
928 spin_unlock(&bank->lock); 934 spin_unlock_irqrestore(&bank->lock, flags);
929 935
930 return 0; 936 return 0;
931} 937}
@@ -933,15 +939,16 @@ int omap_request_gpio(int gpio)
933void omap_free_gpio(int gpio) 939void omap_free_gpio(int gpio)
934{ 940{
935 struct gpio_bank *bank; 941 struct gpio_bank *bank;
942 unsigned long flags;
936 943
937 if (check_gpio(gpio) < 0) 944 if (check_gpio(gpio) < 0)
938 return; 945 return;
939 bank = get_gpio_bank(gpio); 946 bank = get_gpio_bank(gpio);
940 spin_lock(&bank->lock); 947 spin_lock_irqsave(&bank->lock, flags);
941 if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) { 948 if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) {
942 printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio); 949 printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio);
943 dump_stack(); 950 dump_stack();
944 spin_unlock(&bank->lock); 951 spin_unlock_irqrestore(&bank->lock, flags);
945 return; 952 return;
946 } 953 }
947#ifdef CONFIG_ARCH_OMAP16XX 954#ifdef CONFIG_ARCH_OMAP16XX
@@ -960,7 +967,7 @@ void omap_free_gpio(int gpio)
960#endif 967#endif
961 bank->reserved_map &= ~(1 << get_gpio_index(gpio)); 968 bank->reserved_map &= ~(1 << get_gpio_index(gpio));
962 _reset_gpio(bank, gpio); 969 _reset_gpio(bank, gpio);
963 spin_unlock(&bank->lock); 970 spin_unlock_irqrestore(&bank->lock, flags);
964} 971}
965 972
966/* 973/*
@@ -1127,10 +1134,9 @@ static void gpio_mask_irq(unsigned int irq)
1127static void gpio_unmask_irq(unsigned int irq) 1134static void gpio_unmask_irq(unsigned int irq)
1128{ 1135{
1129 unsigned int gpio = irq - IH_GPIO_BASE; 1136 unsigned int gpio = irq - IH_GPIO_BASE;
1130 unsigned int gpio_idx = get_gpio_index(gpio);
1131 struct gpio_bank *bank = get_irq_chip_data(irq); 1137 struct gpio_bank *bank = get_irq_chip_data(irq);
1132 1138
1133 _set_gpio_irqenable(bank, gpio_idx, 1); 1139 _set_gpio_irqenable(bank, gpio, 1);
1134} 1140}
1135 1141
1136static struct irq_chip gpio_irq_chip = { 1142static struct irq_chip gpio_irq_chip = {
@@ -1194,11 +1200,12 @@ static int omap_mpuio_suspend_late(struct platform_device *pdev, pm_message_t me
1194{ 1200{
1195 struct gpio_bank *bank = platform_get_drvdata(pdev); 1201 struct gpio_bank *bank = platform_get_drvdata(pdev);
1196 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; 1202 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT;
1203 unsigned long flags;
1197 1204
1198 spin_lock(&bank->lock); 1205 spin_lock_irqsave(&bank->lock, flags);
1199 bank->saved_wakeup = __raw_readl(mask_reg); 1206 bank->saved_wakeup = __raw_readl(mask_reg);
1200 __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg); 1207 __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg);
1201 spin_unlock(&bank->lock); 1208 spin_unlock_irqrestore(&bank->lock, flags);
1202 1209
1203 return 0; 1210 return 0;
1204} 1211}
@@ -1207,10 +1214,11 @@ static int omap_mpuio_resume_early(struct platform_device *pdev)
1207{ 1214{
1208 struct gpio_bank *bank = platform_get_drvdata(pdev); 1215 struct gpio_bank *bank = platform_get_drvdata(pdev);
1209 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; 1216 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT;
1217 unsigned long flags;
1210 1218
1211 spin_lock(&bank->lock); 1219 spin_lock_irqsave(&bank->lock, flags);
1212 __raw_writel(bank->saved_wakeup, mask_reg); 1220 __raw_writel(bank->saved_wakeup, mask_reg);
1213 spin_unlock(&bank->lock); 1221 spin_unlock_irqrestore(&bank->lock, flags);
1214 1222
1215 return 0; 1223 return 0;
1216} 1224}
@@ -1277,6 +1285,11 @@ static struct clk *gpio_fclks[OMAP34XX_NR_GPIOS];
1277static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; 1285static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS];
1278#endif 1286#endif
1279 1287
1288/* This lock class tells lockdep that GPIO irqs are in a different
1289 * category than their parents, so it won't report false recursion.
1290 */
1291static struct lock_class_key gpio_lock_class;
1292
1280static int __init _omap_gpio_init(void) 1293static int __init _omap_gpio_init(void)
1281{ 1294{
1282 int i; 1295 int i;
@@ -1450,6 +1463,7 @@ static int __init _omap_gpio_init(void)
1450#endif 1463#endif
1451 for (j = bank->virtual_irq_start; 1464 for (j = bank->virtual_irq_start;
1452 j < bank->virtual_irq_start + gpio_count; j++) { 1465 j < bank->virtual_irq_start + gpio_count; j++) {
1466 lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class);
1453 set_irq_chip_data(j, bank); 1467 set_irq_chip_data(j, bank);
1454 if (bank_is_mpuio(bank)) 1468 if (bank_is_mpuio(bank))
1455 set_irq_chip(j, &mpuio_irq_chip); 1469 set_irq_chip(j, &mpuio_irq_chip);
@@ -1489,6 +1503,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
1489 void __iomem *wake_status; 1503 void __iomem *wake_status;
1490 void __iomem *wake_clear; 1504 void __iomem *wake_clear;
1491 void __iomem *wake_set; 1505 void __iomem *wake_set;
1506 unsigned long flags;
1492 1507
1493 switch (bank->method) { 1508 switch (bank->method) {
1494#ifdef CONFIG_ARCH_OMAP16XX 1509#ifdef CONFIG_ARCH_OMAP16XX
@@ -1509,11 +1524,11 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
1509 continue; 1524 continue;
1510 } 1525 }
1511 1526
1512 spin_lock(&bank->lock); 1527 spin_lock_irqsave(&bank->lock, flags);
1513 bank->saved_wakeup = __raw_readl(wake_status); 1528 bank->saved_wakeup = __raw_readl(wake_status);
1514 __raw_writel(0xffffffff, wake_clear); 1529 __raw_writel(0xffffffff, wake_clear);
1515 __raw_writel(bank->suspend_wakeup, wake_set); 1530 __raw_writel(bank->suspend_wakeup, wake_set);
1516 spin_unlock(&bank->lock); 1531 spin_unlock_irqrestore(&bank->lock, flags);
1517 } 1532 }
1518 1533
1519 return 0; 1534 return 0;
@@ -1530,6 +1545,7 @@ static int omap_gpio_resume(struct sys_device *dev)
1530 struct gpio_bank *bank = &gpio_bank[i]; 1545 struct gpio_bank *bank = &gpio_bank[i];
1531 void __iomem *wake_clear; 1546 void __iomem *wake_clear;
1532 void __iomem *wake_set; 1547 void __iomem *wake_set;
1548 unsigned long flags;
1533 1549
1534 switch (bank->method) { 1550 switch (bank->method) {
1535#ifdef CONFIG_ARCH_OMAP16XX 1551#ifdef CONFIG_ARCH_OMAP16XX
@@ -1548,10 +1564,10 @@ static int omap_gpio_resume(struct sys_device *dev)
1548 continue; 1564 continue;
1549 } 1565 }
1550 1566
1551 spin_lock(&bank->lock); 1567 spin_lock_irqsave(&bank->lock, flags);
1552 __raw_writel(0xffffffff, wake_clear); 1568 __raw_writel(0xffffffff, wake_clear);
1553 __raw_writel(bank->saved_wakeup, wake_set); 1569 __raw_writel(bank->saved_wakeup, wake_set);
1554 spin_unlock(&bank->lock); 1570 spin_unlock_irqrestore(&bank->lock, flags);
1555 } 1571 }
1556 1572
1557 return 0; 1573 return 0;
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index ac9ff1666fcc..60f162dc4fad 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -130,8 +130,8 @@ dmadbg_showregs(const char *fname, int line, struct s3c2410_dma_chan *chan)
130 dmadbg_dumpregs(fname, line, chan, &state); 130 dmadbg_dumpregs(fname, line, chan, &state);
131} 131}
132 132
133#define dbg_showregs(chan) dmadbg_showregs(__FUNCTION__, __LINE__, (chan)) 133#define dbg_showregs(chan) dmadbg_showregs(__func__, __LINE__, (chan))
134#define dbg_showchan(chan) dmadbg_showchan(__FUNCTION__, __LINE__, (chan)) 134#define dbg_showchan(chan) dmadbg_showchan(__func__, __LINE__, (chan))
135#else 135#else
136#define dbg_showregs(chan) do { } while(0) 136#define dbg_showregs(chan) do { } while(0)
137#define dbg_showchan(chan) do { } while(0) 137#define dbg_showchan(chan) do { } while(0)
@@ -403,7 +403,7 @@ static int s3c2410_dma_start(struct s3c2410_dma_chan *chan)
403 403
404 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { 404 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
405 pr_debug("%s: buff not yet loaded, no more todo\n", 405 pr_debug("%s: buff not yet loaded, no more todo\n",
406 __FUNCTION__); 406 __func__);
407 } else { 407 } else {
408 chan->load_state = S3C2410_DMALOAD_1RUNNING; 408 chan->load_state = S3C2410_DMALOAD_1RUNNING;
409 s3c2410_dma_loadbuffer(chan, chan->next); 409 s3c2410_dma_loadbuffer(chan, chan->next);
@@ -463,16 +463,16 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
463 return -EINVAL; 463 return -EINVAL;
464 464
465 pr_debug("%s: id=%p, data=%08x, size=%d\n", 465 pr_debug("%s: id=%p, data=%08x, size=%d\n",
466 __FUNCTION__, id, (unsigned int)data, size); 466 __func__, id, (unsigned int)data, size);
467 467
468 buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC); 468 buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC);
469 if (buf == NULL) { 469 if (buf == NULL) {
470 pr_debug("%s: out of memory (%ld alloc)\n", 470 pr_debug("%s: out of memory (%ld alloc)\n",
471 __FUNCTION__, (long)sizeof(*buf)); 471 __func__, (long)sizeof(*buf));
472 return -ENOMEM; 472 return -ENOMEM;
473 } 473 }
474 474
475 //pr_debug("%s: new buffer %p\n", __FUNCTION__, buf); 475 //pr_debug("%s: new buffer %p\n", __func__, buf);
476 //dbg_showchan(chan); 476 //dbg_showchan(chan);
477 477
478 buf->next = NULL; 478 buf->next = NULL;
@@ -486,18 +486,18 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
486 if (chan->curr == NULL) { 486 if (chan->curr == NULL) {
487 /* we've got nothing loaded... */ 487 /* we've got nothing loaded... */
488 pr_debug("%s: buffer %p queued onto empty channel\n", 488 pr_debug("%s: buffer %p queued onto empty channel\n",
489 __FUNCTION__, buf); 489 __func__, buf);
490 490
491 chan->curr = buf; 491 chan->curr = buf;
492 chan->end = buf; 492 chan->end = buf;
493 chan->next = NULL; 493 chan->next = NULL;
494 } else { 494 } else {
495 pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n", 495 pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n",
496 chan->number, __FUNCTION__, buf); 496 chan->number, __func__, buf);
497 497
498 if (chan->end == NULL) 498 if (chan->end == NULL)
499 pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n", 499 pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n",
500 chan->number, __FUNCTION__, chan); 500 chan->number, __func__, chan);
501 501
502 chan->end->next = buf; 502 chan->end->next = buf;
503 chan->end = buf; 503 chan->end = buf;
@@ -572,7 +572,7 @@ s3c2410_dma_lastxfer(struct s3c2410_dma_chan *chan)
572 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { 572 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
573 /* flag error? */ 573 /* flag error? */
574 printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", 574 printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n",
575 chan->number, __FUNCTION__); 575 chan->number, __func__);
576 return; 576 return;
577 } 577 }
578 break; 578 break;
@@ -658,7 +658,7 @@ s3c2410_dma_irq(int irq, void *devpw)
658 658
659 if (buf->magic != BUF_MAGIC) { 659 if (buf->magic != BUF_MAGIC) {
660 printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n", 660 printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n",
661 chan->number, __FUNCTION__, buf); 661 chan->number, __func__, buf);
662 return IRQ_HANDLED; 662 return IRQ_HANDLED;
663 } 663 }
664 664
@@ -692,7 +692,7 @@ s3c2410_dma_irq(int irq, void *devpw)
692 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { 692 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
693 /* flag error? */ 693 /* flag error? */
694 printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", 694 printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n",
695 chan->number, __FUNCTION__); 695 chan->number, __func__);
696 return IRQ_HANDLED; 696 return IRQ_HANDLED;
697 } 697 }
698 698
@@ -759,7 +759,7 @@ int s3c2410_dma_request(unsigned int channel,
759 759
760 if (!chan->irq_claimed) { 760 if (!chan->irq_claimed) {
761 pr_debug("dma%d: %s : requesting irq %d\n", 761 pr_debug("dma%d: %s : requesting irq %d\n",
762 channel, __FUNCTION__, chan->irq); 762 channel, __func__, chan->irq);
763 763
764 chan->irq_claimed = 1; 764 chan->irq_claimed = 1;
765 local_irq_restore(flags); 765 local_irq_restore(flags);
@@ -786,7 +786,7 @@ int s3c2410_dma_request(unsigned int channel,
786 786
787 /* need to setup */ 787 /* need to setup */
788 788
789 pr_debug("%s: channel initialised, %p\n", __FUNCTION__, chan); 789 pr_debug("%s: channel initialised, %p\n", __func__, chan);
790 790
791 return chan->number | DMACH_LOW_LEVEL; 791 return chan->number | DMACH_LOW_LEVEL;
792} 792}
@@ -823,7 +823,7 @@ int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *client)
823 823
824 if (chan->state != S3C2410_DMA_IDLE) { 824 if (chan->state != S3C2410_DMA_IDLE) {
825 pr_debug("%s: need to stop dma channel %p\n", 825 pr_debug("%s: need to stop dma channel %p\n",
826 __FUNCTION__, chan); 826 __func__, chan);
827 827
828 /* possibly flush the channel */ 828 /* possibly flush the channel */
829 s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP); 829 s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP);
@@ -852,7 +852,7 @@ static int s3c2410_dma_dostop(struct s3c2410_dma_chan *chan)
852 unsigned long flags; 852 unsigned long flags;
853 unsigned long tmp; 853 unsigned long tmp;
854 854
855 pr_debug("%s:\n", __FUNCTION__); 855 pr_debug("%s:\n", __func__);
856 856
857 dbg_showchan(chan); 857 dbg_showchan(chan);
858 858
@@ -907,14 +907,14 @@ static int s3c2410_dma_flush(struct s3c2410_dma_chan *chan)
907 struct s3c2410_dma_buf *buf, *next; 907 struct s3c2410_dma_buf *buf, *next;
908 unsigned long flags; 908 unsigned long flags;
909 909
910 pr_debug("%s: chan %p (%d)\n", __FUNCTION__, chan, chan->number); 910 pr_debug("%s: chan %p (%d)\n", __func__, chan, chan->number);
911 911
912 dbg_showchan(chan); 912 dbg_showchan(chan);
913 913
914 local_irq_save(flags); 914 local_irq_save(flags);
915 915
916 if (chan->state != S3C2410_DMA_IDLE) { 916 if (chan->state != S3C2410_DMA_IDLE) {
917 pr_debug("%s: stopping channel...\n", __FUNCTION__ ); 917 pr_debug("%s: stopping channel...\n", __func__ );
918 s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP); 918 s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP);
919 } 919 }
920 920
@@ -929,7 +929,7 @@ static int s3c2410_dma_flush(struct s3c2410_dma_chan *chan)
929 next = buf->next; 929 next = buf->next;
930 930
931 pr_debug("%s: free buffer %p, next %p\n", 931 pr_debug("%s: free buffer %p, next %p\n",
932 __FUNCTION__, buf, buf->next); 932 __func__, buf, buf->next);
933 933
934 s3c2410_dma_buffdone(chan, buf, S3C2410_RES_ABORT); 934 s3c2410_dma_buffdone(chan, buf, S3C2410_RES_ABORT);
935 s3c2410_dma_freebuf(buf); 935 s3c2410_dma_freebuf(buf);
@@ -976,7 +976,7 @@ static int s3c2410_dma_started(struct s3c2410_dma_chan *chan)
976 976
977 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { 977 if (s3c2410_dma_waitforload(chan, __LINE__) == 0) {
978 pr_debug("%s: buff not yet loaded, no more todo\n", 978 pr_debug("%s: buff not yet loaded, no more todo\n",
979 __FUNCTION__); 979 __func__);
980 } else { 980 } else {
981 chan->load_state = S3C2410_DMALOAD_1RUNNING; 981 chan->load_state = S3C2410_DMALOAD_1RUNNING;
982 s3c2410_dma_loadbuffer(chan, chan->next); 982 s3c2410_dma_loadbuffer(chan, chan->next);
@@ -1050,16 +1050,16 @@ int s3c2410_dma_config(dmach_t channel,
1050 struct s3c2410_dma_chan *chan = lookup_dma_channel(channel); 1050 struct s3c2410_dma_chan *chan = lookup_dma_channel(channel);
1051 1051
1052 pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n", 1052 pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n",
1053 __FUNCTION__, channel, xferunit, dcon); 1053 __func__, channel, xferunit, dcon);
1054 1054
1055 if (chan == NULL) 1055 if (chan == NULL)
1056 return -EINVAL; 1056 return -EINVAL;
1057 1057
1058 pr_debug("%s: Initial dcon is %08x\n", __FUNCTION__, dcon); 1058 pr_debug("%s: Initial dcon is %08x\n", __func__, dcon);
1059 1059
1060 dcon |= chan->dcon & dma_sel.dcon_mask; 1060 dcon |= chan->dcon & dma_sel.dcon_mask;
1061 1061
1062 pr_debug("%s: New dcon is %08x\n", __FUNCTION__, dcon); 1062 pr_debug("%s: New dcon is %08x\n", __func__, dcon);
1063 1063
1064 switch (xferunit) { 1064 switch (xferunit) {
1065 case 1: 1065 case 1:
@@ -1075,14 +1075,14 @@ int s3c2410_dma_config(dmach_t channel,
1075 break; 1075 break;
1076 1076
1077 default: 1077 default:
1078 pr_debug("%s: bad transfer size %d\n", __FUNCTION__, xferunit); 1078 pr_debug("%s: bad transfer size %d\n", __func__, xferunit);
1079 return -EINVAL; 1079 return -EINVAL;
1080 } 1080 }
1081 1081
1082 dcon |= S3C2410_DCON_HWTRIG; 1082 dcon |= S3C2410_DCON_HWTRIG;
1083 dcon |= S3C2410_DCON_INTREQ; 1083 dcon |= S3C2410_DCON_INTREQ;
1084 1084
1085 pr_debug("%s: dcon now %08x\n", __FUNCTION__, dcon); 1085 pr_debug("%s: dcon now %08x\n", __func__, dcon);
1086 1086
1087 chan->dcon = dcon; 1087 chan->dcon = dcon;
1088 chan->xfer_unit = xferunit; 1088 chan->xfer_unit = xferunit;
@@ -1099,7 +1099,7 @@ int s3c2410_dma_setflags(dmach_t channel, unsigned int flags)
1099 if (chan == NULL) 1099 if (chan == NULL)
1100 return -EINVAL; 1100 return -EINVAL;
1101 1101
1102 pr_debug("%s: chan=%p, flags=%08x\n", __FUNCTION__, chan, flags); 1102 pr_debug("%s: chan=%p, flags=%08x\n", __func__, chan, flags);
1103 1103
1104 chan->flags = flags; 1104 chan->flags = flags;
1105 1105
@@ -1120,7 +1120,7 @@ int s3c2410_dma_set_opfn(dmach_t channel, s3c2410_dma_opfn_t rtn)
1120 if (chan == NULL) 1120 if (chan == NULL)
1121 return -EINVAL; 1121 return -EINVAL;
1122 1122
1123 pr_debug("%s: chan=%p, op rtn=%p\n", __FUNCTION__, chan, rtn); 1123 pr_debug("%s: chan=%p, op rtn=%p\n", __func__, chan, rtn);
1124 1124
1125 chan->op_fn = rtn; 1125 chan->op_fn = rtn;
1126 1126
@@ -1136,7 +1136,7 @@ int s3c2410_dma_set_buffdone_fn(dmach_t channel, s3c2410_dma_cbfn_t rtn)
1136 if (chan == NULL) 1136 if (chan == NULL)
1137 return -EINVAL; 1137 return -EINVAL;
1138 1138
1139 pr_debug("%s: chan=%p, callback rtn=%p\n", __FUNCTION__, chan, rtn); 1139 pr_debug("%s: chan=%p, callback rtn=%p\n", __func__, chan, rtn);
1140 1140
1141 chan->callback_fn = rtn; 1141 chan->callback_fn = rtn;
1142 1142
@@ -1170,7 +1170,7 @@ int s3c2410_dma_devconfig(int channel,
1170 return -EINVAL; 1170 return -EINVAL;
1171 1171
1172 pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n", 1172 pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n",
1173 __FUNCTION__, (int)source, hwcfg, devaddr); 1173 __func__, (int)source, hwcfg, devaddr);
1174 1174
1175 chan->source = source; 1175 chan->source = source;
1176 chan->dev_addr = devaddr; 1176 chan->dev_addr = devaddr;
@@ -1180,7 +1180,7 @@ int s3c2410_dma_devconfig(int channel,
1180 case S3C2410_DMASRC_HW: 1180 case S3C2410_DMASRC_HW:
1181 /* source is hardware */ 1181 /* source is hardware */
1182 pr_debug("%s: hw source, devaddr=%08lx, hwcfg=%d\n", 1182 pr_debug("%s: hw source, devaddr=%08lx, hwcfg=%d\n",
1183 __FUNCTION__, devaddr, hwcfg); 1183 __func__, devaddr, hwcfg);
1184 dma_wrreg(chan, S3C2410_DMA_DISRCC, hwcfg & 3); 1184 dma_wrreg(chan, S3C2410_DMA_DISRCC, hwcfg & 3);
1185 dma_wrreg(chan, S3C2410_DMA_DISRC, devaddr); 1185 dma_wrreg(chan, S3C2410_DMA_DISRC, devaddr);
1186 dma_wrreg(chan, S3C2410_DMA_DIDSTC, (0<<1) | (0<<0)); 1186 dma_wrreg(chan, S3C2410_DMA_DIDSTC, (0<<1) | (0<<0));
@@ -1190,8 +1190,8 @@ int s3c2410_dma_devconfig(int channel,
1190 1190
1191 case S3C2410_DMASRC_MEM: 1191 case S3C2410_DMASRC_MEM:
1192 /* source is memory */ 1192 /* source is memory */
1193 pr_debug( "%s: mem source, devaddr=%08lx, hwcfg=%d\n", 1193 pr_debug("%s: mem source, devaddr=%08lx, hwcfg=%d\n",
1194 __FUNCTION__, devaddr, hwcfg); 1194 __func__, devaddr, hwcfg);
1195 dma_wrreg(chan, S3C2410_DMA_DISRCC, (0<<1) | (0<<0)); 1195 dma_wrreg(chan, S3C2410_DMA_DISRCC, (0<<1) | (0<<0));
1196 dma_wrreg(chan, S3C2410_DMA_DIDST, devaddr); 1196 dma_wrreg(chan, S3C2410_DMA_DIDST, devaddr);
1197 dma_wrreg(chan, S3C2410_DMA_DIDSTC, hwcfg & 3); 1197 dma_wrreg(chan, S3C2410_DMA_DIDSTC, hwcfg & 3);
diff --git a/arch/avr32/kernel/setup.c b/arch/avr32/kernel/setup.c
index e66a07a928cd..2687b730e2d0 100644
--- a/arch/avr32/kernel/setup.c
+++ b/arch/avr32/kernel/setup.c
@@ -163,6 +163,7 @@ add_reserved_region(resource_size_t start, resource_size_t end,
163 new->start = start; 163 new->start = start;
164 new->end = end; 164 new->end = end;
165 new->name = name; 165 new->name = name;
166 new->sibling = next;
166 new->flags = IORESOURCE_MEM; 167 new->flags = IORESOURCE_MEM;
167 168
168 *pprev = new; 169 *pprev = new;
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c
index cf6f686d9b0b..b835c4c01368 100644
--- a/arch/avr32/kernel/traps.c
+++ b/arch/avr32/kernel/traps.c
@@ -178,6 +178,7 @@ static int do_cop_absent(u32 insn)
178 return 0; 178 return 0;
179} 179}
180 180
181#ifdef CONFIG_BUG
181int is_valid_bugaddr(unsigned long pc) 182int is_valid_bugaddr(unsigned long pc)
182{ 183{
183 unsigned short opcode; 184 unsigned short opcode;
@@ -189,6 +190,7 @@ int is_valid_bugaddr(unsigned long pc)
189 190
190 return opcode == AVR32_BUG_OPCODE; 191 return opcode == AVR32_BUG_OPCODE;
191} 192}
193#endif
192 194
193asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) 195asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
194{ 196{
@@ -197,6 +199,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
197 void __user *pc; 199 void __user *pc;
198 long code; 200 long code;
199 201
202#ifdef CONFIG_BUG
200 if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) { 203 if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) {
201 enum bug_trap_type type; 204 enum bug_trap_type type;
202 205
@@ -211,6 +214,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
211 die("Kernel BUG", regs, SIGKILL); 214 die("Kernel BUG", regs, SIGKILL);
212 } 215 }
213 } 216 }
217#endif
214 218
215 local_irq_enable(); 219 local_irq_enable();
216 220
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ade230d445d9..8724ed3298d3 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1824,7 +1824,7 @@ choice
1824 Allows the configuration of the timer frequency. 1824 Allows the configuration of the timer frequency.
1825 1825
1826 config HZ_48 1826 config HZ_48
1827 bool "48 HZ" if SYS_SUPPORTS_48HZ 1827 bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
1828 1828
1829 config HZ_100 1829 config HZ_100
1830 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ 1830 bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 3fb7f3065c92..72097dacabd3 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -12,6 +12,8 @@
12# for "archclean" cleaning up for this architecture. 12# for "archclean" cleaning up for this architecture.
13# 13#
14 14
15KBUILD_DEFCONFIG := ip22_defconfig
16
15cflags-y := 17cflags-y :=
16 18
17# 19#
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c
index 428ed275a0f6..57f17b41098d 100644
--- a/arch/mips/au1000/common/dbdma.c
+++ b/arch/mips/au1000/common/dbdma.c
@@ -161,22 +161,22 @@ static dbdev_tab_t dbdev_tab[] = {
161 { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 }, 161 { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 },
162 162
163 /* Provide 16 user definable device types */ 163 /* Provide 16 user definable device types */
164 { 0, 0, 0, 0, 0, 0, 0 }, 164 { ~0, 0, 0, 0, 0, 0, 0 },
165 { 0, 0, 0, 0, 0, 0, 0 }, 165 { ~0, 0, 0, 0, 0, 0, 0 },
166 { 0, 0, 0, 0, 0, 0, 0 }, 166 { ~0, 0, 0, 0, 0, 0, 0 },
167 { 0, 0, 0, 0, 0, 0, 0 }, 167 { ~0, 0, 0, 0, 0, 0, 0 },
168 { 0, 0, 0, 0, 0, 0, 0 }, 168 { ~0, 0, 0, 0, 0, 0, 0 },
169 { 0, 0, 0, 0, 0, 0, 0 }, 169 { ~0, 0, 0, 0, 0, 0, 0 },
170 { 0, 0, 0, 0, 0, 0, 0 }, 170 { ~0, 0, 0, 0, 0, 0, 0 },
171 { 0, 0, 0, 0, 0, 0, 0 }, 171 { ~0, 0, 0, 0, 0, 0, 0 },
172 { 0, 0, 0, 0, 0, 0, 0 }, 172 { ~0, 0, 0, 0, 0, 0, 0 },
173 { 0, 0, 0, 0, 0, 0, 0 }, 173 { ~0, 0, 0, 0, 0, 0, 0 },
174 { 0, 0, 0, 0, 0, 0, 0 }, 174 { ~0, 0, 0, 0, 0, 0, 0 },
175 { 0, 0, 0, 0, 0, 0, 0 }, 175 { ~0, 0, 0, 0, 0, 0, 0 },
176 { 0, 0, 0, 0, 0, 0, 0 }, 176 { ~0, 0, 0, 0, 0, 0, 0 },
177 { 0, 0, 0, 0, 0, 0, 0 }, 177 { ~0, 0, 0, 0, 0, 0, 0 },
178 { 0, 0, 0, 0, 0, 0, 0 }, 178 { ~0, 0, 0, 0, 0, 0, 0 },
179 { 0, 0, 0, 0, 0, 0, 0 }, 179 { ~0, 0, 0, 0, 0, 0, 0 },
180}; 180};
181 181
182#define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab) 182#define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab)
@@ -209,7 +209,7 @@ au1xxx_ddma_add_device(dbdev_tab_t *dev)
209 dbdev_tab_t *p=NULL; 209 dbdev_tab_t *p=NULL;
210 static u16 new_id=0x1000; 210 static u16 new_id=0x1000;
211 211
212 p = find_dbdev_id(0); 212 p = find_dbdev_id(~0);
213 if ( NULL != p ) 213 if ( NULL != p )
214 { 214 {
215 memcpy(p, dev, sizeof(dbdev_tab_t)); 215 memcpy(p, dev, sizeof(dbdev_tab_t));
diff --git a/arch/mips/defconfig b/arch/mips/defconfig
deleted file mode 100644
index 4f5e56c9335e..000000000000
--- a/arch/mips/defconfig
+++ /dev/null
@@ -1,1158 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc2
4# Tue Aug 7 12:39:49 2007
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_ZONE_DMA=y
12# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LEMOTE_FULONG is not set
18# CONFIG_MIPS_ATLAS is not set
19# CONFIG_MIPS_MALTA is not set
20# CONFIG_MIPS_SEAD is not set
21# CONFIG_MIPS_SIM is not set
22# CONFIG_MARKEINS is not set
23# CONFIG_MACH_VR41XX is not set
24# CONFIG_PNX8550_JBS is not set
25# CONFIG_PNX8550_STB810 is not set
26# CONFIG_PMC_MSP is not set
27# CONFIG_PMC_YOSEMITE is not set
28CONFIG_SGI_IP22=y
29# CONFIG_SGI_IP27 is not set
30# CONFIG_SGI_IP32 is not set
31# CONFIG_SIBYTE_CRHINE is not set
32# CONFIG_SIBYTE_CARMEL is not set
33# CONFIG_SIBYTE_CRHONE is not set
34# CONFIG_SIBYTE_RHONE is not set
35# CONFIG_SIBYTE_SWARM is not set
36# CONFIG_SIBYTE_LITTLESUR is not set
37# CONFIG_SIBYTE_SENTOSA is not set
38# CONFIG_SIBYTE_BIGSUR is not set
39# CONFIG_SNI_RM is not set
40# CONFIG_TOSHIBA_JMR3927 is not set
41# CONFIG_TOSHIBA_RBTX4927 is not set
42# CONFIG_TOSHIBA_RBTX4938 is not set
43# CONFIG_WR_PPMC is not set
44CONFIG_RWSEM_GENERIC_SPINLOCK=y
45# CONFIG_ARCH_HAS_ILOG2_U32 is not set
46# CONFIG_ARCH_HAS_ILOG2_U64 is not set
47CONFIG_GENERIC_FIND_NEXT_BIT=y
48CONFIG_GENERIC_HWEIGHT=y
49CONFIG_GENERIC_CALIBRATE_DELAY=y
50CONFIG_GENERIC_TIME=y
51CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
52# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
53CONFIG_ARC=y
54CONFIG_DMA_NONCOHERENT=y
55CONFIG_DMA_NEED_PCI_MAP_STATE=y
56CONFIG_EARLY_PRINTK=y
57CONFIG_SYS_HAS_EARLY_PRINTK=y
58# CONFIG_NO_IOPORT is not set
59CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
60CONFIG_CPU_BIG_ENDIAN=y
61# CONFIG_CPU_LITTLE_ENDIAN is not set
62CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
63CONFIG_IRQ_CPU=y
64CONFIG_SWAP_IO_SPACE=y
65CONFIG_ARC32=y
66CONFIG_BOOT_ELF32=y
67CONFIG_MIPS_L1_CACHE_SHIFT=5
68CONFIG_ARC_CONSOLE=y
69CONFIG_ARC_PROMLIB=y
70
71#
72# CPU selection
73#
74# CONFIG_CPU_LOONGSON2 is not set
75# CONFIG_CPU_MIPS32_R1 is not set
76# CONFIG_CPU_MIPS32_R2 is not set
77# CONFIG_CPU_MIPS64_R1 is not set
78# CONFIG_CPU_MIPS64_R2 is not set
79# CONFIG_CPU_R3000 is not set
80# CONFIG_CPU_TX39XX is not set
81# CONFIG_CPU_VR41XX is not set
82# CONFIG_CPU_R4300 is not set
83# CONFIG_CPU_R4X00 is not set
84# CONFIG_CPU_TX49XX is not set
85CONFIG_CPU_R5000=y
86# CONFIG_CPU_R5432 is not set
87# CONFIG_CPU_R6000 is not set
88# CONFIG_CPU_NEVADA is not set
89# CONFIG_CPU_R8000 is not set
90# CONFIG_CPU_R10000 is not set
91# CONFIG_CPU_RM7000 is not set
92# CONFIG_CPU_RM9000 is not set
93# CONFIG_CPU_SB1 is not set
94CONFIG_SYS_HAS_CPU_R4X00=y
95CONFIG_SYS_HAS_CPU_R5000=y
96CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
97CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
98CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
99CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
100
101#
102# Kernel type
103#
104CONFIG_32BIT=y
105# CONFIG_64BIT is not set
106CONFIG_PAGE_SIZE_4KB=y
107# CONFIG_PAGE_SIZE_8KB is not set
108# CONFIG_PAGE_SIZE_16KB is not set
109# CONFIG_PAGE_SIZE_64KB is not set
110CONFIG_BOARD_SCACHE=y
111CONFIG_IP22_CPU_SCACHE=y
112CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set
115CONFIG_CPU_HAS_LLSC=y
116CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y
119CONFIG_ARCH_FLATMEM_ENABLE=y
120CONFIG_SELECT_MEMORY_MODEL=y
121CONFIG_FLATMEM_MANUAL=y
122# CONFIG_DISCONTIGMEM_MANUAL is not set
123# CONFIG_SPARSEMEM_MANUAL is not set
124CONFIG_FLATMEM=y
125CONFIG_FLAT_NODE_MEM_MAP=y
126# CONFIG_SPARSEMEM_STATIC is not set
127CONFIG_SPLIT_PTLOCK_CPUS=4
128# CONFIG_RESOURCES_64BIT is not set
129CONFIG_ZONE_DMA_FLAG=1
130CONFIG_BOUNCE=y
131CONFIG_VIRT_TO_BUS=y
132# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set
134# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y
138# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000
141# CONFIG_PREEMPT_NONE is not set
142CONFIG_PREEMPT_VOLUNTARY=y
143# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set
145CONFIG_SECCOMP=y
146CONFIG_LOCKDEP_SUPPORT=y
147CONFIG_STACKTRACE_SUPPORT=y
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149
150#
151# General setup
152#
153CONFIG_EXPERIMENTAL=y
154CONFIG_BROKEN_ON_SMP=y
155CONFIG_INIT_ENV_ARG_LIMIT=32
156CONFIG_LOCALVERSION=""
157CONFIG_LOCALVERSION_AUTO=y
158CONFIG_SWAP=y
159CONFIG_SYSVIPC=y
160CONFIG_SYSVIPC_SYSCTL=y
161# CONFIG_POSIX_MQUEUE is not set
162# CONFIG_BSD_PROCESS_ACCT is not set
163# CONFIG_TASKSTATS is not set
164# CONFIG_USER_NS is not set
165# CONFIG_AUDIT is not set
166CONFIG_IKCONFIG=y
167CONFIG_IKCONFIG_PROC=y
168CONFIG_LOG_BUF_SHIFT=14
169CONFIG_SYSFS_DEPRECATED=y
170CONFIG_RELAY=y
171# CONFIG_BLK_DEV_INITRD is not set
172# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
173CONFIG_SYSCTL=y
174CONFIG_EMBEDDED=y
175CONFIG_SYSCTL_SYSCALL=y
176CONFIG_KALLSYMS=y
177# CONFIG_KALLSYMS_EXTRA_PASS is not set
178# CONFIG_HOTPLUG is not set
179CONFIG_PRINTK=y
180CONFIG_BUG=y
181CONFIG_ELF_CORE=y
182CONFIG_BASE_FULL=y
183CONFIG_FUTEX=y
184CONFIG_ANON_INODES=y
185CONFIG_EPOLL=y
186CONFIG_SIGNALFD=y
187CONFIG_TIMERFD=y
188CONFIG_EVENTFD=y
189CONFIG_SHMEM=y
190CONFIG_VM_EVENT_COUNTERS=y
191CONFIG_SLAB=y
192# CONFIG_SLUB is not set
193# CONFIG_SLOB is not set
194CONFIG_RT_MUTEXES=y
195# CONFIG_TINY_SHMEM is not set
196CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y
198CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y
201CONFIG_MODULE_SRCVERSION_ALL=y
202CONFIG_KMOD=y
203CONFIG_BLOCK=y
204# CONFIG_LBD is not set
205# CONFIG_BLK_DEV_IO_TRACE is not set
206# CONFIG_LSF is not set
207# CONFIG_BLK_DEV_BSG is not set
208
209#
210# IO Schedulers
211#
212CONFIG_IOSCHED_NOOP=y
213CONFIG_IOSCHED_AS=y
214CONFIG_IOSCHED_DEADLINE=y
215CONFIG_IOSCHED_CFQ=y
216CONFIG_DEFAULT_AS=y
217# CONFIG_DEFAULT_DEADLINE is not set
218# CONFIG_DEFAULT_CFQ is not set
219# CONFIG_DEFAULT_NOOP is not set
220CONFIG_DEFAULT_IOSCHED="anticipatory"
221
222#
223# Bus options (PCI, PCMCIA, EISA, ISA, TC)
224#
225CONFIG_HW_HAS_EISA=y
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227# CONFIG_EISA is not set
228CONFIG_MMU=y
229
230#
231# PCCARD (PCMCIA/CardBus) support
232#
233
234#
235# Executable file formats
236#
237CONFIG_BINFMT_ELF=y
238CONFIG_BINFMT_MISC=m
239CONFIG_TRAD_SIGNALS=y
240
241#
242# Power management options
243#
244CONFIG_PM=y
245# CONFIG_PM_LEGACY is not set
246# CONFIG_PM_DEBUG is not set
247# CONFIG_SUSPEND is not set
248
249#
250# Networking
251#
252CONFIG_NET=y
253
254#
255# Networking options
256#
257CONFIG_PACKET=y
258CONFIG_PACKET_MMAP=y
259CONFIG_UNIX=y
260CONFIG_XFRM=y
261CONFIG_XFRM_USER=m
262# CONFIG_XFRM_SUB_POLICY is not set
263CONFIG_XFRM_MIGRATE=y
264CONFIG_NET_KEY=y
265CONFIG_NET_KEY_MIGRATE=y
266CONFIG_INET=y
267CONFIG_IP_MULTICAST=y
268# CONFIG_IP_ADVANCED_ROUTER is not set
269CONFIG_IP_FIB_HASH=y
270CONFIG_IP_PNP=y
271# CONFIG_IP_PNP_DHCP is not set
272CONFIG_IP_PNP_BOOTP=y
273# CONFIG_IP_PNP_RARP is not set
274# CONFIG_NET_IPIP is not set
275# CONFIG_NET_IPGRE is not set
276# CONFIG_IP_MROUTE is not set
277# CONFIG_ARPD is not set
278# CONFIG_SYN_COOKIES is not set
279CONFIG_INET_AH=m
280CONFIG_INET_ESP=m
281CONFIG_INET_IPCOMP=m
282CONFIG_INET_XFRM_TUNNEL=m
283CONFIG_INET_TUNNEL=m
284CONFIG_INET_XFRM_MODE_TRANSPORT=m
285CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_XFRM_MODE_BEET=m
287CONFIG_INET_DIAG=y
288CONFIG_INET_TCP_DIAG=y
289# CONFIG_TCP_CONG_ADVANCED is not set
290CONFIG_TCP_CONG_CUBIC=y
291CONFIG_DEFAULT_TCP_CONG="cubic"
292CONFIG_TCP_MD5SIG=y
293CONFIG_IP_VS=m
294# CONFIG_IP_VS_DEBUG is not set
295CONFIG_IP_VS_TAB_BITS=12
296
297#
298# IPVS transport protocol load balancing support
299#
300CONFIG_IP_VS_PROTO_TCP=y
301CONFIG_IP_VS_PROTO_UDP=y
302CONFIG_IP_VS_PROTO_ESP=y
303CONFIG_IP_VS_PROTO_AH=y
304
305#
306# IPVS scheduler
307#
308CONFIG_IP_VS_RR=m
309CONFIG_IP_VS_WRR=m
310CONFIG_IP_VS_LC=m
311CONFIG_IP_VS_WLC=m
312CONFIG_IP_VS_LBLC=m
313CONFIG_IP_VS_LBLCR=m
314CONFIG_IP_VS_DH=m
315CONFIG_IP_VS_SH=m
316CONFIG_IP_VS_SED=m
317CONFIG_IP_VS_NQ=m
318
319#
320# IPVS application helper
321#
322CONFIG_IP_VS_FTP=m
323CONFIG_IPV6=m
324CONFIG_IPV6_PRIVACY=y
325CONFIG_IPV6_ROUTER_PREF=y
326CONFIG_IPV6_ROUTE_INFO=y
327CONFIG_IPV6_OPTIMISTIC_DAD=y
328CONFIG_INET6_AH=m
329CONFIG_INET6_ESP=m
330CONFIG_INET6_IPCOMP=m
331CONFIG_IPV6_MIP6=m
332CONFIG_INET6_XFRM_TUNNEL=m
333CONFIG_INET6_TUNNEL=m
334CONFIG_INET6_XFRM_MODE_TRANSPORT=m
335CONFIG_INET6_XFRM_MODE_TUNNEL=m
336CONFIG_INET6_XFRM_MODE_BEET=m
337CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
338CONFIG_IPV6_SIT=m
339CONFIG_IPV6_TUNNEL=m
340CONFIG_IPV6_MULTIPLE_TABLES=y
341CONFIG_IPV6_SUBTREES=y
342CONFIG_NETWORK_SECMARK=y
343CONFIG_NETFILTER=y
344# CONFIG_NETFILTER_DEBUG is not set
345
346#
347# Core Netfilter Configuration
348#
349CONFIG_NETFILTER_NETLINK=m
350CONFIG_NETFILTER_NETLINK_QUEUE=m
351CONFIG_NETFILTER_NETLINK_LOG=m
352CONFIG_NF_CONNTRACK_ENABLED=m
353CONFIG_NF_CONNTRACK=m
354CONFIG_NF_CT_ACCT=y
355CONFIG_NF_CONNTRACK_MARK=y
356CONFIG_NF_CONNTRACK_SECMARK=y
357CONFIG_NF_CONNTRACK_EVENTS=y
358CONFIG_NF_CT_PROTO_GRE=m
359CONFIG_NF_CT_PROTO_SCTP=m
360CONFIG_NF_CT_PROTO_UDPLITE=m
361CONFIG_NF_CONNTRACK_AMANDA=m
362CONFIG_NF_CONNTRACK_FTP=m
363CONFIG_NF_CONNTRACK_H323=m
364CONFIG_NF_CONNTRACK_IRC=m
365# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
366CONFIG_NF_CONNTRACK_PPTP=m
367CONFIG_NF_CONNTRACK_SANE=m
368CONFIG_NF_CONNTRACK_SIP=m
369CONFIG_NF_CONNTRACK_TFTP=m
370CONFIG_NF_CT_NETLINK=m
371CONFIG_NETFILTER_XTABLES=m
372CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
373CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
374CONFIG_NETFILTER_XT_TARGET_DSCP=m
375CONFIG_NETFILTER_XT_TARGET_MARK=m
376CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
377CONFIG_NETFILTER_XT_TARGET_NFLOG=m
378CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
379CONFIG_NETFILTER_XT_TARGET_TRACE=m
380CONFIG_NETFILTER_XT_TARGET_SECMARK=m
381CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
382CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
383CONFIG_NETFILTER_XT_MATCH_COMMENT=m
384CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
385CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
386CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
387CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
388CONFIG_NETFILTER_XT_MATCH_DCCP=m
389CONFIG_NETFILTER_XT_MATCH_DSCP=m
390CONFIG_NETFILTER_XT_MATCH_ESP=m
391CONFIG_NETFILTER_XT_MATCH_HELPER=m
392CONFIG_NETFILTER_XT_MATCH_LENGTH=m
393CONFIG_NETFILTER_XT_MATCH_LIMIT=m
394CONFIG_NETFILTER_XT_MATCH_MAC=m
395CONFIG_NETFILTER_XT_MATCH_MARK=m
396CONFIG_NETFILTER_XT_MATCH_POLICY=m
397CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
398CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
399CONFIG_NETFILTER_XT_MATCH_QUOTA=m
400CONFIG_NETFILTER_XT_MATCH_REALM=m
401CONFIG_NETFILTER_XT_MATCH_SCTP=m
402CONFIG_NETFILTER_XT_MATCH_STATE=m
403CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
404CONFIG_NETFILTER_XT_MATCH_STRING=m
405CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
406CONFIG_NETFILTER_XT_MATCH_U32=m
407CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
408
409#
410# IP: Netfilter Configuration
411#
412CONFIG_NF_CONNTRACK_IPV4=m
413CONFIG_NF_CONNTRACK_PROC_COMPAT=y
414CONFIG_IP_NF_QUEUE=m
415CONFIG_IP_NF_IPTABLES=m
416CONFIG_IP_NF_MATCH_IPRANGE=m
417CONFIG_IP_NF_MATCH_TOS=m
418CONFIG_IP_NF_MATCH_RECENT=m
419CONFIG_IP_NF_MATCH_ECN=m
420CONFIG_IP_NF_MATCH_AH=m
421CONFIG_IP_NF_MATCH_TTL=m
422CONFIG_IP_NF_MATCH_OWNER=m
423CONFIG_IP_NF_MATCH_ADDRTYPE=m
424CONFIG_IP_NF_FILTER=m
425CONFIG_IP_NF_TARGET_REJECT=m
426CONFIG_IP_NF_TARGET_LOG=m
427CONFIG_IP_NF_TARGET_ULOG=m
428CONFIG_NF_NAT=m
429CONFIG_NF_NAT_NEEDED=y
430CONFIG_IP_NF_TARGET_MASQUERADE=m
431CONFIG_IP_NF_TARGET_REDIRECT=m
432CONFIG_IP_NF_TARGET_NETMAP=m
433CONFIG_IP_NF_TARGET_SAME=m
434CONFIG_NF_NAT_SNMP_BASIC=m
435CONFIG_NF_NAT_PROTO_GRE=m
436CONFIG_NF_NAT_FTP=m
437CONFIG_NF_NAT_IRC=m
438CONFIG_NF_NAT_TFTP=m
439CONFIG_NF_NAT_AMANDA=m
440CONFIG_NF_NAT_PPTP=m
441CONFIG_NF_NAT_H323=m
442CONFIG_NF_NAT_SIP=m
443CONFIG_IP_NF_MANGLE=m
444CONFIG_IP_NF_TARGET_TOS=m
445CONFIG_IP_NF_TARGET_ECN=m
446CONFIG_IP_NF_TARGET_TTL=m
447CONFIG_IP_NF_TARGET_CLUSTERIP=m
448CONFIG_IP_NF_RAW=m
449CONFIG_IP_NF_ARPTABLES=m
450CONFIG_IP_NF_ARPFILTER=m
451CONFIG_IP_NF_ARP_MANGLE=m
452
453#
454# IPv6: Netfilter Configuration (EXPERIMENTAL)
455#
456CONFIG_NF_CONNTRACK_IPV6=m
457CONFIG_IP6_NF_QUEUE=m
458CONFIG_IP6_NF_IPTABLES=m
459CONFIG_IP6_NF_MATCH_RT=m
460CONFIG_IP6_NF_MATCH_OPTS=m
461CONFIG_IP6_NF_MATCH_FRAG=m
462CONFIG_IP6_NF_MATCH_HL=m
463CONFIG_IP6_NF_MATCH_OWNER=m
464CONFIG_IP6_NF_MATCH_IPV6HEADER=m
465CONFIG_IP6_NF_MATCH_AH=m
466CONFIG_IP6_NF_MATCH_MH=m
467CONFIG_IP6_NF_MATCH_EUI64=m
468CONFIG_IP6_NF_FILTER=m
469CONFIG_IP6_NF_TARGET_LOG=m
470CONFIG_IP6_NF_TARGET_REJECT=m
471CONFIG_IP6_NF_MANGLE=m
472CONFIG_IP6_NF_TARGET_HL=m
473CONFIG_IP6_NF_RAW=m
474# CONFIG_IP_DCCP is not set
475CONFIG_IP_SCTP=m
476# CONFIG_SCTP_DBG_MSG is not set
477# CONFIG_SCTP_DBG_OBJCNT is not set
478# CONFIG_SCTP_HMAC_NONE is not set
479# CONFIG_SCTP_HMAC_SHA1 is not set
480CONFIG_SCTP_HMAC_MD5=y
481# CONFIG_TIPC is not set
482# CONFIG_ATM is not set
483# CONFIG_BRIDGE is not set
484# CONFIG_VLAN_8021Q is not set
485# CONFIG_DECNET is not set
486# CONFIG_LLC2 is not set
487# CONFIG_IPX is not set
488# CONFIG_ATALK is not set
489# CONFIG_X25 is not set
490# CONFIG_LAPB is not set
491# CONFIG_ECONET is not set
492# CONFIG_WAN_ROUTER is not set
493
494#
495# QoS and/or fair queueing
496#
497CONFIG_NET_SCHED=y
498CONFIG_NET_SCH_FIFO=y
499
500#
501# Queueing/Scheduling
502#
503CONFIG_NET_SCH_CBQ=m
504CONFIG_NET_SCH_HTB=m
505CONFIG_NET_SCH_HFSC=m
506CONFIG_NET_SCH_PRIO=m
507CONFIG_NET_SCH_RR=m
508CONFIG_NET_SCH_RED=m
509CONFIG_NET_SCH_SFQ=m
510CONFIG_NET_SCH_TEQL=m
511CONFIG_NET_SCH_TBF=m
512CONFIG_NET_SCH_GRED=m
513CONFIG_NET_SCH_DSMARK=m
514CONFIG_NET_SCH_NETEM=m
515CONFIG_NET_SCH_INGRESS=m
516
517#
518# Classification
519#
520CONFIG_NET_CLS=y
521CONFIG_NET_CLS_BASIC=m
522CONFIG_NET_CLS_TCINDEX=m
523CONFIG_NET_CLS_ROUTE4=m
524CONFIG_NET_CLS_ROUTE=y
525CONFIG_NET_CLS_FW=m
526CONFIG_NET_CLS_U32=m
527# CONFIG_CLS_U32_PERF is not set
528# CONFIG_CLS_U32_MARK is not set
529CONFIG_NET_CLS_RSVP=m
530CONFIG_NET_CLS_RSVP6=m
531# CONFIG_NET_EMATCH is not set
532CONFIG_NET_CLS_ACT=y
533CONFIG_NET_ACT_POLICE=y
534CONFIG_NET_ACT_GACT=m
535CONFIG_GACT_PROB=y
536CONFIG_NET_ACT_MIRRED=m
537CONFIG_NET_ACT_IPT=m
538CONFIG_NET_ACT_PEDIT=m
539CONFIG_NET_ACT_SIMP=m
540CONFIG_NET_CLS_POLICE=y
541# CONFIG_NET_CLS_IND is not set
542
543#
544# Network testing
545#
546# CONFIG_NET_PKTGEN is not set
547# CONFIG_HAMRADIO is not set
548# CONFIG_IRDA is not set
549# CONFIG_BT is not set
550# CONFIG_AF_RXRPC is not set
551CONFIG_FIB_RULES=y
552
553#
554# Wireless
555#
556CONFIG_CFG80211=m
557CONFIG_WIRELESS_EXT=y
558CONFIG_MAC80211=m
559# CONFIG_MAC80211_DEBUG is not set
560CONFIG_IEEE80211=m
561# CONFIG_IEEE80211_DEBUG is not set
562CONFIG_IEEE80211_CRYPT_WEP=m
563CONFIG_IEEE80211_CRYPT_CCMP=m
564CONFIG_IEEE80211_CRYPT_TKIP=m
565CONFIG_IEEE80211_SOFTMAC=m
566# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
567CONFIG_RFKILL=m
568CONFIG_RFKILL_INPUT=m
569# CONFIG_NET_9P is not set
570
571#
572# Device Drivers
573#
574
575#
576# Generic Driver Options
577#
578CONFIG_STANDALONE=y
579CONFIG_PREVENT_FIRMWARE_BUILD=y
580# CONFIG_SYS_HYPERVISOR is not set
581CONFIG_CONNECTOR=m
582# CONFIG_MTD is not set
583# CONFIG_PARPORT is not set
584CONFIG_BLK_DEV=y
585# CONFIG_BLK_DEV_COW_COMMON is not set
586# CONFIG_BLK_DEV_LOOP is not set
587# CONFIG_BLK_DEV_NBD is not set
588# CONFIG_BLK_DEV_RAM is not set
589CONFIG_CDROM_PKTCDVD=m
590CONFIG_CDROM_PKTCDVD_BUFFERS=8
591# CONFIG_CDROM_PKTCDVD_WCACHE is not set
592CONFIG_ATA_OVER_ETH=m
593# CONFIG_MISC_DEVICES is not set
594# CONFIG_IDE is not set
595
596#
597# SCSI device support
598#
599CONFIG_RAID_ATTRS=m
600CONFIG_SCSI=y
601CONFIG_SCSI_DMA=y
602CONFIG_SCSI_TGT=m
603# CONFIG_SCSI_NETLINK is not set
604CONFIG_SCSI_PROC_FS=y
605
606#
607# SCSI support type (disk, tape, CD-ROM)
608#
609CONFIG_BLK_DEV_SD=y
610CONFIG_CHR_DEV_ST=y
611# CONFIG_CHR_DEV_OSST is not set
612CONFIG_BLK_DEV_SR=y
613# CONFIG_BLK_DEV_SR_VENDOR is not set
614# CONFIG_CHR_DEV_SG is not set
615CONFIG_CHR_DEV_SCH=m
616
617#
618# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
619#
620# CONFIG_SCSI_MULTI_LUN is not set
621CONFIG_SCSI_CONSTANTS=y
622# CONFIG_SCSI_LOGGING is not set
623CONFIG_SCSI_SCAN_ASYNC=y
624CONFIG_SCSI_WAIT_SCAN=m
625
626#
627# SCSI Transports
628#
629CONFIG_SCSI_SPI_ATTRS=m
630# CONFIG_SCSI_FC_ATTRS is not set
631CONFIG_SCSI_ISCSI_ATTRS=m
632# CONFIG_SCSI_SAS_LIBSAS is not set
633CONFIG_SCSI_LOWLEVEL=y
634CONFIG_ISCSI_TCP=m
635CONFIG_SGIWD93_SCSI=y
636# CONFIG_SCSI_DEBUG is not set
637# CONFIG_ATA is not set
638# CONFIG_MD is not set
639CONFIG_NETDEVICES=y
640# CONFIG_NETDEVICES_MULTIQUEUE is not set
641# CONFIG_IFB is not set
642CONFIG_DUMMY=m
643CONFIG_BONDING=m
644CONFIG_MACVLAN=m
645CONFIG_EQUALIZER=m
646CONFIG_TUN=m
647CONFIG_PHYLIB=m
648
649#
650# MII PHY device drivers
651#
652CONFIG_MARVELL_PHY=m
653CONFIG_DAVICOM_PHY=m
654CONFIG_QSEMI_PHY=m
655CONFIG_LXT_PHY=m
656CONFIG_CICADA_PHY=m
657# CONFIG_VITESSE_PHY is not set
658# CONFIG_SMSC_PHY is not set
659# CONFIG_BROADCOM_PHY is not set
660# CONFIG_ICPLUS_PHY is not set
661# CONFIG_FIXED_PHY is not set
662CONFIG_NET_ETHERNET=y
663# CONFIG_MII is not set
664# CONFIG_AX88796 is not set
665# CONFIG_DM9000 is not set
666CONFIG_SGISEEQ=y
667# CONFIG_NETDEV_1000 is not set
668# CONFIG_NETDEV_10000 is not set
669
670#
671# Wireless LAN
672#
673CONFIG_WLAN_PRE80211=y
674CONFIG_STRIP=m
675CONFIG_WLAN_80211=y
676# CONFIG_LIBERTAS is not set
677CONFIG_HOSTAP=m
678# CONFIG_HOSTAP_FIRMWARE is not set
679# CONFIG_WAN is not set
680# CONFIG_PPP is not set
681# CONFIG_SLIP is not set
682# CONFIG_SHAPER is not set
683# CONFIG_NETCONSOLE is not set
684# CONFIG_NETPOLL is not set
685# CONFIG_NET_POLL_CONTROLLER is not set
686# CONFIG_ISDN is not set
687# CONFIG_PHONE is not set
688
689#
690# Input device support
691#
692CONFIG_INPUT=y
693# CONFIG_INPUT_FF_MEMLESS is not set
694# CONFIG_INPUT_POLLDEV is not set
695
696#
697# Userland interfaces
698#
699CONFIG_INPUT_MOUSEDEV=m
700CONFIG_INPUT_MOUSEDEV_PSAUX=y
701CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
702CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
703# CONFIG_INPUT_JOYDEV is not set
704# CONFIG_INPUT_TSDEV is not set
705# CONFIG_INPUT_EVDEV is not set
706# CONFIG_INPUT_EVBUG is not set
707
708#
709# Input Device Drivers
710#
711CONFIG_INPUT_KEYBOARD=y
712CONFIG_KEYBOARD_ATKBD=y
713# CONFIG_KEYBOARD_SUNKBD is not set
714# CONFIG_KEYBOARD_LKKBD is not set
715# CONFIG_KEYBOARD_XTKBD is not set
716# CONFIG_KEYBOARD_NEWTON is not set
717# CONFIG_KEYBOARD_STOWAWAY is not set
718CONFIG_INPUT_MOUSE=y
719CONFIG_MOUSE_PS2=m
720# CONFIG_MOUSE_PS2_ALPS is not set
721CONFIG_MOUSE_PS2_LOGIPS2PP=y
722# CONFIG_MOUSE_PS2_SYNAPTICS is not set
723# CONFIG_MOUSE_PS2_LIFEBOOK is not set
724CONFIG_MOUSE_PS2_TRACKPOINT=y
725# CONFIG_MOUSE_PS2_TOUCHKIT is not set
726CONFIG_MOUSE_SERIAL=m
727# CONFIG_MOUSE_VSXXXAA is not set
728# CONFIG_INPUT_JOYSTICK is not set
729# CONFIG_INPUT_TABLET is not set
730# CONFIG_INPUT_TOUCHSCREEN is not set
731# CONFIG_INPUT_MISC is not set
732
733#
734# Hardware I/O ports
735#
736CONFIG_SERIO=y
737CONFIG_SERIO_I8042=y
738CONFIG_SERIO_SERPORT=y
739CONFIG_SERIO_LIBPS2=y
740CONFIG_SERIO_RAW=m
741# CONFIG_GAMEPORT is not set
742
743#
744# Character devices
745#
746CONFIG_VT=y
747CONFIG_VT_CONSOLE=y
748CONFIG_HW_CONSOLE=y
749CONFIG_VT_HW_CONSOLE_BINDING=y
750# CONFIG_SERIAL_NONSTANDARD is not set
751
752#
753# Serial drivers
754#
755# CONFIG_SERIAL_8250 is not set
756
757#
758# Non-8250 serial port support
759#
760CONFIG_SERIAL_IP22_ZILOG=m
761CONFIG_SERIAL_CORE=m
762CONFIG_UNIX98_PTYS=y
763CONFIG_LEGACY_PTYS=y
764CONFIG_LEGACY_PTY_COUNT=256
765# CONFIG_IPMI_HANDLER is not set
766CONFIG_WATCHDOG=y
767# CONFIG_WATCHDOG_NOWAYOUT is not set
768
769#
770# Watchdog Device Drivers
771#
772# CONFIG_SOFT_WATCHDOG is not set
773CONFIG_INDYDOG=m
774# CONFIG_HW_RANDOM is not set
775# CONFIG_RTC is not set
776CONFIG_SGI_DS1286=m
777# CONFIG_R3964 is not set
778CONFIG_RAW_DRIVER=m
779CONFIG_MAX_RAW_DEVS=256
780# CONFIG_TCG_TPM is not set
781# CONFIG_I2C is not set
782
783#
784# SPI support
785#
786# CONFIG_SPI is not set
787# CONFIG_SPI_MASTER is not set
788# CONFIG_W1 is not set
789# CONFIG_POWER_SUPPLY is not set
790# CONFIG_HWMON is not set
791
792#
793# Multifunction device drivers
794#
795# CONFIG_MFD_SM501 is not set
796
797#
798# Multimedia devices
799#
800# CONFIG_VIDEO_DEV is not set
801# CONFIG_DVB_CORE is not set
802# CONFIG_DAB is not set
803
804#
805# Graphics support
806#
807# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
808
809#
810# Display device support
811#
812# CONFIG_DISPLAY_SUPPORT is not set
813# CONFIG_VGASTATE is not set
814# CONFIG_VIDEO_OUTPUT_CONTROL is not set
815# CONFIG_FB is not set
816
817#
818# Console display driver support
819#
820# CONFIG_VGA_CONSOLE is not set
821CONFIG_SGI_NEWPORT_CONSOLE=y
822CONFIG_DUMMY_CONSOLE=y
823CONFIG_FONT_8x16=y
824CONFIG_LOGO=y
825# CONFIG_LOGO_LINUX_MONO is not set
826# CONFIG_LOGO_LINUX_VGA16 is not set
827# CONFIG_LOGO_LINUX_CLUT224 is not set
828CONFIG_LOGO_SGI_CLUT224=y
829
830#
831# Sound
832#
833# CONFIG_SOUND is not set
834CONFIG_HID_SUPPORT=y
835CONFIG_HID=y
836# CONFIG_HID_DEBUG is not set
837CONFIG_USB_SUPPORT=y
838# CONFIG_USB_ARCH_HAS_HCD is not set
839# CONFIG_USB_ARCH_HAS_OHCI is not set
840# CONFIG_USB_ARCH_HAS_EHCI is not set
841
842#
843# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
844#
845
846#
847# USB Gadget Support
848#
849# CONFIG_USB_GADGET is not set
850# CONFIG_MMC is not set
851# CONFIG_NEW_LEDS is not set
852# CONFIG_RTC_CLASS is not set
853
854#
855# DMA Engine support
856#
857# CONFIG_DMA_ENGINE is not set
858
859#
860# DMA Clients
861#
862
863#
864# DMA Devices
865#
866
867#
868# Userspace I/O
869#
870# CONFIG_UIO is not set
871
872#
873# File systems
874#
875CONFIG_EXT2_FS=m
876# CONFIG_EXT2_FS_XATTR is not set
877# CONFIG_EXT2_FS_XIP is not set
878CONFIG_EXT3_FS=y
879CONFIG_EXT3_FS_XATTR=y
880CONFIG_EXT3_FS_POSIX_ACL=y
881CONFIG_EXT3_FS_SECURITY=y
882# CONFIG_EXT4DEV_FS is not set
883CONFIG_JBD=y
884# CONFIG_JBD_DEBUG is not set
885CONFIG_FS_MBCACHE=y
886# CONFIG_REISERFS_FS is not set
887# CONFIG_JFS_FS is not set
888CONFIG_FS_POSIX_ACL=y
889CONFIG_XFS_FS=m
890CONFIG_XFS_QUOTA=y
891CONFIG_XFS_SECURITY=y
892# CONFIG_XFS_POSIX_ACL is not set
893# CONFIG_XFS_RT is not set
894# CONFIG_GFS2_FS is not set
895# CONFIG_OCFS2_FS is not set
896CONFIG_MINIX_FS=m
897# CONFIG_ROMFS_FS is not set
898CONFIG_INOTIFY=y
899CONFIG_INOTIFY_USER=y
900CONFIG_QUOTA=y
901# CONFIG_QFMT_V1 is not set
902CONFIG_QFMT_V2=m
903CONFIG_QUOTACTL=y
904CONFIG_DNOTIFY=y
905CONFIG_AUTOFS_FS=m
906CONFIG_AUTOFS4_FS=m
907CONFIG_FUSE_FS=m
908CONFIG_GENERIC_ACL=y
909
910#
911# CD-ROM/DVD Filesystems
912#
913CONFIG_ISO9660_FS=m
914CONFIG_JOLIET=y
915CONFIG_ZISOFS=y
916CONFIG_UDF_FS=m
917CONFIG_UDF_NLS=y
918
919#
920# DOS/FAT/NT Filesystems
921#
922CONFIG_FAT_FS=m
923CONFIG_MSDOS_FS=m
924CONFIG_VFAT_FS=m
925CONFIG_FAT_DEFAULT_CODEPAGE=437
926CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
927# CONFIG_NTFS_FS is not set
928
929#
930# Pseudo filesystems
931#
932CONFIG_PROC_FS=y
933CONFIG_PROC_KCORE=y
934CONFIG_PROC_SYSCTL=y
935CONFIG_SYSFS=y
936CONFIG_TMPFS=y
937CONFIG_TMPFS_POSIX_ACL=y
938# CONFIG_HUGETLB_PAGE is not set
939CONFIG_RAMFS=y
940CONFIG_CONFIGFS_FS=m
941
942#
943# Miscellaneous filesystems
944#
945# CONFIG_ADFS_FS is not set
946# CONFIG_AFFS_FS is not set
947# CONFIG_ECRYPT_FS is not set
948# CONFIG_HFS_FS is not set
949# CONFIG_HFSPLUS_FS is not set
950# CONFIG_BEFS_FS is not set
951# CONFIG_BFS_FS is not set
952CONFIG_EFS_FS=m
953# CONFIG_CRAMFS is not set
954# CONFIG_VXFS_FS is not set
955# CONFIG_HPFS_FS is not set
956# CONFIG_QNX4FS_FS is not set
957# CONFIG_SYSV_FS is not set
958CONFIG_UFS_FS=m
959# CONFIG_UFS_FS_WRITE is not set
960# CONFIG_UFS_DEBUG is not set
961
962#
963# Network File Systems
964#
965CONFIG_NFS_FS=m
966CONFIG_NFS_V3=y
967CONFIG_NFS_V3_ACL=y
968# CONFIG_NFS_V4 is not set
969# CONFIG_NFS_DIRECTIO is not set
970CONFIG_NFSD=m
971CONFIG_NFSD_V2_ACL=y
972CONFIG_NFSD_V3=y
973CONFIG_NFSD_V3_ACL=y
974# CONFIG_NFSD_V4 is not set
975CONFIG_NFSD_TCP=y
976CONFIG_LOCKD=m
977CONFIG_LOCKD_V4=y
978CONFIG_EXPORTFS=m
979CONFIG_NFS_ACL_SUPPORT=m
980CONFIG_NFS_COMMON=y
981CONFIG_SUNRPC=m
982CONFIG_SUNRPC_GSS=m
983# CONFIG_SUNRPC_BIND34 is not set
984CONFIG_RPCSEC_GSS_KRB5=m
985# CONFIG_RPCSEC_GSS_SPKM3 is not set
986CONFIG_SMB_FS=m
987CONFIG_SMB_NLS_DEFAULT=y
988CONFIG_SMB_NLS_REMOTE="cp437"
989CONFIG_CIFS=m
990# CONFIG_CIFS_STATS is not set
991# CONFIG_CIFS_WEAK_PW_HASH is not set
992# CONFIG_CIFS_XATTR is not set
993# CONFIG_CIFS_DEBUG2 is not set
994# CONFIG_CIFS_EXPERIMENTAL is not set
995# CONFIG_NCP_FS is not set
996CONFIG_CODA_FS=m
997# CONFIG_CODA_FS_OLD_API is not set
998# CONFIG_AFS_FS is not set
999
1000#
1001# Partition Types
1002#
1003CONFIG_PARTITION_ADVANCED=y
1004# CONFIG_ACORN_PARTITION is not set
1005# CONFIG_OSF_PARTITION is not set
1006# CONFIG_AMIGA_PARTITION is not set
1007# CONFIG_ATARI_PARTITION is not set
1008# CONFIG_MAC_PARTITION is not set
1009CONFIG_MSDOS_PARTITION=y
1010# CONFIG_BSD_DISKLABEL is not set
1011# CONFIG_MINIX_SUBPARTITION is not set
1012# CONFIG_SOLARIS_X86_PARTITION is not set
1013# CONFIG_UNIXWARE_DISKLABEL is not set
1014# CONFIG_LDM_PARTITION is not set
1015CONFIG_SGI_PARTITION=y
1016# CONFIG_ULTRIX_PARTITION is not set
1017# CONFIG_SUN_PARTITION is not set
1018# CONFIG_KARMA_PARTITION is not set
1019# CONFIG_EFI_PARTITION is not set
1020# CONFIG_SYSV68_PARTITION is not set
1021
1022#
1023# Native Language Support
1024#
1025CONFIG_NLS=m
1026CONFIG_NLS_DEFAULT="iso8859-1"
1027CONFIG_NLS_CODEPAGE_437=m
1028CONFIG_NLS_CODEPAGE_737=m
1029CONFIG_NLS_CODEPAGE_775=m
1030CONFIG_NLS_CODEPAGE_850=m
1031CONFIG_NLS_CODEPAGE_852=m
1032CONFIG_NLS_CODEPAGE_855=m
1033CONFIG_NLS_CODEPAGE_857=m
1034CONFIG_NLS_CODEPAGE_860=m
1035CONFIG_NLS_CODEPAGE_861=m
1036CONFIG_NLS_CODEPAGE_862=m
1037CONFIG_NLS_CODEPAGE_863=m
1038CONFIG_NLS_CODEPAGE_864=m
1039CONFIG_NLS_CODEPAGE_865=m
1040CONFIG_NLS_CODEPAGE_866=m
1041CONFIG_NLS_CODEPAGE_869=m
1042CONFIG_NLS_CODEPAGE_936=m
1043CONFIG_NLS_CODEPAGE_950=m
1044CONFIG_NLS_CODEPAGE_932=m
1045CONFIG_NLS_CODEPAGE_949=m
1046CONFIG_NLS_CODEPAGE_874=m
1047CONFIG_NLS_ISO8859_8=m
1048CONFIG_NLS_CODEPAGE_1250=m
1049CONFIG_NLS_CODEPAGE_1251=m
1050CONFIG_NLS_ASCII=m
1051CONFIG_NLS_ISO8859_1=m
1052CONFIG_NLS_ISO8859_2=m
1053CONFIG_NLS_ISO8859_3=m
1054CONFIG_NLS_ISO8859_4=m
1055CONFIG_NLS_ISO8859_5=m
1056CONFIG_NLS_ISO8859_6=m
1057CONFIG_NLS_ISO8859_7=m
1058CONFIG_NLS_ISO8859_9=m
1059CONFIG_NLS_ISO8859_13=m
1060CONFIG_NLS_ISO8859_14=m
1061CONFIG_NLS_ISO8859_15=m
1062CONFIG_NLS_KOI8_R=m
1063CONFIG_NLS_KOI8_U=m
1064CONFIG_NLS_UTF8=m
1065
1066#
1067# Distributed Lock Manager
1068#
1069CONFIG_DLM=m
1070# CONFIG_DLM_DEBUG is not set
1071
1072#
1073# Profiling support
1074#
1075# CONFIG_PROFILING is not set
1076
1077#
1078# Kernel hacking
1079#
1080CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1081# CONFIG_PRINTK_TIME is not set
1082CONFIG_ENABLE_MUST_CHECK=y
1083# CONFIG_MAGIC_SYSRQ is not set
1084# CONFIG_UNUSED_SYMBOLS is not set
1085# CONFIG_DEBUG_FS is not set
1086# CONFIG_HEADERS_CHECK is not set
1087# CONFIG_DEBUG_KERNEL is not set
1088CONFIG_CROSSCOMPILE=y
1089CONFIG_CMDLINE=""
1090
1091#
1092# Security options
1093#
1094CONFIG_KEYS=y
1095CONFIG_KEYS_DEBUG_PROC_KEYS=y
1096# CONFIG_SECURITY is not set
1097CONFIG_CRYPTO=y
1098CONFIG_CRYPTO_ALGAPI=y
1099CONFIG_CRYPTO_ABLKCIPHER=m
1100CONFIG_CRYPTO_BLKCIPHER=m
1101CONFIG_CRYPTO_HASH=y
1102CONFIG_CRYPTO_MANAGER=y
1103CONFIG_CRYPTO_HMAC=y
1104CONFIG_CRYPTO_XCBC=m
1105CONFIG_CRYPTO_NULL=m
1106CONFIG_CRYPTO_MD4=m
1107CONFIG_CRYPTO_MD5=y
1108CONFIG_CRYPTO_SHA1=m
1109CONFIG_CRYPTO_SHA256=m
1110CONFIG_CRYPTO_SHA512=m
1111CONFIG_CRYPTO_WP512=m
1112CONFIG_CRYPTO_TGR192=m
1113CONFIG_CRYPTO_GF128MUL=m
1114CONFIG_CRYPTO_ECB=m
1115CONFIG_CRYPTO_CBC=m
1116CONFIG_CRYPTO_PCBC=m
1117CONFIG_CRYPTO_LRW=m
1118CONFIG_CRYPTO_CRYPTD=m
1119CONFIG_CRYPTO_DES=m
1120CONFIG_CRYPTO_FCRYPT=m
1121CONFIG_CRYPTO_BLOWFISH=m
1122CONFIG_CRYPTO_TWOFISH=m
1123CONFIG_CRYPTO_TWOFISH_COMMON=m
1124CONFIG_CRYPTO_SERPENT=m
1125CONFIG_CRYPTO_AES=m
1126CONFIG_CRYPTO_CAST5=m
1127CONFIG_CRYPTO_CAST6=m
1128CONFIG_CRYPTO_TEA=m
1129CONFIG_CRYPTO_ARC4=m
1130CONFIG_CRYPTO_KHAZAD=m
1131CONFIG_CRYPTO_ANUBIS=m
1132CONFIG_CRYPTO_DEFLATE=m
1133CONFIG_CRYPTO_MICHAEL_MIC=m
1134CONFIG_CRYPTO_CRC32C=m
1135CONFIG_CRYPTO_CAMELLIA=m
1136# CONFIG_CRYPTO_TEST is not set
1137# CONFIG_CRYPTO_HW is not set
1138
1139#
1140# Library routines
1141#
1142CONFIG_BITREVERSE=m
1143# CONFIG_CRC_CCITT is not set
1144CONFIG_CRC16=m
1145# CONFIG_CRC_ITU_T is not set
1146CONFIG_CRC32=m
1147# CONFIG_CRC7 is not set
1148CONFIG_LIBCRC32C=m
1149CONFIG_ZLIB_INFLATE=m
1150CONFIG_ZLIB_DEFLATE=m
1151CONFIG_TEXTSEARCH=y
1152CONFIG_TEXTSEARCH_KMP=m
1153CONFIG_TEXTSEARCH_BM=m
1154CONFIG_TEXTSEARCH_FSM=m
1155CONFIG_PLIST=y
1156CONFIG_HAS_IOMEM=y
1157CONFIG_HAS_IOPORT=y
1158CONFIG_HAS_DMA=y
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index ffa08362de17..9e78e1a4ca17 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -76,7 +76,6 @@ obj-$(CONFIG_PROC_FS) += proc.o
76obj-$(CONFIG_64BIT) += cpu-bugs64.o 76obj-$(CONFIG_64BIT) += cpu-bugs64.o
77 77
78obj-$(CONFIG_I8253) += i8253.o 78obj-$(CONFIG_I8253) += i8253.o
79obj-$(CONFIG_PCSPEAKER) += pcspeaker.o
80 79
81obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o 80obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
82obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 81obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
diff --git a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/cpu-bugs64.c
index 417bb3e336ac..a1b48af0992f 100644
--- a/arch/mips/kernel/cpu-bugs64.c
+++ b/arch/mips/kernel/cpu-bugs64.c
@@ -167,7 +167,7 @@ static inline void check_mult_sh(void)
167 panic(bug64hit, !R4000_WAR ? r4kwar : nowar); 167 panic(bug64hit, !R4000_WAR ? r4kwar : nowar);
168} 168}
169 169
170static volatile int daddi_ov __initdata = 0; 170static volatile int daddi_ov __cpuinitdata = 0;
171 171
172asmlinkage void __init do_daddi_ov(struct pt_regs *regs) 172asmlinkage void __init do_daddi_ov(struct pt_regs *regs)
173{ 173{
@@ -239,7 +239,7 @@ static inline void check_daddi(void)
239 panic(bug64hit, !DADDI_WAR ? daddiwar : nowar); 239 panic(bug64hit, !DADDI_WAR ? daddiwar : nowar);
240} 240}
241 241
242int daddiu_bug __initdata = -1; 242int daddiu_bug __cpuinitdata = -1;
243 243
244static inline void check_daddiu(void) 244static inline void check_daddiu(void)
245{ 245{
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 5861a432a52f..89c3304cb93c 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -550,7 +550,7 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c)
550 } 550 }
551} 551}
552 552
553static char unknown_isa[] __initdata = KERN_ERR \ 553static char unknown_isa[] __cpuinitdata = KERN_ERR \
554 "Unsupported ISA type, c0.config0: %d."; 554 "Unsupported ISA type, c0.config0: %d.";
555 555
556static inline unsigned int decode_config0(struct cpuinfo_mips *c) 556static inline unsigned int decode_config0(struct cpuinfo_mips *c)
@@ -656,7 +656,7 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
656 return config3 & MIPS_CONF_M; 656 return config3 & MIPS_CONF_M;
657} 657}
658 658
659static void __init decode_configs(struct cpuinfo_mips *c) 659static void __cpuinit decode_configs(struct cpuinfo_mips *c)
660{ 660{
661 /* MIPS32 or MIPS64 compliant CPU. */ 661 /* MIPS32 or MIPS64 compliant CPU. */
662 c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | 662 c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER |
@@ -814,7 +814,7 @@ const char *__cpu_name[NR_CPUS];
814/* 814/*
815 * Name a CPU 815 * Name a CPU
816 */ 816 */
817static __init const char *cpu_to_name(struct cpuinfo_mips *c) 817static __cpuinit const char *cpu_to_name(struct cpuinfo_mips *c)
818{ 818{
819 const char *name = NULL; 819 const char *name = NULL;
820 820
@@ -896,7 +896,7 @@ static __init const char *cpu_to_name(struct cpuinfo_mips *c)
896 return name; 896 return name;
897} 897}
898 898
899__init void cpu_probe(void) 899__cpuinit void cpu_probe(void)
900{ 900{
901 struct cpuinfo_mips *c = &current_cpu_data; 901 struct cpuinfo_mips *c = &current_cpu_data;
902 unsigned int cpu = smp_processor_id(); 902 unsigned int cpu = smp_processor_id();
@@ -959,7 +959,7 @@ __init void cpu_probe(void)
959 c->srsets = 1; 959 c->srsets = 1;
960} 960}
961 961
962__init void cpu_report(void) 962__cpuinit void cpu_report(void)
963{ 963{
964 struct cpuinfo_mips *c = &current_cpu_data; 964 struct cpuinfo_mips *c = &current_cpu_data;
965 965
diff --git a/arch/mips/kernel/csrc-r4k.c b/arch/mips/kernel/csrc-r4k.c
index 0e2b5cd81f67..86e026f067bc 100644
--- a/arch/mips/kernel/csrc-r4k.c
+++ b/arch/mips/kernel/csrc-r4k.c
@@ -22,12 +22,17 @@ static struct clocksource clocksource_mips = {
22 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 22 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
23}; 23};
24 24
25void __init init_mips_clocksource(void) 25int __init init_mips_clocksource(void)
26{ 26{
27 if (!cpu_has_counter || !mips_hpt_frequency)
28 return -ENXIO;
29
27 /* Calclate a somewhat reasonable rating value */ 30 /* Calclate a somewhat reasonable rating value */
28 clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000; 31 clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000;
29 32
30 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency); 33 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency);
31 34
32 clocksource_register(&clocksource_mips); 35 clocksource_register(&clocksource_mips);
36
37 return 0;
33} 38}
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index a24fb7900901..361364501d34 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -195,7 +195,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
195 j start_kernel 195 j start_kernel
196 END(kernel_entry) 196 END(kernel_entry)
197 197
198 __INIT 198 __CPUINIT
199 199
200#ifdef CONFIG_SMP 200#ifdef CONFIG_SMP
201/* 201/*
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index fcae66752972..984c0d0a7b4d 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -534,8 +534,7 @@ static int simulate_llsc(struct pt_regs *regs, unsigned int opcode)
534 534
535/* 535/*
536 * Simulate trapping 'rdhwr' instructions to provide user accessible 536 * Simulate trapping 'rdhwr' instructions to provide user accessible
537 * registers not implemented in hardware. The only current use of this 537 * registers not implemented in hardware.
538 * is the thread area pointer.
539 */ 538 */
540static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode) 539static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode)
541{ 540{
@@ -545,11 +544,31 @@ static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode)
545 int rd = (opcode & RD) >> 11; 544 int rd = (opcode & RD) >> 11;
546 int rt = (opcode & RT) >> 16; 545 int rt = (opcode & RT) >> 16;
547 switch (rd) { 546 switch (rd) {
548 case 29: 547 case 0: /* CPU number */
549 regs->regs[rt] = ti->tp_value; 548 regs->regs[rt] = smp_processor_id();
550 return 0; 549 return 0;
550 case 1: /* SYNCI length */
551 regs->regs[rt] = min(current_cpu_data.dcache.linesz,
552 current_cpu_data.icache.linesz);
553 return 0;
554 case 2: /* Read count register */
555 regs->regs[rt] = read_c0_count();
556 return 0;
557 case 3: /* Count register resolution */
558 switch (current_cpu_data.cputype) {
559 case CPU_20KC:
560 case CPU_25KF:
561 regs->regs[rt] = 1;
562 break;
551 default: 563 default:
552 return -1; 564 regs->regs[rt] = 2;
565 }
566 return 0;
567 case 29:
568 regs->regs[rt] = ti->tp_value;
569 return 0;
570 default:
571 return -1;
553 } 572 }
554 } 573 }
555 574
@@ -1287,7 +1306,7 @@ int cp0_compare_irq;
1287int cp0_perfcount_irq; 1306int cp0_perfcount_irq;
1288EXPORT_SYMBOL_GPL(cp0_perfcount_irq); 1307EXPORT_SYMBOL_GPL(cp0_perfcount_irq);
1289 1308
1290void __init per_cpu_trap_init(void) 1309void __cpuinit per_cpu_trap_init(void)
1291{ 1310{
1292 unsigned int cpu = smp_processor_id(); 1311 unsigned int cpu = smp_processor_id();
1293 unsigned int status_set = ST0_CU0; 1312 unsigned int status_set = ST0_CU0;
@@ -1404,11 +1423,12 @@ void __init set_handler(unsigned long offset, void *addr, unsigned long size)
1404 flush_icache_range(ebase + offset, ebase + offset + size); 1423 flush_icache_range(ebase + offset, ebase + offset + size);
1405} 1424}
1406 1425
1407static char panic_null_cerr[] __initdata = 1426static char panic_null_cerr[] __cpuinitdata =
1408 "Trying to set NULL cache error exception handler"; 1427 "Trying to set NULL cache error exception handler";
1409 1428
1410/* Install uncached CPU exception handler */ 1429/* Install uncached CPU exception handler */
1411void __init set_uncached_handler(unsigned long offset, void *addr, unsigned long size) 1430void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1431 unsigned long size)
1412{ 1432{
1413#ifdef CONFIG_32BIT 1433#ifdef CONFIG_32BIT
1414 unsigned long uncached_ebase = KSEG1ADDR(ebase); 1434 unsigned long uncached_ebase = KSEG1ADDR(ebase);
diff --git a/arch/mips/lib/ucmpdi2.c b/arch/mips/lib/ucmpdi2.c
index b33d8569bcb0..bb4cb2f828ea 100644
--- a/arch/mips/lib/ucmpdi2.c
+++ b/arch/mips/lib/ucmpdi2.c
@@ -17,3 +17,5 @@ word_type __ucmpdi2(unsigned long long a, unsigned long long b)
17 return 2; 17 return 2;
18 return 1; 18 return 1;
19} 19}
20
21EXPORT_SYMBOL(__ucmpdi2);
diff --git a/arch/mips/lib/uncached.c b/arch/mips/lib/uncached.c
index 27b012d4341c..a6d1c77034d5 100644
--- a/arch/mips/lib/uncached.c
+++ b/arch/mips/lib/uncached.c
@@ -36,7 +36,7 @@
36 * values, so we can avoid sharing the same stack area between a cached 36 * values, so we can avoid sharing the same stack area between a cached
37 * and the uncached mode. 37 * and the uncached mode.
38 */ 38 */
39unsigned long __init run_uncached(void *func) 39unsigned long __cpuinit run_uncached(void *func)
40{ 40{
41 register long sp __asm__("$sp"); 41 register long sp __asm__("$sp");
42 register long ret __asm__("$2"); 42 register long ret __asm__("$2");
diff --git a/arch/mips/mips-boards/generic/time.c b/arch/mips/mips-boards/generic/time.c
index f02ce6308e51..b50e0fc406ac 100644
--- a/arch/mips/mips-boards/generic/time.c
+++ b/arch/mips/mips-boards/generic/time.c
@@ -146,7 +146,7 @@ void __init plat_perf_setup(void)
146 } 146 }
147} 147}
148 148
149unsigned int __init get_c0_compare_int(void) 149unsigned int __cpuinit get_c0_compare_int(void)
150{ 150{
151#ifdef MSC01E_INT_BASE 151#ifdef MSC01E_INT_BASE
152 if (cpu_has_veic) { 152 if (cpu_has_veic) {
diff --git a/arch/mips/mipssim/sim_time.c b/arch/mips/mipssim/sim_time.c
index e39bbe989da3..881ecbc1fa23 100644
--- a/arch/mips/mipssim/sim_time.c
+++ b/arch/mips/mipssim/sim_time.c
@@ -83,7 +83,7 @@ static void mips_timer_dispatch(void)
83} 83}
84 84
85 85
86unsigned __init get_c0_compare_int(void) 86unsigned __cpuinit get_c0_compare_int(void)
87{ 87{
88#ifdef MSC01E_INT_BASE 88#ifdef MSC01E_INT_BASE
89 if (cpu_has_veic) { 89 if (cpu_has_veic) {
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c
index 562abb77d1d5..76935e320214 100644
--- a/arch/mips/mm/c-r3k.c
+++ b/arch/mips/mm/c-r3k.c
@@ -307,7 +307,7 @@ static void r3k_dma_cache_wback_inv(unsigned long start, unsigned long size)
307 r3k_flush_dcache_range(start, start + size); 307 r3k_flush_dcache_range(start, start + size);
308} 308}
309 309
310void __init r3k_cache_init(void) 310void __cpuinit r3k_cache_init(void)
311{ 311{
312 extern void build_clear_page(void); 312 extern void build_clear_page(void);
313 extern void build_copy_page(void); 313 extern void build_copy_page(void);
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 2c4f7e11f0d5..6496925b5e29 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -93,7 +93,7 @@ static inline void r4k_blast_dcache_page_dc32(unsigned long addr)
93 blast_dcache32_page(addr); 93 blast_dcache32_page(addr);
94} 94}
95 95
96static void __init r4k_blast_dcache_page_setup(void) 96static void __cpuinit r4k_blast_dcache_page_setup(void)
97{ 97{
98 unsigned long dc_lsize = cpu_dcache_line_size(); 98 unsigned long dc_lsize = cpu_dcache_line_size();
99 99
@@ -107,7 +107,7 @@ static void __init r4k_blast_dcache_page_setup(void)
107 107
108static void (* r4k_blast_dcache_page_indexed)(unsigned long addr); 108static void (* r4k_blast_dcache_page_indexed)(unsigned long addr);
109 109
110static void __init r4k_blast_dcache_page_indexed_setup(void) 110static void __cpuinit r4k_blast_dcache_page_indexed_setup(void)
111{ 111{
112 unsigned long dc_lsize = cpu_dcache_line_size(); 112 unsigned long dc_lsize = cpu_dcache_line_size();
113 113
@@ -121,7 +121,7 @@ static void __init r4k_blast_dcache_page_indexed_setup(void)
121 121
122static void (* r4k_blast_dcache)(void); 122static void (* r4k_blast_dcache)(void);
123 123
124static void __init r4k_blast_dcache_setup(void) 124static void __cpuinit r4k_blast_dcache_setup(void)
125{ 125{
126 unsigned long dc_lsize = cpu_dcache_line_size(); 126 unsigned long dc_lsize = cpu_dcache_line_size();
127 127
@@ -206,7 +206,7 @@ static inline void tx49_blast_icache32_page_indexed(unsigned long page)
206 206
207static void (* r4k_blast_icache_page)(unsigned long addr); 207static void (* r4k_blast_icache_page)(unsigned long addr);
208 208
209static void __init r4k_blast_icache_page_setup(void) 209static void __cpuinit r4k_blast_icache_page_setup(void)
210{ 210{
211 unsigned long ic_lsize = cpu_icache_line_size(); 211 unsigned long ic_lsize = cpu_icache_line_size();
212 212
@@ -223,7 +223,7 @@ static void __init r4k_blast_icache_page_setup(void)
223 223
224static void (* r4k_blast_icache_page_indexed)(unsigned long addr); 224static void (* r4k_blast_icache_page_indexed)(unsigned long addr);
225 225
226static void __init r4k_blast_icache_page_indexed_setup(void) 226static void __cpuinit r4k_blast_icache_page_indexed_setup(void)
227{ 227{
228 unsigned long ic_lsize = cpu_icache_line_size(); 228 unsigned long ic_lsize = cpu_icache_line_size();
229 229
@@ -247,7 +247,7 @@ static void __init r4k_blast_icache_page_indexed_setup(void)
247 247
248static void (* r4k_blast_icache)(void); 248static void (* r4k_blast_icache)(void);
249 249
250static void __init r4k_blast_icache_setup(void) 250static void __cpuinit r4k_blast_icache_setup(void)
251{ 251{
252 unsigned long ic_lsize = cpu_icache_line_size(); 252 unsigned long ic_lsize = cpu_icache_line_size();
253 253
@@ -268,7 +268,7 @@ static void __init r4k_blast_icache_setup(void)
268 268
269static void (* r4k_blast_scache_page)(unsigned long addr); 269static void (* r4k_blast_scache_page)(unsigned long addr);
270 270
271static void __init r4k_blast_scache_page_setup(void) 271static void __cpuinit r4k_blast_scache_page_setup(void)
272{ 272{
273 unsigned long sc_lsize = cpu_scache_line_size(); 273 unsigned long sc_lsize = cpu_scache_line_size();
274 274
@@ -286,7 +286,7 @@ static void __init r4k_blast_scache_page_setup(void)
286 286
287static void (* r4k_blast_scache_page_indexed)(unsigned long addr); 287static void (* r4k_blast_scache_page_indexed)(unsigned long addr);
288 288
289static void __init r4k_blast_scache_page_indexed_setup(void) 289static void __cpuinit r4k_blast_scache_page_indexed_setup(void)
290{ 290{
291 unsigned long sc_lsize = cpu_scache_line_size(); 291 unsigned long sc_lsize = cpu_scache_line_size();
292 292
@@ -304,7 +304,7 @@ static void __init r4k_blast_scache_page_indexed_setup(void)
304 304
305static void (* r4k_blast_scache)(void); 305static void (* r4k_blast_scache)(void);
306 306
307static void __init r4k_blast_scache_setup(void) 307static void __cpuinit r4k_blast_scache_setup(void)
308{ 308{
309 unsigned long sc_lsize = cpu_scache_line_size(); 309 unsigned long sc_lsize = cpu_scache_line_size();
310 310
@@ -691,11 +691,11 @@ static inline void rm7k_erratum31(void)
691 } 691 }
692} 692}
693 693
694static char *way_string[] __initdata = { NULL, "direct mapped", "2-way", 694static char *way_string[] __cpuinitdata = { NULL, "direct mapped", "2-way",
695 "3-way", "4-way", "5-way", "6-way", "7-way", "8-way" 695 "3-way", "4-way", "5-way", "6-way", "7-way", "8-way"
696}; 696};
697 697
698static void __init probe_pcache(void) 698static void __cpuinit probe_pcache(void)
699{ 699{
700 struct cpuinfo_mips *c = &current_cpu_data; 700 struct cpuinfo_mips *c = &current_cpu_data;
701 unsigned int config = read_c0_config(); 701 unsigned int config = read_c0_config();
@@ -1016,7 +1016,7 @@ static void __init probe_pcache(void)
1016 * executes in KSEG1 space or else you will crash and burn badly. You have 1016 * executes in KSEG1 space or else you will crash and burn badly. You have
1017 * been warned. 1017 * been warned.
1018 */ 1018 */
1019static int __init probe_scache(void) 1019static int __cpuinit probe_scache(void)
1020{ 1020{
1021 unsigned long flags, addr, begin, end, pow2; 1021 unsigned long flags, addr, begin, end, pow2;
1022 unsigned int config = read_c0_config(); 1022 unsigned int config = read_c0_config();
@@ -1095,7 +1095,7 @@ extern int r5k_sc_init(void);
1095extern int rm7k_sc_init(void); 1095extern int rm7k_sc_init(void);
1096extern int mips_sc_init(void); 1096extern int mips_sc_init(void);
1097 1097
1098static void __init setup_scache(void) 1098static void __cpuinit setup_scache(void)
1099{ 1099{
1100 struct cpuinfo_mips *c = &current_cpu_data; 1100 struct cpuinfo_mips *c = &current_cpu_data;
1101 unsigned int config = read_c0_config(); 1101 unsigned int config = read_c0_config();
@@ -1206,7 +1206,7 @@ void au1x00_fixup_config_od(void)
1206 } 1206 }
1207} 1207}
1208 1208
1209static void __init coherency_setup(void) 1209static void __cpuinit coherency_setup(void)
1210{ 1210{
1211 change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT); 1211 change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
1212 1212
@@ -1238,7 +1238,7 @@ static void __init coherency_setup(void)
1238 } 1238 }
1239} 1239}
1240 1240
1241void __init r4k_cache_init(void) 1241void __cpuinit r4k_cache_init(void)
1242{ 1242{
1243 extern void build_clear_page(void); 1243 extern void build_clear_page(void);
1244 extern void build_copy_page(void); 1244 extern void build_copy_page(void);
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index 9ea121e8cdce..b09d56981d53 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -329,7 +329,7 @@ static __init void tx39_probe_cache(void)
329 } 329 }
330} 330}
331 331
332void __init tx39_cache_init(void) 332void __cpuinit tx39_cache_init(void)
333{ 333{
334 extern void build_clear_page(void); 334 extern void build_clear_page(void);
335 extern void build_copy_page(void); 335 extern void build_copy_page(void);
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 6a24651971df..51ab1faa027d 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -127,9 +127,10 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address,
127 } 127 }
128} 128}
129 129
130static char cache_panic[] __initdata = "Yeee, unsupported cache architecture."; 130static char cache_panic[] __cpuinitdata =
131 "Yeee, unsupported cache architecture.";
131 132
132void __init cpu_cache_init(void) 133void __devinit cpu_cache_init(void)
133{ 134{
134 if (cpu_has_3k_cache) { 135 if (cpu_has_3k_cache) {
135 extern void __weak r3k_cache_init(void); 136 extern void __weak r3k_cache_init(void);
diff --git a/arch/mips/mm/cex-sb1.S b/arch/mips/mm/cex-sb1.S
index e54a62f2807c..2d08268bb705 100644
--- a/arch/mips/mm/cex-sb1.S
+++ b/arch/mips/mm/cex-sb1.S
@@ -34,8 +34,6 @@
34 * is changed. 34 * is changed.
35 */ 35 */
36 36
37 __INIT
38
39 .set mips64 37 .set mips64
40 .set noreorder 38 .set noreorder
41 .set noat 39 .set noat
@@ -51,6 +49,8 @@
51 * (0x170-0x17f) are used to preserve k0, k1, and ra. 49 * (0x170-0x17f) are used to preserve k0, k1, and ra.
52 */ 50 */
53 51
52 __CPUINIT
53
54LEAF(except_vec2_sb1) 54LEAF(except_vec2_sb1)
55 /* 55 /*
56 * If this error is recoverable, we need to exit the handler 56 * If this error is recoverable, we need to exit the handler
diff --git a/arch/mips/mm/pg-r4k.c b/arch/mips/mm/pg-r4k.c
index 9185fbf37c0d..455dedb5b39e 100644
--- a/arch/mips/mm/pg-r4k.c
+++ b/arch/mips/mm/pg-r4k.c
@@ -66,21 +66,21 @@ EXPORT_SYMBOL(copy_page);
66 * with 64-bit kernels. The prefetch offsets have been experimentally tuned 66 * with 64-bit kernels. The prefetch offsets have been experimentally tuned
67 * an Origin 200. 67 * an Origin 200.
68 */ 68 */
69static int pref_offset_clear __initdata = 512; 69static int pref_offset_clear __cpuinitdata = 512;
70static int pref_offset_copy __initdata = 256; 70static int pref_offset_copy __cpuinitdata = 256;
71 71
72static unsigned int pref_src_mode __initdata; 72static unsigned int pref_src_mode __cpuinitdata;
73static unsigned int pref_dst_mode __initdata; 73static unsigned int pref_dst_mode __cpuinitdata;
74 74
75static int load_offset __initdata; 75static int load_offset __cpuinitdata;
76static int store_offset __initdata; 76static int store_offset __cpuinitdata;
77 77
78static unsigned int __initdata *dest, *epc; 78static unsigned int __cpuinitdata *dest, *epc;
79 79
80static unsigned int instruction_pending; 80static unsigned int instruction_pending;
81static union mips_instruction delayed_mi; 81static union mips_instruction delayed_mi;
82 82
83static void __init emit_instruction(union mips_instruction mi) 83static void __cpuinit emit_instruction(union mips_instruction mi)
84{ 84{
85 if (instruction_pending) 85 if (instruction_pending)
86 *epc++ = delayed_mi.word; 86 *epc++ = delayed_mi.word;
@@ -222,7 +222,7 @@ static inline void build_cdex_p(void)
222 emit_instruction(mi); 222 emit_instruction(mi);
223} 223}
224 224
225static void __init __build_store_reg(int reg) 225static void __cpuinit __build_store_reg(int reg)
226{ 226{
227 union mips_instruction mi; 227 union mips_instruction mi;
228 unsigned int width; 228 unsigned int width;
@@ -339,7 +339,7 @@ static inline void build_jr_ra(void)
339 flush_delay_slot_or_nop(); 339 flush_delay_slot_or_nop();
340} 340}
341 341
342void __init build_clear_page(void) 342void __cpuinit build_clear_page(void)
343{ 343{
344 unsigned int loop_start; 344 unsigned int loop_start;
345 unsigned long off; 345 unsigned long off;
@@ -442,7 +442,7 @@ dest = label();
442 pr_debug("\t.set pop\n"); 442 pr_debug("\t.set pop\n");
443} 443}
444 444
445void __init build_copy_page(void) 445void __cpuinit build_copy_page(void)
446{ 446{
447 unsigned int loop_start; 447 unsigned int loop_start;
448 unsigned long off; 448 unsigned long off;
diff --git a/arch/mips/mm/pg-sb1.c b/arch/mips/mm/pg-sb1.c
index 89925ec57d6a..49e289d05414 100644
--- a/arch/mips/mm/pg-sb1.c
+++ b/arch/mips/mm/pg-sb1.c
@@ -293,10 +293,10 @@ void copy_page(void *to, void *from)
293EXPORT_SYMBOL(clear_page); 293EXPORT_SYMBOL(clear_page);
294EXPORT_SYMBOL(copy_page); 294EXPORT_SYMBOL(copy_page);
295 295
296void __init build_clear_page(void) 296void __cpuinit build_clear_page(void)
297{ 297{
298} 298}
299 299
300void __init build_copy_page(void) 300void __cpuinit build_copy_page(void)
301{ 301{
302} 302}
diff --git a/arch/mips/mm/sc-ip22.c b/arch/mips/mm/sc-ip22.c
index d236cf8b7374..1f602a110e10 100644
--- a/arch/mips/mm/sc-ip22.c
+++ b/arch/mips/mm/sc-ip22.c
@@ -168,7 +168,7 @@ struct bcache_ops indy_sc_ops = {
168 .bc_inv = indy_sc_wback_invalidate 168 .bc_inv = indy_sc_wback_invalidate
169}; 169};
170 170
171void __init indy_sc_init(void) 171void __cpuinit indy_sc_init(void)
172{ 172{
173 if (indy_sc_probe()) { 173 if (indy_sc_probe()) {
174 indy_sc_enable(); 174 indy_sc_enable();
diff --git a/arch/mips/mm/sc-mips.c b/arch/mips/mm/sc-mips.c
index c13170bc675c..b55c2d1b998f 100644
--- a/arch/mips/mm/sc-mips.c
+++ b/arch/mips/mm/sc-mips.c
@@ -100,7 +100,7 @@ static inline int __init mips_sc_probe(void)
100 return 1; 100 return 1;
101} 101}
102 102
103int __init mips_sc_init(void) 103int __cpuinit mips_sc_init(void)
104{ 104{
105 int found = mips_sc_probe(); 105 int found = mips_sc_probe();
106 if (found) { 106 if (found) {
@@ -109,4 +109,3 @@ int __init mips_sc_init(void)
109 } 109 }
110 return found; 110 return found;
111} 111}
112
diff --git a/arch/mips/mm/sc-r5k.c b/arch/mips/mm/sc-r5k.c
index d35b6c1103a3..f330d38e5575 100644
--- a/arch/mips/mm/sc-r5k.c
+++ b/arch/mips/mm/sc-r5k.c
@@ -99,7 +99,7 @@ static struct bcache_ops r5k_sc_ops = {
99 .bc_inv = r5k_dma_cache_inv_sc 99 .bc_inv = r5k_dma_cache_inv_sc
100}; 100};
101 101
102void __init r5k_sc_init(void) 102void __cpuinit r5k_sc_init(void)
103{ 103{
104 if (r5k_sc_probe()) { 104 if (r5k_sc_probe()) {
105 r5k_sc_enable(); 105 r5k_sc_enable();
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c
index 31ec73052423..fc227f3b1199 100644
--- a/arch/mips/mm/sc-rm7k.c
+++ b/arch/mips/mm/sc-rm7k.c
@@ -128,7 +128,7 @@ struct bcache_ops rm7k_sc_ops = {
128 .bc_inv = rm7k_sc_inv 128 .bc_inv = rm7k_sc_inv
129}; 129};
130 130
131void __init rm7k_sc_init(void) 131void __cpuinit rm7k_sc_init(void)
132{ 132{
133 struct cpuinfo_mips *c = &current_cpu_data; 133 struct cpuinfo_mips *c = &current_cpu_data;
134 unsigned int config = read_c0_config(); 134 unsigned int config = read_c0_config();
diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
index 7948e9a5e372..a782549ac80e 100644
--- a/arch/mips/mm/tlb-r3k.c
+++ b/arch/mips/mm/tlb-r3k.c
@@ -281,7 +281,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
281 } 281 }
282} 282}
283 283
284void __init tlb_init(void) 284void __cpuinit tlb_init(void)
285{ 285{
286 local_flush_tlb_all(); 286 local_flush_tlb_all();
287 287
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 74ae0348cc92..63065d6e8063 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -388,7 +388,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
388 * lifetime of the system 388 * lifetime of the system
389 */ 389 */
390 390
391static int temp_tlb_entry __initdata; 391static int temp_tlb_entry __cpuinitdata;
392 392
393__init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, 393__init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
394 unsigned long entryhi, unsigned long pagemask) 394 unsigned long entryhi, unsigned long pagemask)
@@ -427,7 +427,7 @@ out:
427 return ret; 427 return ret;
428} 428}
429 429
430static void __init probe_tlb(unsigned long config) 430static void __cpuinit probe_tlb(unsigned long config)
431{ 431{
432 struct cpuinfo_mips *c = &current_cpu_data; 432 struct cpuinfo_mips *c = &current_cpu_data;
433 unsigned int reg; 433 unsigned int reg;
@@ -455,7 +455,7 @@ static void __init probe_tlb(unsigned long config)
455 c->tlbsize = ((reg >> 25) & 0x3f) + 1; 455 c->tlbsize = ((reg >> 25) & 0x3f) + 1;
456} 456}
457 457
458static int __initdata ntlb = 0; 458static int __cpuinitdata ntlb = 0;
459static int __init set_ntlb(char *str) 459static int __init set_ntlb(char *str)
460{ 460{
461 get_option(&str, &ntlb); 461 get_option(&str, &ntlb);
@@ -464,7 +464,7 @@ static int __init set_ntlb(char *str)
464 464
465__setup("ntlb=", set_ntlb); 465__setup("ntlb=", set_ntlb);
466 466
467void __init tlb_init(void) 467void __cpuinit tlb_init(void)
468{ 468{
469 unsigned int config = read_c0_config(); 469 unsigned int config = read_c0_config();
470 470
@@ -473,7 +473,7 @@ void __init tlb_init(void)
473 * - On R4600 1.7 the tlbp never hits for pages smaller than 473 * - On R4600 1.7 the tlbp never hits for pages smaller than
474 * the value in the c0_pagemask register. 474 * the value in the c0_pagemask register.
475 * - The entire mm handling assumes the c0_pagemask register to 475 * - The entire mm handling assumes the c0_pagemask register to
476 * be set for 4kb pages. 476 * be set to fixed-size pages.
477 */ 477 */
478 probe_tlb(config); 478 probe_tlb(config);
479 write_c0_pagemask(PM_DEFAULT_MASK); 479 write_c0_pagemask(PM_DEFAULT_MASK);
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c
index bd8409d8ff62..4f01a3be215c 100644
--- a/arch/mips/mm/tlb-r8k.c
+++ b/arch/mips/mm/tlb-r8k.c
@@ -214,14 +214,14 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
214 local_irq_restore(flags); 214 local_irq_restore(flags);
215} 215}
216 216
217static void __init probe_tlb(unsigned long config) 217static void __cpuinit probe_tlb(unsigned long config)
218{ 218{
219 struct cpuinfo_mips *c = &current_cpu_data; 219 struct cpuinfo_mips *c = &current_cpu_data;
220 220
221 c->tlbsize = 3 * 128; /* 3 sets each 128 entries */ 221 c->tlbsize = 3 * 128; /* 3 sets each 128 entries */
222} 222}
223 223
224void __init tlb_init(void) 224void __cpuinit tlb_init(void)
225{ 225{
226 unsigned int config = read_c0_config(); 226 unsigned int config = read_c0_config();
227 unsigned long status; 227 unsigned long status;
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 218a6cc415e8..3a93d4ce2703 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -60,7 +60,7 @@ static inline int __maybe_unused r10000_llsc_war(void)
60 * why; it's not an issue caused by the core RTL. 60 * why; it's not an issue caused by the core RTL.
61 * 61 *
62 */ 62 */
63static int __init m4kc_tlbp_war(void) 63static int __cpuinit m4kc_tlbp_war(void)
64{ 64{
65 return (current_cpu_data.processor_id & 0xffff00) == 65 return (current_cpu_data.processor_id & 0xffff00) ==
66 (PRID_COMP_MIPS | PRID_IMP_4KC); 66 (PRID_COMP_MIPS | PRID_IMP_4KC);
@@ -144,16 +144,16 @@ static inline void dump_handler(const u32 *handler, int count)
144 * We deliberately chose a buffer size of 128, so we won't scribble 144 * We deliberately chose a buffer size of 128, so we won't scribble
145 * over anything important on overflow before we panic. 145 * over anything important on overflow before we panic.
146 */ 146 */
147static u32 tlb_handler[128] __initdata; 147static u32 tlb_handler[128] __cpuinitdata;
148 148
149/* simply assume worst case size for labels and relocs */ 149/* simply assume worst case size for labels and relocs */
150static struct uasm_label labels[128] __initdata; 150static struct uasm_label labels[128] __cpuinitdata;
151static struct uasm_reloc relocs[128] __initdata; 151static struct uasm_reloc relocs[128] __cpuinitdata;
152 152
153/* 153/*
154 * The R3000 TLB handler is simple. 154 * The R3000 TLB handler is simple.
155 */ 155 */
156static void __init build_r3000_tlb_refill_handler(void) 156static void __cpuinit build_r3000_tlb_refill_handler(void)
157{ 157{
158 long pgdc = (long)pgd_current; 158 long pgdc = (long)pgd_current;
159 u32 *p; 159 u32 *p;
@@ -197,7 +197,7 @@ static void __init build_r3000_tlb_refill_handler(void)
197 * other one.To keep things simple, we first assume linear space, 197 * other one.To keep things simple, we first assume linear space,
198 * then we relocate it to the final handler layout as needed. 198 * then we relocate it to the final handler layout as needed.
199 */ 199 */
200static u32 final_handler[64] __initdata; 200static u32 final_handler[64] __cpuinitdata;
201 201
202/* 202/*
203 * Hazards 203 * Hazards
@@ -221,7 +221,7 @@ static u32 final_handler[64] __initdata;
221 * 221 *
222 * As if we MIPS hackers wouldn't know how to nop pipelines happy ... 222 * As if we MIPS hackers wouldn't know how to nop pipelines happy ...
223 */ 223 */
224static void __init __maybe_unused build_tlb_probe_entry(u32 **p) 224static void __cpuinit __maybe_unused build_tlb_probe_entry(u32 **p)
225{ 225{
226 switch (current_cpu_type()) { 226 switch (current_cpu_type()) {
227 /* Found by experiment: R4600 v2.0 needs this, too. */ 227 /* Found by experiment: R4600 v2.0 needs this, too. */
@@ -245,7 +245,7 @@ static void __init __maybe_unused build_tlb_probe_entry(u32 **p)
245 */ 245 */
246enum tlb_write_entry { tlb_random, tlb_indexed }; 246enum tlb_write_entry { tlb_random, tlb_indexed };
247 247
248static void __init build_tlb_write_entry(u32 **p, struct uasm_label **l, 248static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
249 struct uasm_reloc **r, 249 struct uasm_reloc **r,
250 enum tlb_write_entry wmode) 250 enum tlb_write_entry wmode)
251{ 251{
@@ -389,7 +389,7 @@ static void __init build_tlb_write_entry(u32 **p, struct uasm_label **l,
389 * TMP and PTR are scratch. 389 * TMP and PTR are scratch.
390 * TMP will be clobbered, PTR will hold the pmd entry. 390 * TMP will be clobbered, PTR will hold the pmd entry.
391 */ 391 */
392static void __init 392static void __cpuinit
393build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 393build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
394 unsigned int tmp, unsigned int ptr) 394 unsigned int tmp, unsigned int ptr)
395{ 395{
@@ -450,7 +450,7 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
450 * BVADDR is the faulting address, PTR is scratch. 450 * BVADDR is the faulting address, PTR is scratch.
451 * PTR will hold the pgd for vmalloc. 451 * PTR will hold the pgd for vmalloc.
452 */ 452 */
453static void __init 453static void __cpuinit
454build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 454build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
455 unsigned int bvaddr, unsigned int ptr) 455 unsigned int bvaddr, unsigned int ptr)
456{ 456{
@@ -522,7 +522,7 @@ build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
522 * TMP and PTR are scratch. 522 * TMP and PTR are scratch.
523 * TMP will be clobbered, PTR will hold the pgd entry. 523 * TMP will be clobbered, PTR will hold the pgd entry.
524 */ 524 */
525static void __init __maybe_unused 525static void __cpuinit __maybe_unused
526build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr) 526build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
527{ 527{
528 long pgdc = (long)pgd_current; 528 long pgdc = (long)pgd_current;
@@ -557,7 +557,7 @@ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
557 557
558#endif /* !CONFIG_64BIT */ 558#endif /* !CONFIG_64BIT */
559 559
560static void __init build_adjust_context(u32 **p, unsigned int ctx) 560static void __cpuinit build_adjust_context(u32 **p, unsigned int ctx)
561{ 561{
562 unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12; 562 unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12;
563 unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1); 563 unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1);
@@ -583,7 +583,7 @@ static void __init build_adjust_context(u32 **p, unsigned int ctx)
583 uasm_i_andi(p, ctx, ctx, mask); 583 uasm_i_andi(p, ctx, ctx, mask);
584} 584}
585 585
586static void __init build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) 586static void __cpuinit build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
587{ 587{
588 /* 588 /*
589 * Bug workaround for the Nevada. It seems as if under certain 589 * Bug workaround for the Nevada. It seems as if under certain
@@ -608,7 +608,7 @@ static void __init build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
608 UASM_i_ADDU(p, ptr, ptr, tmp); /* add in offset */ 608 UASM_i_ADDU(p, ptr, ptr, tmp); /* add in offset */
609} 609}
610 610
611static void __init build_update_entries(u32 **p, unsigned int tmp, 611static void __cpuinit build_update_entries(u32 **p, unsigned int tmp,
612 unsigned int ptep) 612 unsigned int ptep)
613{ 613{
614 /* 614 /*
@@ -651,7 +651,7 @@ static void __init build_update_entries(u32 **p, unsigned int tmp,
651#endif 651#endif
652} 652}
653 653
654static void __init build_r4000_tlb_refill_handler(void) 654static void __cpuinit build_r4000_tlb_refill_handler(void)
655{ 655{
656 u32 *p = tlb_handler; 656 u32 *p = tlb_handler;
657 struct uasm_label *l = labels; 657 struct uasm_label *l = labels;
@@ -783,7 +783,7 @@ u32 handle_tlbl[FASTPATH_SIZE] __cacheline_aligned;
783u32 handle_tlbs[FASTPATH_SIZE] __cacheline_aligned; 783u32 handle_tlbs[FASTPATH_SIZE] __cacheline_aligned;
784u32 handle_tlbm[FASTPATH_SIZE] __cacheline_aligned; 784u32 handle_tlbm[FASTPATH_SIZE] __cacheline_aligned;
785 785
786static void __init 786static void __cpuinit
787iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr) 787iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr)
788{ 788{
789#ifdef CONFIG_SMP 789#ifdef CONFIG_SMP
@@ -803,7 +803,7 @@ iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr)
803#endif 803#endif
804} 804}
805 805
806static void __init 806static void __cpuinit
807iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr, 807iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr,
808 unsigned int mode) 808 unsigned int mode)
809{ 809{
@@ -863,7 +863,7 @@ iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr,
863 * the page table where this PTE is located, PTE will be re-loaded 863 * the page table where this PTE is located, PTE will be re-loaded
864 * with it's original value. 864 * with it's original value.
865 */ 865 */
866static void __init 866static void __cpuinit
867build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 867build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
868 unsigned int pte, unsigned int ptr, enum label_id lid) 868 unsigned int pte, unsigned int ptr, enum label_id lid)
869{ 869{
@@ -874,7 +874,7 @@ build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
874} 874}
875 875
876/* Make PTE valid, store result in PTR. */ 876/* Make PTE valid, store result in PTR. */
877static void __init 877static void __cpuinit
878build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte, 878build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte,
879 unsigned int ptr) 879 unsigned int ptr)
880{ 880{
@@ -887,7 +887,7 @@ build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte,
887 * Check if PTE can be written to, if not branch to LABEL. Regardless 887 * Check if PTE can be written to, if not branch to LABEL. Regardless
888 * restore PTE with value from PTR when done. 888 * restore PTE with value from PTR when done.
889 */ 889 */
890static void __init 890static void __cpuinit
891build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 891build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
892 unsigned int pte, unsigned int ptr, enum label_id lid) 892 unsigned int pte, unsigned int ptr, enum label_id lid)
893{ 893{
@@ -900,7 +900,7 @@ build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
900/* Make PTE writable, update software status bits as well, then store 900/* Make PTE writable, update software status bits as well, then store
901 * at PTR. 901 * at PTR.
902 */ 902 */
903static void __init 903static void __cpuinit
904build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte, 904build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte,
905 unsigned int ptr) 905 unsigned int ptr)
906{ 906{
@@ -914,7 +914,7 @@ build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte,
914 * Check if PTE can be modified, if not branch to LABEL. Regardless 914 * Check if PTE can be modified, if not branch to LABEL. Regardless
915 * restore PTE with value from PTR when done. 915 * restore PTE with value from PTR when done.
916 */ 916 */
917static void __init 917static void __cpuinit
918build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 918build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
919 unsigned int pte, unsigned int ptr, enum label_id lid) 919 unsigned int pte, unsigned int ptr, enum label_id lid)
920{ 920{
@@ -931,7 +931,7 @@ build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
931 * This places the pte into ENTRYLO0 and writes it with tlbwi. 931 * This places the pte into ENTRYLO0 and writes it with tlbwi.
932 * Then it returns. 932 * Then it returns.
933 */ 933 */
934static void __init 934static void __cpuinit
935build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp) 935build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp)
936{ 936{
937 uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */ 937 uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */
@@ -947,7 +947,7 @@ build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp)
947 * may have the probe fail bit set as a result of a trap on a 947 * may have the probe fail bit set as a result of a trap on a
948 * kseg2 access, i.e. without refill. Then it returns. 948 * kseg2 access, i.e. without refill. Then it returns.
949 */ 949 */
950static void __init 950static void __cpuinit
951build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l, 951build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l,
952 struct uasm_reloc **r, unsigned int pte, 952 struct uasm_reloc **r, unsigned int pte,
953 unsigned int tmp) 953 unsigned int tmp)
@@ -965,7 +965,7 @@ build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l,
965 uasm_i_rfe(p); /* branch delay */ 965 uasm_i_rfe(p); /* branch delay */
966} 966}
967 967
968static void __init 968static void __cpuinit
969build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte, 969build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte,
970 unsigned int ptr) 970 unsigned int ptr)
971{ 971{
@@ -985,7 +985,7 @@ build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte,
985 uasm_i_tlbp(p); /* load delay */ 985 uasm_i_tlbp(p); /* load delay */
986} 986}
987 987
988static void __init build_r3000_tlb_load_handler(void) 988static void __cpuinit build_r3000_tlb_load_handler(void)
989{ 989{
990 u32 *p = handle_tlbl; 990 u32 *p = handle_tlbl;
991 struct uasm_label *l = labels; 991 struct uasm_label *l = labels;
@@ -1015,7 +1015,7 @@ static void __init build_r3000_tlb_load_handler(void)
1015 dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); 1015 dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl));
1016} 1016}
1017 1017
1018static void __init build_r3000_tlb_store_handler(void) 1018static void __cpuinit build_r3000_tlb_store_handler(void)
1019{ 1019{
1020 u32 *p = handle_tlbs; 1020 u32 *p = handle_tlbs;
1021 struct uasm_label *l = labels; 1021 struct uasm_label *l = labels;
@@ -1045,7 +1045,7 @@ static void __init build_r3000_tlb_store_handler(void)
1045 dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); 1045 dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs));
1046} 1046}
1047 1047
1048static void __init build_r3000_tlb_modify_handler(void) 1048static void __cpuinit build_r3000_tlb_modify_handler(void)
1049{ 1049{
1050 u32 *p = handle_tlbm; 1050 u32 *p = handle_tlbm;
1051 struct uasm_label *l = labels; 1051 struct uasm_label *l = labels;
@@ -1078,7 +1078,7 @@ static void __init build_r3000_tlb_modify_handler(void)
1078/* 1078/*
1079 * R4000 style TLB load/store/modify handlers. 1079 * R4000 style TLB load/store/modify handlers.
1080 */ 1080 */
1081static void __init 1081static void __cpuinit
1082build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l, 1082build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l,
1083 struct uasm_reloc **r, unsigned int pte, 1083 struct uasm_reloc **r, unsigned int pte,
1084 unsigned int ptr) 1084 unsigned int ptr)
@@ -1103,7 +1103,7 @@ build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l,
1103 build_tlb_probe_entry(p); 1103 build_tlb_probe_entry(p);
1104} 1104}
1105 1105
1106static void __init 1106static void __cpuinit
1107build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l, 1107build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l,
1108 struct uasm_reloc **r, unsigned int tmp, 1108 struct uasm_reloc **r, unsigned int tmp,
1109 unsigned int ptr) 1109 unsigned int ptr)
@@ -1120,7 +1120,7 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l,
1120#endif 1120#endif
1121} 1121}
1122 1122
1123static void __init build_r4000_tlb_load_handler(void) 1123static void __cpuinit build_r4000_tlb_load_handler(void)
1124{ 1124{
1125 u32 *p = handle_tlbl; 1125 u32 *p = handle_tlbl;
1126 struct uasm_label *l = labels; 1126 struct uasm_label *l = labels;
@@ -1160,7 +1160,7 @@ static void __init build_r4000_tlb_load_handler(void)
1160 dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); 1160 dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl));
1161} 1161}
1162 1162
1163static void __init build_r4000_tlb_store_handler(void) 1163static void __cpuinit build_r4000_tlb_store_handler(void)
1164{ 1164{
1165 u32 *p = handle_tlbs; 1165 u32 *p = handle_tlbs;
1166 struct uasm_label *l = labels; 1166 struct uasm_label *l = labels;
@@ -1191,7 +1191,7 @@ static void __init build_r4000_tlb_store_handler(void)
1191 dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); 1191 dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs));
1192} 1192}
1193 1193
1194static void __init build_r4000_tlb_modify_handler(void) 1194static void __cpuinit build_r4000_tlb_modify_handler(void)
1195{ 1195{
1196 u32 *p = handle_tlbm; 1196 u32 *p = handle_tlbm;
1197 struct uasm_label *l = labels; 1197 struct uasm_label *l = labels;
@@ -1223,7 +1223,7 @@ static void __init build_r4000_tlb_modify_handler(void)
1223 dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm)); 1223 dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm));
1224} 1224}
1225 1225
1226void __init build_tlb_refill_handler(void) 1226void __cpuinit build_tlb_refill_handler(void)
1227{ 1227{
1228 /* 1228 /*
1229 * The refill handler is generated per-CPU, multi-node systems 1229 * The refill handler is generated per-CPU, multi-node systems
@@ -1269,7 +1269,7 @@ void __init build_tlb_refill_handler(void)
1269 } 1269 }
1270} 1270}
1271 1271
1272void __init flush_tlb_handlers(void) 1272void __cpuinit flush_tlb_handlers(void)
1273{ 1273{
1274 flush_icache_range((unsigned long)handle_tlbl, 1274 flush_icache_range((unsigned long)handle_tlbl,
1275 (unsigned long)handle_tlbl + sizeof(handle_tlbl)); 1275 (unsigned long)handle_tlbl + sizeof(handle_tlbl));
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c
index e3f74ed5f704..1a6f7704cc89 100644
--- a/arch/mips/mm/uasm.c
+++ b/arch/mips/mm/uasm.c
@@ -82,7 +82,7 @@ struct insn {
82 | (e) << RE_SH \ 82 | (e) << RE_SH \
83 | (f) << FUNC_SH) 83 | (f) << FUNC_SH)
84 84
85static struct insn insn_table[] __initdata = { 85static struct insn insn_table[] __cpuinitdata = {
86 { insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 86 { insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
87 { insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD }, 87 { insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD },
88 { insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD }, 88 { insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD },
@@ -135,7 +135,7 @@ static struct insn insn_table[] __initdata = {
135 135
136#undef M 136#undef M
137 137
138static inline __init u32 build_rs(u32 arg) 138static inline __cpuinit u32 build_rs(u32 arg)
139{ 139{
140 if (arg & ~RS_MASK) 140 if (arg & ~RS_MASK)
141 printk(KERN_WARNING "Micro-assembler field overflow\n"); 141 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -143,7 +143,7 @@ static inline __init u32 build_rs(u32 arg)
143 return (arg & RS_MASK) << RS_SH; 143 return (arg & RS_MASK) << RS_SH;
144} 144}
145 145
146static inline __init u32 build_rt(u32 arg) 146static inline __cpuinit u32 build_rt(u32 arg)
147{ 147{
148 if (arg & ~RT_MASK) 148 if (arg & ~RT_MASK)
149 printk(KERN_WARNING "Micro-assembler field overflow\n"); 149 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -151,7 +151,7 @@ static inline __init u32 build_rt(u32 arg)
151 return (arg & RT_MASK) << RT_SH; 151 return (arg & RT_MASK) << RT_SH;
152} 152}
153 153
154static inline __init u32 build_rd(u32 arg) 154static inline __cpuinit u32 build_rd(u32 arg)
155{ 155{
156 if (arg & ~RD_MASK) 156 if (arg & ~RD_MASK)
157 printk(KERN_WARNING "Micro-assembler field overflow\n"); 157 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -159,7 +159,7 @@ static inline __init u32 build_rd(u32 arg)
159 return (arg & RD_MASK) << RD_SH; 159 return (arg & RD_MASK) << RD_SH;
160} 160}
161 161
162static inline __init u32 build_re(u32 arg) 162static inline __cpuinit u32 build_re(u32 arg)
163{ 163{
164 if (arg & ~RE_MASK) 164 if (arg & ~RE_MASK)
165 printk(KERN_WARNING "Micro-assembler field overflow\n"); 165 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -167,7 +167,7 @@ static inline __init u32 build_re(u32 arg)
167 return (arg & RE_MASK) << RE_SH; 167 return (arg & RE_MASK) << RE_SH;
168} 168}
169 169
170static inline __init u32 build_simm(s32 arg) 170static inline __cpuinit u32 build_simm(s32 arg)
171{ 171{
172 if (arg > 0x7fff || arg < -0x8000) 172 if (arg > 0x7fff || arg < -0x8000)
173 printk(KERN_WARNING "Micro-assembler field overflow\n"); 173 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -175,7 +175,7 @@ static inline __init u32 build_simm(s32 arg)
175 return arg & 0xffff; 175 return arg & 0xffff;
176} 176}
177 177
178static inline __init u32 build_uimm(u32 arg) 178static inline __cpuinit u32 build_uimm(u32 arg)
179{ 179{
180 if (arg & ~IMM_MASK) 180 if (arg & ~IMM_MASK)
181 printk(KERN_WARNING "Micro-assembler field overflow\n"); 181 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -183,7 +183,7 @@ static inline __init u32 build_uimm(u32 arg)
183 return arg & IMM_MASK; 183 return arg & IMM_MASK;
184} 184}
185 185
186static inline __init u32 build_bimm(s32 arg) 186static inline __cpuinit u32 build_bimm(s32 arg)
187{ 187{
188 if (arg > 0x1ffff || arg < -0x20000) 188 if (arg > 0x1ffff || arg < -0x20000)
189 printk(KERN_WARNING "Micro-assembler field overflow\n"); 189 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -194,7 +194,7 @@ static inline __init u32 build_bimm(s32 arg)
194 return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff); 194 return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff);
195} 195}
196 196
197static inline __init u32 build_jimm(u32 arg) 197static inline __cpuinit u32 build_jimm(u32 arg)
198{ 198{
199 if (arg & ~((JIMM_MASK) << 2)) 199 if (arg & ~((JIMM_MASK) << 2))
200 printk(KERN_WARNING "Micro-assembler field overflow\n"); 200 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -202,7 +202,7 @@ static inline __init u32 build_jimm(u32 arg)
202 return (arg >> 2) & JIMM_MASK; 202 return (arg >> 2) & JIMM_MASK;
203} 203}
204 204
205static inline __init u32 build_func(u32 arg) 205static inline __cpuinit u32 build_func(u32 arg)
206{ 206{
207 if (arg & ~FUNC_MASK) 207 if (arg & ~FUNC_MASK)
208 printk(KERN_WARNING "Micro-assembler field overflow\n"); 208 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -210,7 +210,7 @@ static inline __init u32 build_func(u32 arg)
210 return arg & FUNC_MASK; 210 return arg & FUNC_MASK;
211} 211}
212 212
213static inline __init u32 build_set(u32 arg) 213static inline __cpuinit u32 build_set(u32 arg)
214{ 214{
215 if (arg & ~SET_MASK) 215 if (arg & ~SET_MASK)
216 printk(KERN_WARNING "Micro-assembler field overflow\n"); 216 printk(KERN_WARNING "Micro-assembler field overflow\n");
@@ -222,7 +222,7 @@ static inline __init u32 build_set(u32 arg)
222 * The order of opcode arguments is implicitly left to right, 222 * The order of opcode arguments is implicitly left to right,
223 * starting with RS and ending with FUNC or IMM. 223 * starting with RS and ending with FUNC or IMM.
224 */ 224 */
225static void __init build_insn(u32 **buf, enum opcode opc, ...) 225static void __cpuinit build_insn(u32 **buf, enum opcode opc, ...)
226{ 226{
227 struct insn *ip = NULL; 227 struct insn *ip = NULL;
228 unsigned int i; 228 unsigned int i;
@@ -375,14 +375,14 @@ I_u3u1u2(_xor)
375I_u2u1u3(_xori) 375I_u2u1u3(_xori)
376 376
377/* Handle labels. */ 377/* Handle labels. */
378void __init uasm_build_label(struct uasm_label **lab, u32 *addr, int lid) 378void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid)
379{ 379{
380 (*lab)->addr = addr; 380 (*lab)->addr = addr;
381 (*lab)->lab = lid; 381 (*lab)->lab = lid;
382 (*lab)++; 382 (*lab)++;
383} 383}
384 384
385int __init uasm_in_compat_space_p(long addr) 385int __cpuinit uasm_in_compat_space_p(long addr)
386{ 386{
387 /* Is this address in 32bit compat space? */ 387 /* Is this address in 32bit compat space? */
388#ifdef CONFIG_64BIT 388#ifdef CONFIG_64BIT
@@ -392,7 +392,7 @@ int __init uasm_in_compat_space_p(long addr)
392#endif 392#endif
393} 393}
394 394
395int __init uasm_rel_highest(long val) 395int __cpuinit uasm_rel_highest(long val)
396{ 396{
397#ifdef CONFIG_64BIT 397#ifdef CONFIG_64BIT
398 return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000; 398 return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000;
@@ -401,7 +401,7 @@ int __init uasm_rel_highest(long val)
401#endif 401#endif
402} 402}
403 403
404int __init uasm_rel_higher(long val) 404int __cpuinit uasm_rel_higher(long val)
405{ 405{
406#ifdef CONFIG_64BIT 406#ifdef CONFIG_64BIT
407 return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000; 407 return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000;
@@ -410,17 +410,17 @@ int __init uasm_rel_higher(long val)
410#endif 410#endif
411} 411}
412 412
413int __init uasm_rel_hi(long val) 413int __cpuinit uasm_rel_hi(long val)
414{ 414{
415 return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000; 415 return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000;
416} 416}
417 417
418int __init uasm_rel_lo(long val) 418int __cpuinit uasm_rel_lo(long val)
419{ 419{
420 return ((val & 0xffff) ^ 0x8000) - 0x8000; 420 return ((val & 0xffff) ^ 0x8000) - 0x8000;
421} 421}
422 422
423void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr) 423void __cpuinit UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr)
424{ 424{
425 if (!uasm_in_compat_space_p(addr)) { 425 if (!uasm_in_compat_space_p(addr)) {
426 uasm_i_lui(buf, rs, uasm_rel_highest(addr)); 426 uasm_i_lui(buf, rs, uasm_rel_highest(addr));
@@ -436,7 +436,7 @@ void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr)
436 uasm_i_lui(buf, rs, uasm_rel_hi(addr)); 436 uasm_i_lui(buf, rs, uasm_rel_hi(addr));
437} 437}
438 438
439void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr) 439void __cpuinit UASM_i_LA(u32 **buf, unsigned int rs, long addr)
440{ 440{
441 UASM_i_LA_mostly(buf, rs, addr); 441 UASM_i_LA_mostly(buf, rs, addr);
442 if (uasm_rel_lo(addr)) { 442 if (uasm_rel_lo(addr)) {
@@ -448,7 +448,7 @@ void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr)
448} 448}
449 449
450/* Handle relocations. */ 450/* Handle relocations. */
451void __init 451void __cpuinit
452uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid) 452uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid)
453{ 453{
454 (*rel)->addr = addr; 454 (*rel)->addr = addr;
@@ -457,7 +457,7 @@ uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid)
457 (*rel)++; 457 (*rel)++;
458} 458}
459 459
460static inline void __init 460static inline void __cpuinit
461__resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) 461__resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
462{ 462{
463 long laddr = (long)lab->addr; 463 long laddr = (long)lab->addr;
@@ -474,7 +474,7 @@ __resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
474 } 474 }
475} 475}
476 476
477void __init 477void __cpuinit
478uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) 478uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
479{ 479{
480 struct uasm_label *l; 480 struct uasm_label *l;
@@ -485,7 +485,7 @@ uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab)
485 __resolve_relocs(rel, l); 485 __resolve_relocs(rel, l);
486} 486}
487 487
488void __init 488void __cpuinit
489uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off) 489uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off)
490{ 490{
491 for (; rel->lab != UASM_LABEL_INVALID; rel++) 491 for (; rel->lab != UASM_LABEL_INVALID; rel++)
@@ -493,7 +493,7 @@ uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off)
493 rel->addr += off; 493 rel->addr += off;
494} 494}
495 495
496void __init 496void __cpuinit
497uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off) 497uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off)
498{ 498{
499 for (; lab->lab != UASM_LABEL_INVALID; lab++) 499 for (; lab->lab != UASM_LABEL_INVALID; lab++)
@@ -501,7 +501,7 @@ uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off)
501 lab->addr += off; 501 lab->addr += off;
502} 502}
503 503
504void __init 504void __cpuinit
505uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, 505uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first,
506 u32 *end, u32 *target) 506 u32 *end, u32 *target)
507{ 507{
@@ -513,7 +513,7 @@ uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first,
513 uasm_move_labels(lab, first, end, off); 513 uasm_move_labels(lab, first, end, off);
514} 514}
515 515
516int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr) 516int __cpuinit uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr)
517{ 517{
518 for (; rel->lab != UASM_LABEL_INVALID; rel++) { 518 for (; rel->lab != UASM_LABEL_INVALID; rel++) {
519 if (rel->addr == addr 519 if (rel->addr == addr
@@ -526,49 +526,49 @@ int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr)
526} 526}
527 527
528/* Convenience functions for labeled branches. */ 528/* Convenience functions for labeled branches. */
529void __init 529void __cpuinit
530uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 530uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
531{ 531{
532 uasm_r_mips_pc16(r, *p, lid); 532 uasm_r_mips_pc16(r, *p, lid);
533 uasm_i_bltz(p, reg, 0); 533 uasm_i_bltz(p, reg, 0);
534} 534}
535 535
536void __init 536void __cpuinit
537uasm_il_b(u32 **p, struct uasm_reloc **r, int lid) 537uasm_il_b(u32 **p, struct uasm_reloc **r, int lid)
538{ 538{
539 uasm_r_mips_pc16(r, *p, lid); 539 uasm_r_mips_pc16(r, *p, lid);
540 uasm_i_b(p, 0); 540 uasm_i_b(p, 0);
541} 541}
542 542
543void __init 543void __cpuinit
544uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 544uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
545{ 545{
546 uasm_r_mips_pc16(r, *p, lid); 546 uasm_r_mips_pc16(r, *p, lid);
547 uasm_i_beqz(p, reg, 0); 547 uasm_i_beqz(p, reg, 0);
548} 548}
549 549
550void __init 550void __cpuinit
551uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 551uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
552{ 552{
553 uasm_r_mips_pc16(r, *p, lid); 553 uasm_r_mips_pc16(r, *p, lid);
554 uasm_i_beqzl(p, reg, 0); 554 uasm_i_beqzl(p, reg, 0);
555} 555}
556 556
557void __init 557void __cpuinit
558uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 558uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
559{ 559{
560 uasm_r_mips_pc16(r, *p, lid); 560 uasm_r_mips_pc16(r, *p, lid);
561 uasm_i_bnez(p, reg, 0); 561 uasm_i_bnez(p, reg, 0);
562} 562}
563 563
564void __init 564void __cpuinit
565uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 565uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
566{ 566{
567 uasm_r_mips_pc16(r, *p, lid); 567 uasm_r_mips_pc16(r, *p, lid);
568 uasm_i_bgezl(p, reg, 0); 568 uasm_i_bgezl(p, reg, 0);
569} 569}
570 570
571void __init 571void __cpuinit
572uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) 572uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid)
573{ 573{
574 uasm_r_mips_pc16(r, *p, lid); 574 uasm_r_mips_pc16(r, *p, lid);
diff --git a/arch/mips/mm/uasm.h b/arch/mips/mm/uasm.h
index a10fc1135c76..fe0574f6e77d 100644
--- a/arch/mips/mm/uasm.h
+++ b/arch/mips/mm/uasm.h
@@ -11,38 +11,38 @@
11#include <linux/types.h> 11#include <linux/types.h>
12 12
13#define Ip_u1u2u3(op) \ 13#define Ip_u1u2u3(op) \
14void __init \ 14void __cpuinit \
15uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) 15uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
16 16
17#define Ip_u2u1u3(op) \ 17#define Ip_u2u1u3(op) \
18void __init \ 18void __cpuinit \
19uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) 19uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
20 20
21#define Ip_u3u1u2(op) \ 21#define Ip_u3u1u2(op) \
22void __init \ 22void __cpuinit \
23uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) 23uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c)
24 24
25#define Ip_u1u2s3(op) \ 25#define Ip_u1u2s3(op) \
26void __init \ 26void __cpuinit \
27uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) 27uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c)
28 28
29#define Ip_u2s3u1(op) \ 29#define Ip_u2s3u1(op) \
30void __init \ 30void __cpuinit \
31uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c) 31uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c)
32 32
33#define Ip_u2u1s3(op) \ 33#define Ip_u2u1s3(op) \
34void __init \ 34void __cpuinit \
35uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) 35uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c)
36 36
37#define Ip_u1u2(op) \ 37#define Ip_u1u2(op) \
38void __init uasm_i##op(u32 **buf, unsigned int a, unsigned int b) 38void __cpuinit uasm_i##op(u32 **buf, unsigned int a, unsigned int b)
39 39
40#define Ip_u1s2(op) \ 40#define Ip_u1s2(op) \
41void __init uasm_i##op(u32 **buf, unsigned int a, signed int b) 41void __cpuinit uasm_i##op(u32 **buf, unsigned int a, signed int b)
42 42
43#define Ip_u1(op) void __init uasm_i##op(u32 **buf, unsigned int a) 43#define Ip_u1(op) void __cpuinit uasm_i##op(u32 **buf, unsigned int a)
44 44
45#define Ip_0(op) void __init uasm_i##op(u32 **buf) 45#define Ip_0(op) void __cpuinit uasm_i##op(u32 **buf)
46 46
47Ip_u2u1s3(_addiu); 47Ip_u2u1s3(_addiu);
48Ip_u3u1u2(_addu); 48Ip_u3u1u2(_addu);
@@ -98,19 +98,19 @@ struct uasm_label {
98 int lab; 98 int lab;
99}; 99};
100 100
101void __init uasm_build_label(struct uasm_label **lab, u32 *addr, int lid); 101void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid);
102#ifdef CONFIG_64BIT 102#ifdef CONFIG_64BIT
103int __init uasm_in_compat_space_p(long addr); 103int uasm_in_compat_space_p(long addr);
104int __init uasm_rel_highest(long val); 104int uasm_rel_highest(long val);
105int __init uasm_rel_higher(long val); 105int uasm_rel_higher(long val);
106#endif 106#endif
107int __init uasm_rel_hi(long val); 107int uasm_rel_hi(long val);
108int __init uasm_rel_lo(long val); 108int uasm_rel_lo(long val);
109void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr); 109void UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr);
110void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr); 110void UASM_i_LA(u32 **buf, unsigned int rs, long addr);
111 111
112#define UASM_L_LA(lb) \ 112#define UASM_L_LA(lb) \
113static inline void __init uasm_l##lb(struct uasm_label **lab, u32 *addr) \ 113static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
114{ \ 114{ \
115 uasm_build_label(lab, addr, label##lb); \ 115 uasm_build_label(lab, addr, label##lb); \
116} 116}
@@ -164,29 +164,19 @@ struct uasm_reloc {
164/* This is zero so we can use zeroed label arrays. */ 164/* This is zero so we can use zeroed label arrays. */
165#define UASM_LABEL_INVALID 0 165#define UASM_LABEL_INVALID 0
166 166
167void __init uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid); 167void uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid);
168void __init 168void uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab);
169uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab); 169void uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off);
170void __init 170void uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off);
171uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off); 171void uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab,
172void __init 172 u32 *first, u32 *end, u32 *target);
173uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off); 173int uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr);
174void __init
175uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first,
176 u32 *end, u32 *target);
177int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr);
178 174
179/* Convenience functions for labeled branches. */ 175/* Convenience functions for labeled branches. */
180void __init 176void uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
181uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); 177void uasm_il_b(u32 **p, struct uasm_reloc **r, int lid);
182void __init uasm_il_b(u32 **p, struct uasm_reloc **r, int lid); 178void uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
183void __init 179void uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
184uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); 180void uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
185void __init 181void uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
186uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); 182void uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
187void __init
188uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
189void __init
190uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
191void __init
192uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid);
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c
index 30ed36125bcd..ab68c4318a30 100644
--- a/arch/mips/pci/pci-bcm1480.c
+++ b/arch/mips/pci/pci-bcm1480.c
@@ -249,8 +249,9 @@ static int __init bcm1480_pcibios_init(void)
249 * XXX ehs: Should this happen in PCI Device mode? 249 * XXX ehs: Should this happen in PCI Device mode?
250 */ 250 */
251 251
252 set_io_port_base((unsigned long) 252 bcm1480_controller.io_map_base = (unsigned long)
253 ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536)); 253 ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536);
254 set_io_port_base(bcm1480_controller.io_map_base);
254 isa_slot_offset = (unsigned long) 255 isa_slot_offset = (unsigned long)
255 ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024); 256 ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024);
256 257
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c
index a322543ac34e..bb64828a92fe 100644
--- a/arch/mips/pci/pci-ip27.c
+++ b/arch/mips/pci/pci-ip27.c
@@ -40,7 +40,7 @@ int irq_to_slot[MAX_PCI_BUSSES * MAX_DEVICES_PER_PCIBUS];
40 40
41extern struct pci_ops bridge_pci_ops; 41extern struct pci_ops bridge_pci_ops;
42 42
43int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid) 43int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid)
44{ 44{
45 unsigned long offset = NODE_OFFSET(nasid); 45 unsigned long offset = NODE_OFFSET(nasid);
46 struct bridge_controller *bc; 46 struct bridge_controller *bc;
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index f9471d77c096..358ad6210949 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -260,7 +260,7 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev,
260 } 260 }
261} 261}
262 262
263void pcibios_fixup_bus(struct pci_bus *bus) 263void __devinit pcibios_fixup_bus(struct pci_bus *bus)
264{ 264{
265 /* Propagate hose info into the subordinate devices. */ 265 /* Propagate hose info into the subordinate devices. */
266 266
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c
index 653f3ec61cab..3a7df647ca77 100644
--- a/arch/mips/pmc-sierra/yosemite/smp.c
+++ b/arch/mips/pmc-sierra/yosemite/smp.c
@@ -7,10 +7,10 @@
7 7
8#define LAUNCHSTACK_SIZE 256 8#define LAUNCHSTACK_SIZE 256
9 9
10static __initdata DEFINE_SPINLOCK(launch_lock); 10static __cpuinitdata DEFINE_SPINLOCK(launch_lock);
11 11
12static unsigned long secondary_sp __initdata; 12static unsigned long secondary_sp __cpuinitdata;
13static unsigned long secondary_gp __initdata; 13static unsigned long secondary_gp __cpuinitdata;
14 14
15static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata 15static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata
16 __attribute__((aligned(2 * sizeof(long)))); 16 __attribute__((aligned(2 * sizeof(long))));
diff --git a/arch/mips/sgi-ip27/ip27-init.c b/arch/mips/sgi-ip27/ip27-init.c
index a49e7c85f724..7093e7c573a4 100644
--- a/arch/mips/sgi-ip27/ip27-init.c
+++ b/arch/mips/sgi-ip27/ip27-init.c
@@ -53,7 +53,7 @@ extern void pcibr_setup(cnodeid_t);
53 53
54extern void xtalk_probe_node(cnodeid_t nid); 54extern void xtalk_probe_node(cnodeid_t nid);
55 55
56static void __init per_hub_init(cnodeid_t cnode) 56static void __cpuinit per_hub_init(cnodeid_t cnode)
57{ 57{
58 struct hub_data *hub = hub_data(cnode); 58 struct hub_data *hub = hub_data(cnode);
59 nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode); 59 nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index 08d45369be45..25d3baf0ebc4 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -285,7 +285,7 @@ void __cpuinit cpu_time_init(void)
285 set_c0_status(SRB_TIMOCLK); 285 set_c0_status(SRB_TIMOCLK);
286} 286}
287 287
288void __init hub_rtc_init(cnodeid_t cnode) 288void __cpuinit hub_rtc_init(cnodeid_t cnode)
289{ 289{
290 /* 290 /*
291 * We only need to initialize the current node. 291 * We only need to initialize the current node.
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c
index fc82f34a32ce..6ae64e8dfc40 100644
--- a/arch/mips/sgi-ip27/ip27-xtalk.c
+++ b/arch/mips/sgi-ip27/ip27-xtalk.c
@@ -22,7 +22,7 @@
22 22
23extern int bridge_probe(nasid_t nasid, int widget, int masterwid); 23extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
24 24
25static int __init probe_one_port(nasid_t nasid, int widget, int masterwid) 25static int __cpuinit probe_one_port(nasid_t nasid, int widget, int masterwid)
26{ 26{
27 widgetreg_t widget_id; 27 widgetreg_t widget_id;
28 xwidget_part_num_t partnum; 28 xwidget_part_num_t partnum;
@@ -46,7 +46,7 @@ static int __init probe_one_port(nasid_t nasid, int widget, int masterwid)
46 return 0; 46 return 0;
47} 47}
48 48
49static int __init xbow_probe(nasid_t nasid) 49static int __cpuinit xbow_probe(nasid_t nasid)
50{ 50{
51 lboard_t *brd; 51 lboard_t *brd;
52 klxbow_t *xbow_p; 52 klxbow_t *xbow_p;
@@ -99,7 +99,7 @@ static int __init xbow_probe(nasid_t nasid)
99 return 0; 99 return 0;
100} 100}
101 101
102void __init xtalk_probe_node(cnodeid_t nid) 102void __cpuinit xtalk_probe_node(cnodeid_t nid)
103{ 103{
104 volatile u64 hubreg; 104 volatile u64 hubreg;
105 nasid_t nasid; 105 nasid_t nasid;
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index e574de4efb36..5ddad7bd60ac 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -16,6 +16,9 @@
16# Modified for PA-RISC Linux by Paul Lahaie, Alex deVries, 16# Modified for PA-RISC Linux by Paul Lahaie, Alex deVries,
17# Mike Shaver, Helge Deller and Martin K. Petersen 17# Mike Shaver, Helge Deller and Martin K. Petersen
18# 18#
19
20KBUILD_DEFCONFIG := default_defconfig
21
19NM = sh $(srctree)/arch/parisc/nm 22NM = sh $(srctree)/arch/parisc/nm
20CHECKFLAGS += -D__hppa__=1 23CHECKFLAGS += -D__hppa__=1
21 24
diff --git a/arch/parisc/defconfig b/arch/parisc/configs/default_defconfig
index 448a757b06c6..448a757b06c6 100644
--- a/arch/parisc/defconfig
+++ b/arch/parisc/configs/default_defconfig
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index 4ab83d56974d..7177a6cd1b7f 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -1080,6 +1080,9 @@ void pdc_io_reset_devices(void)
1080 spin_unlock_irqrestore(&pdc_lock, flags); 1080 spin_unlock_irqrestore(&pdc_lock, flags);
1081} 1081}
1082 1082
1083/* locked by pdc_console_lock */
1084static int __attribute__((aligned(8))) iodc_retbuf[32];
1085static char __attribute__((aligned(64))) iodc_dbuf[4096];
1083 1086
1084/** 1087/**
1085 * pdc_iodc_print - Console print using IODC. 1088 * pdc_iodc_print - Console print using IODC.
@@ -1091,24 +1094,20 @@ void pdc_io_reset_devices(void)
1091 * Since the HP console requires CR+LF to perform a 'newline', we translate 1094 * Since the HP console requires CR+LF to perform a 'newline', we translate
1092 * "\n" to "\r\n". 1095 * "\n" to "\r\n".
1093 */ 1096 */
1094int pdc_iodc_print(unsigned char *str, unsigned count) 1097int pdc_iodc_print(const unsigned char *str, unsigned count)
1095{ 1098{
1096 /* XXX Should we spinlock posx usage */
1097 static int posx; /* for simple TAB-Simulation... */ 1099 static int posx; /* for simple TAB-Simulation... */
1098 int __attribute__((aligned(8))) iodc_retbuf[32];
1099 char __attribute__((aligned(64))) iodc_dbuf[4096];
1100 unsigned int i; 1100 unsigned int i;
1101 unsigned long flags; 1101 unsigned long flags;
1102 1102
1103 memset(iodc_dbuf, 0, 4096); 1103 for (i = 0; i < count && i < 79;) {
1104 for (i = 0; i < count && i < 2048;) {
1105 switch(str[i]) { 1104 switch(str[i]) {
1106 case '\n': 1105 case '\n':
1107 iodc_dbuf[i+0] = '\r'; 1106 iodc_dbuf[i+0] = '\r';
1108 iodc_dbuf[i+1] = '\n'; 1107 iodc_dbuf[i+1] = '\n';
1109 i += 2; 1108 i += 2;
1110 posx = 0; 1109 posx = 0;
1111 break; 1110 goto print;
1112 case '\t': 1111 case '\t':
1113 while (posx & 7) { 1112 while (posx & 7) {
1114 iodc_dbuf[i] = ' '; 1113 iodc_dbuf[i] = ' ';
@@ -1124,6 +1123,16 @@ int pdc_iodc_print(unsigned char *str, unsigned count)
1124 } 1123 }
1125 } 1124 }
1126 1125
1126 /* if we're at the end of line, and not already inserting a newline,
1127 * insert one anyway. iodc console doesn't claim to support >79 char
1128 * lines. don't account for this in the return value.
1129 */
1130 if (i == 79 && iodc_dbuf[i-1] != '\n') {
1131 iodc_dbuf[i+0] = '\r';
1132 iodc_dbuf[i+1] = '\n';
1133 }
1134
1135print:
1127 spin_lock_irqsave(&pdc_lock, flags); 1136 spin_lock_irqsave(&pdc_lock, flags);
1128 real32_call(PAGE0->mem_cons.iodc_io, 1137 real32_call(PAGE0->mem_cons.iodc_io,
1129 (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT, 1138 (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
@@ -1142,11 +1151,9 @@ int pdc_iodc_print(unsigned char *str, unsigned count)
1142 */ 1151 */
1143int pdc_iodc_getc(void) 1152int pdc_iodc_getc(void)
1144{ 1153{
1145 unsigned long flags;
1146 static int __attribute__((aligned(8))) iodc_retbuf[32];
1147 static char __attribute__((aligned(64))) iodc_dbuf[4096];
1148 int ch; 1154 int ch;
1149 int status; 1155 int status;
1156 unsigned long flags;
1150 1157
1151 /* Bail if no console input device. */ 1158 /* Bail if no console input device. */
1152 if (!PAGE0->mem_kbd.iodc_io) 1159 if (!PAGE0->mem_kbd.iodc_io)
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c
index 84b9611a9228..f48a640b55fb 100644
--- a/arch/parisc/kernel/hardware.c
+++ b/arch/parisc/kernel/hardware.c
@@ -274,7 +274,18 @@ static struct hp_hardware hp_hardware_list[] __devinitdata = {
274 {HPHW_NPROC,0x887,0x4,0x91,"Storm Peak Slow"}, 274 {HPHW_NPROC,0x887,0x4,0x91,"Storm Peak Slow"},
275 {HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"}, 275 {HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"},
276 {HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"}, 276 {HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"},
277 {HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak"}, 277 {HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak Slow"},
278 {HPHW_NPROC,0x88C,0x4,0x91,"Orca Mako+"},
279 {HPHW_NPROC,0x88D,0x4,0x91,"Rainier/Medel Mako+ Slow"},
280 {HPHW_NPROC,0x88E,0x4,0x91,"Rainier/Medel Mako+ Fast"},
281 {HPHW_NPROC,0x894,0x4,0x91,"Mt. Hamilton Fast Mako+"},
282 {HPHW_NPROC,0x895,0x4,0x91,"Storm Peak Slow Mako+"},
283 {HPHW_NPROC,0x896,0x4,0x91,"Storm Peak Fast Mako+"},
284 {HPHW_NPROC,0x897,0x4,0x91,"Storm Peak DC- Slow Mako+"},
285 {HPHW_NPROC,0x898,0x4,0x91,"Storm Peak DC- Fast Mako+"},
286 {HPHW_NPROC,0x899,0x4,0x91,"Mt. Hamilton Slow Mako+"},
287 {HPHW_NPROC,0x89B,0x4,0x91,"Crestone Peak Mako+ Slow"},
288 {HPHW_NPROC,0x89C,0x4,0x91,"Crestone Peak Mako+ Fast"},
278 {HPHW_A_DIRECT, 0x004, 0x0000D, 0x00, "Arrakis MUX"}, 289 {HPHW_A_DIRECT, 0x004, 0x0000D, 0x00, "Arrakis MUX"},
279 {HPHW_A_DIRECT, 0x005, 0x0000D, 0x00, "Dyun Kiuh MUX"}, 290 {HPHW_A_DIRECT, 0x005, 0x0000D, 0x00, "Dyun Kiuh MUX"},
280 {HPHW_A_DIRECT, 0x006, 0x0000D, 0x00, "Baat Kiuh AP/MUX (40299B)"}, 291 {HPHW_A_DIRECT, 0x006, 0x0000D, 0x00, "Baat Kiuh AP/MUX (40299B)"},
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S
index a7b8859488bb..ec2482dc1beb 100644
--- a/arch/parisc/kernel/head.S
+++ b/arch/parisc/kernel/head.S
@@ -20,10 +20,11 @@
20#include <asm/pgtable.h> 20#include <asm/pgtable.h>
21 21
22#include <linux/linkage.h> 22#include <linux/linkage.h>
23#include <linux/init.h>
23 24
24 .level LEVEL 25 .level LEVEL
25 26
26 .data 27 __INITDATA
27ENTRY(boot_args) 28ENTRY(boot_args)
28 .word 0 /* arg0 */ 29 .word 0 /* arg0 */
29 .word 0 /* arg1 */ 30 .word 0 /* arg1 */
@@ -31,7 +32,7 @@ ENTRY(boot_args)
31 .word 0 /* arg3 */ 32 .word 0 /* arg3 */
32END(boot_args) 33END(boot_args)
33 34
34 .text 35 .section .text.head
35 .align 4 36 .align 4
36 .import init_thread_union,data 37 .import init_thread_union,data
37 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ 38 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */
@@ -343,7 +344,7 @@ smp_slave_stext:
343ENDPROC(stext) 344ENDPROC(stext)
344 345
345#ifndef CONFIG_64BIT 346#ifndef CONFIG_64BIT
346 .data 347 .section .data.read_mostly
347 348
348 .align 4 349 .align 4
349 .export $global$,data 350 .export $global$,data
diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c
index 33b1f84441b1..ccb68090781e 100644
--- a/arch/parisc/kernel/pdc_cons.c
+++ b/arch/parisc/kernel/pdc_cons.c
@@ -52,28 +52,30 @@
52#include <linux/tty.h> 52#include <linux/tty.h>
53#include <asm/pdc.h> /* for iodc_call() proto and friends */ 53#include <asm/pdc.h> /* for iodc_call() proto and friends */
54 54
55static spinlock_t pdc_console_lock = SPIN_LOCK_UNLOCKED;
55 56
56static void pdc_console_write(struct console *co, const char *s, unsigned count) 57static void pdc_console_write(struct console *co, const char *s, unsigned count)
57{ 58{
58 pdc_iodc_print(s, count); 59 int i = 0;
60 unsigned long flags;
61
62 spin_lock_irqsave(&pdc_console_lock, flags);
63 do {
64 i += pdc_iodc_print(s + i, count - i);
65 } while (i < count);
66 spin_unlock_irqrestore(&pdc_console_lock, flags);
59} 67}
60 68
61void pdc_printf(const char *fmt, ...) 69int pdc_console_poll_key(struct console *co)
62{ 70{
63 va_list args; 71 int c;
64 char buf[1024]; 72 unsigned long flags;
65 int i, len;
66
67 va_start(args, fmt);
68 len = vscnprintf(buf, sizeof(buf), fmt, args);
69 va_end(args);
70 73
71 pdc_iodc_print(buf, len); 74 spin_lock_irqsave(&pdc_console_lock, flags);
72} 75 c = pdc_iodc_getc();
76 spin_unlock_irqrestore(&pdc_console_lock, flags);
73 77
74int pdc_console_poll_key(struct console *co) 78 return c;
75{
76 return pdc_iodc_getc();
77} 79}
78 80
79static int pdc_console_setup(struct console *co, char *options) 81static int pdc_console_setup(struct console *co, char *options)
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
index 117438e9eb2a..6b5ac38f5a99 100644
--- a/arch/parisc/kernel/syscall_table.S
+++ b/arch/parisc/kernel/syscall_table.S
@@ -401,9 +401,12 @@
401 ENTRY_COMP(kexec_load) /* 300 */ 401 ENTRY_COMP(kexec_load) /* 300 */
402 ENTRY_COMP(utimensat) 402 ENTRY_COMP(utimensat)
403 ENTRY_COMP(signalfd) 403 ENTRY_COMP(signalfd)
404 ENTRY_COMP(timerfd) 404 ENTRY_SAME(ni_syscall) /* was timerfd */
405 ENTRY_SAME(eventfd) 405 ENTRY_SAME(eventfd)
406 ENTRY_COMP(fallocate) /* 305 */ 406 ENTRY_COMP(fallocate) /* 305 */
407 ENTRY_SAME(timerfd_create)
408 ENTRY_COMP(timerfd_settime)
409 ENTRY_COMP(timerfd_gettime)
407 410
408 /* Nothing yet */ 411 /* Nothing yet */
409 412
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 99fd56939afa..9dc6dc42f9cf 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -51,6 +51,9 @@
51DEFINE_SPINLOCK(pa_dbit_lock); 51DEFINE_SPINLOCK(pa_dbit_lock);
52#endif 52#endif
53 53
54void parisc_show_stack(struct task_struct *t, unsigned long *sp,
55 struct pt_regs *regs);
56
54static int printbinary(char *buf, unsigned long x, int nbits) 57static int printbinary(char *buf, unsigned long x, int nbits)
55{ 58{
56 unsigned long mask = 1UL << (nbits - 1); 59 unsigned long mask = 1UL << (nbits - 1);
@@ -148,6 +151,8 @@ void show_regs(struct pt_regs *regs)
148 print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]); 151 print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]);
149 printk(level); 152 printk(level);
150 print_symbol(" RP(r2): %s\n", regs->gr[2]); 153 print_symbol(" RP(r2): %s\n", regs->gr[2]);
154
155 parisc_show_stack(current, NULL, regs);
151} 156}
152 157
153 158
@@ -181,11 +186,19 @@ static void do_show_stack(struct unwind_frame_info *info)
181 printk("\n"); 186 printk("\n");
182} 187}
183 188
184void show_stack(struct task_struct *task, unsigned long *s) 189void parisc_show_stack(struct task_struct *task, unsigned long *sp,
190 struct pt_regs *regs)
185{ 191{
186 struct unwind_frame_info info; 192 struct unwind_frame_info info;
193 struct task_struct *t;
194
195 t = task ? task : current;
196 if (regs) {
197 unwind_frame_init(&info, t, regs);
198 goto show_stack;
199 }
187 200
188 if (!task) { 201 if (t == current) {
189 unsigned long sp; 202 unsigned long sp;
190 203
191HERE: 204HERE:
@@ -201,12 +214,18 @@ HERE:
201 unwind_frame_init(&info, current, &r); 214 unwind_frame_init(&info, current, &r);
202 } 215 }
203 } else { 216 } else {
204 unwind_frame_init_from_blocked_task(&info, task); 217 unwind_frame_init_from_blocked_task(&info, t);
205 } 218 }
206 219
220show_stack:
207 do_show_stack(&info); 221 do_show_stack(&info);
208} 222}
209 223
224void show_stack(struct task_struct *t, unsigned long *sp)
225{
226 return parisc_show_stack(t, sp, NULL);
227}
228
210int is_valid_bugaddr(unsigned long iaoq) 229int is_valid_bugaddr(unsigned long iaoq)
211{ 230{
212 return 1; 231 return 1;
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 1c6ce3536e4c..ab5cfe8ef988 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -155,7 +155,7 @@ all: zImage
155 155
156CPPFLAGS_vmlinux.lds := -Upowerpc 156CPPFLAGS_vmlinux.lds := -Upowerpc
157 157
158BOOT_TARGETS = zImage zImage.initrd uImage treeImage.% cuImage.% 158BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.%
159 159
160PHONY += $(BOOT_TARGETS) 160PHONY += $(BOOT_TARGETS)
161 161
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index e3993a607584..1aded8f759d0 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -186,7 +186,7 @@ quiet_cmd_wrap = WRAP $@
186image-$(CONFIG_PPC_PSERIES) += zImage.pseries 186image-$(CONFIG_PPC_PSERIES) += zImage.pseries
187image-$(CONFIG_PPC_MAPLE) += zImage.pseries 187image-$(CONFIG_PPC_MAPLE) += zImage.pseries
188image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries 188image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries
189image-$(CONFIG_PPC_PS3) += zImage-dtb.ps3 189image-$(CONFIG_PPC_PS3) += dtbImage.ps3
190image-$(CONFIG_PPC_CELLEB) += zImage.pseries 190image-$(CONFIG_PPC_CELLEB) += zImage.pseries
191image-$(CONFIG_PPC_CHRP) += zImage.chrp 191image-$(CONFIG_PPC_CHRP) += zImage.chrp
192image-$(CONFIG_PPC_EFIKA) += zImage.chrp 192image-$(CONFIG_PPC_EFIKA) += zImage.chrp
@@ -205,7 +205,7 @@ image-$(CONFIG_DEFAULT_UIMAGE) += uImage
205# 205#
206 206
207# Board ports in arch/powerpc/platform/40x/Kconfig 207# Board ports in arch/powerpc/platform/40x/Kconfig
208image-$(CONFIG_EP405) += zImage-dtb.ep405 208image-$(CONFIG_EP405) += dtbImage.ep405
209image-$(CONFIG_WALNUT) += treeImage.walnut 209image-$(CONFIG_WALNUT) += treeImage.walnut
210 210
211# Board ports in arch/powerpc/platform/44x/Kconfig 211# Board ports in arch/powerpc/platform/44x/Kconfig
@@ -220,9 +220,9 @@ image-$(CONFIG_WARP) += cuImage.warp
220# Board ports in arch/powerpc/platform/8xx/Kconfig 220# Board ports in arch/powerpc/platform/8xx/Kconfig
221image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads 221image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads
222image-$(CONFIG_PPC_MPC885ADS) += cuImage.mpc885ads 222image-$(CONFIG_PPC_MPC885ADS) += cuImage.mpc885ads
223image-$(CONFIG_PPC_EP88XC) += zImage-dtb.ep88xc 223image-$(CONFIG_PPC_EP88XC) += dtbImage.ep88xc
224image-$(CONFIG_PPC_ADDER875) += cuImage.adder875-uboot \ 224image-$(CONFIG_PPC_ADDER875) += cuImage.adder875-uboot \
225 zImage-dtb.adder875-redboot 225 dtbImage.adder875-redboot
226 226
227# Board ports in arch/powerpc/platform/52xx/Kconfig 227# Board ports in arch/powerpc/platform/52xx/Kconfig
228image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b 228image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b
@@ -230,7 +230,7 @@ image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b
230# Board ports in arch/powerpc/platform/82xx/Kconfig 230# Board ports in arch/powerpc/platform/82xx/Kconfig
231image-$(CONFIG_MPC8272_ADS) += cuImage.mpc8272ads 231image-$(CONFIG_MPC8272_ADS) += cuImage.mpc8272ads
232image-$(CONFIG_PQ2FADS) += cuImage.pq2fads 232image-$(CONFIG_PQ2FADS) += cuImage.pq2fads
233image-$(CONFIG_EP8248E) += zImage-dtb.ep8248e 233image-$(CONFIG_EP8248E) += dtbImage.ep8248e
234 234
235# Board ports in arch/powerpc/platform/83xx/Kconfig 235# Board ports in arch/powerpc/platform/83xx/Kconfig
236image-$(CONFIG_MPC832x_MDS) += cuImage.mpc832x_mds 236image-$(CONFIG_MPC832x_MDS) += cuImage.mpc832x_mds
@@ -253,8 +253,8 @@ image-$(CONFIG_TQM8540) += cuImage.tqm8540
253image-$(CONFIG_TQM8541) += cuImage.tqm8541 253image-$(CONFIG_TQM8541) += cuImage.tqm8541
254image-$(CONFIG_TQM8555) += cuImage.tqm8555 254image-$(CONFIG_TQM8555) += cuImage.tqm8555
255image-$(CONFIG_TQM8560) += cuImage.tqm8560 255image-$(CONFIG_TQM8560) += cuImage.tqm8560
256image-$(CONFIG_SBC8548) += cuImage.tqm8548 256image-$(CONFIG_SBC8548) += cuImage.sbc8548
257image-$(CONFIG_SBC8560) += cuImage.tqm8560 257image-$(CONFIG_SBC8560) += cuImage.sbc8560
258 258
259# Board ports in arch/powerpc/platform/embedded6xx/Kconfig 259# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
260image-$(CONFIG_STORCENTER) += cuImage.storcenter 260image-$(CONFIG_STORCENTER) += cuImage.storcenter
@@ -268,7 +268,8 @@ endif
268 268
269initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) 269initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-))
270initrd-y := $(patsubst zImage%, zImage.initrd%, \ 270initrd-y := $(patsubst zImage%, zImage.initrd%, \
271 $(patsubst treeImage%, treeImage.initrd%, $(image-y))) 271 $(patsubst dtbImage%, dtbImage.initrd%, \
272 $(patsubst treeImage%, treeImage.initrd%, $(image-y))))
272initrd-y := $(filter-out $(image-y), $(initrd-y)) 273initrd-y := $(filter-out $(image-y), $(initrd-y))
273targets += $(image-y) $(initrd-y) 274targets += $(image-y) $(initrd-y)
274 275
@@ -283,10 +284,11 @@ $(obj)/zImage.initrd.%: vmlinux $(wrapperbits)
283$(obj)/zImage.%: vmlinux $(wrapperbits) 284$(obj)/zImage.%: vmlinux $(wrapperbits)
284 $(call if_changed,wrap,$*) 285 $(call if_changed,wrap,$*)
285 286
286$(obj)/zImage-dtb.initrd.%: vmlinux $(wrapperbits) $(dtstree)/%.dts 287# dtbImage% - a dtbImage is a zImage with an embedded device tree blob
288$(obj)/dtbImage.initrd.%: vmlinux $(wrapperbits) $(dtstree)/%.dts
287 $(call if_changed,wrap,$*,$(dtstree)/$*.dts,,$(obj)/ramdisk.image.gz) 289 $(call if_changed,wrap,$*,$(dtstree)/$*.dts,,$(obj)/ramdisk.image.gz)
288 290
289$(obj)/zImage-dtb.%: vmlinux $(wrapperbits) $(dtstree)/%.dts 291$(obj)/dtbImage.%: vmlinux $(wrapperbits) $(dtstree)/%.dts
290 $(call if_changed,wrap,$*,$(dtstree)/$*.dts) 292 $(call if_changed,wrap,$*,$(dtstree)/$*.dts)
291 293
292# This cannot be in the root of $(src) as the zImage rule always adds a $(obj) 294# This cannot be in the root of $(src) as the zImage rule always adds a $(obj)
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts
index 571ba02accac..2e9bc397ae9a 100644
--- a/arch/powerpc/boot/dts/lite5200b.dts
+++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -270,7 +270,7 @@
270 mdio@3000 { 270 mdio@3000 {
271 #address-cells = <1>; 271 #address-cells = <1>;
272 #size-cells = <0>; 272 #size-cells = <0>;
273 compatible = "fsl,mpc5200b-mdio"; 273 compatible = "fsl,mpc5200b-mdio", "fsl,mpc5200-mdio";
274 reg = <3000 400>; // fec range, since we need to setup fec interrupts 274 reg = <3000 400>; // fec range, since we need to setup fec interrupts
275 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. 275 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
276 interrupt-parent = <&mpc5200_pic>; 276 interrupt-parent = <&mpc5200_pic>;
diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts
index a3637fff73cc..49c05e97386c 100644
--- a/arch/powerpc/boot/dts/mpc8377_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8377_mds.dts
@@ -47,6 +47,72 @@
47 reg = <0x00000000 0x20000000>; // 512MB at 0 47 reg = <0x00000000 0x20000000>; // 512MB at 0
48 }; 48 };
49 49
50 localbus@e0005000 {
51 #address-cells = <2>;
52 #size-cells = <1>;
53 compatible = "fsl,mpc8377-elbc", "fsl,elbc", "simple-bus";
54 reg = <0xe0005000 0x1000>;
55 interrupts = <77 0x8>;
56 interrupt-parent = <&ipic>;
57
58 // booting from NOR flash
59 ranges = <0 0x0 0xfe000000 0x02000000
60 1 0x0 0xf8000000 0x00008000
61 3 0x0 0xe0600000 0x00008000>;
62
63 flash@0,0 {
64 #address-cells = <1>;
65 #size-cells = <1>;
66 compatible = "cfi-flash";
67 reg = <0 0x0 0x2000000>;
68 bank-width = <2>;
69 device-width = <1>;
70
71 u-boot@0 {
72 reg = <0x0 0x100000>;
73 read-only;
74 };
75
76 fs@100000 {
77 reg = <0x100000 0x800000>;
78 };
79
80 kernel@1d00000 {
81 reg = <0x1d00000 0x200000>;
82 };
83
84 dtb@1f00000 {
85 reg = <0x1f00000 0x100000>;
86 };
87 };
88
89 bcsr@1,0 {
90 reg = <1 0x0 0x8000>;
91 compatible = "fsl,mpc837xmds-bcsr";
92 };
93
94 nand@3,0 {
95 #address-cells = <1>;
96 #size-cells = <1>;
97 compatible = "fsl,mpc8377-fcm-nand",
98 "fsl,elbc-fcm-nand";
99 reg = <3 0x0 0x8000>;
100
101 u-boot@0 {
102 reg = <0x0 0x100000>;
103 read-only;
104 };
105
106 kernel@100000 {
107 reg = <0x100000 0x300000>;
108 };
109
110 fs@400000 {
111 reg = <0x400000 0x1c00000>;
112 };
113 };
114 };
115
50 soc@e0000000 { 116 soc@e0000000 {
51 #address-cells = <1>; 117 #address-cells = <1>;
52 #size-cells = <1>; 118 #size-cells = <1>;
@@ -91,7 +157,6 @@
91 mode = "cpu"; 157 mode = "cpu";
92 }; 158 };
93 159
94 /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
95 usb@23000 { 160 usb@23000 {
96 compatible = "fsl-usb2-dr"; 161 compatible = "fsl-usb2-dr";
97 reg = <0x23000 0x1000>; 162 reg = <0x23000 0x1000>;
@@ -99,7 +164,8 @@
99 #size-cells = <0>; 164 #size-cells = <0>;
100 interrupt-parent = <&ipic>; 165 interrupt-parent = <&ipic>;
101 interrupts = <38 0x8>; 166 interrupts = <38 0x8>;
102 phy_type = "utmi_wide"; 167 dr_mode = "host";
168 phy_type = "ulpi";
103 }; 169 };
104 170
105 mdio@24520 { 171 mdio@24520 {
diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts
index 533e9b06cc8f..1d6ea080ad73 100644
--- a/arch/powerpc/boot/dts/mpc8378_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8378_mds.dts
@@ -47,6 +47,72 @@
47 reg = <0x00000000 0x20000000>; // 512MB at 0 47 reg = <0x00000000 0x20000000>; // 512MB at 0
48 }; 48 };
49 49
50 localbus@e0005000 {
51 #address-cells = <2>;
52 #size-cells = <1>;
53 compatible = "fsl,mpc8378-elbc", "fsl,elbc", "simple-bus";
54 reg = <0xe0005000 0x1000>;
55 interrupts = <77 0x8>;
56 interrupt-parent = <&ipic>;
57
58 // booting from NOR flash
59 ranges = <0 0x0 0xfe000000 0x02000000
60 1 0x0 0xf8000000 0x00008000
61 3 0x0 0xe0600000 0x00008000>;
62
63 flash@0,0 {
64 #address-cells = <1>;
65 #size-cells = <1>;
66 compatible = "cfi-flash";
67 reg = <0 0x0 0x2000000>;
68 bank-width = <2>;
69 device-width = <1>;
70
71 u-boot@0 {
72 reg = <0x0 0x100000>;
73 read-only;
74 };
75
76 fs@100000 {
77 reg = <0x100000 0x800000>;
78 };
79
80 kernel@1d00000 {
81 reg = <0x1d00000 0x200000>;
82 };
83
84 dtb@1f00000 {
85 reg = <0x1f00000 0x100000>;
86 };
87 };
88
89 bcsr@1,0 {
90 reg = <1 0x0 0x8000>;
91 compatible = "fsl,mpc837xmds-bcsr";
92 };
93
94 nand@3,0 {
95 #address-cells = <1>;
96 #size-cells = <1>;
97 compatible = "fsl,mpc8378-fcm-nand",
98 "fsl,elbc-fcm-nand";
99 reg = <3 0x0 0x8000>;
100
101 u-boot@0 {
102 reg = <0x0 0x100000>;
103 read-only;
104 };
105
106 kernel@100000 {
107 reg = <0x100000 0x300000>;
108 };
109
110 fs@400000 {
111 reg = <0x400000 0x1c00000>;
112 };
113 };
114 };
115
50 soc@e0000000 { 116 soc@e0000000 {
51 #address-cells = <1>; 117 #address-cells = <1>;
52 #size-cells = <1>; 118 #size-cells = <1>;
@@ -91,7 +157,6 @@
91 mode = "cpu"; 157 mode = "cpu";
92 }; 158 };
93 159
94 /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
95 usb@23000 { 160 usb@23000 {
96 compatible = "fsl-usb2-dr"; 161 compatible = "fsl-usb2-dr";
97 reg = <0x23000 0x1000>; 162 reg = <0x23000 0x1000>;
@@ -99,7 +164,8 @@
99 #size-cells = <0>; 164 #size-cells = <0>;
100 interrupt-parent = <&ipic>; 165 interrupt-parent = <&ipic>;
101 interrupts = <38 0x8>; 166 interrupts = <38 0x8>;
102 phy_type = "utmi_wide"; 167 dr_mode = "host";
168 phy_type = "ulpi";
103 }; 169 };
104 170
105 mdio@24520 { 171 mdio@24520 {
diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts
index c270685bbde4..fdb4a9255b24 100644
--- a/arch/powerpc/boot/dts/mpc8379_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8379_mds.dts
@@ -47,6 +47,72 @@
47 reg = <0x00000000 0x20000000>; // 512MB at 0 47 reg = <0x00000000 0x20000000>; // 512MB at 0
48 }; 48 };
49 49
50 localbus@e0005000 {
51 #address-cells = <2>;
52 #size-cells = <1>;
53 compatible = "fsl,mpc8379-elbc", "fsl,elbc", "simple-bus";
54 reg = <0xe0005000 0x1000>;
55 interrupts = <77 0x8>;
56 interrupt-parent = <&ipic>;
57
58 // booting from NOR flash
59 ranges = <0 0x0 0xfe000000 0x02000000
60 1 0x0 0xf8000000 0x00008000
61 3 0x0 0xe0600000 0x00008000>;
62
63 flash@0,0 {
64 #address-cells = <1>;
65 #size-cells = <1>;
66 compatible = "cfi-flash";
67 reg = <0 0x0 0x2000000>;
68 bank-width = <2>;
69 device-width = <1>;
70
71 u-boot@0 {
72 reg = <0x0 0x100000>;
73 read-only;
74 };
75
76 fs@100000 {
77 reg = <0x100000 0x800000>;
78 };
79
80 kernel@1d00000 {
81 reg = <0x1d00000 0x200000>;
82 };
83
84 dtb@1f00000 {
85 reg = <0x1f00000 0x100000>;
86 };
87 };
88
89 bcsr@1,0 {
90 reg = <1 0x0 0x8000>;
91 compatible = "fsl,mpc837xmds-bcsr";
92 };
93
94 nand@3,0 {
95 #address-cells = <1>;
96 #size-cells = <1>;
97 compatible = "fsl,mpc8379-fcm-nand",
98 "fsl,elbc-fcm-nand";
99 reg = <3 0x0 0x8000>;
100
101 u-boot@0 {
102 reg = <0x0 0x100000>;
103 read-only;
104 };
105
106 kernel@100000 {
107 reg = <0x100000 0x300000>;
108 };
109
110 fs@400000 {
111 reg = <0x400000 0x1c00000>;
112 };
113 };
114 };
115
50 soc@e0000000 { 116 soc@e0000000 {
51 #address-cells = <1>; 117 #address-cells = <1>;
52 #size-cells = <1>; 118 #size-cells = <1>;
@@ -91,7 +157,6 @@
91 mode = "cpu"; 157 mode = "cpu";
92 }; 158 };
93 159
94 /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
95 usb@23000 { 160 usb@23000 {
96 compatible = "fsl-usb2-dr"; 161 compatible = "fsl-usb2-dr";
97 reg = <0x23000 0x1000>; 162 reg = <0x23000 0x1000>;
@@ -99,7 +164,8 @@
99 #size-cells = <0>; 164 #size-cells = <0>;
100 interrupt-parent = <&ipic>; 165 interrupt-parent = <&ipic>;
101 interrupts = <38 0x8>; 166 interrupts = <38 0x8>;
102 phy_type = "utmi_wide"; 167 dr_mode = "host";
168 phy_type = "ulpi";
103 }; 169 };
104 170
105 mdio@24520 { 171 mdio@24520 {
diff --git a/arch/powerpc/boot/dts/sbc8548.dts b/arch/powerpc/boot/dts/sbc8548.dts
index 14be38ad5d4b..b86e65d926c1 100644
--- a/arch/powerpc/boot/dts/sbc8548.dts
+++ b/arch/powerpc/boot/dts/sbc8548.dts
@@ -184,11 +184,17 @@
184 cell-index = <0>; 184 cell-index = <0>;
185 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 185 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
186 interrupt-map = < 186 interrupt-map = <
187 /* IDSEL 0x01 (PCI-X slot) */ 187 /* IDSEL 0x01 (PCI-X slot) @66MHz */
188 0x0800 0x0 0x0 0x1 &mpic 0x0 0x1 188 0x0800 0x0 0x0 0x1 &mpic 0x2 0x1
189 0x0800 0x0 0x0 0x2 &mpic 0x1 0x1 189 0x0800 0x0 0x0 0x2 &mpic 0x3 0x1
190 0x0800 0x0 0x0 0x3 &mpic 0x2 0x1 190 0x0800 0x0 0x0 0x3 &mpic 0x4 0x1
191 0x0800 0x0 0x0 0x4 &mpic 0x3 0x1>; 191 0x0800 0x0 0x0 0x4 &mpic 0x1 0x1
192
193 /* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */
194 0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
195 0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
196 0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
197 0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>;
192 198
193 interrupt-parent = <&mpic>; 199 interrupt-parent = <&mpic>;
194 interrupts = <0x18 0x2>; 200 interrupts = <0x18 0x2>;
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index c3178155311b..8f8b8494d62f 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -174,10 +174,10 @@ cuboot*)
174 *-mpc83*) 174 *-mpc83*)
175 platformo=$object/cuboot-83xx.o 175 platformo=$object/cuboot-83xx.o
176 ;; 176 ;;
177 *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555*) 177 *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555)
178 platformo=$object/cuboot-85xx-cpm2.o 178 platformo=$object/cuboot-85xx-cpm2.o
179 ;; 179 ;;
180 *-mpc85*) 180 *-mpc85*|*-tqm8540|*-sbc85*)
181 platformo=$object/cuboot-85xx.o 181 platformo=$object/cuboot-85xx.o
182 ;; 182 ;;
183 esac 183 esac
@@ -191,10 +191,14 @@ ps3)
191 ksection=.kernel:vmlinux.bin 191 ksection=.kernel:vmlinux.bin
192 isection=.kernel:initrd 192 isection=.kernel:initrd
193 ;; 193 ;;
194ep88xc|ep405|redboot*|ep8248e) 194ep88xc|ep405|ep8248e)
195 platformo="$object/fixed-head.o $object/$platform.o" 195 platformo="$object/fixed-head.o $object/$platform.o"
196 binary=y 196 binary=y
197 ;; 197 ;;
198adder875-redboot)
199 platformo="$object/fixed-head.o $object/redboot-8xx.o"
200 binary=y
201 ;;
198esac 202esac
199 203
200vmz="$tmpdir/`basename \"$kernel\"`.$ext" 204vmz="$tmpdir/`basename \"$kernel\"`.$ext"
diff --git a/arch/powerpc/configs/adder875-uboot_defconfig b/arch/powerpc/configs/adder875-uboot_defconfig
deleted file mode 100644
index 1faf7ef59a23..000000000000
--- a/arch/powerpc/configs/adder875-uboot_defconfig
+++ /dev/null
@@ -1,798 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6
4# Thu Jan 17 16:17:18 2008
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12# CONFIG_PPC_85xx is not set
13CONFIG_PPC_8xx=y
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_8xx=y
18# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y
23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y
29CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y
32CONFIG_GENERIC_HWEIGHT=y
33CONFIG_GENERIC_CALIBRATE_DELAY=y
34CONFIG_GENERIC_FIND_NEXT_BIT=y
35# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
36CONFIG_PPC=y
37CONFIG_EARLY_PRINTK=y
38CONFIG_GENERIC_NVRAM=y
39CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
40CONFIG_ARCH_MAY_HAVE_PC_FDC=y
41CONFIG_PPC_OF=y
42CONFIG_OF=y
43# CONFIG_PPC_UDBG_16550 is not set
44# CONFIG_GENERIC_TBSYNC is not set
45CONFIG_AUDIT_ARCH=y
46CONFIG_GENERIC_BUG=y
47# CONFIG_DEFAULT_UIMAGE is not set
48CONFIG_REDBOOT=y
49# CONFIG_PPC_DCR_NATIVE is not set
50# CONFIG_PPC_DCR_MMIO is not set
51CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
52
53#
54# General setup
55#
56CONFIG_EXPERIMENTAL=y
57CONFIG_BROKEN_ON_SMP=y
58CONFIG_INIT_ENV_ARG_LIMIT=32
59CONFIG_LOCALVERSION=""
60CONFIG_LOCALVERSION_AUTO=y
61# CONFIG_SWAP is not set
62CONFIG_SYSVIPC=y
63CONFIG_SYSVIPC_SYSCTL=y
64# CONFIG_POSIX_MQUEUE is not set
65# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set
73CONFIG_FAIR_GROUP_SCHED=y
74CONFIG_FAIR_USER_SCHED=y
75# CONFIG_FAIR_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y
77# CONFIG_RELAY is not set
78# CONFIG_BLK_DEV_INITRD is not set
79# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
80CONFIG_SYSCTL=y
81CONFIG_EMBEDDED=y
82# CONFIG_SYSCTL_SYSCALL is not set
83CONFIG_KALLSYMS=y
84# CONFIG_KALLSYMS_ALL is not set
85# CONFIG_KALLSYMS_EXTRA_PASS is not set
86CONFIG_HOTPLUG=y
87CONFIG_PRINTK=y
88CONFIG_BUG=y
89# CONFIG_ELF_CORE is not set
90# CONFIG_BASE_FULL is not set
91# CONFIG_FUTEX is not set
92CONFIG_ANON_INODES=y
93CONFIG_EPOLL=y
94CONFIG_SIGNALFD=y
95CONFIG_EVENTFD=y
96CONFIG_SHMEM=y
97# CONFIG_VM_EVENT_COUNTERS is not set
98CONFIG_SLUB_DEBUG=y
99# CONFIG_SLAB is not set
100CONFIG_SLUB=y
101# CONFIG_SLOB is not set
102# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=1
104# CONFIG_MODULES is not set
105CONFIG_BLOCK=y
106# CONFIG_LBD is not set
107# CONFIG_BLK_DEV_IO_TRACE is not set
108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set
110
111#
112# IO Schedulers
113#
114CONFIG_IOSCHED_NOOP=y
115# CONFIG_IOSCHED_AS is not set
116CONFIG_IOSCHED_DEADLINE=y
117# CONFIG_IOSCHED_CFQ is not set
118# CONFIG_DEFAULT_AS is not set
119CONFIG_DEFAULT_DEADLINE=y
120# CONFIG_DEFAULT_CFQ is not set
121# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="deadline"
123
124#
125# Platform support
126#
127# CONFIG_PPC_MPC52xx is not set
128# CONFIG_PPC_MPC5200 is not set
129# CONFIG_PPC_CELL is not set
130# CONFIG_PPC_CELL_NATIVE is not set
131CONFIG_CPM1=y
132# CONFIG_MPC8XXFADS is not set
133# CONFIG_MPC86XADS is not set
134# CONFIG_MPC885ADS is not set
135# CONFIG_PPC_EP88XC is not set
136CONFIG_PPC_ADDER875=y
137
138#
139# MPC8xx CPM Options
140#
141
142#
143# Generic MPC8xx Options
144#
145CONFIG_8xx_COPYBACK=y
146# CONFIG_8xx_CPU6 is not set
147CONFIG_8xx_CPU15=y
148CONFIG_NO_UCODE_PATCH=y
149# CONFIG_USB_SOF_UCODE_PATCH is not set
150# CONFIG_I2C_SPI_UCODE_PATCH is not set
151# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set
152# CONFIG_PQ2ADS is not set
153# CONFIG_MPIC is not set
154# CONFIG_MPIC_WEIRD is not set
155# CONFIG_PPC_I8259 is not set
156# CONFIG_PPC_RTAS is not set
157# CONFIG_MMIO_NVRAM is not set
158# CONFIG_PPC_MPC106 is not set
159# CONFIG_PPC_970_NAP is not set
160# CONFIG_PPC_INDIRECT_IO is not set
161# CONFIG_GENERIC_IOMAP is not set
162# CONFIG_CPU_FREQ is not set
163# CONFIG_CPM2 is not set
164CONFIG_PPC_CPM_NEW_BINDING=y
165# CONFIG_FSL_ULI1575 is not set
166CONFIG_CPM=y
167
168#
169# Kernel options
170#
171# CONFIG_HIGHMEM is not set
172# CONFIG_TICK_ONESHOT is not set
173# CONFIG_NO_HZ is not set
174# CONFIG_HIGH_RES_TIMERS is not set
175CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
176# CONFIG_HZ_100 is not set
177# CONFIG_HZ_250 is not set
178# CONFIG_HZ_300 is not set
179CONFIG_HZ_1000=y
180CONFIG_HZ=1000
181CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set
184CONFIG_BINFMT_ELF=y
185# CONFIG_BINFMT_MISC is not set
186# CONFIG_MATH_EMULATION is not set
187# CONFIG_8XX_MINIMAL_FPEMU is not set
188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
189CONFIG_ARCH_FLATMEM_ENABLE=y
190CONFIG_ARCH_POPULATES_NODE_MAP=y
191CONFIG_SELECT_MEMORY_MODEL=y
192CONFIG_FLATMEM_MANUAL=y
193# CONFIG_DISCONTIGMEM_MANUAL is not set
194# CONFIG_SPARSEMEM_MANUAL is not set
195CONFIG_FLATMEM=y
196CONFIG_FLAT_NODE_MEM_MAP=y
197# CONFIG_SPARSEMEM_STATIC is not set
198# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y
203CONFIG_VIRT_TO_BUS=y
204# CONFIG_PROC_DEVICETREE is not set
205# CONFIG_CMDLINE_BOOL is not set
206# CONFIG_PM is not set
207CONFIG_SUSPEND_UP_POSSIBLE=y
208CONFIG_HIBERNATION_UP_POSSIBLE=y
209# CONFIG_SECCOMP is not set
210CONFIG_WANT_DEVICE_TREE=y
211CONFIG_DEVICE_TREE="adder875-uboot.dts"
212CONFIG_ISA_DMA_API=y
213
214#
215# Bus options
216#
217CONFIG_ZONE_DMA=y
218CONFIG_FSL_SOC=y
219# CONFIG_PCI is not set
220# CONFIG_PCI_DOMAINS is not set
221# CONFIG_PCI_SYSCALL is not set
222# CONFIG_PCI_QSPAN is not set
223# CONFIG_ARCH_SUPPORTS_MSI is not set
224# CONFIG_PCCARD is not set
225
226#
227# Advanced setup
228#
229# CONFIG_ADVANCED_OPTIONS is not set
230
231#
232# Default settings for advanced configuration options are used
233#
234CONFIG_HIGHMEM_START=0xfe000000
235CONFIG_LOWMEM_SIZE=0x30000000
236CONFIG_KERNEL_START=0xc0000000
237CONFIG_TASK_SIZE=0x80000000
238CONFIG_CONSISTENT_START=0xfd000000
239CONFIG_CONSISTENT_SIZE=0x00200000
240CONFIG_BOOT_LOAD=0x00400000
241
242#
243# Networking
244#
245CONFIG_NET=y
246
247#
248# Networking options
249#
250CONFIG_PACKET=y
251# CONFIG_PACKET_MMAP is not set
252CONFIG_UNIX=y
253# CONFIG_NET_KEY is not set
254CONFIG_INET=y
255CONFIG_IP_MULTICAST=y
256# CONFIG_IP_ADVANCED_ROUTER is not set
257CONFIG_IP_FIB_HASH=y
258CONFIG_IP_PNP=y
259# CONFIG_IP_PNP_DHCP is not set
260# CONFIG_IP_PNP_BOOTP is not set
261# CONFIG_IP_PNP_RARP is not set
262# CONFIG_NET_IPIP is not set
263# CONFIG_NET_IPGRE is not set
264# CONFIG_IP_MROUTE is not set
265# CONFIG_ARPD is not set
266CONFIG_SYN_COOKIES=y
267# CONFIG_INET_AH is not set
268# CONFIG_INET_ESP is not set
269# CONFIG_INET_IPCOMP is not set
270# CONFIG_INET_XFRM_TUNNEL is not set
271# CONFIG_INET_TUNNEL is not set
272# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
273# CONFIG_INET_XFRM_MODE_TUNNEL is not set
274# CONFIG_INET_XFRM_MODE_BEET is not set
275# CONFIG_INET_LRO is not set
276CONFIG_INET_DIAG=y
277CONFIG_INET_TCP_DIAG=y
278# CONFIG_TCP_CONG_ADVANCED is not set
279CONFIG_TCP_CONG_CUBIC=y
280CONFIG_DEFAULT_TCP_CONG="cubic"
281# CONFIG_TCP_MD5SIG is not set
282# CONFIG_IPV6 is not set
283# CONFIG_INET6_XFRM_TUNNEL is not set
284# CONFIG_INET6_TUNNEL is not set
285# CONFIG_NETWORK_SECMARK is not set
286# CONFIG_NETFILTER is not set
287# CONFIG_IP_DCCP is not set
288# CONFIG_IP_SCTP is not set
289# CONFIG_TIPC is not set
290# CONFIG_ATM is not set
291# CONFIG_BRIDGE is not set
292# CONFIG_VLAN_8021Q is not set
293# CONFIG_DECNET is not set
294# CONFIG_LLC2 is not set
295# CONFIG_IPX is not set
296# CONFIG_ATALK is not set
297# CONFIG_X25 is not set
298# CONFIG_LAPB is not set
299# CONFIG_ECONET is not set
300# CONFIG_WAN_ROUTER is not set
301# CONFIG_NET_SCHED is not set
302
303#
304# Network testing
305#
306# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set
308# CONFIG_IRDA is not set
309# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set
311
312#
313# Wireless
314#
315# CONFIG_CFG80211 is not set
316# CONFIG_WIRELESS_EXT is not set
317# CONFIG_MAC80211 is not set
318# CONFIG_IEEE80211 is not set
319# CONFIG_RFKILL is not set
320# CONFIG_NET_9P is not set
321
322#
323# Device Drivers
324#
325
326#
327# Generic Driver Options
328#
329CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
330CONFIG_STANDALONE=y
331CONFIG_PREVENT_FIRMWARE_BUILD=y
332# CONFIG_FW_LOADER is not set
333# CONFIG_DEBUG_DRIVER is not set
334# CONFIG_DEBUG_DEVRES is not set
335# CONFIG_SYS_HYPERVISOR is not set
336# CONFIG_CONNECTOR is not set
337CONFIG_MTD=y
338# CONFIG_MTD_DEBUG is not set
339# CONFIG_MTD_CONCAT is not set
340# CONFIG_MTD_PARTITIONS is not set
341
342#
343# User Modules And Translation Layers
344#
345CONFIG_MTD_CHAR=y
346CONFIG_MTD_BLKDEVS=y
347CONFIG_MTD_BLOCK=y
348# CONFIG_FTL is not set
349# CONFIG_NFTL is not set
350# CONFIG_INFTL is not set
351# CONFIG_RFD_FTL is not set
352# CONFIG_SSFDC is not set
353# CONFIG_MTD_OOPS is not set
354
355#
356# RAM/ROM/Flash chip drivers
357#
358CONFIG_MTD_CFI=y
359# CONFIG_MTD_JEDECPROBE is not set
360CONFIG_MTD_GEN_PROBE=y
361# CONFIG_MTD_CFI_ADV_OPTIONS is not set
362CONFIG_MTD_MAP_BANK_WIDTH_1=y
363CONFIG_MTD_MAP_BANK_WIDTH_2=y
364CONFIG_MTD_MAP_BANK_WIDTH_4=y
365# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
366# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
367# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
368CONFIG_MTD_CFI_I1=y
369CONFIG_MTD_CFI_I2=y
370# CONFIG_MTD_CFI_I4 is not set
371# CONFIG_MTD_CFI_I8 is not set
372# CONFIG_MTD_CFI_INTELEXT is not set
373CONFIG_MTD_CFI_AMDSTD=y
374# CONFIG_MTD_CFI_STAA is not set
375CONFIG_MTD_CFI_UTIL=y
376# CONFIG_MTD_RAM is not set
377# CONFIG_MTD_ROM is not set
378# CONFIG_MTD_ABSENT is not set
379
380#
381# Mapping drivers for chip access
382#
383# CONFIG_MTD_COMPLEX_MAPPINGS is not set
384# CONFIG_MTD_PHYSMAP is not set
385CONFIG_MTD_PHYSMAP_OF=y
386# CONFIG_MTD_CFI_FLAGADM is not set
387# CONFIG_MTD_PLATRAM is not set
388
389#
390# Self-contained MTD device drivers
391#
392# CONFIG_MTD_SLRAM is not set
393# CONFIG_MTD_PHRAM is not set
394# CONFIG_MTD_MTDRAM is not set
395# CONFIG_MTD_BLOCK2MTD is not set
396
397#
398# Disk-On-Chip Device Drivers
399#
400# CONFIG_MTD_DOC2000 is not set
401# CONFIG_MTD_DOC2001 is not set
402# CONFIG_MTD_DOC2001PLUS is not set
403# CONFIG_MTD_NAND is not set
404# CONFIG_MTD_ONENAND is not set
405
406#
407# UBI - Unsorted block images
408#
409# CONFIG_MTD_UBI is not set
410CONFIG_OF_DEVICE=y
411# CONFIG_PARPORT is not set
412# CONFIG_BLK_DEV is not set
413# CONFIG_MISC_DEVICES is not set
414# CONFIG_IDE is not set
415
416#
417# SCSI device support
418#
419# CONFIG_RAID_ATTRS is not set
420# CONFIG_SCSI is not set
421# CONFIG_SCSI_DMA is not set
422# CONFIG_SCSI_NETLINK is not set
423# CONFIG_ATA is not set
424# CONFIG_MD is not set
425# CONFIG_MACINTOSH_DRIVERS is not set
426CONFIG_NETDEVICES=y
427# CONFIG_NETDEVICES_MULTIQUEUE is not set
428# CONFIG_DUMMY is not set
429# CONFIG_BONDING is not set
430# CONFIG_MACVLAN is not set
431# CONFIG_EQUALIZER is not set
432# CONFIG_TUN is not set
433# CONFIG_VETH is not set
434CONFIG_PHYLIB=y
435
436#
437# MII PHY device drivers
438#
439# CONFIG_MARVELL_PHY is not set
440CONFIG_DAVICOM_PHY=y
441# CONFIG_QSEMI_PHY is not set
442# CONFIG_LXT_PHY is not set
443# CONFIG_CICADA_PHY is not set
444# CONFIG_VITESSE_PHY is not set
445# CONFIG_SMSC_PHY is not set
446# CONFIG_BROADCOM_PHY is not set
447# CONFIG_ICPLUS_PHY is not set
448# CONFIG_FIXED_PHY is not set
449# CONFIG_MDIO_BITBANG is not set
450CONFIG_NET_ETHERNET=y
451CONFIG_MII=y
452# CONFIG_IBM_NEW_EMAC_ZMII is not set
453# CONFIG_IBM_NEW_EMAC_RGMII is not set
454# CONFIG_IBM_NEW_EMAC_TAH is not set
455# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
456# CONFIG_B44 is not set
457CONFIG_FS_ENET=y
458# CONFIG_FS_ENET_HAS_SCC is not set
459CONFIG_FS_ENET_HAS_FEC=y
460CONFIG_FS_ENET_MDIO_FEC=y
461# CONFIG_NETDEV_1000 is not set
462# CONFIG_NETDEV_10000 is not set
463
464#
465# Wireless LAN
466#
467# CONFIG_WLAN_PRE80211 is not set
468# CONFIG_WLAN_80211 is not set
469# CONFIG_WAN is not set
470# CONFIG_PPP is not set
471# CONFIG_SLIP is not set
472# CONFIG_SHAPER is not set
473# CONFIG_NETCONSOLE is not set
474# CONFIG_NETPOLL is not set
475# CONFIG_NET_POLL_CONTROLLER is not set
476# CONFIG_ISDN is not set
477# CONFIG_PHONE is not set
478
479#
480# Input device support
481#
482CONFIG_INPUT=y
483# CONFIG_INPUT_FF_MEMLESS is not set
484# CONFIG_INPUT_POLLDEV is not set
485
486#
487# Userland interfaces
488#
489CONFIG_INPUT_MOUSEDEV=y
490CONFIG_INPUT_MOUSEDEV_PSAUX=y
491CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
492CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
493# CONFIG_INPUT_JOYDEV is not set
494# CONFIG_INPUT_EVDEV is not set
495# CONFIG_INPUT_EVBUG is not set
496
497#
498# Input Device Drivers
499#
500CONFIG_INPUT_KEYBOARD=y
501CONFIG_KEYBOARD_ATKBD=y
502# CONFIG_KEYBOARD_SUNKBD is not set
503# CONFIG_KEYBOARD_LKKBD is not set
504# CONFIG_KEYBOARD_XTKBD is not set
505# CONFIG_KEYBOARD_NEWTON is not set
506# CONFIG_KEYBOARD_STOWAWAY is not set
507CONFIG_INPUT_MOUSE=y
508CONFIG_MOUSE_PS2=y
509CONFIG_MOUSE_PS2_ALPS=y
510CONFIG_MOUSE_PS2_LOGIPS2PP=y
511CONFIG_MOUSE_PS2_SYNAPTICS=y
512CONFIG_MOUSE_PS2_LIFEBOOK=y
513CONFIG_MOUSE_PS2_TRACKPOINT=y
514# CONFIG_MOUSE_PS2_TOUCHKIT is not set
515# CONFIG_MOUSE_SERIAL is not set
516# CONFIG_MOUSE_VSXXXAA is not set
517# CONFIG_INPUT_JOYSTICK is not set
518# CONFIG_INPUT_TABLET is not set
519# CONFIG_INPUT_TOUCHSCREEN is not set
520# CONFIG_INPUT_MISC is not set
521
522#
523# Hardware I/O ports
524#
525CONFIG_SERIO=y
526CONFIG_SERIO_I8042=y
527CONFIG_SERIO_SERPORT=y
528CONFIG_SERIO_LIBPS2=y
529# CONFIG_SERIO_RAW is not set
530# CONFIG_GAMEPORT is not set
531
532#
533# Character devices
534#
535# CONFIG_VT is not set
536# CONFIG_SERIAL_NONSTANDARD is not set
537
538#
539# Serial drivers
540#
541# CONFIG_SERIAL_8250 is not set
542
543#
544# Non-8250 serial port support
545#
546# CONFIG_SERIAL_UARTLITE is not set
547CONFIG_SERIAL_CORE=y
548CONFIG_SERIAL_CORE_CONSOLE=y
549CONFIG_SERIAL_CPM=y
550CONFIG_SERIAL_CPM_CONSOLE=y
551# CONFIG_SERIAL_CPM_SCC1 is not set
552# CONFIG_SERIAL_CPM_SCC2 is not set
553# CONFIG_SERIAL_CPM_SCC3 is not set
554# CONFIG_SERIAL_CPM_SCC4 is not set
555CONFIG_SERIAL_CPM_SMC1=y
556CONFIG_SERIAL_CPM_SMC2=y
557CONFIG_UNIX98_PTYS=y
558# CONFIG_LEGACY_PTYS is not set
559# CONFIG_IPMI_HANDLER is not set
560CONFIG_HW_RANDOM=y
561# CONFIG_NVRAM is not set
562CONFIG_GEN_RTC=y
563# CONFIG_GEN_RTC_X is not set
564# CONFIG_R3964 is not set
565# CONFIG_RAW_DRIVER is not set
566# CONFIG_TCG_TPM is not set
567# CONFIG_I2C is not set
568
569#
570# SPI support
571#
572# CONFIG_SPI is not set
573# CONFIG_SPI_MASTER is not set
574# CONFIG_W1 is not set
575# CONFIG_POWER_SUPPLY is not set
576# CONFIG_HWMON is not set
577# CONFIG_WATCHDOG is not set
578
579#
580# Sonics Silicon Backplane
581#
582CONFIG_SSB_POSSIBLE=y
583# CONFIG_SSB is not set
584
585#
586# Multifunction device drivers
587#
588# CONFIG_MFD_SM501 is not set
589
590#
591# Multimedia devices
592#
593# CONFIG_VIDEO_DEV is not set
594# CONFIG_DVB_CORE is not set
595CONFIG_DAB=y
596
597#
598# Graphics support
599#
600# CONFIG_VGASTATE is not set
601CONFIG_VIDEO_OUTPUT_CONTROL=y
602# CONFIG_FB is not set
603# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
604
605#
606# Display device support
607#
608# CONFIG_DISPLAY_SUPPORT is not set
609
610#
611# Sound
612#
613# CONFIG_SOUND is not set
614# CONFIG_HID_SUPPORT is not set
615# CONFIG_USB_SUPPORT is not set
616# CONFIG_MMC is not set
617# CONFIG_NEW_LEDS is not set
618# CONFIG_EDAC is not set
619# CONFIG_RTC_CLASS is not set
620
621#
622# Userspace I/O
623#
624# CONFIG_UIO is not set
625
626#
627# File systems
628#
629# CONFIG_EXT2_FS is not set
630# CONFIG_EXT3_FS is not set
631# CONFIG_EXT4DEV_FS is not set
632# CONFIG_REISERFS_FS is not set
633# CONFIG_JFS_FS is not set
634# CONFIG_FS_POSIX_ACL is not set
635# CONFIG_XFS_FS is not set
636# CONFIG_GFS2_FS is not set
637# CONFIG_OCFS2_FS is not set
638# CONFIG_MINIX_FS is not set
639# CONFIG_ROMFS_FS is not set
640# CONFIG_INOTIFY is not set
641# CONFIG_QUOTA is not set
642# CONFIG_DNOTIFY is not set
643# CONFIG_AUTOFS_FS is not set
644# CONFIG_AUTOFS4_FS is not set
645# CONFIG_FUSE_FS is not set
646
647#
648# CD-ROM/DVD Filesystems
649#
650# CONFIG_ISO9660_FS is not set
651# CONFIG_UDF_FS is not set
652
653#
654# DOS/FAT/NT Filesystems
655#
656# CONFIG_MSDOS_FS is not set
657# CONFIG_VFAT_FS is not set
658# CONFIG_NTFS_FS is not set
659
660#
661# Pseudo filesystems
662#
663CONFIG_PROC_FS=y
664# CONFIG_PROC_KCORE is not set
665CONFIG_PROC_SYSCTL=y
666CONFIG_SYSFS=y
667CONFIG_TMPFS=y
668# CONFIG_TMPFS_POSIX_ACL is not set
669# CONFIG_HUGETLB_PAGE is not set
670# CONFIG_CONFIGFS_FS is not set
671
672#
673# Miscellaneous filesystems
674#
675# CONFIG_ADFS_FS is not set
676# CONFIG_AFFS_FS is not set
677# CONFIG_HFS_FS is not set
678# CONFIG_HFSPLUS_FS is not set
679# CONFIG_BEFS_FS is not set
680# CONFIG_BFS_FS is not set
681# CONFIG_EFS_FS is not set
682# CONFIG_JFFS2_FS is not set
683CONFIG_CRAMFS=y
684# CONFIG_VXFS_FS is not set
685# CONFIG_HPFS_FS is not set
686# CONFIG_QNX4FS_FS is not set
687# CONFIG_SYSV_FS is not set
688# CONFIG_UFS_FS is not set
689CONFIG_NETWORK_FILESYSTEMS=y
690CONFIG_NFS_FS=y
691CONFIG_NFS_V3=y
692# CONFIG_NFS_V3_ACL is not set
693# CONFIG_NFS_V4 is not set
694# CONFIG_NFS_DIRECTIO is not set
695# CONFIG_NFSD is not set
696CONFIG_ROOT_NFS=y
697CONFIG_LOCKD=y
698CONFIG_LOCKD_V4=y
699CONFIG_NFS_COMMON=y
700CONFIG_SUNRPC=y
701# CONFIG_SUNRPC_BIND34 is not set
702# CONFIG_RPCSEC_GSS_KRB5 is not set
703# CONFIG_RPCSEC_GSS_SPKM3 is not set
704# CONFIG_SMB_FS is not set
705# CONFIG_CIFS is not set
706# CONFIG_NCP_FS is not set
707# CONFIG_CODA_FS is not set
708# CONFIG_AFS_FS is not set
709
710#
711# Partition Types
712#
713CONFIG_PARTITION_ADVANCED=y
714# CONFIG_ACORN_PARTITION is not set
715# CONFIG_OSF_PARTITION is not set
716# CONFIG_AMIGA_PARTITION is not set
717# CONFIG_ATARI_PARTITION is not set
718# CONFIG_MAC_PARTITION is not set
719CONFIG_MSDOS_PARTITION=y
720# CONFIG_BSD_DISKLABEL is not set
721# CONFIG_MINIX_SUBPARTITION is not set
722# CONFIG_SOLARIS_X86_PARTITION is not set
723# CONFIG_UNIXWARE_DISKLABEL is not set
724# CONFIG_LDM_PARTITION is not set
725# CONFIG_SGI_PARTITION is not set
726# CONFIG_ULTRIX_PARTITION is not set
727# CONFIG_SUN_PARTITION is not set
728# CONFIG_KARMA_PARTITION is not set
729# CONFIG_EFI_PARTITION is not set
730# CONFIG_SYSV68_PARTITION is not set
731# CONFIG_NLS is not set
732# CONFIG_DLM is not set
733# CONFIG_UCC_SLOW is not set
734
735#
736# Library routines
737#
738# CONFIG_CRC_CCITT is not set
739# CONFIG_CRC16 is not set
740# CONFIG_CRC_ITU_T is not set
741# CONFIG_CRC32 is not set
742# CONFIG_CRC7 is not set
743# CONFIG_LIBCRC32C is not set
744CONFIG_ZLIB_INFLATE=y
745CONFIG_HAS_IOMEM=y
746CONFIG_HAS_IOPORT=y
747CONFIG_HAS_DMA=y
748CONFIG_INSTRUMENTATION=y
749# CONFIG_PROFILING is not set
750# CONFIG_MARKERS is not set
751
752#
753# Kernel hacking
754#
755# CONFIG_PRINTK_TIME is not set
756CONFIG_ENABLE_WARN_DEPRECATED=y
757CONFIG_ENABLE_MUST_CHECK=y
758CONFIG_MAGIC_SYSRQ=y
759# CONFIG_UNUSED_SYMBOLS is not set
760# CONFIG_DEBUG_FS is not set
761# CONFIG_HEADERS_CHECK is not set
762CONFIG_DEBUG_KERNEL=y
763# CONFIG_DEBUG_SHIRQ is not set
764CONFIG_DETECT_SOFTLOCKUP=y
765CONFIG_SCHED_DEBUG=y
766# CONFIG_SCHEDSTATS is not set
767# CONFIG_TIMER_STATS is not set
768# CONFIG_SLUB_DEBUG_ON is not set
769# CONFIG_DEBUG_SPINLOCK is not set
770# CONFIG_DEBUG_MUTEXES is not set
771# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
772# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
773# CONFIG_DEBUG_KOBJECT is not set
774CONFIG_DEBUG_BUGVERBOSE=y
775CONFIG_DEBUG_INFO=y
776# CONFIG_DEBUG_VM is not set
777# CONFIG_DEBUG_LIST is not set
778# CONFIG_DEBUG_SG is not set
779CONFIG_FORCED_INLINING=y
780# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_FAULT_INJECTION is not set
782# CONFIG_SAMPLES is not set
783# CONFIG_DEBUG_STACKOVERFLOW is not set
784# CONFIG_DEBUG_STACK_USAGE is not set
785# CONFIG_DEBUG_PAGEALLOC is not set
786# CONFIG_DEBUGGER is not set
787# CONFIG_BDI_SWITCH is not set
788# CONFIG_PPC_EARLY_DEBUG is not set
789
790#
791# Security options
792#
793# CONFIG_KEYS is not set
794# CONFIG_SECURITY is not set
795# CONFIG_SECURITY_FILE_CAPABILITIES is not set
796# CONFIG_CRYPTO is not set
797# CONFIG_PPC_CLOCK is not set
798CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/adder875-redboot_defconfig b/arch/powerpc/configs/adder875_defconfig
index cab5f9b64567..a3cc94a2ff06 100644
--- a/arch/powerpc/configs/adder875-redboot_defconfig
+++ b/arch/powerpc/configs/adder875_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Thu Jan 17 16:17:38 2008 4# Wed Feb 20 12:26:07 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -64,17 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y
64# CONFIG_POSIX_MQUEUE is not set 65# CONFIG_POSIX_MQUEUE is not set
65# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 70CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 71# CONFIG_CGROUPS is not set
72CONFIG_GROUP_SCHED=y
73CONFIG_FAIR_GROUP_SCHED=y 73CONFIG_FAIR_GROUP_SCHED=y
74CONFIG_FAIR_USER_SCHED=y 74# CONFIG_RT_GROUP_SCHED is not set
75# CONFIG_FAIR_CGROUP_SCHED is not set 75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
77# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
78# CONFIG_BLK_DEV_INITRD is not set 80# CONFIG_BLK_DEV_INITRD is not set
79# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
80CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
@@ -87,11 +89,13 @@ CONFIG_HOTPLUG=y
87CONFIG_PRINTK=y 89CONFIG_PRINTK=y
88CONFIG_BUG=y 90CONFIG_BUG=y
89# CONFIG_ELF_CORE is not set 91# CONFIG_ELF_CORE is not set
92CONFIG_COMPAT_BRK=y
90# CONFIG_BASE_FULL is not set 93# CONFIG_BASE_FULL is not set
91# CONFIG_FUTEX is not set 94# CONFIG_FUTEX is not set
92CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
93CONFIG_EPOLL=y 96CONFIG_EPOLL=y
94CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
98CONFIG_TIMERFD=y
95CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
96CONFIG_SHMEM=y 100CONFIG_SHMEM=y
97# CONFIG_VM_EVENT_COUNTERS is not set 101# CONFIG_VM_EVENT_COUNTERS is not set
@@ -99,6 +103,12 @@ CONFIG_SLUB_DEBUG=y
99# CONFIG_SLAB is not set 103# CONFIG_SLAB is not set
100CONFIG_SLUB=y 104CONFIG_SLUB=y
101# CONFIG_SLOB is not set 105# CONFIG_SLOB is not set
106# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y
110CONFIG_PROC_PAGE_MONITOR=y
111CONFIG_SLABINFO=y
102# CONFIG_TINY_SHMEM is not set 112# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=1 113CONFIG_BASE_SMALL=1
104# CONFIG_MODULES is not set 114# CONFIG_MODULES is not set
@@ -120,12 +130,14 @@ CONFIG_DEFAULT_DEADLINE=y
120# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
121# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="deadline" 132CONFIG_DEFAULT_IOSCHED="deadline"
133CONFIG_CLASSIC_RCU=y
134# CONFIG_PREEMPT_RCU is not set
123 135
124# 136#
125# Platform support 137# Platform support
126# 138#
127# CONFIG_PPC_MPC52xx is not set 139# CONFIG_PPC_MPC512x is not set
128# CONFIG_PPC_MPC5200 is not set 140# CONFIG_PPC_MPC5121 is not set
129# CONFIG_PPC_CELL is not set 141# CONFIG_PPC_CELL is not set
130# CONFIG_PPC_CELL_NATIVE is not set 142# CONFIG_PPC_CELL_NATIVE is not set
131CONFIG_CPM1=y 143CONFIG_CPM1=y
@@ -150,6 +162,7 @@ CONFIG_NO_UCODE_PATCH=y
150# CONFIG_I2C_SPI_UCODE_PATCH is not set 162# CONFIG_I2C_SPI_UCODE_PATCH is not set
151# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set 163# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set
152# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
165# CONFIG_IPIC is not set
153# CONFIG_MPIC is not set 166# CONFIG_MPIC is not set
154# CONFIG_MPIC_WEIRD is not set 167# CONFIG_MPIC_WEIRD is not set
155# CONFIG_PPC_I8259 is not set 168# CONFIG_PPC_I8259 is not set
@@ -160,7 +173,6 @@ CONFIG_NO_UCODE_PATCH=y
160# CONFIG_PPC_INDIRECT_IO is not set 173# CONFIG_PPC_INDIRECT_IO is not set
161# CONFIG_GENERIC_IOMAP is not set 174# CONFIG_GENERIC_IOMAP is not set
162# CONFIG_CPU_FREQ is not set 175# CONFIG_CPU_FREQ is not set
163# CONFIG_CPM2 is not set
164CONFIG_PPC_CPM_NEW_BINDING=y 176CONFIG_PPC_CPM_NEW_BINDING=y
165# CONFIG_FSL_ULI1575 is not set 177# CONFIG_FSL_ULI1575 is not set
166CONFIG_CPM=y 178CONFIG_CPM=y
@@ -178,14 +190,19 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
178# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
179CONFIG_HZ_1000=y 191CONFIG_HZ_1000=y
180CONFIG_HZ=1000 192CONFIG_HZ=1000
193# CONFIG_SCHED_HRTICK is not set
181CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
197CONFIG_RCU_TRACE=y
184CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
185# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
186# CONFIG_MATH_EMULATION is not set 200# CONFIG_MATH_EMULATION is not set
187# CONFIG_8XX_MINIMAL_FPEMU is not set 201# CONFIG_8XX_MINIMAL_FPEMU is not set
202# CONFIG_IOMMU_HELPER is not set
188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 203CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
204CONFIG_ARCH_HAS_WALK_MEMORY=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
189CONFIG_ARCH_FLATMEM_ENABLE=y 206CONFIG_ARCH_FLATMEM_ENABLE=y
190CONFIG_ARCH_POPULATES_NODE_MAP=y 207CONFIG_ARCH_POPULATES_NODE_MAP=y
191CONFIG_SELECT_MEMORY_MODEL=y 208CONFIG_SELECT_MEMORY_MODEL=y
@@ -204,11 +221,7 @@ CONFIG_VIRT_TO_BUS=y
204# CONFIG_PROC_DEVICETREE is not set 221# CONFIG_PROC_DEVICETREE is not set
205# CONFIG_CMDLINE_BOOL is not set 222# CONFIG_CMDLINE_BOOL is not set
206# CONFIG_PM is not set 223# CONFIG_PM is not set
207CONFIG_SUSPEND_UP_POSSIBLE=y
208CONFIG_HIBERNATION_UP_POSSIBLE=y
209# CONFIG_SECCOMP is not set 224# CONFIG_SECCOMP is not set
210CONFIG_WANT_DEVICE_TREE=y
211CONFIG_DEVICE_TREE="adder875-redboot.dts"
212CONFIG_ISA_DMA_API=y 225CONFIG_ISA_DMA_API=y
213 226
214# 227#
@@ -305,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 318#
306# CONFIG_NET_PKTGEN is not set 319# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 320# CONFIG_HAMRADIO is not set
321# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 322# CONFIG_IRDA is not set
309# CONFIG_BT is not set 323# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 324# CONFIG_AF_RXRPC is not set
@@ -411,6 +425,7 @@ CONFIG_OF_DEVICE=y
411# CONFIG_PARPORT is not set 425# CONFIG_PARPORT is not set
412# CONFIG_BLK_DEV is not set 426# CONFIG_BLK_DEV is not set
413# CONFIG_MISC_DEVICES is not set 427# CONFIG_MISC_DEVICES is not set
428CONFIG_HAVE_IDE=y
414# CONFIG_IDE is not set 429# CONFIG_IDE is not set
415 430
416# 431#
@@ -445,6 +460,7 @@ CONFIG_DAVICOM_PHY=y
445# CONFIG_SMSC_PHY is not set 460# CONFIG_SMSC_PHY is not set
446# CONFIG_BROADCOM_PHY is not set 461# CONFIG_BROADCOM_PHY is not set
447# CONFIG_ICPLUS_PHY is not set 462# CONFIG_ICPLUS_PHY is not set
463# CONFIG_REALTEK_PHY is not set
448# CONFIG_FIXED_PHY is not set 464# CONFIG_FIXED_PHY is not set
449# CONFIG_MDIO_BITBANG is not set 465# CONFIG_MDIO_BITBANG is not set
450CONFIG_NET_ETHERNET=y 466CONFIG_NET_ETHERNET=y
@@ -469,7 +485,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
469# CONFIG_WAN is not set 485# CONFIG_WAN is not set
470# CONFIG_PPP is not set 486# CONFIG_PPP is not set
471# CONFIG_SLIP is not set 487# CONFIG_SLIP is not set
472# CONFIG_SHAPER is not set
473# CONFIG_NETCONSOLE is not set 488# CONFIG_NETCONSOLE is not set
474# CONFIG_NETPOLL is not set 489# CONFIG_NETPOLL is not set
475# CONFIG_NET_POLL_CONTROLLER is not set 490# CONFIG_NET_POLL_CONTROLLER is not set
@@ -574,6 +589,7 @@ CONFIG_GEN_RTC=y
574# CONFIG_W1 is not set 589# CONFIG_W1 is not set
575# CONFIG_POWER_SUPPLY is not set 590# CONFIG_POWER_SUPPLY is not set
576# CONFIG_HWMON is not set 591# CONFIG_HWMON is not set
592CONFIG_THERMAL=y
577# CONFIG_WATCHDOG is not set 593# CONFIG_WATCHDOG is not set
578 594
579# 595#
@@ -614,6 +630,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
614# CONFIG_HID_SUPPORT is not set 630# CONFIG_HID_SUPPORT is not set
615# CONFIG_USB_SUPPORT is not set 631# CONFIG_USB_SUPPORT is not set
616# CONFIG_MMC is not set 632# CONFIG_MMC is not set
633# CONFIG_MEMSTICK is not set
617# CONFIG_NEW_LEDS is not set 634# CONFIG_NEW_LEDS is not set
618# CONFIG_EDAC is not set 635# CONFIG_EDAC is not set
619# CONFIG_RTC_CLASS is not set 636# CONFIG_RTC_CLASS is not set
@@ -635,11 +652,9 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
635# CONFIG_XFS_FS is not set 652# CONFIG_XFS_FS is not set
636# CONFIG_GFS2_FS is not set 653# CONFIG_GFS2_FS is not set
637# CONFIG_OCFS2_FS is not set 654# CONFIG_OCFS2_FS is not set
638# CONFIG_MINIX_FS is not set 655# CONFIG_DNOTIFY is not set
639# CONFIG_ROMFS_FS is not set
640# CONFIG_INOTIFY is not set 656# CONFIG_INOTIFY is not set
641# CONFIG_QUOTA is not set 657# CONFIG_QUOTA is not set
642# CONFIG_DNOTIFY is not set
643# CONFIG_AUTOFS_FS is not set 658# CONFIG_AUTOFS_FS is not set
644# CONFIG_AUTOFS4_FS is not set 659# CONFIG_AUTOFS4_FS is not set
645# CONFIG_FUSE_FS is not set 660# CONFIG_FUSE_FS is not set
@@ -682,8 +697,10 @@ CONFIG_TMPFS=y
682# CONFIG_JFFS2_FS is not set 697# CONFIG_JFFS2_FS is not set
683CONFIG_CRAMFS=y 698CONFIG_CRAMFS=y
684# CONFIG_VXFS_FS is not set 699# CONFIG_VXFS_FS is not set
700# CONFIG_MINIX_FS is not set
685# CONFIG_HPFS_FS is not set 701# CONFIG_HPFS_FS is not set
686# CONFIG_QNX4FS_FS is not set 702# CONFIG_QNX4FS_FS is not set
703# CONFIG_ROMFS_FS is not set
687# CONFIG_SYSV_FS is not set 704# CONFIG_SYSV_FS is not set
688# CONFIG_UFS_FS is not set 705# CONFIG_UFS_FS is not set
689CONFIG_NETWORK_FILESYSTEMS=y 706CONFIG_NETWORK_FILESYSTEMS=y
@@ -730,7 +747,6 @@ CONFIG_MSDOS_PARTITION=y
730# CONFIG_SYSV68_PARTITION is not set 747# CONFIG_SYSV68_PARTITION is not set
731# CONFIG_NLS is not set 748# CONFIG_NLS is not set
732# CONFIG_DLM is not set 749# CONFIG_DLM is not set
733# CONFIG_UCC_SLOW is not set
734 750
735# 751#
736# Library routines 752# Library routines
@@ -745,9 +761,6 @@ CONFIG_ZLIB_INFLATE=y
745CONFIG_HAS_IOMEM=y 761CONFIG_HAS_IOMEM=y
746CONFIG_HAS_IOPORT=y 762CONFIG_HAS_IOPORT=y
747CONFIG_HAS_DMA=y 763CONFIG_HAS_DMA=y
748CONFIG_INSTRUMENTATION=y
749# CONFIG_PROFILING is not set
750# CONFIG_MARKERS is not set
751 764
752# 765#
753# Kernel hacking 766# Kernel hacking
@@ -757,7 +770,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
757CONFIG_ENABLE_MUST_CHECK=y 770CONFIG_ENABLE_MUST_CHECK=y
758CONFIG_MAGIC_SYSRQ=y 771CONFIG_MAGIC_SYSRQ=y
759# CONFIG_UNUSED_SYMBOLS is not set 772# CONFIG_UNUSED_SYMBOLS is not set
760# CONFIG_DEBUG_FS is not set 773CONFIG_DEBUG_FS=y
761# CONFIG_HEADERS_CHECK is not set 774# CONFIG_HEADERS_CHECK is not set
762CONFIG_DEBUG_KERNEL=y 775CONFIG_DEBUG_KERNEL=y
763# CONFIG_DEBUG_SHIRQ is not set 776# CONFIG_DEBUG_SHIRQ is not set
@@ -766,6 +779,7 @@ CONFIG_SCHED_DEBUG=y
766# CONFIG_SCHEDSTATS is not set 779# CONFIG_SCHEDSTATS is not set
767# CONFIG_TIMER_STATS is not set 780# CONFIG_TIMER_STATS is not set
768# CONFIG_SLUB_DEBUG_ON is not set 781# CONFIG_SLUB_DEBUG_ON is not set
782# CONFIG_SLUB_STATS is not set
769# CONFIG_DEBUG_SPINLOCK is not set 783# CONFIG_DEBUG_SPINLOCK is not set
770# CONFIG_DEBUG_MUTEXES is not set 784# CONFIG_DEBUG_MUTEXES is not set
771# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 785# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
@@ -776,14 +790,15 @@ CONFIG_DEBUG_INFO=y
776# CONFIG_DEBUG_VM is not set 790# CONFIG_DEBUG_VM is not set
777# CONFIG_DEBUG_LIST is not set 791# CONFIG_DEBUG_LIST is not set
778# CONFIG_DEBUG_SG is not set 792# CONFIG_DEBUG_SG is not set
779CONFIG_FORCED_INLINING=y
780# CONFIG_BOOT_PRINTK_DELAY is not set 793# CONFIG_BOOT_PRINTK_DELAY is not set
794# CONFIG_BACKTRACE_SELF_TEST is not set
781# CONFIG_FAULT_INJECTION is not set 795# CONFIG_FAULT_INJECTION is not set
782# CONFIG_SAMPLES is not set 796# CONFIG_SAMPLES is not set
783# CONFIG_DEBUG_STACKOVERFLOW is not set 797# CONFIG_DEBUG_STACKOVERFLOW is not set
784# CONFIG_DEBUG_STACK_USAGE is not set 798# CONFIG_DEBUG_STACK_USAGE is not set
785# CONFIG_DEBUG_PAGEALLOC is not set 799# CONFIG_DEBUG_PAGEALLOC is not set
786# CONFIG_DEBUGGER is not set 800# CONFIG_DEBUGGER is not set
801# CONFIG_VIRQ_DEBUG is not set
787# CONFIG_BDI_SWITCH is not set 802# CONFIG_BDI_SWITCH is not set
788# CONFIG_PPC_EARLY_DEBUG is not set 803# CONFIG_PPC_EARLY_DEBUG is not set
789 804
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index f3bde8c6c8c6..c420e47426f8 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:05 2007 4# Thu Mar 20 10:31:04 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -69,8 +70,6 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_POSIX_MQUEUE is not set 70# CONFIG_POSIX_MQUEUE is not set
70# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
71# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
72# CONFIG_USER_NS is not set
73# CONFIG_PID_NS is not set
74# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
@@ -79,13 +78,20 @@ CONFIG_CGROUPS=y
79# CONFIG_CGROUP_DEBUG is not set 78# CONFIG_CGROUP_DEBUG is not set
80# CONFIG_CGROUP_NS is not set 79# CONFIG_CGROUP_NS is not set
81CONFIG_CPUSETS=y 80CONFIG_CPUSETS=y
82CONFIG_FAIR_GROUP_SCHED=y 81# CONFIG_GROUP_SCHED is not set
83CONFIG_FAIR_USER_SCHED=y 82# CONFIG_USER_SCHED is not set
84# CONFIG_FAIR_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUP_CPUACCT is not set 84# CONFIG_CGROUP_CPUACCT is not set
85# CONFIG_RESOURCE_COUNTERS is not set
86CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y
87CONFIG_PROC_PID_CPUSET=y 88CONFIG_PROC_PID_CPUSET=y
88# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
90CONFIG_NAMESPACES=y
91# CONFIG_UTS_NS is not set
92# CONFIG_IPC_NS is not set
93# CONFIG_USER_NS is not set
94# CONFIG_PID_NS is not set
89CONFIG_BLK_DEV_INITRD=y 95CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 96CONFIG_INITRAMFS_SOURCE=""
91CONFIG_CC_OPTIMIZE_FOR_SIZE=y 97CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -99,11 +105,13 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 105CONFIG_PRINTK=y
100CONFIG_BUG=y 106CONFIG_BUG=y
101CONFIG_ELF_CORE=y 107CONFIG_ELF_CORE=y
108# CONFIG_COMPAT_BRK is not set
102CONFIG_BASE_FULL=y 109CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 110CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
105CONFIG_EPOLL=y 112CONFIG_EPOLL=y
106CONFIG_SIGNALFD=y 113CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 115CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 116CONFIG_SHMEM=y
109CONFIG_VM_EVENT_COUNTERS=y 117CONFIG_VM_EVENT_COUNTERS=y
@@ -111,6 +119,15 @@ CONFIG_SLUB_DEBUG=y
111# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
112CONFIG_SLUB=y 120CONFIG_SLUB=y
113# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
122CONFIG_PROFILING=y
123# CONFIG_MARKERS is not set
124CONFIG_OPROFILE=m
125CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set
127CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y
129CONFIG_PROC_PAGE_MONITOR=y
130CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
116CONFIG_BASE_SMALL=0 133CONFIG_BASE_SMALL=0
@@ -138,6 +155,7 @@ CONFIG_DEFAULT_AS=y
138# CONFIG_DEFAULT_CFQ is not set 155# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 156# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="anticipatory" 157CONFIG_DEFAULT_IOSCHED="anticipatory"
158CONFIG_CLASSIC_RCU=y
141 159
142# 160#
143# Platform support 161# Platform support
@@ -148,8 +166,8 @@ CONFIG_PPC_MULTIPLATFORM=y
148# CONFIG_PPC_86xx is not set 166# CONFIG_PPC_86xx is not set
149# CONFIG_PPC_PSERIES is not set 167# CONFIG_PPC_PSERIES is not set
150# CONFIG_PPC_ISERIES is not set 168# CONFIG_PPC_ISERIES is not set
151# CONFIG_PPC_MPC52xx is not set 169# CONFIG_PPC_MPC512x is not set
152# CONFIG_PPC_MPC5200 is not set 170# CONFIG_PPC_MPC5121 is not set
153# CONFIG_PPC_PMAC is not set 171# CONFIG_PPC_PMAC is not set
154# CONFIG_PPC_MAPLE is not set 172# CONFIG_PPC_MAPLE is not set
155# CONFIG_PPC_PASEMI is not set 173# CONFIG_PPC_PASEMI is not set
@@ -162,14 +180,14 @@ CONFIG_PPC_PS3=y
162# CONFIG_PS3_ADVANCED is not set 180# CONFIG_PS3_ADVANCED is not set
163CONFIG_PS3_HTAB_SIZE=20 181CONFIG_PS3_HTAB_SIZE=20
164# CONFIG_PS3_DYNAMIC_DMA is not set 182# CONFIG_PS3_DYNAMIC_DMA is not set
165CONFIG_PS3_USE_LPAR_ADDR=y
166CONFIG_PS3_VUART=y 183CONFIG_PS3_VUART=y
167CONFIG_PS3_PS3AV=y 184CONFIG_PS3_PS3AV=y
168CONFIG_PS3_SYS_MANAGER=m 185CONFIG_PS3_SYS_MANAGER=y
169CONFIG_PS3_STORAGE=y 186CONFIG_PS3_STORAGE=y
170CONFIG_PS3_DISK=y 187CONFIG_PS3_DISK=y
171CONFIG_PS3_ROM=m 188CONFIG_PS3_ROM=m
172CONFIG_PS3_FLASH=m 189CONFIG_PS3_FLASH=m
190CONFIG_PS3_LPM=m
173CONFIG_PPC_CELL=y 191CONFIG_PPC_CELL=y
174CONFIG_PPC_CELL_NATIVE=y 192CONFIG_PPC_CELL_NATIVE=y
175CONFIG_PPC_IBM_CELL_BLADE=y 193CONFIG_PPC_IBM_CELL_BLADE=y
@@ -183,10 +201,12 @@ CONFIG_CBE_RAS=y
183CONFIG_CBE_THERM=m 201CONFIG_CBE_THERM=m
184CONFIG_CBE_CPUFREQ=m 202CONFIG_CBE_CPUFREQ=m
185CONFIG_CBE_CPUFREQ_PMI=m 203CONFIG_CBE_CPUFREQ_PMI=m
204CONFIG_OPROFILE_CELL=y
186# CONFIG_PQ2ADS is not set 205# CONFIG_PQ2ADS is not set
187CONFIG_PPC_NATIVE=y 206CONFIG_PPC_NATIVE=y
188CONFIG_UDBG_RTAS_CONSOLE=y 207CONFIG_UDBG_RTAS_CONSOLE=y
189CONFIG_PPC_UDBG_BEAT=y 208CONFIG_PPC_UDBG_BEAT=y
209# CONFIG_IPIC is not set
190CONFIG_MPIC=y 210CONFIG_MPIC=y
191# CONFIG_MPIC_WEIRD is not set 211# CONFIG_MPIC_WEIRD is not set
192# CONFIG_PPC_I8259 is not set 212# CONFIG_PPC_I8259 is not set
@@ -219,7 +239,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
219# 239#
220# CPU Frequency drivers 240# CPU Frequency drivers
221# 241#
222# CONFIG_CPM2 is not set
223CONFIG_AXON_RAM=m 242CONFIG_AXON_RAM=m
224# CONFIG_FSL_ULI1575 is not set 243# CONFIG_FSL_ULI1575 is not set
225 244
@@ -235,16 +254,20 @@ CONFIG_HZ_250=y
235# CONFIG_HZ_300 is not set 254# CONFIG_HZ_300 is not set
236# CONFIG_HZ_1000 is not set 255# CONFIG_HZ_1000 is not set
237CONFIG_HZ=250 256CONFIG_HZ=250
257# CONFIG_SCHED_HRTICK is not set
238CONFIG_PREEMPT_NONE=y 258CONFIG_PREEMPT_NONE=y
239# CONFIG_PREEMPT_VOLUNTARY is not set 259# CONFIG_PREEMPT_VOLUNTARY is not set
240# CONFIG_PREEMPT is not set 260# CONFIG_PREEMPT is not set
241CONFIG_PREEMPT_BKL=y
242CONFIG_BINFMT_ELF=y 261CONFIG_BINFMT_ELF=y
262CONFIG_COMPAT_BINFMT_ELF=y
243CONFIG_BINFMT_MISC=m 263CONFIG_BINFMT_MISC=m
244CONFIG_FORCE_MAX_ZONEORDER=9 264CONFIG_FORCE_MAX_ZONEORDER=9
245CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 265CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
246# CONFIG_IOMMU_VMERGE is not set 266# CONFIG_IOMMU_VMERGE is not set
267CONFIG_IOMMU_HELPER=y
247CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 268CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
269CONFIG_ARCH_HAS_WALK_MEMORY=y
270CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
248# CONFIG_KEXEC is not set 271# CONFIG_KEXEC is not set
249# CONFIG_CRASH_DUMP is not set 272# CONFIG_CRASH_DUMP is not set
250CONFIG_IRQ_ALL_CPUS=y 273CONFIG_IRQ_ALL_CPUS=y
@@ -267,6 +290,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
267CONFIG_SPARSEMEM_VMEMMAP=y 290CONFIG_SPARSEMEM_VMEMMAP=y
268CONFIG_MEMORY_HOTPLUG=y 291CONFIG_MEMORY_HOTPLUG=y
269CONFIG_MEMORY_HOTPLUG_SPARSE=y 292CONFIG_MEMORY_HOTPLUG_SPARSE=y
293CONFIG_MEMORY_HOTREMOVE=y
270CONFIG_SPLIT_PTLOCK_CPUS=4 294CONFIG_SPLIT_PTLOCK_CPUS=4
271CONFIG_MIGRATION=y 295CONFIG_MIGRATION=y
272CONFIG_RESOURCES_64BIT=y 296CONFIG_RESOURCES_64BIT=y
@@ -276,12 +300,12 @@ CONFIG_ARCH_MEMORY_PROBE=y
276CONFIG_NODES_SPAN_OTHER_NODES=y 300CONFIG_NODES_SPAN_OTHER_NODES=y
277CONFIG_PPC_HAS_HASH_64K=y 301CONFIG_PPC_HAS_HASH_64K=y
278CONFIG_PPC_64K_PAGES=y 302CONFIG_PPC_64K_PAGES=y
303# CONFIG_PPC_SUBPAGE_PROT is not set
279CONFIG_SCHED_SMT=y 304CONFIG_SCHED_SMT=y
280CONFIG_PROC_DEVICETREE=y 305CONFIG_PROC_DEVICETREE=y
281# CONFIG_CMDLINE_BOOL is not set 306# CONFIG_CMDLINE_BOOL is not set
282# CONFIG_PM is not set 307# CONFIG_PM is not set
283CONFIG_SECCOMP=y 308CONFIG_SECCOMP=y
284# CONFIG_WANT_DEVICE_TREE is not set
285CONFIG_ISA_DMA_API=y 309CONFIG_ISA_DMA_API=y
286 310
287# 311#
@@ -318,6 +342,7 @@ CONFIG_XFRM=y
318# CONFIG_XFRM_USER is not set 342# CONFIG_XFRM_USER is not set
319# CONFIG_XFRM_SUB_POLICY is not set 343# CONFIG_XFRM_SUB_POLICY is not set
320# CONFIG_XFRM_MIGRATE is not set 344# CONFIG_XFRM_MIGRATE is not set
345# CONFIG_XFRM_STATISTICS is not set
321# CONFIG_NET_KEY is not set 346# CONFIG_NET_KEY is not set
322CONFIG_INET=y 347CONFIG_INET=y
323CONFIG_IP_MULTICAST=y 348CONFIG_IP_MULTICAST=y
@@ -368,6 +393,7 @@ CONFIG_IPV6_TUNNEL=m
368# CONFIG_NETWORK_SECMARK is not set 393# CONFIG_NETWORK_SECMARK is not set
369CONFIG_NETFILTER=y 394CONFIG_NETFILTER=y
370# CONFIG_NETFILTER_DEBUG is not set 395# CONFIG_NETFILTER_DEBUG is not set
396CONFIG_NETFILTER_ADVANCED=y
371 397
372# 398#
373# Core Netfilter Configuration 399# Core Netfilter Configuration
@@ -375,7 +401,6 @@ CONFIG_NETFILTER=y
375CONFIG_NETFILTER_NETLINK=m 401CONFIG_NETFILTER_NETLINK=m
376CONFIG_NETFILTER_NETLINK_QUEUE=m 402CONFIG_NETFILTER_NETLINK_QUEUE=m
377CONFIG_NETFILTER_NETLINK_LOG=m 403CONFIG_NETFILTER_NETLINK_LOG=m
378# CONFIG_NF_CONNTRACK_ENABLED is not set
379# CONFIG_NF_CONNTRACK is not set 404# CONFIG_NF_CONNTRACK is not set
380CONFIG_NETFILTER_XTABLES=m 405CONFIG_NETFILTER_XTABLES=m
381CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 406CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
@@ -383,20 +408,25 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
383CONFIG_NETFILTER_XT_TARGET_MARK=m 408CONFIG_NETFILTER_XT_TARGET_MARK=m
384CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 409CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
385CONFIG_NETFILTER_XT_TARGET_NFLOG=m 410CONFIG_NETFILTER_XT_TARGET_NFLOG=m
411CONFIG_NETFILTER_XT_TARGET_RATEEST=m
386# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 412# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
387CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 413CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
414CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
388CONFIG_NETFILTER_XT_MATCH_COMMENT=m 415CONFIG_NETFILTER_XT_MATCH_COMMENT=m
389CONFIG_NETFILTER_XT_MATCH_DCCP=m 416CONFIG_NETFILTER_XT_MATCH_DCCP=m
390CONFIG_NETFILTER_XT_MATCH_DSCP=m 417CONFIG_NETFILTER_XT_MATCH_DSCP=m
391CONFIG_NETFILTER_XT_MATCH_ESP=m 418CONFIG_NETFILTER_XT_MATCH_ESP=m
419CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
392CONFIG_NETFILTER_XT_MATCH_LENGTH=m 420CONFIG_NETFILTER_XT_MATCH_LENGTH=m
393CONFIG_NETFILTER_XT_MATCH_LIMIT=m 421CONFIG_NETFILTER_XT_MATCH_LIMIT=m
394CONFIG_NETFILTER_XT_MATCH_MAC=m 422CONFIG_NETFILTER_XT_MATCH_MAC=m
395CONFIG_NETFILTER_XT_MATCH_MARK=m 423CONFIG_NETFILTER_XT_MATCH_MARK=m
424CONFIG_NETFILTER_XT_MATCH_OWNER=m
396CONFIG_NETFILTER_XT_MATCH_POLICY=m 425CONFIG_NETFILTER_XT_MATCH_POLICY=m
397CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 426CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
398CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 427CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
399CONFIG_NETFILTER_XT_MATCH_QUOTA=m 428CONFIG_NETFILTER_XT_MATCH_QUOTA=m
429CONFIG_NETFILTER_XT_MATCH_RATEEST=m
400CONFIG_NETFILTER_XT_MATCH_REALM=m 430CONFIG_NETFILTER_XT_MATCH_REALM=m
401CONFIG_NETFILTER_XT_MATCH_SCTP=m 431CONFIG_NETFILTER_XT_MATCH_SCTP=m
402CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 432CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -411,20 +441,16 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
411# 441#
412CONFIG_IP_NF_QUEUE=m 442CONFIG_IP_NF_QUEUE=m
413CONFIG_IP_NF_IPTABLES=m 443CONFIG_IP_NF_IPTABLES=m
414CONFIG_IP_NF_MATCH_IPRANGE=m
415CONFIG_IP_NF_MATCH_TOS=m
416CONFIG_IP_NF_MATCH_RECENT=m 444CONFIG_IP_NF_MATCH_RECENT=m
417CONFIG_IP_NF_MATCH_ECN=m 445CONFIG_IP_NF_MATCH_ECN=m
418CONFIG_IP_NF_MATCH_AH=m 446CONFIG_IP_NF_MATCH_AH=m
419CONFIG_IP_NF_MATCH_TTL=m 447CONFIG_IP_NF_MATCH_TTL=m
420CONFIG_IP_NF_MATCH_OWNER=m
421CONFIG_IP_NF_MATCH_ADDRTYPE=m 448CONFIG_IP_NF_MATCH_ADDRTYPE=m
422CONFIG_IP_NF_FILTER=m 449CONFIG_IP_NF_FILTER=m
423CONFIG_IP_NF_TARGET_REJECT=m 450CONFIG_IP_NF_TARGET_REJECT=m
424CONFIG_IP_NF_TARGET_LOG=m 451CONFIG_IP_NF_TARGET_LOG=m
425CONFIG_IP_NF_TARGET_ULOG=m 452CONFIG_IP_NF_TARGET_ULOG=m
426CONFIG_IP_NF_MANGLE=m 453CONFIG_IP_NF_MANGLE=m
427CONFIG_IP_NF_TARGET_TOS=m
428CONFIG_IP_NF_TARGET_ECN=m 454CONFIG_IP_NF_TARGET_ECN=m
429CONFIG_IP_NF_TARGET_TTL=m 455CONFIG_IP_NF_TARGET_TTL=m
430CONFIG_IP_NF_RAW=m 456CONFIG_IP_NF_RAW=m
@@ -433,7 +459,7 @@ CONFIG_IP_NF_ARPFILTER=m
433CONFIG_IP_NF_ARP_MANGLE=m 459CONFIG_IP_NF_ARP_MANGLE=m
434 460
435# 461#
436# IPv6: Netfilter Configuration (EXPERIMENTAL) 462# IPv6: Netfilter Configuration
437# 463#
438# CONFIG_IP6_NF_QUEUE is not set 464# CONFIG_IP6_NF_QUEUE is not set
439# CONFIG_IP6_NF_IPTABLES is not set 465# CONFIG_IP6_NF_IPTABLES is not set
@@ -459,6 +485,7 @@ CONFIG_NET_CLS_ROUTE=y
459# 485#
460# CONFIG_NET_PKTGEN is not set 486# CONFIG_NET_PKTGEN is not set
461# CONFIG_HAMRADIO is not set 487# CONFIG_HAMRADIO is not set
488# CONFIG_CAN is not set
462# CONFIG_IRDA is not set 489# CONFIG_IRDA is not set
463# CONFIG_BT is not set 490# CONFIG_BT is not set
464# CONFIG_AF_RXRPC is not set 491# CONFIG_AF_RXRPC is not set
@@ -467,7 +494,7 @@ CONFIG_NET_CLS_ROUTE=y
467# Wireless 494# Wireless
468# 495#
469# CONFIG_CFG80211 is not set 496# CONFIG_CFG80211 is not set
470# CONFIG_WIRELESS_EXT is not set 497CONFIG_WIRELESS_EXT=y
471# CONFIG_MAC80211 is not set 498# CONFIG_MAC80211 is not set
472# CONFIG_IEEE80211 is not set 499# CONFIG_IEEE80211 is not set
473# CONFIG_RFKILL is not set 500# CONFIG_RFKILL is not set
@@ -505,7 +532,7 @@ CONFIG_BLK_DEV_LOOP=y
505CONFIG_BLK_DEV_RAM=y 532CONFIG_BLK_DEV_RAM=y
506CONFIG_BLK_DEV_RAM_COUNT=16 533CONFIG_BLK_DEV_RAM_COUNT=16
507CONFIG_BLK_DEV_RAM_SIZE=131072 534CONFIG_BLK_DEV_RAM_SIZE=131072
508CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 535# CONFIG_BLK_DEV_XIP is not set
509# CONFIG_CDROM_PKTCDVD is not set 536# CONFIG_CDROM_PKTCDVD is not set
510# CONFIG_ATA_OVER_ETH is not set 537# CONFIG_ATA_OVER_ETH is not set
511CONFIG_MISC_DEVICES=y 538CONFIG_MISC_DEVICES=y
@@ -513,11 +540,13 @@ CONFIG_MISC_DEVICES=y
513# CONFIG_EEPROM_93CX6 is not set 540# CONFIG_EEPROM_93CX6 is not set
514# CONFIG_SGI_IOC4 is not set 541# CONFIG_SGI_IOC4 is not set
515# CONFIG_TIFM_CORE is not set 542# CONFIG_TIFM_CORE is not set
543# CONFIG_ENCLOSURE_SERVICES is not set
544CONFIG_HAVE_IDE=y
516CONFIG_IDE=y 545CONFIG_IDE=y
517CONFIG_BLK_DEV_IDE=y 546CONFIG_BLK_DEV_IDE=y
518 547
519# 548#
520# Please see Documentation/ide.txt for help/info on IDE drives 549# Please see Documentation/ide/ide.txt for help/info on IDE drives
521# 550#
522# CONFIG_BLK_DEV_IDE_SATA is not set 551# CONFIG_BLK_DEV_IDE_SATA is not set
523CONFIG_BLK_DEV_IDEDISK=y 552CONFIG_BLK_DEV_IDEDISK=y
@@ -534,12 +563,12 @@ CONFIG_IDE_PROC_FS=y
534# 563#
535CONFIG_IDE_GENERIC=y 564CONFIG_IDE_GENERIC=y
536# CONFIG_BLK_DEV_PLATFORM is not set 565# CONFIG_BLK_DEV_PLATFORM is not set
566CONFIG_BLK_DEV_IDEDMA_SFF=y
537 567
538# 568#
539# PCI IDE chipsets support 569# PCI IDE chipsets support
540# 570#
541CONFIG_BLK_DEV_IDEPCI=y 571CONFIG_BLK_DEV_IDEPCI=y
542CONFIG_IDEPCI_SHARE_IRQ=y
543CONFIG_IDEPCI_PCIBUS_ORDER=y 572CONFIG_IDEPCI_PCIBUS_ORDER=y
544# CONFIG_BLK_DEV_OFFBOARD is not set 573# CONFIG_BLK_DEV_OFFBOARD is not set
545CONFIG_BLK_DEV_GENERIC=y 574CONFIG_BLK_DEV_GENERIC=y
@@ -571,7 +600,6 @@ CONFIG_BLK_DEV_SIIMAGE=y
571# CONFIG_BLK_DEV_VIA82CXXX is not set 600# CONFIG_BLK_DEV_VIA82CXXX is not set
572# CONFIG_BLK_DEV_TC86C001 is not set 601# CONFIG_BLK_DEV_TC86C001 is not set
573CONFIG_BLK_DEV_CELLEB=y 602CONFIG_BLK_DEV_CELLEB=y
574# CONFIG_IDE_ARM is not set
575CONFIG_BLK_DEV_IDEDMA=y 603CONFIG_BLK_DEV_IDEDMA=y
576CONFIG_IDE_ARCH_OBSOLETE_INIT=y 604CONFIG_IDE_ARCH_OBSOLETE_INIT=y
577# CONFIG_BLK_DEV_HD is not set 605# CONFIG_BLK_DEV_HD is not set
@@ -637,6 +665,7 @@ CONFIG_SCSI_LOWLEVEL=y
637# CONFIG_SCSI_IPS is not set 665# CONFIG_SCSI_IPS is not set
638# CONFIG_SCSI_INITIO is not set 666# CONFIG_SCSI_INITIO is not set
639# CONFIG_SCSI_INIA100 is not set 667# CONFIG_SCSI_INIA100 is not set
668# CONFIG_SCSI_MVSAS is not set
640# CONFIG_SCSI_STEX is not set 669# CONFIG_SCSI_STEX is not set
641# CONFIG_SCSI_SYM53C8XX_2 is not set 670# CONFIG_SCSI_SYM53C8XX_2 is not set
642# CONFIG_SCSI_IPR is not set 671# CONFIG_SCSI_IPR is not set
@@ -689,6 +718,7 @@ CONFIG_SATA_PROMISE=y
689# CONFIG_PATA_MPIIX is not set 718# CONFIG_PATA_MPIIX is not set
690# CONFIG_PATA_OLDPIIX is not set 719# CONFIG_PATA_OLDPIIX is not set
691# CONFIG_PATA_NETCELL is not set 720# CONFIG_PATA_NETCELL is not set
721# CONFIG_PATA_NINJA32 is not set
692# CONFIG_PATA_NS87410 is not set 722# CONFIG_PATA_NS87410 is not set
693# CONFIG_PATA_NS87415 is not set 723# CONFIG_PATA_NS87415 is not set
694# CONFIG_PATA_OPTI is not set 724# CONFIG_PATA_OPTI is not set
@@ -703,6 +733,7 @@ CONFIG_PATA_PDC2027X=m
703# CONFIG_PATA_SIS is not set 733# CONFIG_PATA_SIS is not set
704# CONFIG_PATA_VIA is not set 734# CONFIG_PATA_VIA is not set
705# CONFIG_PATA_WINBOND is not set 735# CONFIG_PATA_WINBOND is not set
736# CONFIG_PATA_PLATFORM is not set
706# CONFIG_PATA_SCC is not set 737# CONFIG_PATA_SCC is not set
707CONFIG_MD=y 738CONFIG_MD=y
708CONFIG_BLK_DEV_MD=m 739CONFIG_BLK_DEV_MD=m
@@ -748,7 +779,6 @@ CONFIG_MACVLAN=m
748# CONFIG_EQUALIZER is not set 779# CONFIG_EQUALIZER is not set
749CONFIG_TUN=y 780CONFIG_TUN=y
750# CONFIG_VETH is not set 781# CONFIG_VETH is not set
751# CONFIG_IP1000 is not set
752# CONFIG_ARCNET is not set 782# CONFIG_ARCNET is not set
753# CONFIG_PHYLIB is not set 783# CONFIG_PHYLIB is not set
754CONFIG_NET_ETHERNET=y 784CONFIG_NET_ETHERNET=y
@@ -773,6 +803,9 @@ CONFIG_E1000=m
773CONFIG_E1000_NAPI=y 803CONFIG_E1000_NAPI=y
774# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 804# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
775# CONFIG_E1000E is not set 805# CONFIG_E1000E is not set
806# CONFIG_E1000E_ENABLED is not set
807# CONFIG_IP1000 is not set
808# CONFIG_IGB is not set
776# CONFIG_NS83820 is not set 809# CONFIG_NS83820 is not set
777# CONFIG_HAMACHI is not set 810# CONFIG_HAMACHI is not set
778# CONFIG_YELLOWFIN is not set 811# CONFIG_YELLOWFIN is not set
@@ -788,6 +821,7 @@ CONFIG_TIGON3=y
788# CONFIG_BNX2 is not set 821# CONFIG_BNX2 is not set
789CONFIG_SPIDER_NET=y 822CONFIG_SPIDER_NET=y
790CONFIG_GELIC_NET=m 823CONFIG_GELIC_NET=m
824CONFIG_GELIC_WIRELESS=y
791# CONFIG_QLA3XXX is not set 825# CONFIG_QLA3XXX is not set
792# CONFIG_ATL1 is not set 826# CONFIG_ATL1 is not set
793CONFIG_NETDEV_10000=y 827CONFIG_NETDEV_10000=y
@@ -802,6 +836,7 @@ CONFIG_NETDEV_10000=y
802# CONFIG_PASEMI_MAC is not set 836# CONFIG_PASEMI_MAC is not set
803# CONFIG_MLX4_CORE is not set 837# CONFIG_MLX4_CORE is not set
804# CONFIG_TEHUTI is not set 838# CONFIG_TEHUTI is not set
839# CONFIG_BNX2X is not set
805# CONFIG_TR is not set 840# CONFIG_TR is not set
806 841
807# 842#
@@ -824,7 +859,6 @@ CONFIG_NETDEV_10000=y
824# CONFIG_PPP is not set 859# CONFIG_PPP is not set
825# CONFIG_SLIP is not set 860# CONFIG_SLIP is not set
826# CONFIG_NET_FC is not set 861# CONFIG_NET_FC is not set
827# CONFIG_SHAPER is not set
828# CONFIG_NETCONSOLE is not set 862# CONFIG_NETCONSOLE is not set
829# CONFIG_NETPOLL is not set 863# CONFIG_NETPOLL is not set
830# CONFIG_NET_POLL_CONTROLLER is not set 864# CONFIG_NET_POLL_CONTROLLER is not set
@@ -883,16 +917,17 @@ CONFIG_SERIAL_NONSTANDARD=y
883# CONFIG_DIGIEPCA is not set 917# CONFIG_DIGIEPCA is not set
884# CONFIG_MOXA_INTELLIO is not set 918# CONFIG_MOXA_INTELLIO is not set
885# CONFIG_MOXA_SMARTIO is not set 919# CONFIG_MOXA_SMARTIO is not set
886# CONFIG_MOXA_SMARTIO_NEW is not set
887# CONFIG_ISI is not set 920# CONFIG_ISI is not set
888# CONFIG_SYNCLINK is not set 921# CONFIG_SYNCLINK is not set
889# CONFIG_SYNCLINKMP is not set 922# CONFIG_SYNCLINKMP is not set
890# CONFIG_SYNCLINK_GT is not set 923# CONFIG_SYNCLINK_GT is not set
891# CONFIG_N_HDLC is not set 924# CONFIG_N_HDLC is not set
925# CONFIG_RISCOM8 is not set
892# CONFIG_SPECIALIX is not set 926# CONFIG_SPECIALIX is not set
893# CONFIG_SX is not set 927# CONFIG_SX is not set
894# CONFIG_RIO is not set 928# CONFIG_RIO is not set
895# CONFIG_STALDRV is not set 929# CONFIG_STALDRV is not set
930# CONFIG_NOZOMI is not set
896 931
897# 932#
898# Serial drivers 933# Serial drivers
@@ -976,13 +1011,12 @@ CONFIG_I2C_ALGOBIT=y
976# 1011#
977# Miscellaneous I2C Chip support 1012# Miscellaneous I2C Chip support
978# 1013#
979# CONFIG_SENSORS_DS1337 is not set
980# CONFIG_SENSORS_DS1374 is not set
981# CONFIG_DS1682 is not set 1014# CONFIG_DS1682 is not set
982# CONFIG_SENSORS_EEPROM is not set 1015# CONFIG_SENSORS_EEPROM is not set
983# CONFIG_SENSORS_PCF8574 is not set 1016# CONFIG_SENSORS_PCF8574 is not set
984# CONFIG_SENSORS_PCA9539 is not set 1017# CONFIG_PCF8575 is not set
985# CONFIG_SENSORS_PCF8591 is not set 1018# CONFIG_SENSORS_PCF8591 is not set
1019# CONFIG_TPS65010 is not set
986# CONFIG_SENSORS_MAX6875 is not set 1020# CONFIG_SENSORS_MAX6875 is not set
987# CONFIG_SENSORS_TSL2550 is not set 1021# CONFIG_SENSORS_TSL2550 is not set
988# CONFIG_I2C_DEBUG_CORE is not set 1022# CONFIG_I2C_DEBUG_CORE is not set
@@ -998,6 +1032,7 @@ CONFIG_I2C_ALGOBIT=y
998# CONFIG_W1 is not set 1032# CONFIG_W1 is not set
999# CONFIG_POWER_SUPPLY is not set 1033# CONFIG_POWER_SUPPLY is not set
1000# CONFIG_HWMON is not set 1034# CONFIG_HWMON is not set
1035# CONFIG_THERMAL is not set
1001CONFIG_WATCHDOG=y 1036CONFIG_WATCHDOG=y
1002# CONFIG_WATCHDOG_NOWAYOUT is not set 1037# CONFIG_WATCHDOG_NOWAYOUT is not set
1003 1038
@@ -1082,6 +1117,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1082CONFIG_USB_ARCH_HAS_EHCI=y 1117CONFIG_USB_ARCH_HAS_EHCI=y
1083CONFIG_USB=m 1118CONFIG_USB=m
1084# CONFIG_USB_DEBUG is not set 1119# CONFIG_USB_DEBUG is not set
1120# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1085 1121
1086# 1122#
1087# Miscellaneous USB options 1123# Miscellaneous USB options
@@ -1095,10 +1131,10 @@ CONFIG_USB_DEVICE_CLASS=y
1095# USB Host Controller Drivers 1131# USB Host Controller Drivers
1096# 1132#
1097CONFIG_USB_EHCI_HCD=m 1133CONFIG_USB_EHCI_HCD=m
1098# CONFIG_USB_EHCI_SPLIT_ISO is not set
1099# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1134# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1100# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1135# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1101CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1136CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
1137# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1102# CONFIG_USB_ISP116X_HCD is not set 1138# CONFIG_USB_ISP116X_HCD is not set
1103CONFIG_USB_OHCI_HCD=m 1139CONFIG_USB_OHCI_HCD=m
1104CONFIG_USB_OHCI_HCD_PPC_OF=y 1140CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1149,10 +1185,6 @@ CONFIG_USB_MON=y
1149# 1185#
1150# USB port drivers 1186# USB port drivers
1151# 1187#
1152
1153#
1154# USB Serial Converter support
1155#
1156# CONFIG_USB_SERIAL is not set 1188# CONFIG_USB_SERIAL is not set
1157 1189
1158# 1190#
@@ -1178,16 +1210,9 @@ CONFIG_USB_MON=y
1178# CONFIG_USB_TRANCEVIBRATOR is not set 1210# CONFIG_USB_TRANCEVIBRATOR is not set
1179# CONFIG_USB_IOWARRIOR is not set 1211# CONFIG_USB_IOWARRIOR is not set
1180# CONFIG_USB_TEST is not set 1212# CONFIG_USB_TEST is not set
1181
1182#
1183# USB DSL modem support
1184#
1185
1186#
1187# USB Gadget Support
1188#
1189# CONFIG_USB_GADGET is not set 1213# CONFIG_USB_GADGET is not set
1190# CONFIG_MMC is not set 1214# CONFIG_MMC is not set
1215# CONFIG_MEMSTICK is not set
1191# CONFIG_NEW_LEDS is not set 1216# CONFIG_NEW_LEDS is not set
1192CONFIG_INFINIBAND=m 1217CONFIG_INFINIBAND=m
1193CONFIG_INFINIBAND_USER_MAD=m 1218CONFIG_INFINIBAND_USER_MAD=m
@@ -1198,6 +1223,7 @@ CONFIG_INFINIBAND_MTHCA=m
1198CONFIG_INFINIBAND_MTHCA_DEBUG=y 1223CONFIG_INFINIBAND_MTHCA_DEBUG=y
1199# CONFIG_INFINIBAND_AMSO1100 is not set 1224# CONFIG_INFINIBAND_AMSO1100 is not set
1200# CONFIG_MLX4_INFINIBAND is not set 1225# CONFIG_MLX4_INFINIBAND is not set
1226# CONFIG_INFINIBAND_NES is not set
1201CONFIG_INFINIBAND_IPOIB=m 1227CONFIG_INFINIBAND_IPOIB=m
1202# CONFIG_INFINIBAND_IPOIB_CM is not set 1228# CONFIG_INFINIBAND_IPOIB_CM is not set
1203CONFIG_INFINIBAND_IPOIB_DEBUG=y 1229CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -1211,7 +1237,9 @@ CONFIG_EDAC=y
1211# 1237#
1212# CONFIG_EDAC_DEBUG is not set 1238# CONFIG_EDAC_DEBUG is not set
1213CONFIG_EDAC_MM_EDAC=y 1239CONFIG_EDAC_MM_EDAC=y
1240CONFIG_EDAC_CELL=y
1214# CONFIG_RTC_CLASS is not set 1241# CONFIG_RTC_CLASS is not set
1242# CONFIG_DMADEVICES is not set
1215 1243
1216# 1244#
1217# Userspace I/O 1245# Userspace I/O
@@ -1239,12 +1267,10 @@ CONFIG_FS_POSIX_ACL=y
1239# CONFIG_XFS_FS is not set 1267# CONFIG_XFS_FS is not set
1240# CONFIG_GFS2_FS is not set 1268# CONFIG_GFS2_FS is not set
1241# CONFIG_OCFS2_FS is not set 1269# CONFIG_OCFS2_FS is not set
1242# CONFIG_MINIX_FS is not set 1270CONFIG_DNOTIFY=y
1243# CONFIG_ROMFS_FS is not set
1244CONFIG_INOTIFY=y 1271CONFIG_INOTIFY=y
1245CONFIG_INOTIFY_USER=y 1272CONFIG_INOTIFY_USER=y
1246# CONFIG_QUOTA is not set 1273# CONFIG_QUOTA is not set
1247CONFIG_DNOTIFY=y
1248# CONFIG_AUTOFS_FS is not set 1274# CONFIG_AUTOFS_FS is not set
1249CONFIG_AUTOFS4_FS=m 1275CONFIG_AUTOFS4_FS=m
1250# CONFIG_FUSE_FS is not set 1276# CONFIG_FUSE_FS is not set
@@ -1293,8 +1319,10 @@ CONFIG_HUGETLB_PAGE=y
1293# CONFIG_EFS_FS is not set 1319# CONFIG_EFS_FS is not set
1294# CONFIG_CRAMFS is not set 1320# CONFIG_CRAMFS is not set
1295# CONFIG_VXFS_FS is not set 1321# CONFIG_VXFS_FS is not set
1322# CONFIG_MINIX_FS is not set
1296# CONFIG_HPFS_FS is not set 1323# CONFIG_HPFS_FS is not set
1297# CONFIG_QNX4FS_FS is not set 1324# CONFIG_QNX4FS_FS is not set
1325# CONFIG_ROMFS_FS is not set
1298# CONFIG_SYSV_FS is not set 1326# CONFIG_SYSV_FS is not set
1299# CONFIG_UFS_FS is not set 1327# CONFIG_UFS_FS is not set
1300CONFIG_NETWORK_FILESYSTEMS=y 1328CONFIG_NETWORK_FILESYSTEMS=y
@@ -1382,7 +1410,6 @@ CONFIG_NLS_ISO8859_15=m
1382# CONFIG_NLS_KOI8_U is not set 1410# CONFIG_NLS_KOI8_U is not set
1383# CONFIG_NLS_UTF8 is not set 1411# CONFIG_NLS_UTF8 is not set
1384# CONFIG_DLM is not set 1412# CONFIG_DLM is not set
1385# CONFIG_UCC_SLOW is not set
1386 1413
1387# 1414#
1388# Library routines 1415# Library routines
@@ -1404,11 +1431,6 @@ CONFIG_PLIST=y
1404CONFIG_HAS_IOMEM=y 1431CONFIG_HAS_IOMEM=y
1405CONFIG_HAS_IOPORT=y 1432CONFIG_HAS_IOPORT=y
1406CONFIG_HAS_DMA=y 1433CONFIG_HAS_DMA=y
1407CONFIG_INSTRUMENTATION=y
1408CONFIG_PROFILING=y
1409CONFIG_OPROFILE=m
1410# CONFIG_KPROBES is not set
1411# CONFIG_MARKERS is not set
1412 1434
1413# 1435#
1414# Kernel hacking 1436# Kernel hacking
@@ -1427,6 +1449,7 @@ CONFIG_SCHED_DEBUG=y
1427# CONFIG_SCHEDSTATS is not set 1449# CONFIG_SCHEDSTATS is not set
1428# CONFIG_TIMER_STATS is not set 1450# CONFIG_TIMER_STATS is not set
1429# CONFIG_SLUB_DEBUG_ON is not set 1451# CONFIG_SLUB_DEBUG_ON is not set
1452# CONFIG_SLUB_STATS is not set
1430# CONFIG_DEBUG_RT_MUTEXES is not set 1453# CONFIG_DEBUG_RT_MUTEXES is not set
1431# CONFIG_RT_MUTEX_TESTER is not set 1454# CONFIG_RT_MUTEX_TESTER is not set
1432# CONFIG_DEBUG_SPINLOCK is not set 1455# CONFIG_DEBUG_SPINLOCK is not set
@@ -1439,9 +1462,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1439# CONFIG_DEBUG_VM is not set 1462# CONFIG_DEBUG_VM is not set
1440# CONFIG_DEBUG_LIST is not set 1463# CONFIG_DEBUG_LIST is not set
1441# CONFIG_DEBUG_SG is not set 1464# CONFIG_DEBUG_SG is not set
1442# CONFIG_FORCED_INLINING is not set
1443# CONFIG_BOOT_PRINTK_DELAY is not set 1465# CONFIG_BOOT_PRINTK_DELAY is not set
1444# CONFIG_RCU_TORTURE_TEST is not set 1466# CONFIG_RCU_TORTURE_TEST is not set
1467# CONFIG_BACKTRACE_SELF_TEST is not set
1445# CONFIG_FAULT_INJECTION is not set 1468# CONFIG_FAULT_INJECTION is not set
1446# CONFIG_SAMPLES is not set 1469# CONFIG_SAMPLES is not set
1447# CONFIG_DEBUG_STACKOVERFLOW is not set 1470# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1464,7 +1487,9 @@ CONFIG_IRQSTACKS=y
1464# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1487# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1465CONFIG_CRYPTO=y 1488CONFIG_CRYPTO=y
1466CONFIG_CRYPTO_ALGAPI=y 1489CONFIG_CRYPTO_ALGAPI=y
1490CONFIG_CRYPTO_AEAD=m
1467CONFIG_CRYPTO_BLKCIPHER=m 1491CONFIG_CRYPTO_BLKCIPHER=m
1492# CONFIG_CRYPTO_SEQIV is not set
1468CONFIG_CRYPTO_HASH=y 1493CONFIG_CRYPTO_HASH=y
1469CONFIG_CRYPTO_MANAGER=y 1494CONFIG_CRYPTO_MANAGER=y
1470CONFIG_CRYPTO_HMAC=y 1495CONFIG_CRYPTO_HMAC=y
@@ -1483,6 +1508,9 @@ CONFIG_CRYPTO_CBC=m
1483CONFIG_CRYPTO_PCBC=m 1508CONFIG_CRYPTO_PCBC=m
1484# CONFIG_CRYPTO_LRW is not set 1509# CONFIG_CRYPTO_LRW is not set
1485# CONFIG_CRYPTO_XTS is not set 1510# CONFIG_CRYPTO_XTS is not set
1511# CONFIG_CRYPTO_CTR is not set
1512# CONFIG_CRYPTO_GCM is not set
1513# CONFIG_CRYPTO_CCM is not set
1486# CONFIG_CRYPTO_CRYPTD is not set 1514# CONFIG_CRYPTO_CRYPTD is not set
1487CONFIG_CRYPTO_DES=m 1515CONFIG_CRYPTO_DES=m
1488# CONFIG_CRYPTO_FCRYPT is not set 1516# CONFIG_CRYPTO_FCRYPT is not set
@@ -1497,11 +1525,14 @@ CONFIG_CRYPTO_DES=m
1497# CONFIG_CRYPTO_KHAZAD is not set 1525# CONFIG_CRYPTO_KHAZAD is not set
1498# CONFIG_CRYPTO_ANUBIS is not set 1526# CONFIG_CRYPTO_ANUBIS is not set
1499# CONFIG_CRYPTO_SEED is not set 1527# CONFIG_CRYPTO_SEED is not set
1528# CONFIG_CRYPTO_SALSA20 is not set
1500CONFIG_CRYPTO_DEFLATE=m 1529CONFIG_CRYPTO_DEFLATE=m
1501# CONFIG_CRYPTO_MICHAEL_MIC is not set 1530# CONFIG_CRYPTO_MICHAEL_MIC is not set
1502# CONFIG_CRYPTO_CRC32C is not set 1531# CONFIG_CRYPTO_CRC32C is not set
1503# CONFIG_CRYPTO_CAMELLIA is not set 1532# CONFIG_CRYPTO_CAMELLIA is not set
1504# CONFIG_CRYPTO_TEST is not set 1533# CONFIG_CRYPTO_TEST is not set
1505# CONFIG_CRYPTO_AUTHENC is not set 1534CONFIG_CRYPTO_AUTHENC=m
1535# CONFIG_CRYPTO_LZO is not set
1506CONFIG_CRYPTO_HW=y 1536CONFIG_CRYPTO_HW=y
1537# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1507# CONFIG_PPC_CLOCK is not set 1538# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig
index 9ed2e098f96f..9ba3c6fc2fef 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:07 2007 4# Thu Mar 20 10:32:45 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -69,16 +70,22 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_POSIX_MQUEUE is not set 70# CONFIG_POSIX_MQUEUE is not set
70# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
71# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
72# CONFIG_USER_NS is not set
73# CONFIG_PID_NS is not set
74# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=15 76CONFIG_LOG_BUF_SHIFT=15
78# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
79# CONFIG_FAIR_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_USER_SCHED is not set
80# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set
86# CONFIG_IPC_NS is not set
87# CONFIG_USER_NS is not set
88# CONFIG_PID_NS is not set
82CONFIG_BLK_DEV_INITRD=y 89CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 90CONFIG_INITRAMFS_SOURCE=""
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 91CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -92,11 +99,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 99CONFIG_PRINTK=y
93CONFIG_BUG=y 100CONFIG_BUG=y
94CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 104CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 105CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 106CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 107CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 110CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +113,14 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
105CONFIG_SLUB=y 114CONFIG_SLUB=y
106# CONFIG_SLOB is not set 115# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set
117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set
120CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y
122CONFIG_PROC_PAGE_MONITOR=y
123CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
@@ -131,6 +148,7 @@ CONFIG_DEFAULT_AS=y
131# CONFIG_DEFAULT_CFQ is not set 148# CONFIG_DEFAULT_CFQ is not set
132# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
134 152
135# 153#
136# Platform support 154# Platform support
@@ -141,8 +159,8 @@ CONFIG_PPC_MULTIPLATFORM=y
141# CONFIG_PPC_86xx is not set 159# CONFIG_PPC_86xx is not set
142# CONFIG_PPC_PSERIES is not set 160# CONFIG_PPC_PSERIES is not set
143# CONFIG_PPC_ISERIES is not set 161# CONFIG_PPC_ISERIES is not set
144# CONFIG_PPC_MPC52xx is not set 162# CONFIG_PPC_MPC512x is not set
145# CONFIG_PPC_MPC5200 is not set 163# CONFIG_PPC_MPC5121 is not set
146# CONFIG_PPC_PMAC is not set 164# CONFIG_PPC_PMAC is not set
147# CONFIG_PPC_MAPLE is not set 165# CONFIG_PPC_MAPLE is not set
148# CONFIG_PPC_PASEMI is not set 166# CONFIG_PPC_PASEMI is not set
@@ -164,6 +182,7 @@ CONFIG_CBE_RAS=y
164CONFIG_PPC_NATIVE=y 182CONFIG_PPC_NATIVE=y
165CONFIG_UDBG_RTAS_CONSOLE=y 183CONFIG_UDBG_RTAS_CONSOLE=y
166CONFIG_PPC_UDBG_BEAT=y 184CONFIG_PPC_UDBG_BEAT=y
185# CONFIG_IPIC is not set
167CONFIG_MPIC=y 186CONFIG_MPIC=y
168# CONFIG_MPIC_WEIRD is not set 187# CONFIG_MPIC_WEIRD is not set
169# CONFIG_PPC_I8259 is not set 188# CONFIG_PPC_I8259 is not set
@@ -177,7 +196,6 @@ CONFIG_PPC_RTAS=y
177CONFIG_PPC_INDIRECT_IO=y 196CONFIG_PPC_INDIRECT_IO=y
178CONFIG_GENERIC_IOMAP=y 197CONFIG_GENERIC_IOMAP=y
179# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
180# CONFIG_CPM2 is not set
181# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
182 200
183# 201#
@@ -192,16 +210,20 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 212CONFIG_HZ=250
213# CONFIG_SCHED_HRTICK is not set
195CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
196# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
197# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
198CONFIG_PREEMPT_BKL=y
199CONFIG_BINFMT_ELF=y 217CONFIG_BINFMT_ELF=y
218CONFIG_COMPAT_BINFMT_ELF=y
200CONFIG_BINFMT_MISC=m 219CONFIG_BINFMT_MISC=m
201CONFIG_FORCE_MAX_ZONEORDER=13 220CONFIG_FORCE_MAX_ZONEORDER=13
202CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 221CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
203# CONFIG_IOMMU_VMERGE is not set 222# CONFIG_IOMMU_VMERGE is not set
223CONFIG_IOMMU_HELPER=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
205CONFIG_KEXEC=y 227CONFIG_KEXEC=y
206# CONFIG_CRASH_DUMP is not set 228# CONFIG_CRASH_DUMP is not set
207# CONFIG_IRQ_ALL_CPUS is not set 229# CONFIG_IRQ_ALL_CPUS is not set
@@ -223,6 +245,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
223CONFIG_SPARSEMEM_VMEMMAP=y 245CONFIG_SPARSEMEM_VMEMMAP=y
224CONFIG_MEMORY_HOTPLUG=y 246CONFIG_MEMORY_HOTPLUG=y
225CONFIG_MEMORY_HOTPLUG_SPARSE=y 247CONFIG_MEMORY_HOTPLUG_SPARSE=y
248# CONFIG_MEMORY_HOTREMOVE is not set
226CONFIG_SPLIT_PTLOCK_CPUS=4 249CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 250CONFIG_MIGRATION=y
228CONFIG_RESOURCES_64BIT=y 251CONFIG_RESOURCES_64BIT=y
@@ -237,7 +260,6 @@ CONFIG_PROC_DEVICETREE=y
237# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
238# CONFIG_PM is not set 261# CONFIG_PM is not set
239CONFIG_SECCOMP=y 262CONFIG_SECCOMP=y
240# CONFIG_WANT_DEVICE_TREE is not set
241CONFIG_ISA_DMA_API=y 263CONFIG_ISA_DMA_API=y
242 264
243# 265#
@@ -273,6 +295,7 @@ CONFIG_XFRM=y
273# CONFIG_XFRM_USER is not set 295# CONFIG_XFRM_USER is not set
274# CONFIG_XFRM_SUB_POLICY is not set 296# CONFIG_XFRM_SUB_POLICY is not set
275# CONFIG_XFRM_MIGRATE is not set 297# CONFIG_XFRM_MIGRATE is not set
298# CONFIG_XFRM_STATISTICS is not set
276# CONFIG_NET_KEY is not set 299# CONFIG_NET_KEY is not set
277CONFIG_INET=y 300CONFIG_INET=y
278CONFIG_IP_MULTICAST=y 301CONFIG_IP_MULTICAST=y
@@ -320,12 +343,13 @@ CONFIG_IPV6_TUNNEL=m
320# CONFIG_NETWORK_SECMARK is not set 343# CONFIG_NETWORK_SECMARK is not set
321CONFIG_NETFILTER=y 344CONFIG_NETFILTER=y
322# CONFIG_NETFILTER_DEBUG is not set 345# CONFIG_NETFILTER_DEBUG is not set
346CONFIG_NETFILTER_ADVANCED=y
323 347
324# 348#
325# Core Netfilter Configuration 349# Core Netfilter Configuration
326# 350#
327# CONFIG_NETFILTER_NETLINK is not set 351# CONFIG_NETFILTER_NETLINK_QUEUE is not set
328# CONFIG_NF_CONNTRACK_ENABLED is not set 352# CONFIG_NETFILTER_NETLINK_LOG is not set
329# CONFIG_NF_CONNTRACK is not set 353# CONFIG_NF_CONNTRACK is not set
330# CONFIG_NETFILTER_XTABLES is not set 354# CONFIG_NETFILTER_XTABLES is not set
331 355
@@ -337,7 +361,7 @@ CONFIG_IP_NF_QUEUE=m
337# CONFIG_IP_NF_ARPTABLES is not set 361# CONFIG_IP_NF_ARPTABLES is not set
338 362
339# 363#
340# IPv6: Netfilter Configuration (EXPERIMENTAL) 364# IPv6: Netfilter Configuration
341# 365#
342# CONFIG_IP6_NF_QUEUE is not set 366# CONFIG_IP6_NF_QUEUE is not set
343# CONFIG_IP6_NF_IPTABLES is not set 367# CONFIG_IP6_NF_IPTABLES is not set
@@ -362,6 +386,7 @@ CONFIG_IP_NF_QUEUE=m
362# 386#
363# CONFIG_NET_PKTGEN is not set 387# CONFIG_NET_PKTGEN is not set
364# CONFIG_HAMRADIO is not set 388# CONFIG_HAMRADIO is not set
389# CONFIG_CAN is not set
365# CONFIG_IRDA is not set 390# CONFIG_IRDA is not set
366# CONFIG_BT is not set 391# CONFIG_BT is not set
367# CONFIG_AF_RXRPC is not set 392# CONFIG_AF_RXRPC is not set
@@ -408,7 +433,7 @@ CONFIG_BLK_DEV_LOOP=y
408CONFIG_BLK_DEV_RAM=y 433CONFIG_BLK_DEV_RAM=y
409CONFIG_BLK_DEV_RAM_COUNT=16 434CONFIG_BLK_DEV_RAM_COUNT=16
410CONFIG_BLK_DEV_RAM_SIZE=131072 435CONFIG_BLK_DEV_RAM_SIZE=131072
411CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 436# CONFIG_BLK_DEV_XIP is not set
412# CONFIG_CDROM_PKTCDVD is not set 437# CONFIG_CDROM_PKTCDVD is not set
413# CONFIG_ATA_OVER_ETH is not set 438# CONFIG_ATA_OVER_ETH is not set
414CONFIG_MISC_DEVICES=y 439CONFIG_MISC_DEVICES=y
@@ -416,16 +441,19 @@ CONFIG_MISC_DEVICES=y
416# CONFIG_EEPROM_93CX6 is not set 441# CONFIG_EEPROM_93CX6 is not set
417# CONFIG_SGI_IOC4 is not set 442# CONFIG_SGI_IOC4 is not set
418# CONFIG_TIFM_CORE is not set 443# CONFIG_TIFM_CORE is not set
444# CONFIG_ENCLOSURE_SERVICES is not set
445CONFIG_HAVE_IDE=y
419CONFIG_IDE=y 446CONFIG_IDE=y
420CONFIG_BLK_DEV_IDE=y 447CONFIG_BLK_DEV_IDE=y
421 448
422# 449#
423# Please see Documentation/ide.txt for help/info on IDE drives 450# Please see Documentation/ide/ide.txt for help/info on IDE drives
424# 451#
425# CONFIG_BLK_DEV_IDE_SATA is not set 452# CONFIG_BLK_DEV_IDE_SATA is not set
426CONFIG_BLK_DEV_IDEDISK=y 453CONFIG_BLK_DEV_IDEDISK=y
427CONFIG_IDEDISK_MULTI_MODE=y 454CONFIG_IDEDISK_MULTI_MODE=y
428CONFIG_BLK_DEV_IDECD=m 455CONFIG_BLK_DEV_IDECD=m
456CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
429# CONFIG_BLK_DEV_IDETAPE is not set 457# CONFIG_BLK_DEV_IDETAPE is not set
430# CONFIG_BLK_DEV_IDEFLOPPY is not set 458# CONFIG_BLK_DEV_IDEFLOPPY is not set
431# CONFIG_BLK_DEV_IDESCSI is not set 459# CONFIG_BLK_DEV_IDESCSI is not set
@@ -437,12 +465,12 @@ CONFIG_IDE_PROC_FS=y
437# 465#
438CONFIG_IDE_GENERIC=y 466CONFIG_IDE_GENERIC=y
439# CONFIG_BLK_DEV_PLATFORM is not set 467# CONFIG_BLK_DEV_PLATFORM is not set
468CONFIG_BLK_DEV_IDEDMA_SFF=y
440 469
441# 470#
442# PCI IDE chipsets support 471# PCI IDE chipsets support
443# 472#
444CONFIG_BLK_DEV_IDEPCI=y 473CONFIG_BLK_DEV_IDEPCI=y
445CONFIG_IDEPCI_SHARE_IRQ=y
446CONFIG_IDEPCI_PCIBUS_ORDER=y 474CONFIG_IDEPCI_PCIBUS_ORDER=y
447# CONFIG_BLK_DEV_OFFBOARD is not set 475# CONFIG_BLK_DEV_OFFBOARD is not set
448CONFIG_BLK_DEV_GENERIC=y 476CONFIG_BLK_DEV_GENERIC=y
@@ -474,7 +502,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
474# CONFIG_BLK_DEV_VIA82CXXX is not set 502# CONFIG_BLK_DEV_VIA82CXXX is not set
475# CONFIG_BLK_DEV_TC86C001 is not set 503# CONFIG_BLK_DEV_TC86C001 is not set
476CONFIG_BLK_DEV_CELLEB=y 504CONFIG_BLK_DEV_CELLEB=y
477# CONFIG_IDE_ARM is not set
478CONFIG_BLK_DEV_IDEDMA=y 505CONFIG_BLK_DEV_IDEDMA=y
479CONFIG_IDE_ARCH_OBSOLETE_INIT=y 506CONFIG_IDE_ARCH_OBSOLETE_INIT=y
480# CONFIG_BLK_DEV_HD is not set 507# CONFIG_BLK_DEV_HD is not set
@@ -540,6 +567,7 @@ CONFIG_SCSI_LOWLEVEL=y
540# CONFIG_SCSI_IPS is not set 567# CONFIG_SCSI_IPS is not set
541# CONFIG_SCSI_INITIO is not set 568# CONFIG_SCSI_INITIO is not set
542# CONFIG_SCSI_INIA100 is not set 569# CONFIG_SCSI_INIA100 is not set
570# CONFIG_SCSI_MVSAS is not set
543# CONFIG_SCSI_STEX is not set 571# CONFIG_SCSI_STEX is not set
544# CONFIG_SCSI_SYM53C8XX_2 is not set 572# CONFIG_SCSI_SYM53C8XX_2 is not set
545# CONFIG_SCSI_QLOGIC_1280 is not set 573# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -589,7 +617,6 @@ CONFIG_NETDEVICES=y
589# CONFIG_EQUALIZER is not set 617# CONFIG_EQUALIZER is not set
590# CONFIG_TUN is not set 618# CONFIG_TUN is not set
591# CONFIG_VETH is not set 619# CONFIG_VETH is not set
592# CONFIG_IP1000 is not set
593# CONFIG_ARCNET is not set 620# CONFIG_ARCNET is not set
594# CONFIG_PHYLIB is not set 621# CONFIG_PHYLIB is not set
595CONFIG_NET_ETHERNET=y 622CONFIG_NET_ETHERNET=y
@@ -612,6 +639,9 @@ CONFIG_NETDEV_1000=y
612# CONFIG_DL2K is not set 639# CONFIG_DL2K is not set
613# CONFIG_E1000 is not set 640# CONFIG_E1000 is not set
614# CONFIG_E1000E is not set 641# CONFIG_E1000E is not set
642# CONFIG_E1000E_ENABLED is not set
643# CONFIG_IP1000 is not set
644# CONFIG_IGB is not set
615# CONFIG_NS83820 is not set 645# CONFIG_NS83820 is not set
616# CONFIG_HAMACHI is not set 646# CONFIG_HAMACHI is not set
617# CONFIG_YELLOWFIN is not set 647# CONFIG_YELLOWFIN is not set
@@ -638,6 +668,7 @@ CONFIG_NETDEV_10000=y
638# CONFIG_PASEMI_MAC is not set 668# CONFIG_PASEMI_MAC is not set
639# CONFIG_MLX4_CORE is not set 669# CONFIG_MLX4_CORE is not set
640# CONFIG_TEHUTI is not set 670# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set
641# CONFIG_TR is not set 672# CONFIG_TR is not set
642 673
643# 674#
@@ -660,7 +691,6 @@ CONFIG_NETDEV_10000=y
660# CONFIG_PPP is not set 691# CONFIG_PPP is not set
661# CONFIG_SLIP is not set 692# CONFIG_SLIP is not set
662# CONFIG_NET_FC is not set 693# CONFIG_NET_FC is not set
663# CONFIG_SHAPER is not set
664# CONFIG_NETCONSOLE is not set 694# CONFIG_NETCONSOLE is not set
665# CONFIG_NETPOLL is not set 695# CONFIG_NETPOLL is not set
666# CONFIG_NET_POLL_CONTROLLER is not set 696# CONFIG_NET_POLL_CONTROLLER is not set
@@ -719,16 +749,17 @@ CONFIG_SERIAL_NONSTANDARD=y
719# CONFIG_DIGIEPCA is not set 749# CONFIG_DIGIEPCA is not set
720# CONFIG_MOXA_INTELLIO is not set 750# CONFIG_MOXA_INTELLIO is not set
721# CONFIG_MOXA_SMARTIO is not set 751# CONFIG_MOXA_SMARTIO is not set
722# CONFIG_MOXA_SMARTIO_NEW is not set
723# CONFIG_ISI is not set 752# CONFIG_ISI is not set
724# CONFIG_SYNCLINK is not set 753# CONFIG_SYNCLINK is not set
725# CONFIG_SYNCLINKMP is not set 754# CONFIG_SYNCLINKMP is not set
726# CONFIG_SYNCLINK_GT is not set 755# CONFIG_SYNCLINK_GT is not set
727# CONFIG_N_HDLC is not set 756# CONFIG_N_HDLC is not set
757# CONFIG_RISCOM8 is not set
728# CONFIG_SPECIALIX is not set 758# CONFIG_SPECIALIX is not set
729# CONFIG_SX is not set 759# CONFIG_SX is not set
730# CONFIG_RIO is not set 760# CONFIG_RIO is not set
731# CONFIG_STALDRV is not set 761# CONFIG_STALDRV is not set
762# CONFIG_NOZOMI is not set
732 763
733# 764#
734# Serial drivers 765# Serial drivers
@@ -802,13 +833,12 @@ CONFIG_I2C_ALGOBIT=y
802# 833#
803# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
804# 835#
805# CONFIG_SENSORS_DS1337 is not set
806# CONFIG_SENSORS_DS1374 is not set
807# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
808# CONFIG_SENSORS_EEPROM is not set 837# CONFIG_SENSORS_EEPROM is not set
809# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
810# CONFIG_SENSORS_PCA9539 is not set 839# CONFIG_PCF8575 is not set
811# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
841# CONFIG_TPS65010 is not set
812# CONFIG_SENSORS_MAX6875 is not set 842# CONFIG_SENSORS_MAX6875 is not set
813# CONFIG_SENSORS_TSL2550 is not set 843# CONFIG_SENSORS_TSL2550 is not set
814# CONFIG_I2C_DEBUG_CORE is not set 844# CONFIG_I2C_DEBUG_CORE is not set
@@ -824,6 +854,7 @@ CONFIG_I2C_ALGOBIT=y
824# CONFIG_W1 is not set 854# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set 855# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set 856# CONFIG_HWMON is not set
857# CONFIG_THERMAL is not set
827CONFIG_WATCHDOG=y 858CONFIG_WATCHDOG=y
828# CONFIG_WATCHDOG_NOWAYOUT is not set 859# CONFIG_WATCHDOG_NOWAYOUT is not set
829 860
@@ -905,6 +936,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
905CONFIG_USB_ARCH_HAS_EHCI=y 936CONFIG_USB_ARCH_HAS_EHCI=y
906CONFIG_USB=y 937CONFIG_USB=y
907# CONFIG_USB_DEBUG is not set 938# CONFIG_USB_DEBUG is not set
939# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
908 940
909# 941#
910# Miscellaneous USB options 942# Miscellaneous USB options
@@ -918,10 +950,10 @@ CONFIG_USB_DEVICEFS=y
918# USB Host Controller Drivers 950# USB Host Controller Drivers
919# 951#
920CONFIG_USB_EHCI_HCD=m 952CONFIG_USB_EHCI_HCD=m
921# CONFIG_USB_EHCI_SPLIT_ISO is not set
922# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 953# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
923# CONFIG_USB_EHCI_TT_NEWSCHED is not set 954# CONFIG_USB_EHCI_TT_NEWSCHED is not set
924CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 955CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
956# CONFIG_USB_EHCI_HCD_PPC_OF is not set
925# CONFIG_USB_ISP116X_HCD is not set 957# CONFIG_USB_ISP116X_HCD is not set
926CONFIG_USB_OHCI_HCD=m 958CONFIG_USB_OHCI_HCD=m
927# CONFIG_USB_OHCI_HCD_PPC_OF is not set 959# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -969,10 +1001,6 @@ CONFIG_USB_MON=y
969# 1001#
970# USB port drivers 1002# USB port drivers
971# 1003#
972
973#
974# USB Serial Converter support
975#
976# CONFIG_USB_SERIAL is not set 1004# CONFIG_USB_SERIAL is not set
977 1005
978# 1006#
@@ -998,20 +1026,14 @@ CONFIG_USB_MON=y
998# CONFIG_USB_TRANCEVIBRATOR is not set 1026# CONFIG_USB_TRANCEVIBRATOR is not set
999# CONFIG_USB_IOWARRIOR is not set 1027# CONFIG_USB_IOWARRIOR is not set
1000# CONFIG_USB_TEST is not set 1028# CONFIG_USB_TEST is not set
1001
1002#
1003# USB DSL modem support
1004#
1005
1006#
1007# USB Gadget Support
1008#
1009# CONFIG_USB_GADGET is not set 1029# CONFIG_USB_GADGET is not set
1010# CONFIG_MMC is not set 1030# CONFIG_MMC is not set
1031# CONFIG_MEMSTICK is not set
1011# CONFIG_NEW_LEDS is not set 1032# CONFIG_NEW_LEDS is not set
1012# CONFIG_INFINIBAND is not set 1033# CONFIG_INFINIBAND is not set
1013# CONFIG_EDAC is not set 1034# CONFIG_EDAC is not set
1014# CONFIG_RTC_CLASS is not set 1035# CONFIG_RTC_CLASS is not set
1036# CONFIG_DMADEVICES is not set
1015 1037
1016# 1038#
1017# Userspace I/O 1039# Userspace I/O
@@ -1041,12 +1063,10 @@ CONFIG_FS_POSIX_ACL=y
1041# CONFIG_XFS_FS is not set 1063# CONFIG_XFS_FS is not set
1042# CONFIG_GFS2_FS is not set 1064# CONFIG_GFS2_FS is not set
1043# CONFIG_OCFS2_FS is not set 1065# CONFIG_OCFS2_FS is not set
1044# CONFIG_MINIX_FS is not set 1066CONFIG_DNOTIFY=y
1045# CONFIG_ROMFS_FS is not set
1046CONFIG_INOTIFY=y 1067CONFIG_INOTIFY=y
1047CONFIG_INOTIFY_USER=y 1068CONFIG_INOTIFY_USER=y
1048# CONFIG_QUOTA is not set 1069# CONFIG_QUOTA is not set
1049CONFIG_DNOTIFY=y
1050# CONFIG_AUTOFS_FS is not set 1070# CONFIG_AUTOFS_FS is not set
1051# CONFIG_AUTOFS4_FS is not set 1071# CONFIG_AUTOFS4_FS is not set
1052# CONFIG_FUSE_FS is not set 1072# CONFIG_FUSE_FS is not set
@@ -1095,8 +1115,10 @@ CONFIG_HUGETLB_PAGE=y
1095# CONFIG_EFS_FS is not set 1115# CONFIG_EFS_FS is not set
1096# CONFIG_CRAMFS is not set 1116# CONFIG_CRAMFS is not set
1097# CONFIG_VXFS_FS is not set 1117# CONFIG_VXFS_FS is not set
1118# CONFIG_MINIX_FS is not set
1098# CONFIG_HPFS_FS is not set 1119# CONFIG_HPFS_FS is not set
1099# CONFIG_QNX4FS_FS is not set 1120# CONFIG_QNX4FS_FS is not set
1121# CONFIG_ROMFS_FS is not set
1100# CONFIG_SYSV_FS is not set 1122# CONFIG_SYSV_FS is not set
1101# CONFIG_UFS_FS is not set 1123# CONFIG_UFS_FS is not set
1102CONFIG_NETWORK_FILESYSTEMS=y 1124CONFIG_NETWORK_FILESYSTEMS=y
@@ -1188,7 +1210,6 @@ CONFIG_NLS_ISO8859_15=m
1188# CONFIG_NLS_KOI8_U is not set 1210# CONFIG_NLS_KOI8_U is not set
1189# CONFIG_NLS_UTF8 is not set 1211# CONFIG_NLS_UTF8 is not set
1190# CONFIG_DLM is not set 1212# CONFIG_DLM is not set
1191# CONFIG_UCC_SLOW is not set
1192 1213
1193# 1214#
1194# Library routines 1215# Library routines
@@ -1206,10 +1227,6 @@ CONFIG_PLIST=y
1206CONFIG_HAS_IOMEM=y 1227CONFIG_HAS_IOMEM=y
1207CONFIG_HAS_IOPORT=y 1228CONFIG_HAS_IOPORT=y
1208CONFIG_HAS_DMA=y 1229CONFIG_HAS_DMA=y
1209CONFIG_INSTRUMENTATION=y
1210# CONFIG_PROFILING is not set
1211# CONFIG_KPROBES is not set
1212# CONFIG_MARKERS is not set
1213 1230
1214# 1231#
1215# Kernel hacking 1232# Kernel hacking
@@ -1228,6 +1245,7 @@ CONFIG_SCHED_DEBUG=y
1228# CONFIG_SCHEDSTATS is not set 1245# CONFIG_SCHEDSTATS is not set
1229# CONFIG_TIMER_STATS is not set 1246# CONFIG_TIMER_STATS is not set
1230# CONFIG_SLUB_DEBUG_ON is not set 1247# CONFIG_SLUB_DEBUG_ON is not set
1248# CONFIG_SLUB_STATS is not set
1231# CONFIG_DEBUG_RT_MUTEXES is not set 1249# CONFIG_DEBUG_RT_MUTEXES is not set
1232# CONFIG_RT_MUTEX_TESTER is not set 1250# CONFIG_RT_MUTEX_TESTER is not set
1233# CONFIG_DEBUG_SPINLOCK is not set 1251# CONFIG_DEBUG_SPINLOCK is not set
@@ -1240,9 +1258,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1240# CONFIG_DEBUG_VM is not set 1258# CONFIG_DEBUG_VM is not set
1241# CONFIG_DEBUG_LIST is not set 1259# CONFIG_DEBUG_LIST is not set
1242# CONFIG_DEBUG_SG is not set 1260# CONFIG_DEBUG_SG is not set
1243# CONFIG_FORCED_INLINING is not set
1244# CONFIG_BOOT_PRINTK_DELAY is not set 1261# CONFIG_BOOT_PRINTK_DELAY is not set
1245# CONFIG_RCU_TORTURE_TEST is not set 1262# CONFIG_RCU_TORTURE_TEST is not set
1263# CONFIG_BACKTRACE_SELF_TEST is not set
1246# CONFIG_FAULT_INJECTION is not set 1264# CONFIG_FAULT_INJECTION is not set
1247# CONFIG_SAMPLES is not set 1265# CONFIG_SAMPLES is not set
1248# CONFIG_DEBUG_STACKOVERFLOW is not set 1266# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1265,7 +1283,9 @@ CONFIG_IRQSTACKS=y
1265# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1283# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1266CONFIG_CRYPTO=y 1284CONFIG_CRYPTO=y
1267CONFIG_CRYPTO_ALGAPI=y 1285CONFIG_CRYPTO_ALGAPI=y
1286CONFIG_CRYPTO_AEAD=m
1268CONFIG_CRYPTO_BLKCIPHER=m 1287CONFIG_CRYPTO_BLKCIPHER=m
1288# CONFIG_CRYPTO_SEQIV is not set
1269CONFIG_CRYPTO_HASH=y 1289CONFIG_CRYPTO_HASH=y
1270CONFIG_CRYPTO_MANAGER=y 1290CONFIG_CRYPTO_MANAGER=y
1271CONFIG_CRYPTO_HMAC=y 1291CONFIG_CRYPTO_HMAC=y
@@ -1284,6 +1304,9 @@ CONFIG_CRYPTO_CBC=m
1284CONFIG_CRYPTO_PCBC=m 1304CONFIG_CRYPTO_PCBC=m
1285# CONFIG_CRYPTO_LRW is not set 1305# CONFIG_CRYPTO_LRW is not set
1286# CONFIG_CRYPTO_XTS is not set 1306# CONFIG_CRYPTO_XTS is not set
1307# CONFIG_CRYPTO_CTR is not set
1308# CONFIG_CRYPTO_GCM is not set
1309# CONFIG_CRYPTO_CCM is not set
1287# CONFIG_CRYPTO_CRYPTD is not set 1310# CONFIG_CRYPTO_CRYPTD is not set
1288CONFIG_CRYPTO_DES=m 1311CONFIG_CRYPTO_DES=m
1289# CONFIG_CRYPTO_FCRYPT is not set 1312# CONFIG_CRYPTO_FCRYPT is not set
@@ -1299,11 +1322,13 @@ CONFIG_CRYPTO_ARC4=m
1299CONFIG_CRYPTO_KHAZAD=m 1322CONFIG_CRYPTO_KHAZAD=m
1300CONFIG_CRYPTO_ANUBIS=m 1323CONFIG_CRYPTO_ANUBIS=m
1301# CONFIG_CRYPTO_SEED is not set 1324# CONFIG_CRYPTO_SEED is not set
1325# CONFIG_CRYPTO_SALSA20 is not set
1302CONFIG_CRYPTO_DEFLATE=m 1326CONFIG_CRYPTO_DEFLATE=m
1303CONFIG_CRYPTO_MICHAEL_MIC=m 1327CONFIG_CRYPTO_MICHAEL_MIC=m
1304CONFIG_CRYPTO_CRC32C=m 1328CONFIG_CRYPTO_CRC32C=m
1305# CONFIG_CRYPTO_CAMELLIA is not set 1329# CONFIG_CRYPTO_CAMELLIA is not set
1306CONFIG_CRYPTO_TEST=m 1330CONFIG_CRYPTO_TEST=m
1307# CONFIG_CRYPTO_AUTHENC is not set 1331CONFIG_CRYPTO_AUTHENC=m
1332# CONFIG_CRYPTO_LZO is not set
1308# CONFIG_CRYPTO_HW is not set 1333# CONFIG_CRYPTO_HW is not set
1309# CONFIG_PPC_CLOCK is not set 1334# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 5989b5d2277e..38b85b211c38 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:09 2007 4# Thu Mar 20 10:33:36 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,16 +68,22 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 68CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73CONFIG_IKCONFIG=y 72CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 73CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=15 74CONFIG_LOG_BUF_SHIFT=15
76# CONFIG_CGROUPS is not set 75# CONFIG_CGROUPS is not set
77# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_GROUP_SCHED is not set
77# CONFIG_USER_SCHED is not set
78# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82CONFIG_NAMESPACES=y
83# CONFIG_UTS_NS is not set
84# CONFIG_IPC_NS is not set
85# CONFIG_USER_NS is not set
86# CONFIG_PID_NS is not set
80CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 88CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -90,11 +97,13 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 97CONFIG_PRINTK=y
91CONFIG_BUG=y 98CONFIG_BUG=y
92CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100# CONFIG_COMPAT_BRK is not set
93CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 102CONFIG_FUTEX=y
95CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
96CONFIG_EPOLL=y 104CONFIG_EPOLL=y
97CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
98CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 108CONFIG_SHMEM=y
100CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -102,6 +111,14 @@ CONFIG_SLUB_DEBUG=y
102# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
103CONFIG_SLUB=y 112CONFIG_SLUB=y
104# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
107CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
@@ -130,6 +147,7 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 147# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
133 151
134# 152#
135# Platform support 153# Platform support
@@ -140,16 +158,17 @@ CONFIG_PPC_MULTIPLATFORM=y
140# CONFIG_PPC_86xx is not set 158# CONFIG_PPC_86xx is not set
141CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
142CONFIG_PPC_CHRP=y 160CONFIG_PPC_CHRP=y
161# CONFIG_PPC_MPC512x is not set
162# CONFIG_PPC_MPC5121 is not set
163# CONFIG_MPC5121_ADS is not set
143# CONFIG_PPC_MPC52xx is not set 164# CONFIG_PPC_MPC52xx is not set
144# CONFIG_PPC_MPC5200 is not set
145# CONFIG_PPC_EFIKA is not set
146# CONFIG_PPC_LITE5200 is not set
147# CONFIG_PPC_PMAC is not set 165# CONFIG_PPC_PMAC is not set
148# CONFIG_PPC_CELL is not set 166# CONFIG_PPC_CELL is not set
149# CONFIG_PPC_CELL_NATIVE is not set 167# CONFIG_PPC_CELL_NATIVE is not set
150# CONFIG_PQ2ADS is not set 168# CONFIG_PQ2ADS is not set
151CONFIG_PPC_NATIVE=y 169CONFIG_PPC_NATIVE=y
152# CONFIG_UDBG_RTAS_CONSOLE is not set 170# CONFIG_UDBG_RTAS_CONSOLE is not set
171# CONFIG_IPIC is not set
153CONFIG_MPIC=y 172CONFIG_MPIC=y
154# CONFIG_MPIC_WEIRD is not set 173# CONFIG_MPIC_WEIRD is not set
155CONFIG_PPC_I8259=y 174CONFIG_PPC_I8259=y
@@ -163,7 +182,6 @@ CONFIG_PPC_MPC106=y
163# CONFIG_GENERIC_IOMAP is not set 182# CONFIG_GENERIC_IOMAP is not set
164# CONFIG_CPU_FREQ is not set 183# CONFIG_CPU_FREQ is not set
165# CONFIG_TAU is not set 184# CONFIG_TAU is not set
166# CONFIG_CPM2 is not set
167# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
168 186
169# 187#
@@ -179,13 +197,16 @@ CONFIG_HZ_250=y
179# CONFIG_HZ_300 is not set 197# CONFIG_HZ_300 is not set
180# CONFIG_HZ_1000 is not set 198# CONFIG_HZ_1000 is not set
181CONFIG_HZ=250 199CONFIG_HZ=250
200# CONFIG_SCHED_HRTICK is not set
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
185CONFIG_PREEMPT_BKL=y
186CONFIG_BINFMT_ELF=y 204CONFIG_BINFMT_ELF=y
187CONFIG_BINFMT_MISC=y 205CONFIG_BINFMT_MISC=y
206# CONFIG_IOMMU_HELPER is not set
188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
189# CONFIG_KEXEC is not set 210# CONFIG_KEXEC is not set
190CONFIG_IRQ_ALL_CPUS=y 211CONFIG_IRQ_ALL_CPUS=y
191CONFIG_ARCH_FLATMEM_ENABLE=y 212CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -207,7 +228,6 @@ CONFIG_PROC_DEVICETREE=y
207# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
208# CONFIG_PM is not set 229# CONFIG_PM is not set
209CONFIG_SECCOMP=y 230CONFIG_SECCOMP=y
210# CONFIG_WANT_DEVICE_TREE is not set
211CONFIG_ISA_DMA_API=y 231CONFIG_ISA_DMA_API=y
212 232
213# 233#
@@ -286,74 +306,32 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
286# CONFIG_NETWORK_SECMARK is not set 306# CONFIG_NETWORK_SECMARK is not set
287CONFIG_NETFILTER=y 307CONFIG_NETFILTER=y
288# CONFIG_NETFILTER_DEBUG is not set 308# CONFIG_NETFILTER_DEBUG is not set
309# CONFIG_NETFILTER_ADVANCED is not set
289 310
290# 311#
291# Core Netfilter Configuration 312# Core Netfilter Configuration
292# 313#
293# CONFIG_NETFILTER_NETLINK is not set 314CONFIG_NETFILTER_NETLINK=m
294CONFIG_NF_CONNTRACK_ENABLED=m 315CONFIG_NETFILTER_NETLINK_LOG=m
295CONFIG_NF_CONNTRACK=m 316CONFIG_NF_CONNTRACK=m
296# CONFIG_NF_CT_ACCT is not set
297# CONFIG_NF_CONNTRACK_MARK is not set
298# CONFIG_NF_CONNTRACK_EVENTS is not set
299# CONFIG_NF_CT_PROTO_SCTP is not set
300# CONFIG_NF_CT_PROTO_UDPLITE is not set
301# CONFIG_NF_CONNTRACK_AMANDA is not set
302CONFIG_NF_CONNTRACK_FTP=m 317CONFIG_NF_CONNTRACK_FTP=m
303# CONFIG_NF_CONNTRACK_H323 is not set
304CONFIG_NF_CONNTRACK_IRC=m 318CONFIG_NF_CONNTRACK_IRC=m
305# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
306# CONFIG_NF_CONNTRACK_PPTP is not set
307# CONFIG_NF_CONNTRACK_SANE is not set
308CONFIG_NF_CONNTRACK_SIP=m 319CONFIG_NF_CONNTRACK_SIP=m
309CONFIG_NF_CONNTRACK_TFTP=m 320CONFIG_NF_CT_NETLINK=m
310CONFIG_NETFILTER_XTABLES=m 321CONFIG_NETFILTER_XTABLES=m
311# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
312# CONFIG_NETFILTER_XT_TARGET_MARK is not set 322# CONFIG_NETFILTER_XT_TARGET_MARK is not set
313# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
314# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 323# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
315# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 324# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
316# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
317# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
318# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
319# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
320# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set 325# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
321# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
322# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
323# CONFIG_NETFILTER_XT_MATCH_ESP is not set
324# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
325# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
326# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
327# CONFIG_NETFILTER_XT_MATCH_MAC is not set
328# CONFIG_NETFILTER_XT_MATCH_MARK is not set 326# CONFIG_NETFILTER_XT_MATCH_MARK is not set
329# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
330# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
331# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
332# CONFIG_NETFILTER_XT_MATCH_REALM is not set
333# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
334# CONFIG_NETFILTER_XT_MATCH_STATE is not set 327# CONFIG_NETFILTER_XT_MATCH_STATE is not set
335# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
336# CONFIG_NETFILTER_XT_MATCH_STRING is not set
337# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
338# CONFIG_NETFILTER_XT_MATCH_TIME is not set
339# CONFIG_NETFILTER_XT_MATCH_U32 is not set
340# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
341 328
342# 329#
343# IP: Netfilter Configuration 330# IP: Netfilter Configuration
344# 331#
345CONFIG_NF_CONNTRACK_IPV4=m 332CONFIG_NF_CONNTRACK_IPV4=m
346CONFIG_NF_CONNTRACK_PROC_COMPAT=y 333CONFIG_NF_CONNTRACK_PROC_COMPAT=y
347# CONFIG_IP_NF_QUEUE is not set
348CONFIG_IP_NF_IPTABLES=m 334CONFIG_IP_NF_IPTABLES=m
349# CONFIG_IP_NF_MATCH_IPRANGE is not set
350# CONFIG_IP_NF_MATCH_TOS is not set
351# CONFIG_IP_NF_MATCH_RECENT is not set
352# CONFIG_IP_NF_MATCH_ECN is not set
353# CONFIG_IP_NF_MATCH_AH is not set
354# CONFIG_IP_NF_MATCH_TTL is not set
355# CONFIG_IP_NF_MATCH_OWNER is not set
356# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
357CONFIG_IP_NF_FILTER=m 335CONFIG_IP_NF_FILTER=m
358CONFIG_IP_NF_TARGET_REJECT=m 336CONFIG_IP_NF_TARGET_REJECT=m
359CONFIG_IP_NF_TARGET_LOG=m 337CONFIG_IP_NF_TARGET_LOG=m
@@ -361,20 +339,14 @@ CONFIG_IP_NF_TARGET_LOG=m
361CONFIG_NF_NAT=m 339CONFIG_NF_NAT=m
362CONFIG_NF_NAT_NEEDED=y 340CONFIG_NF_NAT_NEEDED=y
363CONFIG_IP_NF_TARGET_MASQUERADE=m 341CONFIG_IP_NF_TARGET_MASQUERADE=m
364CONFIG_IP_NF_TARGET_REDIRECT=m
365# CONFIG_IP_NF_TARGET_NETMAP is not set
366# CONFIG_IP_NF_TARGET_SAME is not set
367# CONFIG_NF_NAT_SNMP_BASIC is not set
368CONFIG_NF_NAT_FTP=m 342CONFIG_NF_NAT_FTP=m
369CONFIG_NF_NAT_IRC=m 343CONFIG_NF_NAT_IRC=m
370CONFIG_NF_NAT_TFTP=m 344# CONFIG_NF_NAT_TFTP is not set
371# CONFIG_NF_NAT_AMANDA is not set 345# CONFIG_NF_NAT_AMANDA is not set
372# CONFIG_NF_NAT_PPTP is not set 346# CONFIG_NF_NAT_PPTP is not set
373# CONFIG_NF_NAT_H323 is not set 347# CONFIG_NF_NAT_H323 is not set
374CONFIG_NF_NAT_SIP=m 348CONFIG_NF_NAT_SIP=m
375# CONFIG_IP_NF_MANGLE is not set 349# CONFIG_IP_NF_MANGLE is not set
376# CONFIG_IP_NF_RAW is not set
377# CONFIG_IP_NF_ARPTABLES is not set
378# CONFIG_IP_DCCP is not set 350# CONFIG_IP_DCCP is not set
379# CONFIG_IP_SCTP is not set 351# CONFIG_IP_SCTP is not set
380# CONFIG_TIPC is not set 352# CONFIG_TIPC is not set
@@ -396,6 +368,7 @@ CONFIG_NF_NAT_SIP=m
396# 368#
397# CONFIG_NET_PKTGEN is not set 369# CONFIG_NET_PKTGEN is not set
398# CONFIG_HAMRADIO is not set 370# CONFIG_HAMRADIO is not set
371# CONFIG_CAN is not set
399# CONFIG_IRDA is not set 372# CONFIG_IRDA is not set
400# CONFIG_BT is not set 373# CONFIG_BT is not set
401# CONFIG_AF_RXRPC is not set 374# CONFIG_AF_RXRPC is not set
@@ -445,7 +418,7 @@ CONFIG_BLK_DEV_LOOP=y
445CONFIG_BLK_DEV_RAM=y 418CONFIG_BLK_DEV_RAM=y
446CONFIG_BLK_DEV_RAM_COUNT=16 419CONFIG_BLK_DEV_RAM_COUNT=16
447CONFIG_BLK_DEV_RAM_SIZE=4096 420CONFIG_BLK_DEV_RAM_SIZE=4096
448CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 421# CONFIG_BLK_DEV_XIP is not set
449# CONFIG_CDROM_PKTCDVD is not set 422# CONFIG_CDROM_PKTCDVD is not set
450# CONFIG_ATA_OVER_ETH is not set 423# CONFIG_ATA_OVER_ETH is not set
451CONFIG_MISC_DEVICES=y 424CONFIG_MISC_DEVICES=y
@@ -453,16 +426,19 @@ CONFIG_MISC_DEVICES=y
453# CONFIG_EEPROM_93CX6 is not set 426# CONFIG_EEPROM_93CX6 is not set
454# CONFIG_SGI_IOC4 is not set 427# CONFIG_SGI_IOC4 is not set
455# CONFIG_TIFM_CORE is not set 428# CONFIG_TIFM_CORE is not set
429# CONFIG_ENCLOSURE_SERVICES is not set
430CONFIG_HAVE_IDE=y
456CONFIG_IDE=y 431CONFIG_IDE=y
457CONFIG_BLK_DEV_IDE=y 432CONFIG_BLK_DEV_IDE=y
458 433
459# 434#
460# Please see Documentation/ide.txt for help/info on IDE drives 435# Please see Documentation/ide/ide.txt for help/info on IDE drives
461# 436#
462# CONFIG_BLK_DEV_IDE_SATA is not set 437# CONFIG_BLK_DEV_IDE_SATA is not set
463CONFIG_BLK_DEV_IDEDISK=y 438CONFIG_BLK_DEV_IDEDISK=y
464CONFIG_IDEDISK_MULTI_MODE=y 439CONFIG_IDEDISK_MULTI_MODE=y
465CONFIG_BLK_DEV_IDECD=y 440CONFIG_BLK_DEV_IDECD=y
441CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
466# CONFIG_BLK_DEV_IDETAPE is not set 442# CONFIG_BLK_DEV_IDETAPE is not set
467# CONFIG_BLK_DEV_IDEFLOPPY is not set 443# CONFIG_BLK_DEV_IDEFLOPPY is not set
468# CONFIG_BLK_DEV_IDESCSI is not set 444# CONFIG_BLK_DEV_IDESCSI is not set
@@ -474,12 +450,12 @@ CONFIG_IDE_PROC_FS=y
474# 450#
475CONFIG_IDE_GENERIC=y 451CONFIG_IDE_GENERIC=y
476# CONFIG_BLK_DEV_PLATFORM is not set 452# CONFIG_BLK_DEV_PLATFORM is not set
453CONFIG_BLK_DEV_IDEDMA_SFF=y
477 454
478# 455#
479# PCI IDE chipsets support 456# PCI IDE chipsets support
480# 457#
481CONFIG_BLK_DEV_IDEPCI=y 458CONFIG_BLK_DEV_IDEPCI=y
482CONFIG_IDEPCI_SHARE_IRQ=y
483CONFIG_IDEPCI_PCIBUS_ORDER=y 459CONFIG_IDEPCI_PCIBUS_ORDER=y
484# CONFIG_BLK_DEV_OFFBOARD is not set 460# CONFIG_BLK_DEV_OFFBOARD is not set
485CONFIG_BLK_DEV_GENERIC=y 461CONFIG_BLK_DEV_GENERIC=y
@@ -510,7 +486,6 @@ CONFIG_BLK_DEV_SL82C105=y
510# CONFIG_BLK_DEV_TRM290 is not set 486# CONFIG_BLK_DEV_TRM290 is not set
511CONFIG_BLK_DEV_VIA82CXXX=y 487CONFIG_BLK_DEV_VIA82CXXX=y
512# CONFIG_BLK_DEV_TC86C001 is not set 488# CONFIG_BLK_DEV_TC86C001 is not set
513# CONFIG_IDE_ARM is not set
514 489
515# 490#
516# Other IDE chipsets support 491# Other IDE chipsets support
@@ -599,6 +574,7 @@ CONFIG_SCSI_LOWLEVEL=y
599# CONFIG_SCSI_IPS is not set 574# CONFIG_SCSI_IPS is not set
600# CONFIG_SCSI_INITIO is not set 575# CONFIG_SCSI_INITIO is not set
601# CONFIG_SCSI_INIA100 is not set 576# CONFIG_SCSI_INIA100 is not set
577# CONFIG_SCSI_MVSAS is not set
602# CONFIG_SCSI_NCR53C406A is not set 578# CONFIG_SCSI_NCR53C406A is not set
603# CONFIG_SCSI_STEX is not set 579# CONFIG_SCSI_STEX is not set
604CONFIG_SCSI_SYM53C8XX_2=y 580CONFIG_SCSI_SYM53C8XX_2=y
@@ -607,7 +583,6 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
607CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 583CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
608CONFIG_SCSI_SYM53C8XX_MMIO=y 584CONFIG_SCSI_SYM53C8XX_MMIO=y
609# CONFIG_SCSI_PAS16 is not set 585# CONFIG_SCSI_PAS16 is not set
610# CONFIG_SCSI_PSI240I is not set
611# CONFIG_SCSI_QLOGIC_FAS is not set 586# CONFIG_SCSI_QLOGIC_FAS is not set
612# CONFIG_SCSI_QLOGIC_1280 is not set 587# CONFIG_SCSI_QLOGIC_1280 is not set
613# CONFIG_SCSI_QLA_FC is not set 588# CONFIG_SCSI_QLA_FC is not set
@@ -640,7 +615,6 @@ CONFIG_NETDEVICES=y
640# CONFIG_EQUALIZER is not set 615# CONFIG_EQUALIZER is not set
641# CONFIG_TUN is not set 616# CONFIG_TUN is not set
642# CONFIG_VETH is not set 617# CONFIG_VETH is not set
643# CONFIG_IP1000 is not set
644# CONFIG_ARCNET is not set 618# CONFIG_ARCNET is not set
645# CONFIG_PHYLIB is not set 619# CONFIG_PHYLIB is not set
646CONFIG_NET_ETHERNET=y 620CONFIG_NET_ETHERNET=y
@@ -688,6 +662,7 @@ CONFIG_8139TOO=y
688# CONFIG_8139TOO_TUNE_TWISTER is not set 662# CONFIG_8139TOO_TUNE_TWISTER is not set
689# CONFIG_8139TOO_8129 is not set 663# CONFIG_8139TOO_8129 is not set
690# CONFIG_8139_OLD_RX_RESET is not set 664# CONFIG_8139_OLD_RX_RESET is not set
665# CONFIG_R6040 is not set
691# CONFIG_SIS900 is not set 666# CONFIG_SIS900 is not set
692# CONFIG_EPIC100 is not set 667# CONFIG_EPIC100 is not set
693# CONFIG_SUNDANCE is not set 668# CONFIG_SUNDANCE is not set
@@ -701,6 +676,9 @@ CONFIG_NETDEV_1000=y
701# CONFIG_DL2K is not set 676# CONFIG_DL2K is not set
702# CONFIG_E1000 is not set 677# CONFIG_E1000 is not set
703# CONFIG_E1000E is not set 678# CONFIG_E1000E is not set
679# CONFIG_E1000E_ENABLED is not set
680# CONFIG_IP1000 is not set
681# CONFIG_IGB is not set
704# CONFIG_NS83820 is not set 682# CONFIG_NS83820 is not set
705# CONFIG_HAMACHI is not set 683# CONFIG_HAMACHI is not set
706# CONFIG_YELLOWFIN is not set 684# CONFIG_YELLOWFIN is not set
@@ -726,6 +704,7 @@ CONFIG_NETDEV_10000=y
726# CONFIG_NIU is not set 704# CONFIG_NIU is not set
727# CONFIG_MLX4_CORE is not set 705# CONFIG_MLX4_CORE is not set
728# CONFIG_TEHUTI is not set 706# CONFIG_TEHUTI is not set
707# CONFIG_BNX2X is not set
729# CONFIG_TR is not set 708# CONFIG_TR is not set
730 709
731# 710#
@@ -758,7 +737,6 @@ CONFIG_PPPOE=m
758# CONFIG_SLIP is not set 737# CONFIG_SLIP is not set
759CONFIG_SLHC=m 738CONFIG_SLHC=m
760# CONFIG_NET_FC is not set 739# CONFIG_NET_FC is not set
761# CONFIG_SHAPER is not set
762# CONFIG_NETCONSOLE is not set 740# CONFIG_NETCONSOLE is not set
763# CONFIG_NETPOLL is not set 741# CONFIG_NETPOLL is not set
764# CONFIG_NET_POLL_CONTROLLER is not set 742# CONFIG_NET_POLL_CONTROLLER is not set
@@ -838,6 +816,7 @@ CONFIG_VT_CONSOLE=y
838CONFIG_HW_CONSOLE=y 816CONFIG_HW_CONSOLE=y
839# CONFIG_VT_HW_CONSOLE_BINDING is not set 817# CONFIG_VT_HW_CONSOLE_BINDING is not set
840# CONFIG_SERIAL_NONSTANDARD is not set 818# CONFIG_SERIAL_NONSTANDARD is not set
819# CONFIG_NOZOMI is not set
841 820
842# 821#
843# Serial drivers 822# Serial drivers
@@ -917,14 +896,12 @@ CONFIG_I2C_ALGOBIT=y
917# 896#
918# Miscellaneous I2C Chip support 897# Miscellaneous I2C Chip support
919# 898#
920# CONFIG_SENSORS_DS1337 is not set
921# CONFIG_SENSORS_DS1374 is not set
922# CONFIG_DS1682 is not set 899# CONFIG_DS1682 is not set
923# CONFIG_SENSORS_EEPROM is not set 900# CONFIG_SENSORS_EEPROM is not set
924# CONFIG_SENSORS_PCF8574 is not set 901# CONFIG_SENSORS_PCF8574 is not set
925# CONFIG_SENSORS_PCA9539 is not set 902# CONFIG_PCF8575 is not set
926# CONFIG_SENSORS_PCF8591 is not set 903# CONFIG_SENSORS_PCF8591 is not set
927# CONFIG_SENSORS_M41T00 is not set 904# CONFIG_TPS65010 is not set
928# CONFIG_SENSORS_MAX6875 is not set 905# CONFIG_SENSORS_MAX6875 is not set
929# CONFIG_SENSORS_TSL2550 is not set 906# CONFIG_SENSORS_TSL2550 is not set
930# CONFIG_I2C_DEBUG_CORE is not set 907# CONFIG_I2C_DEBUG_CORE is not set
@@ -940,6 +917,7 @@ CONFIG_I2C_ALGOBIT=y
940# CONFIG_W1 is not set 917# CONFIG_W1 is not set
941# CONFIG_POWER_SUPPLY is not set 918# CONFIG_POWER_SUPPLY is not set
942# CONFIG_HWMON is not set 919# CONFIG_HWMON is not set
920# CONFIG_THERMAL is not set
943# CONFIG_WATCHDOG is not set 921# CONFIG_WATCHDOG is not set
944 922
945# 923#
@@ -1083,6 +1061,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1083CONFIG_USB_ARCH_HAS_EHCI=y 1061CONFIG_USB_ARCH_HAS_EHCI=y
1084CONFIG_USB=y 1062CONFIG_USB=y
1085# CONFIG_USB_DEBUG is not set 1063# CONFIG_USB_DEBUG is not set
1064# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1086 1065
1087# 1066#
1088# Miscellaneous USB options 1067# Miscellaneous USB options
@@ -1096,9 +1075,9 @@ CONFIG_USB_DEVICE_CLASS=y
1096# USB Host Controller Drivers 1075# USB Host Controller Drivers
1097# 1076#
1098CONFIG_USB_EHCI_HCD=m 1077CONFIG_USB_EHCI_HCD=m
1099# CONFIG_USB_EHCI_SPLIT_ISO is not set
1100# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1078# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1101# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1079# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1080# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1102# CONFIG_USB_ISP116X_HCD is not set 1081# CONFIG_USB_ISP116X_HCD is not set
1103CONFIG_USB_OHCI_HCD=y 1082CONFIG_USB_OHCI_HCD=y
1104# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1083# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -1147,10 +1126,6 @@ CONFIG_USB_MON=y
1147# 1126#
1148# USB port drivers 1127# USB port drivers
1149# 1128#
1150
1151#
1152# USB Serial Converter support
1153#
1154# CONFIG_USB_SERIAL is not set 1129# CONFIG_USB_SERIAL is not set
1155 1130
1156# 1131#
@@ -1176,20 +1151,14 @@ CONFIG_USB_MON=y
1176# CONFIG_USB_TRANCEVIBRATOR is not set 1151# CONFIG_USB_TRANCEVIBRATOR is not set
1177# CONFIG_USB_IOWARRIOR is not set 1152# CONFIG_USB_IOWARRIOR is not set
1178# CONFIG_USB_TEST is not set 1153# CONFIG_USB_TEST is not set
1179
1180#
1181# USB DSL modem support
1182#
1183
1184#
1185# USB Gadget Support
1186#
1187# CONFIG_USB_GADGET is not set 1154# CONFIG_USB_GADGET is not set
1188# CONFIG_MMC is not set 1155# CONFIG_MMC is not set
1156# CONFIG_MEMSTICK is not set
1189# CONFIG_NEW_LEDS is not set 1157# CONFIG_NEW_LEDS is not set
1190# CONFIG_INFINIBAND is not set 1158# CONFIG_INFINIBAND is not set
1191# CONFIG_EDAC is not set 1159# CONFIG_EDAC is not set
1192# CONFIG_RTC_CLASS is not set 1160# CONFIG_RTC_CLASS is not set
1161# CONFIG_DMADEVICES is not set
1193 1162
1194# 1163#
1195# Userspace I/O 1164# Userspace I/O
@@ -1215,12 +1184,10 @@ CONFIG_FS_MBCACHE=y
1215# CONFIG_XFS_FS is not set 1184# CONFIG_XFS_FS is not set
1216# CONFIG_GFS2_FS is not set 1185# CONFIG_GFS2_FS is not set
1217# CONFIG_OCFS2_FS is not set 1186# CONFIG_OCFS2_FS is not set
1218# CONFIG_MINIX_FS is not set 1187CONFIG_DNOTIFY=y
1219# CONFIG_ROMFS_FS is not set
1220CONFIG_INOTIFY=y 1188CONFIG_INOTIFY=y
1221CONFIG_INOTIFY_USER=y 1189CONFIG_INOTIFY_USER=y
1222# CONFIG_QUOTA is not set 1190# CONFIG_QUOTA is not set
1223CONFIG_DNOTIFY=y
1224# CONFIG_AUTOFS_FS is not set 1191# CONFIG_AUTOFS_FS is not set
1225# CONFIG_AUTOFS4_FS is not set 1192# CONFIG_AUTOFS4_FS is not set
1226# CONFIG_FUSE_FS is not set 1193# CONFIG_FUSE_FS is not set
@@ -1267,8 +1234,10 @@ CONFIG_TMPFS=y
1267# CONFIG_EFS_FS is not set 1234# CONFIG_EFS_FS is not set
1268# CONFIG_CRAMFS is not set 1235# CONFIG_CRAMFS is not set
1269# CONFIG_VXFS_FS is not set 1236# CONFIG_VXFS_FS is not set
1237# CONFIG_MINIX_FS is not set
1270# CONFIG_HPFS_FS is not set 1238# CONFIG_HPFS_FS is not set
1271# CONFIG_QNX4FS_FS is not set 1239# CONFIG_QNX4FS_FS is not set
1240# CONFIG_ROMFS_FS is not set
1272# CONFIG_SYSV_FS is not set 1241# CONFIG_SYSV_FS is not set
1273# CONFIG_UFS_FS is not set 1242# CONFIG_UFS_FS is not set
1274CONFIG_NETWORK_FILESYSTEMS=y 1243CONFIG_NETWORK_FILESYSTEMS=y
@@ -1342,7 +1311,6 @@ CONFIG_NLS_ISO8859_1=m
1342# CONFIG_NLS_KOI8_U is not set 1311# CONFIG_NLS_KOI8_U is not set
1343# CONFIG_NLS_UTF8 is not set 1312# CONFIG_NLS_UTF8 is not set
1344# CONFIG_DLM is not set 1313# CONFIG_DLM is not set
1345# CONFIG_UCC_SLOW is not set
1346 1314
1347# 1315#
1348# Library routines 1316# Library routines
@@ -1360,10 +1328,6 @@ CONFIG_PLIST=y
1360CONFIG_HAS_IOMEM=y 1328CONFIG_HAS_IOMEM=y
1361CONFIG_HAS_IOPORT=y 1329CONFIG_HAS_IOPORT=y
1362CONFIG_HAS_DMA=y 1330CONFIG_HAS_DMA=y
1363CONFIG_INSTRUMENTATION=y
1364# CONFIG_PROFILING is not set
1365# CONFIG_KPROBES is not set
1366# CONFIG_MARKERS is not set
1367 1331
1368# 1332#
1369# Kernel hacking 1333# Kernel hacking
@@ -1382,6 +1346,7 @@ CONFIG_SCHED_DEBUG=y
1382# CONFIG_SCHEDSTATS is not set 1346# CONFIG_SCHEDSTATS is not set
1383# CONFIG_TIMER_STATS is not set 1347# CONFIG_TIMER_STATS is not set
1384# CONFIG_SLUB_DEBUG_ON is not set 1348# CONFIG_SLUB_DEBUG_ON is not set
1349# CONFIG_SLUB_STATS is not set
1385# CONFIG_DEBUG_RT_MUTEXES is not set 1350# CONFIG_DEBUG_RT_MUTEXES is not set
1386# CONFIG_RT_MUTEX_TESTER is not set 1351# CONFIG_RT_MUTEX_TESTER is not set
1387# CONFIG_DEBUG_SPINLOCK is not set 1352# CONFIG_DEBUG_SPINLOCK is not set
@@ -1395,9 +1360,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1395# CONFIG_DEBUG_VM is not set 1360# CONFIG_DEBUG_VM is not set
1396# CONFIG_DEBUG_LIST is not set 1361# CONFIG_DEBUG_LIST is not set
1397# CONFIG_DEBUG_SG is not set 1362# CONFIG_DEBUG_SG is not set
1398CONFIG_FORCED_INLINING=y
1399# CONFIG_BOOT_PRINTK_DELAY is not set 1363# CONFIG_BOOT_PRINTK_DELAY is not set
1400# CONFIG_RCU_TORTURE_TEST is not set 1364# CONFIG_RCU_TORTURE_TEST is not set
1365# CONFIG_BACKTRACE_SELF_TEST is not set
1401# CONFIG_FAULT_INJECTION is not set 1366# CONFIG_FAULT_INJECTION is not set
1402# CONFIG_SAMPLES is not set 1367# CONFIG_SAMPLES is not set
1403# CONFIG_DEBUG_STACKOVERFLOW is not set 1368# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1420,6 +1385,7 @@ CONFIG_XMON_DISASSEMBLY=y
1420CONFIG_CRYPTO=y 1385CONFIG_CRYPTO=y
1421CONFIG_CRYPTO_ALGAPI=m 1386CONFIG_CRYPTO_ALGAPI=m
1422CONFIG_CRYPTO_BLKCIPHER=m 1387CONFIG_CRYPTO_BLKCIPHER=m
1388# CONFIG_CRYPTO_SEQIV is not set
1423CONFIG_CRYPTO_MANAGER=m 1389CONFIG_CRYPTO_MANAGER=m
1424# CONFIG_CRYPTO_HMAC is not set 1390# CONFIG_CRYPTO_HMAC is not set
1425# CONFIG_CRYPTO_XCBC is not set 1391# CONFIG_CRYPTO_XCBC is not set
@@ -1437,6 +1403,9 @@ CONFIG_CRYPTO_CBC=m
1437CONFIG_CRYPTO_PCBC=m 1403CONFIG_CRYPTO_PCBC=m
1438# CONFIG_CRYPTO_LRW is not set 1404# CONFIG_CRYPTO_LRW is not set
1439# CONFIG_CRYPTO_XTS is not set 1405# CONFIG_CRYPTO_XTS is not set
1406# CONFIG_CRYPTO_CTR is not set
1407# CONFIG_CRYPTO_GCM is not set
1408# CONFIG_CRYPTO_CCM is not set
1440# CONFIG_CRYPTO_CRYPTD is not set 1409# CONFIG_CRYPTO_CRYPTD is not set
1441# CONFIG_CRYPTO_DES is not set 1410# CONFIG_CRYPTO_DES is not set
1442# CONFIG_CRYPTO_FCRYPT is not set 1411# CONFIG_CRYPTO_FCRYPT is not set
@@ -1451,11 +1420,13 @@ CONFIG_CRYPTO_ARC4=m
1451# CONFIG_CRYPTO_KHAZAD is not set 1420# CONFIG_CRYPTO_KHAZAD is not set
1452# CONFIG_CRYPTO_ANUBIS is not set 1421# CONFIG_CRYPTO_ANUBIS is not set
1453# CONFIG_CRYPTO_SEED is not set 1422# CONFIG_CRYPTO_SEED is not set
1423# CONFIG_CRYPTO_SALSA20 is not set
1454# CONFIG_CRYPTO_DEFLATE is not set 1424# CONFIG_CRYPTO_DEFLATE is not set
1455# CONFIG_CRYPTO_MICHAEL_MIC is not set 1425# CONFIG_CRYPTO_MICHAEL_MIC is not set
1456# CONFIG_CRYPTO_CRC32C is not set 1426# CONFIG_CRYPTO_CRC32C is not set
1457# CONFIG_CRYPTO_CAMELLIA is not set 1427# CONFIG_CRYPTO_CAMELLIA is not set
1458# CONFIG_CRYPTO_TEST is not set 1428# CONFIG_CRYPTO_TEST is not set
1459# CONFIG_CRYPTO_AUTHENC is not set 1429# CONFIG_CRYPTO_AUTHENC is not set
1430# CONFIG_CRYPTO_LZO is not set
1460# CONFIG_CRYPTO_HW is not set 1431# CONFIG_CRYPTO_HW is not set
1461# CONFIG_PPC_CLOCK is not set 1432# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index 01ad5951ade9..2b1504e0a111 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc6
4# Fri Jan 11 14:02:06 2008 4# Mon Mar 24 08:48:09 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -69,11 +70,14 @@ CONFIG_IKCONFIG=y
69CONFIG_IKCONFIG_PROC=y 70CONFIG_IKCONFIG_PROC=y
70CONFIG_LOG_BUF_SHIFT=14 71CONFIG_LOG_BUF_SHIFT=14
71# CONFIG_CGROUPS is not set 72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
72CONFIG_FAIR_GROUP_SCHED=y 74CONFIG_FAIR_GROUP_SCHED=y
73CONFIG_FAIR_USER_SCHED=y 75CONFIG_USER_SCHED=y
74# CONFIG_FAIR_CGROUP_SCHED is not set 76# CONFIG_CGROUP_SCHED is not set
75CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y
76# CONFIG_RELAY is not set 79# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set
77# CONFIG_BLK_DEV_INITRD is not set 81# CONFIG_BLK_DEV_INITRD is not set
78CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
79CONFIG_EMBEDDED=y 83CONFIG_EMBEDDED=y
@@ -85,17 +89,26 @@ CONFIG_HOTPLUG=y
85CONFIG_PRINTK=y 89CONFIG_PRINTK=y
86CONFIG_BUG=y 90CONFIG_BUG=y
87CONFIG_ELF_CORE=y 91CONFIG_ELF_CORE=y
92CONFIG_COMPAT_BRK=y
88CONFIG_BASE_FULL=y 93CONFIG_BASE_FULL=y
89CONFIG_FUTEX=y 94CONFIG_FUTEX=y
90CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
91CONFIG_EPOLL=y 96CONFIG_EPOLL=y
92CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
98CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 100CONFIG_SHMEM=y
95CONFIG_VM_EVENT_COUNTERS=y 101CONFIG_VM_EVENT_COUNTERS=y
96CONFIG_SLAB=y 102CONFIG_SLAB=y
97# CONFIG_SLUB is not set 103# CONFIG_SLUB is not set
98# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
105# CONFIG_PROFILING is not set
106# CONFIG_MARKERS is not set
107CONFIG_HAVE_OPROFILE=y
108CONFIG_HAVE_KPROBES=y
109CONFIG_HAVE_KRETPROBES=y
110CONFIG_PROC_PAGE_MONITOR=y
111CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 112CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set 113# CONFIG_TINY_SHMEM is not set
101CONFIG_BASE_SMALL=0 114CONFIG_BASE_SMALL=0
@@ -117,6 +130,7 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
118# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 132CONFIG_DEFAULT_IOSCHED="deadline"
133CONFIG_CLASSIC_RCU=y
120 134
121# 135#
122# Platform support 136# Platform support
@@ -125,8 +139,8 @@ CONFIG_DEFAULT_IOSCHED="deadline"
125CONFIG_PPC_82xx=y 139CONFIG_PPC_82xx=y
126# CONFIG_PPC_83xx is not set 140# CONFIG_PPC_83xx is not set
127# CONFIG_PPC_86xx is not set 141# CONFIG_PPC_86xx is not set
128# CONFIG_PPC_MPC52xx is not set 142# CONFIG_PPC_MPC512x is not set
129# CONFIG_PPC_MPC5200 is not set 143# CONFIG_PPC_MPC5121 is not set
130# CONFIG_PPC_CELL is not set 144# CONFIG_PPC_CELL is not set
131# CONFIG_PPC_CELL_NATIVE is not set 145# CONFIG_PPC_CELL_NATIVE is not set
132# CONFIG_MPC8272_ADS is not set 146# CONFIG_MPC8272_ADS is not set
@@ -135,6 +149,7 @@ CONFIG_EP8248E=y
135# CONFIG_PQ2ADS is not set 149# CONFIG_PQ2ADS is not set
136CONFIG_8260=y 150CONFIG_8260=y
137CONFIG_8272=y 151CONFIG_8272=y
152# CONFIG_IPIC is not set
138# CONFIG_MPIC is not set 153# CONFIG_MPIC is not set
139# CONFIG_MPIC_WEIRD is not set 154# CONFIG_MPIC_WEIRD is not set
140# CONFIG_PPC_I8259 is not set 155# CONFIG_PPC_I8259 is not set
@@ -163,12 +178,16 @@ CONFIG_HZ_250=y
163# CONFIG_HZ_300 is not set 178# CONFIG_HZ_300 is not set
164# CONFIG_HZ_1000 is not set 179# CONFIG_HZ_1000 is not set
165CONFIG_HZ=250 180CONFIG_HZ=250
181# CONFIG_SCHED_HRTICK is not set
166CONFIG_PREEMPT_NONE=y 182CONFIG_PREEMPT_NONE=y
167# CONFIG_PREEMPT_VOLUNTARY is not set 183# CONFIG_PREEMPT_VOLUNTARY is not set
168# CONFIG_PREEMPT is not set 184# CONFIG_PREEMPT is not set
169CONFIG_BINFMT_ELF=y 185CONFIG_BINFMT_ELF=y
170CONFIG_BINFMT_MISC=y 186CONFIG_BINFMT_MISC=y
187# CONFIG_IOMMU_HELPER is not set
171CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
189CONFIG_ARCH_HAS_WALK_MEMORY=y
190CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
172CONFIG_ARCH_FLATMEM_ENABLE=y 191CONFIG_ARCH_FLATMEM_ENABLE=y
173CONFIG_ARCH_POPULATES_NODE_MAP=y 192CONFIG_ARCH_POPULATES_NODE_MAP=y
174CONFIG_FLATMEM=y 193CONFIG_FLATMEM=y
@@ -183,11 +202,7 @@ CONFIG_VIRT_TO_BUS=y
183CONFIG_PROC_DEVICETREE=y 202CONFIG_PROC_DEVICETREE=y
184# CONFIG_CMDLINE_BOOL is not set 203# CONFIG_CMDLINE_BOOL is not set
185# CONFIG_PM is not set 204# CONFIG_PM is not set
186CONFIG_SUSPEND_UP_POSSIBLE=y
187CONFIG_HIBERNATION_UP_POSSIBLE=y
188# CONFIG_SECCOMP is not set 205# CONFIG_SECCOMP is not set
189CONFIG_WANT_DEVICE_TREE=y
190CONFIG_DEVICE_TREE="ep8248e.dts"
191CONFIG_ISA_DMA_API=y 206CONFIG_ISA_DMA_API=y
192 207
193# 208#
@@ -272,12 +287,13 @@ CONFIG_IPV6_SIT=y
272# CONFIG_NETWORK_SECMARK is not set 287# CONFIG_NETWORK_SECMARK is not set
273CONFIG_NETFILTER=y 288CONFIG_NETFILTER=y
274# CONFIG_NETFILTER_DEBUG is not set 289# CONFIG_NETFILTER_DEBUG is not set
290CONFIG_NETFILTER_ADVANCED=y
275 291
276# 292#
277# Core Netfilter Configuration 293# Core Netfilter Configuration
278# 294#
279# CONFIG_NETFILTER_NETLINK is not set 295# CONFIG_NETFILTER_NETLINK_QUEUE is not set
280# CONFIG_NF_CONNTRACK_ENABLED is not set 296# CONFIG_NETFILTER_NETLINK_LOG is not set
281# CONFIG_NF_CONNTRACK is not set 297# CONFIG_NF_CONNTRACK is not set
282# CONFIG_NETFILTER_XTABLES is not set 298# CONFIG_NETFILTER_XTABLES is not set
283 299
@@ -287,6 +303,13 @@ CONFIG_NETFILTER=y
287# CONFIG_IP_NF_QUEUE is not set 303# CONFIG_IP_NF_QUEUE is not set
288# CONFIG_IP_NF_IPTABLES is not set 304# CONFIG_IP_NF_IPTABLES is not set
289# CONFIG_IP_NF_ARPTABLES is not set 305# CONFIG_IP_NF_ARPTABLES is not set
306
307#
308# IPv6: Netfilter Configuration
309#
310# CONFIG_IP6_NF_QUEUE is not set
311# CONFIG_IP6_NF_IPTABLES is not set
312# CONFIG_ATM is not set
290# CONFIG_BRIDGE is not set 313# CONFIG_BRIDGE is not set
291# CONFIG_VLAN_8021Q is not set 314# CONFIG_VLAN_8021Q is not set
292# CONFIG_DECNET is not set 315# CONFIG_DECNET is not set
@@ -300,6 +323,7 @@ CONFIG_NETFILTER=y
300# 323#
301# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
302# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
303# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
304# CONFIG_BT is not set 328# CONFIG_BT is not set
305 329
@@ -308,6 +332,7 @@ CONFIG_NETFILTER=y
308# 332#
309# CONFIG_CFG80211 is not set 333# CONFIG_CFG80211 is not set
310# CONFIG_WIRELESS_EXT is not set 334# CONFIG_WIRELESS_EXT is not set
335# CONFIG_MAC80211 is not set
311# CONFIG_IEEE80211 is not set 336# CONFIG_IEEE80211 is not set
312# CONFIG_RFKILL is not set 337# CONFIG_RFKILL is not set
313 338
@@ -415,6 +440,7 @@ CONFIG_BLK_DEV_LOOP=y
415# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
416# CONFIG_ATA_OVER_ETH is not set 441# CONFIG_ATA_OVER_ETH is not set
417# CONFIG_MISC_DEVICES is not set 442# CONFIG_MISC_DEVICES is not set
443CONFIG_HAVE_IDE=y
418# CONFIG_IDE is not set 444# CONFIG_IDE is not set
419 445
420# 446#
@@ -448,6 +474,7 @@ CONFIG_DAVICOM_PHY=y
448# CONFIG_SMSC_PHY is not set 474# CONFIG_SMSC_PHY is not set
449# CONFIG_BROADCOM_PHY is not set 475# CONFIG_BROADCOM_PHY is not set
450# CONFIG_ICPLUS_PHY is not set 476# CONFIG_ICPLUS_PHY is not set
477# CONFIG_REALTEK_PHY is not set
451# CONFIG_FIXED_PHY is not set 478# CONFIG_FIXED_PHY is not set
452CONFIG_MDIO_BITBANG=y 479CONFIG_MDIO_BITBANG=y
453CONFIG_NET_ETHERNET=y 480CONFIG_NET_ETHERNET=y
@@ -462,6 +489,8 @@ CONFIG_FS_ENET=y
462CONFIG_FS_ENET_HAS_FCC=y 489CONFIG_FS_ENET_HAS_FCC=y
463# CONFIG_FS_ENET_MDIO_FCC is not set 490# CONFIG_FS_ENET_MDIO_FCC is not set
464CONFIG_NETDEV_1000=y 491CONFIG_NETDEV_1000=y
492# CONFIG_E1000E_ENABLED is not set
493# CONFIG_GIANFAR is not set
465CONFIG_NETDEV_10000=y 494CONFIG_NETDEV_10000=y
466 495
467# 496#
@@ -532,6 +561,7 @@ CONFIG_HW_RANDOM=y
532# CONFIG_W1 is not set 561# CONFIG_W1 is not set
533# CONFIG_POWER_SUPPLY is not set 562# CONFIG_POWER_SUPPLY is not set
534# CONFIG_HWMON is not set 563# CONFIG_HWMON is not set
564# CONFIG_THERMAL is not set
535# CONFIG_WATCHDOG is not set 565# CONFIG_WATCHDOG is not set
536 566
537# 567#
@@ -571,8 +601,10 @@ CONFIG_DAB=y
571# CONFIG_SOUND is not set 601# CONFIG_SOUND is not set
572# CONFIG_USB_SUPPORT is not set 602# CONFIG_USB_SUPPORT is not set
573# CONFIG_MMC is not set 603# CONFIG_MMC is not set
604# CONFIG_MEMSTICK is not set
574# CONFIG_NEW_LEDS is not set 605# CONFIG_NEW_LEDS is not set
575# CONFIG_RTC_CLASS is not set 606# CONFIG_RTC_CLASS is not set
607# CONFIG_DMADEVICES is not set
576 608
577# 609#
578# Userspace I/O 610# Userspace I/O
@@ -593,12 +625,10 @@ CONFIG_JBD=y
593# CONFIG_FS_POSIX_ACL is not set 625# CONFIG_FS_POSIX_ACL is not set
594# CONFIG_XFS_FS is not set 626# CONFIG_XFS_FS is not set
595# CONFIG_OCFS2_FS is not set 627# CONFIG_OCFS2_FS is not set
596# CONFIG_MINIX_FS is not set 628CONFIG_DNOTIFY=y
597# CONFIG_ROMFS_FS is not set
598CONFIG_INOTIFY=y 629CONFIG_INOTIFY=y
599CONFIG_INOTIFY_USER=y 630CONFIG_INOTIFY_USER=y
600# CONFIG_QUOTA is not set 631# CONFIG_QUOTA is not set
601CONFIG_DNOTIFY=y
602# CONFIG_AUTOFS_FS is not set 632# CONFIG_AUTOFS_FS is not set
603CONFIG_AUTOFS4_FS=y 633CONFIG_AUTOFS4_FS=y
604# CONFIG_FUSE_FS is not set 634# CONFIG_FUSE_FS is not set
@@ -626,6 +656,7 @@ CONFIG_SYSFS=y
626CONFIG_TMPFS=y 656CONFIG_TMPFS=y
627# CONFIG_TMPFS_POSIX_ACL is not set 657# CONFIG_TMPFS_POSIX_ACL is not set
628# CONFIG_HUGETLB_PAGE is not set 658# CONFIG_HUGETLB_PAGE is not set
659# CONFIG_CONFIGFS_FS is not set
629 660
630# 661#
631# Miscellaneous filesystems 662# Miscellaneous filesystems
@@ -634,8 +665,10 @@ CONFIG_TMPFS=y
634# CONFIG_JFFS2_FS is not set 665# CONFIG_JFFS2_FS is not set
635CONFIG_CRAMFS=y 666CONFIG_CRAMFS=y
636# CONFIG_VXFS_FS is not set 667# CONFIG_VXFS_FS is not set
668# CONFIG_MINIX_FS is not set
637# CONFIG_HPFS_FS is not set 669# CONFIG_HPFS_FS is not set
638# CONFIG_QNX4FS_FS is not set 670# CONFIG_QNX4FS_FS is not set
671# CONFIG_ROMFS_FS is not set
639# CONFIG_SYSV_FS is not set 672# CONFIG_SYSV_FS is not set
640# CONFIG_UFS_FS is not set 673# CONFIG_UFS_FS is not set
641CONFIG_NETWORK_FILESYSTEMS=y 674CONFIG_NETWORK_FILESYSTEMS=y
@@ -715,7 +748,6 @@ CONFIG_NLS_ISO8859_1=y
715# CONFIG_NLS_KOI8_R is not set 748# CONFIG_NLS_KOI8_R is not set
716# CONFIG_NLS_KOI8_U is not set 749# CONFIG_NLS_KOI8_U is not set
717CONFIG_NLS_UTF8=y 750CONFIG_NLS_UTF8=y
718# CONFIG_UCC_SLOW is not set
719 751
720# 752#
721# Library routines 753# Library routines
@@ -731,9 +763,6 @@ CONFIG_PLIST=y
731CONFIG_HAS_IOMEM=y 763CONFIG_HAS_IOMEM=y
732CONFIG_HAS_IOPORT=y 764CONFIG_HAS_IOPORT=y
733CONFIG_HAS_DMA=y 765CONFIG_HAS_DMA=y
734CONFIG_INSTRUMENTATION=y
735# CONFIG_PROFILING is not set
736# CONFIG_MARKERS is not set
737 766
738# 767#
739# Kernel hacking 768# Kernel hacking
@@ -764,8 +793,8 @@ CONFIG_DEBUG_INFO=y
764# CONFIG_DEBUG_VM is not set 793# CONFIG_DEBUG_VM is not set
765# CONFIG_DEBUG_LIST is not set 794# CONFIG_DEBUG_LIST is not set
766# CONFIG_DEBUG_SG is not set 795# CONFIG_DEBUG_SG is not set
767CONFIG_FORCED_INLINING=y
768# CONFIG_BOOT_PRINTK_DELAY is not set 796# CONFIG_BOOT_PRINTK_DELAY is not set
797# CONFIG_BACKTRACE_SELF_TEST is not set
769# CONFIG_FAULT_INJECTION is not set 798# CONFIG_FAULT_INJECTION is not set
770# CONFIG_SAMPLES is not set 799# CONFIG_SAMPLES is not set
771# CONFIG_DEBUG_STACKOVERFLOW is not set 800# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -784,6 +813,7 @@ CONFIG_BDI_SWITCH=y
784CONFIG_CRYPTO=y 813CONFIG_CRYPTO=y
785CONFIG_CRYPTO_ALGAPI=y 814CONFIG_CRYPTO_ALGAPI=y
786CONFIG_CRYPTO_BLKCIPHER=y 815CONFIG_CRYPTO_BLKCIPHER=y
816# CONFIG_CRYPTO_SEQIV is not set
787CONFIG_CRYPTO_MANAGER=y 817CONFIG_CRYPTO_MANAGER=y
788# CONFIG_CRYPTO_HMAC is not set 818# CONFIG_CRYPTO_HMAC is not set
789# CONFIG_CRYPTO_NULL is not set 819# CONFIG_CRYPTO_NULL is not set
@@ -797,6 +827,9 @@ CONFIG_CRYPTO_MD5=y
797CONFIG_CRYPTO_ECB=y 827CONFIG_CRYPTO_ECB=y
798CONFIG_CRYPTO_CBC=y 828CONFIG_CRYPTO_CBC=y
799CONFIG_CRYPTO_PCBC=y 829CONFIG_CRYPTO_PCBC=y
830# CONFIG_CRYPTO_CTR is not set
831# CONFIG_CRYPTO_GCM is not set
832# CONFIG_CRYPTO_CCM is not set
800# CONFIG_CRYPTO_CRYPTD is not set 833# CONFIG_CRYPTO_CRYPTD is not set
801CONFIG_CRYPTO_DES=y 834CONFIG_CRYPTO_DES=y
802# CONFIG_CRYPTO_FCRYPT is not set 835# CONFIG_CRYPTO_FCRYPT is not set
@@ -816,6 +849,7 @@ CONFIG_CRYPTO_DES=y
816# CONFIG_CRYPTO_CRC32C is not set 849# CONFIG_CRYPTO_CRC32C is not set
817# CONFIG_CRYPTO_CAMELLIA is not set 850# CONFIG_CRYPTO_CAMELLIA is not set
818# CONFIG_CRYPTO_AUTHENC is not set 851# CONFIG_CRYPTO_AUTHENC is not set
852# CONFIG_CRYPTO_LZO is not set
819# CONFIG_CRYPTO_HW is not set 853# CONFIG_CRYPTO_HW is not set
820# CONFIG_PPC_CLOCK is not set 854# CONFIG_PPC_CLOCK is not set
821CONFIG_PPC_LIB_RHEAP=y 855CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index a1f98200d9e3..125b4764aadd 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:13 2007 4# Mon Mar 24 08:48:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -63,15 +64,19 @@ CONFIG_SYSVIPC_SYSCTL=y
63# CONFIG_POSIX_MQUEUE is not set 64# CONFIG_POSIX_MQUEUE is not set
64# CONFIG_BSD_PROCESS_ACCT is not set 65# CONFIG_BSD_PROCESS_ACCT is not set
65# CONFIG_TASKSTATS is not set 66# CONFIG_TASKSTATS is not set
66# CONFIG_USER_NS is not set
67# CONFIG_PID_NS is not set
68# CONFIG_AUDIT is not set 67# CONFIG_AUDIT is not set
69# CONFIG_IKCONFIG is not set 68# CONFIG_IKCONFIG is not set
70CONFIG_LOG_BUF_SHIFT=14 69CONFIG_LOG_BUF_SHIFT=14
71# CONFIG_CGROUPS is not set 70# CONFIG_CGROUPS is not set
71CONFIG_GROUP_SCHED=y
72# CONFIG_FAIR_GROUP_SCHED is not set 72# CONFIG_FAIR_GROUP_SCHED is not set
73# CONFIG_RT_GROUP_SCHED is not set
74CONFIG_USER_SCHED=y
75# CONFIG_CGROUP_SCHED is not set
73CONFIG_SYSFS_DEPRECATED=y 76CONFIG_SYSFS_DEPRECATED=y
77CONFIG_SYSFS_DEPRECATED_V2=y
74# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
75# CONFIG_BLK_DEV_INITRD is not set 80# CONFIG_BLK_DEV_INITRD is not set
76# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
77CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
@@ -84,11 +89,13 @@ CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 89CONFIG_PRINTK=y
85CONFIG_BUG=y 90CONFIG_BUG=y
86# CONFIG_ELF_CORE is not set 91# CONFIG_ELF_CORE is not set
92CONFIG_COMPAT_BRK=y
87# CONFIG_BASE_FULL is not set 93# CONFIG_BASE_FULL is not set
88# CONFIG_FUTEX is not set 94# CONFIG_FUTEX is not set
89CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
90CONFIG_EPOLL=y 96CONFIG_EPOLL=y
91CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
98CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 100CONFIG_SHMEM=y
94# CONFIG_VM_EVENT_COUNTERS is not set 101# CONFIG_VM_EVENT_COUNTERS is not set
@@ -96,6 +103,13 @@ CONFIG_SLUB_DEBUG=y
96# CONFIG_SLAB is not set 103# CONFIG_SLAB is not set
97CONFIG_SLUB=y 104CONFIG_SLUB=y
98# CONFIG_SLOB is not set 105# CONFIG_SLOB is not set
106# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y
111CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y
99# CONFIG_TINY_SHMEM is not set 113# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=1 114CONFIG_BASE_SMALL=1
101# CONFIG_MODULES is not set 115# CONFIG_MODULES is not set
@@ -117,12 +131,13 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
118# CONFIG_DEFAULT_NOOP is not set 132# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 133CONFIG_DEFAULT_IOSCHED="deadline"
134CONFIG_CLASSIC_RCU=y
120 135
121# 136#
122# Platform support 137# Platform support
123# 138#
124# CONFIG_PPC_MPC52xx is not set 139# CONFIG_PPC_MPC512x is not set
125# CONFIG_PPC_MPC5200 is not set 140# CONFIG_PPC_MPC5121 is not set
126# CONFIG_PPC_CELL is not set 141# CONFIG_PPC_CELL is not set
127# CONFIG_PPC_CELL_NATIVE is not set 142# CONFIG_PPC_CELL_NATIVE is not set
128CONFIG_CPM1=y 143CONFIG_CPM1=y
@@ -130,6 +145,7 @@ CONFIG_CPM1=y
130# CONFIG_MPC86XADS is not set 145# CONFIG_MPC86XADS is not set
131# CONFIG_MPC885ADS is not set 146# CONFIG_MPC885ADS is not set
132CONFIG_PPC_EP88XC=y 147CONFIG_PPC_EP88XC=y
148# CONFIG_PPC_ADDER875 is not set
133 149
134# 150#
135# MPC8xx CPM Options 151# MPC8xx CPM Options
@@ -146,6 +162,7 @@ CONFIG_NO_UCODE_PATCH=y
146# CONFIG_I2C_SPI_UCODE_PATCH is not set 162# CONFIG_I2C_SPI_UCODE_PATCH is not set
147# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set 163# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set
148# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
165# CONFIG_IPIC is not set
149# CONFIG_MPIC is not set 166# CONFIG_MPIC is not set
150# CONFIG_MPIC_WEIRD is not set 167# CONFIG_MPIC_WEIRD is not set
151# CONFIG_PPC_I8259 is not set 168# CONFIG_PPC_I8259 is not set
@@ -156,7 +173,6 @@ CONFIG_NO_UCODE_PATCH=y
156# CONFIG_PPC_INDIRECT_IO is not set 173# CONFIG_PPC_INDIRECT_IO is not set
157# CONFIG_GENERIC_IOMAP is not set 174# CONFIG_GENERIC_IOMAP is not set
158# CONFIG_CPU_FREQ is not set 175# CONFIG_CPU_FREQ is not set
159# CONFIG_CPM2 is not set
160CONFIG_PPC_CPM_NEW_BINDING=y 176CONFIG_PPC_CPM_NEW_BINDING=y
161# CONFIG_FSL_ULI1575 is not set 177# CONFIG_FSL_ULI1575 is not set
162CONFIG_CPM=y 178CONFIG_CPM=y
@@ -174,6 +190,7 @@ CONFIG_HZ_100=y
174# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
176CONFIG_HZ=100 192CONFIG_HZ=100
193# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
@@ -181,7 +198,10 @@ CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
182# CONFIG_MATH_EMULATION is not set 199# CONFIG_MATH_EMULATION is not set
183CONFIG_8XX_MINIMAL_FPEMU=y 200CONFIG_8XX_MINIMAL_FPEMU=y
201# CONFIG_IOMMU_HELPER is not set
184CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
185CONFIG_ARCH_FLATMEM_ENABLE=y 205CONFIG_ARCH_FLATMEM_ENABLE=y
186CONFIG_ARCH_POPULATES_NODE_MAP=y 206CONFIG_ARCH_POPULATES_NODE_MAP=y
187CONFIG_SELECT_MEMORY_MODEL=y 207CONFIG_SELECT_MEMORY_MODEL=y
@@ -200,11 +220,7 @@ CONFIG_VIRT_TO_BUS=y
200CONFIG_PROC_DEVICETREE=y 220CONFIG_PROC_DEVICETREE=y
201# CONFIG_CMDLINE_BOOL is not set 221# CONFIG_CMDLINE_BOOL is not set
202# CONFIG_PM is not set 222# CONFIG_PM is not set
203CONFIG_SUSPEND_UP_POSSIBLE=y
204CONFIG_HIBERNATION_UP_POSSIBLE=y
205# CONFIG_SECCOMP is not set 223# CONFIG_SECCOMP is not set
206CONFIG_WANT_DEVICE_TREE=y
207CONFIG_DEVICE_TREE="ep88xc.dts"
208CONFIG_ISA_DMA_API=y 224CONFIG_ISA_DMA_API=y
209 225
210# 226#
@@ -301,6 +317,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
301# 317#
302# CONFIG_NET_PKTGEN is not set 318# CONFIG_NET_PKTGEN is not set
303# CONFIG_HAMRADIO is not set 319# CONFIG_HAMRADIO is not set
320# CONFIG_CAN is not set
304# CONFIG_IRDA is not set 321# CONFIG_IRDA is not set
305# CONFIG_BT is not set 322# CONFIG_BT is not set
306# CONFIG_AF_RXRPC is not set 323# CONFIG_AF_RXRPC is not set
@@ -407,6 +424,7 @@ CONFIG_OF_DEVICE=y
407# CONFIG_PARPORT is not set 424# CONFIG_PARPORT is not set
408# CONFIG_BLK_DEV is not set 425# CONFIG_BLK_DEV is not set
409# CONFIG_MISC_DEVICES is not set 426# CONFIG_MISC_DEVICES is not set
427CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set 428# CONFIG_IDE is not set
411 429
412# 430#
@@ -441,6 +459,7 @@ CONFIG_LXT_PHY=y
441# CONFIG_SMSC_PHY is not set 459# CONFIG_SMSC_PHY is not set
442# CONFIG_BROADCOM_PHY is not set 460# CONFIG_BROADCOM_PHY is not set
443# CONFIG_ICPLUS_PHY is not set 461# CONFIG_ICPLUS_PHY is not set
462# CONFIG_REALTEK_PHY is not set
444# CONFIG_FIXED_PHY is not set 463# CONFIG_FIXED_PHY is not set
445# CONFIG_MDIO_BITBANG is not set 464# CONFIG_MDIO_BITBANG is not set
446CONFIG_NET_ETHERNET=y 465CONFIG_NET_ETHERNET=y
@@ -465,7 +484,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
465# CONFIG_WAN is not set 484# CONFIG_WAN is not set
466# CONFIG_PPP is not set 485# CONFIG_PPP is not set
467# CONFIG_SLIP is not set 486# CONFIG_SLIP is not set
468# CONFIG_SHAPER is not set
469# CONFIG_NETCONSOLE is not set 487# CONFIG_NETCONSOLE is not set
470# CONFIG_NETPOLL is not set 488# CONFIG_NETPOLL is not set
471# CONFIG_NET_POLL_CONTROLLER is not set 489# CONFIG_NET_POLL_CONTROLLER is not set
@@ -528,6 +546,7 @@ CONFIG_GEN_RTC=y
528# CONFIG_W1 is not set 546# CONFIG_W1 is not set
529# CONFIG_POWER_SUPPLY is not set 547# CONFIG_POWER_SUPPLY is not set
530# CONFIG_HWMON is not set 548# CONFIG_HWMON is not set
549# CONFIG_THERMAL is not set
531# CONFIG_WATCHDOG is not set 550# CONFIG_WATCHDOG is not set
532 551
533# 552#
@@ -567,9 +586,11 @@ CONFIG_DAB=y
567# CONFIG_SOUND is not set 586# CONFIG_SOUND is not set
568# CONFIG_USB_SUPPORT is not set 587# CONFIG_USB_SUPPORT is not set
569# CONFIG_MMC is not set 588# CONFIG_MMC is not set
589# CONFIG_MEMSTICK is not set
570# CONFIG_NEW_LEDS is not set 590# CONFIG_NEW_LEDS is not set
571# CONFIG_EDAC is not set 591# CONFIG_EDAC is not set
572# CONFIG_RTC_CLASS is not set 592# CONFIG_RTC_CLASS is not set
593# CONFIG_DMADEVICES is not set
573 594
574# 595#
575# Userspace I/O 596# Userspace I/O
@@ -588,11 +609,9 @@ CONFIG_DAB=y
588# CONFIG_XFS_FS is not set 609# CONFIG_XFS_FS is not set
589# CONFIG_GFS2_FS is not set 610# CONFIG_GFS2_FS is not set
590# CONFIG_OCFS2_FS is not set 611# CONFIG_OCFS2_FS is not set
591# CONFIG_MINIX_FS is not set 612# CONFIG_DNOTIFY is not set
592# CONFIG_ROMFS_FS is not set
593# CONFIG_INOTIFY is not set 613# CONFIG_INOTIFY is not set
594# CONFIG_QUOTA is not set 614# CONFIG_QUOTA is not set
595# CONFIG_DNOTIFY is not set
596# CONFIG_AUTOFS_FS is not set 615# CONFIG_AUTOFS_FS is not set
597# CONFIG_AUTOFS4_FS is not set 616# CONFIG_AUTOFS4_FS is not set
598# CONFIG_FUSE_FS is not set 617# CONFIG_FUSE_FS is not set
@@ -635,8 +654,10 @@ CONFIG_TMPFS=y
635# CONFIG_JFFS2_FS is not set 654# CONFIG_JFFS2_FS is not set
636CONFIG_CRAMFS=y 655CONFIG_CRAMFS=y
637# CONFIG_VXFS_FS is not set 656# CONFIG_VXFS_FS is not set
657# CONFIG_MINIX_FS is not set
638# CONFIG_HPFS_FS is not set 658# CONFIG_HPFS_FS is not set
639# CONFIG_QNX4FS_FS is not set 659# CONFIG_QNX4FS_FS is not set
660# CONFIG_ROMFS_FS is not set
640# CONFIG_SYSV_FS is not set 661# CONFIG_SYSV_FS is not set
641# CONFIG_UFS_FS is not set 662# CONFIG_UFS_FS is not set
642CONFIG_NETWORK_FILESYSTEMS=y 663CONFIG_NETWORK_FILESYSTEMS=y
@@ -683,7 +704,6 @@ CONFIG_MSDOS_PARTITION=y
683# CONFIG_SYSV68_PARTITION is not set 704# CONFIG_SYSV68_PARTITION is not set
684# CONFIG_NLS is not set 705# CONFIG_NLS is not set
685# CONFIG_DLM is not set 706# CONFIG_DLM is not set
686# CONFIG_UCC_SLOW is not set
687 707
688# 708#
689# Library routines 709# Library routines
@@ -698,7 +718,6 @@ CONFIG_ZLIB_INFLATE=y
698CONFIG_HAS_IOMEM=y 718CONFIG_HAS_IOMEM=y
699CONFIG_HAS_IOPORT=y 719CONFIG_HAS_IOPORT=y
700CONFIG_HAS_DMA=y 720CONFIG_HAS_DMA=y
701# CONFIG_INSTRUMENTATION is not set
702 721
703# 722#
704# Kernel hacking 723# Kernel hacking
@@ -717,6 +736,7 @@ CONFIG_SCHED_DEBUG=y
717# CONFIG_SCHEDSTATS is not set 736# CONFIG_SCHEDSTATS is not set
718# CONFIG_TIMER_STATS is not set 737# CONFIG_TIMER_STATS is not set
719# CONFIG_SLUB_DEBUG_ON is not set 738# CONFIG_SLUB_DEBUG_ON is not set
739# CONFIG_SLUB_STATS is not set
720# CONFIG_DEBUG_SPINLOCK is not set 740# CONFIG_DEBUG_SPINLOCK is not set
721# CONFIG_DEBUG_MUTEXES is not set 741# CONFIG_DEBUG_MUTEXES is not set
722# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 742# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
@@ -727,8 +747,8 @@ CONFIG_DEBUG_INFO=y
727# CONFIG_DEBUG_VM is not set 747# CONFIG_DEBUG_VM is not set
728# CONFIG_DEBUG_LIST is not set 748# CONFIG_DEBUG_LIST is not set
729# CONFIG_DEBUG_SG is not set 749# CONFIG_DEBUG_SG is not set
730CONFIG_FORCED_INLINING=y
731# CONFIG_BOOT_PRINTK_DELAY is not set 750# CONFIG_BOOT_PRINTK_DELAY is not set
751# CONFIG_BACKTRACE_SELF_TEST is not set
732# CONFIG_FAULT_INJECTION is not set 752# CONFIG_FAULT_INJECTION is not set
733# CONFIG_SAMPLES is not set 753# CONFIG_SAMPLES is not set
734# CONFIG_DEBUG_STACKOVERFLOW is not set 754# CONFIG_DEBUG_STACKOVERFLOW is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 3673dd23120c..0f82f66a60f8 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:15 2007 4# Thu Mar 20 10:36:41 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 33CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -48,7 +49,9 @@ CONFIG_GENERIC_TBSYNC=y
48CONFIG_AUDIT_ARCH=y 49CONFIG_AUDIT_ARCH=y
49CONFIG_GENERIC_BUG=y 50CONFIG_GENERIC_BUG=y
50# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
51CONFIG_PPC64_SWSUSP=y 52CONFIG_HIBERNATE_64=y
53CONFIG_ARCH_HIBERNATION_POSSIBLE=y
54CONFIG_ARCH_SUSPEND_POSSIBLE=y
52# CONFIG_PPC_DCR_NATIVE is not set 55# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 56# CONFIG_PPC_DCR_MMIO is not set
54# CONFIG_PPC_OF_PLATFORM_PCI is not set 57# CONFIG_PPC_OF_PLATFORM_PCI is not set
@@ -68,18 +71,22 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 71CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
74CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=17 77CONFIG_LOG_BUF_SHIFT=17
77# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
78CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
79CONFIG_FAIR_USER_SCHED=y 80# CONFIG_USER_SCHED is not set
80# CONFIG_FAIR_CGROUP_SCHED is not set 81# CONFIG_CGROUP_SCHED is not set
81CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_NAMESPACES=y
86# CONFIG_UTS_NS is not set
87# CONFIG_IPC_NS is not set
88# CONFIG_USER_NS is not set
89# CONFIG_PID_NS is not set
83CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
84CONFIG_INITRAMFS_SOURCE="" 91CONFIG_INITRAMFS_SOURCE=""
85CONFIG_CC_OPTIMIZE_FOR_SIZE=y 92CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -93,11 +100,13 @@ CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 100CONFIG_PRINTK=y
94CONFIG_BUG=y 101CONFIG_BUG=y
95CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
96CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 105CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 107CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
101CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 111CONFIG_SHMEM=y
103CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -105,6 +114,15 @@ CONFIG_SLUB_DEBUG=y
105# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
106CONFIG_SLUB=y 115CONFIG_SLUB=y
107# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117CONFIG_PROFILING=y
118# CONFIG_MARKERS is not set
119CONFIG_OPROFILE=y
120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set
122CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y
124CONFIG_PROC_PAGE_MONITOR=y
125CONFIG_SLABINFO=y
108CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
109# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
110CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
@@ -132,6 +150,7 @@ CONFIG_DEFAULT_AS=y
132# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
133# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
134CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y
135 154
136# 155#
137# Platform support 156# Platform support
@@ -142,8 +161,8 @@ CONFIG_PPC_MULTIPLATFORM=y
142# CONFIG_PPC_86xx is not set 161# CONFIG_PPC_86xx is not set
143# CONFIG_PPC_PSERIES is not set 162# CONFIG_PPC_PSERIES is not set
144# CONFIG_PPC_ISERIES is not set 163# CONFIG_PPC_ISERIES is not set
145# CONFIG_PPC_MPC52xx is not set 164# CONFIG_PPC_MPC512x is not set
146# CONFIG_PPC_MPC5200 is not set 165# CONFIG_PPC_MPC5121 is not set
147CONFIG_PPC_PMAC=y 166CONFIG_PPC_PMAC=y
148CONFIG_PPC_PMAC64=y 167CONFIG_PPC_PMAC64=y
149# CONFIG_PPC_MAPLE is not set 168# CONFIG_PPC_MAPLE is not set
@@ -155,6 +174,7 @@ CONFIG_PPC_PMAC64=y
155# CONFIG_PPC_IBM_CELL_BLADE is not set 174# CONFIG_PPC_IBM_CELL_BLADE is not set
156# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
157CONFIG_PPC_NATIVE=y 176CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set
158CONFIG_MPIC=y 178CONFIG_MPIC=y
159# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
160# CONFIG_PPC_I8259 is not set 180# CONFIG_PPC_I8259 is not set
@@ -185,7 +205,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
185# CPU Frequency drivers 205# CPU Frequency drivers
186# 206#
187CONFIG_CPU_FREQ_PMAC64=y 207CONFIG_CPU_FREQ_PMAC64=y
188# CONFIG_CPM2 is not set
189# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
190 209
191# 210#
@@ -200,17 +219,21 @@ CONFIG_HZ_250=y
200# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
201# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
202CONFIG_HZ=250 221CONFIG_HZ=250
222# CONFIG_SCHED_HRTICK is not set
203CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
204# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
205# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
206# CONFIG_PREEMPT_BKL is not set
207CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227CONFIG_COMPAT_BINFMT_ELF=y
208# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
209CONFIG_FORCE_MAX_ZONEORDER=13 229CONFIG_FORCE_MAX_ZONEORDER=13
210CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 230CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
211CONFIG_IOMMU_VMERGE=y 231CONFIG_IOMMU_VMERGE=y
232CONFIG_IOMMU_HELPER=y
212# CONFIG_HOTPLUG_CPU is not set 233# CONFIG_HOTPLUG_CPU is not set
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 234CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
235CONFIG_ARCH_HAS_WALK_MEMORY=y
236CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
214CONFIG_KEXEC=y 237CONFIG_KEXEC=y
215# CONFIG_CRASH_DUMP is not set 238# CONFIG_CRASH_DUMP is not set
216CONFIG_IRQ_ALL_CPUS=y 239CONFIG_IRQ_ALL_CPUS=y
@@ -236,11 +259,9 @@ CONFIG_BOUNCE=y
236# CONFIG_SCHED_SMT is not set 259# CONFIG_SCHED_SMT is not set
237CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
262CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
239# CONFIG_PM is not set 263# CONFIG_PM is not set
240CONFIG_SUSPEND_SMP_POSSIBLE=y
241CONFIG_HIBERNATION_SMP_POSSIBLE=y
242CONFIG_SECCOMP=y 264CONFIG_SECCOMP=y
243# CONFIG_WANT_DEVICE_TREE is not set
244CONFIG_ISA_DMA_API=y 265CONFIG_ISA_DMA_API=y
245 266
246# 267#
@@ -276,6 +297,7 @@ CONFIG_XFRM=y
276CONFIG_XFRM_USER=m 297CONFIG_XFRM_USER=m
277# CONFIG_XFRM_SUB_POLICY is not set 298# CONFIG_XFRM_SUB_POLICY is not set
278# CONFIG_XFRM_MIGRATE is not set 299# CONFIG_XFRM_MIGRATE is not set
300# CONFIG_XFRM_STATISTICS is not set
279CONFIG_NET_KEY=m 301CONFIG_NET_KEY=m
280# CONFIG_NET_KEY_MIGRATE is not set 302# CONFIG_NET_KEY_MIGRATE is not set
281CONFIG_INET=y 303CONFIG_INET=y
@@ -310,12 +332,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
310# CONFIG_NETWORK_SECMARK is not set 332# CONFIG_NETWORK_SECMARK is not set
311CONFIG_NETFILTER=y 333CONFIG_NETFILTER=y
312# CONFIG_NETFILTER_DEBUG is not set 334# CONFIG_NETFILTER_DEBUG is not set
335CONFIG_NETFILTER_ADVANCED=y
313 336
314# 337#
315# Core Netfilter Configuration 338# Core Netfilter Configuration
316# 339#
317# CONFIG_NETFILTER_NETLINK is not set 340CONFIG_NETFILTER_NETLINK=m
318CONFIG_NF_CONNTRACK_ENABLED=m 341CONFIG_NETFILTER_NETLINK_QUEUE=m
342CONFIG_NETFILTER_NETLINK_LOG=m
319CONFIG_NF_CONNTRACK=m 343CONFIG_NF_CONNTRACK=m
320# CONFIG_NF_CT_ACCT is not set 344# CONFIG_NF_CT_ACCT is not set
321CONFIG_NF_CONNTRACK_MARK=y 345CONFIG_NF_CONNTRACK_MARK=y
@@ -331,6 +355,7 @@ CONFIG_NF_CONNTRACK_IRC=m
331# CONFIG_NF_CONNTRACK_SANE is not set 355# CONFIG_NF_CONNTRACK_SANE is not set
332# CONFIG_NF_CONNTRACK_SIP is not set 356# CONFIG_NF_CONNTRACK_SIP is not set
333CONFIG_NF_CONNTRACK_TFTP=m 357CONFIG_NF_CONNTRACK_TFTP=m
358CONFIG_NF_CT_NETLINK=m
334# CONFIG_NETFILTER_XTABLES is not set 359# CONFIG_NETFILTER_XTABLES is not set
335 360
336# 361#
@@ -363,6 +388,7 @@ CONFIG_LLC=y
363# 388#
364# CONFIG_NET_PKTGEN is not set 389# CONFIG_NET_PKTGEN is not set
365# CONFIG_HAMRADIO is not set 390# CONFIG_HAMRADIO is not set
391# CONFIG_CAN is not set
366# CONFIG_IRDA is not set 392# CONFIG_IRDA is not set
367# CONFIG_BT is not set 393# CONFIG_BT is not set
368# CONFIG_AF_RXRPC is not set 394# CONFIG_AF_RXRPC is not set
@@ -409,7 +435,7 @@ CONFIG_BLK_DEV_NBD=m
409CONFIG_BLK_DEV_RAM=y 435CONFIG_BLK_DEV_RAM=y
410CONFIG_BLK_DEV_RAM_COUNT=16 436CONFIG_BLK_DEV_RAM_COUNT=16
411CONFIG_BLK_DEV_RAM_SIZE=65536 437CONFIG_BLK_DEV_RAM_SIZE=65536
412CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 438# CONFIG_BLK_DEV_XIP is not set
413CONFIG_CDROM_PKTCDVD=m 439CONFIG_CDROM_PKTCDVD=m
414CONFIG_CDROM_PKTCDVD_BUFFERS=8 440CONFIG_CDROM_PKTCDVD_BUFFERS=8
415# CONFIG_CDROM_PKTCDVD_WCACHE is not set 441# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -419,16 +445,19 @@ CONFIG_MISC_DEVICES=y
419# CONFIG_EEPROM_93CX6 is not set 445# CONFIG_EEPROM_93CX6 is not set
420# CONFIG_SGI_IOC4 is not set 446# CONFIG_SGI_IOC4 is not set
421# CONFIG_TIFM_CORE is not set 447# CONFIG_TIFM_CORE is not set
448# CONFIG_ENCLOSURE_SERVICES is not set
449CONFIG_HAVE_IDE=y
422CONFIG_IDE=y 450CONFIG_IDE=y
423CONFIG_BLK_DEV_IDE=y 451CONFIG_BLK_DEV_IDE=y
424 452
425# 453#
426# Please see Documentation/ide.txt for help/info on IDE drives 454# Please see Documentation/ide/ide.txt for help/info on IDE drives
427# 455#
428# CONFIG_BLK_DEV_IDE_SATA is not set 456# CONFIG_BLK_DEV_IDE_SATA is not set
429CONFIG_BLK_DEV_IDEDISK=y 457CONFIG_BLK_DEV_IDEDISK=y
430# CONFIG_IDEDISK_MULTI_MODE is not set 458# CONFIG_IDEDISK_MULTI_MODE is not set
431CONFIG_BLK_DEV_IDECD=y 459CONFIG_BLK_DEV_IDECD=y
460CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
432# CONFIG_BLK_DEV_IDETAPE is not set 461# CONFIG_BLK_DEV_IDETAPE is not set
433# CONFIG_BLK_DEV_IDEFLOPPY is not set 462# CONFIG_BLK_DEV_IDEFLOPPY is not set
434# CONFIG_BLK_DEV_IDESCSI is not set 463# CONFIG_BLK_DEV_IDESCSI is not set
@@ -440,12 +469,12 @@ CONFIG_IDE_PROC_FS=y
440# 469#
441CONFIG_IDE_GENERIC=y 470CONFIG_IDE_GENERIC=y
442# CONFIG_BLK_DEV_PLATFORM is not set 471# CONFIG_BLK_DEV_PLATFORM is not set
472CONFIG_BLK_DEV_IDEDMA_SFF=y
443 473
444# 474#
445# PCI IDE chipsets support 475# PCI IDE chipsets support
446# 476#
447CONFIG_BLK_DEV_IDEPCI=y 477CONFIG_BLK_DEV_IDEPCI=y
448# CONFIG_IDEPCI_SHARE_IRQ is not set
449CONFIG_IDEPCI_PCIBUS_ORDER=y 478CONFIG_IDEPCI_PCIBUS_ORDER=y
450# CONFIG_BLK_DEV_GENERIC is not set 479# CONFIG_BLK_DEV_GENERIC is not set
451# CONFIG_BLK_DEV_OPTI621 is not set 480# CONFIG_BLK_DEV_OPTI621 is not set
@@ -478,7 +507,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
478CONFIG_BLK_DEV_IDE_PMAC=y 507CONFIG_BLK_DEV_IDE_PMAC=y
479CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 508CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
480CONFIG_BLK_DEV_IDEDMA_PMAC=y 509CONFIG_BLK_DEV_IDEDMA_PMAC=y
481# CONFIG_IDE_ARM is not set
482CONFIG_BLK_DEV_IDEDMA=y 510CONFIG_BLK_DEV_IDEDMA=y
483CONFIG_IDE_ARCH_OBSOLETE_INIT=y 511CONFIG_IDE_ARCH_OBSOLETE_INIT=y
484# CONFIG_BLK_DEV_HD is not set 512# CONFIG_BLK_DEV_HD is not set
@@ -544,6 +572,7 @@ CONFIG_SCSI_LOWLEVEL=y
544# CONFIG_SCSI_IPS is not set 572# CONFIG_SCSI_IPS is not set
545# CONFIG_SCSI_INITIO is not set 573# CONFIG_SCSI_INITIO is not set
546# CONFIG_SCSI_INIA100 is not set 574# CONFIG_SCSI_INIA100 is not set
575# CONFIG_SCSI_MVSAS is not set
547# CONFIG_SCSI_STEX is not set 576# CONFIG_SCSI_STEX is not set
548# CONFIG_SCSI_SYM53C8XX_2 is not set 577# CONFIG_SCSI_SYM53C8XX_2 is not set
549# CONFIG_SCSI_IPR is not set 578# CONFIG_SCSI_IPR is not set
@@ -596,6 +625,7 @@ CONFIG_SATA_SVW=y
596# CONFIG_PATA_MPIIX is not set 625# CONFIG_PATA_MPIIX is not set
597# CONFIG_PATA_OLDPIIX is not set 626# CONFIG_PATA_OLDPIIX is not set
598# CONFIG_PATA_NETCELL is not set 627# CONFIG_PATA_NETCELL is not set
628# CONFIG_PATA_NINJA32 is not set
599# CONFIG_PATA_NS87410 is not set 629# CONFIG_PATA_NS87410 is not set
600# CONFIG_PATA_NS87415 is not set 630# CONFIG_PATA_NS87415 is not set
601# CONFIG_PATA_OPTI is not set 631# CONFIG_PATA_OPTI is not set
@@ -610,6 +640,7 @@ CONFIG_SATA_SVW=y
610# CONFIG_PATA_SIS is not set 640# CONFIG_PATA_SIS is not set
611# CONFIG_PATA_VIA is not set 641# CONFIG_PATA_VIA is not set
612# CONFIG_PATA_WINBOND is not set 642# CONFIG_PATA_WINBOND is not set
643# CONFIG_PATA_PLATFORM is not set
613CONFIG_MD=y 644CONFIG_MD=y
614CONFIG_BLK_DEV_MD=y 645CONFIG_BLK_DEV_MD=y
615CONFIG_MD_LINEAR=y 646CONFIG_MD_LINEAR=y
@@ -676,7 +707,6 @@ CONFIG_BONDING=m
676# CONFIG_EQUALIZER is not set 707# CONFIG_EQUALIZER is not set
677CONFIG_TUN=m 708CONFIG_TUN=m
678# CONFIG_VETH is not set 709# CONFIG_VETH is not set
679# CONFIG_IP1000 is not set
680# CONFIG_ARCNET is not set 710# CONFIG_ARCNET is not set
681# CONFIG_PHYLIB is not set 711# CONFIG_PHYLIB is not set
682CONFIG_NET_ETHERNET=y 712CONFIG_NET_ETHERNET=y
@@ -701,6 +731,9 @@ CONFIG_E1000=y
701# CONFIG_E1000_NAPI is not set 731# CONFIG_E1000_NAPI is not set
702# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 732# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
703# CONFIG_E1000E is not set 733# CONFIG_E1000E is not set
734# CONFIG_E1000E_ENABLED is not set
735# CONFIG_IP1000 is not set
736# CONFIG_IGB is not set
704# CONFIG_NS83820 is not set 737# CONFIG_NS83820 is not set
705# CONFIG_HAMACHI is not set 738# CONFIG_HAMACHI is not set
706# CONFIG_YELLOWFIN is not set 739# CONFIG_YELLOWFIN is not set
@@ -726,6 +759,7 @@ CONFIG_NETDEV_10000=y
726# CONFIG_PASEMI_MAC is not set 759# CONFIG_PASEMI_MAC is not set
727# CONFIG_MLX4_CORE is not set 760# CONFIG_MLX4_CORE is not set
728# CONFIG_TEHUTI is not set 761# CONFIG_TEHUTI is not set
762# CONFIG_BNX2X is not set
729CONFIG_TR=y 763CONFIG_TR=y
730CONFIG_IBMOL=y 764CONFIG_IBMOL=y
731# CONFIG_3C359 is not set 765# CONFIG_3C359 is not set
@@ -771,7 +805,6 @@ CONFIG_PPPOE=m
771# CONFIG_SLIP is not set 805# CONFIG_SLIP is not set
772CONFIG_SLHC=m 806CONFIG_SLHC=m
773# CONFIG_NET_FC is not set 807# CONFIG_NET_FC is not set
774# CONFIG_SHAPER is not set
775# CONFIG_NETCONSOLE is not set 808# CONFIG_NETCONSOLE is not set
776# CONFIG_NETPOLL is not set 809# CONFIG_NETPOLL is not set
777# CONFIG_NET_POLL_CONTROLLER is not set 810# CONFIG_NET_POLL_CONTROLLER is not set
@@ -834,6 +867,7 @@ CONFIG_VT_CONSOLE=y
834CONFIG_HW_CONSOLE=y 867CONFIG_HW_CONSOLE=y
835# CONFIG_VT_HW_CONSOLE_BINDING is not set 868# CONFIG_VT_HW_CONSOLE_BINDING is not set
836# CONFIG_SERIAL_NONSTANDARD is not set 869# CONFIG_SERIAL_NONSTANDARD is not set
870# CONFIG_NOZOMI is not set
837 871
838# 872#
839# Serial drivers 873# Serial drivers
@@ -901,13 +935,12 @@ CONFIG_I2C_POWERMAC=y
901# 935#
902# Miscellaneous I2C Chip support 936# Miscellaneous I2C Chip support
903# 937#
904# CONFIG_SENSORS_DS1337 is not set
905# CONFIG_SENSORS_DS1374 is not set
906# CONFIG_DS1682 is not set 938# CONFIG_DS1682 is not set
907# CONFIG_SENSORS_EEPROM is not set 939# CONFIG_SENSORS_EEPROM is not set
908# CONFIG_SENSORS_PCF8574 is not set 940# CONFIG_SENSORS_PCF8574 is not set
909# CONFIG_SENSORS_PCA9539 is not set 941# CONFIG_PCF8575 is not set
910# CONFIG_SENSORS_PCF8591 is not set 942# CONFIG_SENSORS_PCF8591 is not set
943# CONFIG_TPS65010 is not set
911# CONFIG_SENSORS_MAX6875 is not set 944# CONFIG_SENSORS_MAX6875 is not set
912# CONFIG_SENSORS_TSL2550 is not set 945# CONFIG_SENSORS_TSL2550 is not set
913# CONFIG_I2C_DEBUG_CORE is not set 946# CONFIG_I2C_DEBUG_CORE is not set
@@ -923,6 +956,7 @@ CONFIG_I2C_POWERMAC=y
923# CONFIG_W1 is not set 956# CONFIG_W1 is not set
924# CONFIG_POWER_SUPPLY is not set 957# CONFIG_POWER_SUPPLY is not set
925# CONFIG_HWMON is not set 958# CONFIG_HWMON is not set
959# CONFIG_THERMAL is not set
926# CONFIG_WATCHDOG is not set 960# CONFIG_WATCHDOG is not set
927 961
928# 962#
@@ -1083,6 +1117,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1083# CONFIG_SND_BT87X is not set 1117# CONFIG_SND_BT87X is not set
1084# CONFIG_SND_CA0106 is not set 1118# CONFIG_SND_CA0106 is not set
1085# CONFIG_SND_CMIPCI is not set 1119# CONFIG_SND_CMIPCI is not set
1120# CONFIG_SND_OXYGEN is not set
1086# CONFIG_SND_CS4281 is not set 1121# CONFIG_SND_CS4281 is not set
1087# CONFIG_SND_CS46XX is not set 1122# CONFIG_SND_CS46XX is not set
1088# CONFIG_SND_CS5530 is not set 1123# CONFIG_SND_CS5530 is not set
@@ -1108,6 +1143,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1108# CONFIG_SND_HDA_INTEL is not set 1143# CONFIG_SND_HDA_INTEL is not set
1109# CONFIG_SND_HDSP is not set 1144# CONFIG_SND_HDSP is not set
1110# CONFIG_SND_HDSPM is not set 1145# CONFIG_SND_HDSPM is not set
1146# CONFIG_SND_HIFIER is not set
1111# CONFIG_SND_ICE1712 is not set 1147# CONFIG_SND_ICE1712 is not set
1112# CONFIG_SND_ICE1724 is not set 1148# CONFIG_SND_ICE1724 is not set
1113# CONFIG_SND_INTEL8X0 is not set 1149# CONFIG_SND_INTEL8X0 is not set
@@ -1125,6 +1161,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1125# CONFIG_SND_TRIDENT is not set 1161# CONFIG_SND_TRIDENT is not set
1126# CONFIG_SND_VIA82XX is not set 1162# CONFIG_SND_VIA82XX is not set
1127# CONFIG_SND_VIA82XX_MODEM is not set 1163# CONFIG_SND_VIA82XX_MODEM is not set
1164# CONFIG_SND_VIRTUOSO is not set
1128# CONFIG_SND_VX222 is not set 1165# CONFIG_SND_VX222 is not set
1129# CONFIG_SND_YMFPCI is not set 1166# CONFIG_SND_YMFPCI is not set
1130 1167
@@ -1166,6 +1203,10 @@ CONFIG_SND_USB_AUDIO=m
1166# 1203#
1167 1204
1168# 1205#
1206# ALSA SoC audio for Freescale SOCs
1207#
1208
1209#
1169# Open Sound System 1210# Open Sound System
1170# 1211#
1171# CONFIG_SOUND_PRIME is not set 1212# CONFIG_SOUND_PRIME is not set
@@ -1192,6 +1233,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1192CONFIG_USB_ARCH_HAS_EHCI=y 1233CONFIG_USB_ARCH_HAS_EHCI=y
1193CONFIG_USB=y 1234CONFIG_USB=y
1194# CONFIG_USB_DEBUG is not set 1235# CONFIG_USB_DEBUG is not set
1236# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1195 1237
1196# 1238#
1197# Miscellaneous USB options 1239# Miscellaneous USB options
@@ -1205,9 +1247,9 @@ CONFIG_USB_DEVICE_CLASS=y
1205# USB Host Controller Drivers 1247# USB Host Controller Drivers
1206# 1248#
1207CONFIG_USB_EHCI_HCD=y 1249CONFIG_USB_EHCI_HCD=y
1208# CONFIG_USB_EHCI_SPLIT_ISO is not set
1209# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1250# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1210# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1251# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1252# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1211# CONFIG_USB_ISP116X_HCD is not set 1253# CONFIG_USB_ISP116X_HCD is not set
1212CONFIG_USB_OHCI_HCD=y 1254CONFIG_USB_OHCI_HCD=y
1213CONFIG_USB_OHCI_HCD_PPC_OF=y 1255CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1259,11 +1301,8 @@ CONFIG_USB_MON=y
1259# 1301#
1260# USB port drivers 1302# USB port drivers
1261# 1303#
1262
1263#
1264# USB Serial Converter support
1265#
1266CONFIG_USB_SERIAL=m 1304CONFIG_USB_SERIAL=m
1305CONFIG_USB_EZUSB=y
1267CONFIG_USB_SERIAL_GENERIC=y 1306CONFIG_USB_SERIAL_GENERIC=y
1268# CONFIG_USB_SERIAL_AIRCABLE is not set 1307# CONFIG_USB_SERIAL_AIRCABLE is not set
1269# CONFIG_USB_SERIAL_AIRPRIME is not set 1308# CONFIG_USB_SERIAL_AIRPRIME is not set
@@ -1284,6 +1323,7 @@ CONFIG_USB_SERIAL_EDGEPORT=m
1284CONFIG_USB_SERIAL_EDGEPORT_TI=m 1323CONFIG_USB_SERIAL_EDGEPORT_TI=m
1285CONFIG_USB_SERIAL_GARMIN=m 1324CONFIG_USB_SERIAL_GARMIN=m
1286CONFIG_USB_SERIAL_IPW=m 1325CONFIG_USB_SERIAL_IPW=m
1326# CONFIG_USB_SERIAL_IUU is not set
1287CONFIG_USB_SERIAL_KEYSPAN_PDA=m 1327CONFIG_USB_SERIAL_KEYSPAN_PDA=m
1288CONFIG_USB_SERIAL_KEYSPAN=m 1328CONFIG_USB_SERIAL_KEYSPAN=m
1289CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1329CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -1316,7 +1356,6 @@ CONFIG_USB_SERIAL_XIRCOM=m
1316# CONFIG_USB_SERIAL_OPTION is not set 1356# CONFIG_USB_SERIAL_OPTION is not set
1317CONFIG_USB_SERIAL_OMNINET=m 1357CONFIG_USB_SERIAL_OMNINET=m
1318# CONFIG_USB_SERIAL_DEBUG is not set 1358# CONFIG_USB_SERIAL_DEBUG is not set
1319CONFIG_USB_EZUSB=y
1320 1359
1321# 1360#
1322# USB Miscellaneous drivers 1361# USB Miscellaneous drivers
@@ -1341,20 +1380,14 @@ CONFIG_USB_APPLEDISPLAY=m
1341# CONFIG_USB_TRANCEVIBRATOR is not set 1380# CONFIG_USB_TRANCEVIBRATOR is not set
1342# CONFIG_USB_IOWARRIOR is not set 1381# CONFIG_USB_IOWARRIOR is not set
1343# CONFIG_USB_TEST is not set 1382# CONFIG_USB_TEST is not set
1344
1345#
1346# USB DSL modem support
1347#
1348
1349#
1350# USB Gadget Support
1351#
1352# CONFIG_USB_GADGET is not set 1383# CONFIG_USB_GADGET is not set
1353# CONFIG_MMC is not set 1384# CONFIG_MMC is not set
1385# CONFIG_MEMSTICK is not set
1354# CONFIG_NEW_LEDS is not set 1386# CONFIG_NEW_LEDS is not set
1355# CONFIG_INFINIBAND is not set 1387# CONFIG_INFINIBAND is not set
1356# CONFIG_EDAC is not set 1388# CONFIG_EDAC is not set
1357# CONFIG_RTC_CLASS is not set 1389# CONFIG_RTC_CLASS is not set
1390# CONFIG_DMADEVICES is not set
1358 1391
1359# 1392#
1360# Userspace I/O 1393# Userspace I/O
@@ -1393,12 +1426,10 @@ CONFIG_XFS_POSIX_ACL=y
1393# CONFIG_XFS_RT is not set 1426# CONFIG_XFS_RT is not set
1394# CONFIG_GFS2_FS is not set 1427# CONFIG_GFS2_FS is not set
1395# CONFIG_OCFS2_FS is not set 1428# CONFIG_OCFS2_FS is not set
1396# CONFIG_MINIX_FS is not set 1429CONFIG_DNOTIFY=y
1397# CONFIG_ROMFS_FS is not set
1398CONFIG_INOTIFY=y 1430CONFIG_INOTIFY=y
1399CONFIG_INOTIFY_USER=y 1431CONFIG_INOTIFY_USER=y
1400# CONFIG_QUOTA is not set 1432# CONFIG_QUOTA is not set
1401CONFIG_DNOTIFY=y
1402CONFIG_AUTOFS_FS=m 1433CONFIG_AUTOFS_FS=m
1403# CONFIG_AUTOFS4_FS is not set 1434# CONFIG_AUTOFS4_FS is not set
1404# CONFIG_FUSE_FS is not set 1435# CONFIG_FUSE_FS is not set
@@ -1447,8 +1478,10 @@ CONFIG_HFSPLUS_FS=m
1447# CONFIG_EFS_FS is not set 1478# CONFIG_EFS_FS is not set
1448CONFIG_CRAMFS=y 1479CONFIG_CRAMFS=y
1449# CONFIG_VXFS_FS is not set 1480# CONFIG_VXFS_FS is not set
1481# CONFIG_MINIX_FS is not set
1450# CONFIG_HPFS_FS is not set 1482# CONFIG_HPFS_FS is not set
1451# CONFIG_QNX4FS_FS is not set 1483# CONFIG_QNX4FS_FS is not set
1484# CONFIG_ROMFS_FS is not set
1452# CONFIG_SYSV_FS is not set 1485# CONFIG_SYSV_FS is not set
1453# CONFIG_UFS_FS is not set 1486# CONFIG_UFS_FS is not set
1454CONFIG_NETWORK_FILESYSTEMS=y 1487CONFIG_NETWORK_FILESYSTEMS=y
@@ -1546,7 +1579,6 @@ CONFIG_NLS_ISO8859_15=y
1546# CONFIG_NLS_KOI8_U is not set 1579# CONFIG_NLS_KOI8_U is not set
1547CONFIG_NLS_UTF8=y 1580CONFIG_NLS_UTF8=y
1548# CONFIG_DLM is not set 1581# CONFIG_DLM is not set
1549# CONFIG_UCC_SLOW is not set
1550 1582
1551# 1583#
1552# Library routines 1584# Library routines
@@ -1564,11 +1596,6 @@ CONFIG_PLIST=y
1564CONFIG_HAS_IOMEM=y 1596CONFIG_HAS_IOMEM=y
1565CONFIG_HAS_IOPORT=y 1597CONFIG_HAS_IOPORT=y
1566CONFIG_HAS_DMA=y 1598CONFIG_HAS_DMA=y
1567CONFIG_INSTRUMENTATION=y
1568CONFIG_PROFILING=y
1569CONFIG_OPROFILE=y
1570# CONFIG_KPROBES is not set
1571# CONFIG_MARKERS is not set
1572 1599
1573# 1600#
1574# Kernel hacking 1601# Kernel hacking
@@ -1587,6 +1614,7 @@ CONFIG_SCHED_DEBUG=y
1587# CONFIG_SCHEDSTATS is not set 1614# CONFIG_SCHEDSTATS is not set
1588# CONFIG_TIMER_STATS is not set 1615# CONFIG_TIMER_STATS is not set
1589# CONFIG_SLUB_DEBUG_ON is not set 1616# CONFIG_SLUB_DEBUG_ON is not set
1617# CONFIG_SLUB_STATS is not set
1590# CONFIG_DEBUG_RT_MUTEXES is not set 1618# CONFIG_DEBUG_RT_MUTEXES is not set
1591# CONFIG_RT_MUTEX_TESTER is not set 1619# CONFIG_RT_MUTEX_TESTER is not set
1592# CONFIG_DEBUG_SPINLOCK is not set 1620# CONFIG_DEBUG_SPINLOCK is not set
@@ -1599,9 +1627,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1599# CONFIG_DEBUG_VM is not set 1627# CONFIG_DEBUG_VM is not set
1600# CONFIG_DEBUG_LIST is not set 1628# CONFIG_DEBUG_LIST is not set
1601# CONFIG_DEBUG_SG is not set 1629# CONFIG_DEBUG_SG is not set
1602CONFIG_FORCED_INLINING=y
1603# CONFIG_BOOT_PRINTK_DELAY is not set 1630# CONFIG_BOOT_PRINTK_DELAY is not set
1604# CONFIG_RCU_TORTURE_TEST is not set 1631# CONFIG_RCU_TORTURE_TEST is not set
1632# CONFIG_BACKTRACE_SELF_TEST is not set
1605# CONFIG_FAULT_INJECTION is not set 1633# CONFIG_FAULT_INJECTION is not set
1606# CONFIG_SAMPLES is not set 1634# CONFIG_SAMPLES is not set
1607# CONFIG_DEBUG_STACKOVERFLOW is not set 1635# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1621,7 +1649,9 @@ CONFIG_BOOTX_TEXT=y
1621# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1649# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1622CONFIG_CRYPTO=y 1650CONFIG_CRYPTO=y
1623CONFIG_CRYPTO_ALGAPI=y 1651CONFIG_CRYPTO_ALGAPI=y
1652CONFIG_CRYPTO_AEAD=m
1624CONFIG_CRYPTO_BLKCIPHER=y 1653CONFIG_CRYPTO_BLKCIPHER=y
1654# CONFIG_CRYPTO_SEQIV is not set
1625CONFIG_CRYPTO_HASH=y 1655CONFIG_CRYPTO_HASH=y
1626CONFIG_CRYPTO_MANAGER=y 1656CONFIG_CRYPTO_MANAGER=y
1627CONFIG_CRYPTO_HMAC=y 1657CONFIG_CRYPTO_HMAC=y
@@ -1640,6 +1670,9 @@ CONFIG_CRYPTO_CBC=y
1640CONFIG_CRYPTO_PCBC=m 1670CONFIG_CRYPTO_PCBC=m
1641# CONFIG_CRYPTO_LRW is not set 1671# CONFIG_CRYPTO_LRW is not set
1642# CONFIG_CRYPTO_XTS is not set 1672# CONFIG_CRYPTO_XTS is not set
1673# CONFIG_CRYPTO_CTR is not set
1674# CONFIG_CRYPTO_GCM is not set
1675# CONFIG_CRYPTO_CCM is not set
1643# CONFIG_CRYPTO_CRYPTD is not set 1676# CONFIG_CRYPTO_CRYPTD is not set
1644CONFIG_CRYPTO_DES=y 1677CONFIG_CRYPTO_DES=y
1645# CONFIG_CRYPTO_FCRYPT is not set 1678# CONFIG_CRYPTO_FCRYPT is not set
@@ -1655,11 +1688,13 @@ CONFIG_CRYPTO_ARC4=m
1655CONFIG_CRYPTO_KHAZAD=m 1688CONFIG_CRYPTO_KHAZAD=m
1656CONFIG_CRYPTO_ANUBIS=m 1689CONFIG_CRYPTO_ANUBIS=m
1657# CONFIG_CRYPTO_SEED is not set 1690# CONFIG_CRYPTO_SEED is not set
1691# CONFIG_CRYPTO_SALSA20 is not set
1658CONFIG_CRYPTO_DEFLATE=m 1692CONFIG_CRYPTO_DEFLATE=m
1659CONFIG_CRYPTO_MICHAEL_MIC=m 1693CONFIG_CRYPTO_MICHAEL_MIC=m
1660CONFIG_CRYPTO_CRC32C=m 1694CONFIG_CRYPTO_CRC32C=m
1661# CONFIG_CRYPTO_CAMELLIA is not set 1695# CONFIG_CRYPTO_CAMELLIA is not set
1662CONFIG_CRYPTO_TEST=m 1696CONFIG_CRYPTO_TEST=m
1663# CONFIG_CRYPTO_AUTHENC is not set 1697CONFIG_CRYPTO_AUTHENC=m
1698# CONFIG_CRYPTO_LZO is not set
1664# CONFIG_CRYPTO_HW is not set 1699# CONFIG_CRYPTO_HW is not set
1665# CONFIG_PPC_CLOCK is not set 1700# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 4a87745c7803..8d9a84f50157 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc3 3# Linux kernel version: 2.6.25-rc6
4# Wed Nov 21 11:19:59 2007 4# Thu Mar 20 10:43:46 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,8 +69,6 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 69CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73CONFIG_AUDIT=y 72CONFIG_AUDIT=y
74CONFIG_AUDITSYSCALL=y 73CONFIG_AUDITSYSCALL=y
75CONFIG_AUDIT_TREE=y 74CONFIG_AUDIT_TREE=y
@@ -77,11 +76,17 @@ CONFIG_IKCONFIG=y
77CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
78CONFIG_LOG_BUF_SHIFT=17 77CONFIG_LOG_BUF_SHIFT=17
79# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
80CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
81CONFIG_FAIR_USER_SCHED=y 80# CONFIG_USER_SCHED is not set
82# CONFIG_FAIR_CGROUP_SCHED is not set 81# CONFIG_CGROUP_SCHED is not set
83CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_NAMESPACES=y
86# CONFIG_UTS_NS is not set
87# CONFIG_IPC_NS is not set
88# CONFIG_USER_NS is not set
89# CONFIG_PID_NS is not set
85CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
86CONFIG_INITRAMFS_SOURCE="" 91CONFIG_INITRAMFS_SOURCE=""
87CONFIG_CC_OPTIMIZE_FOR_SIZE=y 92CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -95,11 +100,13 @@ CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 100CONFIG_PRINTK=y
96CONFIG_BUG=y 101CONFIG_BUG=y
97CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
98CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 105CONFIG_FUTEX=y
100CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
101CONFIG_EPOLL=y 107CONFIG_EPOLL=y
102CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 111CONFIG_SHMEM=y
105CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -107,6 +114,14 @@ CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
108CONFIG_SLUB=y 115CONFIG_SLUB=y
109# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set
118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set
121CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y
123CONFIG_PROC_PAGE_MONITOR=y
124CONFIG_SLABINFO=y
110CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
111# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
112CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
@@ -134,6 +149,7 @@ CONFIG_DEFAULT_AS=y
134# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
135# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
136CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y
137 153
138# 154#
139# Platform support 155# Platform support
@@ -153,8 +169,8 @@ CONFIG_VIODASD=y
153CONFIG_VIOCD=m 169CONFIG_VIOCD=m
154CONFIG_VIOTAPE=m 170CONFIG_VIOTAPE=m
155CONFIG_VIOPATH=y 171CONFIG_VIOPATH=y
156# CONFIG_PPC_MPC52xx is not set 172# CONFIG_PPC_MPC512x is not set
157# CONFIG_PPC_MPC5200 is not set 173# CONFIG_PPC_MPC5121 is not set
158# CONFIG_PPC_PMAC is not set 174# CONFIG_PPC_PMAC is not set
159# CONFIG_PPC_MAPLE is not set 175# CONFIG_PPC_MAPLE is not set
160# CONFIG_PPC_PASEMI is not set 176# CONFIG_PPC_PASEMI is not set
@@ -164,6 +180,7 @@ CONFIG_VIOPATH=y
164# CONFIG_PPC_CELL_NATIVE is not set 180# CONFIG_PPC_CELL_NATIVE is not set
165# CONFIG_PPC_IBM_CELL_BLADE is not set 181# CONFIG_PPC_IBM_CELL_BLADE is not set
166# CONFIG_PQ2ADS is not set 182# CONFIG_PQ2ADS is not set
183# CONFIG_IPIC is not set
167# CONFIG_MPIC is not set 184# CONFIG_MPIC is not set
168# CONFIG_MPIC_WEIRD is not set 185# CONFIG_MPIC_WEIRD is not set
169# CONFIG_PPC_I8259 is not set 186# CONFIG_PPC_I8259 is not set
@@ -176,7 +193,6 @@ CONFIG_IBMVIO=y
176CONFIG_PPC_INDIRECT_IO=y 193CONFIG_PPC_INDIRECT_IO=y
177CONFIG_GENERIC_IOMAP=y 194CONFIG_GENERIC_IOMAP=y
178# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
179# CONFIG_CPM2 is not set
180# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
181 197
182# 198#
@@ -191,15 +207,19 @@ CONFIG_HZ_250=y
191# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
192# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
193CONFIG_HZ=250 209CONFIG_HZ=250
210# CONFIG_SCHED_HRTICK is not set
194CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
195# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
196# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
197# CONFIG_PREEMPT_BKL is not set
198CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215CONFIG_COMPAT_BINFMT_ELF=y
199# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
200CONFIG_FORCE_MAX_ZONEORDER=13 217CONFIG_FORCE_MAX_ZONEORDER=13
201CONFIG_IOMMU_VMERGE=y 218CONFIG_IOMMU_VMERGE=y
219CONFIG_IOMMU_HELPER=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
203# CONFIG_KEXEC is not set 223# CONFIG_KEXEC is not set
204# CONFIG_CRASH_DUMP is not set 224# CONFIG_CRASH_DUMP is not set
205CONFIG_IRQ_ALL_CPUS=y 225CONFIG_IRQ_ALL_CPUS=y
@@ -227,7 +247,6 @@ CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
228# CONFIG_PM is not set 248# CONFIG_PM is not set
229CONFIG_SECCOMP=y 249CONFIG_SECCOMP=y
230# CONFIG_WANT_DEVICE_TREE is not set
231CONFIG_ISA_DMA_API=y 250CONFIG_ISA_DMA_API=y
232 251
233# 252#
@@ -263,6 +282,7 @@ CONFIG_XFRM=y
263CONFIG_XFRM_USER=m 282CONFIG_XFRM_USER=m
264CONFIG_XFRM_SUB_POLICY=y 283CONFIG_XFRM_SUB_POLICY=y
265# CONFIG_XFRM_MIGRATE is not set 284# CONFIG_XFRM_MIGRATE is not set
285# CONFIG_XFRM_STATISTICS is not set
266CONFIG_NET_KEY=m 286CONFIG_NET_KEY=m
267# CONFIG_NET_KEY_MIGRATE is not set 287# CONFIG_NET_KEY_MIGRATE is not set
268CONFIG_INET=y 288CONFIG_INET=y
@@ -297,12 +317,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
297# CONFIG_NETWORK_SECMARK is not set 317# CONFIG_NETWORK_SECMARK is not set
298CONFIG_NETFILTER=y 318CONFIG_NETFILTER=y
299# CONFIG_NETFILTER_DEBUG is not set 319# CONFIG_NETFILTER_DEBUG is not set
320CONFIG_NETFILTER_ADVANCED=y
300 321
301# 322#
302# Core Netfilter Configuration 323# Core Netfilter Configuration
303# 324#
304# CONFIG_NETFILTER_NETLINK is not set 325CONFIG_NETFILTER_NETLINK=m
305CONFIG_NF_CONNTRACK_ENABLED=m 326CONFIG_NETFILTER_NETLINK_QUEUE=m
327CONFIG_NETFILTER_NETLINK_LOG=m
306CONFIG_NF_CONNTRACK=m 328CONFIG_NF_CONNTRACK=m
307# CONFIG_NF_CT_ACCT is not set 329# CONFIG_NF_CT_ACCT is not set
308CONFIG_NF_CONNTRACK_MARK=y 330CONFIG_NF_CONNTRACK_MARK=y
@@ -318,6 +340,7 @@ CONFIG_NF_CONNTRACK_IRC=m
318# CONFIG_NF_CONNTRACK_SANE is not set 340# CONFIG_NF_CONNTRACK_SANE is not set
319# CONFIG_NF_CONNTRACK_SIP is not set 341# CONFIG_NF_CONNTRACK_SIP is not set
320CONFIG_NF_CONNTRACK_TFTP=m 342CONFIG_NF_CONNTRACK_TFTP=m
343CONFIG_NF_CT_NETLINK=m
321CONFIG_NETFILTER_XTABLES=m 344CONFIG_NETFILTER_XTABLES=m
322CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 345CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
323CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 346CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
@@ -326,8 +349,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
326CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 349CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
327# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 350# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
328# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 351# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
352CONFIG_NETFILTER_XT_TARGET_RATEEST=m
329# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 353# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
330# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 354# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
355CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
331CONFIG_NETFILTER_XT_MATCH_COMMENT=m 356CONFIG_NETFILTER_XT_MATCH_COMMENT=m
332# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 357# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
333# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set 358# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
@@ -337,14 +362,17 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
337CONFIG_NETFILTER_XT_MATCH_DSCP=m 362CONFIG_NETFILTER_XT_MATCH_DSCP=m
338# CONFIG_NETFILTER_XT_MATCH_ESP is not set 363# CONFIG_NETFILTER_XT_MATCH_ESP is not set
339# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 364# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
365CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
340CONFIG_NETFILTER_XT_MATCH_LENGTH=m 366CONFIG_NETFILTER_XT_MATCH_LENGTH=m
341CONFIG_NETFILTER_XT_MATCH_LIMIT=m 367CONFIG_NETFILTER_XT_MATCH_LIMIT=m
342CONFIG_NETFILTER_XT_MATCH_MAC=m 368CONFIG_NETFILTER_XT_MATCH_MAC=m
343CONFIG_NETFILTER_XT_MATCH_MARK=m 369CONFIG_NETFILTER_XT_MATCH_MARK=m
370CONFIG_NETFILTER_XT_MATCH_OWNER=m
344# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 371# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
345# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set 372# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
346CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
347# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 374# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
375CONFIG_NETFILTER_XT_MATCH_RATEEST=m
348CONFIG_NETFILTER_XT_MATCH_REALM=m 376CONFIG_NETFILTER_XT_MATCH_REALM=m
349CONFIG_NETFILTER_XT_MATCH_SCTP=m 377CONFIG_NETFILTER_XT_MATCH_SCTP=m
350# CONFIG_NETFILTER_XT_MATCH_STATE is not set 378# CONFIG_NETFILTER_XT_MATCH_STATE is not set
@@ -362,13 +390,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
362CONFIG_NF_CONNTRACK_PROC_COMPAT=y 390CONFIG_NF_CONNTRACK_PROC_COMPAT=y
363CONFIG_IP_NF_QUEUE=m 391CONFIG_IP_NF_QUEUE=m
364CONFIG_IP_NF_IPTABLES=m 392CONFIG_IP_NF_IPTABLES=m
365CONFIG_IP_NF_MATCH_IPRANGE=m
366CONFIG_IP_NF_MATCH_TOS=m
367CONFIG_IP_NF_MATCH_RECENT=m 393CONFIG_IP_NF_MATCH_RECENT=m
368CONFIG_IP_NF_MATCH_ECN=m 394CONFIG_IP_NF_MATCH_ECN=m
369# CONFIG_IP_NF_MATCH_AH is not set 395# CONFIG_IP_NF_MATCH_AH is not set
370CONFIG_IP_NF_MATCH_TTL=m 396CONFIG_IP_NF_MATCH_TTL=m
371CONFIG_IP_NF_MATCH_OWNER=m
372CONFIG_IP_NF_MATCH_ADDRTYPE=m 397CONFIG_IP_NF_MATCH_ADDRTYPE=m
373CONFIG_IP_NF_FILTER=m 398CONFIG_IP_NF_FILTER=m
374CONFIG_IP_NF_TARGET_REJECT=m 399CONFIG_IP_NF_TARGET_REJECT=m
@@ -379,7 +404,6 @@ CONFIG_NF_NAT_NEEDED=y
379CONFIG_IP_NF_TARGET_MASQUERADE=m 404CONFIG_IP_NF_TARGET_MASQUERADE=m
380CONFIG_IP_NF_TARGET_REDIRECT=m 405CONFIG_IP_NF_TARGET_REDIRECT=m
381CONFIG_IP_NF_TARGET_NETMAP=m 406CONFIG_IP_NF_TARGET_NETMAP=m
382CONFIG_IP_NF_TARGET_SAME=m
383# CONFIG_NF_NAT_SNMP_BASIC is not set 407# CONFIG_NF_NAT_SNMP_BASIC is not set
384CONFIG_NF_NAT_FTP=m 408CONFIG_NF_NAT_FTP=m
385CONFIG_NF_NAT_IRC=m 409CONFIG_NF_NAT_IRC=m
@@ -389,7 +413,6 @@ CONFIG_NF_NAT_TFTP=m
389# CONFIG_NF_NAT_H323 is not set 413# CONFIG_NF_NAT_H323 is not set
390# CONFIG_NF_NAT_SIP is not set 414# CONFIG_NF_NAT_SIP is not set
391CONFIG_IP_NF_MANGLE=m 415CONFIG_IP_NF_MANGLE=m
392CONFIG_IP_NF_TARGET_TOS=m
393CONFIG_IP_NF_TARGET_ECN=m 416CONFIG_IP_NF_TARGET_ECN=m
394CONFIG_IP_NF_TARGET_TTL=m 417CONFIG_IP_NF_TARGET_TTL=m
395CONFIG_IP_NF_TARGET_CLUSTERIP=m 418CONFIG_IP_NF_TARGET_CLUSTERIP=m
@@ -425,6 +448,7 @@ CONFIG_NET_CLS_ROUTE=y
425# 448#
426# CONFIG_NET_PKTGEN is not set 449# CONFIG_NET_PKTGEN is not set
427# CONFIG_HAMRADIO is not set 450# CONFIG_HAMRADIO is not set
451# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 452# CONFIG_IRDA is not set
429# CONFIG_BT is not set 453# CONFIG_BT is not set
430# CONFIG_AF_RXRPC is not set 454# CONFIG_AF_RXRPC is not set
@@ -470,7 +494,7 @@ CONFIG_BLK_DEV_NBD=m
470CONFIG_BLK_DEV_RAM=y 494CONFIG_BLK_DEV_RAM=y
471CONFIG_BLK_DEV_RAM_COUNT=16 495CONFIG_BLK_DEV_RAM_COUNT=16
472CONFIG_BLK_DEV_RAM_SIZE=65536 496CONFIG_BLK_DEV_RAM_SIZE=65536
473CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 497# CONFIG_BLK_DEV_XIP is not set
474# CONFIG_CDROM_PKTCDVD is not set 498# CONFIG_CDROM_PKTCDVD is not set
475# CONFIG_ATA_OVER_ETH is not set 499# CONFIG_ATA_OVER_ETH is not set
476CONFIG_MISC_DEVICES=y 500CONFIG_MISC_DEVICES=y
@@ -478,6 +502,8 @@ CONFIG_MISC_DEVICES=y
478# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
479# CONFIG_SGI_IOC4 is not set 503# CONFIG_SGI_IOC4 is not set
480# CONFIG_TIFM_CORE is not set 504# CONFIG_TIFM_CORE is not set
505# CONFIG_ENCLOSURE_SERVICES is not set
506CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set 507# CONFIG_IDE is not set
482 508
483# 509#
@@ -518,6 +544,7 @@ CONFIG_SCSI_FC_ATTRS=y
518# CONFIG_SCSI_ISCSI_ATTRS is not set 544# CONFIG_SCSI_ISCSI_ATTRS is not set
519CONFIG_SCSI_SAS_ATTRS=m 545CONFIG_SCSI_SAS_ATTRS=m
520CONFIG_SCSI_SAS_LIBSAS=m 546CONFIG_SCSI_SAS_LIBSAS=m
547CONFIG_SCSI_SAS_HOST_SMP=y
521CONFIG_SCSI_SAS_LIBSAS_DEBUG=y 548CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
522CONFIG_SCSI_SRP_ATTRS=m 549CONFIG_SCSI_SRP_ATTRS=m
523CONFIG_SCSI_LOWLEVEL=y 550CONFIG_SCSI_LOWLEVEL=y
@@ -543,6 +570,7 @@ CONFIG_SCSI_LOWLEVEL=y
543CONFIG_SCSI_IBMVSCSI=m 570CONFIG_SCSI_IBMVSCSI=m
544# CONFIG_SCSI_INITIO is not set 571# CONFIG_SCSI_INITIO is not set
545# CONFIG_SCSI_INIA100 is not set 572# CONFIG_SCSI_INIA100 is not set
573# CONFIG_SCSI_MVSAS is not set
546# CONFIG_SCSI_STEX is not set 574# CONFIG_SCSI_STEX is not set
547# CONFIG_SCSI_SYM53C8XX_2 is not set 575# CONFIG_SCSI_SYM53C8XX_2 is not set
548# CONFIG_SCSI_QLOGIC_1280 is not set 576# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -589,7 +617,6 @@ CONFIG_BONDING=m
589# CONFIG_EQUALIZER is not set 617# CONFIG_EQUALIZER is not set
590CONFIG_TUN=m 618CONFIG_TUN=m
591# CONFIG_VETH is not set 619# CONFIG_VETH is not set
592# CONFIG_IP1000 is not set
593# CONFIG_ARCNET is not set 620# CONFIG_ARCNET is not set
594# CONFIG_PHYLIB is not set 621# CONFIG_PHYLIB is not set
595CONFIG_NET_ETHERNET=y 622CONFIG_NET_ETHERNET=y
@@ -618,6 +645,7 @@ CONFIG_E100=y
618# CONFIG_NE2K_PCI is not set 645# CONFIG_NE2K_PCI is not set
619# CONFIG_8139CP is not set 646# CONFIG_8139CP is not set
620# CONFIG_8139TOO is not set 647# CONFIG_8139TOO is not set
648# CONFIG_R6040 is not set
621# CONFIG_SIS900 is not set 649# CONFIG_SIS900 is not set
622# CONFIG_EPIC100 is not set 650# CONFIG_EPIC100 is not set
623# CONFIG_SUNDANCE is not set 651# CONFIG_SUNDANCE is not set
@@ -631,6 +659,9 @@ CONFIG_E1000=m
631# CONFIG_E1000_NAPI is not set 659# CONFIG_E1000_NAPI is not set
632# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 660# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
633# CONFIG_E1000E is not set 661# CONFIG_E1000E is not set
662# CONFIG_E1000E_ENABLED is not set
663# CONFIG_IP1000 is not set
664# CONFIG_IGB is not set
634# CONFIG_NS83820 is not set 665# CONFIG_NS83820 is not set
635# CONFIG_HAMACHI is not set 666# CONFIG_HAMACHI is not set
636# CONFIG_YELLOWFIN is not set 667# CONFIG_YELLOWFIN is not set
@@ -656,6 +687,7 @@ CONFIG_NETDEV_10000=y
656# CONFIG_PASEMI_MAC is not set 687# CONFIG_PASEMI_MAC is not set
657# CONFIG_MLX4_CORE is not set 688# CONFIG_MLX4_CORE is not set
658# CONFIG_TEHUTI is not set 689# CONFIG_TEHUTI is not set
690# CONFIG_BNX2X is not set
659CONFIG_TR=y 691CONFIG_TR=y
660CONFIG_IBMOL=y 692CONFIG_IBMOL=y
661# CONFIG_3C359 is not set 693# CONFIG_3C359 is not set
@@ -683,7 +715,6 @@ CONFIG_PPPOE=m
683# CONFIG_SLIP is not set 715# CONFIG_SLIP is not set
684CONFIG_SLHC=m 716CONFIG_SLHC=m
685# CONFIG_NET_FC is not set 717# CONFIG_NET_FC is not set
686# CONFIG_SHAPER is not set
687CONFIG_NETCONSOLE=y 718CONFIG_NETCONSOLE=y
688# CONFIG_NETCONSOLE_DYNAMIC is not set 719# CONFIG_NETCONSOLE_DYNAMIC is not set
689CONFIG_NETPOLL=y 720CONFIG_NETPOLL=y
@@ -734,6 +765,7 @@ CONFIG_VT_CONSOLE=y
734CONFIG_HW_CONSOLE=y 765CONFIG_HW_CONSOLE=y
735# CONFIG_VT_HW_CONSOLE_BINDING is not set 766# CONFIG_VT_HW_CONSOLE_BINDING is not set
736# CONFIG_SERIAL_NONSTANDARD is not set 767# CONFIG_SERIAL_NONSTANDARD is not set
768# CONFIG_NOZOMI is not set
737 769
738# 770#
739# Serial drivers 771# Serial drivers
@@ -772,6 +804,7 @@ CONFIG_DEVPORT=y
772# CONFIG_W1 is not set 804# CONFIG_W1 is not set
773# CONFIG_POWER_SUPPLY is not set 805# CONFIG_POWER_SUPPLY is not set
774# CONFIG_HWMON is not set 806# CONFIG_HWMON is not set
807# CONFIG_THERMAL is not set
775# CONFIG_WATCHDOG is not set 808# CONFIG_WATCHDOG is not set
776 809
777# 810#
@@ -821,10 +854,12 @@ CONFIG_DUMMY_CONSOLE=y
821# CONFIG_HID_SUPPORT is not set 854# CONFIG_HID_SUPPORT is not set
822# CONFIG_USB_SUPPORT is not set 855# CONFIG_USB_SUPPORT is not set
823# CONFIG_MMC is not set 856# CONFIG_MMC is not set
857# CONFIG_MEMSTICK is not set
824# CONFIG_NEW_LEDS is not set 858# CONFIG_NEW_LEDS is not set
825# CONFIG_INFINIBAND is not set 859# CONFIG_INFINIBAND is not set
826# CONFIG_EDAC is not set 860# CONFIG_EDAC is not set
827# CONFIG_RTC_CLASS is not set 861# CONFIG_RTC_CLASS is not set
862# CONFIG_DMADEVICES is not set
828 863
829# 864#
830# Userspace I/O 865# Userspace I/O
@@ -869,12 +904,10 @@ CONFIG_GFS2_FS=m
869CONFIG_GFS2_FS_LOCKING_NOLOCK=m 904CONFIG_GFS2_FS_LOCKING_NOLOCK=m
870CONFIG_GFS2_FS_LOCKING_DLM=m 905CONFIG_GFS2_FS_LOCKING_DLM=m
871# CONFIG_OCFS2_FS is not set 906# CONFIG_OCFS2_FS is not set
872# CONFIG_MINIX_FS is not set 907CONFIG_DNOTIFY=y
873# CONFIG_ROMFS_FS is not set
874CONFIG_INOTIFY=y 908CONFIG_INOTIFY=y
875CONFIG_INOTIFY_USER=y 909CONFIG_INOTIFY_USER=y
876# CONFIG_QUOTA is not set 910# CONFIG_QUOTA is not set
877CONFIG_DNOTIFY=y
878CONFIG_AUTOFS_FS=m 911CONFIG_AUTOFS_FS=m
879# CONFIG_AUTOFS4_FS is not set 912# CONFIG_AUTOFS4_FS is not set
880# CONFIG_FUSE_FS is not set 913# CONFIG_FUSE_FS is not set
@@ -924,8 +957,10 @@ CONFIG_CONFIGFS_FS=m
924# CONFIG_EFS_FS is not set 957# CONFIG_EFS_FS is not set
925CONFIG_CRAMFS=y 958CONFIG_CRAMFS=y
926# CONFIG_VXFS_FS is not set 959# CONFIG_VXFS_FS is not set
960# CONFIG_MINIX_FS is not set
927# CONFIG_HPFS_FS is not set 961# CONFIG_HPFS_FS is not set
928# CONFIG_QNX4FS_FS is not set 962# CONFIG_QNX4FS_FS is not set
963# CONFIG_ROMFS_FS is not set
929# CONFIG_SYSV_FS is not set 964# CONFIG_SYSV_FS is not set
930# CONFIG_UFS_FS is not set 965# CONFIG_UFS_FS is not set
931CONFIG_NETWORK_FILESYSTEMS=y 966CONFIG_NETWORK_FILESYSTEMS=y
@@ -1009,7 +1044,6 @@ CONFIG_NLS_ISO8859_1=y
1009# CONFIG_NLS_UTF8 is not set 1044# CONFIG_NLS_UTF8 is not set
1010CONFIG_DLM=m 1045CONFIG_DLM=m
1011# CONFIG_DLM_DEBUG is not set 1046# CONFIG_DLM_DEBUG is not set
1012# CONFIG_UCC_SLOW is not set
1013 1047
1014# 1048#
1015# Library routines 1049# Library routines
@@ -1031,10 +1065,6 @@ CONFIG_PLIST=y
1031CONFIG_HAS_IOMEM=y 1065CONFIG_HAS_IOMEM=y
1032CONFIG_HAS_IOPORT=y 1066CONFIG_HAS_IOPORT=y
1033CONFIG_HAS_DMA=y 1067CONFIG_HAS_DMA=y
1034CONFIG_INSTRUMENTATION=y
1035# CONFIG_PROFILING is not set
1036# CONFIG_KPROBES is not set
1037# CONFIG_MARKERS is not set
1038 1068
1039# 1069#
1040# Kernel hacking 1070# Kernel hacking
@@ -1053,6 +1083,7 @@ CONFIG_SCHED_DEBUG=y
1053# CONFIG_SCHEDSTATS is not set 1083# CONFIG_SCHEDSTATS is not set
1054# CONFIG_TIMER_STATS is not set 1084# CONFIG_TIMER_STATS is not set
1055# CONFIG_SLUB_DEBUG_ON is not set 1085# CONFIG_SLUB_DEBUG_ON is not set
1086# CONFIG_SLUB_STATS is not set
1056# CONFIG_DEBUG_RT_MUTEXES is not set 1087# CONFIG_DEBUG_RT_MUTEXES is not set
1057# CONFIG_RT_MUTEX_TESTER is not set 1088# CONFIG_RT_MUTEX_TESTER is not set
1058# CONFIG_DEBUG_SPINLOCK is not set 1089# CONFIG_DEBUG_SPINLOCK is not set
@@ -1065,9 +1096,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1065# CONFIG_DEBUG_VM is not set 1096# CONFIG_DEBUG_VM is not set
1066# CONFIG_DEBUG_LIST is not set 1097# CONFIG_DEBUG_LIST is not set
1067# CONFIG_DEBUG_SG is not set 1098# CONFIG_DEBUG_SG is not set
1068# CONFIG_FORCED_INLINING is not set
1069# CONFIG_BOOT_PRINTK_DELAY is not set 1099# CONFIG_BOOT_PRINTK_DELAY is not set
1070# CONFIG_RCU_TORTURE_TEST is not set 1100# CONFIG_RCU_TORTURE_TEST is not set
1101# CONFIG_BACKTRACE_SELF_TEST is not set
1071# CONFIG_FAULT_INJECTION is not set 1102# CONFIG_FAULT_INJECTION is not set
1072# CONFIG_SAMPLES is not set 1103# CONFIG_SAMPLES is not set
1073CONFIG_DEBUG_STACKOVERFLOW=y 1104CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1089,6 +1120,7 @@ CONFIG_CRYPTO=y
1089CONFIG_CRYPTO_ALGAPI=y 1120CONFIG_CRYPTO_ALGAPI=y
1090CONFIG_CRYPTO_AEAD=m 1121CONFIG_CRYPTO_AEAD=m
1091CONFIG_CRYPTO_BLKCIPHER=y 1122CONFIG_CRYPTO_BLKCIPHER=y
1123# CONFIG_CRYPTO_SEQIV is not set
1092CONFIG_CRYPTO_HASH=y 1124CONFIG_CRYPTO_HASH=y
1093CONFIG_CRYPTO_MANAGER=y 1125CONFIG_CRYPTO_MANAGER=y
1094CONFIG_CRYPTO_HMAC=y 1126CONFIG_CRYPTO_HMAC=y
@@ -1107,6 +1139,9 @@ CONFIG_CRYPTO_CBC=y
1107CONFIG_CRYPTO_PCBC=m 1139CONFIG_CRYPTO_PCBC=m
1108# CONFIG_CRYPTO_LRW is not set 1140# CONFIG_CRYPTO_LRW is not set
1109# CONFIG_CRYPTO_XTS is not set 1141# CONFIG_CRYPTO_XTS is not set
1142# CONFIG_CRYPTO_CTR is not set
1143# CONFIG_CRYPTO_GCM is not set
1144# CONFIG_CRYPTO_CCM is not set
1110# CONFIG_CRYPTO_CRYPTD is not set 1145# CONFIG_CRYPTO_CRYPTD is not set
1111CONFIG_CRYPTO_DES=y 1146CONFIG_CRYPTO_DES=y
1112# CONFIG_CRYPTO_FCRYPT is not set 1147# CONFIG_CRYPTO_FCRYPT is not set
@@ -1122,11 +1157,13 @@ CONFIG_CRYPTO_ARC4=m
1122CONFIG_CRYPTO_KHAZAD=m 1157CONFIG_CRYPTO_KHAZAD=m
1123CONFIG_CRYPTO_ANUBIS=m 1158CONFIG_CRYPTO_ANUBIS=m
1124CONFIG_CRYPTO_SEED=m 1159CONFIG_CRYPTO_SEED=m
1160# CONFIG_CRYPTO_SALSA20 is not set
1125CONFIG_CRYPTO_DEFLATE=m 1161CONFIG_CRYPTO_DEFLATE=m
1126CONFIG_CRYPTO_MICHAEL_MIC=m 1162CONFIG_CRYPTO_MICHAEL_MIC=m
1127CONFIG_CRYPTO_CRC32C=m 1163CONFIG_CRYPTO_CRC32C=m
1128# CONFIG_CRYPTO_CAMELLIA is not set 1164# CONFIG_CRYPTO_CAMELLIA is not set
1129CONFIG_CRYPTO_TEST=m 1165CONFIG_CRYPTO_TEST=m
1130CONFIG_CRYPTO_AUTHENC=m 1166CONFIG_CRYPTO_AUTHENC=m
1167# CONFIG_CRYPTO_LZO is not set
1131# CONFIG_CRYPTO_HW is not set 1168# CONFIG_CRYPTO_HW is not set
1132# CONFIG_PPC_CLOCK is not set 1169# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 7b4280811fb9..22a943afc3c0 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:22 2007 4# Mon Mar 24 08:48:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,16 +67,24 @@ CONFIG_SYSVIPC_SYSCTL=y
66CONFIG_POSIX_MQUEUE=y 67CONFIG_POSIX_MQUEUE=y
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72CONFIG_IKCONFIG=y 71CONFIG_IKCONFIG=y
73CONFIG_IKCONFIG_PROC=y 72CONFIG_IKCONFIG_PROC=y
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83CONFIG_NAMESPACES=y
84# CONFIG_UTS_NS is not set
85# CONFIG_IPC_NS is not set
86# CONFIG_USER_NS is not set
87# CONFIG_PID_NS is not set
79CONFIG_BLK_DEV_INITRD=y 88CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 89CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +98,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 98CONFIG_PRINTK=y
90CONFIG_BUG=y 99CONFIG_BUG=y
91CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 102CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 103CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 104CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 105CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 109CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +112,14 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
102CONFIG_SLUB=y 113CONFIG_SLUB=y
103# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set
119CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y
121CONFIG_PROC_PAGE_MONITOR=y
122CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
@@ -128,6 +147,7 @@ CONFIG_DEFAULT_AS=y
128# CONFIG_DEFAULT_CFQ is not set 147# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
131 151
132# 152#
133# Platform support 153# Platform support
@@ -138,22 +158,24 @@ CONFIG_PPC_MULTIPLATFORM=y
138# CONFIG_PPC_86xx is not set 158# CONFIG_PPC_86xx is not set
139CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
140# CONFIG_PPC_CHRP is not set 160# CONFIG_PPC_CHRP is not set
161# CONFIG_PPC_MPC512x is not set
162# CONFIG_PPC_MPC5121 is not set
163# CONFIG_MPC5121_ADS is not set
141# CONFIG_PPC_MPC52xx is not set 164# CONFIG_PPC_MPC52xx is not set
142# CONFIG_PPC_MPC5200 is not set
143# CONFIG_PPC_EFIKA is not set
144# CONFIG_PPC_LITE5200 is not set
145# CONFIG_PPC_PMAC is not set 165# CONFIG_PPC_PMAC is not set
146# CONFIG_PPC_CELL is not set 166# CONFIG_PPC_CELL is not set
147# CONFIG_PPC_CELL_NATIVE is not set 167# CONFIG_PPC_CELL_NATIVE is not set
148# CONFIG_PQ2ADS is not set 168# CONFIG_PQ2ADS is not set
149CONFIG_EMBEDDED6xx=y 169CONFIG_EMBEDDED6xx=y
150CONFIG_LINKSTATION=y 170CONFIG_LINKSTATION=y
171# CONFIG_STORCENTER is not set
151# CONFIG_MPC7448HPC2 is not set 172# CONFIG_MPC7448HPC2 is not set
152# CONFIG_PPC_HOLLY is not set 173# CONFIG_PPC_HOLLY is not set
153# CONFIG_PPC_PRPMC2800 is not set 174# CONFIG_PPC_PRPMC2800 is not set
154CONFIG_MPC10X_BRIDGE=y 175CONFIG_MPC10X_BRIDGE=y
155CONFIG_MPC10X_OPENPIC=y 176CONFIG_MPC10X_OPENPIC=y
156# CONFIG_MPC10X_STORE_GATHERING is not set 177# CONFIG_MPC10X_STORE_GATHERING is not set
178# CONFIG_IPIC is not set
157CONFIG_MPIC=y 179CONFIG_MPIC=y
158# CONFIG_MPIC_WEIRD is not set 180# CONFIG_MPIC_WEIRD is not set
159# CONFIG_PPC_I8259 is not set 181# CONFIG_PPC_I8259 is not set
@@ -165,7 +187,6 @@ CONFIG_MPIC=y
165# CONFIG_GENERIC_IOMAP is not set 187# CONFIG_GENERIC_IOMAP is not set
166# CONFIG_CPU_FREQ is not set 188# CONFIG_CPU_FREQ is not set
167# CONFIG_TAU is not set 189# CONFIG_TAU is not set
168# CONFIG_CPM2 is not set
169# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
170 191
171# 192#
@@ -181,12 +202,16 @@ CONFIG_HZ_100=y
181# CONFIG_HZ_300 is not set 202# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 203# CONFIG_HZ_1000 is not set
183CONFIG_HZ=100 204CONFIG_HZ=100
205# CONFIG_SCHED_HRTICK is not set
184CONFIG_PREEMPT_NONE=y 206CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
187CONFIG_BINFMT_ELF=y 209CONFIG_BINFMT_ELF=y
188# CONFIG_BINFMT_MISC is not set 210# CONFIG_BINFMT_MISC is not set
211# CONFIG_IOMMU_HELPER is not set
189CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 212CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
213CONFIG_ARCH_HAS_WALK_MEMORY=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
190# CONFIG_KEXEC is not set 215# CONFIG_KEXEC is not set
191CONFIG_ARCH_FLATMEM_ENABLE=y 216CONFIG_ARCH_FLATMEM_ENABLE=y
192CONFIG_ARCH_POPULATES_NODE_MAP=y 217CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -206,10 +231,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
207# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
208# CONFIG_PM is not set 233# CONFIG_PM is not set
209CONFIG_SUSPEND_UP_POSSIBLE=y
210CONFIG_HIBERNATION_UP_POSSIBLE=y
211CONFIG_SECCOMP=y 234CONFIG_SECCOMP=y
212# CONFIG_WANT_DEVICE_TREE is not set
213CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
214 236
215# 237#
@@ -259,6 +281,7 @@ CONFIG_XFRM=y
259# CONFIG_XFRM_USER is not set 281# CONFIG_XFRM_USER is not set
260# CONFIG_XFRM_SUB_POLICY is not set 282# CONFIG_XFRM_SUB_POLICY is not set
261# CONFIG_XFRM_MIGRATE is not set 283# CONFIG_XFRM_MIGRATE is not set
284# CONFIG_XFRM_STATISTICS is not set
262# CONFIG_NET_KEY is not set 285# CONFIG_NET_KEY is not set
263CONFIG_INET=y 286CONFIG_INET=y
264CONFIG_IP_MULTICAST=y 287CONFIG_IP_MULTICAST=y
@@ -295,12 +318,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
295# CONFIG_NETWORK_SECMARK is not set 318# CONFIG_NETWORK_SECMARK is not set
296CONFIG_NETFILTER=y 319CONFIG_NETFILTER=y
297# CONFIG_NETFILTER_DEBUG is not set 320# CONFIG_NETFILTER_DEBUG is not set
321CONFIG_NETFILTER_ADVANCED=y
298 322
299# 323#
300# Core Netfilter Configuration 324# Core Netfilter Configuration
301# 325#
302# CONFIG_NETFILTER_NETLINK is not set 326# CONFIG_NETFILTER_NETLINK_QUEUE is not set
303CONFIG_NF_CONNTRACK_ENABLED=m 327# CONFIG_NETFILTER_NETLINK_LOG is not set
304CONFIG_NF_CONNTRACK=m 328CONFIG_NF_CONNTRACK=m
305# CONFIG_NF_CT_ACCT is not set 329# CONFIG_NF_CT_ACCT is not set
306# CONFIG_NF_CONNTRACK_MARK is not set 330# CONFIG_NF_CONNTRACK_MARK is not set
@@ -317,6 +341,7 @@ CONFIG_NF_CONNTRACK_PPTP=m
317# CONFIG_NF_CONNTRACK_SANE is not set 341# CONFIG_NF_CONNTRACK_SANE is not set
318CONFIG_NF_CONNTRACK_SIP=m 342CONFIG_NF_CONNTRACK_SIP=m
319CONFIG_NF_CONNTRACK_TFTP=m 343CONFIG_NF_CONNTRACK_TFTP=m
344# CONFIG_NF_CT_NETLINK is not set
320CONFIG_NETFILTER_XTABLES=m 345CONFIG_NETFILTER_XTABLES=m
321# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 346# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
322# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 347# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
@@ -325,8 +350,10 @@ CONFIG_NETFILTER_XTABLES=m
325# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 350# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
326# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 351# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
327# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 352# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
353# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
328# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 354# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
329# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 355# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
356# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
330# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 357# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
331# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 358# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
332# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set 359# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
@@ -336,14 +363,17 @@ CONFIG_NETFILTER_XTABLES=m
336# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 363# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
337# CONFIG_NETFILTER_XT_MATCH_ESP is not set 364# CONFIG_NETFILTER_XT_MATCH_ESP is not set
338# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 365# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
366# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
339# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 367# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
340# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 368# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
341CONFIG_NETFILTER_XT_MATCH_MAC=m 369CONFIG_NETFILTER_XT_MATCH_MAC=m
342# CONFIG_NETFILTER_XT_MATCH_MARK is not set 370# CONFIG_NETFILTER_XT_MATCH_MARK is not set
371# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
343# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 372# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
344# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set 373# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
345CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 374CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
346# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 375# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
376# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
347# CONFIG_NETFILTER_XT_MATCH_REALM is not set 377# CONFIG_NETFILTER_XT_MATCH_REALM is not set
348# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 378# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
349CONFIG_NETFILTER_XT_MATCH_STATE=m 379CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -361,13 +391,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
361CONFIG_NF_CONNTRACK_PROC_COMPAT=y 391CONFIG_NF_CONNTRACK_PROC_COMPAT=y
362# CONFIG_IP_NF_QUEUE is not set 392# CONFIG_IP_NF_QUEUE is not set
363CONFIG_IP_NF_IPTABLES=m 393CONFIG_IP_NF_IPTABLES=m
364CONFIG_IP_NF_MATCH_IPRANGE=m
365# CONFIG_IP_NF_MATCH_TOS is not set
366CONFIG_IP_NF_MATCH_RECENT=m 394CONFIG_IP_NF_MATCH_RECENT=m
367# CONFIG_IP_NF_MATCH_ECN is not set 395# CONFIG_IP_NF_MATCH_ECN is not set
368# CONFIG_IP_NF_MATCH_AH is not set 396# CONFIG_IP_NF_MATCH_AH is not set
369# CONFIG_IP_NF_MATCH_TTL is not set 397# CONFIG_IP_NF_MATCH_TTL is not set
370CONFIG_IP_NF_MATCH_OWNER=m
371CONFIG_IP_NF_MATCH_ADDRTYPE=m 398CONFIG_IP_NF_MATCH_ADDRTYPE=m
372CONFIG_IP_NF_FILTER=m 399CONFIG_IP_NF_FILTER=m
373CONFIG_IP_NF_TARGET_REJECT=m 400CONFIG_IP_NF_TARGET_REJECT=m
@@ -378,7 +405,6 @@ CONFIG_NF_NAT_NEEDED=y
378CONFIG_IP_NF_TARGET_MASQUERADE=m 405CONFIG_IP_NF_TARGET_MASQUERADE=m
379CONFIG_IP_NF_TARGET_REDIRECT=m 406CONFIG_IP_NF_TARGET_REDIRECT=m
380# CONFIG_IP_NF_TARGET_NETMAP is not set 407# CONFIG_IP_NF_TARGET_NETMAP is not set
381# CONFIG_IP_NF_TARGET_SAME is not set
382# CONFIG_NF_NAT_SNMP_BASIC is not set 408# CONFIG_NF_NAT_SNMP_BASIC is not set
383CONFIG_NF_NAT_PROTO_GRE=m 409CONFIG_NF_NAT_PROTO_GRE=m
384CONFIG_NF_NAT_FTP=m 410CONFIG_NF_NAT_FTP=m
@@ -389,7 +415,6 @@ CONFIG_NF_NAT_PPTP=m
389CONFIG_NF_NAT_H323=m 415CONFIG_NF_NAT_H323=m
390CONFIG_NF_NAT_SIP=m 416CONFIG_NF_NAT_SIP=m
391CONFIG_IP_NF_MANGLE=m 417CONFIG_IP_NF_MANGLE=m
392CONFIG_IP_NF_TARGET_TOS=m
393CONFIG_IP_NF_TARGET_ECN=m 418CONFIG_IP_NF_TARGET_ECN=m
394CONFIG_IP_NF_TARGET_TTL=m 419CONFIG_IP_NF_TARGET_TTL=m
395# CONFIG_IP_NF_TARGET_CLUSTERIP is not set 420# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
@@ -418,6 +443,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
418# 443#
419# CONFIG_NET_PKTGEN is not set 444# CONFIG_NET_PKTGEN is not set
420# CONFIG_HAMRADIO is not set 445# CONFIG_HAMRADIO is not set
446# CONFIG_CAN is not set
421# CONFIG_IRDA is not set 447# CONFIG_IRDA is not set
422# CONFIG_BT is not set 448# CONFIG_BT is not set
423# CONFIG_AF_RXRPC is not set 449# CONFIG_AF_RXRPC is not set
@@ -459,6 +485,7 @@ CONFIG_MTD_CONCAT=y
459CONFIG_MTD_PARTITIONS=y 485CONFIG_MTD_PARTITIONS=y
460# CONFIG_MTD_REDBOOT_PARTS is not set 486# CONFIG_MTD_REDBOOT_PARTS is not set
461# CONFIG_MTD_CMDLINE_PARTS is not set 487# CONFIG_MTD_CMDLINE_PARTS is not set
488# CONFIG_MTD_OF_PARTS is not set
462 489
463# 490#
464# User Modules And Translation Layers 491# User Modules And Translation Layers
@@ -554,7 +581,7 @@ CONFIG_BLK_DEV_LOOP=y
554CONFIG_BLK_DEV_RAM=y 581CONFIG_BLK_DEV_RAM=y
555CONFIG_BLK_DEV_RAM_COUNT=2 582CONFIG_BLK_DEV_RAM_COUNT=2
556CONFIG_BLK_DEV_RAM_SIZE=8192 583CONFIG_BLK_DEV_RAM_SIZE=8192
557CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 584# CONFIG_BLK_DEV_XIP is not set
558# CONFIG_CDROM_PKTCDVD is not set 585# CONFIG_CDROM_PKTCDVD is not set
559# CONFIG_ATA_OVER_ETH is not set 586# CONFIG_ATA_OVER_ETH is not set
560CONFIG_MISC_DEVICES=y 587CONFIG_MISC_DEVICES=y
@@ -562,6 +589,8 @@ CONFIG_MISC_DEVICES=y
562# CONFIG_EEPROM_93CX6 is not set 589# CONFIG_EEPROM_93CX6 is not set
563# CONFIG_SGI_IOC4 is not set 590# CONFIG_SGI_IOC4 is not set
564# CONFIG_TIFM_CORE is not set 591# CONFIG_TIFM_CORE is not set
592# CONFIG_ENCLOSURE_SERVICES is not set
593CONFIG_HAVE_IDE=y
565# CONFIG_IDE is not set 594# CONFIG_IDE is not set
566 595
567# 596#
@@ -626,6 +655,7 @@ CONFIG_SCSI_LOWLEVEL=y
626# CONFIG_SCSI_IPS is not set 655# CONFIG_SCSI_IPS is not set
627# CONFIG_SCSI_INITIO is not set 656# CONFIG_SCSI_INITIO is not set
628# CONFIG_SCSI_INIA100 is not set 657# CONFIG_SCSI_INIA100 is not set
658# CONFIG_SCSI_MVSAS is not set
629# CONFIG_SCSI_STEX is not set 659# CONFIG_SCSI_STEX is not set
630# CONFIG_SCSI_SYM53C8XX_2 is not set 660# CONFIG_SCSI_SYM53C8XX_2 is not set
631# CONFIG_SCSI_IPR is not set 661# CONFIG_SCSI_IPR is not set
@@ -656,6 +686,7 @@ CONFIG_ATA=y
656# CONFIG_SATA_VIA is not set 686# CONFIG_SATA_VIA is not set
657# CONFIG_SATA_VITESSE is not set 687# CONFIG_SATA_VITESSE is not set
658# CONFIG_SATA_INIC162X is not set 688# CONFIG_SATA_INIC162X is not set
689# CONFIG_SATA_FSL is not set
659# CONFIG_PATA_ALI is not set 690# CONFIG_PATA_ALI is not set
660# CONFIG_PATA_AMD is not set 691# CONFIG_PATA_AMD is not set
661# CONFIG_PATA_ARTOP is not set 692# CONFIG_PATA_ARTOP is not set
@@ -679,6 +710,7 @@ CONFIG_PATA_IT821X=y
679# CONFIG_PATA_MPIIX is not set 710# CONFIG_PATA_MPIIX is not set
680# CONFIG_PATA_OLDPIIX is not set 711# CONFIG_PATA_OLDPIIX is not set
681# CONFIG_PATA_NETCELL is not set 712# CONFIG_PATA_NETCELL is not set
713# CONFIG_PATA_NINJA32 is not set
682# CONFIG_PATA_NS87410 is not set 714# CONFIG_PATA_NS87410 is not set
683# CONFIG_PATA_NS87415 is not set 715# CONFIG_PATA_NS87415 is not set
684# CONFIG_PATA_OPTI is not set 716# CONFIG_PATA_OPTI is not set
@@ -693,6 +725,7 @@ CONFIG_PATA_SIL680=y
693# CONFIG_PATA_SIS is not set 725# CONFIG_PATA_SIS is not set
694# CONFIG_PATA_VIA is not set 726# CONFIG_PATA_VIA is not set
695# CONFIG_PATA_WINBOND is not set 727# CONFIG_PATA_WINBOND is not set
728# CONFIG_PATA_PLATFORM is not set
696# CONFIG_MD is not set 729# CONFIG_MD is not set
697# CONFIG_FUSION is not set 730# CONFIG_FUSION is not set
698 731
@@ -711,7 +744,6 @@ CONFIG_NETDEVICES=y
711# CONFIG_EQUALIZER is not set 744# CONFIG_EQUALIZER is not set
712CONFIG_TUN=m 745CONFIG_TUN=m
713# CONFIG_VETH is not set 746# CONFIG_VETH is not set
714# CONFIG_IP1000 is not set
715# CONFIG_ARCNET is not set 747# CONFIG_ARCNET is not set
716# CONFIG_PHYLIB is not set 748# CONFIG_PHYLIB is not set
717CONFIG_NET_ETHERNET=y 749CONFIG_NET_ETHERNET=y
@@ -742,6 +774,9 @@ CONFIG_NETDEV_1000=y
742# CONFIG_DL2K is not set 774# CONFIG_DL2K is not set
743# CONFIG_E1000 is not set 775# CONFIG_E1000 is not set
744# CONFIG_E1000E is not set 776# CONFIG_E1000E is not set
777# CONFIG_E1000E_ENABLED is not set
778# CONFIG_IP1000 is not set
779# CONFIG_IGB is not set
745# CONFIG_NS83820 is not set 780# CONFIG_NS83820 is not set
746# CONFIG_HAMACHI is not set 781# CONFIG_HAMACHI is not set
747# CONFIG_YELLOWFIN is not set 782# CONFIG_YELLOWFIN is not set
@@ -754,6 +789,7 @@ CONFIG_R8169=y
754# CONFIG_VIA_VELOCITY is not set 789# CONFIG_VIA_VELOCITY is not set
755# CONFIG_TIGON3 is not set 790# CONFIG_TIGON3 is not set
756# CONFIG_BNX2 is not set 791# CONFIG_BNX2 is not set
792# CONFIG_GIANFAR is not set
757# CONFIG_MV643XX_ETH is not set 793# CONFIG_MV643XX_ETH is not set
758# CONFIG_QLA3XXX is not set 794# CONFIG_QLA3XXX is not set
759# CONFIG_ATL1 is not set 795# CONFIG_ATL1 is not set
@@ -768,6 +804,7 @@ CONFIG_NETDEV_10000=y
768# CONFIG_NIU is not set 804# CONFIG_NIU is not set
769# CONFIG_MLX4_CORE is not set 805# CONFIG_MLX4_CORE is not set
770# CONFIG_TEHUTI is not set 806# CONFIG_TEHUTI is not set
807# CONFIG_BNX2X is not set
771# CONFIG_TR is not set 808# CONFIG_TR is not set
772 809
773# 810#
@@ -790,7 +827,6 @@ CONFIG_NETDEV_10000=y
790# CONFIG_PPP is not set 827# CONFIG_PPP is not set
791# CONFIG_SLIP is not set 828# CONFIG_SLIP is not set
792# CONFIG_NET_FC is not set 829# CONFIG_NET_FC is not set
793# CONFIG_SHAPER is not set
794CONFIG_NETCONSOLE=y 830CONFIG_NETCONSOLE=y
795# CONFIG_NETCONSOLE_DYNAMIC is not set 831# CONFIG_NETCONSOLE_DYNAMIC is not set
796CONFIG_NETPOLL=y 832CONFIG_NETPOLL=y
@@ -851,6 +887,7 @@ CONFIG_VT_CONSOLE=y
851CONFIG_HW_CONSOLE=y 887CONFIG_HW_CONSOLE=y
852# CONFIG_VT_HW_CONSOLE_BINDING is not set 888# CONFIG_VT_HW_CONSOLE_BINDING is not set
853# CONFIG_SERIAL_NONSTANDARD is not set 889# CONFIG_SERIAL_NONSTANDARD is not set
890# CONFIG_NOZOMI is not set
854 891
855# 892#
856# Serial drivers 893# Serial drivers
@@ -924,14 +961,12 @@ CONFIG_I2C_MPC=y
924# 961#
925# Miscellaneous I2C Chip support 962# Miscellaneous I2C Chip support
926# 963#
927# CONFIG_SENSORS_DS1337 is not set
928# CONFIG_SENSORS_DS1374 is not set
929# CONFIG_DS1682 is not set 964# CONFIG_DS1682 is not set
930CONFIG_SENSORS_EEPROM=m 965CONFIG_SENSORS_EEPROM=m
931# CONFIG_SENSORS_PCF8574 is not set 966# CONFIG_SENSORS_PCF8574 is not set
932# CONFIG_SENSORS_PCA9539 is not set 967# CONFIG_PCF8575 is not set
933# CONFIG_SENSORS_PCF8591 is not set 968# CONFIG_SENSORS_PCF8591 is not set
934# CONFIG_SENSORS_M41T00 is not set 969# CONFIG_TPS65010 is not set
935# CONFIG_SENSORS_MAX6875 is not set 970# CONFIG_SENSORS_MAX6875 is not set
936# CONFIG_SENSORS_TSL2550 is not set 971# CONFIG_SENSORS_TSL2550 is not set
937# CONFIG_I2C_DEBUG_CORE is not set 972# CONFIG_I2C_DEBUG_CORE is not set
@@ -956,6 +991,7 @@ CONFIG_HWMON=y
956# CONFIG_SENSORS_ADM1031 is not set 991# CONFIG_SENSORS_ADM1031 is not set
957# CONFIG_SENSORS_ADM9240 is not set 992# CONFIG_SENSORS_ADM9240 is not set
958# CONFIG_SENSORS_ADT7470 is not set 993# CONFIG_SENSORS_ADT7470 is not set
994# CONFIG_SENSORS_ADT7473 is not set
959# CONFIG_SENSORS_ATXP1 is not set 995# CONFIG_SENSORS_ATXP1 is not set
960# CONFIG_SENSORS_DS1621 is not set 996# CONFIG_SENSORS_DS1621 is not set
961# CONFIG_SENSORS_I5K_AMB is not set 997# CONFIG_SENSORS_I5K_AMB is not set
@@ -985,6 +1021,7 @@ CONFIG_HWMON=y
985# CONFIG_SENSORS_SMSC47M1 is not set 1021# CONFIG_SENSORS_SMSC47M1 is not set
986# CONFIG_SENSORS_SMSC47M192 is not set 1022# CONFIG_SENSORS_SMSC47M192 is not set
987# CONFIG_SENSORS_SMSC47B397 is not set 1023# CONFIG_SENSORS_SMSC47B397 is not set
1024# CONFIG_SENSORS_ADS7828 is not set
988# CONFIG_SENSORS_THMC50 is not set 1025# CONFIG_SENSORS_THMC50 is not set
989# CONFIG_SENSORS_VIA686A is not set 1026# CONFIG_SENSORS_VIA686A is not set
990# CONFIG_SENSORS_VT1211 is not set 1027# CONFIG_SENSORS_VT1211 is not set
@@ -994,9 +1031,11 @@ CONFIG_HWMON=y
994# CONFIG_SENSORS_W83792D is not set 1031# CONFIG_SENSORS_W83792D is not set
995# CONFIG_SENSORS_W83793 is not set 1032# CONFIG_SENSORS_W83793 is not set
996# CONFIG_SENSORS_W83L785TS is not set 1033# CONFIG_SENSORS_W83L785TS is not set
1034# CONFIG_SENSORS_W83L786NG is not set
997# CONFIG_SENSORS_W83627HF is not set 1035# CONFIG_SENSORS_W83627HF is not set
998# CONFIG_SENSORS_W83627EHF is not set 1036# CONFIG_SENSORS_W83627EHF is not set
999# CONFIG_HWMON_DEBUG_CHIP is not set 1037# CONFIG_HWMON_DEBUG_CHIP is not set
1038# CONFIG_THERMAL is not set
1000# CONFIG_WATCHDOG is not set 1039# CONFIG_WATCHDOG is not set
1001 1040
1002# 1041#
@@ -1063,6 +1102,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1063CONFIG_USB_ARCH_HAS_EHCI=y 1102CONFIG_USB_ARCH_HAS_EHCI=y
1064CONFIG_USB=y 1103CONFIG_USB=y
1065# CONFIG_USB_DEBUG is not set 1104# CONFIG_USB_DEBUG is not set
1105# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1066 1106
1067# 1107#
1068# Miscellaneous USB options 1108# Miscellaneous USB options
@@ -1076,9 +1116,10 @@ CONFIG_USB_DEVICE_CLASS=y
1076# USB Host Controller Drivers 1116# USB Host Controller Drivers
1077# 1117#
1078CONFIG_USB_EHCI_HCD=y 1118CONFIG_USB_EHCI_HCD=y
1079# CONFIG_USB_EHCI_SPLIT_ISO is not set
1080# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1119# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1081# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1120# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1121# CONFIG_USB_EHCI_FSL is not set
1122CONFIG_USB_EHCI_HCD_PPC_OF=y
1082# CONFIG_USB_ISP116X_HCD is not set 1123# CONFIG_USB_ISP116X_HCD is not set
1083CONFIG_USB_OHCI_HCD=y 1124CONFIG_USB_OHCI_HCD=y
1084CONFIG_USB_OHCI_HCD_PPC_OF=y 1125CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1130,12 +1171,9 @@ CONFIG_USB_MON=y
1130# 1171#
1131# USB port drivers 1172# USB port drivers
1132# 1173#
1133
1134#
1135# USB Serial Converter support
1136#
1137CONFIG_USB_SERIAL=y 1174CONFIG_USB_SERIAL=y
1138CONFIG_USB_SERIAL_CONSOLE=y 1175CONFIG_USB_SERIAL_CONSOLE=y
1176# CONFIG_USB_EZUSB is not set
1139# CONFIG_USB_SERIAL_GENERIC is not set 1177# CONFIG_USB_SERIAL_GENERIC is not set
1140# CONFIG_USB_SERIAL_AIRCABLE is not set 1178# CONFIG_USB_SERIAL_AIRCABLE is not set
1141# CONFIG_USB_SERIAL_AIRPRIME is not set 1179# CONFIG_USB_SERIAL_AIRPRIME is not set
@@ -1156,6 +1194,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1156# CONFIG_USB_SERIAL_EDGEPORT_TI is not set 1194# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1157# CONFIG_USB_SERIAL_GARMIN is not set 1195# CONFIG_USB_SERIAL_GARMIN is not set
1158# CONFIG_USB_SERIAL_IPW is not set 1196# CONFIG_USB_SERIAL_IPW is not set
1197# CONFIG_USB_SERIAL_IUU is not set
1159# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set 1198# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1160# CONFIG_USB_SERIAL_KEYSPAN is not set 1199# CONFIG_USB_SERIAL_KEYSPAN is not set
1161# CONFIG_USB_SERIAL_KLSI is not set 1200# CONFIG_USB_SERIAL_KLSI is not set
@@ -1199,16 +1238,9 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1199# CONFIG_USB_TRANCEVIBRATOR is not set 1238# CONFIG_USB_TRANCEVIBRATOR is not set
1200# CONFIG_USB_IOWARRIOR is not set 1239# CONFIG_USB_IOWARRIOR is not set
1201# CONFIG_USB_TEST is not set 1240# CONFIG_USB_TEST is not set
1202
1203#
1204# USB DSL modem support
1205#
1206
1207#
1208# USB Gadget Support
1209#
1210# CONFIG_USB_GADGET is not set 1241# CONFIG_USB_GADGET is not set
1211# CONFIG_MMC is not set 1242# CONFIG_MMC is not set
1243# CONFIG_MEMSTICK is not set
1212# CONFIG_NEW_LEDS is not set 1244# CONFIG_NEW_LEDS is not set
1213# CONFIG_INFINIBAND is not set 1245# CONFIG_INFINIBAND is not set
1214# CONFIG_EDAC is not set 1246# CONFIG_EDAC is not set
@@ -1240,6 +1272,7 @@ CONFIG_RTC_DRV_RS5C372=y
1240# CONFIG_RTC_DRV_PCF8563 is not set 1272# CONFIG_RTC_DRV_PCF8563 is not set
1241# CONFIG_RTC_DRV_PCF8583 is not set 1273# CONFIG_RTC_DRV_PCF8583 is not set
1242# CONFIG_RTC_DRV_M41T80 is not set 1274# CONFIG_RTC_DRV_M41T80 is not set
1275# CONFIG_RTC_DRV_S35390A is not set
1243 1276
1244# 1277#
1245# SPI RTC drivers 1278# SPI RTC drivers
@@ -1249,9 +1282,10 @@ CONFIG_RTC_DRV_RS5C372=y
1249# Platform RTC drivers 1282# Platform RTC drivers
1250# 1283#
1251# CONFIG_RTC_DRV_CMOS is not set 1284# CONFIG_RTC_DRV_CMOS is not set
1285# CONFIG_RTC_DRV_DS1511 is not set
1252# CONFIG_RTC_DRV_DS1553 is not set 1286# CONFIG_RTC_DRV_DS1553 is not set
1253# CONFIG_RTC_DRV_STK17TA8 is not set
1254# CONFIG_RTC_DRV_DS1742 is not set 1287# CONFIG_RTC_DRV_DS1742 is not set
1288# CONFIG_RTC_DRV_STK17TA8 is not set
1255# CONFIG_RTC_DRV_M48T86 is not set 1289# CONFIG_RTC_DRV_M48T86 is not set
1256# CONFIG_RTC_DRV_M48T59 is not set 1290# CONFIG_RTC_DRV_M48T59 is not set
1257# CONFIG_RTC_DRV_V3020 is not set 1291# CONFIG_RTC_DRV_V3020 is not set
@@ -1259,6 +1293,7 @@ CONFIG_RTC_DRV_RS5C372=y
1259# 1293#
1260# on-CPU RTC drivers 1294# on-CPU RTC drivers
1261# 1295#
1296# CONFIG_DMADEVICES is not set
1262 1297
1263# 1298#
1264# Userspace I/O 1299# Userspace I/O
@@ -1288,12 +1323,10 @@ CONFIG_XFS_FS=m
1288# CONFIG_XFS_RT is not set 1323# CONFIG_XFS_RT is not set
1289# CONFIG_GFS2_FS is not set 1324# CONFIG_GFS2_FS is not set
1290# CONFIG_OCFS2_FS is not set 1325# CONFIG_OCFS2_FS is not set
1291# CONFIG_MINIX_FS is not set 1326CONFIG_DNOTIFY=y
1292# CONFIG_ROMFS_FS is not set
1293CONFIG_INOTIFY=y 1327CONFIG_INOTIFY=y
1294CONFIG_INOTIFY_USER=y 1328CONFIG_INOTIFY_USER=y
1295# CONFIG_QUOTA is not set 1329# CONFIG_QUOTA is not set
1296CONFIG_DNOTIFY=y
1297# CONFIG_AUTOFS_FS is not set 1330# CONFIG_AUTOFS_FS is not set
1298# CONFIG_AUTOFS4_FS is not set 1331# CONFIG_AUTOFS4_FS is not set
1299# CONFIG_FUSE_FS is not set 1332# CONFIG_FUSE_FS is not set
@@ -1344,8 +1377,10 @@ CONFIG_TMPFS=y
1344# CONFIG_JFFS2_FS is not set 1377# CONFIG_JFFS2_FS is not set
1345# CONFIG_CRAMFS is not set 1378# CONFIG_CRAMFS is not set
1346# CONFIG_VXFS_FS is not set 1379# CONFIG_VXFS_FS is not set
1380# CONFIG_MINIX_FS is not set
1347# CONFIG_HPFS_FS is not set 1381# CONFIG_HPFS_FS is not set
1348# CONFIG_QNX4FS_FS is not set 1382# CONFIG_QNX4FS_FS is not set
1383# CONFIG_ROMFS_FS is not set
1349# CONFIG_SYSV_FS is not set 1384# CONFIG_SYSV_FS is not set
1350# CONFIG_UFS_FS is not set 1385# CONFIG_UFS_FS is not set
1351CONFIG_NETWORK_FILESYSTEMS=y 1386CONFIG_NETWORK_FILESYSTEMS=y
@@ -1427,7 +1462,6 @@ CONFIG_NLS_ISO8859_1=m
1427# CONFIG_NLS_KOI8_U is not set 1462# CONFIG_NLS_KOI8_U is not set
1428CONFIG_NLS_UTF8=m 1463CONFIG_NLS_UTF8=m
1429# CONFIG_DLM is not set 1464# CONFIG_DLM is not set
1430# CONFIG_UCC_SLOW is not set
1431 1465
1432# 1466#
1433# Library routines 1467# Library routines
@@ -1447,7 +1481,6 @@ CONFIG_PLIST=y
1447CONFIG_HAS_IOMEM=y 1481CONFIG_HAS_IOMEM=y
1448CONFIG_HAS_IOPORT=y 1482CONFIG_HAS_IOPORT=y
1449CONFIG_HAS_DMA=y 1483CONFIG_HAS_DMA=y
1450# CONFIG_INSTRUMENTATION is not set
1451 1484
1452# 1485#
1453# Kernel hacking 1486# Kernel hacking
@@ -1466,6 +1499,7 @@ CONFIG_SCHED_DEBUG=y
1466# CONFIG_SCHEDSTATS is not set 1499# CONFIG_SCHEDSTATS is not set
1467# CONFIG_TIMER_STATS is not set 1500# CONFIG_TIMER_STATS is not set
1468# CONFIG_SLUB_DEBUG_ON is not set 1501# CONFIG_SLUB_DEBUG_ON is not set
1502# CONFIG_SLUB_STATS is not set
1469# CONFIG_DEBUG_RT_MUTEXES is not set 1503# CONFIG_DEBUG_RT_MUTEXES is not set
1470# CONFIG_RT_MUTEX_TESTER is not set 1504# CONFIG_RT_MUTEX_TESTER is not set
1471# CONFIG_DEBUG_SPINLOCK is not set 1505# CONFIG_DEBUG_SPINLOCK is not set
@@ -1478,9 +1512,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1478# CONFIG_DEBUG_VM is not set 1512# CONFIG_DEBUG_VM is not set
1479# CONFIG_DEBUG_LIST is not set 1513# CONFIG_DEBUG_LIST is not set
1480# CONFIG_DEBUG_SG is not set 1514# CONFIG_DEBUG_SG is not set
1481CONFIG_FORCED_INLINING=y
1482# CONFIG_BOOT_PRINTK_DELAY is not set 1515# CONFIG_BOOT_PRINTK_DELAY is not set
1483# CONFIG_RCU_TORTURE_TEST is not set 1516# CONFIG_RCU_TORTURE_TEST is not set
1517# CONFIG_BACKTRACE_SELF_TEST is not set
1484# CONFIG_FAULT_INJECTION is not set 1518# CONFIG_FAULT_INJECTION is not set
1485# CONFIG_SAMPLES is not set 1519# CONFIG_SAMPLES is not set
1486# CONFIG_DEBUG_STACKOVERFLOW is not set 1520# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1500,6 +1534,7 @@ CONFIG_FORCED_INLINING=y
1500CONFIG_CRYPTO=y 1534CONFIG_CRYPTO=y
1501CONFIG_CRYPTO_ALGAPI=y 1535CONFIG_CRYPTO_ALGAPI=y
1502CONFIG_CRYPTO_BLKCIPHER=y 1536CONFIG_CRYPTO_BLKCIPHER=y
1537# CONFIG_CRYPTO_SEQIV is not set
1503CONFIG_CRYPTO_MANAGER=y 1538CONFIG_CRYPTO_MANAGER=y
1504# CONFIG_CRYPTO_HMAC is not set 1539# CONFIG_CRYPTO_HMAC is not set
1505# CONFIG_CRYPTO_XCBC is not set 1540# CONFIG_CRYPTO_XCBC is not set
@@ -1517,6 +1552,9 @@ CONFIG_CRYPTO_CBC=y
1517CONFIG_CRYPTO_PCBC=m 1552CONFIG_CRYPTO_PCBC=m
1518# CONFIG_CRYPTO_LRW is not set 1553# CONFIG_CRYPTO_LRW is not set
1519# CONFIG_CRYPTO_XTS is not set 1554# CONFIG_CRYPTO_XTS is not set
1555# CONFIG_CRYPTO_CTR is not set
1556# CONFIG_CRYPTO_GCM is not set
1557# CONFIG_CRYPTO_CCM is not set
1520# CONFIG_CRYPTO_CRYPTD is not set 1558# CONFIG_CRYPTO_CRYPTD is not set
1521CONFIG_CRYPTO_DES=y 1559CONFIG_CRYPTO_DES=y
1522# CONFIG_CRYPTO_FCRYPT is not set 1560# CONFIG_CRYPTO_FCRYPT is not set
@@ -1532,11 +1570,14 @@ CONFIG_CRYPTO_ARC4=m
1532# CONFIG_CRYPTO_KHAZAD is not set 1570# CONFIG_CRYPTO_KHAZAD is not set
1533# CONFIG_CRYPTO_ANUBIS is not set 1571# CONFIG_CRYPTO_ANUBIS is not set
1534# CONFIG_CRYPTO_SEED is not set 1572# CONFIG_CRYPTO_SEED is not set
1573# CONFIG_CRYPTO_SALSA20 is not set
1535CONFIG_CRYPTO_DEFLATE=m 1574CONFIG_CRYPTO_DEFLATE=m
1536CONFIG_CRYPTO_MICHAEL_MIC=m 1575CONFIG_CRYPTO_MICHAEL_MIC=m
1537CONFIG_CRYPTO_CRC32C=m 1576CONFIG_CRYPTO_CRC32C=m
1538# CONFIG_CRYPTO_CAMELLIA is not set 1577# CONFIG_CRYPTO_CAMELLIA is not set
1539# CONFIG_CRYPTO_TEST is not set 1578# CONFIG_CRYPTO_TEST is not set
1540# CONFIG_CRYPTO_AUTHENC is not set 1579# CONFIG_CRYPTO_AUTHENC is not set
1580# CONFIG_CRYPTO_LZO is not set
1541CONFIG_CRYPTO_HW=y 1581CONFIG_CRYPTO_HW=y
1582# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1542# CONFIG_PPC_CLOCK is not set 1583# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index b0266de48491..a3d52e3f2ded 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:28 2007 4# Mon Mar 24 08:48:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -87,11 +92,13 @@ CONFIG_HOTPLUG=y
87CONFIG_PRINTK=y 92CONFIG_PRINTK=y
88CONFIG_BUG=y 93CONFIG_BUG=y
89CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
90CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
91CONFIG_FUTEX=y 97CONFIG_FUTEX=y
92CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
93CONFIG_EPOLL=y 99CONFIG_EPOLL=y
94CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
95CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
96CONFIG_SHMEM=y 103CONFIG_SHMEM=y
97CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -99,6 +106,13 @@ CONFIG_SLUB_DEBUG=y
99# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
100CONFIG_SLUB=y 107CONFIG_SLUB=y
101# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0 118CONFIG_BASE_SMALL=0
@@ -121,6 +135,7 @@ CONFIG_DEFAULT_AS=y
121# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
122# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
123CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
124 139
125# 140#
126# Platform support 141# Platform support
@@ -131,20 +146,22 @@ CONFIG_PPC_MULTIPLATFORM=y
131# CONFIG_PPC_86xx is not set 146# CONFIG_PPC_86xx is not set
132CONFIG_CLASSIC32=y 147CONFIG_CLASSIC32=y
133# CONFIG_PPC_CHRP is not set 148# CONFIG_PPC_CHRP is not set
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_MPC5121_ADS is not set
134# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC52xx is not set
135# CONFIG_PPC_MPC5200 is not set
136# CONFIG_PPC_EFIKA is not set
137# CONFIG_PPC_LITE5200 is not set
138# CONFIG_PPC_PMAC is not set 153# CONFIG_PPC_PMAC is not set
139# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
142CONFIG_EMBEDDED6xx=y 157CONFIG_EMBEDDED6xx=y
143# CONFIG_LINKSTATION is not set 158# CONFIG_LINKSTATION is not set
159# CONFIG_STORCENTER is not set
144CONFIG_MPC7448HPC2=y 160CONFIG_MPC7448HPC2=y
145# CONFIG_PPC_HOLLY is not set 161# CONFIG_PPC_HOLLY is not set
146# CONFIG_PPC_PRPMC2800 is not set 162# CONFIG_PPC_PRPMC2800 is not set
147CONFIG_TSI108_BRIDGE=y 163CONFIG_TSI108_BRIDGE=y
164# CONFIG_IPIC is not set
148CONFIG_MPIC=y 165CONFIG_MPIC=y
149CONFIG_MPIC_WEIRD=y 166CONFIG_MPIC_WEIRD=y
150# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -156,7 +173,6 @@ CONFIG_MPIC_WEIRD=y
156# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
158# CONFIG_TAU is not set 175# CONFIG_TAU is not set
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 176# CONFIG_FSL_ULI1575 is not set
161 177
162# 178#
@@ -172,12 +188,16 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
179CONFIG_BINFMT_MISC=y 196CONFIG_BINFMT_MISC=y
197# CONFIG_IOMMU_HELPER is not set
180CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 198CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
199CONFIG_ARCH_HAS_WALK_MEMORY=y
200CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
181# CONFIG_KEXEC is not set 201# CONFIG_KEXEC is not set
182CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -197,11 +217,7 @@ CONFIG_VIRT_TO_BUS=y
197CONFIG_PROC_DEVICETREE=y 217CONFIG_PROC_DEVICETREE=y
198# CONFIG_CMDLINE_BOOL is not set 218# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 219# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202# CONFIG_SECCOMP is not set 220# CONFIG_SECCOMP is not set
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
206 222
207# 223#
@@ -249,6 +265,7 @@ CONFIG_XFRM=y
249CONFIG_XFRM_USER=y 265CONFIG_XFRM_USER=y
250# CONFIG_XFRM_SUB_POLICY is not set 266# CONFIG_XFRM_SUB_POLICY is not set
251# CONFIG_XFRM_MIGRATE is not set 267# CONFIG_XFRM_MIGRATE is not set
268# CONFIG_XFRM_STATISTICS is not set
252# CONFIG_NET_KEY is not set 269# CONFIG_NET_KEY is not set
253CONFIG_INET=y 270CONFIG_INET=y
254CONFIG_IP_MULTICAST=y 271CONFIG_IP_MULTICAST=y
@@ -304,6 +321,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
304# 321#
305# CONFIG_NET_PKTGEN is not set 322# CONFIG_NET_PKTGEN is not set
306# CONFIG_HAMRADIO is not set 323# CONFIG_HAMRADIO is not set
324# CONFIG_CAN is not set
307# CONFIG_IRDA is not set 325# CONFIG_IRDA is not set
308# CONFIG_BT is not set 326# CONFIG_BT is not set
309# CONFIG_AF_RXRPC is not set 327# CONFIG_AF_RXRPC is not set
@@ -348,7 +366,7 @@ CONFIG_BLK_DEV_LOOP=y
348CONFIG_BLK_DEV_RAM=y 366CONFIG_BLK_DEV_RAM=y
349CONFIG_BLK_DEV_RAM_COUNT=16 367CONFIG_BLK_DEV_RAM_COUNT=16
350CONFIG_BLK_DEV_RAM_SIZE=131072 368CONFIG_BLK_DEV_RAM_SIZE=131072
351CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 369# CONFIG_BLK_DEV_XIP is not set
352# CONFIG_CDROM_PKTCDVD is not set 370# CONFIG_CDROM_PKTCDVD is not set
353# CONFIG_ATA_OVER_ETH is not set 371# CONFIG_ATA_OVER_ETH is not set
354CONFIG_MISC_DEVICES=y 372CONFIG_MISC_DEVICES=y
@@ -356,6 +374,8 @@ CONFIG_MISC_DEVICES=y
356# CONFIG_EEPROM_93CX6 is not set 374# CONFIG_EEPROM_93CX6 is not set
357# CONFIG_SGI_IOC4 is not set 375# CONFIG_SGI_IOC4 is not set
358# CONFIG_TIFM_CORE is not set 376# CONFIG_TIFM_CORE is not set
377# CONFIG_ENCLOSURE_SERVICES is not set
378CONFIG_HAVE_IDE=y
359# CONFIG_IDE is not set 379# CONFIG_IDE is not set
360 380
361# 381#
@@ -419,6 +439,7 @@ CONFIG_SCSI_LOWLEVEL=y
419# CONFIG_SCSI_IPS is not set 439# CONFIG_SCSI_IPS is not set
420# CONFIG_SCSI_INITIO is not set 440# CONFIG_SCSI_INITIO is not set
421# CONFIG_SCSI_INIA100 is not set 441# CONFIG_SCSI_INIA100 is not set
442# CONFIG_SCSI_MVSAS is not set
422# CONFIG_SCSI_STEX is not set 443# CONFIG_SCSI_STEX is not set
423# CONFIG_SCSI_SYM53C8XX_2 is not set 444# CONFIG_SCSI_SYM53C8XX_2 is not set
424# CONFIG_SCSI_IPR is not set 445# CONFIG_SCSI_IPR is not set
@@ -472,6 +493,7 @@ CONFIG_SATA_MV=y
472# CONFIG_PATA_MPIIX is not set 493# CONFIG_PATA_MPIIX is not set
473# CONFIG_PATA_OLDPIIX is not set 494# CONFIG_PATA_OLDPIIX is not set
474# CONFIG_PATA_NETCELL is not set 495# CONFIG_PATA_NETCELL is not set
496# CONFIG_PATA_NINJA32 is not set
475# CONFIG_PATA_NS87410 is not set 497# CONFIG_PATA_NS87410 is not set
476# CONFIG_PATA_NS87415 is not set 498# CONFIG_PATA_NS87415 is not set
477# CONFIG_PATA_OPTI is not set 499# CONFIG_PATA_OPTI is not set
@@ -505,7 +527,6 @@ CONFIG_NETDEVICES=y
505# CONFIG_EQUALIZER is not set 527# CONFIG_EQUALIZER is not set
506# CONFIG_TUN is not set 528# CONFIG_TUN is not set
507# CONFIG_VETH is not set 529# CONFIG_VETH is not set
508# CONFIG_IP1000 is not set
509# CONFIG_ARCNET is not set 530# CONFIG_ARCNET is not set
510CONFIG_PHYLIB=y 531CONFIG_PHYLIB=y
511 532
@@ -521,6 +542,7 @@ CONFIG_PHYLIB=y
521# CONFIG_SMSC_PHY is not set 542# CONFIG_SMSC_PHY is not set
522# CONFIG_BROADCOM_PHY is not set 543# CONFIG_BROADCOM_PHY is not set
523# CONFIG_ICPLUS_PHY is not set 544# CONFIG_ICPLUS_PHY is not set
545# CONFIG_REALTEK_PHY is not set
524# CONFIG_FIXED_PHY is not set 546# CONFIG_FIXED_PHY is not set
525# CONFIG_MDIO_BITBANG is not set 547# CONFIG_MDIO_BITBANG is not set
526CONFIG_NET_ETHERNET=y 548CONFIG_NET_ETHERNET=y
@@ -552,6 +574,7 @@ CONFIG_8139TOO=y
552# CONFIG_8139TOO_TUNE_TWISTER is not set 574# CONFIG_8139TOO_TUNE_TWISTER is not set
553# CONFIG_8139TOO_8129 is not set 575# CONFIG_8139TOO_8129 is not set
554# CONFIG_8139_OLD_RX_RESET is not set 576# CONFIG_8139_OLD_RX_RESET is not set
577# CONFIG_R6040 is not set
555# CONFIG_SIS900 is not set 578# CONFIG_SIS900 is not set
556# CONFIG_EPIC100 is not set 579# CONFIG_EPIC100 is not set
557# CONFIG_SUNDANCE is not set 580# CONFIG_SUNDANCE is not set
@@ -563,6 +586,9 @@ CONFIG_NETDEV_1000=y
563# CONFIG_DL2K is not set 586# CONFIG_DL2K is not set
564# CONFIG_E1000 is not set 587# CONFIG_E1000 is not set
565# CONFIG_E1000E is not set 588# CONFIG_E1000E is not set
589# CONFIG_E1000E_ENABLED is not set
590# CONFIG_IP1000 is not set
591# CONFIG_IGB is not set
566# CONFIG_NS83820 is not set 592# CONFIG_NS83820 is not set
567# CONFIG_HAMACHI is not set 593# CONFIG_HAMACHI is not set
568# CONFIG_YELLOWFIN is not set 594# CONFIG_YELLOWFIN is not set
@@ -589,6 +615,7 @@ CONFIG_NETDEV_10000=y
589# CONFIG_NIU is not set 615# CONFIG_NIU is not set
590# CONFIG_MLX4_CORE is not set 616# CONFIG_MLX4_CORE is not set
591# CONFIG_TEHUTI is not set 617# CONFIG_TEHUTI is not set
618# CONFIG_BNX2X is not set
592# CONFIG_TR is not set 619# CONFIG_TR is not set
593 620
594# 621#
@@ -602,7 +629,6 @@ CONFIG_NETDEV_10000=y
602# CONFIG_PPP is not set 629# CONFIG_PPP is not set
603# CONFIG_SLIP is not set 630# CONFIG_SLIP is not set
604# CONFIG_NET_FC is not set 631# CONFIG_NET_FC is not set
605# CONFIG_SHAPER is not set
606# CONFIG_NETCONSOLE is not set 632# CONFIG_NETCONSOLE is not set
607# CONFIG_NETPOLL is not set 633# CONFIG_NETPOLL is not set
608# CONFIG_NET_POLL_CONTROLLER is not set 634# CONFIG_NET_POLL_CONTROLLER is not set
@@ -645,6 +671,7 @@ CONFIG_INPUT=y
645# 671#
646# CONFIG_VT is not set 672# CONFIG_VT is not set
647# CONFIG_SERIAL_NONSTANDARD is not set 673# CONFIG_SERIAL_NONSTANDARD is not set
674# CONFIG_NOZOMI is not set
648 675
649# 676#
650# Serial drivers 677# Serial drivers
@@ -703,6 +730,7 @@ CONFIG_HWMON=y
703# CONFIG_SENSORS_W83627HF is not set 730# CONFIG_SENSORS_W83627HF is not set
704# CONFIG_SENSORS_W83627EHF is not set 731# CONFIG_SENSORS_W83627EHF is not set
705# CONFIG_HWMON_DEBUG_CHIP is not set 732# CONFIG_HWMON_DEBUG_CHIP is not set
733# CONFIG_THERMAL is not set
706# CONFIG_WATCHDOG is not set 734# CONFIG_WATCHDOG is not set
707 735
708# 736#
@@ -755,16 +783,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
755# 783#
756# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 784# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
757# 785#
758
759#
760# USB Gadget Support
761#
762# CONFIG_USB_GADGET is not set 786# CONFIG_USB_GADGET is not set
763# CONFIG_MMC is not set 787# CONFIG_MMC is not set
788# CONFIG_MEMSTICK is not set
764# CONFIG_NEW_LEDS is not set 789# CONFIG_NEW_LEDS is not set
765# CONFIG_INFINIBAND is not set 790# CONFIG_INFINIBAND is not set
766# CONFIG_EDAC is not set 791# CONFIG_EDAC is not set
767# CONFIG_RTC_CLASS is not set 792# CONFIG_RTC_CLASS is not set
793# CONFIG_DMADEVICES is not set
768 794
769# 795#
770# Userspace I/O 796# Userspace I/O
@@ -790,12 +816,10 @@ CONFIG_FS_MBCACHE=y
790# CONFIG_XFS_FS is not set 816# CONFIG_XFS_FS is not set
791# CONFIG_GFS2_FS is not set 817# CONFIG_GFS2_FS is not set
792# CONFIG_OCFS2_FS is not set 818# CONFIG_OCFS2_FS is not set
793# CONFIG_MINIX_FS is not set 819CONFIG_DNOTIFY=y
794# CONFIG_ROMFS_FS is not set
795CONFIG_INOTIFY=y 820CONFIG_INOTIFY=y
796CONFIG_INOTIFY_USER=y 821CONFIG_INOTIFY_USER=y
797# CONFIG_QUOTA is not set 822# CONFIG_QUOTA is not set
798CONFIG_DNOTIFY=y
799# CONFIG_AUTOFS_FS is not set 823# CONFIG_AUTOFS_FS is not set
800# CONFIG_AUTOFS4_FS is not set 824# CONFIG_AUTOFS4_FS is not set
801# CONFIG_FUSE_FS is not set 825# CONFIG_FUSE_FS is not set
@@ -837,8 +861,10 @@ CONFIG_TMPFS=y
837# CONFIG_EFS_FS is not set 861# CONFIG_EFS_FS is not set
838# CONFIG_CRAMFS is not set 862# CONFIG_CRAMFS is not set
839# CONFIG_VXFS_FS is not set 863# CONFIG_VXFS_FS is not set
864# CONFIG_MINIX_FS is not set
840# CONFIG_HPFS_FS is not set 865# CONFIG_HPFS_FS is not set
841# CONFIG_QNX4FS_FS is not set 866# CONFIG_QNX4FS_FS is not set
867# CONFIG_ROMFS_FS is not set
842# CONFIG_SYSV_FS is not set 868# CONFIG_SYSV_FS is not set
843# CONFIG_UFS_FS is not set 869# CONFIG_UFS_FS is not set
844CONFIG_NETWORK_FILESYSTEMS=y 870CONFIG_NETWORK_FILESYSTEMS=y
@@ -883,7 +909,6 @@ CONFIG_MSDOS_PARTITION=y
883# CONFIG_SYSV68_PARTITION is not set 909# CONFIG_SYSV68_PARTITION is not set
884# CONFIG_NLS is not set 910# CONFIG_NLS is not set
885# CONFIG_DLM is not set 911# CONFIG_DLM is not set
886# CONFIG_UCC_SLOW is not set
887 912
888# 913#
889# Library routines 914# Library routines
@@ -899,7 +924,6 @@ CONFIG_PLIST=y
899CONFIG_HAS_IOMEM=y 924CONFIG_HAS_IOMEM=y
900CONFIG_HAS_IOPORT=y 925CONFIG_HAS_IOPORT=y
901CONFIG_HAS_DMA=y 926CONFIG_HAS_DMA=y
902# CONFIG_INSTRUMENTATION is not set
903 927
904# 928#
905# Kernel hacking 929# Kernel hacking
@@ -913,6 +937,7 @@ CONFIG_ENABLE_MUST_CHECK=y
913# CONFIG_HEADERS_CHECK is not set 937# CONFIG_HEADERS_CHECK is not set
914# CONFIG_DEBUG_KERNEL is not set 938# CONFIG_DEBUG_KERNEL is not set
915# CONFIG_SLUB_DEBUG_ON is not set 939# CONFIG_SLUB_DEBUG_ON is not set
940# CONFIG_SLUB_STATS is not set
916# CONFIG_DEBUG_BUGVERBOSE is not set 941# CONFIG_DEBUG_BUGVERBOSE is not set
917# CONFIG_SAMPLES is not set 942# CONFIG_SAMPLES is not set
918# CONFIG_BOOTX_TEXT is not set 943# CONFIG_BOOTX_TEXT is not set
@@ -924,5 +949,49 @@ CONFIG_ENABLE_MUST_CHECK=y
924# CONFIG_KEYS is not set 949# CONFIG_KEYS is not set
925# CONFIG_SECURITY is not set 950# CONFIG_SECURITY is not set
926# CONFIG_SECURITY_FILE_CAPABILITIES is not set 951# CONFIG_SECURITY_FILE_CAPABILITIES is not set
927# CONFIG_CRYPTO is not set 952CONFIG_CRYPTO=y
953# CONFIG_CRYPTO_SEQIV is not set
954# CONFIG_CRYPTO_MANAGER is not set
955# CONFIG_CRYPTO_HMAC is not set
956# CONFIG_CRYPTO_XCBC is not set
957# CONFIG_CRYPTO_NULL is not set
958# CONFIG_CRYPTO_MD4 is not set
959# CONFIG_CRYPTO_MD5 is not set
960# CONFIG_CRYPTO_SHA1 is not set
961# CONFIG_CRYPTO_SHA256 is not set
962# CONFIG_CRYPTO_SHA512 is not set
963# CONFIG_CRYPTO_WP512 is not set
964# CONFIG_CRYPTO_TGR192 is not set
965# CONFIG_CRYPTO_GF128MUL is not set
966# CONFIG_CRYPTO_ECB is not set
967# CONFIG_CRYPTO_CBC is not set
968# CONFIG_CRYPTO_PCBC is not set
969# CONFIG_CRYPTO_LRW is not set
970# CONFIG_CRYPTO_XTS is not set
971# CONFIG_CRYPTO_CTR is not set
972# CONFIG_CRYPTO_GCM is not set
973# CONFIG_CRYPTO_CCM is not set
974# CONFIG_CRYPTO_CRYPTD is not set
975# CONFIG_CRYPTO_DES is not set
976# CONFIG_CRYPTO_FCRYPT is not set
977# CONFIG_CRYPTO_BLOWFISH is not set
978# CONFIG_CRYPTO_TWOFISH is not set
979# CONFIG_CRYPTO_SERPENT is not set
980# CONFIG_CRYPTO_AES is not set
981# CONFIG_CRYPTO_CAST5 is not set
982# CONFIG_CRYPTO_CAST6 is not set
983# CONFIG_CRYPTO_TEA is not set
984# CONFIG_CRYPTO_ARC4 is not set
985# CONFIG_CRYPTO_KHAZAD is not set
986# CONFIG_CRYPTO_ANUBIS is not set
987# CONFIG_CRYPTO_SEED is not set
988# CONFIG_CRYPTO_SALSA20 is not set
989# CONFIG_CRYPTO_DEFLATE is not set
990# CONFIG_CRYPTO_MICHAEL_MIC is not set
991# CONFIG_CRYPTO_CRC32C is not set
992# CONFIG_CRYPTO_CAMELLIA is not set
993# CONFIG_CRYPTO_AUTHENC is not set
994# CONFIG_CRYPTO_LZO is not set
995CONFIG_CRYPTO_HW=y
996# CONFIG_CRYPTO_DEV_HIFN_795X is not set
928# CONFIG_PPC_CLOCK is not set 997# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 5eae305215dc..0264c5757f78 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 13 22:40:57 2007 4# Mon Mar 24 08:48:13 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -69,9 +70,14 @@ CONFIG_IKCONFIG=y
69CONFIG_IKCONFIG_PROC=y 70CONFIG_IKCONFIG_PROC=y
70CONFIG_LOG_BUF_SHIFT=14 71CONFIG_LOG_BUF_SHIFT=14
71# CONFIG_CGROUPS is not set 72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
72# CONFIG_FAIR_GROUP_SCHED is not set 74# CONFIG_FAIR_GROUP_SCHED is not set
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
73CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y
74# CONFIG_RELAY is not set 79# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set
75# CONFIG_BLK_DEV_INITRD is not set 81# CONFIG_BLK_DEV_INITRD is not set
76CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
77CONFIG_EMBEDDED=y 83CONFIG_EMBEDDED=y
@@ -83,11 +89,13 @@ CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 89CONFIG_PRINTK=y
84CONFIG_BUG=y 90CONFIG_BUG=y
85CONFIG_ELF_CORE=y 91CONFIG_ELF_CORE=y
92CONFIG_COMPAT_BRK=y
86CONFIG_BASE_FULL=y 93CONFIG_BASE_FULL=y
87CONFIG_FUTEX=y 94CONFIG_FUTEX=y
88CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
89CONFIG_EPOLL=y 96CONFIG_EPOLL=y
90CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
98CONFIG_TIMERFD=y
91CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 100CONFIG_SHMEM=y
93CONFIG_VM_EVENT_COUNTERS=y 101CONFIG_VM_EVENT_COUNTERS=y
@@ -95,6 +103,13 @@ CONFIG_SLUB_DEBUG=y
95# CONFIG_SLAB is not set 103# CONFIG_SLAB is not set
96CONFIG_SLUB=y 104CONFIG_SLUB=y
97# CONFIG_SLOB is not set 105# CONFIG_SLOB is not set
106# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y
111CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y
98CONFIG_RT_MUTEXES=y 113CONFIG_RT_MUTEXES=y
99# CONFIG_TINY_SHMEM is not set 114# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 115CONFIG_BASE_SMALL=0
@@ -116,6 +131,7 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
117# CONFIG_DEFAULT_NOOP is not set 132# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 133CONFIG_DEFAULT_IOSCHED="anticipatory"
134CONFIG_CLASSIC_RCU=y
119 135
120# 136#
121# Platform support 137# Platform support
@@ -124,16 +140,18 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
124CONFIG_PPC_82xx=y 140CONFIG_PPC_82xx=y
125# CONFIG_PPC_83xx is not set 141# CONFIG_PPC_83xx is not set
126# CONFIG_PPC_86xx is not set 142# CONFIG_PPC_86xx is not set
127# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
128# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
129# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
130# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
131CONFIG_MPC8272_ADS=y 147CONFIG_MPC8272_ADS=y
132# CONFIG_PQ2FADS is not set 148# CONFIG_PQ2FADS is not set
149# CONFIG_EP8248E is not set
133CONFIG_PQ2ADS=y 150CONFIG_PQ2ADS=y
134CONFIG_8260=y 151CONFIG_8260=y
135CONFIG_8272=y 152CONFIG_8272=y
136CONFIG_PQ2_ADS_PCI_PIC=y 153CONFIG_PQ2_ADS_PCI_PIC=y
154# CONFIG_IPIC is not set
137# CONFIG_MPIC is not set 155# CONFIG_MPIC is not set
138# CONFIG_MPIC_WEIRD is not set 156# CONFIG_MPIC_WEIRD is not set
139# CONFIG_PPC_I8259 is not set 157# CONFIG_PPC_I8259 is not set
@@ -162,12 +180,16 @@ CONFIG_HZ_250=y
162# CONFIG_HZ_300 is not set 180# CONFIG_HZ_300 is not set
163# CONFIG_HZ_1000 is not set 181# CONFIG_HZ_1000 is not set
164CONFIG_HZ=250 182CONFIG_HZ=250
183# CONFIG_SCHED_HRTICK is not set
165CONFIG_PREEMPT_NONE=y 184CONFIG_PREEMPT_NONE=y
166# CONFIG_PREEMPT_VOLUNTARY is not set 185# CONFIG_PREEMPT_VOLUNTARY is not set
167# CONFIG_PREEMPT is not set 186# CONFIG_PREEMPT is not set
168CONFIG_BINFMT_ELF=y 187CONFIG_BINFMT_ELF=y
169CONFIG_BINFMT_MISC=y 188CONFIG_BINFMT_MISC=y
189# CONFIG_IOMMU_HELPER is not set
170CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 190CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
191CONFIG_ARCH_HAS_WALK_MEMORY=y
192CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
171CONFIG_ARCH_FLATMEM_ENABLE=y 193CONFIG_ARCH_FLATMEM_ENABLE=y
172CONFIG_ARCH_POPULATES_NODE_MAP=y 194CONFIG_ARCH_POPULATES_NODE_MAP=y
173CONFIG_FLATMEM=y 195CONFIG_FLATMEM=y
@@ -182,11 +204,7 @@ CONFIG_VIRT_TO_BUS=y
182CONFIG_PROC_DEVICETREE=y 204CONFIG_PROC_DEVICETREE=y
183# CONFIG_CMDLINE_BOOL is not set 205# CONFIG_CMDLINE_BOOL is not set
184# CONFIG_PM is not set 206# CONFIG_PM is not set
185CONFIG_SUSPEND_UP_POSSIBLE=y
186CONFIG_HIBERNATION_UP_POSSIBLE=y
187CONFIG_SECCOMP=y 207CONFIG_SECCOMP=y
188CONFIG_WANT_DEVICE_TREE=y
189CONFIG_DEVICE_TREE="mpc8272ads.dts"
190CONFIG_ISA_DMA_API=y 208CONFIG_ISA_DMA_API=y
191 209
192# 210#
@@ -205,6 +223,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
205CONFIG_PCI_LEGACY=y 223CONFIG_PCI_LEGACY=y
206# CONFIG_PCI_DEBUG is not set 224# CONFIG_PCI_DEBUG is not set
207# CONFIG_PCCARD is not set 225# CONFIG_PCCARD is not set
226# CONFIG_HOTPLUG_PCI is not set
208 227
209# 228#
210# Advanced setup 229# Advanced setup
@@ -277,12 +296,13 @@ CONFIG_IPV6_SIT=y
277# CONFIG_NETWORK_SECMARK is not set 296# CONFIG_NETWORK_SECMARK is not set
278CONFIG_NETFILTER=y 297CONFIG_NETFILTER=y
279# CONFIG_NETFILTER_DEBUG is not set 298# CONFIG_NETFILTER_DEBUG is not set
299CONFIG_NETFILTER_ADVANCED=y
280 300
281# 301#
282# Core Netfilter Configuration 302# Core Netfilter Configuration
283# 303#
284# CONFIG_NETFILTER_NETLINK is not set 304# CONFIG_NETFILTER_NETLINK_QUEUE is not set
285# CONFIG_NF_CONNTRACK_ENABLED is not set 305# CONFIG_NETFILTER_NETLINK_LOG is not set
286# CONFIG_NF_CONNTRACK is not set 306# CONFIG_NF_CONNTRACK is not set
287# CONFIG_NETFILTER_XTABLES is not set 307# CONFIG_NETFILTER_XTABLES is not set
288 308
@@ -292,6 +312,13 @@ CONFIG_NETFILTER=y
292# CONFIG_IP_NF_QUEUE is not set 312# CONFIG_IP_NF_QUEUE is not set
293# CONFIG_IP_NF_IPTABLES is not set 313# CONFIG_IP_NF_IPTABLES is not set
294# CONFIG_IP_NF_ARPTABLES is not set 314# CONFIG_IP_NF_ARPTABLES is not set
315
316#
317# IPv6: Netfilter Configuration
318#
319# CONFIG_IP6_NF_QUEUE is not set
320# CONFIG_IP6_NF_IPTABLES is not set
321# CONFIG_ATM is not set
295# CONFIG_BRIDGE is not set 322# CONFIG_BRIDGE is not set
296# CONFIG_VLAN_8021Q is not set 323# CONFIG_VLAN_8021Q is not set
297# CONFIG_DECNET is not set 324# CONFIG_DECNET is not set
@@ -305,6 +332,7 @@ CONFIG_NETFILTER=y
305# 332#
306# CONFIG_NET_PKTGEN is not set 333# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 334# CONFIG_HAMRADIO is not set
335# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 336# CONFIG_IRDA is not set
309# CONFIG_BT is not set 337# CONFIG_BT is not set
310 338
@@ -313,6 +341,7 @@ CONFIG_NETFILTER=y
313# 341#
314# CONFIG_CFG80211 is not set 342# CONFIG_CFG80211 is not set
315# CONFIG_WIRELESS_EXT is not set 343# CONFIG_WIRELESS_EXT is not set
344# CONFIG_MAC80211 is not set
316# CONFIG_IEEE80211 is not set 345# CONFIG_IEEE80211 is not set
317# CONFIG_RFKILL is not set 346# CONFIG_RFKILL is not set
318 347
@@ -427,6 +456,7 @@ CONFIG_BLK_DEV_LOOP=y
427# CONFIG_CDROM_PKTCDVD is not set 456# CONFIG_CDROM_PKTCDVD is not set
428# CONFIG_ATA_OVER_ETH is not set 457# CONFIG_ATA_OVER_ETH is not set
429# CONFIG_MISC_DEVICES is not set 458# CONFIG_MISC_DEVICES is not set
459CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 460# CONFIG_IDE is not set
431 461
432# 462#
@@ -472,6 +502,7 @@ CONFIG_DAVICOM_PHY=y
472# CONFIG_SMSC_PHY is not set 502# CONFIG_SMSC_PHY is not set
473# CONFIG_BROADCOM_PHY is not set 503# CONFIG_BROADCOM_PHY is not set
474# CONFIG_ICPLUS_PHY is not set 504# CONFIG_ICPLUS_PHY is not set
505# CONFIG_REALTEK_PHY is not set
475# CONFIG_FIXED_PHY is not set 506# CONFIG_FIXED_PHY is not set
476CONFIG_MDIO_BITBANG=y 507CONFIG_MDIO_BITBANG=y
477CONFIG_NET_ETHERNET=y 508CONFIG_NET_ETHERNET=y
@@ -497,6 +528,8 @@ CONFIG_NETDEV_1000=y
497# CONFIG_DL2K is not set 528# CONFIG_DL2K is not set
498# CONFIG_E1000 is not set 529# CONFIG_E1000 is not set
499# CONFIG_E1000E is not set 530# CONFIG_E1000E is not set
531# CONFIG_E1000E_ENABLED is not set
532# CONFIG_IGB is not set
500# CONFIG_NS83820 is not set 533# CONFIG_NS83820 is not set
501# CONFIG_HAMACHI is not set 534# CONFIG_HAMACHI is not set
502# CONFIG_R8169 is not set 535# CONFIG_R8169 is not set
@@ -507,6 +540,7 @@ CONFIG_NETDEV_1000=y
507# CONFIG_VIA_VELOCITY is not set 540# CONFIG_VIA_VELOCITY is not set
508# CONFIG_TIGON3 is not set 541# CONFIG_TIGON3 is not set
509# CONFIG_BNX2 is not set 542# CONFIG_BNX2 is not set
543# CONFIG_GIANFAR is not set
510# CONFIG_QLA3XXX is not set 544# CONFIG_QLA3XXX is not set
511CONFIG_NETDEV_10000=y 545CONFIG_NETDEV_10000=y
512# CONFIG_CHELSIO_T1 is not set 546# CONFIG_CHELSIO_T1 is not set
@@ -519,6 +553,7 @@ CONFIG_NETDEV_10000=y
519# CONFIG_NIU is not set 553# CONFIG_NIU is not set
520# CONFIG_MLX4_CORE is not set 554# CONFIG_MLX4_CORE is not set
521# CONFIG_TEHUTI is not set 555# CONFIG_TEHUTI is not set
556# CONFIG_BNX2X is not set
522# CONFIG_TR is not set 557# CONFIG_TR is not set
523 558
524# 559#
@@ -642,6 +677,7 @@ CONFIG_DEVPORT=y
642# CONFIG_W1 is not set 677# CONFIG_W1 is not set
643# CONFIG_POWER_SUPPLY is not set 678# CONFIG_POWER_SUPPLY is not set
644# CONFIG_HWMON is not set 679# CONFIG_HWMON is not set
680# CONFIG_THERMAL is not set
645# CONFIG_WATCHDOG is not set 681# CONFIG_WATCHDOG is not set
646 682
647# 683#
@@ -684,9 +720,11 @@ CONFIG_DAB=y
684# CONFIG_HID_SUPPORT is not set 720# CONFIG_HID_SUPPORT is not set
685# CONFIG_USB_SUPPORT is not set 721# CONFIG_USB_SUPPORT is not set
686# CONFIG_MMC is not set 722# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set
687# CONFIG_NEW_LEDS is not set 724# CONFIG_NEW_LEDS is not set
688# CONFIG_INFINIBAND is not set 725# CONFIG_INFINIBAND is not set
689# CONFIG_RTC_CLASS is not set 726# CONFIG_RTC_CLASS is not set
727# CONFIG_DMADEVICES is not set
690 728
691# 729#
692# Userspace I/O 730# Userspace I/O
@@ -710,12 +748,10 @@ CONFIG_FS_MBCACHE=y
710CONFIG_FS_POSIX_ACL=y 748CONFIG_FS_POSIX_ACL=y
711# CONFIG_XFS_FS is not set 749# CONFIG_XFS_FS is not set
712# CONFIG_OCFS2_FS is not set 750# CONFIG_OCFS2_FS is not set
713# CONFIG_MINIX_FS is not set 751CONFIG_DNOTIFY=y
714# CONFIG_ROMFS_FS is not set
715CONFIG_INOTIFY=y 752CONFIG_INOTIFY=y
716CONFIG_INOTIFY_USER=y 753CONFIG_INOTIFY_USER=y
717# CONFIG_QUOTA is not set 754# CONFIG_QUOTA is not set
718CONFIG_DNOTIFY=y
719# CONFIG_AUTOFS_FS is not set 755# CONFIG_AUTOFS_FS is not set
720CONFIG_AUTOFS4_FS=y 756CONFIG_AUTOFS4_FS=y
721# CONFIG_FUSE_FS is not set 757# CONFIG_FUSE_FS is not set
@@ -743,6 +779,7 @@ CONFIG_SYSFS=y
743CONFIG_TMPFS=y 779CONFIG_TMPFS=y
744# CONFIG_TMPFS_POSIX_ACL is not set 780# CONFIG_TMPFS_POSIX_ACL is not set
745# CONFIG_HUGETLB_PAGE is not set 781# CONFIG_HUGETLB_PAGE is not set
782# CONFIG_CONFIGFS_FS is not set
746 783
747# 784#
748# Miscellaneous filesystems 785# Miscellaneous filesystems
@@ -751,8 +788,10 @@ CONFIG_TMPFS=y
751# CONFIG_JFFS2_FS is not set 788# CONFIG_JFFS2_FS is not set
752CONFIG_CRAMFS=y 789CONFIG_CRAMFS=y
753# CONFIG_VXFS_FS is not set 790# CONFIG_VXFS_FS is not set
791# CONFIG_MINIX_FS is not set
754# CONFIG_HPFS_FS is not set 792# CONFIG_HPFS_FS is not set
755# CONFIG_QNX4FS_FS is not set 793# CONFIG_QNX4FS_FS is not set
794# CONFIG_ROMFS_FS is not set
756# CONFIG_SYSV_FS is not set 795# CONFIG_SYSV_FS is not set
757# CONFIG_UFS_FS is not set 796# CONFIG_UFS_FS is not set
758CONFIG_NETWORK_FILESYSTEMS=y 797CONFIG_NETWORK_FILESYSTEMS=y
@@ -833,7 +872,6 @@ CONFIG_NLS_ISO8859_1=y
833# CONFIG_NLS_KOI8_R is not set 872# CONFIG_NLS_KOI8_R is not set
834# CONFIG_NLS_KOI8_U is not set 873# CONFIG_NLS_KOI8_U is not set
835CONFIG_NLS_UTF8=y 874CONFIG_NLS_UTF8=y
836# CONFIG_UCC_SLOW is not set
837 875
838# 876#
839# Library routines 877# Library routines
@@ -851,7 +889,6 @@ CONFIG_PLIST=y
851CONFIG_HAS_IOMEM=y 889CONFIG_HAS_IOMEM=y
852CONFIG_HAS_IOPORT=y 890CONFIG_HAS_IOPORT=y
853CONFIG_HAS_DMA=y 891CONFIG_HAS_DMA=y
854# CONFIG_INSTRUMENTATION is not set
855 892
856# 893#
857# Kernel hacking 894# Kernel hacking
@@ -870,6 +907,7 @@ CONFIG_SCHED_DEBUG=y
870# CONFIG_SCHEDSTATS is not set 907# CONFIG_SCHEDSTATS is not set
871# CONFIG_TIMER_STATS is not set 908# CONFIG_TIMER_STATS is not set
872# CONFIG_SLUB_DEBUG_ON is not set 909# CONFIG_SLUB_DEBUG_ON is not set
910# CONFIG_SLUB_STATS is not set
873# CONFIG_DEBUG_RT_MUTEXES is not set 911# CONFIG_DEBUG_RT_MUTEXES is not set
874# CONFIG_RT_MUTEX_TESTER is not set 912# CONFIG_RT_MUTEX_TESTER is not set
875# CONFIG_DEBUG_SPINLOCK is not set 913# CONFIG_DEBUG_SPINLOCK is not set
@@ -882,8 +920,8 @@ CONFIG_DEBUG_INFO=y
882# CONFIG_DEBUG_VM is not set 920# CONFIG_DEBUG_VM is not set
883# CONFIG_DEBUG_LIST is not set 921# CONFIG_DEBUG_LIST is not set
884# CONFIG_DEBUG_SG is not set 922# CONFIG_DEBUG_SG is not set
885CONFIG_FORCED_INLINING=y
886# CONFIG_BOOT_PRINTK_DELAY is not set 923# CONFIG_BOOT_PRINTK_DELAY is not set
924# CONFIG_BACKTRACE_SELF_TEST is not set
887# CONFIG_FAULT_INJECTION is not set 925# CONFIG_FAULT_INJECTION is not set
888# CONFIG_SAMPLES is not set 926# CONFIG_SAMPLES is not set
889# CONFIG_DEBUG_STACKOVERFLOW is not set 927# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -902,6 +940,7 @@ CONFIG_BDI_SWITCH=y
902CONFIG_CRYPTO=y 940CONFIG_CRYPTO=y
903CONFIG_CRYPTO_ALGAPI=y 941CONFIG_CRYPTO_ALGAPI=y
904CONFIG_CRYPTO_BLKCIPHER=y 942CONFIG_CRYPTO_BLKCIPHER=y
943# CONFIG_CRYPTO_SEQIV is not set
905CONFIG_CRYPTO_MANAGER=y 944CONFIG_CRYPTO_MANAGER=y
906# CONFIG_CRYPTO_HMAC is not set 945# CONFIG_CRYPTO_HMAC is not set
907# CONFIG_CRYPTO_NULL is not set 946# CONFIG_CRYPTO_NULL is not set
@@ -915,6 +954,9 @@ CONFIG_CRYPTO_MD5=y
915CONFIG_CRYPTO_ECB=y 954CONFIG_CRYPTO_ECB=y
916CONFIG_CRYPTO_CBC=y 955CONFIG_CRYPTO_CBC=y
917CONFIG_CRYPTO_PCBC=y 956CONFIG_CRYPTO_PCBC=y
957# CONFIG_CRYPTO_CTR is not set
958# CONFIG_CRYPTO_GCM is not set
959# CONFIG_CRYPTO_CCM is not set
918# CONFIG_CRYPTO_CRYPTD is not set 960# CONFIG_CRYPTO_CRYPTD is not set
919CONFIG_CRYPTO_DES=y 961CONFIG_CRYPTO_DES=y
920# CONFIG_CRYPTO_FCRYPT is not set 962# CONFIG_CRYPTO_FCRYPT is not set
@@ -934,6 +976,7 @@ CONFIG_CRYPTO_DES=y
934# CONFIG_CRYPTO_CRC32C is not set 976# CONFIG_CRYPTO_CRC32C is not set
935# CONFIG_CRYPTO_CAMELLIA is not set 977# CONFIG_CRYPTO_CAMELLIA is not set
936# CONFIG_CRYPTO_AUTHENC is not set 978# CONFIG_CRYPTO_AUTHENC is not set
979# CONFIG_CRYPTO_LZO is not set
937# CONFIG_CRYPTO_HW is not set 980# CONFIG_CRYPTO_HW is not set
938# CONFIG_PPC_CLOCK is not set 981# CONFIG_PPC_CLOCK is not set
939CONFIG_PPC_LIB_RHEAP=y 982CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc8313_rdb_defconfig b/arch/powerpc/configs/mpc8313_rdb_defconfig
index 3b29ac53844e..7a862a6e3be8 100644
--- a/arch/powerpc/configs/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/mpc8313_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 17 16:35:55 2008 4# Mon Mar 24 08:48:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,11 +148,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
156CONFIG_MPC83xx=y
141CONFIG_MPC831x_RDB=y 157CONFIG_MPC831x_RDB=y
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
@@ -145,7 +161,10 @@ CONFIG_MPC831x_RDB=y
145# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
147# CONFIG_MPC837x_MDS is not set 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
148CONFIG_PPC_MPC831x=y 166CONFIG_PPC_MPC831x=y
167CONFIG_IPIC=y
149# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
150# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
151# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -156,7 +175,6 @@ CONFIG_PPC_MPC831x=y
156# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
157# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
158# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
161 179
162# 180#
@@ -172,12 +190,16 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
180CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
181CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
182CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
183CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -196,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
196CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
197# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
198# CONFIG_PM is not set 220# CONFIG_PM is not set
199CONFIG_SUSPEND_UP_POSSIBLE=y
200CONFIG_HIBERNATION_UP_POSSIBLE=y
201CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE=""
204CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
205 223
206# 224#
@@ -250,6 +268,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 268# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 269# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 270# CONFIG_XFRM_MIGRATE is not set
271# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 272# CONFIG_NET_KEY is not set
254CONFIG_INET=y 273CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 274CONFIG_IP_MULTICAST=y
@@ -305,6 +324,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 324#
306# CONFIG_NET_PKTGEN is not set 325# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 326# CONFIG_HAMRADIO is not set
327# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 328# CONFIG_IRDA is not set
309# CONFIG_BT is not set 329# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 330# CONFIG_AF_RXRPC is not set
@@ -340,6 +360,7 @@ CONFIG_MTD=y
340CONFIG_MTD_PARTITIONS=y 360CONFIG_MTD_PARTITIONS=y
341# CONFIG_MTD_REDBOOT_PARTS is not set 361# CONFIG_MTD_REDBOOT_PARTS is not set
342# CONFIG_MTD_CMDLINE_PARTS is not set 362# CONFIG_MTD_CMDLINE_PARTS is not set
363# CONFIG_MTD_OF_PARTS is not set
343 364
344# 365#
345# User Modules And Translation Layers 366# User Modules And Translation Layers
@@ -415,6 +436,7 @@ CONFIG_MTD_NAND_IDS=y
415# CONFIG_MTD_NAND_NANDSIM is not set 436# CONFIG_MTD_NAND_NANDSIM is not set
416# CONFIG_MTD_NAND_PLATFORM is not set 437# CONFIG_MTD_NAND_PLATFORM is not set
417# CONFIG_MTD_ALAUDA is not set 438# CONFIG_MTD_ALAUDA is not set
439# CONFIG_MTD_NAND_FSL_ELBC is not set
418# CONFIG_MTD_ONENAND is not set 440# CONFIG_MTD_ONENAND is not set
419 441
420# 442#
@@ -438,7 +460,7 @@ CONFIG_BLK_DEV_LOOP=y
438CONFIG_BLK_DEV_RAM=y 460CONFIG_BLK_DEV_RAM=y
439CONFIG_BLK_DEV_RAM_COUNT=16 461CONFIG_BLK_DEV_RAM_COUNT=16
440CONFIG_BLK_DEV_RAM_SIZE=32768 462CONFIG_BLK_DEV_RAM_SIZE=32768
441CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 463# CONFIG_BLK_DEV_XIP is not set
442# CONFIG_CDROM_PKTCDVD is not set 464# CONFIG_CDROM_PKTCDVD is not set
443# CONFIG_ATA_OVER_ETH is not set 465# CONFIG_ATA_OVER_ETH is not set
444CONFIG_MISC_DEVICES=y 466CONFIG_MISC_DEVICES=y
@@ -446,6 +468,8 @@ CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set 468# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_SGI_IOC4 is not set 469# CONFIG_SGI_IOC4 is not set
448# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set
472CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 473# CONFIG_IDE is not set
450 474
451# 475#
@@ -510,6 +534,7 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_SCSI_IPS is not set 534# CONFIG_SCSI_IPS is not set
511# CONFIG_SCSI_INITIO is not set 535# CONFIG_SCSI_INITIO is not set
512# CONFIG_SCSI_INIA100 is not set 536# CONFIG_SCSI_INIA100 is not set
537# CONFIG_SCSI_MVSAS is not set
513# CONFIG_SCSI_STEX is not set 538# CONFIG_SCSI_STEX is not set
514# CONFIG_SCSI_SYM53C8XX_2 is not set 539# CONFIG_SCSI_SYM53C8XX_2 is not set
515# CONFIG_SCSI_QLOGIC_1280 is not set 540# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -549,7 +574,6 @@ CONFIG_NETDEVICES=y
549# CONFIG_EQUALIZER is not set 574# CONFIG_EQUALIZER is not set
550# CONFIG_TUN is not set 575# CONFIG_TUN is not set
551# CONFIG_VETH is not set 576# CONFIG_VETH is not set
552# CONFIG_IP1000 is not set
553# CONFIG_ARCNET is not set 577# CONFIG_ARCNET is not set
554CONFIG_PHYLIB=y 578CONFIG_PHYLIB=y
555 579
@@ -565,6 +589,7 @@ CONFIG_CICADA_PHY=y
565# CONFIG_SMSC_PHY is not set 589# CONFIG_SMSC_PHY is not set
566# CONFIG_BROADCOM_PHY is not set 590# CONFIG_BROADCOM_PHY is not set
567# CONFIG_ICPLUS_PHY is not set 591# CONFIG_ICPLUS_PHY is not set
592# CONFIG_REALTEK_PHY is not set
568# CONFIG_FIXED_PHY is not set 593# CONFIG_FIXED_PHY is not set
569# CONFIG_MDIO_BITBANG is not set 594# CONFIG_MDIO_BITBANG is not set
570CONFIG_NET_ETHERNET=y 595CONFIG_NET_ETHERNET=y
@@ -573,6 +598,7 @@ CONFIG_MII=y
573# CONFIG_SUNGEM is not set 598# CONFIG_SUNGEM is not set
574# CONFIG_CASSINI is not set 599# CONFIG_CASSINI is not set
575# CONFIG_NET_VENDOR_3COM is not set 600# CONFIG_NET_VENDOR_3COM is not set
601# CONFIG_ENC28J60 is not set
576# CONFIG_NET_TULIP is not set 602# CONFIG_NET_TULIP is not set
577# CONFIG_HP100 is not set 603# CONFIG_HP100 is not set
578# CONFIG_IBM_NEW_EMAC_ZMII is not set 604# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -592,6 +618,7 @@ CONFIG_E100=y
592# CONFIG_NE2K_PCI is not set 618# CONFIG_NE2K_PCI is not set
593# CONFIG_8139CP is not set 619# CONFIG_8139CP is not set
594# CONFIG_8139TOO is not set 620# CONFIG_8139TOO is not set
621# CONFIG_R6040 is not set
595# CONFIG_SIS900 is not set 622# CONFIG_SIS900 is not set
596# CONFIG_EPIC100 is not set 623# CONFIG_EPIC100 is not set
597# CONFIG_SUNDANCE is not set 624# CONFIG_SUNDANCE is not set
@@ -603,6 +630,9 @@ CONFIG_NETDEV_1000=y
603# CONFIG_DL2K is not set 630# CONFIG_DL2K is not set
604# CONFIG_E1000 is not set 631# CONFIG_E1000 is not set
605# CONFIG_E1000E is not set 632# CONFIG_E1000E is not set
633# CONFIG_E1000E_ENABLED is not set
634# CONFIG_IP1000 is not set
635# CONFIG_IGB is not set
606# CONFIG_NS83820 is not set 636# CONFIG_NS83820 is not set
607# CONFIG_HAMACHI is not set 637# CONFIG_HAMACHI is not set
608# CONFIG_YELLOWFIN is not set 638# CONFIG_YELLOWFIN is not set
@@ -629,6 +659,7 @@ CONFIG_NETDEV_10000=y
629# CONFIG_NIU is not set 659# CONFIG_NIU is not set
630# CONFIG_MLX4_CORE is not set 660# CONFIG_MLX4_CORE is not set
631# CONFIG_TEHUTI is not set 661# CONFIG_TEHUTI is not set
662# CONFIG_BNX2X is not set
632# CONFIG_TR is not set 663# CONFIG_TR is not set
633 664
634# 665#
@@ -651,7 +682,6 @@ CONFIG_NETDEV_10000=y
651# CONFIG_PPP is not set 682# CONFIG_PPP is not set
652# CONFIG_SLIP is not set 683# CONFIG_SLIP is not set
653# CONFIG_NET_FC is not set 684# CONFIG_NET_FC is not set
654# CONFIG_SHAPER is not set
655# CONFIG_NETCONSOLE is not set 685# CONFIG_NETCONSOLE is not set
656# CONFIG_NETPOLL is not set 686# CONFIG_NETPOLL is not set
657# CONFIG_NET_POLL_CONTROLLER is not set 687# CONFIG_NET_POLL_CONTROLLER is not set
@@ -694,6 +724,7 @@ CONFIG_INPUT=y
694# 724#
695# CONFIG_VT is not set 725# CONFIG_VT is not set
696# CONFIG_SERIAL_NONSTANDARD is not set 726# CONFIG_SERIAL_NONSTANDARD is not set
727# CONFIG_NOZOMI is not set
697 728
698# 729#
699# Serial drivers 730# Serial drivers
@@ -767,14 +798,12 @@ CONFIG_I2C_MPC=y
767# 798#
768# Miscellaneous I2C Chip support 799# Miscellaneous I2C Chip support
769# 800#
770# CONFIG_SENSORS_DS1337 is not set
771# CONFIG_SENSORS_DS1374 is not set
772# CONFIG_DS1682 is not set 801# CONFIG_DS1682 is not set
773# CONFIG_SENSORS_EEPROM is not set 802# CONFIG_SENSORS_EEPROM is not set
774# CONFIG_SENSORS_PCF8574 is not set 803# CONFIG_SENSORS_PCF8574 is not set
775# CONFIG_SENSORS_PCA9539 is not set 804# CONFIG_PCF8575 is not set
776# CONFIG_SENSORS_PCF8591 is not set 805# CONFIG_SENSORS_PCF8591 is not set
777# CONFIG_SENSORS_M41T00 is not set 806# CONFIG_TPS65010 is not set
778# CONFIG_SENSORS_MAX6875 is not set 807# CONFIG_SENSORS_MAX6875 is not set
779# CONFIG_SENSORS_TSL2550 is not set 808# CONFIG_SENSORS_TSL2550 is not set
780# CONFIG_I2C_DEBUG_CORE is not set 809# CONFIG_I2C_DEBUG_CORE is not set
@@ -813,6 +842,7 @@ CONFIG_HWMON=y
813# CONFIG_SENSORS_ADM1031 is not set 842# CONFIG_SENSORS_ADM1031 is not set
814# CONFIG_SENSORS_ADM9240 is not set 843# CONFIG_SENSORS_ADM9240 is not set
815# CONFIG_SENSORS_ADT7470 is not set 844# CONFIG_SENSORS_ADT7470 is not set
845# CONFIG_SENSORS_ADT7473 is not set
816# CONFIG_SENSORS_ATXP1 is not set 846# CONFIG_SENSORS_ATXP1 is not set
817# CONFIG_SENSORS_DS1621 is not set 847# CONFIG_SENSORS_DS1621 is not set
818# CONFIG_SENSORS_I5K_AMB is not set 848# CONFIG_SENSORS_I5K_AMB is not set
@@ -843,6 +873,7 @@ CONFIG_HWMON=y
843# CONFIG_SENSORS_SMSC47M1 is not set 873# CONFIG_SENSORS_SMSC47M1 is not set
844# CONFIG_SENSORS_SMSC47M192 is not set 874# CONFIG_SENSORS_SMSC47M192 is not set
845# CONFIG_SENSORS_SMSC47B397 is not set 875# CONFIG_SENSORS_SMSC47B397 is not set
876# CONFIG_SENSORS_ADS7828 is not set
846# CONFIG_SENSORS_THMC50 is not set 877# CONFIG_SENSORS_THMC50 is not set
847# CONFIG_SENSORS_VIA686A is not set 878# CONFIG_SENSORS_VIA686A is not set
848# CONFIG_SENSORS_VT1211 is not set 879# CONFIG_SENSORS_VT1211 is not set
@@ -852,9 +883,11 @@ CONFIG_HWMON=y
852# CONFIG_SENSORS_W83792D is not set 883# CONFIG_SENSORS_W83792D is not set
853# CONFIG_SENSORS_W83793 is not set 884# CONFIG_SENSORS_W83793 is not set
854# CONFIG_SENSORS_W83L785TS is not set 885# CONFIG_SENSORS_W83L785TS is not set
886# CONFIG_SENSORS_W83L786NG is not set
855# CONFIG_SENSORS_W83627HF is not set 887# CONFIG_SENSORS_W83627HF is not set
856# CONFIG_SENSORS_W83627EHF is not set 888# CONFIG_SENSORS_W83627EHF is not set
857# CONFIG_HWMON_DEBUG_CHIP is not set 889# CONFIG_HWMON_DEBUG_CHIP is not set
890# CONFIG_THERMAL is not set
858CONFIG_WATCHDOG=y 891CONFIG_WATCHDOG=y
859# CONFIG_WATCHDOG_NOWAYOUT is not set 892# CONFIG_WATCHDOG_NOWAYOUT is not set
860 893
@@ -934,6 +967,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
934CONFIG_USB_ARCH_HAS_EHCI=y 967CONFIG_USB_ARCH_HAS_EHCI=y
935CONFIG_USB=y 968CONFIG_USB=y
936# CONFIG_USB_DEBUG is not set 969# CONFIG_USB_DEBUG is not set
970# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
937 971
938# 972#
939# Miscellaneous USB options 973# Miscellaneous USB options
@@ -947,10 +981,10 @@ CONFIG_USB_DEVICE_CLASS=y
947# USB Host Controller Drivers 981# USB Host Controller Drivers
948# 982#
949CONFIG_USB_EHCI_HCD=y 983CONFIG_USB_EHCI_HCD=y
950# CONFIG_USB_EHCI_SPLIT_ISO is not set
951CONFIG_USB_EHCI_ROOT_HUB_TT=y 984CONFIG_USB_EHCI_ROOT_HUB_TT=y
952# CONFIG_USB_EHCI_TT_NEWSCHED is not set 985# CONFIG_USB_EHCI_TT_NEWSCHED is not set
953CONFIG_USB_EHCI_FSL=y 986CONFIG_USB_EHCI_FSL=y
987CONFIG_USB_EHCI_HCD_PPC_OF=y
954# CONFIG_USB_ISP116X_HCD is not set 988# CONFIG_USB_ISP116X_HCD is not set
955CONFIG_USB_OHCI_HCD=y 989CONFIG_USB_OHCI_HCD=y
956CONFIG_USB_OHCI_HCD_PPC_OF=y 990CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1001,10 +1035,6 @@ CONFIG_USB_MON=y
1001# 1035#
1002# USB port drivers 1036# USB port drivers
1003# 1037#
1004
1005#
1006# USB Serial Converter support
1007#
1008# CONFIG_USB_SERIAL is not set 1038# CONFIG_USB_SERIAL is not set
1009 1039
1010# 1040#
@@ -1030,14 +1060,6 @@ CONFIG_USB_MON=y
1030# CONFIG_USB_TRANCEVIBRATOR is not set 1060# CONFIG_USB_TRANCEVIBRATOR is not set
1031# CONFIG_USB_IOWARRIOR is not set 1061# CONFIG_USB_IOWARRIOR is not set
1032# CONFIG_USB_TEST is not set 1062# CONFIG_USB_TEST is not set
1033
1034#
1035# USB DSL modem support
1036#
1037
1038#
1039# USB Gadget Support
1040#
1041CONFIG_USB_GADGET=y 1063CONFIG_USB_GADGET=y
1042# CONFIG_USB_GADGET_DEBUG is not set 1064# CONFIG_USB_GADGET_DEBUG is not set
1043# CONFIG_USB_GADGET_DEBUG_FILES is not set 1065# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1063,7 +1085,9 @@ CONFIG_USB_ETH_RNDIS=y
1063# CONFIG_USB_FILE_STORAGE is not set 1085# CONFIG_USB_FILE_STORAGE is not set
1064# CONFIG_USB_G_SERIAL is not set 1086# CONFIG_USB_G_SERIAL is not set
1065# CONFIG_USB_MIDI_GADGET is not set 1087# CONFIG_USB_MIDI_GADGET is not set
1088# CONFIG_USB_G_PRINTER is not set
1066# CONFIG_MMC is not set 1089# CONFIG_MMC is not set
1090# CONFIG_MEMSTICK is not set
1067# CONFIG_NEW_LEDS is not set 1091# CONFIG_NEW_LEDS is not set
1068# CONFIG_INFINIBAND is not set 1092# CONFIG_INFINIBAND is not set
1069# CONFIG_EDAC is not set 1093# CONFIG_EDAC is not set
@@ -1095,20 +1119,23 @@ CONFIG_RTC_DRV_DS1307=y
1095# CONFIG_RTC_DRV_PCF8563 is not set 1119# CONFIG_RTC_DRV_PCF8563 is not set
1096# CONFIG_RTC_DRV_PCF8583 is not set 1120# CONFIG_RTC_DRV_PCF8583 is not set
1097# CONFIG_RTC_DRV_M41T80 is not set 1121# CONFIG_RTC_DRV_M41T80 is not set
1122# CONFIG_RTC_DRV_S35390A is not set
1098 1123
1099# 1124#
1100# SPI RTC drivers 1125# SPI RTC drivers
1101# 1126#
1102# CONFIG_RTC_DRV_RS5C348 is not set
1103# CONFIG_RTC_DRV_MAX6902 is not set 1127# CONFIG_RTC_DRV_MAX6902 is not set
1128# CONFIG_RTC_DRV_R9701 is not set
1129# CONFIG_RTC_DRV_RS5C348 is not set
1104 1130
1105# 1131#
1106# Platform RTC drivers 1132# Platform RTC drivers
1107# 1133#
1108# CONFIG_RTC_DRV_CMOS is not set 1134# CONFIG_RTC_DRV_CMOS is not set
1135# CONFIG_RTC_DRV_DS1511 is not set
1109# CONFIG_RTC_DRV_DS1553 is not set 1136# CONFIG_RTC_DRV_DS1553 is not set
1110# CONFIG_RTC_DRV_STK17TA8 is not set
1111# CONFIG_RTC_DRV_DS1742 is not set 1137# CONFIG_RTC_DRV_DS1742 is not set
1138# CONFIG_RTC_DRV_STK17TA8 is not set
1112# CONFIG_RTC_DRV_M48T86 is not set 1139# CONFIG_RTC_DRV_M48T86 is not set
1113# CONFIG_RTC_DRV_M48T59 is not set 1140# CONFIG_RTC_DRV_M48T59 is not set
1114# CONFIG_RTC_DRV_V3020 is not set 1141# CONFIG_RTC_DRV_V3020 is not set
@@ -1116,6 +1143,7 @@ CONFIG_RTC_DRV_DS1307=y
1116# 1143#
1117# on-CPU RTC drivers 1144# on-CPU RTC drivers
1118# 1145#
1146# CONFIG_DMADEVICES is not set
1119 1147
1120# 1148#
1121# Userspace I/O 1149# Userspace I/O
@@ -1141,12 +1169,10 @@ CONFIG_FS_MBCACHE=y
1141# CONFIG_XFS_FS is not set 1169# CONFIG_XFS_FS is not set
1142# CONFIG_GFS2_FS is not set 1170# CONFIG_GFS2_FS is not set
1143# CONFIG_OCFS2_FS is not set 1171# CONFIG_OCFS2_FS is not set
1144# CONFIG_MINIX_FS is not set 1172CONFIG_DNOTIFY=y
1145# CONFIG_ROMFS_FS is not set
1146CONFIG_INOTIFY=y 1173CONFIG_INOTIFY=y
1147CONFIG_INOTIFY_USER=y 1174CONFIG_INOTIFY_USER=y
1148# CONFIG_QUOTA is not set 1175# CONFIG_QUOTA is not set
1149CONFIG_DNOTIFY=y
1150# CONFIG_AUTOFS_FS is not set 1176# CONFIG_AUTOFS_FS is not set
1151# CONFIG_AUTOFS4_FS is not set 1177# CONFIG_AUTOFS4_FS is not set
1152# CONFIG_FUSE_FS is not set 1178# CONFIG_FUSE_FS is not set
@@ -1199,8 +1225,10 @@ CONFIG_JFFS2_RTIME=y
1199# CONFIG_JFFS2_RUBIN is not set 1225# CONFIG_JFFS2_RUBIN is not set
1200# CONFIG_CRAMFS is not set 1226# CONFIG_CRAMFS is not set
1201# CONFIG_VXFS_FS is not set 1227# CONFIG_VXFS_FS is not set
1228# CONFIG_MINIX_FS is not set
1202# CONFIG_HPFS_FS is not set 1229# CONFIG_HPFS_FS is not set
1203# CONFIG_QNX4FS_FS is not set 1230# CONFIG_QNX4FS_FS is not set
1231# CONFIG_ROMFS_FS is not set
1204# CONFIG_SYSV_FS is not set 1232# CONFIG_SYSV_FS is not set
1205# CONFIG_UFS_FS is not set 1233# CONFIG_UFS_FS is not set
1206CONFIG_NETWORK_FILESYSTEMS=y 1234CONFIG_NETWORK_FILESYSTEMS=y
@@ -1248,7 +1276,6 @@ CONFIG_MSDOS_PARTITION=y
1248# CONFIG_SYSV68_PARTITION is not set 1276# CONFIG_SYSV68_PARTITION is not set
1249# CONFIG_NLS is not set 1277# CONFIG_NLS is not set
1250# CONFIG_DLM is not set 1278# CONFIG_DLM is not set
1251# CONFIG_UCC_SLOW is not set
1252 1279
1253# 1280#
1254# Library routines 1281# Library routines
@@ -1266,7 +1293,6 @@ CONFIG_PLIST=y
1266CONFIG_HAS_IOMEM=y 1293CONFIG_HAS_IOMEM=y
1267CONFIG_HAS_IOPORT=y 1294CONFIG_HAS_IOPORT=y
1268CONFIG_HAS_DMA=y 1295CONFIG_HAS_DMA=y
1269# CONFIG_INSTRUMENTATION is not set
1270 1296
1271# 1297#
1272# Kernel hacking 1298# Kernel hacking
@@ -1285,6 +1311,7 @@ CONFIG_SCHED_DEBUG=y
1285# CONFIG_SCHEDSTATS is not set 1311# CONFIG_SCHEDSTATS is not set
1286# CONFIG_TIMER_STATS is not set 1312# CONFIG_TIMER_STATS is not set
1287# CONFIG_SLUB_DEBUG_ON is not set 1313# CONFIG_SLUB_DEBUG_ON is not set
1314# CONFIG_SLUB_STATS is not set
1288# CONFIG_DEBUG_RT_MUTEXES is not set 1315# CONFIG_DEBUG_RT_MUTEXES is not set
1289# CONFIG_RT_MUTEX_TESTER is not set 1316# CONFIG_RT_MUTEX_TESTER is not set
1290# CONFIG_DEBUG_SPINLOCK is not set 1317# CONFIG_DEBUG_SPINLOCK is not set
@@ -1297,9 +1324,9 @@ CONFIG_SCHED_DEBUG=y
1297# CONFIG_DEBUG_VM is not set 1324# CONFIG_DEBUG_VM is not set
1298# CONFIG_DEBUG_LIST is not set 1325# CONFIG_DEBUG_LIST is not set
1299# CONFIG_DEBUG_SG is not set 1326# CONFIG_DEBUG_SG is not set
1300CONFIG_FORCED_INLINING=y
1301# CONFIG_BOOT_PRINTK_DELAY is not set 1327# CONFIG_BOOT_PRINTK_DELAY is not set
1302# CONFIG_RCU_TORTURE_TEST is not set 1328# CONFIG_RCU_TORTURE_TEST is not set
1329# CONFIG_BACKTRACE_SELF_TEST is not set
1303# CONFIG_FAULT_INJECTION is not set 1330# CONFIG_FAULT_INJECTION is not set
1304# CONFIG_SAMPLES is not set 1331# CONFIG_SAMPLES is not set
1305# CONFIG_DEBUG_STACKOVERFLOW is not set 1332# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1318,6 +1345,7 @@ CONFIG_FORCED_INLINING=y
1318CONFIG_CRYPTO=y 1345CONFIG_CRYPTO=y
1319CONFIG_CRYPTO_ALGAPI=y 1346CONFIG_CRYPTO_ALGAPI=y
1320CONFIG_CRYPTO_BLKCIPHER=y 1347CONFIG_CRYPTO_BLKCIPHER=y
1348# CONFIG_CRYPTO_SEQIV is not set
1321CONFIG_CRYPTO_MANAGER=y 1349CONFIG_CRYPTO_MANAGER=y
1322# CONFIG_CRYPTO_HMAC is not set 1350# CONFIG_CRYPTO_HMAC is not set
1323# CONFIG_CRYPTO_XCBC is not set 1351# CONFIG_CRYPTO_XCBC is not set
@@ -1335,6 +1363,9 @@ CONFIG_CRYPTO_CBC=y
1335CONFIG_CRYPTO_PCBC=m 1363CONFIG_CRYPTO_PCBC=m
1336# CONFIG_CRYPTO_LRW is not set 1364# CONFIG_CRYPTO_LRW is not set
1337# CONFIG_CRYPTO_XTS is not set 1365# CONFIG_CRYPTO_XTS is not set
1366# CONFIG_CRYPTO_CTR is not set
1367# CONFIG_CRYPTO_GCM is not set
1368# CONFIG_CRYPTO_CCM is not set
1338# CONFIG_CRYPTO_CRYPTD is not set 1369# CONFIG_CRYPTO_CRYPTD is not set
1339CONFIG_CRYPTO_DES=y 1370CONFIG_CRYPTO_DES=y
1340# CONFIG_CRYPTO_FCRYPT is not set 1371# CONFIG_CRYPTO_FCRYPT is not set
@@ -1349,11 +1380,14 @@ CONFIG_CRYPTO_DES=y
1349# CONFIG_CRYPTO_KHAZAD is not set 1380# CONFIG_CRYPTO_KHAZAD is not set
1350# CONFIG_CRYPTO_ANUBIS is not set 1381# CONFIG_CRYPTO_ANUBIS is not set
1351# CONFIG_CRYPTO_SEED is not set 1382# CONFIG_CRYPTO_SEED is not set
1383# CONFIG_CRYPTO_SALSA20 is not set
1352# CONFIG_CRYPTO_DEFLATE is not set 1384# CONFIG_CRYPTO_DEFLATE is not set
1353# CONFIG_CRYPTO_MICHAEL_MIC is not set 1385# CONFIG_CRYPTO_MICHAEL_MIC is not set
1354# CONFIG_CRYPTO_CRC32C is not set 1386# CONFIG_CRYPTO_CRC32C is not set
1355# CONFIG_CRYPTO_CAMELLIA is not set 1387# CONFIG_CRYPTO_CAMELLIA is not set
1356# CONFIG_CRYPTO_TEST is not set 1388# CONFIG_CRYPTO_TEST is not set
1357# CONFIG_CRYPTO_AUTHENC is not set 1389# CONFIG_CRYPTO_AUTHENC is not set
1390# CONFIG_CRYPTO_LZO is not set
1358CONFIG_CRYPTO_HW=y 1391CONFIG_CRYPTO_HW=y
1392# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1359# CONFIG_PPC_CLOCK is not set 1393# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8315_rdb_defconfig b/arch/powerpc/configs/mpc8315_rdb_defconfig
index 9adf7f98f675..1f57456dd81e 100644
--- a/arch/powerpc/configs/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/mpc8315_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Wed Jan 23 20:02:25 2008 4# Mon Mar 24 08:48:15 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,12 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
101CONFIG_SLABINFO=y 114CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
@@ -126,6 +139,7 @@ CONFIG_DEFAULT_AS=y
126# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
127# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
129 143
130# 144#
131# Platform support 145# Platform support
@@ -134,11 +148,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
134# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
135CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
136# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
137# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
138# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
139# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
156CONFIG_MPC83xx=y
142CONFIG_MPC831x_RDB=y 157CONFIG_MPC831x_RDB=y
143# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
144# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
@@ -146,6 +161,8 @@ CONFIG_MPC831x_RDB=y
146# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
147# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
148# CONFIG_MPC837x_MDS is not set 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
149CONFIG_PPC_MPC831x=y 166CONFIG_PPC_MPC831x=y
150CONFIG_IPIC=y 167CONFIG_IPIC=y
151# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
@@ -158,7 +175,6 @@ CONFIG_IPIC=y
158# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
159# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
160# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
161# CONFIG_CPM2 is not set
162# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
163 179
164# 180#
@@ -174,12 +190,16 @@ CONFIG_HZ_250=y
174# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
176CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
180CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
185CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -198,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
198CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
199# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
200# CONFIG_PM is not set 220# CONFIG_PM is not set
201CONFIG_SUSPEND_UP_POSSIBLE=y
202CONFIG_HIBERNATION_UP_POSSIBLE=y
203CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
204CONFIG_WANT_DEVICE_TREE=y
205CONFIG_DEVICE_TREE=""
206CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
207 223
208# 224#
@@ -252,6 +268,7 @@ CONFIG_XFRM=y
252# CONFIG_XFRM_USER is not set 268# CONFIG_XFRM_USER is not set
253# CONFIG_XFRM_SUB_POLICY is not set 269# CONFIG_XFRM_SUB_POLICY is not set
254# CONFIG_XFRM_MIGRATE is not set 270# CONFIG_XFRM_MIGRATE is not set
271# CONFIG_XFRM_STATISTICS is not set
255# CONFIG_NET_KEY is not set 272# CONFIG_NET_KEY is not set
256CONFIG_INET=y 273CONFIG_INET=y
257CONFIG_IP_MULTICAST=y 274CONFIG_IP_MULTICAST=y
@@ -307,6 +324,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
307# 324#
308# CONFIG_NET_PKTGEN is not set 325# CONFIG_NET_PKTGEN is not set
309# CONFIG_HAMRADIO is not set 326# CONFIG_HAMRADIO is not set
327# CONFIG_CAN is not set
310# CONFIG_IRDA is not set 328# CONFIG_IRDA is not set
311# CONFIG_BT is not set 329# CONFIG_BT is not set
312# CONFIG_AF_RXRPC is not set 330# CONFIG_AF_RXRPC is not set
@@ -342,6 +360,7 @@ CONFIG_MTD=y
342CONFIG_MTD_PARTITIONS=y 360CONFIG_MTD_PARTITIONS=y
343# CONFIG_MTD_REDBOOT_PARTS is not set 361# CONFIG_MTD_REDBOOT_PARTS is not set
344# CONFIG_MTD_CMDLINE_PARTS is not set 362# CONFIG_MTD_CMDLINE_PARTS is not set
363# CONFIG_MTD_OF_PARTS is not set
345 364
346# 365#
347# User Modules And Translation Layers 366# User Modules And Translation Layers
@@ -417,6 +436,7 @@ CONFIG_MTD_NAND_IDS=y
417# CONFIG_MTD_NAND_NANDSIM is not set 436# CONFIG_MTD_NAND_NANDSIM is not set
418# CONFIG_MTD_NAND_PLATFORM is not set 437# CONFIG_MTD_NAND_PLATFORM is not set
419# CONFIG_MTD_ALAUDA is not set 438# CONFIG_MTD_ALAUDA is not set
439# CONFIG_MTD_NAND_FSL_ELBC is not set
420# CONFIG_MTD_ONENAND is not set 440# CONFIG_MTD_ONENAND is not set
421 441
422# 442#
@@ -440,7 +460,7 @@ CONFIG_BLK_DEV_LOOP=y
440CONFIG_BLK_DEV_RAM=y 460CONFIG_BLK_DEV_RAM=y
441CONFIG_BLK_DEV_RAM_COUNT=16 461CONFIG_BLK_DEV_RAM_COUNT=16
442CONFIG_BLK_DEV_RAM_SIZE=32768 462CONFIG_BLK_DEV_RAM_SIZE=32768
443CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 463# CONFIG_BLK_DEV_XIP is not set
444# CONFIG_CDROM_PKTCDVD is not set 464# CONFIG_CDROM_PKTCDVD is not set
445# CONFIG_ATA_OVER_ETH is not set 465# CONFIG_ATA_OVER_ETH is not set
446CONFIG_MISC_DEVICES=y 466CONFIG_MISC_DEVICES=y
@@ -448,6 +468,8 @@ CONFIG_MISC_DEVICES=y
448# CONFIG_EEPROM_93CX6 is not set 468# CONFIG_EEPROM_93CX6 is not set
449# CONFIG_SGI_IOC4 is not set 469# CONFIG_SGI_IOC4 is not set
450# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
471# CONFIG_ENCLOSURE_SERVICES is not set
472CONFIG_HAVE_IDE=y
451# CONFIG_IDE is not set 473# CONFIG_IDE is not set
452 474
453# 475#
@@ -512,6 +534,7 @@ CONFIG_SCSI_LOWLEVEL=y
512# CONFIG_SCSI_IPS is not set 534# CONFIG_SCSI_IPS is not set
513# CONFIG_SCSI_INITIO is not set 535# CONFIG_SCSI_INITIO is not set
514# CONFIG_SCSI_INIA100 is not set 536# CONFIG_SCSI_INIA100 is not set
537# CONFIG_SCSI_MVSAS is not set
515# CONFIG_SCSI_STEX is not set 538# CONFIG_SCSI_STEX is not set
516# CONFIG_SCSI_SYM53C8XX_2 is not set 539# CONFIG_SCSI_SYM53C8XX_2 is not set
517# CONFIG_SCSI_IPR is not set 540# CONFIG_SCSI_IPR is not set
@@ -566,6 +589,7 @@ CONFIG_SATA_FSL=y
566# CONFIG_PATA_MPIIX is not set 589# CONFIG_PATA_MPIIX is not set
567# CONFIG_PATA_OLDPIIX is not set 590# CONFIG_PATA_OLDPIIX is not set
568# CONFIG_PATA_NETCELL is not set 591# CONFIG_PATA_NETCELL is not set
592# CONFIG_PATA_NINJA32 is not set
569# CONFIG_PATA_NS87410 is not set 593# CONFIG_PATA_NS87410 is not set
570# CONFIG_PATA_NS87415 is not set 594# CONFIG_PATA_NS87415 is not set
571# CONFIG_PATA_OPTI is not set 595# CONFIG_PATA_OPTI is not set
@@ -623,6 +647,7 @@ CONFIG_PHYLIB=y
623# CONFIG_SMSC_PHY is not set 647# CONFIG_SMSC_PHY is not set
624# CONFIG_BROADCOM_PHY is not set 648# CONFIG_BROADCOM_PHY is not set
625# CONFIG_ICPLUS_PHY is not set 649# CONFIG_ICPLUS_PHY is not set
650# CONFIG_REALTEK_PHY is not set
626# CONFIG_FIXED_PHY is not set 651# CONFIG_FIXED_PHY is not set
627# CONFIG_MDIO_BITBANG is not set 652# CONFIG_MDIO_BITBANG is not set
628CONFIG_NET_ETHERNET=y 653CONFIG_NET_ETHERNET=y
@@ -631,6 +656,7 @@ CONFIG_MII=y
631# CONFIG_SUNGEM is not set 656# CONFIG_SUNGEM is not set
632# CONFIG_CASSINI is not set 657# CONFIG_CASSINI is not set
633# CONFIG_NET_VENDOR_3COM is not set 658# CONFIG_NET_VENDOR_3COM is not set
659# CONFIG_ENC28J60 is not set
634# CONFIG_NET_TULIP is not set 660# CONFIG_NET_TULIP is not set
635# CONFIG_HP100 is not set 661# CONFIG_HP100 is not set
636# CONFIG_IBM_NEW_EMAC_ZMII is not set 662# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -650,6 +676,7 @@ CONFIG_E100=y
650# CONFIG_NE2K_PCI is not set 676# CONFIG_NE2K_PCI is not set
651# CONFIG_8139CP is not set 677# CONFIG_8139CP is not set
652# CONFIG_8139TOO is not set 678# CONFIG_8139TOO is not set
679# CONFIG_R6040 is not set
653# CONFIG_SIS900 is not set 680# CONFIG_SIS900 is not set
654# CONFIG_EPIC100 is not set 681# CONFIG_EPIC100 is not set
655# CONFIG_SUNDANCE is not set 682# CONFIG_SUNDANCE is not set
@@ -661,7 +688,9 @@ CONFIG_NETDEV_1000=y
661# CONFIG_DL2K is not set 688# CONFIG_DL2K is not set
662# CONFIG_E1000 is not set 689# CONFIG_E1000 is not set
663# CONFIG_E1000E is not set 690# CONFIG_E1000E is not set
691# CONFIG_E1000E_ENABLED is not set
664# CONFIG_IP1000 is not set 692# CONFIG_IP1000 is not set
693# CONFIG_IGB is not set
665# CONFIG_NS83820 is not set 694# CONFIG_NS83820 is not set
666# CONFIG_HAMACHI is not set 695# CONFIG_HAMACHI is not set
667# CONFIG_YELLOWFIN is not set 696# CONFIG_YELLOWFIN is not set
@@ -688,6 +717,7 @@ CONFIG_NETDEV_10000=y
688# CONFIG_NIU is not set 717# CONFIG_NIU is not set
689# CONFIG_MLX4_CORE is not set 718# CONFIG_MLX4_CORE is not set
690# CONFIG_TEHUTI is not set 719# CONFIG_TEHUTI is not set
720# CONFIG_BNX2X is not set
691# CONFIG_TR is not set 721# CONFIG_TR is not set
692 722
693# 723#
@@ -710,7 +740,6 @@ CONFIG_NETDEV_10000=y
710# CONFIG_PPP is not set 740# CONFIG_PPP is not set
711# CONFIG_SLIP is not set 741# CONFIG_SLIP is not set
712# CONFIG_NET_FC is not set 742# CONFIG_NET_FC is not set
713# CONFIG_SHAPER is not set
714# CONFIG_NETCONSOLE is not set 743# CONFIG_NETCONSOLE is not set
715# CONFIG_NETPOLL is not set 744# CONFIG_NETPOLL is not set
716# CONFIG_NET_POLL_CONTROLLER is not set 745# CONFIG_NET_POLL_CONTROLLER is not set
@@ -753,6 +782,7 @@ CONFIG_INPUT=y
753# 782#
754# CONFIG_VT is not set 783# CONFIG_VT is not set
755# CONFIG_SERIAL_NONSTANDARD is not set 784# CONFIG_SERIAL_NONSTANDARD is not set
785# CONFIG_NOZOMI is not set
756 786
757# 787#
758# Serial drivers 788# Serial drivers
@@ -826,14 +856,12 @@ CONFIG_I2C_MPC=y
826# 856#
827# Miscellaneous I2C Chip support 857# Miscellaneous I2C Chip support
828# 858#
829# CONFIG_SENSORS_DS1337 is not set
830# CONFIG_SENSORS_DS1374 is not set
831# CONFIG_DS1682 is not set 859# CONFIG_DS1682 is not set
832# CONFIG_SENSORS_EEPROM is not set 860# CONFIG_SENSORS_EEPROM is not set
833# CONFIG_SENSORS_PCF8574 is not set 861# CONFIG_SENSORS_PCF8574 is not set
834# CONFIG_SENSORS_PCA9539 is not set 862# CONFIG_PCF8575 is not set
835# CONFIG_SENSORS_PCF8591 is not set 863# CONFIG_SENSORS_PCF8591 is not set
836# CONFIG_SENSORS_M41T00 is not set 864# CONFIG_TPS65010 is not set
837# CONFIG_SENSORS_MAX6875 is not set 865# CONFIG_SENSORS_MAX6875 is not set
838# CONFIG_SENSORS_TSL2550 is not set 866# CONFIG_SENSORS_TSL2550 is not set
839# CONFIG_I2C_DEBUG_CORE is not set 867# CONFIG_I2C_DEBUG_CORE is not set
@@ -872,6 +900,7 @@ CONFIG_HWMON=y
872# CONFIG_SENSORS_ADM1031 is not set 900# CONFIG_SENSORS_ADM1031 is not set
873# CONFIG_SENSORS_ADM9240 is not set 901# CONFIG_SENSORS_ADM9240 is not set
874# CONFIG_SENSORS_ADT7470 is not set 902# CONFIG_SENSORS_ADT7470 is not set
903# CONFIG_SENSORS_ADT7473 is not set
875# CONFIG_SENSORS_ATXP1 is not set 904# CONFIG_SENSORS_ATXP1 is not set
876# CONFIG_SENSORS_DS1621 is not set 905# CONFIG_SENSORS_DS1621 is not set
877# CONFIG_SENSORS_I5K_AMB is not set 906# CONFIG_SENSORS_I5K_AMB is not set
@@ -902,6 +931,7 @@ CONFIG_HWMON=y
902# CONFIG_SENSORS_SMSC47M1 is not set 931# CONFIG_SENSORS_SMSC47M1 is not set
903# CONFIG_SENSORS_SMSC47M192 is not set 932# CONFIG_SENSORS_SMSC47M192 is not set
904# CONFIG_SENSORS_SMSC47B397 is not set 933# CONFIG_SENSORS_SMSC47B397 is not set
934# CONFIG_SENSORS_ADS7828 is not set
905# CONFIG_SENSORS_THMC50 is not set 935# CONFIG_SENSORS_THMC50 is not set
906# CONFIG_SENSORS_VIA686A is not set 936# CONFIG_SENSORS_VIA686A is not set
907# CONFIG_SENSORS_VT1211 is not set 937# CONFIG_SENSORS_VT1211 is not set
@@ -911,9 +941,11 @@ CONFIG_HWMON=y
911# CONFIG_SENSORS_W83792D is not set 941# CONFIG_SENSORS_W83792D is not set
912# CONFIG_SENSORS_W83793 is not set 942# CONFIG_SENSORS_W83793 is not set
913# CONFIG_SENSORS_W83L785TS is not set 943# CONFIG_SENSORS_W83L785TS is not set
944# CONFIG_SENSORS_W83L786NG is not set
914# CONFIG_SENSORS_W83627HF is not set 945# CONFIG_SENSORS_W83627HF is not set
915# CONFIG_SENSORS_W83627EHF is not set 946# CONFIG_SENSORS_W83627EHF is not set
916# CONFIG_HWMON_DEBUG_CHIP is not set 947# CONFIG_HWMON_DEBUG_CHIP is not set
948# CONFIG_THERMAL is not set
917CONFIG_WATCHDOG=y 949CONFIG_WATCHDOG=y
918# CONFIG_WATCHDOG_NOWAYOUT is not set 950# CONFIG_WATCHDOG_NOWAYOUT is not set
919 951
@@ -993,6 +1025,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
993CONFIG_USB_ARCH_HAS_EHCI=y 1025CONFIG_USB_ARCH_HAS_EHCI=y
994CONFIG_USB=y 1026CONFIG_USB=y
995# CONFIG_USB_DEBUG is not set 1027# CONFIG_USB_DEBUG is not set
1028# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
996 1029
997# 1030#
998# Miscellaneous USB options 1031# Miscellaneous USB options
@@ -1006,10 +1039,10 @@ CONFIG_USB_DEVICE_CLASS=y
1006# USB Host Controller Drivers 1039# USB Host Controller Drivers
1007# 1040#
1008CONFIG_USB_EHCI_HCD=y 1041CONFIG_USB_EHCI_HCD=y
1009# CONFIG_USB_EHCI_SPLIT_ISO is not set
1010CONFIG_USB_EHCI_ROOT_HUB_TT=y 1042CONFIG_USB_EHCI_ROOT_HUB_TT=y
1011# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1043# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1012CONFIG_USB_EHCI_FSL=y 1044CONFIG_USB_EHCI_FSL=y
1045CONFIG_USB_EHCI_HCD_PPC_OF=y
1013# CONFIG_USB_ISP116X_HCD is not set 1046# CONFIG_USB_ISP116X_HCD is not set
1014CONFIG_USB_OHCI_HCD=y 1047CONFIG_USB_OHCI_HCD=y
1015CONFIG_USB_OHCI_HCD_PPC_OF=y 1048CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1060,10 +1093,6 @@ CONFIG_USB_MON=y
1060# 1093#
1061# USB port drivers 1094# USB port drivers
1062# 1095#
1063
1064#
1065# USB Serial Converter support
1066#
1067# CONFIG_USB_SERIAL is not set 1096# CONFIG_USB_SERIAL is not set
1068 1097
1069# 1098#
@@ -1089,14 +1118,6 @@ CONFIG_USB_MON=y
1089# CONFIG_USB_TRANCEVIBRATOR is not set 1118# CONFIG_USB_TRANCEVIBRATOR is not set
1090# CONFIG_USB_IOWARRIOR is not set 1119# CONFIG_USB_IOWARRIOR is not set
1091# CONFIG_USB_TEST is not set 1120# CONFIG_USB_TEST is not set
1092
1093#
1094# USB DSL modem support
1095#
1096
1097#
1098# USB Gadget Support
1099#
1100CONFIG_USB_GADGET=y 1121CONFIG_USB_GADGET=y
1101# CONFIG_USB_GADGET_DEBUG is not set 1122# CONFIG_USB_GADGET_DEBUG is not set
1102# CONFIG_USB_GADGET_DEBUG_FILES is not set 1123# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1122,7 +1143,9 @@ CONFIG_USB_ETH_RNDIS=y
1122# CONFIG_USB_FILE_STORAGE is not set 1143# CONFIG_USB_FILE_STORAGE is not set
1123# CONFIG_USB_G_SERIAL is not set 1144# CONFIG_USB_G_SERIAL is not set
1124# CONFIG_USB_MIDI_GADGET is not set 1145# CONFIG_USB_MIDI_GADGET is not set
1146# CONFIG_USB_G_PRINTER is not set
1125# CONFIG_MMC is not set 1147# CONFIG_MMC is not set
1148# CONFIG_MEMSTICK is not set
1126# CONFIG_NEW_LEDS is not set 1149# CONFIG_NEW_LEDS is not set
1127# CONFIG_INFINIBAND is not set 1150# CONFIG_INFINIBAND is not set
1128# CONFIG_EDAC is not set 1151# CONFIG_EDAC is not set
@@ -1154,20 +1177,23 @@ CONFIG_RTC_DRV_DS1307=y
1154# CONFIG_RTC_DRV_PCF8563 is not set 1177# CONFIG_RTC_DRV_PCF8563 is not set
1155# CONFIG_RTC_DRV_PCF8583 is not set 1178# CONFIG_RTC_DRV_PCF8583 is not set
1156# CONFIG_RTC_DRV_M41T80 is not set 1179# CONFIG_RTC_DRV_M41T80 is not set
1180# CONFIG_RTC_DRV_S35390A is not set
1157 1181
1158# 1182#
1159# SPI RTC drivers 1183# SPI RTC drivers
1160# 1184#
1161# CONFIG_RTC_DRV_RS5C348 is not set
1162# CONFIG_RTC_DRV_MAX6902 is not set 1185# CONFIG_RTC_DRV_MAX6902 is not set
1186# CONFIG_RTC_DRV_R9701 is not set
1187# CONFIG_RTC_DRV_RS5C348 is not set
1163 1188
1164# 1189#
1165# Platform RTC drivers 1190# Platform RTC drivers
1166# 1191#
1167# CONFIG_RTC_DRV_CMOS is not set 1192# CONFIG_RTC_DRV_CMOS is not set
1193# CONFIG_RTC_DRV_DS1511 is not set
1168# CONFIG_RTC_DRV_DS1553 is not set 1194# CONFIG_RTC_DRV_DS1553 is not set
1169# CONFIG_RTC_DRV_STK17TA8 is not set
1170# CONFIG_RTC_DRV_DS1742 is not set 1195# CONFIG_RTC_DRV_DS1742 is not set
1196# CONFIG_RTC_DRV_STK17TA8 is not set
1171# CONFIG_RTC_DRV_M48T86 is not set 1197# CONFIG_RTC_DRV_M48T86 is not set
1172# CONFIG_RTC_DRV_M48T59 is not set 1198# CONFIG_RTC_DRV_M48T59 is not set
1173# CONFIG_RTC_DRV_V3020 is not set 1199# CONFIG_RTC_DRV_V3020 is not set
@@ -1175,6 +1201,7 @@ CONFIG_RTC_DRV_DS1307=y
1175# 1201#
1176# on-CPU RTC drivers 1202# on-CPU RTC drivers
1177# 1203#
1204# CONFIG_DMADEVICES is not set
1178 1205
1179# 1206#
1180# Userspace I/O 1207# Userspace I/O
@@ -1200,12 +1227,10 @@ CONFIG_FS_MBCACHE=y
1200# CONFIG_XFS_FS is not set 1227# CONFIG_XFS_FS is not set
1201# CONFIG_GFS2_FS is not set 1228# CONFIG_GFS2_FS is not set
1202# CONFIG_OCFS2_FS is not set 1229# CONFIG_OCFS2_FS is not set
1203# CONFIG_MINIX_FS is not set 1230CONFIG_DNOTIFY=y
1204# CONFIG_ROMFS_FS is not set
1205CONFIG_INOTIFY=y 1231CONFIG_INOTIFY=y
1206CONFIG_INOTIFY_USER=y 1232CONFIG_INOTIFY_USER=y
1207# CONFIG_QUOTA is not set 1233# CONFIG_QUOTA is not set
1208CONFIG_DNOTIFY=y
1209# CONFIG_AUTOFS_FS is not set 1234# CONFIG_AUTOFS_FS is not set
1210# CONFIG_AUTOFS4_FS is not set 1235# CONFIG_AUTOFS4_FS is not set
1211# CONFIG_FUSE_FS is not set 1236# CONFIG_FUSE_FS is not set
@@ -1258,8 +1283,10 @@ CONFIG_JFFS2_RTIME=y
1258# CONFIG_JFFS2_RUBIN is not set 1283# CONFIG_JFFS2_RUBIN is not set
1259# CONFIG_CRAMFS is not set 1284# CONFIG_CRAMFS is not set
1260# CONFIG_VXFS_FS is not set 1285# CONFIG_VXFS_FS is not set
1286# CONFIG_MINIX_FS is not set
1261# CONFIG_HPFS_FS is not set 1287# CONFIG_HPFS_FS is not set
1262# CONFIG_QNX4FS_FS is not set 1288# CONFIG_QNX4FS_FS is not set
1289# CONFIG_ROMFS_FS is not set
1263# CONFIG_SYSV_FS is not set 1290# CONFIG_SYSV_FS is not set
1264# CONFIG_UFS_FS is not set 1291# CONFIG_UFS_FS is not set
1265CONFIG_NETWORK_FILESYSTEMS=y 1292CONFIG_NETWORK_FILESYSTEMS=y
@@ -1324,7 +1351,6 @@ CONFIG_PLIST=y
1324CONFIG_HAS_IOMEM=y 1351CONFIG_HAS_IOMEM=y
1325CONFIG_HAS_IOPORT=y 1352CONFIG_HAS_IOPORT=y
1326CONFIG_HAS_DMA=y 1353CONFIG_HAS_DMA=y
1327# CONFIG_INSTRUMENTATION is not set
1328 1354
1329# 1355#
1330# Kernel hacking 1356# Kernel hacking
@@ -1343,6 +1369,7 @@ CONFIG_SCHED_DEBUG=y
1343# CONFIG_SCHEDSTATS is not set 1369# CONFIG_SCHEDSTATS is not set
1344# CONFIG_TIMER_STATS is not set 1370# CONFIG_TIMER_STATS is not set
1345# CONFIG_SLUB_DEBUG_ON is not set 1371# CONFIG_SLUB_DEBUG_ON is not set
1372# CONFIG_SLUB_STATS is not set
1346# CONFIG_DEBUG_RT_MUTEXES is not set 1373# CONFIG_DEBUG_RT_MUTEXES is not set
1347# CONFIG_RT_MUTEX_TESTER is not set 1374# CONFIG_RT_MUTEX_TESTER is not set
1348# CONFIG_DEBUG_SPINLOCK is not set 1375# CONFIG_DEBUG_SPINLOCK is not set
@@ -1355,9 +1382,9 @@ CONFIG_SCHED_DEBUG=y
1355# CONFIG_DEBUG_VM is not set 1382# CONFIG_DEBUG_VM is not set
1356# CONFIG_DEBUG_LIST is not set 1383# CONFIG_DEBUG_LIST is not set
1357# CONFIG_DEBUG_SG is not set 1384# CONFIG_DEBUG_SG is not set
1358CONFIG_FORCED_INLINING=y
1359# CONFIG_BOOT_PRINTK_DELAY is not set 1385# CONFIG_BOOT_PRINTK_DELAY is not set
1360# CONFIG_RCU_TORTURE_TEST is not set 1386# CONFIG_RCU_TORTURE_TEST is not set
1387# CONFIG_BACKTRACE_SELF_TEST is not set
1361# CONFIG_FAULT_INJECTION is not set 1388# CONFIG_FAULT_INJECTION is not set
1362# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1363# CONFIG_DEBUG_STACKOVERFLOW is not set 1390# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1376,6 +1403,7 @@ CONFIG_FORCED_INLINING=y
1376CONFIG_CRYPTO=y 1403CONFIG_CRYPTO=y
1377CONFIG_CRYPTO_ALGAPI=y 1404CONFIG_CRYPTO_ALGAPI=y
1378CONFIG_CRYPTO_BLKCIPHER=y 1405CONFIG_CRYPTO_BLKCIPHER=y
1406# CONFIG_CRYPTO_SEQIV is not set
1379CONFIG_CRYPTO_MANAGER=y 1407CONFIG_CRYPTO_MANAGER=y
1380# CONFIG_CRYPTO_HMAC is not set 1408# CONFIG_CRYPTO_HMAC is not set
1381# CONFIG_CRYPTO_XCBC is not set 1409# CONFIG_CRYPTO_XCBC is not set
@@ -1393,6 +1421,9 @@ CONFIG_CRYPTO_CBC=y
1393CONFIG_CRYPTO_PCBC=m 1421CONFIG_CRYPTO_PCBC=m
1394# CONFIG_CRYPTO_LRW is not set 1422# CONFIG_CRYPTO_LRW is not set
1395# CONFIG_CRYPTO_XTS is not set 1423# CONFIG_CRYPTO_XTS is not set
1424# CONFIG_CRYPTO_CTR is not set
1425# CONFIG_CRYPTO_GCM is not set
1426# CONFIG_CRYPTO_CCM is not set
1396# CONFIG_CRYPTO_CRYPTD is not set 1427# CONFIG_CRYPTO_CRYPTD is not set
1397CONFIG_CRYPTO_DES=y 1428CONFIG_CRYPTO_DES=y
1398# CONFIG_CRYPTO_FCRYPT is not set 1429# CONFIG_CRYPTO_FCRYPT is not set
@@ -1407,11 +1438,14 @@ CONFIG_CRYPTO_DES=y
1407# CONFIG_CRYPTO_KHAZAD is not set 1438# CONFIG_CRYPTO_KHAZAD is not set
1408# CONFIG_CRYPTO_ANUBIS is not set 1439# CONFIG_CRYPTO_ANUBIS is not set
1409# CONFIG_CRYPTO_SEED is not set 1440# CONFIG_CRYPTO_SEED is not set
1441# CONFIG_CRYPTO_SALSA20 is not set
1410# CONFIG_CRYPTO_DEFLATE is not set 1442# CONFIG_CRYPTO_DEFLATE is not set
1411# CONFIG_CRYPTO_MICHAEL_MIC is not set 1443# CONFIG_CRYPTO_MICHAEL_MIC is not set
1412# CONFIG_CRYPTO_CRC32C is not set 1444# CONFIG_CRYPTO_CRC32C is not set
1413# CONFIG_CRYPTO_CAMELLIA is not set 1445# CONFIG_CRYPTO_CAMELLIA is not set
1414# CONFIG_CRYPTO_TEST is not set 1446# CONFIG_CRYPTO_TEST is not set
1415# CONFIG_CRYPTO_AUTHENC is not set 1447# CONFIG_CRYPTO_AUTHENC is not set
1448# CONFIG_CRYPTO_LZO is not set
1416CONFIG_CRYPTO_HW=y 1449CONFIG_CRYPTO_HW=y
1450# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1417# CONFIG_PPC_CLOCK is not set 1451# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc832x_mds_defconfig b/arch/powerpc/configs/mpc832x_mds_defconfig
index 2d8951b1096e..79d228f84c5a 100644
--- a/arch/powerpc/configs/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/mpc832x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:33 2007 4# Mon Mar 24 08:48:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,23 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142CONFIG_MPC832x_MDS=y 158CONFIG_MPC832x_MDS=y
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
144# CONFIG_MPC834x_MDS is not set 160# CONFIG_MPC834x_MDS is not set
145# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
147CONFIG_PPC_MPC832x=y 166CONFIG_PPC_MPC832x=y
167CONFIG_IPIC=y
148# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -156,7 +176,6 @@ CONFIG_PPC_MPC832x=y
156# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
158CONFIG_QUICC_ENGINE=y 178CONFIG_QUICC_ENGINE=y
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 179# CONFIG_FSL_ULI1575 is not set
161 180
162# 181#
@@ -172,13 +191,17 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 191# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 192# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 193CONFIG_HZ=250
194# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
180CONFIG_MATH_EMULATION=y 200CONFIG_MATH_EMULATION=y
201# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 205CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 206CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 207CONFIG_SELECT_MEMORY_MODEL=y
@@ -197,11 +220,7 @@ CONFIG_VIRT_TO_BUS=y
197CONFIG_PROC_DEVICETREE=y 220CONFIG_PROC_DEVICETREE=y
198# CONFIG_CMDLINE_BOOL is not set 221# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 222# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202CONFIG_SECCOMP=y 223CONFIG_SECCOMP=y
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 224CONFIG_ISA_DMA_API=y
206 225
207# 226#
@@ -250,6 +269,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 269# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 270# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 271# CONFIG_XFRM_MIGRATE is not set
272# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 273# CONFIG_NET_KEY is not set
254CONFIG_INET=y 274CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 275CONFIG_IP_MULTICAST=y
@@ -305,6 +325,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 325#
306# CONFIG_NET_PKTGEN is not set 326# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 327# CONFIG_HAMRADIO is not set
328# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 329# CONFIG_IRDA is not set
309# CONFIG_BT is not set 330# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 331# CONFIG_AF_RXRPC is not set
@@ -349,7 +370,7 @@ CONFIG_BLK_DEV_LOOP=y
349CONFIG_BLK_DEV_RAM=y 370CONFIG_BLK_DEV_RAM=y
350CONFIG_BLK_DEV_RAM_COUNT=16 371CONFIG_BLK_DEV_RAM_COUNT=16
351CONFIG_BLK_DEV_RAM_SIZE=32768 372CONFIG_BLK_DEV_RAM_SIZE=32768
352CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 373# CONFIG_BLK_DEV_XIP is not set
353# CONFIG_CDROM_PKTCDVD is not set 374# CONFIG_CDROM_PKTCDVD is not set
354# CONFIG_ATA_OVER_ETH is not set 375# CONFIG_ATA_OVER_ETH is not set
355CONFIG_MISC_DEVICES=y 376CONFIG_MISC_DEVICES=y
@@ -357,6 +378,8 @@ CONFIG_MISC_DEVICES=y
357# CONFIG_EEPROM_93CX6 is not set 378# CONFIG_EEPROM_93CX6 is not set
358# CONFIG_SGI_IOC4 is not set 379# CONFIG_SGI_IOC4 is not set
359# CONFIG_TIFM_CORE is not set 380# CONFIG_TIFM_CORE is not set
381# CONFIG_ENCLOSURE_SERVICES is not set
382CONFIG_HAVE_IDE=y
360# CONFIG_IDE is not set 383# CONFIG_IDE is not set
361 384
362# 385#
@@ -421,6 +444,7 @@ CONFIG_SCSI_LOWLEVEL=y
421# CONFIG_SCSI_IPS is not set 444# CONFIG_SCSI_IPS is not set
422# CONFIG_SCSI_INITIO is not set 445# CONFIG_SCSI_INITIO is not set
423# CONFIG_SCSI_INIA100 is not set 446# CONFIG_SCSI_INIA100 is not set
447# CONFIG_SCSI_MVSAS is not set
424# CONFIG_SCSI_STEX is not set 448# CONFIG_SCSI_STEX is not set
425# CONFIG_SCSI_SYM53C8XX_2 is not set 449# CONFIG_SCSI_SYM53C8XX_2 is not set
426# CONFIG_SCSI_QLOGIC_1280 is not set 450# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -451,7 +475,6 @@ CONFIG_NETDEVICES=y
451# CONFIG_EQUALIZER is not set 475# CONFIG_EQUALIZER is not set
452# CONFIG_TUN is not set 476# CONFIG_TUN is not set
453# CONFIG_VETH is not set 477# CONFIG_VETH is not set
454# CONFIG_IP1000 is not set
455# CONFIG_ARCNET is not set 478# CONFIG_ARCNET is not set
456CONFIG_PHYLIB=y 479CONFIG_PHYLIB=y
457 480
@@ -467,6 +490,7 @@ CONFIG_DAVICOM_PHY=y
467# CONFIG_SMSC_PHY is not set 490# CONFIG_SMSC_PHY is not set
468# CONFIG_BROADCOM_PHY is not set 491# CONFIG_BROADCOM_PHY is not set
469# CONFIG_ICPLUS_PHY is not set 492# CONFIG_ICPLUS_PHY is not set
493# CONFIG_REALTEK_PHY is not set
470# CONFIG_FIXED_PHY is not set 494# CONFIG_FIXED_PHY is not set
471# CONFIG_MDIO_BITBANG is not set 495# CONFIG_MDIO_BITBANG is not set
472CONFIG_NET_ETHERNET=y 496CONFIG_NET_ETHERNET=y
@@ -488,6 +512,9 @@ CONFIG_NETDEV_1000=y
488# CONFIG_DL2K is not set 512# CONFIG_DL2K is not set
489# CONFIG_E1000 is not set 513# CONFIG_E1000 is not set
490# CONFIG_E1000E is not set 514# CONFIG_E1000E is not set
515# CONFIG_E1000E_ENABLED is not set
516# CONFIG_IP1000 is not set
517# CONFIG_IGB is not set
491# CONFIG_NS83820 is not set 518# CONFIG_NS83820 is not set
492# CONFIG_HAMACHI is not set 519# CONFIG_HAMACHI is not set
493# CONFIG_YELLOWFIN is not set 520# CONFIG_YELLOWFIN is not set
@@ -518,6 +545,7 @@ CONFIG_NETDEV_10000=y
518# CONFIG_NIU is not set 545# CONFIG_NIU is not set
519# CONFIG_MLX4_CORE is not set 546# CONFIG_MLX4_CORE is not set
520# CONFIG_TEHUTI is not set 547# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set
521# CONFIG_TR is not set 549# CONFIG_TR is not set
522 550
523# 551#
@@ -531,7 +559,6 @@ CONFIG_NETDEV_10000=y
531# CONFIG_PPP is not set 559# CONFIG_PPP is not set
532# CONFIG_SLIP is not set 560# CONFIG_SLIP is not set
533# CONFIG_NET_FC is not set 561# CONFIG_NET_FC is not set
534# CONFIG_SHAPER is not set
535# CONFIG_NETCONSOLE is not set 562# CONFIG_NETCONSOLE is not set
536# CONFIG_NETPOLL is not set 563# CONFIG_NETPOLL is not set
537# CONFIG_NET_POLL_CONTROLLER is not set 564# CONFIG_NET_POLL_CONTROLLER is not set
@@ -574,6 +601,7 @@ CONFIG_INPUT=y
574# 601#
575# CONFIG_VT is not set 602# CONFIG_VT is not set
576# CONFIG_SERIAL_NONSTANDARD is not set 603# CONFIG_SERIAL_NONSTANDARD is not set
604# CONFIG_NOZOMI is not set
577 605
578# 606#
579# Serial drivers 607# Serial drivers
@@ -593,6 +621,7 @@ CONFIG_SERIAL_CORE=y
593CONFIG_SERIAL_CORE_CONSOLE=y 621CONFIG_SERIAL_CORE_CONSOLE=y
594# CONFIG_SERIAL_JSM is not set 622# CONFIG_SERIAL_JSM is not set
595# CONFIG_SERIAL_OF_PLATFORM is not set 623# CONFIG_SERIAL_OF_PLATFORM is not set
624# CONFIG_SERIAL_QE is not set
596CONFIG_UNIX98_PTYS=y 625CONFIG_UNIX98_PTYS=y
597CONFIG_LEGACY_PTYS=y 626CONFIG_LEGACY_PTYS=y
598CONFIG_LEGACY_PTY_COUNT=256 627CONFIG_LEGACY_PTY_COUNT=256
@@ -647,14 +676,12 @@ CONFIG_I2C_MPC=y
647# 676#
648# Miscellaneous I2C Chip support 677# Miscellaneous I2C Chip support
649# 678#
650# CONFIG_SENSORS_DS1337 is not set
651# CONFIG_SENSORS_DS1374 is not set
652# CONFIG_DS1682 is not set 679# CONFIG_DS1682 is not set
653# CONFIG_SENSORS_EEPROM is not set 680# CONFIG_SENSORS_EEPROM is not set
654# CONFIG_SENSORS_PCF8574 is not set 681# CONFIG_SENSORS_PCF8574 is not set
655# CONFIG_SENSORS_PCA9539 is not set 682# CONFIG_PCF8575 is not set
656# CONFIG_SENSORS_PCF8591 is not set 683# CONFIG_SENSORS_PCF8591 is not set
657# CONFIG_SENSORS_M41T00 is not set 684# CONFIG_TPS65010 is not set
658# CONFIG_SENSORS_MAX6875 is not set 685# CONFIG_SENSORS_MAX6875 is not set
659# CONFIG_SENSORS_TSL2550 is not set 686# CONFIG_SENSORS_TSL2550 is not set
660# CONFIG_I2C_DEBUG_CORE is not set 687# CONFIG_I2C_DEBUG_CORE is not set
@@ -679,6 +706,7 @@ CONFIG_HWMON=y
679# CONFIG_SENSORS_ADM1031 is not set 706# CONFIG_SENSORS_ADM1031 is not set
680# CONFIG_SENSORS_ADM9240 is not set 707# CONFIG_SENSORS_ADM9240 is not set
681# CONFIG_SENSORS_ADT7470 is not set 708# CONFIG_SENSORS_ADT7470 is not set
709# CONFIG_SENSORS_ADT7473 is not set
682# CONFIG_SENSORS_ATXP1 is not set 710# CONFIG_SENSORS_ATXP1 is not set
683# CONFIG_SENSORS_DS1621 is not set 711# CONFIG_SENSORS_DS1621 is not set
684# CONFIG_SENSORS_I5K_AMB is not set 712# CONFIG_SENSORS_I5K_AMB is not set
@@ -708,6 +736,7 @@ CONFIG_HWMON=y
708# CONFIG_SENSORS_SMSC47M1 is not set 736# CONFIG_SENSORS_SMSC47M1 is not set
709# CONFIG_SENSORS_SMSC47M192 is not set 737# CONFIG_SENSORS_SMSC47M192 is not set
710# CONFIG_SENSORS_SMSC47B397 is not set 738# CONFIG_SENSORS_SMSC47B397 is not set
739# CONFIG_SENSORS_ADS7828 is not set
711# CONFIG_SENSORS_THMC50 is not set 740# CONFIG_SENSORS_THMC50 is not set
712# CONFIG_SENSORS_VIA686A is not set 741# CONFIG_SENSORS_VIA686A is not set
713# CONFIG_SENSORS_VT1211 is not set 742# CONFIG_SENSORS_VT1211 is not set
@@ -717,9 +746,11 @@ CONFIG_HWMON=y
717# CONFIG_SENSORS_W83792D is not set 746# CONFIG_SENSORS_W83792D is not set
718# CONFIG_SENSORS_W83793 is not set 747# CONFIG_SENSORS_W83793 is not set
719# CONFIG_SENSORS_W83L785TS is not set 748# CONFIG_SENSORS_W83L785TS is not set
749# CONFIG_SENSORS_W83L786NG is not set
720# CONFIG_SENSORS_W83627HF is not set 750# CONFIG_SENSORS_W83627HF is not set
721# CONFIG_SENSORS_W83627EHF is not set 751# CONFIG_SENSORS_W83627EHF is not set
722# CONFIG_HWMON_DEBUG_CHIP is not set 752# CONFIG_HWMON_DEBUG_CHIP is not set
753# CONFIG_THERMAL is not set
723CONFIG_WATCHDOG=y 754CONFIG_WATCHDOG=y
724# CONFIG_WATCHDOG_NOWAYOUT is not set 755# CONFIG_WATCHDOG_NOWAYOUT is not set
725 756
@@ -785,17 +816,18 @@ CONFIG_USB_ARCH_HAS_EHCI=y
785# 816#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 817# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
787# 818#
788
789#
790# USB Gadget Support
791#
792# CONFIG_USB_GADGET is not set 819# CONFIG_USB_GADGET is not set
793# CONFIG_MMC is not set 820# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set
794# CONFIG_NEW_LEDS is not set 822# CONFIG_NEW_LEDS is not set
795# CONFIG_INFINIBAND is not set 823# CONFIG_INFINIBAND is not set
796# CONFIG_EDAC is not set 824# CONFIG_EDAC is not set
797CONFIG_RTC_LIB=y 825CONFIG_RTC_LIB=y
798CONFIG_RTC_CLASS=y 826CONFIG_RTC_CLASS=y
827
828#
829# Conflicting RTC option has been selected, check GEN_RTC and RTC
830#
799CONFIG_RTC_HCTOSYS=y 831CONFIG_RTC_HCTOSYS=y
800CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 832CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
801# CONFIG_RTC_DEBUG is not set 833# CONFIG_RTC_DEBUG is not set
@@ -822,6 +854,7 @@ CONFIG_RTC_DRV_DS1374=y
822# CONFIG_RTC_DRV_PCF8563 is not set 854# CONFIG_RTC_DRV_PCF8563 is not set
823# CONFIG_RTC_DRV_PCF8583 is not set 855# CONFIG_RTC_DRV_PCF8583 is not set
824# CONFIG_RTC_DRV_M41T80 is not set 856# CONFIG_RTC_DRV_M41T80 is not set
857# CONFIG_RTC_DRV_S35390A is not set
825 858
826# 859#
827# SPI RTC drivers 860# SPI RTC drivers
@@ -831,9 +864,10 @@ CONFIG_RTC_DRV_DS1374=y
831# Platform RTC drivers 864# Platform RTC drivers
832# 865#
833# CONFIG_RTC_DRV_CMOS is not set 866# CONFIG_RTC_DRV_CMOS is not set
867# CONFIG_RTC_DRV_DS1511 is not set
834# CONFIG_RTC_DRV_DS1553 is not set 868# CONFIG_RTC_DRV_DS1553 is not set
835# CONFIG_RTC_DRV_STK17TA8 is not set
836# CONFIG_RTC_DRV_DS1742 is not set 869# CONFIG_RTC_DRV_DS1742 is not set
870# CONFIG_RTC_DRV_STK17TA8 is not set
837# CONFIG_RTC_DRV_M48T86 is not set 871# CONFIG_RTC_DRV_M48T86 is not set
838# CONFIG_RTC_DRV_M48T59 is not set 872# CONFIG_RTC_DRV_M48T59 is not set
839# CONFIG_RTC_DRV_V3020 is not set 873# CONFIG_RTC_DRV_V3020 is not set
@@ -841,6 +875,7 @@ CONFIG_RTC_DRV_DS1374=y
841# 875#
842# on-CPU RTC drivers 876# on-CPU RTC drivers
843# 877#
878# CONFIG_DMADEVICES is not set
844 879
845# 880#
846# Userspace I/O 881# Userspace I/O
@@ -866,12 +901,10 @@ CONFIG_FS_MBCACHE=y
866# CONFIG_XFS_FS is not set 901# CONFIG_XFS_FS is not set
867# CONFIG_GFS2_FS is not set 902# CONFIG_GFS2_FS is not set
868# CONFIG_OCFS2_FS is not set 903# CONFIG_OCFS2_FS is not set
869# CONFIG_MINIX_FS is not set 904CONFIG_DNOTIFY=y
870# CONFIG_ROMFS_FS is not set
871CONFIG_INOTIFY=y 905CONFIG_INOTIFY=y
872CONFIG_INOTIFY_USER=y 906CONFIG_INOTIFY_USER=y
873# CONFIG_QUOTA is not set 907# CONFIG_QUOTA is not set
874CONFIG_DNOTIFY=y
875# CONFIG_AUTOFS_FS is not set 908# CONFIG_AUTOFS_FS is not set
876# CONFIG_AUTOFS4_FS is not set 909# CONFIG_AUTOFS4_FS is not set
877# CONFIG_FUSE_FS is not set 910# CONFIG_FUSE_FS is not set
@@ -913,8 +946,10 @@ CONFIG_TMPFS=y
913# CONFIG_EFS_FS is not set 946# CONFIG_EFS_FS is not set
914# CONFIG_CRAMFS is not set 947# CONFIG_CRAMFS is not set
915# CONFIG_VXFS_FS is not set 948# CONFIG_VXFS_FS is not set
949# CONFIG_MINIX_FS is not set
916# CONFIG_HPFS_FS is not set 950# CONFIG_HPFS_FS is not set
917# CONFIG_QNX4FS_FS is not set 951# CONFIG_QNX4FS_FS is not set
952# CONFIG_ROMFS_FS is not set
918# CONFIG_SYSV_FS is not set 953# CONFIG_SYSV_FS is not set
919# CONFIG_UFS_FS is not set 954# CONFIG_UFS_FS is not set
920CONFIG_NETWORK_FILESYSTEMS=y 955CONFIG_NETWORK_FILESYSTEMS=y
@@ -958,7 +993,6 @@ CONFIG_PARTITION_ADVANCED=y
958# CONFIG_SYSV68_PARTITION is not set 993# CONFIG_SYSV68_PARTITION is not set
959# CONFIG_NLS is not set 994# CONFIG_NLS is not set
960# CONFIG_DLM is not set 995# CONFIG_DLM is not set
961# CONFIG_UCC_SLOW is not set
962CONFIG_UCC_FAST=y 996CONFIG_UCC_FAST=y
963CONFIG_UCC=y 997CONFIG_UCC=y
964 998
@@ -976,7 +1010,6 @@ CONFIG_PLIST=y
976CONFIG_HAS_IOMEM=y 1010CONFIG_HAS_IOMEM=y
977CONFIG_HAS_IOPORT=y 1011CONFIG_HAS_IOPORT=y
978CONFIG_HAS_DMA=y 1012CONFIG_HAS_DMA=y
979# CONFIG_INSTRUMENTATION is not set
980 1013
981# 1014#
982# Kernel hacking 1015# Kernel hacking
@@ -990,6 +1023,7 @@ CONFIG_ENABLE_MUST_CHECK=y
990# CONFIG_HEADERS_CHECK is not set 1023# CONFIG_HEADERS_CHECK is not set
991# CONFIG_DEBUG_KERNEL is not set 1024# CONFIG_DEBUG_KERNEL is not set
992# CONFIG_SLUB_DEBUG_ON is not set 1025# CONFIG_SLUB_DEBUG_ON is not set
1026# CONFIG_SLUB_STATS is not set
993# CONFIG_DEBUG_BUGVERBOSE is not set 1027# CONFIG_DEBUG_BUGVERBOSE is not set
994# CONFIG_SAMPLES is not set 1028# CONFIG_SAMPLES is not set
995# CONFIG_PPC_EARLY_DEBUG is not set 1029# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1003,6 +1037,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1003CONFIG_CRYPTO=y 1037CONFIG_CRYPTO=y
1004CONFIG_CRYPTO_ALGAPI=y 1038CONFIG_CRYPTO_ALGAPI=y
1005CONFIG_CRYPTO_BLKCIPHER=y 1039CONFIG_CRYPTO_BLKCIPHER=y
1040# CONFIG_CRYPTO_SEQIV is not set
1006CONFIG_CRYPTO_MANAGER=y 1041CONFIG_CRYPTO_MANAGER=y
1007# CONFIG_CRYPTO_HMAC is not set 1042# CONFIG_CRYPTO_HMAC is not set
1008# CONFIG_CRYPTO_XCBC is not set 1043# CONFIG_CRYPTO_XCBC is not set
@@ -1020,6 +1055,9 @@ CONFIG_CRYPTO_CBC=y
1020CONFIG_CRYPTO_PCBC=m 1055CONFIG_CRYPTO_PCBC=m
1021# CONFIG_CRYPTO_LRW is not set 1056# CONFIG_CRYPTO_LRW is not set
1022# CONFIG_CRYPTO_XTS is not set 1057# CONFIG_CRYPTO_XTS is not set
1058# CONFIG_CRYPTO_CTR is not set
1059# CONFIG_CRYPTO_GCM is not set
1060# CONFIG_CRYPTO_CCM is not set
1023# CONFIG_CRYPTO_CRYPTD is not set 1061# CONFIG_CRYPTO_CRYPTD is not set
1024CONFIG_CRYPTO_DES=y 1062CONFIG_CRYPTO_DES=y
1025# CONFIG_CRYPTO_FCRYPT is not set 1063# CONFIG_CRYPTO_FCRYPT is not set
@@ -1034,12 +1072,15 @@ CONFIG_CRYPTO_DES=y
1034# CONFIG_CRYPTO_KHAZAD is not set 1072# CONFIG_CRYPTO_KHAZAD is not set
1035# CONFIG_CRYPTO_ANUBIS is not set 1073# CONFIG_CRYPTO_ANUBIS is not set
1036# CONFIG_CRYPTO_SEED is not set 1074# CONFIG_CRYPTO_SEED is not set
1075# CONFIG_CRYPTO_SALSA20 is not set
1037# CONFIG_CRYPTO_DEFLATE is not set 1076# CONFIG_CRYPTO_DEFLATE is not set
1038# CONFIG_CRYPTO_MICHAEL_MIC is not set 1077# CONFIG_CRYPTO_MICHAEL_MIC is not set
1039# CONFIG_CRYPTO_CRC32C is not set 1078# CONFIG_CRYPTO_CRC32C is not set
1040# CONFIG_CRYPTO_CAMELLIA is not set 1079# CONFIG_CRYPTO_CAMELLIA is not set
1041# CONFIG_CRYPTO_TEST is not set 1080# CONFIG_CRYPTO_TEST is not set
1042# CONFIG_CRYPTO_AUTHENC is not set 1081# CONFIG_CRYPTO_AUTHENC is not set
1082# CONFIG_CRYPTO_LZO is not set
1043CONFIG_CRYPTO_HW=y 1083CONFIG_CRYPTO_HW=y
1084# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1044# CONFIG_PPC_CLOCK is not set 1085# CONFIG_PPC_CLOCK is not set
1045CONFIG_PPC_LIB_RHEAP=y 1086CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc832x_rdb_defconfig b/arch/powerpc/configs/mpc832x_rdb_defconfig
index 761718a63b7c..ac913025713e 100644
--- a/arch/powerpc/configs/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/mpc832x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:35 2007 4# Mon Mar 24 08:48:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,23 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143CONFIG_MPC832x_RDB=y 159CONFIG_MPC832x_RDB=y
144# CONFIG_MPC834x_MDS is not set 160# CONFIG_MPC834x_MDS is not set
145# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
147CONFIG_PPC_MPC832x=y 166CONFIG_PPC_MPC832x=y
167CONFIG_IPIC=y
148# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -156,7 +176,6 @@ CONFIG_PPC_MPC832x=y
156# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
158CONFIG_QUICC_ENGINE=y 178CONFIG_QUICC_ENGINE=y
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 179# CONFIG_FSL_ULI1575 is not set
161 180
162# 181#
@@ -172,13 +191,17 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 191# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 192# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 193CONFIG_HZ=250
194# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
180CONFIG_MATH_EMULATION=y 200CONFIG_MATH_EMULATION=y
201# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 205CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 206CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 207CONFIG_SELECT_MEMORY_MODEL=y
@@ -197,11 +220,7 @@ CONFIG_VIRT_TO_BUS=y
197CONFIG_PROC_DEVICETREE=y 220CONFIG_PROC_DEVICETREE=y
198# CONFIG_CMDLINE_BOOL is not set 221# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 222# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202CONFIG_SECCOMP=y 223CONFIG_SECCOMP=y
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 224CONFIG_ISA_DMA_API=y
206 225
207# 226#
@@ -250,6 +269,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 269# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 270# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 271# CONFIG_XFRM_MIGRATE is not set
272# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 273# CONFIG_NET_KEY is not set
254CONFIG_INET=y 274CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 275CONFIG_IP_MULTICAST=y
@@ -305,6 +325,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 325#
306# CONFIG_NET_PKTGEN is not set 326# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 327# CONFIG_HAMRADIO is not set
328# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 329# CONFIG_IRDA is not set
309# CONFIG_BT is not set 330# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 331# CONFIG_AF_RXRPC is not set
@@ -350,7 +371,7 @@ CONFIG_BLK_DEV_LOOP=y
350CONFIG_BLK_DEV_RAM=y 371CONFIG_BLK_DEV_RAM=y
351CONFIG_BLK_DEV_RAM_COUNT=16 372CONFIG_BLK_DEV_RAM_COUNT=16
352CONFIG_BLK_DEV_RAM_SIZE=32768 373CONFIG_BLK_DEV_RAM_SIZE=32768
353CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 374# CONFIG_BLK_DEV_XIP is not set
354# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
355# CONFIG_ATA_OVER_ETH is not set 376# CONFIG_ATA_OVER_ETH is not set
356CONFIG_MISC_DEVICES=y 377CONFIG_MISC_DEVICES=y
@@ -358,6 +379,8 @@ CONFIG_MISC_DEVICES=y
358# CONFIG_EEPROM_93CX6 is not set 379# CONFIG_EEPROM_93CX6 is not set
359# CONFIG_SGI_IOC4 is not set 380# CONFIG_SGI_IOC4 is not set
360# CONFIG_TIFM_CORE is not set 381# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set
383CONFIG_HAVE_IDE=y
361# CONFIG_IDE is not set 384# CONFIG_IDE is not set
362 385
363# 386#
@@ -422,6 +445,7 @@ CONFIG_SCSI_LOWLEVEL=y
422# CONFIG_SCSI_IPS is not set 445# CONFIG_SCSI_IPS is not set
423# CONFIG_SCSI_INITIO is not set 446# CONFIG_SCSI_INITIO is not set
424# CONFIG_SCSI_INIA100 is not set 447# CONFIG_SCSI_INIA100 is not set
448# CONFIG_SCSI_MVSAS is not set
425# CONFIG_SCSI_STEX is not set 449# CONFIG_SCSI_STEX is not set
426# CONFIG_SCSI_SYM53C8XX_2 is not set 450# CONFIG_SCSI_SYM53C8XX_2 is not set
427# CONFIG_SCSI_QLOGIC_1280 is not set 451# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -452,7 +476,6 @@ CONFIG_NETDEVICES=y
452# CONFIG_EQUALIZER is not set 476# CONFIG_EQUALIZER is not set
453# CONFIG_TUN is not set 477# CONFIG_TUN is not set
454# CONFIG_VETH is not set 478# CONFIG_VETH is not set
455# CONFIG_IP1000 is not set
456# CONFIG_ARCNET is not set 479# CONFIG_ARCNET is not set
457CONFIG_PHYLIB=y 480CONFIG_PHYLIB=y
458 481
@@ -468,6 +491,7 @@ CONFIG_PHYLIB=y
468# CONFIG_SMSC_PHY is not set 491# CONFIG_SMSC_PHY is not set
469# CONFIG_BROADCOM_PHY is not set 492# CONFIG_BROADCOM_PHY is not set
470CONFIG_ICPLUS_PHY=y 493CONFIG_ICPLUS_PHY=y
494# CONFIG_REALTEK_PHY is not set
471# CONFIG_FIXED_PHY is not set 495# CONFIG_FIXED_PHY is not set
472# CONFIG_MDIO_BITBANG is not set 496# CONFIG_MDIO_BITBANG is not set
473CONFIG_NET_ETHERNET=y 497CONFIG_NET_ETHERNET=y
@@ -476,6 +500,7 @@ CONFIG_MII=y
476# CONFIG_SUNGEM is not set 500# CONFIG_SUNGEM is not set
477# CONFIG_CASSINI is not set 501# CONFIG_CASSINI is not set
478# CONFIG_NET_VENDOR_3COM is not set 502# CONFIG_NET_VENDOR_3COM is not set
503# CONFIG_ENC28J60 is not set
479# CONFIG_NET_TULIP is not set 504# CONFIG_NET_TULIP is not set
480# CONFIG_HP100 is not set 505# CONFIG_HP100 is not set
481# CONFIG_IBM_NEW_EMAC_ZMII is not set 506# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -491,6 +516,9 @@ CONFIG_E1000=y
491# CONFIG_E1000_NAPI is not set 516# CONFIG_E1000_NAPI is not set
492# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 517# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
493# CONFIG_E1000E is not set 518# CONFIG_E1000E is not set
519# CONFIG_E1000E_ENABLED is not set
520# CONFIG_IP1000 is not set
521# CONFIG_IGB is not set
494# CONFIG_NS83820 is not set 522# CONFIG_NS83820 is not set
495# CONFIG_HAMACHI is not set 523# CONFIG_HAMACHI is not set
496# CONFIG_YELLOWFIN is not set 524# CONFIG_YELLOWFIN is not set
@@ -521,6 +549,7 @@ CONFIG_NETDEV_10000=y
521# CONFIG_NIU is not set 549# CONFIG_NIU is not set
522# CONFIG_MLX4_CORE is not set 550# CONFIG_MLX4_CORE is not set
523# CONFIG_TEHUTI is not set 551# CONFIG_TEHUTI is not set
552# CONFIG_BNX2X is not set
524# CONFIG_TR is not set 553# CONFIG_TR is not set
525 554
526# 555#
@@ -543,7 +572,6 @@ CONFIG_NETDEV_10000=y
543# CONFIG_PPP is not set 572# CONFIG_PPP is not set
544# CONFIG_SLIP is not set 573# CONFIG_SLIP is not set
545# CONFIG_NET_FC is not set 574# CONFIG_NET_FC is not set
546# CONFIG_SHAPER is not set
547# CONFIG_NETCONSOLE is not set 575# CONFIG_NETCONSOLE is not set
548# CONFIG_NETPOLL is not set 576# CONFIG_NETPOLL is not set
549# CONFIG_NET_POLL_CONTROLLER is not set 577# CONFIG_NET_POLL_CONTROLLER is not set
@@ -586,6 +614,7 @@ CONFIG_INPUT=y
586# 614#
587# CONFIG_VT is not set 615# CONFIG_VT is not set
588# CONFIG_SERIAL_NONSTANDARD is not set 616# CONFIG_SERIAL_NONSTANDARD is not set
617# CONFIG_NOZOMI is not set
589 618
590# 619#
591# Serial drivers 620# Serial drivers
@@ -605,6 +634,7 @@ CONFIG_SERIAL_CORE=y
605CONFIG_SERIAL_CORE_CONSOLE=y 634CONFIG_SERIAL_CORE_CONSOLE=y
606# CONFIG_SERIAL_JSM is not set 635# CONFIG_SERIAL_JSM is not set
607# CONFIG_SERIAL_OF_PLATFORM is not set 636# CONFIG_SERIAL_OF_PLATFORM is not set
637# CONFIG_SERIAL_QE is not set
608CONFIG_UNIX98_PTYS=y 638CONFIG_UNIX98_PTYS=y
609CONFIG_LEGACY_PTYS=y 639CONFIG_LEGACY_PTYS=y
610CONFIG_LEGACY_PTY_COUNT=256 640CONFIG_LEGACY_PTY_COUNT=256
@@ -660,14 +690,12 @@ CONFIG_I2C_MPC=y
660# 690#
661# Miscellaneous I2C Chip support 691# Miscellaneous I2C Chip support
662# 692#
663# CONFIG_SENSORS_DS1337 is not set
664# CONFIG_SENSORS_DS1374 is not set
665# CONFIG_DS1682 is not set 693# CONFIG_DS1682 is not set
666# CONFIG_SENSORS_EEPROM is not set 694# CONFIG_SENSORS_EEPROM is not set
667# CONFIG_SENSORS_PCF8574 is not set 695# CONFIG_SENSORS_PCF8574 is not set
668# CONFIG_SENSORS_PCA9539 is not set 696# CONFIG_PCF8575 is not set
669# CONFIG_SENSORS_PCF8591 is not set 697# CONFIG_SENSORS_PCF8591 is not set
670# CONFIG_SENSORS_M41T00 is not set 698# CONFIG_TPS65010 is not set
671# CONFIG_SENSORS_MAX6875 is not set 699# CONFIG_SENSORS_MAX6875 is not set
672# CONFIG_SENSORS_TSL2550 is not set 700# CONFIG_SENSORS_TSL2550 is not set
673# CONFIG_I2C_DEBUG_CORE is not set 701# CONFIG_I2C_DEBUG_CORE is not set
@@ -705,6 +733,7 @@ CONFIG_HWMON=y
705# CONFIG_SENSORS_ADM1031 is not set 733# CONFIG_SENSORS_ADM1031 is not set
706# CONFIG_SENSORS_ADM9240 is not set 734# CONFIG_SENSORS_ADM9240 is not set
707# CONFIG_SENSORS_ADT7470 is not set 735# CONFIG_SENSORS_ADT7470 is not set
736# CONFIG_SENSORS_ADT7473 is not set
708# CONFIG_SENSORS_ATXP1 is not set 737# CONFIG_SENSORS_ATXP1 is not set
709# CONFIG_SENSORS_DS1621 is not set 738# CONFIG_SENSORS_DS1621 is not set
710# CONFIG_SENSORS_I5K_AMB is not set 739# CONFIG_SENSORS_I5K_AMB is not set
@@ -735,6 +764,7 @@ CONFIG_HWMON=y
735# CONFIG_SENSORS_SMSC47M1 is not set 764# CONFIG_SENSORS_SMSC47M1 is not set
736# CONFIG_SENSORS_SMSC47M192 is not set 765# CONFIG_SENSORS_SMSC47M192 is not set
737# CONFIG_SENSORS_SMSC47B397 is not set 766# CONFIG_SENSORS_SMSC47B397 is not set
767# CONFIG_SENSORS_ADS7828 is not set
738# CONFIG_SENSORS_THMC50 is not set 768# CONFIG_SENSORS_THMC50 is not set
739# CONFIG_SENSORS_VIA686A is not set 769# CONFIG_SENSORS_VIA686A is not set
740# CONFIG_SENSORS_VT1211 is not set 770# CONFIG_SENSORS_VT1211 is not set
@@ -744,9 +774,11 @@ CONFIG_HWMON=y
744# CONFIG_SENSORS_W83792D is not set 774# CONFIG_SENSORS_W83792D is not set
745# CONFIG_SENSORS_W83793 is not set 775# CONFIG_SENSORS_W83793 is not set
746# CONFIG_SENSORS_W83L785TS is not set 776# CONFIG_SENSORS_W83L785TS is not set
777# CONFIG_SENSORS_W83L786NG is not set
747# CONFIG_SENSORS_W83627HF is not set 778# CONFIG_SENSORS_W83627HF is not set
748# CONFIG_SENSORS_W83627EHF is not set 779# CONFIG_SENSORS_W83627EHF is not set
749# CONFIG_HWMON_DEBUG_CHIP is not set 780# CONFIG_HWMON_DEBUG_CHIP is not set
781# CONFIG_THERMAL is not set
750CONFIG_WATCHDOG=y 782CONFIG_WATCHDOG=y
751# CONFIG_WATCHDOG_NOWAYOUT is not set 783# CONFIG_WATCHDOG_NOWAYOUT is not set
752 784
@@ -826,6 +858,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
826CONFIG_USB_ARCH_HAS_EHCI=y 858CONFIG_USB_ARCH_HAS_EHCI=y
827CONFIG_USB=y 859CONFIG_USB=y
828# CONFIG_USB_DEBUG is not set 860# CONFIG_USB_DEBUG is not set
861# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
829 862
830# 863#
831# Miscellaneous USB options 864# Miscellaneous USB options
@@ -839,9 +872,10 @@ CONFIG_USB_DEVICE_CLASS=y
839# USB Host Controller Drivers 872# USB Host Controller Drivers
840# 873#
841CONFIG_USB_EHCI_HCD=y 874CONFIG_USB_EHCI_HCD=y
842# CONFIG_USB_EHCI_SPLIT_ISO is not set
843# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 875# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
844# CONFIG_USB_EHCI_TT_NEWSCHED is not set 876# CONFIG_USB_EHCI_TT_NEWSCHED is not set
877# CONFIG_USB_EHCI_FSL is not set
878CONFIG_USB_EHCI_HCD_PPC_OF=y
845# CONFIG_USB_ISP116X_HCD is not set 879# CONFIG_USB_ISP116X_HCD is not set
846CONFIG_USB_OHCI_HCD=y 880CONFIG_USB_OHCI_HCD=y
847CONFIG_USB_OHCI_HCD_PPC_OF=y 881CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -892,10 +926,6 @@ CONFIG_USB_MON=y
892# 926#
893# USB port drivers 927# USB port drivers
894# 928#
895
896#
897# USB Serial Converter support
898#
899# CONFIG_USB_SERIAL is not set 929# CONFIG_USB_SERIAL is not set
900 930
901# 931#
@@ -921,14 +951,6 @@ CONFIG_USB_MON=y
921# CONFIG_USB_TRANCEVIBRATOR is not set 951# CONFIG_USB_TRANCEVIBRATOR is not set
922# CONFIG_USB_IOWARRIOR is not set 952# CONFIG_USB_IOWARRIOR is not set
923# CONFIG_USB_TEST is not set 953# CONFIG_USB_TEST is not set
924
925#
926# USB DSL modem support
927#
928
929#
930# USB Gadget Support
931#
932# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
933CONFIG_MMC=y 955CONFIG_MMC=y
934# CONFIG_MMC_DEBUG is not set 956# CONFIG_MMC_DEBUG is not set
@@ -948,10 +970,12 @@ CONFIG_MMC_BLOCK_BOUNCE=y
948# CONFIG_MMC_WBSD is not set 970# CONFIG_MMC_WBSD is not set
949# CONFIG_MMC_TIFM_SD is not set 971# CONFIG_MMC_TIFM_SD is not set
950CONFIG_MMC_SPI=y 972CONFIG_MMC_SPI=y
973# CONFIG_MEMSTICK is not set
951# CONFIG_NEW_LEDS is not set 974# CONFIG_NEW_LEDS is not set
952# CONFIG_INFINIBAND is not set 975# CONFIG_INFINIBAND is not set
953# CONFIG_EDAC is not set 976# CONFIG_EDAC is not set
954# CONFIG_RTC_CLASS is not set 977# CONFIG_RTC_CLASS is not set
978# CONFIG_DMADEVICES is not set
955 979
956# 980#
957# Userspace I/O 981# Userspace I/O
@@ -977,12 +1001,10 @@ CONFIG_FS_MBCACHE=y
977# CONFIG_XFS_FS is not set 1001# CONFIG_XFS_FS is not set
978# CONFIG_GFS2_FS is not set 1002# CONFIG_GFS2_FS is not set
979# CONFIG_OCFS2_FS is not set 1003# CONFIG_OCFS2_FS is not set
980# CONFIG_MINIX_FS is not set 1004CONFIG_DNOTIFY=y
981# CONFIG_ROMFS_FS is not set
982CONFIG_INOTIFY=y 1005CONFIG_INOTIFY=y
983CONFIG_INOTIFY_USER=y 1006CONFIG_INOTIFY_USER=y
984# CONFIG_QUOTA is not set 1007# CONFIG_QUOTA is not set
985CONFIG_DNOTIFY=y
986# CONFIG_AUTOFS_FS is not set 1008# CONFIG_AUTOFS_FS is not set
987# CONFIG_AUTOFS4_FS is not set 1009# CONFIG_AUTOFS4_FS is not set
988# CONFIG_FUSE_FS is not set 1010# CONFIG_FUSE_FS is not set
@@ -1027,8 +1049,10 @@ CONFIG_TMPFS=y
1027# CONFIG_EFS_FS is not set 1049# CONFIG_EFS_FS is not set
1028# CONFIG_CRAMFS is not set 1050# CONFIG_CRAMFS is not set
1029# CONFIG_VXFS_FS is not set 1051# CONFIG_VXFS_FS is not set
1052# CONFIG_MINIX_FS is not set
1030# CONFIG_HPFS_FS is not set 1053# CONFIG_HPFS_FS is not set
1031# CONFIG_QNX4FS_FS is not set 1054# CONFIG_QNX4FS_FS is not set
1055# CONFIG_ROMFS_FS is not set
1032# CONFIG_SYSV_FS is not set 1056# CONFIG_SYSV_FS is not set
1033# CONFIG_UFS_FS is not set 1057# CONFIG_UFS_FS is not set
1034CONFIG_NETWORK_FILESYSTEMS=y 1058CONFIG_NETWORK_FILESYSTEMS=y
@@ -1116,7 +1140,6 @@ CONFIG_NLS_ISO8859_1=y
1116# CONFIG_NLS_KOI8_U is not set 1140# CONFIG_NLS_KOI8_U is not set
1117# CONFIG_NLS_UTF8 is not set 1141# CONFIG_NLS_UTF8 is not set
1118# CONFIG_DLM is not set 1142# CONFIG_DLM is not set
1119# CONFIG_UCC_SLOW is not set
1120CONFIG_UCC_FAST=y 1143CONFIG_UCC_FAST=y
1121CONFIG_UCC=y 1144CONFIG_UCC=y
1122 1145
@@ -1134,7 +1157,6 @@ CONFIG_PLIST=y
1134CONFIG_HAS_IOMEM=y 1157CONFIG_HAS_IOMEM=y
1135CONFIG_HAS_IOPORT=y 1158CONFIG_HAS_IOPORT=y
1136CONFIG_HAS_DMA=y 1159CONFIG_HAS_DMA=y
1137# CONFIG_INSTRUMENTATION is not set
1138 1160
1139# 1161#
1140# Kernel hacking 1162# Kernel hacking
@@ -1148,6 +1170,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1148# CONFIG_HEADERS_CHECK is not set 1170# CONFIG_HEADERS_CHECK is not set
1149# CONFIG_DEBUG_KERNEL is not set 1171# CONFIG_DEBUG_KERNEL is not set
1150# CONFIG_SLUB_DEBUG_ON is not set 1172# CONFIG_SLUB_DEBUG_ON is not set
1173# CONFIG_SLUB_STATS is not set
1151# CONFIG_DEBUG_BUGVERBOSE is not set 1174# CONFIG_DEBUG_BUGVERBOSE is not set
1152# CONFIG_SAMPLES is not set 1175# CONFIG_SAMPLES is not set
1153# CONFIG_PPC_EARLY_DEBUG is not set 1176# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1161,6 +1184,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1161CONFIG_CRYPTO=y 1184CONFIG_CRYPTO=y
1162CONFIG_CRYPTO_ALGAPI=y 1185CONFIG_CRYPTO_ALGAPI=y
1163CONFIG_CRYPTO_BLKCIPHER=y 1186CONFIG_CRYPTO_BLKCIPHER=y
1187# CONFIG_CRYPTO_SEQIV is not set
1164CONFIG_CRYPTO_MANAGER=y 1188CONFIG_CRYPTO_MANAGER=y
1165# CONFIG_CRYPTO_HMAC is not set 1189# CONFIG_CRYPTO_HMAC is not set
1166# CONFIG_CRYPTO_XCBC is not set 1190# CONFIG_CRYPTO_XCBC is not set
@@ -1178,6 +1202,9 @@ CONFIG_CRYPTO_CBC=y
1178CONFIG_CRYPTO_PCBC=m 1202CONFIG_CRYPTO_PCBC=m
1179# CONFIG_CRYPTO_LRW is not set 1203# CONFIG_CRYPTO_LRW is not set
1180# CONFIG_CRYPTO_XTS is not set 1204# CONFIG_CRYPTO_XTS is not set
1205# CONFIG_CRYPTO_CTR is not set
1206# CONFIG_CRYPTO_GCM is not set
1207# CONFIG_CRYPTO_CCM is not set
1181# CONFIG_CRYPTO_CRYPTD is not set 1208# CONFIG_CRYPTO_CRYPTD is not set
1182CONFIG_CRYPTO_DES=y 1209CONFIG_CRYPTO_DES=y
1183# CONFIG_CRYPTO_FCRYPT is not set 1210# CONFIG_CRYPTO_FCRYPT is not set
@@ -1192,12 +1219,15 @@ CONFIG_CRYPTO_DES=y
1192# CONFIG_CRYPTO_KHAZAD is not set 1219# CONFIG_CRYPTO_KHAZAD is not set
1193# CONFIG_CRYPTO_ANUBIS is not set 1220# CONFIG_CRYPTO_ANUBIS is not set
1194# CONFIG_CRYPTO_SEED is not set 1221# CONFIG_CRYPTO_SEED is not set
1222# CONFIG_CRYPTO_SALSA20 is not set
1195# CONFIG_CRYPTO_DEFLATE is not set 1223# CONFIG_CRYPTO_DEFLATE is not set
1196# CONFIG_CRYPTO_MICHAEL_MIC is not set 1224# CONFIG_CRYPTO_MICHAEL_MIC is not set
1197# CONFIG_CRYPTO_CRC32C is not set 1225# CONFIG_CRYPTO_CRC32C is not set
1198# CONFIG_CRYPTO_CAMELLIA is not set 1226# CONFIG_CRYPTO_CAMELLIA is not set
1199# CONFIG_CRYPTO_TEST is not set 1227# CONFIG_CRYPTO_TEST is not set
1200# CONFIG_CRYPTO_AUTHENC is not set 1228# CONFIG_CRYPTO_AUTHENC is not set
1229# CONFIG_CRYPTO_LZO is not set
1201CONFIG_CRYPTO_HW=y 1230CONFIG_CRYPTO_HW=y
1231# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1202# CONFIG_PPC_CLOCK is not set 1232# CONFIG_PPC_CLOCK is not set
1203CONFIG_PPC_LIB_RHEAP=y 1233CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc834x_itx_defconfig b/arch/powerpc/configs/mpc834x_itx_defconfig
index 2fbe4e5344f7..e1de399a7bdd 100644
--- a/arch/powerpc/configs/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/mpc834x_itx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:37 2007 4# Mon Mar 24 08:48:17 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,23 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
144# CONFIG_MPC834x_MDS is not set 160# CONFIG_MPC834x_MDS is not set
145CONFIG_MPC834x_ITX=y 161CONFIG_MPC834x_ITX=y
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
147CONFIG_MPC834x=y 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
166CONFIG_PPC_MPC834x=y
167CONFIG_IPIC=y
148# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -155,7 +175,6 @@ CONFIG_MPC834x=y
155# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set
159# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
160 179
161# 180#
@@ -171,12 +190,16 @@ CONFIG_HZ_250=y
171# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
172# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
173CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
174CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
175# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
176# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
177CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
178# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
179CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
180CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
181CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
182CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -195,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
195CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
196# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
197# CONFIG_PM is not set 220# CONFIG_PM is not set
198CONFIG_SUSPEND_UP_POSSIBLE=y
199CONFIG_HIBERNATION_UP_POSSIBLE=y
200CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE=""
203CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
204 223
205# 224#
@@ -248,6 +267,7 @@ CONFIG_XFRM=y
248# CONFIG_XFRM_USER is not set 267# CONFIG_XFRM_USER is not set
249# CONFIG_XFRM_SUB_POLICY is not set 268# CONFIG_XFRM_SUB_POLICY is not set
250# CONFIG_XFRM_MIGRATE is not set 269# CONFIG_XFRM_MIGRATE is not set
270# CONFIG_XFRM_STATISTICS is not set
251# CONFIG_NET_KEY is not set 271# CONFIG_NET_KEY is not set
252CONFIG_INET=y 272CONFIG_INET=y
253CONFIG_IP_MULTICAST=y 273CONFIG_IP_MULTICAST=y
@@ -303,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
303# 323#
304# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
305# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
306# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
307# CONFIG_BT is not set 328# CONFIG_BT is not set
308# CONFIG_AF_RXRPC is not set 329# CONFIG_AF_RXRPC is not set
@@ -427,7 +448,7 @@ CONFIG_BLK_DEV_LOOP=y
427CONFIG_BLK_DEV_RAM=y 448CONFIG_BLK_DEV_RAM=y
428CONFIG_BLK_DEV_RAM_COUNT=16 449CONFIG_BLK_DEV_RAM_COUNT=16
429CONFIG_BLK_DEV_RAM_SIZE=32768 450CONFIG_BLK_DEV_RAM_SIZE=32768
430CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 451# CONFIG_BLK_DEV_XIP is not set
431# CONFIG_CDROM_PKTCDVD is not set 452# CONFIG_CDROM_PKTCDVD is not set
432# CONFIG_ATA_OVER_ETH is not set 453# CONFIG_ATA_OVER_ETH is not set
433CONFIG_MISC_DEVICES=y 454CONFIG_MISC_DEVICES=y
@@ -435,6 +456,8 @@ CONFIG_MISC_DEVICES=y
435# CONFIG_EEPROM_93CX6 is not set 456# CONFIG_EEPROM_93CX6 is not set
436# CONFIG_SGI_IOC4 is not set 457# CONFIG_SGI_IOC4 is not set
437# CONFIG_TIFM_CORE is not set 458# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set
460CONFIG_HAVE_IDE=y
438CONFIG_IDE=y 461CONFIG_IDE=y
439CONFIG_IDE_MAX_HWIFS=4 462CONFIG_IDE_MAX_HWIFS=4
440# CONFIG_BLK_DEV_IDE is not set 463# CONFIG_BLK_DEV_IDE is not set
@@ -503,6 +526,7 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_SCSI_IPS is not set 526# CONFIG_SCSI_IPS is not set
504# CONFIG_SCSI_INITIO is not set 527# CONFIG_SCSI_INITIO is not set
505# CONFIG_SCSI_INIA100 is not set 528# CONFIG_SCSI_INIA100 is not set
529# CONFIG_SCSI_MVSAS is not set
506# CONFIG_SCSI_STEX is not set 530# CONFIG_SCSI_STEX is not set
507# CONFIG_SCSI_SYM53C8XX_2 is not set 531# CONFIG_SCSI_SYM53C8XX_2 is not set
508# CONFIG_SCSI_IPR is not set 532# CONFIG_SCSI_IPR is not set
@@ -533,6 +557,7 @@ CONFIG_SATA_SIL=y
533# CONFIG_SATA_VIA is not set 557# CONFIG_SATA_VIA is not set
534# CONFIG_SATA_VITESSE is not set 558# CONFIG_SATA_VITESSE is not set
535# CONFIG_SATA_INIC162X is not set 559# CONFIG_SATA_INIC162X is not set
560# CONFIG_SATA_FSL is not set
536# CONFIG_PATA_ALI is not set 561# CONFIG_PATA_ALI is not set
537# CONFIG_PATA_AMD is not set 562# CONFIG_PATA_AMD is not set
538# CONFIG_PATA_ARTOP is not set 563# CONFIG_PATA_ARTOP is not set
@@ -556,6 +581,7 @@ CONFIG_SATA_SIL=y
556# CONFIG_PATA_MPIIX is not set 581# CONFIG_PATA_MPIIX is not set
557# CONFIG_PATA_OLDPIIX is not set 582# CONFIG_PATA_OLDPIIX is not set
558# CONFIG_PATA_NETCELL is not set 583# CONFIG_PATA_NETCELL is not set
584# CONFIG_PATA_NINJA32 is not set
559# CONFIG_PATA_NS87410 is not set 585# CONFIG_PATA_NS87410 is not set
560# CONFIG_PATA_NS87415 is not set 586# CONFIG_PATA_NS87415 is not set
561# CONFIG_PATA_OPTI is not set 587# CONFIG_PATA_OPTI is not set
@@ -599,7 +625,6 @@ CONFIG_NETDEVICES=y
599# CONFIG_EQUALIZER is not set 625# CONFIG_EQUALIZER is not set
600# CONFIG_TUN is not set 626# CONFIG_TUN is not set
601# CONFIG_VETH is not set 627# CONFIG_VETH is not set
602# CONFIG_IP1000 is not set
603# CONFIG_ARCNET is not set 628# CONFIG_ARCNET is not set
604CONFIG_PHYLIB=y 629CONFIG_PHYLIB=y
605 630
@@ -615,6 +640,7 @@ CONFIG_CICADA_PHY=y
615# CONFIG_SMSC_PHY is not set 640# CONFIG_SMSC_PHY is not set
616# CONFIG_BROADCOM_PHY is not set 641# CONFIG_BROADCOM_PHY is not set
617# CONFIG_ICPLUS_PHY is not set 642# CONFIG_ICPLUS_PHY is not set
643# CONFIG_REALTEK_PHY is not set
618# CONFIG_FIXED_PHY is not set 644# CONFIG_FIXED_PHY is not set
619# CONFIG_MDIO_BITBANG is not set 645# CONFIG_MDIO_BITBANG is not set
620# CONFIG_NET_ETHERNET is not set 646# CONFIG_NET_ETHERNET is not set
@@ -623,6 +649,9 @@ CONFIG_NETDEV_1000=y
623# CONFIG_DL2K is not set 649# CONFIG_DL2K is not set
624# CONFIG_E1000 is not set 650# CONFIG_E1000 is not set
625# CONFIG_E1000E is not set 651# CONFIG_E1000E is not set
652# CONFIG_E1000E_ENABLED is not set
653# CONFIG_IP1000 is not set
654# CONFIG_IGB is not set
626# CONFIG_NS83820 is not set 655# CONFIG_NS83820 is not set
627# CONFIG_HAMACHI is not set 656# CONFIG_HAMACHI is not set
628# CONFIG_YELLOWFIN is not set 657# CONFIG_YELLOWFIN is not set
@@ -649,6 +678,7 @@ CONFIG_NETDEV_10000=y
649# CONFIG_NIU is not set 678# CONFIG_NIU is not set
650# CONFIG_MLX4_CORE is not set 679# CONFIG_MLX4_CORE is not set
651# CONFIG_TEHUTI is not set 680# CONFIG_TEHUTI is not set
681# CONFIG_BNX2X is not set
652# CONFIG_TR is not set 682# CONFIG_TR is not set
653 683
654# 684#
@@ -671,7 +701,6 @@ CONFIG_NETDEV_10000=y
671# CONFIG_PPP is not set 701# CONFIG_PPP is not set
672# CONFIG_SLIP is not set 702# CONFIG_SLIP is not set
673# CONFIG_NET_FC is not set 703# CONFIG_NET_FC is not set
674# CONFIG_SHAPER is not set
675# CONFIG_NETCONSOLE is not set 704# CONFIG_NETCONSOLE is not set
676# CONFIG_NETPOLL is not set 705# CONFIG_NETPOLL is not set
677# CONFIG_NET_POLL_CONTROLLER is not set 706# CONFIG_NET_POLL_CONTROLLER is not set
@@ -694,6 +723,7 @@ CONFIG_NETDEV_10000=y
694# 723#
695# CONFIG_VT is not set 724# CONFIG_VT is not set
696# CONFIG_SERIAL_NONSTANDARD is not set 725# CONFIG_SERIAL_NONSTANDARD is not set
726# CONFIG_NOZOMI is not set
697 727
698# 728#
699# Serial drivers 729# Serial drivers
@@ -767,14 +797,12 @@ CONFIG_I2C_MPC=y
767# 797#
768# Miscellaneous I2C Chip support 798# Miscellaneous I2C Chip support
769# 799#
770# CONFIG_SENSORS_DS1337 is not set
771# CONFIG_SENSORS_DS1374 is not set
772# CONFIG_DS1682 is not set 800# CONFIG_DS1682 is not set
773# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_SENSORS_EEPROM is not set
774CONFIG_SENSORS_PCF8574=y 802CONFIG_SENSORS_PCF8574=y
775# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_PCF8575 is not set
776# CONFIG_SENSORS_PCF8591 is not set 804# CONFIG_SENSORS_PCF8591 is not set
777# CONFIG_SENSORS_M41T00 is not set 805# CONFIG_TPS65010 is not set
778# CONFIG_SENSORS_MAX6875 is not set 806# CONFIG_SENSORS_MAX6875 is not set
779# CONFIG_SENSORS_TSL2550 is not set 807# CONFIG_SENSORS_TSL2550 is not set
780# CONFIG_I2C_DEBUG_CORE is not set 808# CONFIG_I2C_DEBUG_CORE is not set
@@ -803,6 +831,7 @@ CONFIG_SPI_MPC83xx=y
803# CONFIG_W1 is not set 831# CONFIG_W1 is not set
804# CONFIG_POWER_SUPPLY is not set 832# CONFIG_POWER_SUPPLY is not set
805# CONFIG_HWMON is not set 833# CONFIG_HWMON is not set
834# CONFIG_THERMAL is not set
806CONFIG_WATCHDOG=y 835CONFIG_WATCHDOG=y
807# CONFIG_WATCHDOG_NOWAYOUT is not set 836# CONFIG_WATCHDOG_NOWAYOUT is not set
808 837
@@ -867,6 +896,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
867CONFIG_USB_ARCH_HAS_EHCI=y 896CONFIG_USB_ARCH_HAS_EHCI=y
868CONFIG_USB=y 897CONFIG_USB=y
869# CONFIG_USB_DEBUG is not set 898# CONFIG_USB_DEBUG is not set
899# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
870 900
871# 901#
872# Miscellaneous USB options 902# Miscellaneous USB options
@@ -880,10 +910,10 @@ CONFIG_USB_DEVICE_CLASS=y
880# USB Host Controller Drivers 910# USB Host Controller Drivers
881# 911#
882CONFIG_USB_EHCI_HCD=y 912CONFIG_USB_EHCI_HCD=y
883# CONFIG_USB_EHCI_SPLIT_ISO is not set
884CONFIG_USB_EHCI_ROOT_HUB_TT=y 913CONFIG_USB_EHCI_ROOT_HUB_TT=y
885# CONFIG_USB_EHCI_TT_NEWSCHED is not set 914# CONFIG_USB_EHCI_TT_NEWSCHED is not set
886CONFIG_USB_EHCI_FSL=y 915CONFIG_USB_EHCI_FSL=y
916CONFIG_USB_EHCI_HCD_PPC_OF=y
887# CONFIG_USB_ISP116X_HCD is not set 917# CONFIG_USB_ISP116X_HCD is not set
888# CONFIG_USB_OHCI_HCD is not set 918# CONFIG_USB_OHCI_HCD is not set
889CONFIG_USB_UHCI_HCD=y 919CONFIG_USB_UHCI_HCD=y
@@ -927,10 +957,6 @@ CONFIG_USB_MON=y
927# 957#
928# USB port drivers 958# USB port drivers
929# 959#
930
931#
932# USB Serial Converter support
933#
934# CONFIG_USB_SERIAL is not set 960# CONFIG_USB_SERIAL is not set
935 961
936# 962#
@@ -956,16 +982,9 @@ CONFIG_USB_MON=y
956# CONFIG_USB_TRANCEVIBRATOR is not set 982# CONFIG_USB_TRANCEVIBRATOR is not set
957# CONFIG_USB_IOWARRIOR is not set 983# CONFIG_USB_IOWARRIOR is not set
958# CONFIG_USB_TEST is not set 984# CONFIG_USB_TEST is not set
959
960#
961# USB DSL modem support
962#
963
964#
965# USB Gadget Support
966#
967# CONFIG_USB_GADGET is not set 985# CONFIG_USB_GADGET is not set
968# CONFIG_MMC is not set 986# CONFIG_MMC is not set
987# CONFIG_MEMSTICK is not set
969# CONFIG_NEW_LEDS is not set 988# CONFIG_NEW_LEDS is not set
970# CONFIG_INFINIBAND is not set 989# CONFIG_INFINIBAND is not set
971# CONFIG_EDAC is not set 990# CONFIG_EDAC is not set
@@ -997,20 +1016,23 @@ CONFIG_RTC_DRV_DS1307=y
997# CONFIG_RTC_DRV_PCF8563 is not set 1016# CONFIG_RTC_DRV_PCF8563 is not set
998# CONFIG_RTC_DRV_PCF8583 is not set 1017# CONFIG_RTC_DRV_PCF8583 is not set
999# CONFIG_RTC_DRV_M41T80 is not set 1018# CONFIG_RTC_DRV_M41T80 is not set
1019# CONFIG_RTC_DRV_S35390A is not set
1000 1020
1001# 1021#
1002# SPI RTC drivers 1022# SPI RTC drivers
1003# 1023#
1004# CONFIG_RTC_DRV_RS5C348 is not set
1005# CONFIG_RTC_DRV_MAX6902 is not set 1024# CONFIG_RTC_DRV_MAX6902 is not set
1025# CONFIG_RTC_DRV_R9701 is not set
1026# CONFIG_RTC_DRV_RS5C348 is not set
1006 1027
1007# 1028#
1008# Platform RTC drivers 1029# Platform RTC drivers
1009# 1030#
1010# CONFIG_RTC_DRV_CMOS is not set 1031# CONFIG_RTC_DRV_CMOS is not set
1032# CONFIG_RTC_DRV_DS1511 is not set
1011# CONFIG_RTC_DRV_DS1553 is not set 1033# CONFIG_RTC_DRV_DS1553 is not set
1012# CONFIG_RTC_DRV_STK17TA8 is not set
1013# CONFIG_RTC_DRV_DS1742 is not set 1034# CONFIG_RTC_DRV_DS1742 is not set
1035# CONFIG_RTC_DRV_STK17TA8 is not set
1014# CONFIG_RTC_DRV_M48T86 is not set 1036# CONFIG_RTC_DRV_M48T86 is not set
1015# CONFIG_RTC_DRV_M48T59 is not set 1037# CONFIG_RTC_DRV_M48T59 is not set
1016# CONFIG_RTC_DRV_V3020 is not set 1038# CONFIG_RTC_DRV_V3020 is not set
@@ -1018,6 +1040,7 @@ CONFIG_RTC_DRV_DS1307=y
1018# 1040#
1019# on-CPU RTC drivers 1041# on-CPU RTC drivers
1020# 1042#
1043# CONFIG_DMADEVICES is not set
1021 1044
1022# 1045#
1023# Userspace I/O 1046# Userspace I/O
@@ -1043,12 +1066,10 @@ CONFIG_FS_MBCACHE=y
1043# CONFIG_XFS_FS is not set 1066# CONFIG_XFS_FS is not set
1044# CONFIG_GFS2_FS is not set 1067# CONFIG_GFS2_FS is not set
1045# CONFIG_OCFS2_FS is not set 1068# CONFIG_OCFS2_FS is not set
1046# CONFIG_MINIX_FS is not set 1069CONFIG_DNOTIFY=y
1047# CONFIG_ROMFS_FS is not set
1048CONFIG_INOTIFY=y 1070CONFIG_INOTIFY=y
1049CONFIG_INOTIFY_USER=y 1071CONFIG_INOTIFY_USER=y
1050# CONFIG_QUOTA is not set 1072# CONFIG_QUOTA is not set
1051CONFIG_DNOTIFY=y
1052# CONFIG_AUTOFS_FS is not set 1073# CONFIG_AUTOFS_FS is not set
1053# CONFIG_AUTOFS4_FS is not set 1074# CONFIG_AUTOFS4_FS is not set
1054# CONFIG_FUSE_FS is not set 1075# CONFIG_FUSE_FS is not set
@@ -1094,8 +1115,10 @@ CONFIG_TMPFS=y
1094# CONFIG_JFFS2_FS is not set 1115# CONFIG_JFFS2_FS is not set
1095# CONFIG_CRAMFS is not set 1116# CONFIG_CRAMFS is not set
1096# CONFIG_VXFS_FS is not set 1117# CONFIG_VXFS_FS is not set
1118# CONFIG_MINIX_FS is not set
1097# CONFIG_HPFS_FS is not set 1119# CONFIG_HPFS_FS is not set
1098# CONFIG_QNX4FS_FS is not set 1120# CONFIG_QNX4FS_FS is not set
1121# CONFIG_ROMFS_FS is not set
1099# CONFIG_SYSV_FS is not set 1122# CONFIG_SYSV_FS is not set
1100# CONFIG_UFS_FS is not set 1123# CONFIG_UFS_FS is not set
1101CONFIG_NETWORK_FILESYSTEMS=y 1124CONFIG_NETWORK_FILESYSTEMS=y
@@ -1182,7 +1205,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1182# CONFIG_NLS_KOI8_U is not set 1205# CONFIG_NLS_KOI8_U is not set
1183# CONFIG_NLS_UTF8 is not set 1206# CONFIG_NLS_UTF8 is not set
1184# CONFIG_DLM is not set 1207# CONFIG_DLM is not set
1185# CONFIG_UCC_SLOW is not set
1186 1208
1187# 1209#
1188# Library routines 1210# Library routines
@@ -1198,7 +1220,6 @@ CONFIG_PLIST=y
1198CONFIG_HAS_IOMEM=y 1220CONFIG_HAS_IOMEM=y
1199CONFIG_HAS_IOPORT=y 1221CONFIG_HAS_IOPORT=y
1200CONFIG_HAS_DMA=y 1222CONFIG_HAS_DMA=y
1201# CONFIG_INSTRUMENTATION is not set
1202 1223
1203# 1224#
1204# Kernel hacking 1225# Kernel hacking
@@ -1212,6 +1233,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1212# CONFIG_HEADERS_CHECK is not set 1233# CONFIG_HEADERS_CHECK is not set
1213# CONFIG_DEBUG_KERNEL is not set 1234# CONFIG_DEBUG_KERNEL is not set
1214# CONFIG_SLUB_DEBUG_ON is not set 1235# CONFIG_SLUB_DEBUG_ON is not set
1236# CONFIG_SLUB_STATS is not set
1215# CONFIG_DEBUG_BUGVERBOSE is not set 1237# CONFIG_DEBUG_BUGVERBOSE is not set
1216# CONFIG_SAMPLES is not set 1238# CONFIG_SAMPLES is not set
1217# CONFIG_PPC_EARLY_DEBUG is not set 1239# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1225,6 +1247,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1225CONFIG_CRYPTO=y 1247CONFIG_CRYPTO=y
1226CONFIG_CRYPTO_ALGAPI=y 1248CONFIG_CRYPTO_ALGAPI=y
1227CONFIG_CRYPTO_BLKCIPHER=y 1249CONFIG_CRYPTO_BLKCIPHER=y
1250# CONFIG_CRYPTO_SEQIV is not set
1228CONFIG_CRYPTO_MANAGER=y 1251CONFIG_CRYPTO_MANAGER=y
1229# CONFIG_CRYPTO_HMAC is not set 1252# CONFIG_CRYPTO_HMAC is not set
1230# CONFIG_CRYPTO_XCBC is not set 1253# CONFIG_CRYPTO_XCBC is not set
@@ -1242,6 +1265,9 @@ CONFIG_CRYPTO_CBC=y
1242CONFIG_CRYPTO_PCBC=m 1265CONFIG_CRYPTO_PCBC=m
1243# CONFIG_CRYPTO_LRW is not set 1266# CONFIG_CRYPTO_LRW is not set
1244# CONFIG_CRYPTO_XTS is not set 1267# CONFIG_CRYPTO_XTS is not set
1268# CONFIG_CRYPTO_CTR is not set
1269# CONFIG_CRYPTO_GCM is not set
1270# CONFIG_CRYPTO_CCM is not set
1245# CONFIG_CRYPTO_CRYPTD is not set 1271# CONFIG_CRYPTO_CRYPTD is not set
1246CONFIG_CRYPTO_DES=y 1272CONFIG_CRYPTO_DES=y
1247# CONFIG_CRYPTO_FCRYPT is not set 1273# CONFIG_CRYPTO_FCRYPT is not set
@@ -1256,11 +1282,14 @@ CONFIG_CRYPTO_DES=y
1256# CONFIG_CRYPTO_KHAZAD is not set 1282# CONFIG_CRYPTO_KHAZAD is not set
1257# CONFIG_CRYPTO_ANUBIS is not set 1283# CONFIG_CRYPTO_ANUBIS is not set
1258# CONFIG_CRYPTO_SEED is not set 1284# CONFIG_CRYPTO_SEED is not set
1285# CONFIG_CRYPTO_SALSA20 is not set
1259# CONFIG_CRYPTO_DEFLATE is not set 1286# CONFIG_CRYPTO_DEFLATE is not set
1260# CONFIG_CRYPTO_MICHAEL_MIC is not set 1287# CONFIG_CRYPTO_MICHAEL_MIC is not set
1261# CONFIG_CRYPTO_CRC32C is not set 1288# CONFIG_CRYPTO_CRC32C is not set
1262# CONFIG_CRYPTO_CAMELLIA is not set 1289# CONFIG_CRYPTO_CAMELLIA is not set
1263# CONFIG_CRYPTO_TEST is not set 1290# CONFIG_CRYPTO_TEST is not set
1264# CONFIG_CRYPTO_AUTHENC is not set 1291# CONFIG_CRYPTO_AUTHENC is not set
1292# CONFIG_CRYPTO_LZO is not set
1265CONFIG_CRYPTO_HW=y 1293CONFIG_CRYPTO_HW=y
1294# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1266# CONFIG_PPC_CLOCK is not set 1295# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc834x_itxgp_defconfig b/arch/powerpc/configs/mpc834x_itxgp_defconfig
index 67cb09cc3ace..b4e39cf82a8c 100644
--- a/arch/powerpc/configs/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/mpc834x_itxgp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:39 2007 4# Mon Mar 24 08:48:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,23 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
144# CONFIG_MPC834x_MDS is not set 160# CONFIG_MPC834x_MDS is not set
145CONFIG_MPC834x_ITX=y 161CONFIG_MPC834x_ITX=y
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
147CONFIG_MPC834x=y 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
166CONFIG_PPC_MPC834x=y
167CONFIG_IPIC=y
148# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -155,7 +175,6 @@ CONFIG_MPC834x=y
155# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set
159# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
160 179
161# 180#
@@ -171,12 +190,16 @@ CONFIG_HZ_250=y
171# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
172# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
173CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
174CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
175# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
176# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
177CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
178# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
179CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
180CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
181CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
182CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -195,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
195CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
196# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
197# CONFIG_PM is not set 220# CONFIG_PM is not set
198CONFIG_SUSPEND_UP_POSSIBLE=y
199CONFIG_HIBERNATION_UP_POSSIBLE=y
200CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE=""
203CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
204 223
205# 224#
@@ -248,6 +267,7 @@ CONFIG_XFRM=y
248# CONFIG_XFRM_USER is not set 267# CONFIG_XFRM_USER is not set
249# CONFIG_XFRM_SUB_POLICY is not set 268# CONFIG_XFRM_SUB_POLICY is not set
250# CONFIG_XFRM_MIGRATE is not set 269# CONFIG_XFRM_MIGRATE is not set
270# CONFIG_XFRM_STATISTICS is not set
251# CONFIG_NET_KEY is not set 271# CONFIG_NET_KEY is not set
252CONFIG_INET=y 272CONFIG_INET=y
253CONFIG_IP_MULTICAST=y 273CONFIG_IP_MULTICAST=y
@@ -303,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
303# 323#
304# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
305# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
306# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
307# CONFIG_BT is not set 328# CONFIG_BT is not set
308# CONFIG_AF_RXRPC is not set 329# CONFIG_AF_RXRPC is not set
@@ -427,7 +448,7 @@ CONFIG_BLK_DEV_LOOP=y
427CONFIG_BLK_DEV_RAM=y 448CONFIG_BLK_DEV_RAM=y
428CONFIG_BLK_DEV_RAM_COUNT=16 449CONFIG_BLK_DEV_RAM_COUNT=16
429CONFIG_BLK_DEV_RAM_SIZE=32768 450CONFIG_BLK_DEV_RAM_SIZE=32768
430CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 451# CONFIG_BLK_DEV_XIP is not set
431# CONFIG_CDROM_PKTCDVD is not set 452# CONFIG_CDROM_PKTCDVD is not set
432# CONFIG_ATA_OVER_ETH is not set 453# CONFIG_ATA_OVER_ETH is not set
433CONFIG_MISC_DEVICES=y 454CONFIG_MISC_DEVICES=y
@@ -435,6 +456,8 @@ CONFIG_MISC_DEVICES=y
435# CONFIG_EEPROM_93CX6 is not set 456# CONFIG_EEPROM_93CX6 is not set
436# CONFIG_SGI_IOC4 is not set 457# CONFIG_SGI_IOC4 is not set
437# CONFIG_TIFM_CORE is not set 458# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set
460CONFIG_HAVE_IDE=y
438# CONFIG_IDE is not set 461# CONFIG_IDE is not set
439 462
440# 463#
@@ -499,6 +522,7 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_IPS is not set 522# CONFIG_SCSI_IPS is not set
500# CONFIG_SCSI_INITIO is not set 523# CONFIG_SCSI_INITIO is not set
501# CONFIG_SCSI_INIA100 is not set 524# CONFIG_SCSI_INIA100 is not set
525# CONFIG_SCSI_MVSAS is not set
502# CONFIG_SCSI_STEX is not set 526# CONFIG_SCSI_STEX is not set
503# CONFIG_SCSI_SYM53C8XX_2 is not set 527# CONFIG_SCSI_SYM53C8XX_2 is not set
504# CONFIG_SCSI_QLOGIC_1280 is not set 528# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -529,7 +553,6 @@ CONFIG_NETDEVICES=y
529# CONFIG_EQUALIZER is not set 553# CONFIG_EQUALIZER is not set
530# CONFIG_TUN is not set 554# CONFIG_TUN is not set
531# CONFIG_VETH is not set 555# CONFIG_VETH is not set
532# CONFIG_IP1000 is not set
533# CONFIG_ARCNET is not set 556# CONFIG_ARCNET is not set
534CONFIG_PHYLIB=y 557CONFIG_PHYLIB=y
535 558
@@ -545,6 +568,7 @@ CONFIG_CICADA_PHY=y
545# CONFIG_SMSC_PHY is not set 568# CONFIG_SMSC_PHY is not set
546# CONFIG_BROADCOM_PHY is not set 569# CONFIG_BROADCOM_PHY is not set
547# CONFIG_ICPLUS_PHY is not set 570# CONFIG_ICPLUS_PHY is not set
571# CONFIG_REALTEK_PHY is not set
548# CONFIG_FIXED_PHY is not set 572# CONFIG_FIXED_PHY is not set
549# CONFIG_MDIO_BITBANG is not set 573# CONFIG_MDIO_BITBANG is not set
550# CONFIG_NET_ETHERNET is not set 574# CONFIG_NET_ETHERNET is not set
@@ -553,6 +577,9 @@ CONFIG_NETDEV_1000=y
553# CONFIG_DL2K is not set 577# CONFIG_DL2K is not set
554# CONFIG_E1000 is not set 578# CONFIG_E1000 is not set
555# CONFIG_E1000E is not set 579# CONFIG_E1000E is not set
580# CONFIG_E1000E_ENABLED is not set
581# CONFIG_IP1000 is not set
582# CONFIG_IGB is not set
556# CONFIG_NS83820 is not set 583# CONFIG_NS83820 is not set
557# CONFIG_HAMACHI is not set 584# CONFIG_HAMACHI is not set
558# CONFIG_YELLOWFIN is not set 585# CONFIG_YELLOWFIN is not set
@@ -579,6 +606,7 @@ CONFIG_NETDEV_10000=y
579# CONFIG_NIU is not set 606# CONFIG_NIU is not set
580# CONFIG_MLX4_CORE is not set 607# CONFIG_MLX4_CORE is not set
581# CONFIG_TEHUTI is not set 608# CONFIG_TEHUTI is not set
609# CONFIG_BNX2X is not set
582# CONFIG_TR is not set 610# CONFIG_TR is not set
583 611
584# 612#
@@ -601,7 +629,6 @@ CONFIG_NETDEV_10000=y
601# CONFIG_PPP is not set 629# CONFIG_PPP is not set
602# CONFIG_SLIP is not set 630# CONFIG_SLIP is not set
603# CONFIG_NET_FC is not set 631# CONFIG_NET_FC is not set
604# CONFIG_SHAPER is not set
605# CONFIG_NETCONSOLE is not set 632# CONFIG_NETCONSOLE is not set
606# CONFIG_NETPOLL is not set 633# CONFIG_NETPOLL is not set
607# CONFIG_NET_POLL_CONTROLLER is not set 634# CONFIG_NET_POLL_CONTROLLER is not set
@@ -624,6 +651,7 @@ CONFIG_NETDEV_10000=y
624# 651#
625# CONFIG_VT is not set 652# CONFIG_VT is not set
626# CONFIG_SERIAL_NONSTANDARD is not set 653# CONFIG_SERIAL_NONSTANDARD is not set
654# CONFIG_NOZOMI is not set
627 655
628# 656#
629# Serial drivers 657# Serial drivers
@@ -697,14 +725,12 @@ CONFIG_I2C_MPC=y
697# 725#
698# Miscellaneous I2C Chip support 726# Miscellaneous I2C Chip support
699# 727#
700# CONFIG_SENSORS_DS1337 is not set
701# CONFIG_SENSORS_DS1374 is not set
702# CONFIG_DS1682 is not set 728# CONFIG_DS1682 is not set
703# CONFIG_SENSORS_EEPROM is not set 729# CONFIG_SENSORS_EEPROM is not set
704CONFIG_SENSORS_PCF8574=y 730CONFIG_SENSORS_PCF8574=y
705# CONFIG_SENSORS_PCA9539 is not set 731# CONFIG_PCF8575 is not set
706# CONFIG_SENSORS_PCF8591 is not set 732# CONFIG_SENSORS_PCF8591 is not set
707# CONFIG_SENSORS_M41T00 is not set 733# CONFIG_TPS65010 is not set
708# CONFIG_SENSORS_MAX6875 is not set 734# CONFIG_SENSORS_MAX6875 is not set
709# CONFIG_SENSORS_TSL2550 is not set 735# CONFIG_SENSORS_TSL2550 is not set
710# CONFIG_I2C_DEBUG_CORE is not set 736# CONFIG_I2C_DEBUG_CORE is not set
@@ -733,6 +759,7 @@ CONFIG_SPI_MPC83xx=y
733# CONFIG_W1 is not set 759# CONFIG_W1 is not set
734# CONFIG_POWER_SUPPLY is not set 760# CONFIG_POWER_SUPPLY is not set
735# CONFIG_HWMON is not set 761# CONFIG_HWMON is not set
762# CONFIG_THERMAL is not set
736CONFIG_WATCHDOG=y 763CONFIG_WATCHDOG=y
737# CONFIG_WATCHDOG_NOWAYOUT is not set 764# CONFIG_WATCHDOG_NOWAYOUT is not set
738 765
@@ -797,6 +824,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
797CONFIG_USB_ARCH_HAS_EHCI=y 824CONFIG_USB_ARCH_HAS_EHCI=y
798CONFIG_USB=y 825CONFIG_USB=y
799# CONFIG_USB_DEBUG is not set 826# CONFIG_USB_DEBUG is not set
827# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
800 828
801# 829#
802# Miscellaneous USB options 830# Miscellaneous USB options
@@ -810,10 +838,10 @@ CONFIG_USB_DEVICE_CLASS=y
810# USB Host Controller Drivers 838# USB Host Controller Drivers
811# 839#
812CONFIG_USB_EHCI_HCD=y 840CONFIG_USB_EHCI_HCD=y
813# CONFIG_USB_EHCI_SPLIT_ISO is not set
814CONFIG_USB_EHCI_ROOT_HUB_TT=y 841CONFIG_USB_EHCI_ROOT_HUB_TT=y
815# CONFIG_USB_EHCI_TT_NEWSCHED is not set 842# CONFIG_USB_EHCI_TT_NEWSCHED is not set
816CONFIG_USB_EHCI_FSL=y 843CONFIG_USB_EHCI_FSL=y
844CONFIG_USB_EHCI_HCD_PPC_OF=y
817# CONFIG_USB_ISP116X_HCD is not set 845# CONFIG_USB_ISP116X_HCD is not set
818# CONFIG_USB_OHCI_HCD is not set 846# CONFIG_USB_OHCI_HCD is not set
819CONFIG_USB_UHCI_HCD=y 847CONFIG_USB_UHCI_HCD=y
@@ -857,10 +885,6 @@ CONFIG_USB_MON=y
857# 885#
858# USB port drivers 886# USB port drivers
859# 887#
860
861#
862# USB Serial Converter support
863#
864# CONFIG_USB_SERIAL is not set 888# CONFIG_USB_SERIAL is not set
865 889
866# 890#
@@ -885,16 +909,9 @@ CONFIG_USB_MON=y
885# CONFIG_USB_LD is not set 909# CONFIG_USB_LD is not set
886# CONFIG_USB_TRANCEVIBRATOR is not set 910# CONFIG_USB_TRANCEVIBRATOR is not set
887# CONFIG_USB_IOWARRIOR is not set 911# CONFIG_USB_IOWARRIOR is not set
888
889#
890# USB DSL modem support
891#
892
893#
894# USB Gadget Support
895#
896# CONFIG_USB_GADGET is not set 912# CONFIG_USB_GADGET is not set
897# CONFIG_MMC is not set 913# CONFIG_MMC is not set
914# CONFIG_MEMSTICK is not set
898# CONFIG_NEW_LEDS is not set 915# CONFIG_NEW_LEDS is not set
899# CONFIG_INFINIBAND is not set 916# CONFIG_INFINIBAND is not set
900# CONFIG_EDAC is not set 917# CONFIG_EDAC is not set
@@ -926,20 +943,23 @@ CONFIG_RTC_DRV_DS1307=y
926# CONFIG_RTC_DRV_PCF8563 is not set 943# CONFIG_RTC_DRV_PCF8563 is not set
927# CONFIG_RTC_DRV_PCF8583 is not set 944# CONFIG_RTC_DRV_PCF8583 is not set
928# CONFIG_RTC_DRV_M41T80 is not set 945# CONFIG_RTC_DRV_M41T80 is not set
946# CONFIG_RTC_DRV_S35390A is not set
929 947
930# 948#
931# SPI RTC drivers 949# SPI RTC drivers
932# 950#
933# CONFIG_RTC_DRV_RS5C348 is not set
934# CONFIG_RTC_DRV_MAX6902 is not set 951# CONFIG_RTC_DRV_MAX6902 is not set
952# CONFIG_RTC_DRV_R9701 is not set
953# CONFIG_RTC_DRV_RS5C348 is not set
935 954
936# 955#
937# Platform RTC drivers 956# Platform RTC drivers
938# 957#
939# CONFIG_RTC_DRV_CMOS is not set 958# CONFIG_RTC_DRV_CMOS is not set
959# CONFIG_RTC_DRV_DS1511 is not set
940# CONFIG_RTC_DRV_DS1553 is not set 960# CONFIG_RTC_DRV_DS1553 is not set
941# CONFIG_RTC_DRV_STK17TA8 is not set
942# CONFIG_RTC_DRV_DS1742 is not set 961# CONFIG_RTC_DRV_DS1742 is not set
962# CONFIG_RTC_DRV_STK17TA8 is not set
943# CONFIG_RTC_DRV_M48T86 is not set 963# CONFIG_RTC_DRV_M48T86 is not set
944# CONFIG_RTC_DRV_M48T59 is not set 964# CONFIG_RTC_DRV_M48T59 is not set
945# CONFIG_RTC_DRV_V3020 is not set 965# CONFIG_RTC_DRV_V3020 is not set
@@ -947,6 +967,7 @@ CONFIG_RTC_DRV_DS1307=y
947# 967#
948# on-CPU RTC drivers 968# on-CPU RTC drivers
949# 969#
970# CONFIG_DMADEVICES is not set
950 971
951# 972#
952# Userspace I/O 973# Userspace I/O
@@ -972,12 +993,10 @@ CONFIG_FS_MBCACHE=y
972# CONFIG_XFS_FS is not set 993# CONFIG_XFS_FS is not set
973# CONFIG_GFS2_FS is not set 994# CONFIG_GFS2_FS is not set
974# CONFIG_OCFS2_FS is not set 995# CONFIG_OCFS2_FS is not set
975# CONFIG_MINIX_FS is not set 996CONFIG_DNOTIFY=y
976# CONFIG_ROMFS_FS is not set
977CONFIG_INOTIFY=y 997CONFIG_INOTIFY=y
978CONFIG_INOTIFY_USER=y 998CONFIG_INOTIFY_USER=y
979# CONFIG_QUOTA is not set 999# CONFIG_QUOTA is not set
980CONFIG_DNOTIFY=y
981# CONFIG_AUTOFS_FS is not set 1000# CONFIG_AUTOFS_FS is not set
982# CONFIG_AUTOFS4_FS is not set 1001# CONFIG_AUTOFS4_FS is not set
983# CONFIG_FUSE_FS is not set 1002# CONFIG_FUSE_FS is not set
@@ -1023,8 +1042,10 @@ CONFIG_TMPFS=y
1023# CONFIG_JFFS2_FS is not set 1042# CONFIG_JFFS2_FS is not set
1024# CONFIG_CRAMFS is not set 1043# CONFIG_CRAMFS is not set
1025# CONFIG_VXFS_FS is not set 1044# CONFIG_VXFS_FS is not set
1045# CONFIG_MINIX_FS is not set
1026# CONFIG_HPFS_FS is not set 1046# CONFIG_HPFS_FS is not set
1027# CONFIG_QNX4FS_FS is not set 1047# CONFIG_QNX4FS_FS is not set
1048# CONFIG_ROMFS_FS is not set
1028# CONFIG_SYSV_FS is not set 1049# CONFIG_SYSV_FS is not set
1029# CONFIG_UFS_FS is not set 1050# CONFIG_UFS_FS is not set
1030CONFIG_NETWORK_FILESYSTEMS=y 1051CONFIG_NETWORK_FILESYSTEMS=y
@@ -1111,7 +1132,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1111# CONFIG_NLS_KOI8_U is not set 1132# CONFIG_NLS_KOI8_U is not set
1112# CONFIG_NLS_UTF8 is not set 1133# CONFIG_NLS_UTF8 is not set
1113# CONFIG_DLM is not set 1134# CONFIG_DLM is not set
1114# CONFIG_UCC_SLOW is not set
1115 1135
1116# 1136#
1117# Library routines 1137# Library routines
@@ -1127,7 +1147,6 @@ CONFIG_PLIST=y
1127CONFIG_HAS_IOMEM=y 1147CONFIG_HAS_IOMEM=y
1128CONFIG_HAS_IOPORT=y 1148CONFIG_HAS_IOPORT=y
1129CONFIG_HAS_DMA=y 1149CONFIG_HAS_DMA=y
1130# CONFIG_INSTRUMENTATION is not set
1131 1150
1132# 1151#
1133# Kernel hacking 1152# Kernel hacking
@@ -1141,6 +1160,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1141# CONFIG_HEADERS_CHECK is not set 1160# CONFIG_HEADERS_CHECK is not set
1142# CONFIG_DEBUG_KERNEL is not set 1161# CONFIG_DEBUG_KERNEL is not set
1143# CONFIG_SLUB_DEBUG_ON is not set 1162# CONFIG_SLUB_DEBUG_ON is not set
1163# CONFIG_SLUB_STATS is not set
1144# CONFIG_DEBUG_BUGVERBOSE is not set 1164# CONFIG_DEBUG_BUGVERBOSE is not set
1145# CONFIG_SAMPLES is not set 1165# CONFIG_SAMPLES is not set
1146# CONFIG_PPC_EARLY_DEBUG is not set 1166# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1154,6 +1174,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1154CONFIG_CRYPTO=y 1174CONFIG_CRYPTO=y
1155CONFIG_CRYPTO_ALGAPI=y 1175CONFIG_CRYPTO_ALGAPI=y
1156CONFIG_CRYPTO_BLKCIPHER=y 1176CONFIG_CRYPTO_BLKCIPHER=y
1177# CONFIG_CRYPTO_SEQIV is not set
1157CONFIG_CRYPTO_MANAGER=y 1178CONFIG_CRYPTO_MANAGER=y
1158# CONFIG_CRYPTO_HMAC is not set 1179# CONFIG_CRYPTO_HMAC is not set
1159# CONFIG_CRYPTO_XCBC is not set 1180# CONFIG_CRYPTO_XCBC is not set
@@ -1171,6 +1192,9 @@ CONFIG_CRYPTO_CBC=y
1171CONFIG_CRYPTO_PCBC=m 1192CONFIG_CRYPTO_PCBC=m
1172# CONFIG_CRYPTO_LRW is not set 1193# CONFIG_CRYPTO_LRW is not set
1173# CONFIG_CRYPTO_XTS is not set 1194# CONFIG_CRYPTO_XTS is not set
1195# CONFIG_CRYPTO_CTR is not set
1196# CONFIG_CRYPTO_GCM is not set
1197# CONFIG_CRYPTO_CCM is not set
1174# CONFIG_CRYPTO_CRYPTD is not set 1198# CONFIG_CRYPTO_CRYPTD is not set
1175CONFIG_CRYPTO_DES=y 1199CONFIG_CRYPTO_DES=y
1176# CONFIG_CRYPTO_FCRYPT is not set 1200# CONFIG_CRYPTO_FCRYPT is not set
@@ -1185,11 +1209,14 @@ CONFIG_CRYPTO_DES=y
1185# CONFIG_CRYPTO_KHAZAD is not set 1209# CONFIG_CRYPTO_KHAZAD is not set
1186# CONFIG_CRYPTO_ANUBIS is not set 1210# CONFIG_CRYPTO_ANUBIS is not set
1187# CONFIG_CRYPTO_SEED is not set 1211# CONFIG_CRYPTO_SEED is not set
1212# CONFIG_CRYPTO_SALSA20 is not set
1188# CONFIG_CRYPTO_DEFLATE is not set 1213# CONFIG_CRYPTO_DEFLATE is not set
1189# CONFIG_CRYPTO_MICHAEL_MIC is not set 1214# CONFIG_CRYPTO_MICHAEL_MIC is not set
1190# CONFIG_CRYPTO_CRC32C is not set 1215# CONFIG_CRYPTO_CRC32C is not set
1191# CONFIG_CRYPTO_CAMELLIA is not set 1216# CONFIG_CRYPTO_CAMELLIA is not set
1192# CONFIG_CRYPTO_TEST is not set 1217# CONFIG_CRYPTO_TEST is not set
1193# CONFIG_CRYPTO_AUTHENC is not set 1218# CONFIG_CRYPTO_AUTHENC is not set
1219# CONFIG_CRYPTO_LZO is not set
1194CONFIG_CRYPTO_HW=y 1220CONFIG_CRYPTO_HW=y
1221# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1195# CONFIG_PPC_CLOCK is not set 1222# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc834x_mds_defconfig b/arch/powerpc/configs/mpc834x_mds_defconfig
index 217539f3ecef..9360144942f1 100644
--- a/arch/powerpc/configs/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/mpc834x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:41 2007 4# Mon Mar 24 08:48:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,23 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
144CONFIG_MPC834x_MDS=y 160CONFIG_MPC834x_MDS=y
145# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
146# CONFIG_MPC836x_MDS is not set 162# CONFIG_MPC836x_MDS is not set
147CONFIG_MPC834x=y 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
166CONFIG_PPC_MPC834x=y
167CONFIG_IPIC=y
148# CONFIG_MPIC is not set 168# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 170# CONFIG_PPC_I8259 is not set
@@ -155,7 +175,6 @@ CONFIG_MPC834x=y
155# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set
159# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
160 179
161# 180#
@@ -171,12 +190,16 @@ CONFIG_HZ_250=y
171# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
172# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
173CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
174CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
175# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
176# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
177CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
178# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
179CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
180CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
181CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
182CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -195,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
195CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
196# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
197# CONFIG_PM is not set 220# CONFIG_PM is not set
198CONFIG_SUSPEND_UP_POSSIBLE=y
199CONFIG_HIBERNATION_UP_POSSIBLE=y
200CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE=""
203CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
204 223
205# 224#
@@ -248,6 +267,7 @@ CONFIG_XFRM=y
248CONFIG_XFRM_USER=m 267CONFIG_XFRM_USER=m
249# CONFIG_XFRM_SUB_POLICY is not set 268# CONFIG_XFRM_SUB_POLICY is not set
250# CONFIG_XFRM_MIGRATE is not set 269# CONFIG_XFRM_MIGRATE is not set
270# CONFIG_XFRM_STATISTICS is not set
251# CONFIG_NET_KEY is not set 271# CONFIG_NET_KEY is not set
252CONFIG_INET=y 272CONFIG_INET=y
253CONFIG_IP_MULTICAST=y 273CONFIG_IP_MULTICAST=y
@@ -303,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
303# 323#
304# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
305# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
306# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
307# CONFIG_BT is not set 328# CONFIG_BT is not set
308# CONFIG_AF_RXRPC is not set 329# CONFIG_AF_RXRPC is not set
@@ -347,7 +368,7 @@ CONFIG_BLK_DEV_LOOP=y
347CONFIG_BLK_DEV_RAM=y 368CONFIG_BLK_DEV_RAM=y
348CONFIG_BLK_DEV_RAM_COUNT=16 369CONFIG_BLK_DEV_RAM_COUNT=16
349CONFIG_BLK_DEV_RAM_SIZE=32768 370CONFIG_BLK_DEV_RAM_SIZE=32768
350CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 371# CONFIG_BLK_DEV_XIP is not set
351# CONFIG_CDROM_PKTCDVD is not set 372# CONFIG_CDROM_PKTCDVD is not set
352# CONFIG_ATA_OVER_ETH is not set 373# CONFIG_ATA_OVER_ETH is not set
353CONFIG_MISC_DEVICES=y 374CONFIG_MISC_DEVICES=y
@@ -355,6 +376,8 @@ CONFIG_MISC_DEVICES=y
355# CONFIG_EEPROM_93CX6 is not set 376# CONFIG_EEPROM_93CX6 is not set
356# CONFIG_SGI_IOC4 is not set 377# CONFIG_SGI_IOC4 is not set
357# CONFIG_TIFM_CORE is not set 378# CONFIG_TIFM_CORE is not set
379# CONFIG_ENCLOSURE_SERVICES is not set
380CONFIG_HAVE_IDE=y
358# CONFIG_IDE is not set 381# CONFIG_IDE is not set
359 382
360# 383#
@@ -383,7 +406,6 @@ CONFIG_NETDEVICES=y
383# CONFIG_EQUALIZER is not set 406# CONFIG_EQUALIZER is not set
384# CONFIG_TUN is not set 407# CONFIG_TUN is not set
385# CONFIG_VETH is not set 408# CONFIG_VETH is not set
386# CONFIG_IP1000 is not set
387# CONFIG_ARCNET is not set 409# CONFIG_ARCNET is not set
388CONFIG_PHYLIB=y 410CONFIG_PHYLIB=y
389 411
@@ -399,6 +421,7 @@ CONFIG_MARVELL_PHY=y
399# CONFIG_SMSC_PHY is not set 421# CONFIG_SMSC_PHY is not set
400# CONFIG_BROADCOM_PHY is not set 422# CONFIG_BROADCOM_PHY is not set
401# CONFIG_ICPLUS_PHY is not set 423# CONFIG_ICPLUS_PHY is not set
424# CONFIG_REALTEK_PHY is not set
402# CONFIG_FIXED_PHY is not set 425# CONFIG_FIXED_PHY is not set
403# CONFIG_MDIO_BITBANG is not set 426# CONFIG_MDIO_BITBANG is not set
404CONFIG_NET_ETHERNET=y 427CONFIG_NET_ETHERNET=y
@@ -426,6 +449,7 @@ CONFIG_E100=y
426# CONFIG_NE2K_PCI is not set 449# CONFIG_NE2K_PCI is not set
427# CONFIG_8139CP is not set 450# CONFIG_8139CP is not set
428# CONFIG_8139TOO is not set 451# CONFIG_8139TOO is not set
452# CONFIG_R6040 is not set
429# CONFIG_SIS900 is not set 453# CONFIG_SIS900 is not set
430# CONFIG_EPIC100 is not set 454# CONFIG_EPIC100 is not set
431# CONFIG_SUNDANCE is not set 455# CONFIG_SUNDANCE is not set
@@ -437,6 +461,9 @@ CONFIG_NETDEV_1000=y
437# CONFIG_DL2K is not set 461# CONFIG_DL2K is not set
438# CONFIG_E1000 is not set 462# CONFIG_E1000 is not set
439# CONFIG_E1000E is not set 463# CONFIG_E1000E is not set
464# CONFIG_E1000E_ENABLED is not set
465# CONFIG_IP1000 is not set
466# CONFIG_IGB is not set
440# CONFIG_NS83820 is not set 467# CONFIG_NS83820 is not set
441# CONFIG_HAMACHI is not set 468# CONFIG_HAMACHI is not set
442# CONFIG_YELLOWFIN is not set 469# CONFIG_YELLOWFIN is not set
@@ -463,6 +490,7 @@ CONFIG_NETDEV_10000=y
463# CONFIG_NIU is not set 490# CONFIG_NIU is not set
464# CONFIG_MLX4_CORE is not set 491# CONFIG_MLX4_CORE is not set
465# CONFIG_TEHUTI is not set 492# CONFIG_TEHUTI is not set
493# CONFIG_BNX2X is not set
466# CONFIG_TR is not set 494# CONFIG_TR is not set
467 495
468# 496#
@@ -475,7 +503,6 @@ CONFIG_NETDEV_10000=y
475# CONFIG_HIPPI is not set 503# CONFIG_HIPPI is not set
476# CONFIG_PPP is not set 504# CONFIG_PPP is not set
477# CONFIG_SLIP is not set 505# CONFIG_SLIP is not set
478# CONFIG_SHAPER is not set
479# CONFIG_NETCONSOLE is not set 506# CONFIG_NETCONSOLE is not set
480# CONFIG_NETPOLL is not set 507# CONFIG_NETPOLL is not set
481# CONFIG_NET_POLL_CONTROLLER is not set 508# CONFIG_NET_POLL_CONTROLLER is not set
@@ -518,6 +545,7 @@ CONFIG_INPUT=y
518# 545#
519# CONFIG_VT is not set 546# CONFIG_VT is not set
520# CONFIG_SERIAL_NONSTANDARD is not set 547# CONFIG_SERIAL_NONSTANDARD is not set
548# CONFIG_NOZOMI is not set
521 549
522# 550#
523# Serial drivers 551# Serial drivers
@@ -591,14 +619,12 @@ CONFIG_I2C_MPC=y
591# 619#
592# Miscellaneous I2C Chip support 620# Miscellaneous I2C Chip support
593# 621#
594# CONFIG_SENSORS_DS1337 is not set
595# CONFIG_SENSORS_DS1374 is not set
596# CONFIG_DS1682 is not set 622# CONFIG_DS1682 is not set
597# CONFIG_SENSORS_EEPROM is not set 623# CONFIG_SENSORS_EEPROM is not set
598# CONFIG_SENSORS_PCF8574 is not set 624# CONFIG_SENSORS_PCF8574 is not set
599# CONFIG_SENSORS_PCA9539 is not set 625# CONFIG_PCF8575 is not set
600# CONFIG_SENSORS_PCF8591 is not set 626# CONFIG_SENSORS_PCF8591 is not set
601# CONFIG_SENSORS_M41T00 is not set 627# CONFIG_TPS65010 is not set
602# CONFIG_SENSORS_MAX6875 is not set 628# CONFIG_SENSORS_MAX6875 is not set
603# CONFIG_SENSORS_TSL2550 is not set 629# CONFIG_SENSORS_TSL2550 is not set
604# CONFIG_I2C_DEBUG_CORE is not set 630# CONFIG_I2C_DEBUG_CORE is not set
@@ -623,6 +649,7 @@ CONFIG_HWMON=y
623# CONFIG_SENSORS_ADM1031 is not set 649# CONFIG_SENSORS_ADM1031 is not set
624# CONFIG_SENSORS_ADM9240 is not set 650# CONFIG_SENSORS_ADM9240 is not set
625# CONFIG_SENSORS_ADT7470 is not set 651# CONFIG_SENSORS_ADT7470 is not set
652# CONFIG_SENSORS_ADT7473 is not set
626# CONFIG_SENSORS_ATXP1 is not set 653# CONFIG_SENSORS_ATXP1 is not set
627# CONFIG_SENSORS_DS1621 is not set 654# CONFIG_SENSORS_DS1621 is not set
628# CONFIG_SENSORS_I5K_AMB is not set 655# CONFIG_SENSORS_I5K_AMB is not set
@@ -652,6 +679,7 @@ CONFIG_HWMON=y
652# CONFIG_SENSORS_SMSC47M1 is not set 679# CONFIG_SENSORS_SMSC47M1 is not set
653# CONFIG_SENSORS_SMSC47M192 is not set 680# CONFIG_SENSORS_SMSC47M192 is not set
654# CONFIG_SENSORS_SMSC47B397 is not set 681# CONFIG_SENSORS_SMSC47B397 is not set
682# CONFIG_SENSORS_ADS7828 is not set
655# CONFIG_SENSORS_THMC50 is not set 683# CONFIG_SENSORS_THMC50 is not set
656# CONFIG_SENSORS_VIA686A is not set 684# CONFIG_SENSORS_VIA686A is not set
657# CONFIG_SENSORS_VT1211 is not set 685# CONFIG_SENSORS_VT1211 is not set
@@ -661,9 +689,11 @@ CONFIG_HWMON=y
661# CONFIG_SENSORS_W83792D is not set 689# CONFIG_SENSORS_W83792D is not set
662# CONFIG_SENSORS_W83793 is not set 690# CONFIG_SENSORS_W83793 is not set
663# CONFIG_SENSORS_W83L785TS is not set 691# CONFIG_SENSORS_W83L785TS is not set
692# CONFIG_SENSORS_W83L786NG is not set
664# CONFIG_SENSORS_W83627HF is not set 693# CONFIG_SENSORS_W83627HF is not set
665# CONFIG_SENSORS_W83627EHF is not set 694# CONFIG_SENSORS_W83627EHF is not set
666# CONFIG_HWMON_DEBUG_CHIP is not set 695# CONFIG_HWMON_DEBUG_CHIP is not set
696# CONFIG_THERMAL is not set
667CONFIG_WATCHDOG=y 697CONFIG_WATCHDOG=y
668# CONFIG_WATCHDOG_NOWAYOUT is not set 698# CONFIG_WATCHDOG_NOWAYOUT is not set
669 699
@@ -725,23 +755,22 @@ CONFIG_USB_ARCH_HAS_HCD=y
725CONFIG_USB_ARCH_HAS_OHCI=y 755CONFIG_USB_ARCH_HAS_OHCI=y
726CONFIG_USB_ARCH_HAS_EHCI=y 756CONFIG_USB_ARCH_HAS_EHCI=y
727# CONFIG_USB is not set 757# CONFIG_USB is not set
728CONFIG_USB_EHCI_ROOT_HUB_TT=y
729CONFIG_USB_EHCI_FSL=y
730 758
731# 759#
732# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 760# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
733# 761#
734
735#
736# USB Gadget Support
737#
738# CONFIG_USB_GADGET is not set 762# CONFIG_USB_GADGET is not set
739# CONFIG_MMC is not set 763# CONFIG_MMC is not set
764# CONFIG_MEMSTICK is not set
740# CONFIG_NEW_LEDS is not set 765# CONFIG_NEW_LEDS is not set
741# CONFIG_INFINIBAND is not set 766# CONFIG_INFINIBAND is not set
742# CONFIG_EDAC is not set 767# CONFIG_EDAC is not set
743CONFIG_RTC_LIB=y 768CONFIG_RTC_LIB=y
744CONFIG_RTC_CLASS=y 769CONFIG_RTC_CLASS=y
770
771#
772# Conflicting RTC option has been selected, check GEN_RTC and RTC
773#
745CONFIG_RTC_HCTOSYS=y 774CONFIG_RTC_HCTOSYS=y
746CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 775CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
747# CONFIG_RTC_DEBUG is not set 776# CONFIG_RTC_DEBUG is not set
@@ -768,6 +797,7 @@ CONFIG_RTC_DRV_DS1374=y
768# CONFIG_RTC_DRV_PCF8563 is not set 797# CONFIG_RTC_DRV_PCF8563 is not set
769# CONFIG_RTC_DRV_PCF8583 is not set 798# CONFIG_RTC_DRV_PCF8583 is not set
770# CONFIG_RTC_DRV_M41T80 is not set 799# CONFIG_RTC_DRV_M41T80 is not set
800# CONFIG_RTC_DRV_S35390A is not set
771 801
772# 802#
773# SPI RTC drivers 803# SPI RTC drivers
@@ -777,9 +807,10 @@ CONFIG_RTC_DRV_DS1374=y
777# Platform RTC drivers 807# Platform RTC drivers
778# 808#
779# CONFIG_RTC_DRV_CMOS is not set 809# CONFIG_RTC_DRV_CMOS is not set
810# CONFIG_RTC_DRV_DS1511 is not set
780# CONFIG_RTC_DRV_DS1553 is not set 811# CONFIG_RTC_DRV_DS1553 is not set
781# CONFIG_RTC_DRV_STK17TA8 is not set
782# CONFIG_RTC_DRV_DS1742 is not set 812# CONFIG_RTC_DRV_DS1742 is not set
813# CONFIG_RTC_DRV_STK17TA8 is not set
783# CONFIG_RTC_DRV_M48T86 is not set 814# CONFIG_RTC_DRV_M48T86 is not set
784# CONFIG_RTC_DRV_M48T59 is not set 815# CONFIG_RTC_DRV_M48T59 is not set
785# CONFIG_RTC_DRV_V3020 is not set 816# CONFIG_RTC_DRV_V3020 is not set
@@ -787,6 +818,7 @@ CONFIG_RTC_DRV_DS1374=y
787# 818#
788# on-CPU RTC drivers 819# on-CPU RTC drivers
789# 820#
821# CONFIG_DMADEVICES is not set
790 822
791# 823#
792# Userspace I/O 824# Userspace I/O
@@ -812,12 +844,10 @@ CONFIG_FS_MBCACHE=y
812# CONFIG_XFS_FS is not set 844# CONFIG_XFS_FS is not set
813# CONFIG_GFS2_FS is not set 845# CONFIG_GFS2_FS is not set
814# CONFIG_OCFS2_FS is not set 846# CONFIG_OCFS2_FS is not set
815# CONFIG_MINIX_FS is not set 847CONFIG_DNOTIFY=y
816# CONFIG_ROMFS_FS is not set
817CONFIG_INOTIFY=y 848CONFIG_INOTIFY=y
818CONFIG_INOTIFY_USER=y 849CONFIG_INOTIFY_USER=y
819# CONFIG_QUOTA is not set 850# CONFIG_QUOTA is not set
820CONFIG_DNOTIFY=y
821# CONFIG_AUTOFS_FS is not set 851# CONFIG_AUTOFS_FS is not set
822# CONFIG_AUTOFS4_FS is not set 852# CONFIG_AUTOFS4_FS is not set
823# CONFIG_FUSE_FS is not set 853# CONFIG_FUSE_FS is not set
@@ -859,8 +889,10 @@ CONFIG_TMPFS=y
859# CONFIG_EFS_FS is not set 889# CONFIG_EFS_FS is not set
860# CONFIG_CRAMFS is not set 890# CONFIG_CRAMFS is not set
861# CONFIG_VXFS_FS is not set 891# CONFIG_VXFS_FS is not set
892# CONFIG_MINIX_FS is not set
862# CONFIG_HPFS_FS is not set 893# CONFIG_HPFS_FS is not set
863# CONFIG_QNX4FS_FS is not set 894# CONFIG_QNX4FS_FS is not set
895# CONFIG_ROMFS_FS is not set
864# CONFIG_SYSV_FS is not set 896# CONFIG_SYSV_FS is not set
865# CONFIG_UFS_FS is not set 897# CONFIG_UFS_FS is not set
866CONFIG_NETWORK_FILESYSTEMS=y 898CONFIG_NETWORK_FILESYSTEMS=y
@@ -904,7 +936,6 @@ CONFIG_PARTITION_ADVANCED=y
904# CONFIG_SYSV68_PARTITION is not set 936# CONFIG_SYSV68_PARTITION is not set
905# CONFIG_NLS is not set 937# CONFIG_NLS is not set
906# CONFIG_DLM is not set 938# CONFIG_DLM is not set
907# CONFIG_UCC_SLOW is not set
908 939
909# 940#
910# Library routines 941# Library routines
@@ -920,7 +951,6 @@ CONFIG_PLIST=y
920CONFIG_HAS_IOMEM=y 951CONFIG_HAS_IOMEM=y
921CONFIG_HAS_IOPORT=y 952CONFIG_HAS_IOPORT=y
922CONFIG_HAS_DMA=y 953CONFIG_HAS_DMA=y
923# CONFIG_INSTRUMENTATION is not set
924 954
925# 955#
926# Kernel hacking 956# Kernel hacking
@@ -934,6 +964,7 @@ CONFIG_ENABLE_MUST_CHECK=y
934# CONFIG_HEADERS_CHECK is not set 964# CONFIG_HEADERS_CHECK is not set
935# CONFIG_DEBUG_KERNEL is not set 965# CONFIG_DEBUG_KERNEL is not set
936# CONFIG_SLUB_DEBUG_ON is not set 966# CONFIG_SLUB_DEBUG_ON is not set
967# CONFIG_SLUB_STATS is not set
937# CONFIG_DEBUG_BUGVERBOSE is not set 968# CONFIG_DEBUG_BUGVERBOSE is not set
938# CONFIG_SAMPLES is not set 969# CONFIG_SAMPLES is not set
939# CONFIG_PPC_EARLY_DEBUG is not set 970# CONFIG_PPC_EARLY_DEBUG is not set
@@ -947,6 +978,7 @@ CONFIG_ENABLE_MUST_CHECK=y
947CONFIG_CRYPTO=y 978CONFIG_CRYPTO=y
948CONFIG_CRYPTO_ALGAPI=y 979CONFIG_CRYPTO_ALGAPI=y
949CONFIG_CRYPTO_BLKCIPHER=y 980CONFIG_CRYPTO_BLKCIPHER=y
981# CONFIG_CRYPTO_SEQIV is not set
950CONFIG_CRYPTO_MANAGER=y 982CONFIG_CRYPTO_MANAGER=y
951# CONFIG_CRYPTO_HMAC is not set 983# CONFIG_CRYPTO_HMAC is not set
952# CONFIG_CRYPTO_XCBC is not set 984# CONFIG_CRYPTO_XCBC is not set
@@ -964,6 +996,9 @@ CONFIG_CRYPTO_CBC=y
964CONFIG_CRYPTO_PCBC=m 996CONFIG_CRYPTO_PCBC=m
965# CONFIG_CRYPTO_LRW is not set 997# CONFIG_CRYPTO_LRW is not set
966# CONFIG_CRYPTO_XTS is not set 998# CONFIG_CRYPTO_XTS is not set
999# CONFIG_CRYPTO_CTR is not set
1000# CONFIG_CRYPTO_GCM is not set
1001# CONFIG_CRYPTO_CCM is not set
967# CONFIG_CRYPTO_CRYPTD is not set 1002# CONFIG_CRYPTO_CRYPTD is not set
968CONFIG_CRYPTO_DES=y 1003CONFIG_CRYPTO_DES=y
969# CONFIG_CRYPTO_FCRYPT is not set 1004# CONFIG_CRYPTO_FCRYPT is not set
@@ -978,11 +1013,14 @@ CONFIG_CRYPTO_DES=y
978# CONFIG_CRYPTO_KHAZAD is not set 1013# CONFIG_CRYPTO_KHAZAD is not set
979# CONFIG_CRYPTO_ANUBIS is not set 1014# CONFIG_CRYPTO_ANUBIS is not set
980# CONFIG_CRYPTO_SEED is not set 1015# CONFIG_CRYPTO_SEED is not set
1016# CONFIG_CRYPTO_SALSA20 is not set
981# CONFIG_CRYPTO_DEFLATE is not set 1017# CONFIG_CRYPTO_DEFLATE is not set
982# CONFIG_CRYPTO_MICHAEL_MIC is not set 1018# CONFIG_CRYPTO_MICHAEL_MIC is not set
983# CONFIG_CRYPTO_CRC32C is not set 1019# CONFIG_CRYPTO_CRC32C is not set
984# CONFIG_CRYPTO_CAMELLIA is not set 1020# CONFIG_CRYPTO_CAMELLIA is not set
985# CONFIG_CRYPTO_TEST is not set 1021# CONFIG_CRYPTO_TEST is not set
986# CONFIG_CRYPTO_AUTHENC is not set 1022# CONFIG_CRYPTO_AUTHENC is not set
1023# CONFIG_CRYPTO_LZO is not set
987CONFIG_CRYPTO_HW=y 1024CONFIG_CRYPTO_HW=y
1025# CONFIG_CRYPTO_DEV_HIFN_795X is not set
988# CONFIG_PPC_CLOCK is not set 1026# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc836x_mds_defconfig b/arch/powerpc/configs/mpc836x_mds_defconfig
index c44fc56263e2..7c8b06046d5d 100644
--- a/arch/powerpc/configs/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/mpc836x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:43 2007 4# Mon Mar 24 08:48:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,15 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +91,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 91CONFIG_PRINTK=y
87CONFIG_BUG=y 92CONFIG_BUG=y
88CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 96CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
92# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
93CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 102CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +105,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
99CONFIG_SLUB=y 106CONFIG_SLUB=y
100# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y
113CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
@@ -125,6 +139,7 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 139# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
128 143
129# 144#
130# Platform support 145# Platform support
@@ -133,18 +148,22 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PPC_82xx is not set 148# CONFIG_PPC_82xx is not set
134CONFIG_PPC_83xx=y 149CONFIG_PPC_83xx=y
135# CONFIG_PPC_86xx is not set 150# CONFIG_PPC_86xx is not set
136# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
137# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
138# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
139# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
140# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
141# CONFIG_MPC8313_RDB is not set 156CONFIG_MPC83xx=y
157# CONFIG_MPC831x_RDB is not set
142# CONFIG_MPC832x_MDS is not set 158# CONFIG_MPC832x_MDS is not set
143# CONFIG_MPC832x_RDB is not set 159# CONFIG_MPC832x_RDB is not set
144# CONFIG_MPC834x_MDS is not set 160# CONFIG_MPC834x_MDS is not set
145# CONFIG_MPC834x_ITX is not set 161# CONFIG_MPC834x_ITX is not set
146CONFIG_MPC836x_MDS=y 162CONFIG_MPC836x_MDS=y
147CONFIG_PPC_MPC836x=y 163# CONFIG_MPC837x_MDS is not set
164# CONFIG_MPC837x_RDB is not set
165# CONFIG_SBC834x is not set
166CONFIG_IPIC=y
148# CONFIG_MPIC is not set 167# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 168# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 169# CONFIG_PPC_I8259 is not set
@@ -156,7 +175,6 @@ CONFIG_PPC_MPC836x=y
156# CONFIG_GENERIC_IOMAP is not set 175# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 176# CONFIG_CPU_FREQ is not set
158CONFIG_QUICC_ENGINE=y 177CONFIG_QUICC_ENGINE=y
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 178# CONFIG_FSL_ULI1575 is not set
161 179
162# 180#
@@ -172,12 +190,16 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 191# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 192CONFIG_HZ=250
193# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
199# CONFIG_IOMMU_HELPER is not set
180CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
181CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
182CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
183CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -196,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
196CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
197# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
198# CONFIG_PM is not set 220# CONFIG_PM is not set
199CONFIG_SUSPEND_UP_POSSIBLE=y
200CONFIG_HIBERNATION_UP_POSSIBLE=y
201CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE=""
204CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
205 223
206# 224#
@@ -249,6 +267,7 @@ CONFIG_XFRM=y
249# CONFIG_XFRM_USER is not set 267# CONFIG_XFRM_USER is not set
250# CONFIG_XFRM_SUB_POLICY is not set 268# CONFIG_XFRM_SUB_POLICY is not set
251# CONFIG_XFRM_MIGRATE is not set 269# CONFIG_XFRM_MIGRATE is not set
270# CONFIG_XFRM_STATISTICS is not set
252# CONFIG_NET_KEY is not set 271# CONFIG_NET_KEY is not set
253CONFIG_INET=y 272CONFIG_INET=y
254CONFIG_IP_MULTICAST=y 273CONFIG_IP_MULTICAST=y
@@ -304,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
304# 323#
305# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
306# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
307# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
308# CONFIG_BT is not set 328# CONFIG_BT is not set
309# CONFIG_AF_RXRPC is not set 329# CONFIG_AF_RXRPC is not set
@@ -348,7 +368,7 @@ CONFIG_BLK_DEV_LOOP=y
348CONFIG_BLK_DEV_RAM=y 368CONFIG_BLK_DEV_RAM=y
349CONFIG_BLK_DEV_RAM_COUNT=16 369CONFIG_BLK_DEV_RAM_COUNT=16
350CONFIG_BLK_DEV_RAM_SIZE=32768 370CONFIG_BLK_DEV_RAM_SIZE=32768
351CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 371# CONFIG_BLK_DEV_XIP is not set
352# CONFIG_CDROM_PKTCDVD is not set 372# CONFIG_CDROM_PKTCDVD is not set
353# CONFIG_ATA_OVER_ETH is not set 373# CONFIG_ATA_OVER_ETH is not set
354CONFIG_MISC_DEVICES=y 374CONFIG_MISC_DEVICES=y
@@ -356,6 +376,8 @@ CONFIG_MISC_DEVICES=y
356# CONFIG_EEPROM_93CX6 is not set 376# CONFIG_EEPROM_93CX6 is not set
357# CONFIG_SGI_IOC4 is not set 377# CONFIG_SGI_IOC4 is not set
358# CONFIG_TIFM_CORE is not set 378# CONFIG_TIFM_CORE is not set
379# CONFIG_ENCLOSURE_SERVICES is not set
380CONFIG_HAVE_IDE=y
359# CONFIG_IDE is not set 381# CONFIG_IDE is not set
360 382
361# 383#
@@ -420,6 +442,7 @@ CONFIG_SCSI_LOWLEVEL=y
420# CONFIG_SCSI_IPS is not set 442# CONFIG_SCSI_IPS is not set
421# CONFIG_SCSI_INITIO is not set 443# CONFIG_SCSI_INITIO is not set
422# CONFIG_SCSI_INIA100 is not set 444# CONFIG_SCSI_INIA100 is not set
445# CONFIG_SCSI_MVSAS is not set
423# CONFIG_SCSI_STEX is not set 446# CONFIG_SCSI_STEX is not set
424# CONFIG_SCSI_SYM53C8XX_2 is not set 447# CONFIG_SCSI_SYM53C8XX_2 is not set
425# CONFIG_SCSI_QLOGIC_1280 is not set 448# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -450,7 +473,6 @@ CONFIG_NETDEVICES=y
450# CONFIG_EQUALIZER is not set 473# CONFIG_EQUALIZER is not set
451# CONFIG_TUN is not set 474# CONFIG_TUN is not set
452# CONFIG_VETH is not set 475# CONFIG_VETH is not set
453# CONFIG_IP1000 is not set
454# CONFIG_ARCNET is not set 476# CONFIG_ARCNET is not set
455CONFIG_PHYLIB=y 477CONFIG_PHYLIB=y
456 478
@@ -466,6 +488,7 @@ CONFIG_MARVELL_PHY=y
466# CONFIG_SMSC_PHY is not set 488# CONFIG_SMSC_PHY is not set
467# CONFIG_BROADCOM_PHY is not set 489# CONFIG_BROADCOM_PHY is not set
468# CONFIG_ICPLUS_PHY is not set 490# CONFIG_ICPLUS_PHY is not set
491# CONFIG_REALTEK_PHY is not set
469# CONFIG_FIXED_PHY is not set 492# CONFIG_FIXED_PHY is not set
470# CONFIG_MDIO_BITBANG is not set 493# CONFIG_MDIO_BITBANG is not set
471CONFIG_NET_ETHERNET=y 494CONFIG_NET_ETHERNET=y
@@ -487,6 +510,9 @@ CONFIG_NETDEV_1000=y
487# CONFIG_DL2K is not set 510# CONFIG_DL2K is not set
488# CONFIG_E1000 is not set 511# CONFIG_E1000 is not set
489# CONFIG_E1000E is not set 512# CONFIG_E1000E is not set
513# CONFIG_E1000E_ENABLED is not set
514# CONFIG_IP1000 is not set
515# CONFIG_IGB is not set
490# CONFIG_NS83820 is not set 516# CONFIG_NS83820 is not set
491# CONFIG_HAMACHI is not set 517# CONFIG_HAMACHI is not set
492# CONFIG_YELLOWFIN is not set 518# CONFIG_YELLOWFIN is not set
@@ -517,6 +543,7 @@ CONFIG_NETDEV_10000=y
517# CONFIG_NIU is not set 543# CONFIG_NIU is not set
518# CONFIG_MLX4_CORE is not set 544# CONFIG_MLX4_CORE is not set
519# CONFIG_TEHUTI is not set 545# CONFIG_TEHUTI is not set
546# CONFIG_BNX2X is not set
520# CONFIG_TR is not set 547# CONFIG_TR is not set
521 548
522# 549#
@@ -530,7 +557,6 @@ CONFIG_NETDEV_10000=y
530# CONFIG_PPP is not set 557# CONFIG_PPP is not set
531# CONFIG_SLIP is not set 558# CONFIG_SLIP is not set
532# CONFIG_NET_FC is not set 559# CONFIG_NET_FC is not set
533# CONFIG_SHAPER is not set
534# CONFIG_NETCONSOLE is not set 560# CONFIG_NETCONSOLE is not set
535# CONFIG_NETPOLL is not set 561# CONFIG_NETPOLL is not set
536# CONFIG_NET_POLL_CONTROLLER is not set 562# CONFIG_NET_POLL_CONTROLLER is not set
@@ -573,6 +599,7 @@ CONFIG_INPUT=y
573# 599#
574# CONFIG_VT is not set 600# CONFIG_VT is not set
575# CONFIG_SERIAL_NONSTANDARD is not set 601# CONFIG_SERIAL_NONSTANDARD is not set
602# CONFIG_NOZOMI is not set
576 603
577# 604#
578# Serial drivers 605# Serial drivers
@@ -592,6 +619,7 @@ CONFIG_SERIAL_CORE=y
592CONFIG_SERIAL_CORE_CONSOLE=y 619CONFIG_SERIAL_CORE_CONSOLE=y
593# CONFIG_SERIAL_JSM is not set 620# CONFIG_SERIAL_JSM is not set
594# CONFIG_SERIAL_OF_PLATFORM is not set 621# CONFIG_SERIAL_OF_PLATFORM is not set
622# CONFIG_SERIAL_QE is not set
595CONFIG_UNIX98_PTYS=y 623CONFIG_UNIX98_PTYS=y
596CONFIG_LEGACY_PTYS=y 624CONFIG_LEGACY_PTYS=y
597CONFIG_LEGACY_PTY_COUNT=256 625CONFIG_LEGACY_PTY_COUNT=256
@@ -646,14 +674,12 @@ CONFIG_I2C_MPC=y
646# 674#
647# Miscellaneous I2C Chip support 675# Miscellaneous I2C Chip support
648# 676#
649# CONFIG_SENSORS_DS1337 is not set
650# CONFIG_SENSORS_DS1374 is not set
651# CONFIG_DS1682 is not set 677# CONFIG_DS1682 is not set
652# CONFIG_SENSORS_EEPROM is not set 678# CONFIG_SENSORS_EEPROM is not set
653# CONFIG_SENSORS_PCF8574 is not set 679# CONFIG_SENSORS_PCF8574 is not set
654# CONFIG_SENSORS_PCA9539 is not set 680# CONFIG_PCF8575 is not set
655# CONFIG_SENSORS_PCF8591 is not set 681# CONFIG_SENSORS_PCF8591 is not set
656# CONFIG_SENSORS_M41T00 is not set 682# CONFIG_TPS65010 is not set
657# CONFIG_SENSORS_MAX6875 is not set 683# CONFIG_SENSORS_MAX6875 is not set
658# CONFIG_SENSORS_TSL2550 is not set 684# CONFIG_SENSORS_TSL2550 is not set
659# CONFIG_I2C_DEBUG_CORE is not set 685# CONFIG_I2C_DEBUG_CORE is not set
@@ -678,6 +704,7 @@ CONFIG_HWMON=y
678# CONFIG_SENSORS_ADM1031 is not set 704# CONFIG_SENSORS_ADM1031 is not set
679# CONFIG_SENSORS_ADM9240 is not set 705# CONFIG_SENSORS_ADM9240 is not set
680# CONFIG_SENSORS_ADT7470 is not set 706# CONFIG_SENSORS_ADT7470 is not set
707# CONFIG_SENSORS_ADT7473 is not set
681# CONFIG_SENSORS_ATXP1 is not set 708# CONFIG_SENSORS_ATXP1 is not set
682# CONFIG_SENSORS_DS1621 is not set 709# CONFIG_SENSORS_DS1621 is not set
683# CONFIG_SENSORS_I5K_AMB is not set 710# CONFIG_SENSORS_I5K_AMB is not set
@@ -707,6 +734,7 @@ CONFIG_HWMON=y
707# CONFIG_SENSORS_SMSC47M1 is not set 734# CONFIG_SENSORS_SMSC47M1 is not set
708# CONFIG_SENSORS_SMSC47M192 is not set 735# CONFIG_SENSORS_SMSC47M192 is not set
709# CONFIG_SENSORS_SMSC47B397 is not set 736# CONFIG_SENSORS_SMSC47B397 is not set
737# CONFIG_SENSORS_ADS7828 is not set
710# CONFIG_SENSORS_THMC50 is not set 738# CONFIG_SENSORS_THMC50 is not set
711# CONFIG_SENSORS_VIA686A is not set 739# CONFIG_SENSORS_VIA686A is not set
712# CONFIG_SENSORS_VT1211 is not set 740# CONFIG_SENSORS_VT1211 is not set
@@ -716,9 +744,11 @@ CONFIG_HWMON=y
716# CONFIG_SENSORS_W83792D is not set 744# CONFIG_SENSORS_W83792D is not set
717# CONFIG_SENSORS_W83793 is not set 745# CONFIG_SENSORS_W83793 is not set
718# CONFIG_SENSORS_W83L785TS is not set 746# CONFIG_SENSORS_W83L785TS is not set
747# CONFIG_SENSORS_W83L786NG is not set
719# CONFIG_SENSORS_W83627HF is not set 748# CONFIG_SENSORS_W83627HF is not set
720# CONFIG_SENSORS_W83627EHF is not set 749# CONFIG_SENSORS_W83627EHF is not set
721# CONFIG_HWMON_DEBUG_CHIP is not set 750# CONFIG_HWMON_DEBUG_CHIP is not set
751# CONFIG_THERMAL is not set
722CONFIG_WATCHDOG=y 752CONFIG_WATCHDOG=y
723# CONFIG_WATCHDOG_NOWAYOUT is not set 753# CONFIG_WATCHDOG_NOWAYOUT is not set
724 754
@@ -784,17 +814,18 @@ CONFIG_USB_ARCH_HAS_EHCI=y
784# 814#
785# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 815# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
786# 816#
787
788#
789# USB Gadget Support
790#
791# CONFIG_USB_GADGET is not set 817# CONFIG_USB_GADGET is not set
792# CONFIG_MMC is not set 818# CONFIG_MMC is not set
819# CONFIG_MEMSTICK is not set
793# CONFIG_NEW_LEDS is not set 820# CONFIG_NEW_LEDS is not set
794# CONFIG_INFINIBAND is not set 821# CONFIG_INFINIBAND is not set
795# CONFIG_EDAC is not set 822# CONFIG_EDAC is not set
796CONFIG_RTC_LIB=y 823CONFIG_RTC_LIB=y
797CONFIG_RTC_CLASS=y 824CONFIG_RTC_CLASS=y
825
826#
827# Conflicting RTC option has been selected, check GEN_RTC and RTC
828#
798CONFIG_RTC_HCTOSYS=y 829CONFIG_RTC_HCTOSYS=y
799CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 830CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
800# CONFIG_RTC_DEBUG is not set 831# CONFIG_RTC_DEBUG is not set
@@ -821,6 +852,7 @@ CONFIG_RTC_DRV_DS1374=y
821# CONFIG_RTC_DRV_PCF8563 is not set 852# CONFIG_RTC_DRV_PCF8563 is not set
822# CONFIG_RTC_DRV_PCF8583 is not set 853# CONFIG_RTC_DRV_PCF8583 is not set
823# CONFIG_RTC_DRV_M41T80 is not set 854# CONFIG_RTC_DRV_M41T80 is not set
855# CONFIG_RTC_DRV_S35390A is not set
824 856
825# 857#
826# SPI RTC drivers 858# SPI RTC drivers
@@ -830,9 +862,10 @@ CONFIG_RTC_DRV_DS1374=y
830# Platform RTC drivers 862# Platform RTC drivers
831# 863#
832# CONFIG_RTC_DRV_CMOS is not set 864# CONFIG_RTC_DRV_CMOS is not set
865# CONFIG_RTC_DRV_DS1511 is not set
833# CONFIG_RTC_DRV_DS1553 is not set 866# CONFIG_RTC_DRV_DS1553 is not set
834# CONFIG_RTC_DRV_STK17TA8 is not set
835# CONFIG_RTC_DRV_DS1742 is not set 867# CONFIG_RTC_DRV_DS1742 is not set
868# CONFIG_RTC_DRV_STK17TA8 is not set
836# CONFIG_RTC_DRV_M48T86 is not set 869# CONFIG_RTC_DRV_M48T86 is not set
837# CONFIG_RTC_DRV_M48T59 is not set 870# CONFIG_RTC_DRV_M48T59 is not set
838# CONFIG_RTC_DRV_V3020 is not set 871# CONFIG_RTC_DRV_V3020 is not set
@@ -840,6 +873,7 @@ CONFIG_RTC_DRV_DS1374=y
840# 873#
841# on-CPU RTC drivers 874# on-CPU RTC drivers
842# 875#
876# CONFIG_DMADEVICES is not set
843 877
844# 878#
845# Userspace I/O 879# Userspace I/O
@@ -865,12 +899,10 @@ CONFIG_FS_MBCACHE=y
865# CONFIG_XFS_FS is not set 899# CONFIG_XFS_FS is not set
866# CONFIG_GFS2_FS is not set 900# CONFIG_GFS2_FS is not set
867# CONFIG_OCFS2_FS is not set 901# CONFIG_OCFS2_FS is not set
868# CONFIG_MINIX_FS is not set 902CONFIG_DNOTIFY=y
869# CONFIG_ROMFS_FS is not set
870CONFIG_INOTIFY=y 903CONFIG_INOTIFY=y
871CONFIG_INOTIFY_USER=y 904CONFIG_INOTIFY_USER=y
872# CONFIG_QUOTA is not set 905# CONFIG_QUOTA is not set
873CONFIG_DNOTIFY=y
874# CONFIG_AUTOFS_FS is not set 906# CONFIG_AUTOFS_FS is not set
875# CONFIG_AUTOFS4_FS is not set 907# CONFIG_AUTOFS4_FS is not set
876# CONFIG_FUSE_FS is not set 908# CONFIG_FUSE_FS is not set
@@ -912,8 +944,10 @@ CONFIG_TMPFS=y
912# CONFIG_EFS_FS is not set 944# CONFIG_EFS_FS is not set
913# CONFIG_CRAMFS is not set 945# CONFIG_CRAMFS is not set
914# CONFIG_VXFS_FS is not set 946# CONFIG_VXFS_FS is not set
947# CONFIG_MINIX_FS is not set
915# CONFIG_HPFS_FS is not set 948# CONFIG_HPFS_FS is not set
916# CONFIG_QNX4FS_FS is not set 949# CONFIG_QNX4FS_FS is not set
950# CONFIG_ROMFS_FS is not set
917# CONFIG_SYSV_FS is not set 951# CONFIG_SYSV_FS is not set
918# CONFIG_UFS_FS is not set 952# CONFIG_UFS_FS is not set
919CONFIG_NETWORK_FILESYSTEMS=y 953CONFIG_NETWORK_FILESYSTEMS=y
@@ -957,7 +991,6 @@ CONFIG_PARTITION_ADVANCED=y
957# CONFIG_SYSV68_PARTITION is not set 991# CONFIG_SYSV68_PARTITION is not set
958# CONFIG_NLS is not set 992# CONFIG_NLS is not set
959# CONFIG_DLM is not set 993# CONFIG_DLM is not set
960# CONFIG_UCC_SLOW is not set
961CONFIG_UCC_FAST=y 994CONFIG_UCC_FAST=y
962CONFIG_UCC=y 995CONFIG_UCC=y
963 996
@@ -975,7 +1008,6 @@ CONFIG_PLIST=y
975CONFIG_HAS_IOMEM=y 1008CONFIG_HAS_IOMEM=y
976CONFIG_HAS_IOPORT=y 1009CONFIG_HAS_IOPORT=y
977CONFIG_HAS_DMA=y 1010CONFIG_HAS_DMA=y
978# CONFIG_INSTRUMENTATION is not set
979 1011
980# 1012#
981# Kernel hacking 1013# Kernel hacking
@@ -989,6 +1021,7 @@ CONFIG_ENABLE_MUST_CHECK=y
989# CONFIG_HEADERS_CHECK is not set 1021# CONFIG_HEADERS_CHECK is not set
990# CONFIG_DEBUG_KERNEL is not set 1022# CONFIG_DEBUG_KERNEL is not set
991# CONFIG_SLUB_DEBUG_ON is not set 1023# CONFIG_SLUB_DEBUG_ON is not set
1024# CONFIG_SLUB_STATS is not set
992# CONFIG_DEBUG_BUGVERBOSE is not set 1025# CONFIG_DEBUG_BUGVERBOSE is not set
993# CONFIG_SAMPLES is not set 1026# CONFIG_SAMPLES is not set
994# CONFIG_PPC_EARLY_DEBUG is not set 1027# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1002,6 +1035,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1002CONFIG_CRYPTO=y 1035CONFIG_CRYPTO=y
1003CONFIG_CRYPTO_ALGAPI=y 1036CONFIG_CRYPTO_ALGAPI=y
1004CONFIG_CRYPTO_BLKCIPHER=y 1037CONFIG_CRYPTO_BLKCIPHER=y
1038# CONFIG_CRYPTO_SEQIV is not set
1005CONFIG_CRYPTO_MANAGER=y 1039CONFIG_CRYPTO_MANAGER=y
1006# CONFIG_CRYPTO_HMAC is not set 1040# CONFIG_CRYPTO_HMAC is not set
1007# CONFIG_CRYPTO_XCBC is not set 1041# CONFIG_CRYPTO_XCBC is not set
@@ -1019,6 +1053,9 @@ CONFIG_CRYPTO_CBC=y
1019CONFIG_CRYPTO_PCBC=m 1053CONFIG_CRYPTO_PCBC=m
1020# CONFIG_CRYPTO_LRW is not set 1054# CONFIG_CRYPTO_LRW is not set
1021# CONFIG_CRYPTO_XTS is not set 1055# CONFIG_CRYPTO_XTS is not set
1056# CONFIG_CRYPTO_CTR is not set
1057# CONFIG_CRYPTO_GCM is not set
1058# CONFIG_CRYPTO_CCM is not set
1022# CONFIG_CRYPTO_CRYPTD is not set 1059# CONFIG_CRYPTO_CRYPTD is not set
1023CONFIG_CRYPTO_DES=y 1060CONFIG_CRYPTO_DES=y
1024# CONFIG_CRYPTO_FCRYPT is not set 1061# CONFIG_CRYPTO_FCRYPT is not set
@@ -1033,12 +1070,15 @@ CONFIG_CRYPTO_DES=y
1033# CONFIG_CRYPTO_KHAZAD is not set 1070# CONFIG_CRYPTO_KHAZAD is not set
1034# CONFIG_CRYPTO_ANUBIS is not set 1071# CONFIG_CRYPTO_ANUBIS is not set
1035# CONFIG_CRYPTO_SEED is not set 1072# CONFIG_CRYPTO_SEED is not set
1073# CONFIG_CRYPTO_SALSA20 is not set
1036# CONFIG_CRYPTO_DEFLATE is not set 1074# CONFIG_CRYPTO_DEFLATE is not set
1037# CONFIG_CRYPTO_MICHAEL_MIC is not set 1075# CONFIG_CRYPTO_MICHAEL_MIC is not set
1038# CONFIG_CRYPTO_CRC32C is not set 1076# CONFIG_CRYPTO_CRC32C is not set
1039# CONFIG_CRYPTO_CAMELLIA is not set 1077# CONFIG_CRYPTO_CAMELLIA is not set
1040# CONFIG_CRYPTO_TEST is not set 1078# CONFIG_CRYPTO_TEST is not set
1041# CONFIG_CRYPTO_AUTHENC is not set 1079# CONFIG_CRYPTO_AUTHENC is not set
1080# CONFIG_CRYPTO_LZO is not set
1042CONFIG_CRYPTO_HW=y 1081CONFIG_CRYPTO_HW=y
1082# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1043# CONFIG_PPC_CLOCK is not set 1083# CONFIG_PPC_CLOCK is not set
1044CONFIG_PPC_LIB_RHEAP=y 1084CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc837x_mds_defconfig b/arch/powerpc/configs/mpc837x_mds_defconfig
index 4f49aee5da66..f377cde785b0 100644
--- a/arch/powerpc/configs/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/mpc837x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23 3# Linux kernel version: 2.6.25-rc6
4# Wed Oct 10 16:31:39 2007 4# Mon Mar 24 08:48:23 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,16 +14,22 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32
24CONFIG_PPC_MERGE=y 25CONFIG_PPC_MERGE=y
25CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y
26CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
27CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
28CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
29CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -61,12 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
61# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
62# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
63# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
64# CONFIG_USER_NS is not set
65# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
66# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
67CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75CONFIG_FAIR_GROUP_SCHED=y
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
68CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
69# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
70CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
71CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
72# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -79,17 +92,27 @@ CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y 92CONFIG_PRINTK=y
80CONFIG_BUG=y 93CONFIG_BUG=y
81CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
82CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
83CONFIG_FUTEX=y 97CONFIG_FUTEX=y
84CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
85# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
86CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
87CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
88CONFIG_SHMEM=y 103CONFIG_SHMEM=y
89CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
90CONFIG_SLAB=y 105CONFIG_SLAB=y
91# CONFIG_SLUB is not set 106# CONFIG_SLUB is not set
92# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
95CONFIG_BASE_SMALL=0 118CONFIG_BASE_SMALL=0
@@ -117,28 +140,32 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_CFQ is not set 140# CONFIG_DEFAULT_CFQ is not set
118# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y
120 144
121# 145#
122# Platform support 146# Platform support
123# 147#
124# CONFIG_PPC_MULTIPLATFORM is not set 148# CONFIG_PPC_MULTIPLATFORM is not set
125# CONFIG_EMBEDDED6xx is not set
126# CONFIG_PPC_82xx is not set 149# CONFIG_PPC_82xx is not set
127CONFIG_PPC_83xx=y 150CONFIG_PPC_83xx=y
128# CONFIG_PPC_86xx is not set 151# CONFIG_PPC_86xx is not set
129# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC512x is not set
130# CONFIG_PPC_MPC5200 is not set 153# CONFIG_PPC_MPC5121 is not set
131# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
132# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
133# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
134# CONFIG_MPC8313_RDB is not set 157CONFIG_MPC83xx=y
158# CONFIG_MPC831x_RDB is not set
135# CONFIG_MPC832x_MDS is not set 159# CONFIG_MPC832x_MDS is not set
136# CONFIG_MPC832x_RDB is not set 160# CONFIG_MPC832x_RDB is not set
137# CONFIG_MPC834x_MDS is not set 161# CONFIG_MPC834x_MDS is not set
138# CONFIG_MPC834x_ITX is not set 162# CONFIG_MPC834x_ITX is not set
139# CONFIG_MPC836x_MDS is not set 163# CONFIG_MPC836x_MDS is not set
140CONFIG_MPC837x_MDS=y 164CONFIG_MPC837x_MDS=y
165# CONFIG_MPC837x_RDB is not set
166# CONFIG_SBC834x is not set
141CONFIG_PPC_MPC837x=y 167CONFIG_PPC_MPC837x=y
168CONFIG_IPIC=y
142# CONFIG_MPIC is not set 169# CONFIG_MPIC is not set
143# CONFIG_MPIC_WEIRD is not set 170# CONFIG_MPIC_WEIRD is not set
144# CONFIG_PPC_I8259 is not set 171# CONFIG_PPC_I8259 is not set
@@ -149,25 +176,31 @@ CONFIG_PPC_MPC837x=y
149# CONFIG_PPC_INDIRECT_IO is not set 176# CONFIG_PPC_INDIRECT_IO is not set
150# CONFIG_GENERIC_IOMAP is not set 177# CONFIG_GENERIC_IOMAP is not set
151# CONFIG_CPU_FREQ is not set 178# CONFIG_CPU_FREQ is not set
152# CONFIG_CPM2 is not set
153# CONFIG_FSL_ULI1575 is not set 179# CONFIG_FSL_ULI1575 is not set
154CONFIG_FSL_SERDES=y
155 180
156# 181#
157# Kernel options 182# Kernel options
158# 183#
159# CONFIG_HIGHMEM is not set 184# CONFIG_HIGHMEM is not set
185# CONFIG_TICK_ONESHOT is not set
186# CONFIG_NO_HZ is not set
187# CONFIG_HIGH_RES_TIMERS is not set
188CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
160# CONFIG_HZ_100 is not set 189# CONFIG_HZ_100 is not set
161CONFIG_HZ_250=y 190CONFIG_HZ_250=y
162# CONFIG_HZ_300 is not set 191# CONFIG_HZ_300 is not set
163# CONFIG_HZ_1000 is not set 192# CONFIG_HZ_1000 is not set
164CONFIG_HZ=250 193CONFIG_HZ=250
194# CONFIG_SCHED_HRTICK is not set
165CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
166# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
167# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
168CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
169# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
200# CONFIG_IOMMU_HELPER is not set
170CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 201CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
202CONFIG_ARCH_HAS_WALK_MEMORY=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
171CONFIG_ARCH_FLATMEM_ENABLE=y 204CONFIG_ARCH_FLATMEM_ENABLE=y
172CONFIG_ARCH_POPULATES_NODE_MAP=y 205CONFIG_ARCH_POPULATES_NODE_MAP=y
173CONFIG_SELECT_MEMORY_MODEL=y 206CONFIG_SELECT_MEMORY_MODEL=y
@@ -177,6 +210,7 @@ CONFIG_FLATMEM_MANUAL=y
177CONFIG_FLATMEM=y 210CONFIG_FLATMEM=y
178CONFIG_FLAT_NODE_MEM_MAP=y 211CONFIG_FLAT_NODE_MEM_MAP=y
179# CONFIG_SPARSEMEM_STATIC is not set 212# CONFIG_SPARSEMEM_STATIC is not set
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
180CONFIG_SPLIT_PTLOCK_CPUS=4 214CONFIG_SPLIT_PTLOCK_CPUS=4
181# CONFIG_RESOURCES_64BIT is not set 215# CONFIG_RESOURCES_64BIT is not set
182CONFIG_ZONE_DMA_FLAG=1 216CONFIG_ZONE_DMA_FLAG=1
@@ -185,11 +219,7 @@ CONFIG_VIRT_TO_BUS=y
185CONFIG_PROC_DEVICETREE=y 219CONFIG_PROC_DEVICETREE=y
186# CONFIG_CMDLINE_BOOL is not set 220# CONFIG_CMDLINE_BOOL is not set
187# CONFIG_PM is not set 221# CONFIG_PM is not set
188CONFIG_SUSPEND_UP_POSSIBLE=y
189CONFIG_HIBERNATION_UP_POSSIBLE=y
190CONFIG_SECCOMP=y 222CONFIG_SECCOMP=y
191CONFIG_WANT_DEVICE_TREE=y
192CONFIG_DEVICE_TREE=""
193CONFIG_ISA_DMA_API=y 223CONFIG_ISA_DMA_API=y
194 224
195# 225#
@@ -203,10 +233,6 @@ CONFIG_FSL_SOC=y
203# CONFIG_PCI_DOMAINS is not set 233# CONFIG_PCI_DOMAINS is not set
204# CONFIG_PCI_SYSCALL is not set 234# CONFIG_PCI_SYSCALL is not set
205# CONFIG_ARCH_SUPPORTS_MSI is not set 235# CONFIG_ARCH_SUPPORTS_MSI is not set
206
207#
208# PCCARD (PCMCIA/CardBus) support
209#
210# CONFIG_PCCARD is not set 236# CONFIG_PCCARD is not set
211 237
212# 238#
@@ -220,7 +246,7 @@ CONFIG_FSL_SOC=y
220CONFIG_HIGHMEM_START=0xfe000000 246CONFIG_HIGHMEM_START=0xfe000000
221CONFIG_LOWMEM_SIZE=0x30000000 247CONFIG_LOWMEM_SIZE=0x30000000
222CONFIG_KERNEL_START=0xc0000000 248CONFIG_KERNEL_START=0xc0000000
223CONFIG_TASK_SIZE=0x80000000 249CONFIG_TASK_SIZE=0xc0000000
224CONFIG_BOOT_LOAD=0x00800000 250CONFIG_BOOT_LOAD=0x00800000
225 251
226# 252#
@@ -238,6 +264,7 @@ CONFIG_XFRM=y
238CONFIG_XFRM_USER=m 264CONFIG_XFRM_USER=m
239# CONFIG_XFRM_SUB_POLICY is not set 265# CONFIG_XFRM_SUB_POLICY is not set
240# CONFIG_XFRM_MIGRATE is not set 266# CONFIG_XFRM_MIGRATE is not set
267# CONFIG_XFRM_STATISTICS is not set
241# CONFIG_NET_KEY is not set 268# CONFIG_NET_KEY is not set
242CONFIG_INET=y 269CONFIG_INET=y
243CONFIG_IP_MULTICAST=y 270CONFIG_IP_MULTICAST=y
@@ -260,6 +287,7 @@ CONFIG_SYN_COOKIES=y
260CONFIG_INET_XFRM_MODE_TRANSPORT=y 287CONFIG_INET_XFRM_MODE_TRANSPORT=y
261CONFIG_INET_XFRM_MODE_TUNNEL=y 288CONFIG_INET_XFRM_MODE_TUNNEL=y
262CONFIG_INET_XFRM_MODE_BEET=y 289CONFIG_INET_XFRM_MODE_BEET=y
290# CONFIG_INET_LRO is not set
263CONFIG_INET_DIAG=y 291CONFIG_INET_DIAG=y
264CONFIG_INET_TCP_DIAG=y 292CONFIG_INET_TCP_DIAG=y
265# CONFIG_TCP_CONG_ADVANCED is not set 293# CONFIG_TCP_CONG_ADVANCED is not set
@@ -285,10 +313,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
285# CONFIG_LAPB is not set 313# CONFIG_LAPB is not set
286# CONFIG_ECONET is not set 314# CONFIG_ECONET is not set
287# CONFIG_WAN_ROUTER is not set 315# CONFIG_WAN_ROUTER is not set
288
289#
290# QoS and/or fair queueing
291#
292# CONFIG_NET_SCHED is not set 316# CONFIG_NET_SCHED is not set
293 317
294# 318#
@@ -296,6 +320,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
296# 320#
297# CONFIG_NET_PKTGEN is not set 321# CONFIG_NET_PKTGEN is not set
298# CONFIG_HAMRADIO is not set 322# CONFIG_HAMRADIO is not set
323# CONFIG_CAN is not set
299# CONFIG_IRDA is not set 324# CONFIG_IRDA is not set
300# CONFIG_BT is not set 325# CONFIG_BT is not set
301# CONFIG_AF_RXRPC is not set 326# CONFIG_AF_RXRPC is not set
@@ -317,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
317# 342#
318# Generic Driver Options 343# Generic Driver Options
319# 344#
345CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
320CONFIG_STANDALONE=y 346CONFIG_STANDALONE=y
321CONFIG_PREVENT_FIRMWARE_BUILD=y 347CONFIG_PREVENT_FIRMWARE_BUILD=y
322# CONFIG_FW_LOADER is not set 348# CONFIG_FW_LOADER is not set
@@ -334,11 +360,13 @@ CONFIG_BLK_DEV_LOOP=y
334CONFIG_BLK_DEV_RAM=y 360CONFIG_BLK_DEV_RAM=y
335CONFIG_BLK_DEV_RAM_COUNT=16 361CONFIG_BLK_DEV_RAM_COUNT=16
336CONFIG_BLK_DEV_RAM_SIZE=32768 362CONFIG_BLK_DEV_RAM_SIZE=32768
337CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 363# CONFIG_BLK_DEV_XIP is not set
338# CONFIG_CDROM_PKTCDVD is not set 364# CONFIG_CDROM_PKTCDVD is not set
339# CONFIG_ATA_OVER_ETH is not set 365# CONFIG_ATA_OVER_ETH is not set
340CONFIG_MISC_DEVICES=y 366CONFIG_MISC_DEVICES=y
341# CONFIG_EEPROM_93CX6 is not set 367# CONFIG_EEPROM_93CX6 is not set
368# CONFIG_ENCLOSURE_SERVICES is not set
369CONFIG_HAVE_IDE=y
342# CONFIG_IDE is not set 370# CONFIG_IDE is not set
343 371
344# 372#
@@ -377,11 +405,13 @@ CONFIG_SCSI_WAIT_SCAN=m
377# CONFIG_SCSI_FC_ATTRS is not set 405# CONFIG_SCSI_FC_ATTRS is not set
378# CONFIG_SCSI_ISCSI_ATTRS is not set 406# CONFIG_SCSI_ISCSI_ATTRS is not set
379# CONFIG_SCSI_SAS_LIBSAS is not set 407# CONFIG_SCSI_SAS_LIBSAS is not set
408# CONFIG_SCSI_SRP_ATTRS is not set
380CONFIG_SCSI_LOWLEVEL=y 409CONFIG_SCSI_LOWLEVEL=y
381# CONFIG_ISCSI_TCP is not set 410# CONFIG_ISCSI_TCP is not set
382# CONFIG_SCSI_DEBUG is not set 411# CONFIG_SCSI_DEBUG is not set
383CONFIG_ATA=y 412CONFIG_ATA=y
384# CONFIG_ATA_NONSTANDARD is not set 413# CONFIG_ATA_NONSTANDARD is not set
414# CONFIG_SATA_MV is not set
385CONFIG_SATA_FSL=y 415CONFIG_SATA_FSL=y
386# CONFIG_PATA_PLATFORM is not set 416# CONFIG_PATA_PLATFORM is not set
387# CONFIG_MD is not set 417# CONFIG_MD is not set
@@ -393,6 +423,7 @@ CONFIG_NETDEVICES=y
393# CONFIG_MACVLAN is not set 423# CONFIG_MACVLAN is not set
394# CONFIG_EQUALIZER is not set 424# CONFIG_EQUALIZER is not set
395# CONFIG_TUN is not set 425# CONFIG_TUN is not set
426# CONFIG_VETH is not set
396CONFIG_PHYLIB=y 427CONFIG_PHYLIB=y
397 428
398# 429#
@@ -407,10 +438,18 @@ CONFIG_MARVELL_PHY=y
407# CONFIG_SMSC_PHY is not set 438# CONFIG_SMSC_PHY is not set
408# CONFIG_BROADCOM_PHY is not set 439# CONFIG_BROADCOM_PHY is not set
409# CONFIG_ICPLUS_PHY is not set 440# CONFIG_ICPLUS_PHY is not set
441# CONFIG_REALTEK_PHY is not set
410# CONFIG_FIXED_PHY is not set 442# CONFIG_FIXED_PHY is not set
443# CONFIG_MDIO_BITBANG is not set
411CONFIG_NET_ETHERNET=y 444CONFIG_NET_ETHERNET=y
412CONFIG_MII=y 445CONFIG_MII=y
446# CONFIG_IBM_NEW_EMAC_ZMII is not set
447# CONFIG_IBM_NEW_EMAC_RGMII is not set
448# CONFIG_IBM_NEW_EMAC_TAH is not set
449# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
450# CONFIG_B44 is not set
413CONFIG_NETDEV_1000=y 451CONFIG_NETDEV_1000=y
452# CONFIG_E1000E_ENABLED is not set
414CONFIG_GIANFAR=y 453CONFIG_GIANFAR=y
415# CONFIG_GFAR_NAPI is not set 454# CONFIG_GFAR_NAPI is not set
416CONFIG_NETDEV_10000=y 455CONFIG_NETDEV_10000=y
@@ -423,7 +462,6 @@ CONFIG_NETDEV_10000=y
423# CONFIG_WAN is not set 462# CONFIG_WAN is not set
424# CONFIG_PPP is not set 463# CONFIG_PPP is not set
425# CONFIG_SLIP is not set 464# CONFIG_SLIP is not set
426# CONFIG_SHAPER is not set
427# CONFIG_NETCONSOLE is not set 465# CONFIG_NETCONSOLE is not set
428# CONFIG_NETPOLL is not set 466# CONFIG_NETPOLL is not set
429# CONFIG_NET_POLL_CONTROLLER is not set 467# CONFIG_NET_POLL_CONTROLLER is not set
@@ -442,7 +480,6 @@ CONFIG_INPUT=y
442# 480#
443# CONFIG_INPUT_MOUSEDEV is not set 481# CONFIG_INPUT_MOUSEDEV is not set
444# CONFIG_INPUT_JOYDEV is not set 482# CONFIG_INPUT_JOYDEV is not set
445# CONFIG_INPUT_TSDEV is not set
446# CONFIG_INPUT_EVDEV is not set 483# CONFIG_INPUT_EVDEV is not set
447# CONFIG_INPUT_EVBUG is not set 484# CONFIG_INPUT_EVBUG is not set
448 485
@@ -488,14 +525,6 @@ CONFIG_UNIX98_PTYS=y
488CONFIG_LEGACY_PTYS=y 525CONFIG_LEGACY_PTYS=y
489CONFIG_LEGACY_PTY_COUNT=256 526CONFIG_LEGACY_PTY_COUNT=256
490# CONFIG_IPMI_HANDLER is not set 527# CONFIG_IPMI_HANDLER is not set
491CONFIG_WATCHDOG=y
492# CONFIG_WATCHDOG_NOWAYOUT is not set
493
494#
495# Watchdog Device Drivers
496#
497# CONFIG_SOFT_WATCHDOG is not set
498CONFIG_83xx_WDT=y
499# CONFIG_HW_RANDOM is not set 528# CONFIG_HW_RANDOM is not set
500# CONFIG_NVRAM is not set 529# CONFIG_NVRAM is not set
501CONFIG_GEN_RTC=y 530CONFIG_GEN_RTC=y
@@ -527,14 +556,12 @@ CONFIG_I2C_MPC=y
527# 556#
528# Miscellaneous I2C Chip support 557# Miscellaneous I2C Chip support
529# 558#
530# CONFIG_SENSORS_DS1337 is not set
531# CONFIG_SENSORS_DS1374 is not set
532# CONFIG_DS1682 is not set 559# CONFIG_DS1682 is not set
533# CONFIG_SENSORS_EEPROM is not set 560# CONFIG_SENSORS_EEPROM is not set
534# CONFIG_SENSORS_PCF8574 is not set 561# CONFIG_SENSORS_PCF8574 is not set
535# CONFIG_SENSORS_PCA9539 is not set 562# CONFIG_PCF8575 is not set
536# CONFIG_SENSORS_PCF8591 is not set 563# CONFIG_SENSORS_PCF8591 is not set
537# CONFIG_SENSORS_M41T00 is not set 564# CONFIG_TPS65010 is not set
538# CONFIG_SENSORS_MAX6875 is not set 565# CONFIG_SENSORS_MAX6875 is not set
539# CONFIG_SENSORS_TSL2550 is not set 566# CONFIG_SENSORS_TSL2550 is not set
540# CONFIG_I2C_DEBUG_CORE is not set 567# CONFIG_I2C_DEBUG_CORE is not set
@@ -551,8 +578,6 @@ CONFIG_I2C_MPC=y
551# CONFIG_POWER_SUPPLY is not set 578# CONFIG_POWER_SUPPLY is not set
552CONFIG_HWMON=y 579CONFIG_HWMON=y
553# CONFIG_HWMON_VID is not set 580# CONFIG_HWMON_VID is not set
554# CONFIG_SENSORS_ABITUGURU is not set
555# CONFIG_SENSORS_ABITUGURU3 is not set
556# CONFIG_SENSORS_AD7418 is not set 581# CONFIG_SENSORS_AD7418 is not set
557# CONFIG_SENSORS_ADM1021 is not set 582# CONFIG_SENSORS_ADM1021 is not set
558# CONFIG_SENSORS_ADM1025 is not set 583# CONFIG_SENSORS_ADM1025 is not set
@@ -560,12 +585,13 @@ CONFIG_HWMON=y
560# CONFIG_SENSORS_ADM1029 is not set 585# CONFIG_SENSORS_ADM1029 is not set
561# CONFIG_SENSORS_ADM1031 is not set 586# CONFIG_SENSORS_ADM1031 is not set
562# CONFIG_SENSORS_ADM9240 is not set 587# CONFIG_SENSORS_ADM9240 is not set
563# CONFIG_SENSORS_ASB100 is not set 588# CONFIG_SENSORS_ADT7470 is not set
589# CONFIG_SENSORS_ADT7473 is not set
564# CONFIG_SENSORS_ATXP1 is not set 590# CONFIG_SENSORS_ATXP1 is not set
565# CONFIG_SENSORS_DS1621 is not set 591# CONFIG_SENSORS_DS1621 is not set
566# CONFIG_SENSORS_F71805F is not set 592# CONFIG_SENSORS_F71805F is not set
567# CONFIG_SENSORS_FSCHER is not set 593# CONFIG_SENSORS_F71882FG is not set
568# CONFIG_SENSORS_FSCPOS is not set 594# CONFIG_SENSORS_F75375S is not set
569# CONFIG_SENSORS_GL518SM is not set 595# CONFIG_SENSORS_GL518SM is not set
570# CONFIG_SENSORS_GL520SM is not set 596# CONFIG_SENSORS_GL520SM is not set
571# CONFIG_SENSORS_IT87 is not set 597# CONFIG_SENSORS_IT87 is not set
@@ -588,6 +614,7 @@ CONFIG_HWMON=y
588# CONFIG_SENSORS_SMSC47M1 is not set 614# CONFIG_SENSORS_SMSC47M1 is not set
589# CONFIG_SENSORS_SMSC47M192 is not set 615# CONFIG_SENSORS_SMSC47M192 is not set
590# CONFIG_SENSORS_SMSC47B397 is not set 616# CONFIG_SENSORS_SMSC47B397 is not set
617# CONFIG_SENSORS_ADS7828 is not set
591# CONFIG_SENSORS_THMC50 is not set 618# CONFIG_SENSORS_THMC50 is not set
592# CONFIG_SENSORS_VT1211 is not set 619# CONFIG_SENSORS_VT1211 is not set
593# CONFIG_SENSORS_W83781D is not set 620# CONFIG_SENSORS_W83781D is not set
@@ -595,9 +622,25 @@ CONFIG_HWMON=y
595# CONFIG_SENSORS_W83792D is not set 622# CONFIG_SENSORS_W83792D is not set
596# CONFIG_SENSORS_W83793 is not set 623# CONFIG_SENSORS_W83793 is not set
597# CONFIG_SENSORS_W83L785TS is not set 624# CONFIG_SENSORS_W83L785TS is not set
625# CONFIG_SENSORS_W83L786NG is not set
598# CONFIG_SENSORS_W83627HF is not set 626# CONFIG_SENSORS_W83627HF is not set
599# CONFIG_SENSORS_W83627EHF is not set 627# CONFIG_SENSORS_W83627EHF is not set
600# CONFIG_HWMON_DEBUG_CHIP is not set 628# CONFIG_HWMON_DEBUG_CHIP is not set
629# CONFIG_THERMAL is not set
630CONFIG_WATCHDOG=y
631# CONFIG_WATCHDOG_NOWAYOUT is not set
632
633#
634# Watchdog Device Drivers
635#
636# CONFIG_SOFT_WATCHDOG is not set
637CONFIG_83xx_WDT=y
638
639#
640# Sonics Silicon Backplane
641#
642CONFIG_SSB_POSSIBLE=y
643# CONFIG_SSB is not set
601 644
602# 645#
603# Multifunction device drivers 646# Multifunction device drivers
@@ -614,16 +657,15 @@ CONFIG_DAB=y
614# 657#
615# Graphics support 658# Graphics support
616# 659#
660# CONFIG_VGASTATE is not set
661CONFIG_VIDEO_OUTPUT_CONTROL=m
662# CONFIG_FB is not set
617# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 663# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
618 664
619# 665#
620# Display device support 666# Display device support
621# 667#
622# CONFIG_DISPLAY_SUPPORT is not set 668# CONFIG_DISPLAY_SUPPORT is not set
623# CONFIG_VGASTATE is not set
624CONFIG_VIDEO_OUTPUT_CONTROL=m
625# CONFIG_FB is not set
626# CONFIG_FB_IBM_GXT4500 is not set
627 669
628# 670#
629# Sound 671# Sound
@@ -632,6 +674,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
632CONFIG_HID_SUPPORT=y 674CONFIG_HID_SUPPORT=y
633CONFIG_HID=y 675CONFIG_HID=y
634# CONFIG_HID_DEBUG is not set 676# CONFIG_HID_DEBUG is not set
677# CONFIG_HIDRAW is not set
635CONFIG_USB_SUPPORT=y 678CONFIG_USB_SUPPORT=y
636CONFIG_USB_ARCH_HAS_HCD=y 679CONFIG_USB_ARCH_HAS_HCD=y
637# CONFIG_USB_ARCH_HAS_OHCI is not set 680# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -641,28 +684,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
641# 684#
642# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 685# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
643# 686#
644
645#
646# USB Gadget Support
647#
648# CONFIG_USB_GADGET is not set 687# CONFIG_USB_GADGET is not set
649# CONFIG_MMC is not set 688# CONFIG_MMC is not set
689# CONFIG_MEMSTICK is not set
650# CONFIG_NEW_LEDS is not set 690# CONFIG_NEW_LEDS is not set
651# CONFIG_EDAC is not set 691# CONFIG_EDAC is not set
652# CONFIG_RTC_CLASS is not set 692# CONFIG_RTC_CLASS is not set
653 693# CONFIG_DMADEVICES is not set
654#
655# DMA Engine support
656#
657# CONFIG_DMA_ENGINE is not set
658
659#
660# DMA Clients
661#
662
663#
664# DMA Devices
665#
666 694
667# 695#
668# Userspace I/O 696# Userspace I/O
@@ -681,7 +709,6 @@ CONFIG_EXT3_FS_XATTR=y
681# CONFIG_EXT3_FS_SECURITY is not set 709# CONFIG_EXT3_FS_SECURITY is not set
682# CONFIG_EXT4DEV_FS is not set 710# CONFIG_EXT4DEV_FS is not set
683CONFIG_JBD=y 711CONFIG_JBD=y
684# CONFIG_JBD_DEBUG is not set
685CONFIG_FS_MBCACHE=y 712CONFIG_FS_MBCACHE=y
686# CONFIG_REISERFS_FS is not set 713# CONFIG_REISERFS_FS is not set
687# CONFIG_JFS_FS is not set 714# CONFIG_JFS_FS is not set
@@ -689,12 +716,10 @@ CONFIG_FS_MBCACHE=y
689# CONFIG_XFS_FS is not set 716# CONFIG_XFS_FS is not set
690# CONFIG_GFS2_FS is not set 717# CONFIG_GFS2_FS is not set
691# CONFIG_OCFS2_FS is not set 718# CONFIG_OCFS2_FS is not set
692# CONFIG_MINIX_FS is not set 719CONFIG_DNOTIFY=y
693# CONFIG_ROMFS_FS is not set
694CONFIG_INOTIFY=y 720CONFIG_INOTIFY=y
695CONFIG_INOTIFY_USER=y 721CONFIG_INOTIFY_USER=y
696# CONFIG_QUOTA is not set 722# CONFIG_QUOTA is not set
697CONFIG_DNOTIFY=y
698# CONFIG_AUTOFS_FS is not set 723# CONFIG_AUTOFS_FS is not set
699# CONFIG_AUTOFS4_FS is not set 724# CONFIG_AUTOFS4_FS is not set
700# CONFIG_FUSE_FS is not set 725# CONFIG_FUSE_FS is not set
@@ -722,7 +747,6 @@ CONFIG_SYSFS=y
722CONFIG_TMPFS=y 747CONFIG_TMPFS=y
723# CONFIG_TMPFS_POSIX_ACL is not set 748# CONFIG_TMPFS_POSIX_ACL is not set
724# CONFIG_HUGETLB_PAGE is not set 749# CONFIG_HUGETLB_PAGE is not set
725CONFIG_RAMFS=y
726# CONFIG_CONFIGFS_FS is not set 750# CONFIG_CONFIGFS_FS is not set
727 751
728# 752#
@@ -737,14 +761,13 @@ CONFIG_RAMFS=y
737# CONFIG_EFS_FS is not set 761# CONFIG_EFS_FS is not set
738# CONFIG_CRAMFS is not set 762# CONFIG_CRAMFS is not set
739# CONFIG_VXFS_FS is not set 763# CONFIG_VXFS_FS is not set
764# CONFIG_MINIX_FS is not set
740# CONFIG_HPFS_FS is not set 765# CONFIG_HPFS_FS is not set
741# CONFIG_QNX4FS_FS is not set 766# CONFIG_QNX4FS_FS is not set
767# CONFIG_ROMFS_FS is not set
742# CONFIG_SYSV_FS is not set 768# CONFIG_SYSV_FS is not set
743# CONFIG_UFS_FS is not set 769# CONFIG_UFS_FS is not set
744 770CONFIG_NETWORK_FILESYSTEMS=y
745#
746# Network File Systems
747#
748CONFIG_NFS_FS=y 771CONFIG_NFS_FS=y
749CONFIG_NFS_V3=y 772CONFIG_NFS_V3=y
750# CONFIG_NFS_V3_ACL is not set 773# CONFIG_NFS_V3_ACL is not set
@@ -787,17 +810,8 @@ CONFIG_MSDOS_PARTITION=y
787# CONFIG_KARMA_PARTITION is not set 810# CONFIG_KARMA_PARTITION is not set
788# CONFIG_EFI_PARTITION is not set 811# CONFIG_EFI_PARTITION is not set
789# CONFIG_SYSV68_PARTITION is not set 812# CONFIG_SYSV68_PARTITION is not set
790
791#
792# Native Language Support
793#
794# CONFIG_NLS is not set 813# CONFIG_NLS is not set
795
796#
797# Distributed Lock Manager
798#
799# CONFIG_DLM is not set 814# CONFIG_DLM is not set
800# CONFIG_UCC_SLOW is not set
801 815
802# 816#
803# Library routines 817# Library routines
@@ -815,15 +829,10 @@ CONFIG_HAS_IOPORT=y
815CONFIG_HAS_DMA=y 829CONFIG_HAS_DMA=y
816 830
817# 831#
818# Instrumentation Support
819#
820# CONFIG_PROFILING is not set
821# CONFIG_KPROBES is not set
822
823#
824# Kernel hacking 832# Kernel hacking
825# 833#
826# CONFIG_PRINTK_TIME is not set 834# CONFIG_PRINTK_TIME is not set
835CONFIG_ENABLE_WARN_DEPRECATED=y
827CONFIG_ENABLE_MUST_CHECK=y 836CONFIG_ENABLE_MUST_CHECK=y
828# CONFIG_MAGIC_SYSRQ is not set 837# CONFIG_MAGIC_SYSRQ is not set
829# CONFIG_UNUSED_SYMBOLS is not set 838# CONFIG_UNUSED_SYMBOLS is not set
@@ -831,6 +840,7 @@ CONFIG_ENABLE_MUST_CHECK=y
831# CONFIG_HEADERS_CHECK is not set 840# CONFIG_HEADERS_CHECK is not set
832# CONFIG_DEBUG_KERNEL is not set 841# CONFIG_DEBUG_KERNEL is not set
833# CONFIG_DEBUG_BUGVERBOSE is not set 842# CONFIG_DEBUG_BUGVERBOSE is not set
843# CONFIG_SAMPLES is not set
834# CONFIG_PPC_EARLY_DEBUG is not set 844# CONFIG_PPC_EARLY_DEBUG is not set
835 845
836# 846#
@@ -838,9 +848,11 @@ CONFIG_ENABLE_MUST_CHECK=y
838# 848#
839# CONFIG_KEYS is not set 849# CONFIG_KEYS is not set
840# CONFIG_SECURITY is not set 850# CONFIG_SECURITY is not set
851# CONFIG_SECURITY_FILE_CAPABILITIES is not set
841CONFIG_CRYPTO=y 852CONFIG_CRYPTO=y
842CONFIG_CRYPTO_ALGAPI=y 853CONFIG_CRYPTO_ALGAPI=y
843CONFIG_CRYPTO_BLKCIPHER=y 854CONFIG_CRYPTO_BLKCIPHER=y
855# CONFIG_CRYPTO_SEQIV is not set
844CONFIG_CRYPTO_MANAGER=y 856CONFIG_CRYPTO_MANAGER=y
845# CONFIG_CRYPTO_HMAC is not set 857# CONFIG_CRYPTO_HMAC is not set
846# CONFIG_CRYPTO_XCBC is not set 858# CONFIG_CRYPTO_XCBC is not set
@@ -857,6 +869,10 @@ CONFIG_CRYPTO_ECB=m
857CONFIG_CRYPTO_CBC=y 869CONFIG_CRYPTO_CBC=y
858CONFIG_CRYPTO_PCBC=m 870CONFIG_CRYPTO_PCBC=m
859# CONFIG_CRYPTO_LRW is not set 871# CONFIG_CRYPTO_LRW is not set
872# CONFIG_CRYPTO_XTS is not set
873# CONFIG_CRYPTO_CTR is not set
874# CONFIG_CRYPTO_GCM is not set
875# CONFIG_CRYPTO_CCM is not set
860# CONFIG_CRYPTO_CRYPTD is not set 876# CONFIG_CRYPTO_CRYPTD is not set
861CONFIG_CRYPTO_DES=y 877CONFIG_CRYPTO_DES=y
862# CONFIG_CRYPTO_FCRYPT is not set 878# CONFIG_CRYPTO_FCRYPT is not set
@@ -870,9 +886,14 @@ CONFIG_CRYPTO_DES=y
870# CONFIG_CRYPTO_ARC4 is not set 886# CONFIG_CRYPTO_ARC4 is not set
871# CONFIG_CRYPTO_KHAZAD is not set 887# CONFIG_CRYPTO_KHAZAD is not set
872# CONFIG_CRYPTO_ANUBIS is not set 888# CONFIG_CRYPTO_ANUBIS is not set
889# CONFIG_CRYPTO_SEED is not set
890# CONFIG_CRYPTO_SALSA20 is not set
873# CONFIG_CRYPTO_DEFLATE is not set 891# CONFIG_CRYPTO_DEFLATE is not set
874# CONFIG_CRYPTO_MICHAEL_MIC is not set 892# CONFIG_CRYPTO_MICHAEL_MIC is not set
875# CONFIG_CRYPTO_CRC32C is not set 893# CONFIG_CRYPTO_CRC32C is not set
876# CONFIG_CRYPTO_CAMELLIA is not set 894# CONFIG_CRYPTO_CAMELLIA is not set
877# CONFIG_CRYPTO_TEST is not set 895# CONFIG_CRYPTO_TEST is not set
896# CONFIG_CRYPTO_AUTHENC is not set
897# CONFIG_CRYPTO_LZO is not set
878CONFIG_CRYPTO_HW=y 898CONFIG_CRYPTO_HW=y
899# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc837x_rdb_defconfig b/arch/powerpc/configs/mpc837x_rdb_defconfig
index 91d291e3ee3a..44093a0eaf88 100644
--- a/arch/powerpc/configs/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/mpc837x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 24 20:04:39 2008 4# Mon Mar 24 08:48:24 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,17 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75CONFIG_FAIR_GROUP_SCHED=y 75CONFIG_FAIR_GROUP_SCHED=y
76CONFIG_FAIR_USER_SCHED=y 76# CONFIG_RT_GROUP_SCHED is not set
77# CONFIG_FAIR_CGROUP_SCHED is not set 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
80CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,17 +92,26 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 92CONFIG_PRINTK=y
90CONFIG_BUG=y 93CONFIG_BUG=y
91CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 97CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
95# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
96CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 103CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
100CONFIG_SLAB=y 105CONFIG_SLAB=y
101# CONFIG_SLUB is not set 106# CONFIG_SLUB is not set
102# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
103CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -128,6 +140,7 @@ CONFIG_DEFAULT_AS=y
128# CONFIG_DEFAULT_CFQ is not set 140# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y
131 144
132# 145#
133# Platform support 146# Platform support
@@ -136,11 +149,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
136# CONFIG_PPC_82xx is not set 149# CONFIG_PPC_82xx is not set
137CONFIG_PPC_83xx=y 150CONFIG_PPC_83xx=y
138# CONFIG_PPC_86xx is not set 151# CONFIG_PPC_86xx is not set
139# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC512x is not set
140# CONFIG_PPC_MPC5200 is not set 153# CONFIG_PPC_MPC5121 is not set
141# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
142# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
143# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
157CONFIG_MPC83xx=y
144# CONFIG_MPC831x_RDB is not set 158# CONFIG_MPC831x_RDB is not set
145# CONFIG_MPC832x_MDS is not set 159# CONFIG_MPC832x_MDS is not set
146# CONFIG_MPC832x_RDB is not set 160# CONFIG_MPC832x_RDB is not set
@@ -149,6 +163,7 @@ CONFIG_PPC_83xx=y
149# CONFIG_MPC836x_MDS is not set 163# CONFIG_MPC836x_MDS is not set
150# CONFIG_MPC837x_MDS is not set 164# CONFIG_MPC837x_MDS is not set
151CONFIG_MPC837x_RDB=y 165CONFIG_MPC837x_RDB=y
166# CONFIG_SBC834x is not set
152CONFIG_PPC_MPC837x=y 167CONFIG_PPC_MPC837x=y
153CONFIG_IPIC=y 168CONFIG_IPIC=y
154# CONFIG_MPIC is not set 169# CONFIG_MPIC is not set
@@ -161,7 +176,6 @@ CONFIG_IPIC=y
161# CONFIG_PPC_INDIRECT_IO is not set 176# CONFIG_PPC_INDIRECT_IO is not set
162# CONFIG_GENERIC_IOMAP is not set 177# CONFIG_GENERIC_IOMAP is not set
163# CONFIG_CPU_FREQ is not set 178# CONFIG_CPU_FREQ is not set
164# CONFIG_CPM2 is not set
165# CONFIG_FSL_ULI1575 is not set 179# CONFIG_FSL_ULI1575 is not set
166 180
167# 181#
@@ -177,12 +191,16 @@ CONFIG_HZ_250=y
177# CONFIG_HZ_300 is not set 191# CONFIG_HZ_300 is not set
178# CONFIG_HZ_1000 is not set 192# CONFIG_HZ_1000 is not set
179CONFIG_HZ=250 193CONFIG_HZ=250
194# CONFIG_SCHED_HRTICK is not set
180CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
181# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
182# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
183CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
184# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
200# CONFIG_IOMMU_HELPER is not set
185CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 201CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
202CONFIG_ARCH_HAS_WALK_MEMORY=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
186CONFIG_ARCH_FLATMEM_ENABLE=y 204CONFIG_ARCH_FLATMEM_ENABLE=y
187CONFIG_ARCH_POPULATES_NODE_MAP=y 205CONFIG_ARCH_POPULATES_NODE_MAP=y
188CONFIG_SELECT_MEMORY_MODEL=y 206CONFIG_SELECT_MEMORY_MODEL=y
@@ -201,11 +219,7 @@ CONFIG_VIRT_TO_BUS=y
201CONFIG_PROC_DEVICETREE=y 219CONFIG_PROC_DEVICETREE=y
202# CONFIG_CMDLINE_BOOL is not set 220# CONFIG_CMDLINE_BOOL is not set
203# CONFIG_PM is not set 221# CONFIG_PM is not set
204CONFIG_SUSPEND_UP_POSSIBLE=y
205CONFIG_HIBERNATION_UP_POSSIBLE=y
206CONFIG_SECCOMP=y 222CONFIG_SECCOMP=y
207CONFIG_WANT_DEVICE_TREE=y
208CONFIG_DEVICE_TREE=""
209CONFIG_ISA_DMA_API=y 223CONFIG_ISA_DMA_API=y
210 224
211# 225#
@@ -301,6 +315,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
301# 315#
302# CONFIG_NET_PKTGEN is not set 316# CONFIG_NET_PKTGEN is not set
303# CONFIG_HAMRADIO is not set 317# CONFIG_HAMRADIO is not set
318# CONFIG_CAN is not set
304# CONFIG_IRDA is not set 319# CONFIG_IRDA is not set
305# CONFIG_BT is not set 320# CONFIG_BT is not set
306# CONFIG_AF_RXRPC is not set 321# CONFIG_AF_RXRPC is not set
@@ -340,11 +355,13 @@ CONFIG_BLK_DEV_LOOP=y
340CONFIG_BLK_DEV_RAM=y 355CONFIG_BLK_DEV_RAM=y
341CONFIG_BLK_DEV_RAM_COUNT=16 356CONFIG_BLK_DEV_RAM_COUNT=16
342CONFIG_BLK_DEV_RAM_SIZE=32768 357CONFIG_BLK_DEV_RAM_SIZE=32768
343CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 358# CONFIG_BLK_DEV_XIP is not set
344# CONFIG_CDROM_PKTCDVD is not set 359# CONFIG_CDROM_PKTCDVD is not set
345# CONFIG_ATA_OVER_ETH is not set 360# CONFIG_ATA_OVER_ETH is not set
346CONFIG_MISC_DEVICES=y 361CONFIG_MISC_DEVICES=y
347# CONFIG_EEPROM_93CX6 is not set 362# CONFIG_EEPROM_93CX6 is not set
363# CONFIG_ENCLOSURE_SERVICES is not set
364CONFIG_HAVE_IDE=y
348# CONFIG_IDE is not set 365# CONFIG_IDE is not set
349 366
350# 367#
@@ -389,6 +406,7 @@ CONFIG_SCSI_LOWLEVEL=y
389# CONFIG_SCSI_DEBUG is not set 406# CONFIG_SCSI_DEBUG is not set
390CONFIG_ATA=y 407CONFIG_ATA=y
391# CONFIG_ATA_NONSTANDARD is not set 408# CONFIG_ATA_NONSTANDARD is not set
409# CONFIG_SATA_MV is not set
392CONFIG_SATA_FSL=y 410CONFIG_SATA_FSL=y
393# CONFIG_PATA_PLATFORM is not set 411# CONFIG_PATA_PLATFORM is not set
394CONFIG_MD=y 412CONFIG_MD=y
@@ -425,6 +443,7 @@ CONFIG_MARVELL_PHY=y
425# CONFIG_SMSC_PHY is not set 443# CONFIG_SMSC_PHY is not set
426# CONFIG_BROADCOM_PHY is not set 444# CONFIG_BROADCOM_PHY is not set
427# CONFIG_ICPLUS_PHY is not set 445# CONFIG_ICPLUS_PHY is not set
446# CONFIG_REALTEK_PHY is not set
428# CONFIG_FIXED_PHY is not set 447# CONFIG_FIXED_PHY is not set
429# CONFIG_MDIO_BITBANG is not set 448# CONFIG_MDIO_BITBANG is not set
430CONFIG_NET_ETHERNET=y 449CONFIG_NET_ETHERNET=y
@@ -435,6 +454,7 @@ CONFIG_MII=y
435# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 454# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
436# CONFIG_B44 is not set 455# CONFIG_B44 is not set
437CONFIG_NETDEV_1000=y 456CONFIG_NETDEV_1000=y
457# CONFIG_E1000E_ENABLED is not set
438CONFIG_GIANFAR=y 458CONFIG_GIANFAR=y
439CONFIG_GFAR_NAPI=y 459CONFIG_GFAR_NAPI=y
440# CONFIG_NETDEV_10000 is not set 460# CONFIG_NETDEV_10000 is not set
@@ -447,7 +467,6 @@ CONFIG_GFAR_NAPI=y
447# CONFIG_WAN is not set 467# CONFIG_WAN is not set
448# CONFIG_PPP is not set 468# CONFIG_PPP is not set
449# CONFIG_SLIP is not set 469# CONFIG_SLIP is not set
450# CONFIG_SHAPER is not set
451# CONFIG_NETCONSOLE is not set 470# CONFIG_NETCONSOLE is not set
452# CONFIG_NETPOLL is not set 471# CONFIG_NETPOLL is not set
453# CONFIG_NET_POLL_CONTROLLER is not set 472# CONFIG_NET_POLL_CONTROLLER is not set
@@ -542,14 +561,12 @@ CONFIG_I2C_MPC=y
542# 561#
543# Miscellaneous I2C Chip support 562# Miscellaneous I2C Chip support
544# 563#
545# CONFIG_SENSORS_DS1337 is not set
546# CONFIG_SENSORS_DS1374 is not set
547# CONFIG_DS1682 is not set 564# CONFIG_DS1682 is not set
548# CONFIG_SENSORS_EEPROM is not set 565# CONFIG_SENSORS_EEPROM is not set
549# CONFIG_SENSORS_PCF8574 is not set 566# CONFIG_SENSORS_PCF8574 is not set
550# CONFIG_SENSORS_PCA9539 is not set 567# CONFIG_PCF8575 is not set
551# CONFIG_SENSORS_PCF8591 is not set 568# CONFIG_SENSORS_PCF8591 is not set
552# CONFIG_SENSORS_M41T00 is not set 569# CONFIG_TPS65010 is not set
553# CONFIG_SENSORS_MAX6875 is not set 570# CONFIG_SENSORS_MAX6875 is not set
554# CONFIG_SENSORS_TSL2550 is not set 571# CONFIG_SENSORS_TSL2550 is not set
555# CONFIG_I2C_DEBUG_CORE is not set 572# CONFIG_I2C_DEBUG_CORE is not set
@@ -574,6 +591,7 @@ CONFIG_HWMON=y
574# CONFIG_SENSORS_ADM1031 is not set 591# CONFIG_SENSORS_ADM1031 is not set
575# CONFIG_SENSORS_ADM9240 is not set 592# CONFIG_SENSORS_ADM9240 is not set
576# CONFIG_SENSORS_ADT7470 is not set 593# CONFIG_SENSORS_ADT7470 is not set
594# CONFIG_SENSORS_ADT7473 is not set
577# CONFIG_SENSORS_ATXP1 is not set 595# CONFIG_SENSORS_ATXP1 is not set
578# CONFIG_SENSORS_DS1621 is not set 596# CONFIG_SENSORS_DS1621 is not set
579# CONFIG_SENSORS_F71805F is not set 597# CONFIG_SENSORS_F71805F is not set
@@ -601,6 +619,7 @@ CONFIG_HWMON=y
601# CONFIG_SENSORS_SMSC47M1 is not set 619# CONFIG_SENSORS_SMSC47M1 is not set
602# CONFIG_SENSORS_SMSC47M192 is not set 620# CONFIG_SENSORS_SMSC47M192 is not set
603# CONFIG_SENSORS_SMSC47B397 is not set 621# CONFIG_SENSORS_SMSC47B397 is not set
622# CONFIG_SENSORS_ADS7828 is not set
604# CONFIG_SENSORS_THMC50 is not set 623# CONFIG_SENSORS_THMC50 is not set
605# CONFIG_SENSORS_VT1211 is not set 624# CONFIG_SENSORS_VT1211 is not set
606# CONFIG_SENSORS_W83781D is not set 625# CONFIG_SENSORS_W83781D is not set
@@ -608,9 +627,11 @@ CONFIG_HWMON=y
608# CONFIG_SENSORS_W83792D is not set 627# CONFIG_SENSORS_W83792D is not set
609# CONFIG_SENSORS_W83793 is not set 628# CONFIG_SENSORS_W83793 is not set
610# CONFIG_SENSORS_W83L785TS is not set 629# CONFIG_SENSORS_W83L785TS is not set
630# CONFIG_SENSORS_W83L786NG is not set
611# CONFIG_SENSORS_W83627HF is not set 631# CONFIG_SENSORS_W83627HF is not set
612# CONFIG_SENSORS_W83627EHF is not set 632# CONFIG_SENSORS_W83627EHF is not set
613# CONFIG_HWMON_DEBUG_CHIP is not set 633# CONFIG_HWMON_DEBUG_CHIP is not set
634# CONFIG_THERMAL is not set
614CONFIG_WATCHDOG=y 635CONFIG_WATCHDOG=y
615# CONFIG_WATCHDOG_NOWAYOUT is not set 636# CONFIG_WATCHDOG_NOWAYOUT is not set
616 637
@@ -668,15 +689,13 @@ CONFIG_USB_ARCH_HAS_EHCI=y
668# 689#
669# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 690# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
670# 691#
671
672#
673# USB Gadget Support
674#
675# CONFIG_USB_GADGET is not set 692# CONFIG_USB_GADGET is not set
676# CONFIG_MMC is not set 693# CONFIG_MMC is not set
694# CONFIG_MEMSTICK is not set
677# CONFIG_NEW_LEDS is not set 695# CONFIG_NEW_LEDS is not set
678# CONFIG_EDAC is not set 696# CONFIG_EDAC is not set
679# CONFIG_RTC_CLASS is not set 697# CONFIG_RTC_CLASS is not set
698# CONFIG_DMADEVICES is not set
680 699
681# 700#
682# Userspace I/O 701# Userspace I/O
@@ -702,12 +721,10 @@ CONFIG_FS_MBCACHE=y
702# CONFIG_XFS_FS is not set 721# CONFIG_XFS_FS is not set
703# CONFIG_GFS2_FS is not set 722# CONFIG_GFS2_FS is not set
704# CONFIG_OCFS2_FS is not set 723# CONFIG_OCFS2_FS is not set
705# CONFIG_MINIX_FS is not set 724CONFIG_DNOTIFY=y
706# CONFIG_ROMFS_FS is not set
707CONFIG_INOTIFY=y 725CONFIG_INOTIFY=y
708CONFIG_INOTIFY_USER=y 726CONFIG_INOTIFY_USER=y
709# CONFIG_QUOTA is not set 727# CONFIG_QUOTA is not set
710CONFIG_DNOTIFY=y
711# CONFIG_AUTOFS_FS is not set 728# CONFIG_AUTOFS_FS is not set
712# CONFIG_AUTOFS4_FS is not set 729# CONFIG_AUTOFS4_FS is not set
713# CONFIG_FUSE_FS is not set 730# CONFIG_FUSE_FS is not set
@@ -749,8 +766,10 @@ CONFIG_TMPFS=y
749# CONFIG_EFS_FS is not set 766# CONFIG_EFS_FS is not set
750# CONFIG_CRAMFS is not set 767# CONFIG_CRAMFS is not set
751# CONFIG_VXFS_FS is not set 768# CONFIG_VXFS_FS is not set
769# CONFIG_MINIX_FS is not set
752# CONFIG_HPFS_FS is not set 770# CONFIG_HPFS_FS is not set
753# CONFIG_QNX4FS_FS is not set 771# CONFIG_QNX4FS_FS is not set
772# CONFIG_ROMFS_FS is not set
754# CONFIG_SYSV_FS is not set 773# CONFIG_SYSV_FS is not set
755# CONFIG_UFS_FS is not set 774# CONFIG_UFS_FS is not set
756CONFIG_NETWORK_FILESYSTEMS=y 775CONFIG_NETWORK_FILESYSTEMS=y
@@ -813,10 +832,6 @@ CONFIG_PLIST=y
813CONFIG_HAS_IOMEM=y 832CONFIG_HAS_IOMEM=y
814CONFIG_HAS_IOPORT=y 833CONFIG_HAS_IOPORT=y
815CONFIG_HAS_DMA=y 834CONFIG_HAS_DMA=y
816CONFIG_INSTRUMENTATION=y
817# CONFIG_PROFILING is not set
818# CONFIG_KPROBES is not set
819# CONFIG_MARKERS is not set
820 835
821# 836#
822# Kernel hacking 837# Kernel hacking
@@ -846,6 +861,7 @@ CONFIG_ASYNC_XOR=y
846CONFIG_CRYPTO=y 861CONFIG_CRYPTO=y
847CONFIG_CRYPTO_ALGAPI=y 862CONFIG_CRYPTO_ALGAPI=y
848CONFIG_CRYPTO_BLKCIPHER=y 863CONFIG_CRYPTO_BLKCIPHER=y
864# CONFIG_CRYPTO_SEQIV is not set
849CONFIG_CRYPTO_MANAGER=y 865CONFIG_CRYPTO_MANAGER=y
850# CONFIG_CRYPTO_HMAC is not set 866# CONFIG_CRYPTO_HMAC is not set
851# CONFIG_CRYPTO_XCBC is not set 867# CONFIG_CRYPTO_XCBC is not set
@@ -863,6 +879,9 @@ CONFIG_CRYPTO_CBC=y
863CONFIG_CRYPTO_PCBC=m 879CONFIG_CRYPTO_PCBC=m
864# CONFIG_CRYPTO_LRW is not set 880# CONFIG_CRYPTO_LRW is not set
865# CONFIG_CRYPTO_XTS is not set 881# CONFIG_CRYPTO_XTS is not set
882# CONFIG_CRYPTO_CTR is not set
883# CONFIG_CRYPTO_GCM is not set
884# CONFIG_CRYPTO_CCM is not set
866# CONFIG_CRYPTO_CRYPTD is not set 885# CONFIG_CRYPTO_CRYPTD is not set
867CONFIG_CRYPTO_DES=y 886CONFIG_CRYPTO_DES=y
868# CONFIG_CRYPTO_FCRYPT is not set 887# CONFIG_CRYPTO_FCRYPT is not set
@@ -877,11 +896,13 @@ CONFIG_CRYPTO_DES=y
877# CONFIG_CRYPTO_KHAZAD is not set 896# CONFIG_CRYPTO_KHAZAD is not set
878# CONFIG_CRYPTO_ANUBIS is not set 897# CONFIG_CRYPTO_ANUBIS is not set
879# CONFIG_CRYPTO_SEED is not set 898# CONFIG_CRYPTO_SEED is not set
899# CONFIG_CRYPTO_SALSA20 is not set
880# CONFIG_CRYPTO_DEFLATE is not set 900# CONFIG_CRYPTO_DEFLATE is not set
881# CONFIG_CRYPTO_MICHAEL_MIC is not set 901# CONFIG_CRYPTO_MICHAEL_MIC is not set
882# CONFIG_CRYPTO_CRC32C is not set 902# CONFIG_CRYPTO_CRC32C is not set
883# CONFIG_CRYPTO_CAMELLIA is not set 903# CONFIG_CRYPTO_CAMELLIA is not set
884# CONFIG_CRYPTO_TEST is not set 904# CONFIG_CRYPTO_TEST is not set
885# CONFIG_CRYPTO_AUTHENC is not set 905# CONFIG_CRYPTO_AUTHENC is not set
906# CONFIG_CRYPTO_LZO is not set
886CONFIG_CRYPTO_HW=y 907CONFIG_CRYPTO_HW=y
887# CONFIG_PPC_CLOCK is not set 908# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index a9807f083bc4..1f6cf68e89f8 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Mon Jan 28 13:14:19 2008 4# Mon Mar 24 08:48:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -28,6 +29,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
31CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -65,17 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
65# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
66# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
67# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
68# CONFIG_USER_NS is not set
69# CONFIG_PID_NS is not set
70# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
74CONFIG_FAIR_GROUP_SCHED=y 75CONFIG_FAIR_GROUP_SCHED=y
75CONFIG_FAIR_USER_SCHED=y 76# CONFIG_RT_GROUP_SCHED is not set
76# CONFIG_FAIR_CGROUP_SCHED is not set 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
79CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,17 +92,26 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 92CONFIG_PRINTK=y
89CONFIG_BUG=y 93CONFIG_BUG=y
90CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 97CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
94# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
95CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 103CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
99CONFIG_SLAB=y 105CONFIG_SLAB=y
100# CONFIG_SLUB is not set 106# CONFIG_SLUB is not set
101# CONFIG_SLOB is not set 107# CONFIG_SLOB is not set
108# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
102CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -127,6 +140,7 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 140# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y
130 144
131# 145#
132# Platform support 146# Platform support
@@ -135,8 +149,8 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
135# CONFIG_PPC_82xx is not set 149# CONFIG_PPC_82xx is not set
136CONFIG_PPC_83xx=y 150CONFIG_PPC_83xx=y
137# CONFIG_PPC_86xx is not set 151# CONFIG_PPC_86xx is not set
138# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 153# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
@@ -181,13 +195,17 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 195# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 196# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 197CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set
184CONFIG_PREEMPT_NONE=y 199CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 200# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 201# CONFIG_PREEMPT is not set
187CONFIG_BINFMT_ELF=y 202CONFIG_BINFMT_ELF=y
188# CONFIG_BINFMT_MISC is not set 203# CONFIG_BINFMT_MISC is not set
189CONFIG_MATH_EMULATION=y 204CONFIG_MATH_EMULATION=y
205# CONFIG_IOMMU_HELPER is not set
190CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
191CONFIG_ARCH_FLATMEM_ENABLE=y 209CONFIG_ARCH_FLATMEM_ENABLE=y
192CONFIG_ARCH_POPULATES_NODE_MAP=y 210CONFIG_ARCH_POPULATES_NODE_MAP=y
193CONFIG_SELECT_MEMORY_MODEL=y 211CONFIG_SELECT_MEMORY_MODEL=y
@@ -206,11 +224,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_PROC_DEVICETREE=y 224CONFIG_PROC_DEVICETREE=y
207# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
208# CONFIG_PM is not set 226# CONFIG_PM is not set
209CONFIG_SUSPEND_UP_POSSIBLE=y
210CONFIG_HIBERNATION_UP_POSSIBLE=y
211CONFIG_SECCOMP=y 227CONFIG_SECCOMP=y
212CONFIG_WANT_DEVICE_TREE=y
213CONFIG_DEVICE_TREE=""
214CONFIG_ISA_DMA_API=y 228CONFIG_ISA_DMA_API=y
215 229
216# 230#
@@ -255,6 +269,7 @@ CONFIG_XFRM=y
255CONFIG_XFRM_USER=m 269CONFIG_XFRM_USER=m
256# CONFIG_XFRM_SUB_POLICY is not set 270# CONFIG_XFRM_SUB_POLICY is not set
257# CONFIG_XFRM_MIGRATE is not set 271# CONFIG_XFRM_MIGRATE is not set
272# CONFIG_XFRM_STATISTICS is not set
258# CONFIG_NET_KEY is not set 273# CONFIG_NET_KEY is not set
259CONFIG_INET=y 274CONFIG_INET=y
260CONFIG_IP_MULTICAST=y 275CONFIG_IP_MULTICAST=y
@@ -310,6 +325,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
310# 325#
311# CONFIG_NET_PKTGEN is not set 326# CONFIG_NET_PKTGEN is not set
312# CONFIG_HAMRADIO is not set 327# CONFIG_HAMRADIO is not set
328# CONFIG_CAN is not set
313# CONFIG_IRDA is not set 329# CONFIG_IRDA is not set
314# CONFIG_BT is not set 330# CONFIG_BT is not set
315# CONFIG_AF_RXRPC is not set 331# CONFIG_AF_RXRPC is not set
@@ -349,11 +365,13 @@ CONFIG_BLK_DEV_LOOP=y
349CONFIG_BLK_DEV_RAM=y 365CONFIG_BLK_DEV_RAM=y
350CONFIG_BLK_DEV_RAM_COUNT=16 366CONFIG_BLK_DEV_RAM_COUNT=16
351CONFIG_BLK_DEV_RAM_SIZE=32768 367CONFIG_BLK_DEV_RAM_SIZE=32768
352CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 368# CONFIG_BLK_DEV_XIP is not set
353# CONFIG_CDROM_PKTCDVD is not set 369# CONFIG_CDROM_PKTCDVD is not set
354# CONFIG_ATA_OVER_ETH is not set 370# CONFIG_ATA_OVER_ETH is not set
355CONFIG_MISC_DEVICES=y 371CONFIG_MISC_DEVICES=y
356# CONFIG_EEPROM_93CX6 is not set 372# CONFIG_EEPROM_93CX6 is not set
373# CONFIG_ENCLOSURE_SERVICES is not set
374CONFIG_HAVE_IDE=y
357# CONFIG_IDE is not set 375# CONFIG_IDE is not set
358 376
359# 377#
@@ -398,6 +416,7 @@ CONFIG_SCSI_LOWLEVEL=y
398# CONFIG_SCSI_DEBUG is not set 416# CONFIG_SCSI_DEBUG is not set
399CONFIG_ATA=y 417CONFIG_ATA=y
400# CONFIG_ATA_NONSTANDARD is not set 418# CONFIG_ATA_NONSTANDARD is not set
419# CONFIG_SATA_MV is not set
401CONFIG_SATA_FSL=y 420CONFIG_SATA_FSL=y
402# CONFIG_PATA_PLATFORM is not set 421# CONFIG_PATA_PLATFORM is not set
403# CONFIG_MD is not set 422# CONFIG_MD is not set
@@ -424,6 +443,7 @@ CONFIG_VITESSE_PHY=y
424# CONFIG_SMSC_PHY is not set 443# CONFIG_SMSC_PHY is not set
425# CONFIG_BROADCOM_PHY is not set 444# CONFIG_BROADCOM_PHY is not set
426CONFIG_ICPLUS_PHY=y 445CONFIG_ICPLUS_PHY=y
446# CONFIG_REALTEK_PHY is not set
427# CONFIG_FIXED_PHY is not set 447# CONFIG_FIXED_PHY is not set
428# CONFIG_MDIO_BITBANG is not set 448# CONFIG_MDIO_BITBANG is not set
429CONFIG_NET_ETHERNET=y 449CONFIG_NET_ETHERNET=y
@@ -434,9 +454,14 @@ CONFIG_MII=y
434# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 454# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
435# CONFIG_B44 is not set 455# CONFIG_B44 is not set
436CONFIG_NETDEV_1000=y 456CONFIG_NETDEV_1000=y
457# CONFIG_E1000E_ENABLED is not set
437CONFIG_GIANFAR=y 458CONFIG_GIANFAR=y
438# CONFIG_GFAR_NAPI is not set 459# CONFIG_GFAR_NAPI is not set
439CONFIG_UCC_GETH=y 460CONFIG_UCC_GETH=y
461# CONFIG_UGETH_NAPI is not set
462# CONFIG_UGETH_MAGIC_PACKET is not set
463# CONFIG_UGETH_FILTERING is not set
464# CONFIG_UGETH_TX_ON_DEMAND is not set
440CONFIG_NETDEV_10000=y 465CONFIG_NETDEV_10000=y
441 466
442# 467#
@@ -447,7 +472,6 @@ CONFIG_NETDEV_10000=y
447# CONFIG_WAN is not set 472# CONFIG_WAN is not set
448# CONFIG_PPP is not set 473# CONFIG_PPP is not set
449# CONFIG_SLIP is not set 474# CONFIG_SLIP is not set
450# CONFIG_SHAPER is not set
451# CONFIG_NETCONSOLE is not set 475# CONFIG_NETCONSOLE is not set
452# CONFIG_NETPOLL is not set 476# CONFIG_NETPOLL is not set
453# CONFIG_NET_POLL_CONTROLLER is not set 477# CONFIG_NET_POLL_CONTROLLER is not set
@@ -543,14 +567,12 @@ CONFIG_I2C_MPC=y
543# 567#
544# Miscellaneous I2C Chip support 568# Miscellaneous I2C Chip support
545# 569#
546# CONFIG_SENSORS_DS1337 is not set
547# CONFIG_SENSORS_DS1374 is not set
548# CONFIG_DS1682 is not set 570# CONFIG_DS1682 is not set
549# CONFIG_SENSORS_EEPROM is not set 571# CONFIG_SENSORS_EEPROM is not set
550# CONFIG_SENSORS_PCF8574 is not set 572# CONFIG_SENSORS_PCF8574 is not set
551# CONFIG_SENSORS_PCA9539 is not set 573# CONFIG_PCF8575 is not set
552# CONFIG_SENSORS_PCF8591 is not set 574# CONFIG_SENSORS_PCF8591 is not set
553# CONFIG_SENSORS_M41T00 is not set 575# CONFIG_TPS65010 is not set
554# CONFIG_SENSORS_MAX6875 is not set 576# CONFIG_SENSORS_MAX6875 is not set
555# CONFIG_SENSORS_TSL2550 is not set 577# CONFIG_SENSORS_TSL2550 is not set
556# CONFIG_I2C_DEBUG_CORE is not set 578# CONFIG_I2C_DEBUG_CORE is not set
@@ -575,6 +597,7 @@ CONFIG_HWMON=y
575# CONFIG_SENSORS_ADM1031 is not set 597# CONFIG_SENSORS_ADM1031 is not set
576# CONFIG_SENSORS_ADM9240 is not set 598# CONFIG_SENSORS_ADM9240 is not set
577# CONFIG_SENSORS_ADT7470 is not set 599# CONFIG_SENSORS_ADT7470 is not set
600# CONFIG_SENSORS_ADT7473 is not set
578# CONFIG_SENSORS_ATXP1 is not set 601# CONFIG_SENSORS_ATXP1 is not set
579# CONFIG_SENSORS_DS1621 is not set 602# CONFIG_SENSORS_DS1621 is not set
580# CONFIG_SENSORS_F71805F is not set 603# CONFIG_SENSORS_F71805F is not set
@@ -602,6 +625,7 @@ CONFIG_HWMON=y
602# CONFIG_SENSORS_SMSC47M1 is not set 625# CONFIG_SENSORS_SMSC47M1 is not set
603# CONFIG_SENSORS_SMSC47M192 is not set 626# CONFIG_SENSORS_SMSC47M192 is not set
604# CONFIG_SENSORS_SMSC47B397 is not set 627# CONFIG_SENSORS_SMSC47B397 is not set
628# CONFIG_SENSORS_ADS7828 is not set
605# CONFIG_SENSORS_THMC50 is not set 629# CONFIG_SENSORS_THMC50 is not set
606# CONFIG_SENSORS_VT1211 is not set 630# CONFIG_SENSORS_VT1211 is not set
607# CONFIG_SENSORS_W83781D is not set 631# CONFIG_SENSORS_W83781D is not set
@@ -609,9 +633,11 @@ CONFIG_HWMON=y
609# CONFIG_SENSORS_W83792D is not set 633# CONFIG_SENSORS_W83792D is not set
610# CONFIG_SENSORS_W83793 is not set 634# CONFIG_SENSORS_W83793 is not set
611# CONFIG_SENSORS_W83L785TS is not set 635# CONFIG_SENSORS_W83L785TS is not set
636# CONFIG_SENSORS_W83L786NG is not set
612# CONFIG_SENSORS_W83627HF is not set 637# CONFIG_SENSORS_W83627HF is not set
613# CONFIG_SENSORS_W83627EHF is not set 638# CONFIG_SENSORS_W83627EHF is not set
614# CONFIG_HWMON_DEBUG_CHIP is not set 639# CONFIG_HWMON_DEBUG_CHIP is not set
640# CONFIG_THERMAL is not set
615CONFIG_WATCHDOG=y 641CONFIG_WATCHDOG=y
616# CONFIG_WATCHDOG_NOWAYOUT is not set 642# CONFIG_WATCHDOG_NOWAYOUT is not set
617 643
@@ -665,21 +691,17 @@ CONFIG_USB_ARCH_HAS_HCD=y
665# CONFIG_USB_ARCH_HAS_OHCI is not set 691# CONFIG_USB_ARCH_HAS_OHCI is not set
666CONFIG_USB_ARCH_HAS_EHCI=y 692CONFIG_USB_ARCH_HAS_EHCI=y
667# CONFIG_USB is not set 693# CONFIG_USB is not set
668CONFIG_USB_EHCI_ROOT_HUB_TT=y
669CONFIG_USB_EHCI_FSL=y
670 694
671# 695#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
673# 697#
674
675#
676# USB Gadget Support
677#
678# CONFIG_USB_GADGET is not set 698# CONFIG_USB_GADGET is not set
679# CONFIG_MMC is not set 699# CONFIG_MMC is not set
700# CONFIG_MEMSTICK is not set
680# CONFIG_NEW_LEDS is not set 701# CONFIG_NEW_LEDS is not set
681# CONFIG_EDAC is not set 702# CONFIG_EDAC is not set
682# CONFIG_RTC_CLASS is not set 703# CONFIG_RTC_CLASS is not set
704# CONFIG_DMADEVICES is not set
683 705
684# 706#
685# Userspace I/O 707# Userspace I/O
@@ -705,12 +727,10 @@ CONFIG_FS_MBCACHE=y
705# CONFIG_XFS_FS is not set 727# CONFIG_XFS_FS is not set
706# CONFIG_GFS2_FS is not set 728# CONFIG_GFS2_FS is not set
707# CONFIG_OCFS2_FS is not set 729# CONFIG_OCFS2_FS is not set
708# CONFIG_MINIX_FS is not set 730CONFIG_DNOTIFY=y
709# CONFIG_ROMFS_FS is not set
710CONFIG_INOTIFY=y 731CONFIG_INOTIFY=y
711CONFIG_INOTIFY_USER=y 732CONFIG_INOTIFY_USER=y
712# CONFIG_QUOTA is not set 733# CONFIG_QUOTA is not set
713CONFIG_DNOTIFY=y
714# CONFIG_AUTOFS_FS is not set 734# CONFIG_AUTOFS_FS is not set
715# CONFIG_AUTOFS4_FS is not set 735# CONFIG_AUTOFS4_FS is not set
716# CONFIG_FUSE_FS is not set 736# CONFIG_FUSE_FS is not set
@@ -752,8 +772,10 @@ CONFIG_TMPFS=y
752# CONFIG_EFS_FS is not set 772# CONFIG_EFS_FS is not set
753# CONFIG_CRAMFS is not set 773# CONFIG_CRAMFS is not set
754# CONFIG_VXFS_FS is not set 774# CONFIG_VXFS_FS is not set
775# CONFIG_MINIX_FS is not set
755# CONFIG_HPFS_FS is not set 776# CONFIG_HPFS_FS is not set
756# CONFIG_QNX4FS_FS is not set 777# CONFIG_QNX4FS_FS is not set
778# CONFIG_ROMFS_FS is not set
757# CONFIG_SYSV_FS is not set 779# CONFIG_SYSV_FS is not set
758# CONFIG_UFS_FS is not set 780# CONFIG_UFS_FS is not set
759CONFIG_NETWORK_FILESYSTEMS=y 781CONFIG_NETWORK_FILESYSTEMS=y
@@ -801,6 +823,8 @@ CONFIG_MSDOS_PARTITION=y
801# CONFIG_SYSV68_PARTITION is not set 823# CONFIG_SYSV68_PARTITION is not set
802# CONFIG_NLS is not set 824# CONFIG_NLS is not set
803# CONFIG_DLM is not set 825# CONFIG_DLM is not set
826CONFIG_UCC_FAST=y
827CONFIG_UCC=y
804 828
805# 829#
806# Library routines 830# Library routines
@@ -816,10 +840,6 @@ CONFIG_PLIST=y
816CONFIG_HAS_IOMEM=y 840CONFIG_HAS_IOMEM=y
817CONFIG_HAS_IOPORT=y 841CONFIG_HAS_IOPORT=y
818CONFIG_HAS_DMA=y 842CONFIG_HAS_DMA=y
819CONFIG_INSTRUMENTATION=y
820# CONFIG_PROFILING is not set
821# CONFIG_KPROBES is not set
822# CONFIG_MARKERS is not set
823 843
824# 844#
825# Kernel hacking 845# Kernel hacking
@@ -845,6 +865,7 @@ CONFIG_ENABLE_MUST_CHECK=y
845CONFIG_CRYPTO=y 865CONFIG_CRYPTO=y
846CONFIG_CRYPTO_ALGAPI=y 866CONFIG_CRYPTO_ALGAPI=y
847CONFIG_CRYPTO_BLKCIPHER=y 867CONFIG_CRYPTO_BLKCIPHER=y
868# CONFIG_CRYPTO_SEQIV is not set
848CONFIG_CRYPTO_MANAGER=y 869CONFIG_CRYPTO_MANAGER=y
849# CONFIG_CRYPTO_HMAC is not set 870# CONFIG_CRYPTO_HMAC is not set
850# CONFIG_CRYPTO_XCBC is not set 871# CONFIG_CRYPTO_XCBC is not set
@@ -862,6 +883,9 @@ CONFIG_CRYPTO_CBC=y
862CONFIG_CRYPTO_PCBC=m 883CONFIG_CRYPTO_PCBC=m
863# CONFIG_CRYPTO_LRW is not set 884# CONFIG_CRYPTO_LRW is not set
864# CONFIG_CRYPTO_XTS is not set 885# CONFIG_CRYPTO_XTS is not set
886# CONFIG_CRYPTO_CTR is not set
887# CONFIG_CRYPTO_GCM is not set
888# CONFIG_CRYPTO_CCM is not set
865# CONFIG_CRYPTO_CRYPTD is not set 889# CONFIG_CRYPTO_CRYPTD is not set
866CONFIG_CRYPTO_DES=y 890CONFIG_CRYPTO_DES=y
867# CONFIG_CRYPTO_FCRYPT is not set 891# CONFIG_CRYPTO_FCRYPT is not set
@@ -876,12 +900,14 @@ CONFIG_CRYPTO_DES=y
876# CONFIG_CRYPTO_KHAZAD is not set 900# CONFIG_CRYPTO_KHAZAD is not set
877# CONFIG_CRYPTO_ANUBIS is not set 901# CONFIG_CRYPTO_ANUBIS is not set
878# CONFIG_CRYPTO_SEED is not set 902# CONFIG_CRYPTO_SEED is not set
903# CONFIG_CRYPTO_SALSA20 is not set
879# CONFIG_CRYPTO_DEFLATE is not set 904# CONFIG_CRYPTO_DEFLATE is not set
880# CONFIG_CRYPTO_MICHAEL_MIC is not set 905# CONFIG_CRYPTO_MICHAEL_MIC is not set
881# CONFIG_CRYPTO_CRC32C is not set 906# CONFIG_CRYPTO_CRC32C is not set
882# CONFIG_CRYPTO_CAMELLIA is not set 907# CONFIG_CRYPTO_CAMELLIA is not set
883# CONFIG_CRYPTO_TEST is not set 908# CONFIG_CRYPTO_TEST is not set
884# CONFIG_CRYPTO_AUTHENC is not set 909# CONFIG_CRYPTO_AUTHENC is not set
910# CONFIG_CRYPTO_LZO is not set
885CONFIG_CRYPTO_HW=y 911CONFIG_CRYPTO_HW=y
886# CONFIG_PPC_CLOCK is not set 912# CONFIG_PPC_CLOCK is not set
887CONFIG_PPC_LIB_RHEAP=y 913CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc8540_ads_defconfig b/arch/powerpc/configs/mpc8540_ads_defconfig
index 3791e29e7d06..b998539da86e 100644
--- a/arch/powerpc/configs/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/mpc8540_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:44 2007 4# Mon Mar 24 08:48:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,15 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
79CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +94,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 94CONFIG_PRINTK=y
90CONFIG_BUG=y 95CONFIG_BUG=y
91CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 99CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 101CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 105CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
102CONFIG_SLUB=y 109CONFIG_SLUB=y
103# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
@@ -123,22 +137,30 @@ CONFIG_DEFAULT_AS=y
123# CONFIG_DEFAULT_CFQ is not set 137# CONFIG_DEFAULT_CFQ is not set
124# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
140CONFIG_CLASSIC_RCU=y
126 141
127# 142#
128# Platform support 143# Platform support
129# 144#
130# CONFIG_PPC_MPC52xx is not set 145# CONFIG_PPC_MPC512x is not set
131# CONFIG_PPC_MPC5200 is not set 146# CONFIG_PPC_MPC5121 is not set
132# CONFIG_PPC_CELL is not set 147# CONFIG_PPC_CELL is not set
133# CONFIG_PPC_CELL_NATIVE is not set 148# CONFIG_PPC_CELL_NATIVE is not set
134# CONFIG_PQ2ADS is not set 149# CONFIG_PQ2ADS is not set
150CONFIG_MPC85xx=y
135CONFIG_MPC8540_ADS=y 151CONFIG_MPC8540_ADS=y
136# CONFIG_MPC8560_ADS is not set 152# CONFIG_MPC8560_ADS is not set
137# CONFIG_MPC85xx_CDS is not set 153# CONFIG_MPC85xx_CDS is not set
138# CONFIG_MPC85xx_MDS is not set 154# CONFIG_MPC85xx_MDS is not set
139# CONFIG_MPC85xx_DS is not set 155# CONFIG_MPC85xx_DS is not set
140CONFIG_MPC8540=y 156# CONFIG_STX_GP3 is not set
141CONFIG_MPC85xx=y 157# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set
159# CONFIG_TQM8555 is not set
160# CONFIG_TQM8560 is not set
161# CONFIG_SBC8548 is not set
162# CONFIG_SBC8560 is not set
163# CONFIG_IPIC is not set
142CONFIG_MPIC=y 164CONFIG_MPIC=y
143# CONFIG_MPIC_WEIRD is not set 165# CONFIG_MPIC_WEIRD is not set
144# CONFIG_PPC_I8259 is not set 166# CONFIG_PPC_I8259 is not set
@@ -165,13 +187,17 @@ CONFIG_HZ_250=y
165# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
166# CONFIG_HZ_1000 is not set 188# CONFIG_HZ_1000 is not set
167CONFIG_HZ=250 189CONFIG_HZ=250
190# CONFIG_SCHED_HRTICK is not set
168CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
169# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
170# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
171CONFIG_BINFMT_ELF=y 194CONFIG_BINFMT_ELF=y
172CONFIG_BINFMT_MISC=y 195CONFIG_BINFMT_MISC=y
173CONFIG_MATH_EMULATION=y 196CONFIG_MATH_EMULATION=y
197# CONFIG_IOMMU_HELPER is not set
174CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 198CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
199CONFIG_ARCH_HAS_WALK_MEMORY=y
200CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
175CONFIG_ARCH_FLATMEM_ENABLE=y 201CONFIG_ARCH_FLATMEM_ENABLE=y
176CONFIG_ARCH_POPULATES_NODE_MAP=y 202CONFIG_ARCH_POPULATES_NODE_MAP=y
177CONFIG_SELECT_MEMORY_MODEL=y 203CONFIG_SELECT_MEMORY_MODEL=y
@@ -190,18 +216,13 @@ CONFIG_VIRT_TO_BUS=y
190CONFIG_PROC_DEVICETREE=y 216CONFIG_PROC_DEVICETREE=y
191# CONFIG_CMDLINE_BOOL is not set 217# CONFIG_CMDLINE_BOOL is not set
192# CONFIG_PM is not set 218# CONFIG_PM is not set
193CONFIG_SUSPEND_UP_POSSIBLE=y
194CONFIG_HIBERNATION_UP_POSSIBLE=y
195# CONFIG_SECCOMP is not set 219# CONFIG_SECCOMP is not set
196CONFIG_WANT_DEVICE_TREE=y
197CONFIG_DEVICE_TREE=""
198CONFIG_ISA_DMA_API=y 220CONFIG_ISA_DMA_API=y
199 221
200# 222#
201# Bus options 223# Bus options
202# 224#
203CONFIG_ZONE_DMA=y 225CONFIG_ZONE_DMA=y
204CONFIG_PPC_INDIRECT_PCI=y
205CONFIG_FSL_SOC=y 226CONFIG_FSL_SOC=y
206# CONFIG_PCI is not set 227# CONFIG_PCI is not set
207# CONFIG_PCI_DOMAINS is not set 228# CONFIG_PCI_DOMAINS is not set
@@ -238,6 +259,7 @@ CONFIG_XFRM=y
238CONFIG_XFRM_USER=y 259CONFIG_XFRM_USER=y
239# CONFIG_XFRM_SUB_POLICY is not set 260# CONFIG_XFRM_SUB_POLICY is not set
240# CONFIG_XFRM_MIGRATE is not set 261# CONFIG_XFRM_MIGRATE is not set
262# CONFIG_XFRM_STATISTICS is not set
241# CONFIG_NET_KEY is not set 263# CONFIG_NET_KEY is not set
242CONFIG_INET=y 264CONFIG_INET=y
243CONFIG_IP_MULTICAST=y 265CONFIG_IP_MULTICAST=y
@@ -293,6 +315,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
293# 315#
294# CONFIG_NET_PKTGEN is not set 316# CONFIG_NET_PKTGEN is not set
295# CONFIG_HAMRADIO is not set 317# CONFIG_HAMRADIO is not set
318# CONFIG_CAN is not set
296# CONFIG_IRDA is not set 319# CONFIG_IRDA is not set
297# CONFIG_BT is not set 320# CONFIG_BT is not set
298# CONFIG_AF_RXRPC is not set 321# CONFIG_AF_RXRPC is not set
@@ -334,11 +357,13 @@ CONFIG_BLK_DEV_LOOP=y
334CONFIG_BLK_DEV_RAM=y 357CONFIG_BLK_DEV_RAM=y
335CONFIG_BLK_DEV_RAM_COUNT=16 358CONFIG_BLK_DEV_RAM_COUNT=16
336CONFIG_BLK_DEV_RAM_SIZE=32768 359CONFIG_BLK_DEV_RAM_SIZE=32768
337CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 360# CONFIG_BLK_DEV_XIP is not set
338# CONFIG_CDROM_PKTCDVD is not set 361# CONFIG_CDROM_PKTCDVD is not set
339# CONFIG_ATA_OVER_ETH is not set 362# CONFIG_ATA_OVER_ETH is not set
340CONFIG_MISC_DEVICES=y 363CONFIG_MISC_DEVICES=y
341# CONFIG_EEPROM_93CX6 is not set 364# CONFIG_EEPROM_93CX6 is not set
365# CONFIG_ENCLOSURE_SERVICES is not set
366CONFIG_HAVE_IDE=y
342# CONFIG_IDE is not set 367# CONFIG_IDE is not set
343 368
344# 369#
@@ -373,6 +398,7 @@ CONFIG_PHYLIB=y
373# CONFIG_SMSC_PHY is not set 398# CONFIG_SMSC_PHY is not set
374# CONFIG_BROADCOM_PHY is not set 399# CONFIG_BROADCOM_PHY is not set
375# CONFIG_ICPLUS_PHY is not set 400# CONFIG_ICPLUS_PHY is not set
401# CONFIG_REALTEK_PHY is not set
376# CONFIG_FIXED_PHY is not set 402# CONFIG_FIXED_PHY is not set
377# CONFIG_MDIO_BITBANG is not set 403# CONFIG_MDIO_BITBANG is not set
378CONFIG_NET_ETHERNET=y 404CONFIG_NET_ETHERNET=y
@@ -383,6 +409,7 @@ CONFIG_MII=y
383# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 409# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
384# CONFIG_B44 is not set 410# CONFIG_B44 is not set
385CONFIG_NETDEV_1000=y 411CONFIG_NETDEV_1000=y
412# CONFIG_E1000E_ENABLED is not set
386CONFIG_GIANFAR=y 413CONFIG_GIANFAR=y
387CONFIG_GFAR_NAPI=y 414CONFIG_GFAR_NAPI=y
388CONFIG_NETDEV_10000=y 415CONFIG_NETDEV_10000=y
@@ -395,7 +422,6 @@ CONFIG_NETDEV_10000=y
395# CONFIG_WAN is not set 422# CONFIG_WAN is not set
396# CONFIG_PPP is not set 423# CONFIG_PPP is not set
397# CONFIG_SLIP is not set 424# CONFIG_SLIP is not set
398# CONFIG_SHAPER is not set
399# CONFIG_NETCONSOLE is not set 425# CONFIG_NETCONSOLE is not set
400# CONFIG_NETPOLL is not set 426# CONFIG_NETPOLL is not set
401# CONFIG_NET_POLL_CONTROLLER is not set 427# CONFIG_NET_POLL_CONTROLLER is not set
@@ -489,6 +515,7 @@ CONFIG_HWMON=y
489# CONFIG_SENSORS_W83627HF is not set 515# CONFIG_SENSORS_W83627HF is not set
490# CONFIG_SENSORS_W83627EHF is not set 516# CONFIG_SENSORS_W83627EHF is not set
491# CONFIG_HWMON_DEBUG_CHIP is not set 517# CONFIG_HWMON_DEBUG_CHIP is not set
518# CONFIG_THERMAL is not set
492# CONFIG_WATCHDOG is not set 519# CONFIG_WATCHDOG is not set
493 520
494# 521#
@@ -538,15 +565,13 @@ CONFIG_USB_SUPPORT=y
538# 565#
539# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 566# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
540# 567#
541
542#
543# USB Gadget Support
544#
545# CONFIG_USB_GADGET is not set 568# CONFIG_USB_GADGET is not set
546# CONFIG_MMC is not set 569# CONFIG_MMC is not set
570# CONFIG_MEMSTICK is not set
547# CONFIG_NEW_LEDS is not set 571# CONFIG_NEW_LEDS is not set
548# CONFIG_EDAC is not set 572# CONFIG_EDAC is not set
549# CONFIG_RTC_CLASS is not set 573# CONFIG_RTC_CLASS is not set
574# CONFIG_DMADEVICES is not set
550 575
551# 576#
552# Userspace I/O 577# Userspace I/O
@@ -572,12 +597,10 @@ CONFIG_FS_MBCACHE=y
572# CONFIG_XFS_FS is not set 597# CONFIG_XFS_FS is not set
573# CONFIG_GFS2_FS is not set 598# CONFIG_GFS2_FS is not set
574# CONFIG_OCFS2_FS is not set 599# CONFIG_OCFS2_FS is not set
575# CONFIG_MINIX_FS is not set 600CONFIG_DNOTIFY=y
576# CONFIG_ROMFS_FS is not set
577CONFIG_INOTIFY=y 601CONFIG_INOTIFY=y
578CONFIG_INOTIFY_USER=y 602CONFIG_INOTIFY_USER=y
579# CONFIG_QUOTA is not set 603# CONFIG_QUOTA is not set
580CONFIG_DNOTIFY=y
581# CONFIG_AUTOFS_FS is not set 604# CONFIG_AUTOFS_FS is not set
582# CONFIG_AUTOFS4_FS is not set 605# CONFIG_AUTOFS4_FS is not set
583# CONFIG_FUSE_FS is not set 606# CONFIG_FUSE_FS is not set
@@ -619,8 +642,10 @@ CONFIG_TMPFS=y
619# CONFIG_EFS_FS is not set 642# CONFIG_EFS_FS is not set
620# CONFIG_CRAMFS is not set 643# CONFIG_CRAMFS is not set
621# CONFIG_VXFS_FS is not set 644# CONFIG_VXFS_FS is not set
645# CONFIG_MINIX_FS is not set
622# CONFIG_HPFS_FS is not set 646# CONFIG_HPFS_FS is not set
623# CONFIG_QNX4FS_FS is not set 647# CONFIG_QNX4FS_FS is not set
648# CONFIG_ROMFS_FS is not set
624# CONFIG_SYSV_FS is not set 649# CONFIG_SYSV_FS is not set
625# CONFIG_UFS_FS is not set 650# CONFIG_UFS_FS is not set
626CONFIG_NETWORK_FILESYSTEMS=y 651CONFIG_NETWORK_FILESYSTEMS=y
@@ -661,7 +686,6 @@ CONFIG_PARTITION_ADVANCED=y
661# CONFIG_SYSV68_PARTITION is not set 686# CONFIG_SYSV68_PARTITION is not set
662# CONFIG_NLS is not set 687# CONFIG_NLS is not set
663# CONFIG_DLM is not set 688# CONFIG_DLM is not set
664# CONFIG_UCC_SLOW is not set
665 689
666# 690#
667# Library routines 691# Library routines
@@ -677,7 +701,6 @@ CONFIG_PLIST=y
677CONFIG_HAS_IOMEM=y 701CONFIG_HAS_IOMEM=y
678CONFIG_HAS_IOPORT=y 702CONFIG_HAS_IOPORT=y
679CONFIG_HAS_DMA=y 703CONFIG_HAS_DMA=y
680# CONFIG_INSTRUMENTATION is not set
681 704
682# 705#
683# Kernel hacking 706# Kernel hacking
@@ -696,6 +719,7 @@ CONFIG_SCHED_DEBUG=y
696# CONFIG_SCHEDSTATS is not set 719# CONFIG_SCHEDSTATS is not set
697# CONFIG_TIMER_STATS is not set 720# CONFIG_TIMER_STATS is not set
698# CONFIG_SLUB_DEBUG_ON is not set 721# CONFIG_SLUB_DEBUG_ON is not set
722# CONFIG_SLUB_STATS is not set
699# CONFIG_DEBUG_RT_MUTEXES is not set 723# CONFIG_DEBUG_RT_MUTEXES is not set
700# CONFIG_RT_MUTEX_TESTER is not set 724# CONFIG_RT_MUTEX_TESTER is not set
701# CONFIG_DEBUG_SPINLOCK is not set 725# CONFIG_DEBUG_SPINLOCK is not set
@@ -708,8 +732,8 @@ CONFIG_DEBUG_MUTEXES=y
708# CONFIG_DEBUG_VM is not set 732# CONFIG_DEBUG_VM is not set
709# CONFIG_DEBUG_LIST is not set 733# CONFIG_DEBUG_LIST is not set
710# CONFIG_DEBUG_SG is not set 734# CONFIG_DEBUG_SG is not set
711CONFIG_FORCED_INLINING=y
712# CONFIG_BOOT_PRINTK_DELAY is not set 735# CONFIG_BOOT_PRINTK_DELAY is not set
736# CONFIG_BACKTRACE_SELF_TEST is not set
713# CONFIG_FAULT_INJECTION is not set 737# CONFIG_FAULT_INJECTION is not set
714# CONFIG_SAMPLES is not set 738# CONFIG_SAMPLES is not set
715# CONFIG_DEBUG_STACKOVERFLOW is not set 739# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -725,5 +749,48 @@ CONFIG_FORCED_INLINING=y
725# CONFIG_KEYS is not set 749# CONFIG_KEYS is not set
726# CONFIG_SECURITY is not set 750# CONFIG_SECURITY is not set
727# CONFIG_SECURITY_FILE_CAPABILITIES is not set 751# CONFIG_SECURITY_FILE_CAPABILITIES is not set
728# CONFIG_CRYPTO is not set 752CONFIG_CRYPTO=y
753# CONFIG_CRYPTO_SEQIV is not set
754# CONFIG_CRYPTO_MANAGER is not set
755# CONFIG_CRYPTO_HMAC is not set
756# CONFIG_CRYPTO_XCBC is not set
757# CONFIG_CRYPTO_NULL is not set
758# CONFIG_CRYPTO_MD4 is not set
759# CONFIG_CRYPTO_MD5 is not set
760# CONFIG_CRYPTO_SHA1 is not set
761# CONFIG_CRYPTO_SHA256 is not set
762# CONFIG_CRYPTO_SHA512 is not set
763# CONFIG_CRYPTO_WP512 is not set
764# CONFIG_CRYPTO_TGR192 is not set
765# CONFIG_CRYPTO_GF128MUL is not set
766# CONFIG_CRYPTO_ECB is not set
767# CONFIG_CRYPTO_CBC is not set
768# CONFIG_CRYPTO_PCBC is not set
769# CONFIG_CRYPTO_LRW is not set
770# CONFIG_CRYPTO_XTS is not set
771# CONFIG_CRYPTO_CTR is not set
772# CONFIG_CRYPTO_GCM is not set
773# CONFIG_CRYPTO_CCM is not set
774# CONFIG_CRYPTO_CRYPTD is not set
775# CONFIG_CRYPTO_DES is not set
776# CONFIG_CRYPTO_FCRYPT is not set
777# CONFIG_CRYPTO_BLOWFISH is not set
778# CONFIG_CRYPTO_TWOFISH is not set
779# CONFIG_CRYPTO_SERPENT is not set
780# CONFIG_CRYPTO_AES is not set
781# CONFIG_CRYPTO_CAST5 is not set
782# CONFIG_CRYPTO_CAST6 is not set
783# CONFIG_CRYPTO_TEA is not set
784# CONFIG_CRYPTO_ARC4 is not set
785# CONFIG_CRYPTO_KHAZAD is not set
786# CONFIG_CRYPTO_ANUBIS is not set
787# CONFIG_CRYPTO_SEED is not set
788# CONFIG_CRYPTO_SALSA20 is not set
789# CONFIG_CRYPTO_DEFLATE is not set
790# CONFIG_CRYPTO_MICHAEL_MIC is not set
791# CONFIG_CRYPTO_CRC32C is not set
792# CONFIG_CRYPTO_CAMELLIA is not set
793# CONFIG_CRYPTO_AUTHENC is not set
794# CONFIG_CRYPTO_LZO is not set
795CONFIG_CRYPTO_HW=y
729# CONFIG_PPC_CLOCK is not set 796# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8544_ds_defconfig b/arch/powerpc/configs/mpc8544_ds_defconfig
index 18623a8ee75c..c75b6aee76d1 100644
--- a/arch/powerpc/configs/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/mpc8544_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:46 2007 4# Mon Mar 24 08:48:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,17 +69,21 @@ CONFIG_POSIX_MQUEUE=y
68CONFIG_BSD_PROCESS_ACCT=y 69CONFIG_BSD_PROCESS_ACCT=y
69# CONFIG_BSD_PROCESS_ACCT_V3 is not set 70# CONFIG_BSD_PROCESS_ACCT_V3 is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73CONFIG_AUDIT=y 72CONFIG_AUDIT=y
74# CONFIG_AUDITSYSCALL is not set 73# CONFIG_AUDITSYSCALL is not set
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
86# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 88CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,11 +97,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 97CONFIG_PRINTK=y
93CONFIG_BUG=y 98CONFIG_BUG=y
94CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 102CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 104CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 108CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +111,14 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
105CONFIG_SLUB=y 112CONFIG_SLUB=y
106# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
@@ -131,21 +146,30 @@ CONFIG_IOSCHED_CFQ=y
131CONFIG_DEFAULT_CFQ=y 146CONFIG_DEFAULT_CFQ=y
132# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="cfq" 148CONFIG_DEFAULT_IOSCHED="cfq"
149CONFIG_CLASSIC_RCU=y
134 150
135# 151#
136# Platform support 152# Platform support
137# 153#
138# CONFIG_PPC_MPC52xx is not set 154# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 155# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
159CONFIG_MPC85xx=y
143# CONFIG_MPC8540_ADS is not set 160# CONFIG_MPC8540_ADS is not set
144# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
145# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
146# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
147CONFIG_MPC85xx_DS=y 164CONFIG_MPC85xx_DS=y
148CONFIG_MPC85xx=y 165# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set
168# CONFIG_TQM8555 is not set
169# CONFIG_TQM8560 is not set
170# CONFIG_SBC8548 is not set
171# CONFIG_SBC8560 is not set
172# CONFIG_IPIC is not set
149CONFIG_MPIC=y 173CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 174# CONFIG_MPIC_WEIRD is not set
151CONFIG_PPC_I8259=y 175CONFIG_PPC_I8259=y
@@ -172,13 +196,17 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 196# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 197# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 198CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 203CONFIG_BINFMT_ELF=y
179CONFIG_BINFMT_MISC=m 204CONFIG_BINFMT_MISC=m
180CONFIG_MATH_EMULATION=y 205CONFIG_MATH_EMULATION=y
206# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 210CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 211CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 212CONFIG_SELECT_MEMORY_MODEL=y
@@ -197,11 +225,7 @@ CONFIG_VIRT_TO_BUS=y
197CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
198# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 227# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202CONFIG_SECCOMP=y 228CONFIG_SECCOMP=y
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 229CONFIG_ISA_DMA_API=y
206 230
207# 231#
@@ -252,6 +276,7 @@ CONFIG_XFRM=y
252CONFIG_XFRM_USER=y 276CONFIG_XFRM_USER=y
253# CONFIG_XFRM_SUB_POLICY is not set 277# CONFIG_XFRM_SUB_POLICY is not set
254# CONFIG_XFRM_MIGRATE is not set 278# CONFIG_XFRM_MIGRATE is not set
279# CONFIG_XFRM_STATISTICS is not set
255CONFIG_NET_KEY=m 280CONFIG_NET_KEY=m
256# CONFIG_NET_KEY_MIGRATE is not set 281# CONFIG_NET_KEY_MIGRATE is not set
257CONFIG_INET=y 282CONFIG_INET=y
@@ -335,6 +360,7 @@ CONFIG_SCTP_HMAC_MD5=y
335# 360#
336# CONFIG_NET_PKTGEN is not set 361# CONFIG_NET_PKTGEN is not set
337# CONFIG_HAMRADIO is not set 362# CONFIG_HAMRADIO is not set
363# CONFIG_CAN is not set
338# CONFIG_IRDA is not set 364# CONFIG_IRDA is not set
339# CONFIG_BT is not set 365# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 366# CONFIG_AF_RXRPC is not set
@@ -383,7 +409,7 @@ CONFIG_BLK_DEV_NBD=y
383CONFIG_BLK_DEV_RAM=y 409CONFIG_BLK_DEV_RAM=y
384CONFIG_BLK_DEV_RAM_COUNT=16 410CONFIG_BLK_DEV_RAM_COUNT=16
385CONFIG_BLK_DEV_RAM_SIZE=131072 411CONFIG_BLK_DEV_RAM_SIZE=131072
386CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 412# CONFIG_BLK_DEV_XIP is not set
387# CONFIG_CDROM_PKTCDVD is not set 413# CONFIG_CDROM_PKTCDVD is not set
388# CONFIG_ATA_OVER_ETH is not set 414# CONFIG_ATA_OVER_ETH is not set
389CONFIG_MISC_DEVICES=y 415CONFIG_MISC_DEVICES=y
@@ -391,6 +417,8 @@ CONFIG_MISC_DEVICES=y
391# CONFIG_EEPROM_93CX6 is not set 417# CONFIG_EEPROM_93CX6 is not set
392# CONFIG_SGI_IOC4 is not set 418# CONFIG_SGI_IOC4 is not set
393# CONFIG_TIFM_CORE is not set 419# CONFIG_TIFM_CORE is not set
420# CONFIG_ENCLOSURE_SERVICES is not set
421CONFIG_HAVE_IDE=y
394# CONFIG_IDE is not set 422# CONFIG_IDE is not set
395 423
396# 424#
@@ -456,6 +484,7 @@ CONFIG_SCSI_LOWLEVEL=y
456# CONFIG_SCSI_IPS is not set 484# CONFIG_SCSI_IPS is not set
457# CONFIG_SCSI_INITIO is not set 485# CONFIG_SCSI_INITIO is not set
458# CONFIG_SCSI_INIA100 is not set 486# CONFIG_SCSI_INIA100 is not set
487# CONFIG_SCSI_MVSAS is not set
459# CONFIG_SCSI_STEX is not set 488# CONFIG_SCSI_STEX is not set
460# CONFIG_SCSI_SYM53C8XX_2 is not set 489# CONFIG_SCSI_SYM53C8XX_2 is not set
461# CONFIG_SCSI_IPR is not set 490# CONFIG_SCSI_IPR is not set
@@ -486,6 +515,7 @@ CONFIG_SATA_AHCI=y
486# CONFIG_SATA_VIA is not set 515# CONFIG_SATA_VIA is not set
487# CONFIG_SATA_VITESSE is not set 516# CONFIG_SATA_VITESSE is not set
488# CONFIG_SATA_INIC162X is not set 517# CONFIG_SATA_INIC162X is not set
518# CONFIG_SATA_FSL is not set
489CONFIG_PATA_ALI=y 519CONFIG_PATA_ALI=y
490# CONFIG_PATA_AMD is not set 520# CONFIG_PATA_AMD is not set
491# CONFIG_PATA_ARTOP is not set 521# CONFIG_PATA_ARTOP is not set
@@ -509,6 +539,7 @@ CONFIG_PATA_ALI=y
509# CONFIG_PATA_MPIIX is not set 539# CONFIG_PATA_MPIIX is not set
510# CONFIG_PATA_OLDPIIX is not set 540# CONFIG_PATA_OLDPIIX is not set
511# CONFIG_PATA_NETCELL is not set 541# CONFIG_PATA_NETCELL is not set
542# CONFIG_PATA_NINJA32 is not set
512# CONFIG_PATA_NS87410 is not set 543# CONFIG_PATA_NS87410 is not set
513# CONFIG_PATA_NS87415 is not set 544# CONFIG_PATA_NS87415 is not set
514# CONFIG_PATA_OPTI is not set 545# CONFIG_PATA_OPTI is not set
@@ -542,7 +573,6 @@ CONFIG_DUMMY=y
542# CONFIG_EQUALIZER is not set 573# CONFIG_EQUALIZER is not set
543# CONFIG_TUN is not set 574# CONFIG_TUN is not set
544# CONFIG_VETH is not set 575# CONFIG_VETH is not set
545# CONFIG_IP1000 is not set
546# CONFIG_ARCNET is not set 576# CONFIG_ARCNET is not set
547CONFIG_PHYLIB=y 577CONFIG_PHYLIB=y
548 578
@@ -558,6 +588,7 @@ CONFIG_VITESSE_PHY=y
558# CONFIG_SMSC_PHY is not set 588# CONFIG_SMSC_PHY is not set
559# CONFIG_BROADCOM_PHY is not set 589# CONFIG_BROADCOM_PHY is not set
560# CONFIG_ICPLUS_PHY is not set 590# CONFIG_ICPLUS_PHY is not set
591# CONFIG_REALTEK_PHY is not set
561# CONFIG_FIXED_PHY is not set 592# CONFIG_FIXED_PHY is not set
562# CONFIG_MDIO_BITBANG is not set 593# CONFIG_MDIO_BITBANG is not set
563CONFIG_NET_ETHERNET=y 594CONFIG_NET_ETHERNET=y
@@ -579,6 +610,9 @@ CONFIG_NETDEV_1000=y
579# CONFIG_DL2K is not set 610# CONFIG_DL2K is not set
580# CONFIG_E1000 is not set 611# CONFIG_E1000 is not set
581# CONFIG_E1000E is not set 612# CONFIG_E1000E is not set
613# CONFIG_E1000E_ENABLED is not set
614# CONFIG_IP1000 is not set
615# CONFIG_IGB is not set
582# CONFIG_NS83820 is not set 616# CONFIG_NS83820 is not set
583# CONFIG_HAMACHI is not set 617# CONFIG_HAMACHI is not set
584# CONFIG_YELLOWFIN is not set 618# CONFIG_YELLOWFIN is not set
@@ -605,6 +639,7 @@ CONFIG_NETDEV_10000=y
605# CONFIG_NIU is not set 639# CONFIG_NIU is not set
606# CONFIG_MLX4_CORE is not set 640# CONFIG_MLX4_CORE is not set
607# CONFIG_TEHUTI is not set 641# CONFIG_TEHUTI is not set
642# CONFIG_BNX2X is not set
608# CONFIG_TR is not set 643# CONFIG_TR is not set
609 644
610# 645#
@@ -627,7 +662,6 @@ CONFIG_NETDEV_10000=y
627# CONFIG_PPP is not set 662# CONFIG_PPP is not set
628# CONFIG_SLIP is not set 663# CONFIG_SLIP is not set
629# CONFIG_NET_FC is not set 664# CONFIG_NET_FC is not set
630# CONFIG_SHAPER is not set
631# CONFIG_NETCONSOLE is not set 665# CONFIG_NETCONSOLE is not set
632# CONFIG_NETPOLL is not set 666# CONFIG_NETPOLL is not set
633# CONFIG_NET_POLL_CONTROLLER is not set 667# CONFIG_NET_POLL_CONTROLLER is not set
@@ -678,6 +712,7 @@ CONFIG_VT_CONSOLE=y
678CONFIG_HW_CONSOLE=y 712CONFIG_HW_CONSOLE=y
679# CONFIG_VT_HW_CONSOLE_BINDING is not set 713# CONFIG_VT_HW_CONSOLE_BINDING is not set
680# CONFIG_SERIAL_NONSTANDARD is not set 714# CONFIG_SERIAL_NONSTANDARD is not set
715# CONFIG_NOZOMI is not set
681 716
682# 717#
683# Serial drivers 718# Serial drivers
@@ -756,14 +791,12 @@ CONFIG_I2C_MPC=y
756# 791#
757# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
758# 793#
759# CONFIG_SENSORS_DS1337 is not set
760# CONFIG_SENSORS_DS1374 is not set
761# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
762CONFIG_SENSORS_EEPROM=y 795CONFIG_SENSORS_EEPROM=y
763# CONFIG_SENSORS_PCF8574 is not set 796# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_SENSORS_PCA9539 is not set 797# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 798# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_SENSORS_M41T00 is not set 799# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 800# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 801# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 802# CONFIG_I2C_DEBUG_CORE is not set
@@ -779,6 +812,7 @@ CONFIG_SENSORS_EEPROM=y
779# CONFIG_W1 is not set 812# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 813# CONFIG_POWER_SUPPLY is not set
781# CONFIG_HWMON is not set 814# CONFIG_HWMON is not set
815# CONFIG_THERMAL is not set
782# CONFIG_WATCHDOG is not set 816# CONFIG_WATCHDOG is not set
783 817
784# 818#
@@ -803,6 +837,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
803# 837#
804# Supported SAA7146 based PCI Adapters 838# Supported SAA7146 based PCI Adapters
805# 839#
840# CONFIG_TTPCI_EEPROM is not set
841# CONFIG_DVB_BUDGET_CORE is not set
806 842
807# 843#
808# Supported USB Adapters 844# Supported USB Adapters
@@ -888,11 +924,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
888# CONFIG_DVB_PLL is not set 924# CONFIG_DVB_PLL is not set
889# CONFIG_DVB_TDA826X is not set 925# CONFIG_DVB_TDA826X is not set
890# CONFIG_DVB_TDA827X is not set 926# CONFIG_DVB_TDA827X is not set
927# CONFIG_DVB_TDA18271 is not set
891# CONFIG_DVB_TUNER_QT1010 is not set 928# CONFIG_DVB_TUNER_QT1010 is not set
892# CONFIG_DVB_TUNER_MT2060 is not set 929# CONFIG_DVB_TUNER_MT2060 is not set
893# CONFIG_DVB_TUNER_MT2266 is not set 930# CONFIG_DVB_TUNER_MT2266 is not set
894# CONFIG_DVB_TUNER_MT2131 is not set 931# CONFIG_DVB_TUNER_MT2131 is not set
895# CONFIG_DVB_TUNER_DIB0070 is not set 932# CONFIG_DVB_TUNER_DIB0070 is not set
933# CONFIG_DVB_TUNER_XC5000 is not set
896 934
897# 935#
898# Miscellaneous devices 936# Miscellaneous devices
@@ -970,6 +1008,7 @@ CONFIG_SND_AC97_CODEC=y
970# CONFIG_SND_BT87X is not set 1008# CONFIG_SND_BT87X is not set
971# CONFIG_SND_CA0106 is not set 1009# CONFIG_SND_CA0106 is not set
972# CONFIG_SND_CMIPCI is not set 1010# CONFIG_SND_CMIPCI is not set
1011# CONFIG_SND_OXYGEN is not set
973# CONFIG_SND_CS4281 is not set 1012# CONFIG_SND_CS4281 is not set
974# CONFIG_SND_CS46XX is not set 1013# CONFIG_SND_CS46XX is not set
975# CONFIG_SND_CS5530 is not set 1014# CONFIG_SND_CS5530 is not set
@@ -995,6 +1034,7 @@ CONFIG_SND_AC97_CODEC=y
995# CONFIG_SND_HDA_INTEL is not set 1034# CONFIG_SND_HDA_INTEL is not set
996# CONFIG_SND_HDSP is not set 1035# CONFIG_SND_HDSP is not set
997# CONFIG_SND_HDSPM is not set 1036# CONFIG_SND_HDSPM is not set
1037# CONFIG_SND_HIFIER is not set
998# CONFIG_SND_ICE1712 is not set 1038# CONFIG_SND_ICE1712 is not set
999# CONFIG_SND_ICE1724 is not set 1039# CONFIG_SND_ICE1724 is not set
1000CONFIG_SND_INTEL8X0=y 1040CONFIG_SND_INTEL8X0=y
@@ -1012,6 +1052,7 @@ CONFIG_SND_INTEL8X0=y
1012# CONFIG_SND_TRIDENT is not set 1052# CONFIG_SND_TRIDENT is not set
1013# CONFIG_SND_VIA82XX is not set 1053# CONFIG_SND_VIA82XX is not set
1014# CONFIG_SND_VIA82XX_MODEM is not set 1054# CONFIG_SND_VIA82XX_MODEM is not set
1055# CONFIG_SND_VIRTUOSO is not set
1015# CONFIG_SND_VX222 is not set 1056# CONFIG_SND_VX222 is not set
1016# CONFIG_SND_YMFPCI is not set 1057# CONFIG_SND_YMFPCI is not set
1017# CONFIG_SND_AC97_POWER_SAVE is not set 1058# CONFIG_SND_AC97_POWER_SAVE is not set
@@ -1041,6 +1082,10 @@ CONFIG_SND_INTEL8X0=y
1041# 1082#
1042 1083
1043# 1084#
1085# ALSA SoC audio for Freescale SOCs
1086#
1087
1088#
1044# Open Sound System 1089# Open Sound System
1045# 1090#
1046# CONFIG_SOUND_PRIME is not set 1091# CONFIG_SOUND_PRIME is not set
@@ -1063,6 +1108,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1063CONFIG_USB_ARCH_HAS_EHCI=y 1108CONFIG_USB_ARCH_HAS_EHCI=y
1064CONFIG_USB=y 1109CONFIG_USB=y
1065# CONFIG_USB_DEBUG is not set 1110# CONFIG_USB_DEBUG is not set
1111# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1066 1112
1067# 1113#
1068# Miscellaneous USB options 1114# Miscellaneous USB options
@@ -1076,9 +1122,10 @@ CONFIG_USB_DEVICE_CLASS=y
1076# USB Host Controller Drivers 1122# USB Host Controller Drivers
1077# 1123#
1078CONFIG_USB_EHCI_HCD=y 1124CONFIG_USB_EHCI_HCD=y
1079# CONFIG_USB_EHCI_SPLIT_ISO is not set
1080# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1125# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1081# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1126# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1127# CONFIG_USB_EHCI_FSL is not set
1128CONFIG_USB_EHCI_HCD_PPC_OF=y
1082# CONFIG_USB_ISP116X_HCD is not set 1129# CONFIG_USB_ISP116X_HCD is not set
1083CONFIG_USB_OHCI_HCD=y 1130CONFIG_USB_OHCI_HCD=y
1084CONFIG_USB_OHCI_HCD_PPC_OF=y 1131CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1129,10 +1176,6 @@ CONFIG_USB_MON=y
1129# 1176#
1130# USB port drivers 1177# USB port drivers
1131# 1178#
1132
1133#
1134# USB Serial Converter support
1135#
1136# CONFIG_USB_SERIAL is not set 1179# CONFIG_USB_SERIAL is not set
1137 1180
1138# 1181#
@@ -1158,21 +1201,18 @@ CONFIG_USB_MON=y
1158# CONFIG_USB_TRANCEVIBRATOR is not set 1201# CONFIG_USB_TRANCEVIBRATOR is not set
1159# CONFIG_USB_IOWARRIOR is not set 1202# CONFIG_USB_IOWARRIOR is not set
1160# CONFIG_USB_TEST is not set 1203# CONFIG_USB_TEST is not set
1161
1162#
1163# USB DSL modem support
1164#
1165
1166#
1167# USB Gadget Support
1168#
1169# CONFIG_USB_GADGET is not set 1204# CONFIG_USB_GADGET is not set
1170# CONFIG_MMC is not set 1205# CONFIG_MMC is not set
1206# CONFIG_MEMSTICK is not set
1171# CONFIG_NEW_LEDS is not set 1207# CONFIG_NEW_LEDS is not set
1172# CONFIG_INFINIBAND is not set 1208# CONFIG_INFINIBAND is not set
1173# CONFIG_EDAC is not set 1209# CONFIG_EDAC is not set
1174CONFIG_RTC_LIB=y 1210CONFIG_RTC_LIB=y
1175CONFIG_RTC_CLASS=y 1211CONFIG_RTC_CLASS=y
1212
1213#
1214# Conflicting RTC option has been selected, check GEN_RTC and RTC
1215#
1176CONFIG_RTC_HCTOSYS=y 1216CONFIG_RTC_HCTOSYS=y
1177CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1217CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1178# CONFIG_RTC_DEBUG is not set 1218# CONFIG_RTC_DEBUG is not set
@@ -1199,6 +1239,7 @@ CONFIG_RTC_INTF_DEV=y
1199# CONFIG_RTC_DRV_PCF8563 is not set 1239# CONFIG_RTC_DRV_PCF8563 is not set
1200# CONFIG_RTC_DRV_PCF8583 is not set 1240# CONFIG_RTC_DRV_PCF8583 is not set
1201# CONFIG_RTC_DRV_M41T80 is not set 1241# CONFIG_RTC_DRV_M41T80 is not set
1242# CONFIG_RTC_DRV_S35390A is not set
1202 1243
1203# 1244#
1204# SPI RTC drivers 1245# SPI RTC drivers
@@ -1208,9 +1249,10 @@ CONFIG_RTC_INTF_DEV=y
1208# Platform RTC drivers 1249# Platform RTC drivers
1209# 1250#
1210CONFIG_RTC_DRV_CMOS=y 1251CONFIG_RTC_DRV_CMOS=y
1252# CONFIG_RTC_DRV_DS1511 is not set
1211# CONFIG_RTC_DRV_DS1553 is not set 1253# CONFIG_RTC_DRV_DS1553 is not set
1212# CONFIG_RTC_DRV_STK17TA8 is not set
1213# CONFIG_RTC_DRV_DS1742 is not set 1254# CONFIG_RTC_DRV_DS1742 is not set
1255# CONFIG_RTC_DRV_STK17TA8 is not set
1214# CONFIG_RTC_DRV_M48T86 is not set 1256# CONFIG_RTC_DRV_M48T86 is not set
1215# CONFIG_RTC_DRV_M48T59 is not set 1257# CONFIG_RTC_DRV_M48T59 is not set
1216# CONFIG_RTC_DRV_V3020 is not set 1258# CONFIG_RTC_DRV_V3020 is not set
@@ -1218,6 +1260,7 @@ CONFIG_RTC_DRV_CMOS=y
1218# 1260#
1219# on-CPU RTC drivers 1261# on-CPU RTC drivers
1220# 1262#
1263# CONFIG_DMADEVICES is not set
1221 1264
1222# 1265#
1223# Userspace I/O 1266# Userspace I/O
@@ -1243,12 +1286,10 @@ CONFIG_FS_MBCACHE=y
1243# CONFIG_XFS_FS is not set 1286# CONFIG_XFS_FS is not set
1244# CONFIG_GFS2_FS is not set 1287# CONFIG_GFS2_FS is not set
1245# CONFIG_OCFS2_FS is not set 1288# CONFIG_OCFS2_FS is not set
1246# CONFIG_MINIX_FS is not set 1289CONFIG_DNOTIFY=y
1247# CONFIG_ROMFS_FS is not set
1248CONFIG_INOTIFY=y 1290CONFIG_INOTIFY=y
1249CONFIG_INOTIFY_USER=y 1291CONFIG_INOTIFY_USER=y
1250# CONFIG_QUOTA is not set 1292# CONFIG_QUOTA is not set
1251CONFIG_DNOTIFY=y
1252# CONFIG_AUTOFS_FS is not set 1293# CONFIG_AUTOFS_FS is not set
1253# CONFIG_AUTOFS4_FS is not set 1294# CONFIG_AUTOFS4_FS is not set
1254# CONFIG_FUSE_FS is not set 1295# CONFIG_FUSE_FS is not set
@@ -1300,8 +1341,10 @@ CONFIG_BFS_FS=m
1300CONFIG_EFS_FS=m 1341CONFIG_EFS_FS=m
1301CONFIG_CRAMFS=y 1342CONFIG_CRAMFS=y
1302CONFIG_VXFS_FS=m 1343CONFIG_VXFS_FS=m
1344# CONFIG_MINIX_FS is not set
1303CONFIG_HPFS_FS=m 1345CONFIG_HPFS_FS=m
1304CONFIG_QNX4FS_FS=m 1346CONFIG_QNX4FS_FS=m
1347# CONFIG_ROMFS_FS is not set
1305CONFIG_SYSV_FS=m 1348CONFIG_SYSV_FS=m
1306CONFIG_UFS_FS=m 1349CONFIG_UFS_FS=m
1307# CONFIG_UFS_FS_WRITE is not set 1350# CONFIG_UFS_FS_WRITE is not set
@@ -1393,7 +1436,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1393# CONFIG_NLS_KOI8_U is not set 1436# CONFIG_NLS_KOI8_U is not set
1394CONFIG_NLS_UTF8=m 1437CONFIG_NLS_UTF8=m
1395# CONFIG_DLM is not set 1438# CONFIG_DLM is not set
1396# CONFIG_UCC_SLOW is not set
1397 1439
1398# 1440#
1399# Library routines 1441# Library routines
@@ -1410,7 +1452,6 @@ CONFIG_PLIST=y
1410CONFIG_HAS_IOMEM=y 1452CONFIG_HAS_IOMEM=y
1411CONFIG_HAS_IOPORT=y 1453CONFIG_HAS_IOPORT=y
1412CONFIG_HAS_DMA=y 1454CONFIG_HAS_DMA=y
1413# CONFIG_INSTRUMENTATION is not set
1414 1455
1415# 1456#
1416# Kernel hacking 1457# Kernel hacking
@@ -1429,6 +1470,7 @@ CONFIG_SCHED_DEBUG=y
1429# CONFIG_SCHEDSTATS is not set 1470# CONFIG_SCHEDSTATS is not set
1430# CONFIG_TIMER_STATS is not set 1471# CONFIG_TIMER_STATS is not set
1431# CONFIG_SLUB_DEBUG_ON is not set 1472# CONFIG_SLUB_DEBUG_ON is not set
1473# CONFIG_SLUB_STATS is not set
1432# CONFIG_DEBUG_RT_MUTEXES is not set 1474# CONFIG_DEBUG_RT_MUTEXES is not set
1433# CONFIG_RT_MUTEX_TESTER is not set 1475# CONFIG_RT_MUTEX_TESTER is not set
1434# CONFIG_DEBUG_SPINLOCK is not set 1476# CONFIG_DEBUG_SPINLOCK is not set
@@ -1442,9 +1484,9 @@ CONFIG_DEBUG_INFO=y
1442# CONFIG_DEBUG_VM is not set 1484# CONFIG_DEBUG_VM is not set
1443# CONFIG_DEBUG_LIST is not set 1485# CONFIG_DEBUG_LIST is not set
1444# CONFIG_DEBUG_SG is not set 1486# CONFIG_DEBUG_SG is not set
1445CONFIG_FORCED_INLINING=y
1446# CONFIG_BOOT_PRINTK_DELAY is not set 1487# CONFIG_BOOT_PRINTK_DELAY is not set
1447# CONFIG_RCU_TORTURE_TEST is not set 1488# CONFIG_RCU_TORTURE_TEST is not set
1489# CONFIG_BACKTRACE_SELF_TEST is not set
1448# CONFIG_FAULT_INJECTION is not set 1490# CONFIG_FAULT_INJECTION is not set
1449# CONFIG_SAMPLES is not set 1491# CONFIG_SAMPLES is not set
1450# CONFIG_DEBUG_STACKOVERFLOW is not set 1492# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1463,6 +1505,7 @@ CONFIG_FORCED_INLINING=y
1463CONFIG_CRYPTO=y 1505CONFIG_CRYPTO=y
1464CONFIG_CRYPTO_ALGAPI=y 1506CONFIG_CRYPTO_ALGAPI=y
1465CONFIG_CRYPTO_BLKCIPHER=y 1507CONFIG_CRYPTO_BLKCIPHER=y
1508# CONFIG_CRYPTO_SEQIV is not set
1466CONFIG_CRYPTO_HASH=y 1509CONFIG_CRYPTO_HASH=y
1467CONFIG_CRYPTO_MANAGER=y 1510CONFIG_CRYPTO_MANAGER=y
1468CONFIG_CRYPTO_HMAC=y 1511CONFIG_CRYPTO_HMAC=y
@@ -1481,6 +1524,9 @@ CONFIG_CRYPTO_CBC=y
1481CONFIG_CRYPTO_PCBC=m 1524CONFIG_CRYPTO_PCBC=m
1482# CONFIG_CRYPTO_LRW is not set 1525# CONFIG_CRYPTO_LRW is not set
1483# CONFIG_CRYPTO_XTS is not set 1526# CONFIG_CRYPTO_XTS is not set
1527# CONFIG_CRYPTO_CTR is not set
1528# CONFIG_CRYPTO_GCM is not set
1529# CONFIG_CRYPTO_CCM is not set
1484# CONFIG_CRYPTO_CRYPTD is not set 1530# CONFIG_CRYPTO_CRYPTD is not set
1485CONFIG_CRYPTO_DES=y 1531CONFIG_CRYPTO_DES=y
1486# CONFIG_CRYPTO_FCRYPT is not set 1532# CONFIG_CRYPTO_FCRYPT is not set
@@ -1495,11 +1541,14 @@ CONFIG_CRYPTO_DES=y
1495# CONFIG_CRYPTO_KHAZAD is not set 1541# CONFIG_CRYPTO_KHAZAD is not set
1496# CONFIG_CRYPTO_ANUBIS is not set 1542# CONFIG_CRYPTO_ANUBIS is not set
1497# CONFIG_CRYPTO_SEED is not set 1543# CONFIG_CRYPTO_SEED is not set
1544# CONFIG_CRYPTO_SALSA20 is not set
1498# CONFIG_CRYPTO_DEFLATE is not set 1545# CONFIG_CRYPTO_DEFLATE is not set
1499# CONFIG_CRYPTO_MICHAEL_MIC is not set 1546# CONFIG_CRYPTO_MICHAEL_MIC is not set
1500# CONFIG_CRYPTO_CRC32C is not set 1547# CONFIG_CRYPTO_CRC32C is not set
1501# CONFIG_CRYPTO_CAMELLIA is not set 1548# CONFIG_CRYPTO_CAMELLIA is not set
1502# CONFIG_CRYPTO_TEST is not set 1549# CONFIG_CRYPTO_TEST is not set
1503# CONFIG_CRYPTO_AUTHENC is not set 1550# CONFIG_CRYPTO_AUTHENC is not set
1551# CONFIG_CRYPTO_LZO is not set
1504CONFIG_CRYPTO_HW=y 1552CONFIG_CRYPTO_HW=y
1553# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1505# CONFIG_PPC_CLOCK is not set 1554# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8560_ads_defconfig b/arch/powerpc/configs/mpc8560_ads_defconfig
index 51f9693bacd4..851ac9115617 100644
--- a/arch/powerpc/configs/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/mpc8560_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:48 2007 4# Mon Mar 24 08:48:27 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,15 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
79CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +94,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 94CONFIG_PRINTK=y
90CONFIG_BUG=y 95CONFIG_BUG=y
91CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 99CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 101CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 105CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
102CONFIG_SLUB=y 109CONFIG_SLUB=y
103# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
@@ -123,22 +137,30 @@ CONFIG_DEFAULT_AS=y
123# CONFIG_DEFAULT_CFQ is not set 137# CONFIG_DEFAULT_CFQ is not set
124# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
140CONFIG_CLASSIC_RCU=y
126 141
127# 142#
128# Platform support 143# Platform support
129# 144#
130# CONFIG_PPC_MPC52xx is not set 145# CONFIG_PPC_MPC512x is not set
131# CONFIG_PPC_MPC5200 is not set 146# CONFIG_PPC_MPC5121 is not set
132# CONFIG_PPC_CELL is not set 147# CONFIG_PPC_CELL is not set
133# CONFIG_PPC_CELL_NATIVE is not set 148# CONFIG_PPC_CELL_NATIVE is not set
134# CONFIG_PQ2ADS is not set 149# CONFIG_PQ2ADS is not set
150CONFIG_MPC85xx=y
135# CONFIG_MPC8540_ADS is not set 151# CONFIG_MPC8540_ADS is not set
136CONFIG_MPC8560_ADS=y 152CONFIG_MPC8560_ADS=y
137# CONFIG_MPC85xx_CDS is not set 153# CONFIG_MPC85xx_CDS is not set
138# CONFIG_MPC85xx_MDS is not set 154# CONFIG_MPC85xx_MDS is not set
139# CONFIG_MPC85xx_DS is not set 155# CONFIG_MPC85xx_DS is not set
140CONFIG_MPC8560=y 156# CONFIG_STX_GP3 is not set
141CONFIG_MPC85xx=y 157# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set
159# CONFIG_TQM8555 is not set
160# CONFIG_TQM8560 is not set
161# CONFIG_SBC8548 is not set
162# CONFIG_SBC8560 is not set
163# CONFIG_IPIC is not set
142CONFIG_MPIC=y 164CONFIG_MPIC=y
143# CONFIG_MPIC_WEIRD is not set 165# CONFIG_MPIC_WEIRD is not set
144# CONFIG_PPC_I8259 is not set 166# CONFIG_PPC_I8259 is not set
@@ -167,13 +189,17 @@ CONFIG_HZ_250=y
167# CONFIG_HZ_300 is not set 189# CONFIG_HZ_300 is not set
168# CONFIG_HZ_1000 is not set 190# CONFIG_HZ_1000 is not set
169CONFIG_HZ=250 191CONFIG_HZ=250
192# CONFIG_SCHED_HRTICK is not set
170CONFIG_PREEMPT_NONE=y 193CONFIG_PREEMPT_NONE=y
171# CONFIG_PREEMPT_VOLUNTARY is not set 194# CONFIG_PREEMPT_VOLUNTARY is not set
172# CONFIG_PREEMPT is not set 195# CONFIG_PREEMPT is not set
173CONFIG_BINFMT_ELF=y 196CONFIG_BINFMT_ELF=y
174CONFIG_BINFMT_MISC=y 197CONFIG_BINFMT_MISC=y
175CONFIG_MATH_EMULATION=y 198CONFIG_MATH_EMULATION=y
199# CONFIG_IOMMU_HELPER is not set
176CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
177CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
178CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
179CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -192,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
192# CONFIG_PROC_DEVICETREE is not set 218# CONFIG_PROC_DEVICETREE is not set
193# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
194# CONFIG_PM is not set 220# CONFIG_PM is not set
195CONFIG_SUSPEND_UP_POSSIBLE=y
196CONFIG_HIBERNATION_UP_POSSIBLE=y
197# CONFIG_SECCOMP is not set 221# CONFIG_SECCOMP is not set
198CONFIG_WANT_DEVICE_TREE=y
199CONFIG_DEVICE_TREE=""
200CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
201 223
202# 224#
@@ -246,6 +268,7 @@ CONFIG_XFRM=y
246# CONFIG_XFRM_USER is not set 268# CONFIG_XFRM_USER is not set
247# CONFIG_XFRM_SUB_POLICY is not set 269# CONFIG_XFRM_SUB_POLICY is not set
248# CONFIG_XFRM_MIGRATE is not set 270# CONFIG_XFRM_MIGRATE is not set
271# CONFIG_XFRM_STATISTICS is not set
249# CONFIG_NET_KEY is not set 272# CONFIG_NET_KEY is not set
250CONFIG_INET=y 273CONFIG_INET=y
251CONFIG_IP_MULTICAST=y 274CONFIG_IP_MULTICAST=y
@@ -301,6 +324,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
301# 324#
302# CONFIG_NET_PKTGEN is not set 325# CONFIG_NET_PKTGEN is not set
303# CONFIG_HAMRADIO is not set 326# CONFIG_HAMRADIO is not set
327# CONFIG_CAN is not set
304# CONFIG_IRDA is not set 328# CONFIG_IRDA is not set
305# CONFIG_BT is not set 329# CONFIG_BT is not set
306# CONFIG_AF_RXRPC is not set 330# CONFIG_AF_RXRPC is not set
@@ -347,7 +371,7 @@ CONFIG_BLK_DEV_LOOP=y
347CONFIG_BLK_DEV_RAM=y 371CONFIG_BLK_DEV_RAM=y
348CONFIG_BLK_DEV_RAM_COUNT=16 372CONFIG_BLK_DEV_RAM_COUNT=16
349CONFIG_BLK_DEV_RAM_SIZE=32768 373CONFIG_BLK_DEV_RAM_SIZE=32768
350CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 374# CONFIG_BLK_DEV_XIP is not set
351# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
352# CONFIG_ATA_OVER_ETH is not set 376# CONFIG_ATA_OVER_ETH is not set
353CONFIG_MISC_DEVICES=y 377CONFIG_MISC_DEVICES=y
@@ -355,6 +379,8 @@ CONFIG_MISC_DEVICES=y
355# CONFIG_EEPROM_93CX6 is not set 379# CONFIG_EEPROM_93CX6 is not set
356# CONFIG_SGI_IOC4 is not set 380# CONFIG_SGI_IOC4 is not set
357# CONFIG_TIFM_CORE is not set 381# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set
383CONFIG_HAVE_IDE=y
358# CONFIG_IDE is not set 384# CONFIG_IDE is not set
359 385
360# 386#
@@ -383,7 +409,6 @@ CONFIG_NETDEVICES=y
383# CONFIG_EQUALIZER is not set 409# CONFIG_EQUALIZER is not set
384# CONFIG_TUN is not set 410# CONFIG_TUN is not set
385# CONFIG_VETH is not set 411# CONFIG_VETH is not set
386# CONFIG_IP1000 is not set
387# CONFIG_ARCNET is not set 412# CONFIG_ARCNET is not set
388CONFIG_PHYLIB=y 413CONFIG_PHYLIB=y
389 414
@@ -399,6 +424,7 @@ CONFIG_DAVICOM_PHY=y
399# CONFIG_SMSC_PHY is not set 424# CONFIG_SMSC_PHY is not set
400# CONFIG_BROADCOM_PHY is not set 425# CONFIG_BROADCOM_PHY is not set
401# CONFIG_ICPLUS_PHY is not set 426# CONFIG_ICPLUS_PHY is not set
427# CONFIG_REALTEK_PHY is not set
402# CONFIG_FIXED_PHY is not set 428# CONFIG_FIXED_PHY is not set
403# CONFIG_MDIO_BITBANG is not set 429# CONFIG_MDIO_BITBANG is not set
404CONFIG_NET_ETHERNET=y 430CONFIG_NET_ETHERNET=y
@@ -426,6 +452,9 @@ CONFIG_E1000=y
426CONFIG_E1000_NAPI=y 452CONFIG_E1000_NAPI=y
427# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 453# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
428# CONFIG_E1000E is not set 454# CONFIG_E1000E is not set
455# CONFIG_E1000E_ENABLED is not set
456# CONFIG_IP1000 is not set
457# CONFIG_IGB is not set
429# CONFIG_NS83820 is not set 458# CONFIG_NS83820 is not set
430# CONFIG_HAMACHI is not set 459# CONFIG_HAMACHI is not set
431# CONFIG_YELLOWFIN is not set 460# CONFIG_YELLOWFIN is not set
@@ -452,6 +481,7 @@ CONFIG_NETDEV_10000=y
452# CONFIG_NIU is not set 481# CONFIG_NIU is not set
453# CONFIG_MLX4_CORE is not set 482# CONFIG_MLX4_CORE is not set
454# CONFIG_TEHUTI is not set 483# CONFIG_TEHUTI is not set
484# CONFIG_BNX2X is not set
455# CONFIG_TR is not set 485# CONFIG_TR is not set
456 486
457# 487#
@@ -464,7 +494,6 @@ CONFIG_NETDEV_10000=y
464# CONFIG_HIPPI is not set 494# CONFIG_HIPPI is not set
465# CONFIG_PPP is not set 495# CONFIG_PPP is not set
466# CONFIG_SLIP is not set 496# CONFIG_SLIP is not set
467# CONFIG_SHAPER is not set
468# CONFIG_NETCONSOLE is not set 497# CONFIG_NETCONSOLE is not set
469# CONFIG_NETPOLL is not set 498# CONFIG_NETPOLL is not set
470# CONFIG_NET_POLL_CONTROLLER is not set 499# CONFIG_NET_POLL_CONTROLLER is not set
@@ -507,6 +536,7 @@ CONFIG_INPUT=y
507# 536#
508# CONFIG_VT is not set 537# CONFIG_VT is not set
509# CONFIG_SERIAL_NONSTANDARD is not set 538# CONFIG_SERIAL_NONSTANDARD is not set
539# CONFIG_NOZOMI is not set
510 540
511# 541#
512# Serial drivers 542# Serial drivers
@@ -567,6 +597,7 @@ CONFIG_HWMON=y
567# CONFIG_SENSORS_W83627HF is not set 597# CONFIG_SENSORS_W83627HF is not set
568# CONFIG_SENSORS_W83627EHF is not set 598# CONFIG_SENSORS_W83627EHF is not set
569# CONFIG_HWMON_DEBUG_CHIP is not set 599# CONFIG_HWMON_DEBUG_CHIP is not set
600# CONFIG_THERMAL is not set
570# CONFIG_WATCHDOG is not set 601# CONFIG_WATCHDOG is not set
571 602
572# 603#
@@ -619,16 +650,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
619# 650#
620# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 651# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
621# 652#
622
623#
624# USB Gadget Support
625#
626# CONFIG_USB_GADGET is not set 653# CONFIG_USB_GADGET is not set
627# CONFIG_MMC is not set 654# CONFIG_MMC is not set
655# CONFIG_MEMSTICK is not set
628# CONFIG_NEW_LEDS is not set 656# CONFIG_NEW_LEDS is not set
629# CONFIG_INFINIBAND is not set 657# CONFIG_INFINIBAND is not set
630# CONFIG_EDAC is not set 658# CONFIG_EDAC is not set
631# CONFIG_RTC_CLASS is not set 659# CONFIG_RTC_CLASS is not set
660# CONFIG_DMADEVICES is not set
632 661
633# 662#
634# Userspace I/O 663# Userspace I/O
@@ -654,12 +683,10 @@ CONFIG_FS_MBCACHE=y
654# CONFIG_XFS_FS is not set 683# CONFIG_XFS_FS is not set
655# CONFIG_GFS2_FS is not set 684# CONFIG_GFS2_FS is not set
656# CONFIG_OCFS2_FS is not set 685# CONFIG_OCFS2_FS is not set
657# CONFIG_MINIX_FS is not set 686CONFIG_DNOTIFY=y
658# CONFIG_ROMFS_FS is not set
659CONFIG_INOTIFY=y 687CONFIG_INOTIFY=y
660CONFIG_INOTIFY_USER=y 688CONFIG_INOTIFY_USER=y
661# CONFIG_QUOTA is not set 689# CONFIG_QUOTA is not set
662CONFIG_DNOTIFY=y
663# CONFIG_AUTOFS_FS is not set 690# CONFIG_AUTOFS_FS is not set
664# CONFIG_AUTOFS4_FS is not set 691# CONFIG_AUTOFS4_FS is not set
665# CONFIG_FUSE_FS is not set 692# CONFIG_FUSE_FS is not set
@@ -701,8 +728,10 @@ CONFIG_TMPFS=y
701# CONFIG_EFS_FS is not set 728# CONFIG_EFS_FS is not set
702# CONFIG_CRAMFS is not set 729# CONFIG_CRAMFS is not set
703# CONFIG_VXFS_FS is not set 730# CONFIG_VXFS_FS is not set
731# CONFIG_MINIX_FS is not set
704# CONFIG_HPFS_FS is not set 732# CONFIG_HPFS_FS is not set
705# CONFIG_QNX4FS_FS is not set 733# CONFIG_QNX4FS_FS is not set
734# CONFIG_ROMFS_FS is not set
706# CONFIG_SYSV_FS is not set 735# CONFIG_SYSV_FS is not set
707# CONFIG_UFS_FS is not set 736# CONFIG_UFS_FS is not set
708CONFIG_NETWORK_FILESYSTEMS=y 737CONFIG_NETWORK_FILESYSTEMS=y
@@ -743,7 +772,6 @@ CONFIG_PARTITION_ADVANCED=y
743# CONFIG_SYSV68_PARTITION is not set 772# CONFIG_SYSV68_PARTITION is not set
744# CONFIG_NLS is not set 773# CONFIG_NLS is not set
745# CONFIG_DLM is not set 774# CONFIG_DLM is not set
746# CONFIG_UCC_SLOW is not set
747 775
748# 776#
749# Library routines 777# Library routines
@@ -759,7 +787,6 @@ CONFIG_PLIST=y
759CONFIG_HAS_IOMEM=y 787CONFIG_HAS_IOMEM=y
760CONFIG_HAS_IOPORT=y 788CONFIG_HAS_IOPORT=y
761CONFIG_HAS_DMA=y 789CONFIG_HAS_DMA=y
762# CONFIG_INSTRUMENTATION is not set
763 790
764# 791#
765# Kernel hacking 792# Kernel hacking
@@ -778,6 +805,7 @@ CONFIG_SCHED_DEBUG=y
778# CONFIG_SCHEDSTATS is not set 805# CONFIG_SCHEDSTATS is not set
779# CONFIG_TIMER_STATS is not set 806# CONFIG_TIMER_STATS is not set
780# CONFIG_SLUB_DEBUG_ON is not set 807# CONFIG_SLUB_DEBUG_ON is not set
808# CONFIG_SLUB_STATS is not set
781# CONFIG_DEBUG_RT_MUTEXES is not set 809# CONFIG_DEBUG_RT_MUTEXES is not set
782# CONFIG_RT_MUTEX_TESTER is not set 810# CONFIG_RT_MUTEX_TESTER is not set
783# CONFIG_DEBUG_SPINLOCK is not set 811# CONFIG_DEBUG_SPINLOCK is not set
@@ -790,8 +818,8 @@ CONFIG_DEBUG_MUTEXES=y
790# CONFIG_DEBUG_VM is not set 818# CONFIG_DEBUG_VM is not set
791# CONFIG_DEBUG_LIST is not set 819# CONFIG_DEBUG_LIST is not set
792# CONFIG_DEBUG_SG is not set 820# CONFIG_DEBUG_SG is not set
793CONFIG_FORCED_INLINING=y
794# CONFIG_BOOT_PRINTK_DELAY is not set 821# CONFIG_BOOT_PRINTK_DELAY is not set
822# CONFIG_BACKTRACE_SELF_TEST is not set
795# CONFIG_FAULT_INJECTION is not set 823# CONFIG_FAULT_INJECTION is not set
796# CONFIG_SAMPLES is not set 824# CONFIG_SAMPLES is not set
797# CONFIG_DEBUG_STACKOVERFLOW is not set 825# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -808,6 +836,50 @@ CONFIG_FORCED_INLINING=y
808# CONFIG_KEYS is not set 836# CONFIG_KEYS is not set
809# CONFIG_SECURITY is not set 837# CONFIG_SECURITY is not set
810# CONFIG_SECURITY_FILE_CAPABILITIES is not set 838# CONFIG_SECURITY_FILE_CAPABILITIES is not set
811# CONFIG_CRYPTO is not set 839CONFIG_CRYPTO=y
840# CONFIG_CRYPTO_SEQIV is not set
841# CONFIG_CRYPTO_MANAGER is not set
842# CONFIG_CRYPTO_HMAC is not set
843# CONFIG_CRYPTO_XCBC is not set
844# CONFIG_CRYPTO_NULL is not set
845# CONFIG_CRYPTO_MD4 is not set
846# CONFIG_CRYPTO_MD5 is not set
847# CONFIG_CRYPTO_SHA1 is not set
848# CONFIG_CRYPTO_SHA256 is not set
849# CONFIG_CRYPTO_SHA512 is not set
850# CONFIG_CRYPTO_WP512 is not set
851# CONFIG_CRYPTO_TGR192 is not set
852# CONFIG_CRYPTO_GF128MUL is not set
853# CONFIG_CRYPTO_ECB is not set
854# CONFIG_CRYPTO_CBC is not set
855# CONFIG_CRYPTO_PCBC is not set
856# CONFIG_CRYPTO_LRW is not set
857# CONFIG_CRYPTO_XTS is not set
858# CONFIG_CRYPTO_CTR is not set
859# CONFIG_CRYPTO_GCM is not set
860# CONFIG_CRYPTO_CCM is not set
861# CONFIG_CRYPTO_CRYPTD is not set
862# CONFIG_CRYPTO_DES is not set
863# CONFIG_CRYPTO_FCRYPT is not set
864# CONFIG_CRYPTO_BLOWFISH is not set
865# CONFIG_CRYPTO_TWOFISH is not set
866# CONFIG_CRYPTO_SERPENT is not set
867# CONFIG_CRYPTO_AES is not set
868# CONFIG_CRYPTO_CAST5 is not set
869# CONFIG_CRYPTO_CAST6 is not set
870# CONFIG_CRYPTO_TEA is not set
871# CONFIG_CRYPTO_ARC4 is not set
872# CONFIG_CRYPTO_KHAZAD is not set
873# CONFIG_CRYPTO_ANUBIS is not set
874# CONFIG_CRYPTO_SEED is not set
875# CONFIG_CRYPTO_SALSA20 is not set
876# CONFIG_CRYPTO_DEFLATE is not set
877# CONFIG_CRYPTO_MICHAEL_MIC is not set
878# CONFIG_CRYPTO_CRC32C is not set
879# CONFIG_CRYPTO_CAMELLIA is not set
880# CONFIG_CRYPTO_AUTHENC is not set
881# CONFIG_CRYPTO_LZO is not set
882CONFIG_CRYPTO_HW=y
883# CONFIG_CRYPTO_DEV_HIFN_795X is not set
812# CONFIG_PPC_CLOCK is not set 884# CONFIG_PPC_CLOCK is not set
813CONFIG_PPC_LIB_RHEAP=y 885CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc8568mds_defconfig b/arch/powerpc/configs/mpc8568mds_defconfig
index f51b58ae329a..e7da4b96cdeb 100644
--- a/arch/powerpc/configs/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/mpc8568mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:50 2007 4# Mon Mar 24 08:48:28 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,15 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
79CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -87,11 +92,13 @@ CONFIG_HOTPLUG=y
87CONFIG_PRINTK=y 92CONFIG_PRINTK=y
88CONFIG_BUG=y 93CONFIG_BUG=y
89CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
90CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
91CONFIG_FUTEX=y 97CONFIG_FUTEX=y
92CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
93# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
94CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
95CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
96CONFIG_SHMEM=y 103CONFIG_SHMEM=y
97CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -99,6 +106,13 @@ CONFIG_SLUB_DEBUG=y
99# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
100CONFIG_SLUB=y 107CONFIG_SLUB=y
101# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0 118CONFIG_BASE_SMALL=0
@@ -126,21 +140,30 @@ CONFIG_DEFAULT_AS=y
126# CONFIG_DEFAULT_CFQ is not set 140# CONFIG_DEFAULT_CFQ is not set
127# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_CLASSIC_RCU=y
129 144
130# 145#
131# Platform support 146# Platform support
132# 147#
133# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
134# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
135# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
136# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
137# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
153CONFIG_MPC85xx=y
138# CONFIG_MPC8540_ADS is not set 154# CONFIG_MPC8540_ADS is not set
139# CONFIG_MPC8560_ADS is not set 155# CONFIG_MPC8560_ADS is not set
140# CONFIG_MPC85xx_CDS is not set 156# CONFIG_MPC85xx_CDS is not set
141CONFIG_MPC85xx_MDS=y 157CONFIG_MPC85xx_MDS=y
142# CONFIG_MPC85xx_DS is not set 158# CONFIG_MPC85xx_DS is not set
143CONFIG_MPC85xx=y 159# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set
162# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set
165# CONFIG_SBC8560 is not set
166# CONFIG_IPIC is not set
144CONFIG_MPIC=y 167CONFIG_MPIC=y
145# CONFIG_MPIC_WEIRD is not set 168# CONFIG_MPIC_WEIRD is not set
146# CONFIG_PPC_I8259 is not set 169# CONFIG_PPC_I8259 is not set
@@ -168,13 +191,17 @@ CONFIG_HZ_250=y
168# CONFIG_HZ_300 is not set 191# CONFIG_HZ_300 is not set
169# CONFIG_HZ_1000 is not set 192# CONFIG_HZ_1000 is not set
170CONFIG_HZ=250 193CONFIG_HZ=250
194# CONFIG_SCHED_HRTICK is not set
171CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
172# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
173# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
174CONFIG_BINFMT_ELF=y 198CONFIG_BINFMT_ELF=y
175# CONFIG_BINFMT_MISC is not set 199# CONFIG_BINFMT_MISC is not set
176CONFIG_MATH_EMULATION=y 200CONFIG_MATH_EMULATION=y
201# CONFIG_IOMMU_HELPER is not set
177CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
178CONFIG_ARCH_FLATMEM_ENABLE=y 205CONFIG_ARCH_FLATMEM_ENABLE=y
179CONFIG_ARCH_POPULATES_NODE_MAP=y 206CONFIG_ARCH_POPULATES_NODE_MAP=y
180CONFIG_SELECT_MEMORY_MODEL=y 207CONFIG_SELECT_MEMORY_MODEL=y
@@ -193,11 +220,7 @@ CONFIG_VIRT_TO_BUS=y
193CONFIG_PROC_DEVICETREE=y 220CONFIG_PROC_DEVICETREE=y
194# CONFIG_CMDLINE_BOOL is not set 221# CONFIG_CMDLINE_BOOL is not set
195# CONFIG_PM is not set 222# CONFIG_PM is not set
196CONFIG_SUSPEND_UP_POSSIBLE=y
197CONFIG_HIBERNATION_UP_POSSIBLE=y
198CONFIG_SECCOMP=y 223CONFIG_SECCOMP=y
199CONFIG_WANT_DEVICE_TREE=y
200CONFIG_DEVICE_TREE=""
201CONFIG_ISA_DMA_API=y 224CONFIG_ISA_DMA_API=y
202 225
203# 226#
@@ -247,6 +270,7 @@ CONFIG_XFRM=y
247# CONFIG_XFRM_USER is not set 270# CONFIG_XFRM_USER is not set
248# CONFIG_XFRM_SUB_POLICY is not set 271# CONFIG_XFRM_SUB_POLICY is not set
249# CONFIG_XFRM_MIGRATE is not set 272# CONFIG_XFRM_MIGRATE is not set
273# CONFIG_XFRM_STATISTICS is not set
250# CONFIG_NET_KEY is not set 274# CONFIG_NET_KEY is not set
251CONFIG_INET=y 275CONFIG_INET=y
252CONFIG_IP_MULTICAST=y 276CONFIG_IP_MULTICAST=y
@@ -302,6 +326,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
302# 326#
303# CONFIG_NET_PKTGEN is not set 327# CONFIG_NET_PKTGEN is not set
304# CONFIG_HAMRADIO is not set 328# CONFIG_HAMRADIO is not set
329# CONFIG_CAN is not set
305# CONFIG_IRDA is not set 330# CONFIG_IRDA is not set
306# CONFIG_BT is not set 331# CONFIG_BT is not set
307# CONFIG_AF_RXRPC is not set 332# CONFIG_AF_RXRPC is not set
@@ -348,7 +373,7 @@ CONFIG_BLK_DEV_LOOP=y
348CONFIG_BLK_DEV_RAM=y 373CONFIG_BLK_DEV_RAM=y
349CONFIG_BLK_DEV_RAM_COUNT=16 374CONFIG_BLK_DEV_RAM_COUNT=16
350CONFIG_BLK_DEV_RAM_SIZE=32768 375CONFIG_BLK_DEV_RAM_SIZE=32768
351CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 376# CONFIG_BLK_DEV_XIP is not set
352# CONFIG_CDROM_PKTCDVD is not set 377# CONFIG_CDROM_PKTCDVD is not set
353# CONFIG_ATA_OVER_ETH is not set 378# CONFIG_ATA_OVER_ETH is not set
354CONFIG_MISC_DEVICES=y 379CONFIG_MISC_DEVICES=y
@@ -356,6 +381,8 @@ CONFIG_MISC_DEVICES=y
356# CONFIG_EEPROM_93CX6 is not set 381# CONFIG_EEPROM_93CX6 is not set
357# CONFIG_SGI_IOC4 is not set 382# CONFIG_SGI_IOC4 is not set
358# CONFIG_TIFM_CORE is not set 383# CONFIG_TIFM_CORE is not set
384# CONFIG_ENCLOSURE_SERVICES is not set
385CONFIG_HAVE_IDE=y
359# CONFIG_IDE is not set 386# CONFIG_IDE is not set
360 387
361# 388#
@@ -420,6 +447,7 @@ CONFIG_SCSI_LOWLEVEL=y
420# CONFIG_SCSI_IPS is not set 447# CONFIG_SCSI_IPS is not set
421# CONFIG_SCSI_INITIO is not set 448# CONFIG_SCSI_INITIO is not set
422# CONFIG_SCSI_INIA100 is not set 449# CONFIG_SCSI_INIA100 is not set
450# CONFIG_SCSI_MVSAS is not set
423# CONFIG_SCSI_STEX is not set 451# CONFIG_SCSI_STEX is not set
424# CONFIG_SCSI_SYM53C8XX_2 is not set 452# CONFIG_SCSI_SYM53C8XX_2 is not set
425# CONFIG_SCSI_QLOGIC_1280 is not set 453# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -450,7 +478,6 @@ CONFIG_NETDEVICES=y
450# CONFIG_EQUALIZER is not set 478# CONFIG_EQUALIZER is not set
451# CONFIG_TUN is not set 479# CONFIG_TUN is not set
452# CONFIG_VETH is not set 480# CONFIG_VETH is not set
453# CONFIG_IP1000 is not set
454# CONFIG_ARCNET is not set 481# CONFIG_ARCNET is not set
455CONFIG_PHYLIB=y 482CONFIG_PHYLIB=y
456 483
@@ -466,6 +493,7 @@ CONFIG_MARVELL_PHY=y
466# CONFIG_SMSC_PHY is not set 493# CONFIG_SMSC_PHY is not set
467# CONFIG_BROADCOM_PHY is not set 494# CONFIG_BROADCOM_PHY is not set
468# CONFIG_ICPLUS_PHY is not set 495# CONFIG_ICPLUS_PHY is not set
496# CONFIG_REALTEK_PHY is not set
469# CONFIG_FIXED_PHY is not set 497# CONFIG_FIXED_PHY is not set
470# CONFIG_MDIO_BITBANG is not set 498# CONFIG_MDIO_BITBANG is not set
471CONFIG_NET_ETHERNET=y 499CONFIG_NET_ETHERNET=y
@@ -487,6 +515,9 @@ CONFIG_NETDEV_1000=y
487# CONFIG_DL2K is not set 515# CONFIG_DL2K is not set
488# CONFIG_E1000 is not set 516# CONFIG_E1000 is not set
489# CONFIG_E1000E is not set 517# CONFIG_E1000E is not set
518# CONFIG_E1000E_ENABLED is not set
519# CONFIG_IP1000 is not set
520# CONFIG_IGB is not set
490# CONFIG_NS83820 is not set 521# CONFIG_NS83820 is not set
491# CONFIG_HAMACHI is not set 522# CONFIG_HAMACHI is not set
492# CONFIG_YELLOWFIN is not set 523# CONFIG_YELLOWFIN is not set
@@ -514,6 +545,7 @@ CONFIG_NETDEV_10000=y
514# CONFIG_NIU is not set 545# CONFIG_NIU is not set
515# CONFIG_MLX4_CORE is not set 546# CONFIG_MLX4_CORE is not set
516# CONFIG_TEHUTI is not set 547# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set
517# CONFIG_TR is not set 549# CONFIG_TR is not set
518 550
519# 551#
@@ -527,7 +559,6 @@ CONFIG_NETDEV_10000=y
527# CONFIG_PPP is not set 559# CONFIG_PPP is not set
528# CONFIG_SLIP is not set 560# CONFIG_SLIP is not set
529# CONFIG_NET_FC is not set 561# CONFIG_NET_FC is not set
530# CONFIG_SHAPER is not set
531# CONFIG_NETCONSOLE is not set 562# CONFIG_NETCONSOLE is not set
532# CONFIG_NETPOLL is not set 563# CONFIG_NETPOLL is not set
533# CONFIG_NET_POLL_CONTROLLER is not set 564# CONFIG_NET_POLL_CONTROLLER is not set
@@ -570,6 +601,7 @@ CONFIG_INPUT=y
570# 601#
571# CONFIG_VT is not set 602# CONFIG_VT is not set
572# CONFIG_SERIAL_NONSTANDARD is not set 603# CONFIG_SERIAL_NONSTANDARD is not set
604# CONFIG_NOZOMI is not set
573 605
574# 606#
575# Serial drivers 607# Serial drivers
@@ -590,6 +622,7 @@ CONFIG_SERIAL_CORE=y
590CONFIG_SERIAL_CORE_CONSOLE=y 622CONFIG_SERIAL_CORE_CONSOLE=y
591# CONFIG_SERIAL_JSM is not set 623# CONFIG_SERIAL_JSM is not set
592# CONFIG_SERIAL_OF_PLATFORM is not set 624# CONFIG_SERIAL_OF_PLATFORM is not set
625# CONFIG_SERIAL_QE is not set
593CONFIG_UNIX98_PTYS=y 626CONFIG_UNIX98_PTYS=y
594CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
595CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
@@ -644,14 +677,12 @@ CONFIG_I2C_MPC=y
644# 677#
645# Miscellaneous I2C Chip support 678# Miscellaneous I2C Chip support
646# 679#
647# CONFIG_SENSORS_DS1337 is not set
648# CONFIG_SENSORS_DS1374 is not set
649# CONFIG_DS1682 is not set 680# CONFIG_DS1682 is not set
650# CONFIG_SENSORS_EEPROM is not set 681# CONFIG_SENSORS_EEPROM is not set
651# CONFIG_SENSORS_PCF8574 is not set 682# CONFIG_SENSORS_PCF8574 is not set
652# CONFIG_SENSORS_PCA9539 is not set 683# CONFIG_PCF8575 is not set
653# CONFIG_SENSORS_PCF8591 is not set 684# CONFIG_SENSORS_PCF8591 is not set
654# CONFIG_SENSORS_M41T00 is not set 685# CONFIG_TPS65010 is not set
655# CONFIG_SENSORS_MAX6875 is not set 686# CONFIG_SENSORS_MAX6875 is not set
656# CONFIG_SENSORS_TSL2550 is not set 687# CONFIG_SENSORS_TSL2550 is not set
657# CONFIG_I2C_DEBUG_CORE is not set 688# CONFIG_I2C_DEBUG_CORE is not set
@@ -676,6 +707,7 @@ CONFIG_HWMON=y
676# CONFIG_SENSORS_ADM1031 is not set 707# CONFIG_SENSORS_ADM1031 is not set
677# CONFIG_SENSORS_ADM9240 is not set 708# CONFIG_SENSORS_ADM9240 is not set
678# CONFIG_SENSORS_ADT7470 is not set 709# CONFIG_SENSORS_ADT7470 is not set
710# CONFIG_SENSORS_ADT7473 is not set
679# CONFIG_SENSORS_ATXP1 is not set 711# CONFIG_SENSORS_ATXP1 is not set
680# CONFIG_SENSORS_DS1621 is not set 712# CONFIG_SENSORS_DS1621 is not set
681# CONFIG_SENSORS_I5K_AMB is not set 713# CONFIG_SENSORS_I5K_AMB is not set
@@ -705,6 +737,7 @@ CONFIG_HWMON=y
705# CONFIG_SENSORS_SMSC47M1 is not set 737# CONFIG_SENSORS_SMSC47M1 is not set
706# CONFIG_SENSORS_SMSC47M192 is not set 738# CONFIG_SENSORS_SMSC47M192 is not set
707# CONFIG_SENSORS_SMSC47B397 is not set 739# CONFIG_SENSORS_SMSC47B397 is not set
740# CONFIG_SENSORS_ADS7828 is not set
708# CONFIG_SENSORS_THMC50 is not set 741# CONFIG_SENSORS_THMC50 is not set
709# CONFIG_SENSORS_VIA686A is not set 742# CONFIG_SENSORS_VIA686A is not set
710# CONFIG_SENSORS_VT1211 is not set 743# CONFIG_SENSORS_VT1211 is not set
@@ -714,9 +747,11 @@ CONFIG_HWMON=y
714# CONFIG_SENSORS_W83792D is not set 747# CONFIG_SENSORS_W83792D is not set
715# CONFIG_SENSORS_W83793 is not set 748# CONFIG_SENSORS_W83793 is not set
716# CONFIG_SENSORS_W83L785TS is not set 749# CONFIG_SENSORS_W83L785TS is not set
750# CONFIG_SENSORS_W83L786NG is not set
717# CONFIG_SENSORS_W83627HF is not set 751# CONFIG_SENSORS_W83627HF is not set
718# CONFIG_SENSORS_W83627EHF is not set 752# CONFIG_SENSORS_W83627EHF is not set
719# CONFIG_HWMON_DEBUG_CHIP is not set 753# CONFIG_HWMON_DEBUG_CHIP is not set
754# CONFIG_THERMAL is not set
720CONFIG_WATCHDOG=y 755CONFIG_WATCHDOG=y
721# CONFIG_WATCHDOG_NOWAYOUT is not set 756# CONFIG_WATCHDOG_NOWAYOUT is not set
722 757
@@ -782,17 +817,18 @@ CONFIG_USB_ARCH_HAS_EHCI=y
782# 817#
783# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 818# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
784# 819#
785
786#
787# USB Gadget Support
788#
789# CONFIG_USB_GADGET is not set 820# CONFIG_USB_GADGET is not set
790# CONFIG_MMC is not set 821# CONFIG_MMC is not set
822# CONFIG_MEMSTICK is not set
791# CONFIG_NEW_LEDS is not set 823# CONFIG_NEW_LEDS is not set
792# CONFIG_INFINIBAND is not set 824# CONFIG_INFINIBAND is not set
793# CONFIG_EDAC is not set 825# CONFIG_EDAC is not set
794CONFIG_RTC_LIB=y 826CONFIG_RTC_LIB=y
795CONFIG_RTC_CLASS=y 827CONFIG_RTC_CLASS=y
828
829#
830# Conflicting RTC option has been selected, check GEN_RTC and RTC
831#
796CONFIG_RTC_HCTOSYS=y 832CONFIG_RTC_HCTOSYS=y
797CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 833CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
798# CONFIG_RTC_DEBUG is not set 834# CONFIG_RTC_DEBUG is not set
@@ -819,6 +855,7 @@ CONFIG_RTC_DRV_DS1374=y
819# CONFIG_RTC_DRV_PCF8563 is not set 855# CONFIG_RTC_DRV_PCF8563 is not set
820# CONFIG_RTC_DRV_PCF8583 is not set 856# CONFIG_RTC_DRV_PCF8583 is not set
821# CONFIG_RTC_DRV_M41T80 is not set 857# CONFIG_RTC_DRV_M41T80 is not set
858# CONFIG_RTC_DRV_S35390A is not set
822 859
823# 860#
824# SPI RTC drivers 861# SPI RTC drivers
@@ -828,9 +865,10 @@ CONFIG_RTC_DRV_DS1374=y
828# Platform RTC drivers 865# Platform RTC drivers
829# 866#
830# CONFIG_RTC_DRV_CMOS is not set 867# CONFIG_RTC_DRV_CMOS is not set
868# CONFIG_RTC_DRV_DS1511 is not set
831# CONFIG_RTC_DRV_DS1553 is not set 869# CONFIG_RTC_DRV_DS1553 is not set
832# CONFIG_RTC_DRV_STK17TA8 is not set
833# CONFIG_RTC_DRV_DS1742 is not set 870# CONFIG_RTC_DRV_DS1742 is not set
871# CONFIG_RTC_DRV_STK17TA8 is not set
834# CONFIG_RTC_DRV_M48T86 is not set 872# CONFIG_RTC_DRV_M48T86 is not set
835# CONFIG_RTC_DRV_M48T59 is not set 873# CONFIG_RTC_DRV_M48T59 is not set
836# CONFIG_RTC_DRV_V3020 is not set 874# CONFIG_RTC_DRV_V3020 is not set
@@ -838,6 +876,7 @@ CONFIG_RTC_DRV_DS1374=y
838# 876#
839# on-CPU RTC drivers 877# on-CPU RTC drivers
840# 878#
879# CONFIG_DMADEVICES is not set
841 880
842# 881#
843# Userspace I/O 882# Userspace I/O
@@ -863,12 +902,10 @@ CONFIG_FS_MBCACHE=y
863# CONFIG_XFS_FS is not set 902# CONFIG_XFS_FS is not set
864# CONFIG_GFS2_FS is not set 903# CONFIG_GFS2_FS is not set
865# CONFIG_OCFS2_FS is not set 904# CONFIG_OCFS2_FS is not set
866# CONFIG_MINIX_FS is not set 905CONFIG_DNOTIFY=y
867# CONFIG_ROMFS_FS is not set
868CONFIG_INOTIFY=y 906CONFIG_INOTIFY=y
869CONFIG_INOTIFY_USER=y 907CONFIG_INOTIFY_USER=y
870# CONFIG_QUOTA is not set 908# CONFIG_QUOTA is not set
871CONFIG_DNOTIFY=y
872# CONFIG_AUTOFS_FS is not set 909# CONFIG_AUTOFS_FS is not set
873# CONFIG_AUTOFS4_FS is not set 910# CONFIG_AUTOFS4_FS is not set
874# CONFIG_FUSE_FS is not set 911# CONFIG_FUSE_FS is not set
@@ -910,8 +947,10 @@ CONFIG_TMPFS=y
910# CONFIG_EFS_FS is not set 947# CONFIG_EFS_FS is not set
911# CONFIG_CRAMFS is not set 948# CONFIG_CRAMFS is not set
912# CONFIG_VXFS_FS is not set 949# CONFIG_VXFS_FS is not set
950# CONFIG_MINIX_FS is not set
913# CONFIG_HPFS_FS is not set 951# CONFIG_HPFS_FS is not set
914# CONFIG_QNX4FS_FS is not set 952# CONFIG_QNX4FS_FS is not set
953# CONFIG_ROMFS_FS is not set
915# CONFIG_SYSV_FS is not set 954# CONFIG_SYSV_FS is not set
916# CONFIG_UFS_FS is not set 955# CONFIG_UFS_FS is not set
917CONFIG_NETWORK_FILESYSTEMS=y 956CONFIG_NETWORK_FILESYSTEMS=y
@@ -955,7 +994,6 @@ CONFIG_PARTITION_ADVANCED=y
955# CONFIG_SYSV68_PARTITION is not set 994# CONFIG_SYSV68_PARTITION is not set
956# CONFIG_NLS is not set 995# CONFIG_NLS is not set
957# CONFIG_DLM is not set 996# CONFIG_DLM is not set
958# CONFIG_UCC_SLOW is not set
959 997
960# 998#
961# Library routines 999# Library routines
@@ -971,7 +1009,6 @@ CONFIG_PLIST=y
971CONFIG_HAS_IOMEM=y 1009CONFIG_HAS_IOMEM=y
972CONFIG_HAS_IOPORT=y 1010CONFIG_HAS_IOPORT=y
973CONFIG_HAS_DMA=y 1011CONFIG_HAS_DMA=y
974# CONFIG_INSTRUMENTATION is not set
975 1012
976# 1013#
977# Kernel hacking 1014# Kernel hacking
@@ -990,6 +1027,7 @@ CONFIG_SCHED_DEBUG=y
990# CONFIG_SCHEDSTATS is not set 1027# CONFIG_SCHEDSTATS is not set
991# CONFIG_TIMER_STATS is not set 1028# CONFIG_TIMER_STATS is not set
992# CONFIG_SLUB_DEBUG_ON is not set 1029# CONFIG_SLUB_DEBUG_ON is not set
1030# CONFIG_SLUB_STATS is not set
993# CONFIG_DEBUG_RT_MUTEXES is not set 1031# CONFIG_DEBUG_RT_MUTEXES is not set
994# CONFIG_RT_MUTEX_TESTER is not set 1032# CONFIG_RT_MUTEX_TESTER is not set
995# CONFIG_DEBUG_SPINLOCK is not set 1033# CONFIG_DEBUG_SPINLOCK is not set
@@ -1002,9 +1040,9 @@ CONFIG_SCHED_DEBUG=y
1002# CONFIG_DEBUG_VM is not set 1040# CONFIG_DEBUG_VM is not set
1003# CONFIG_DEBUG_LIST is not set 1041# CONFIG_DEBUG_LIST is not set
1004# CONFIG_DEBUG_SG is not set 1042# CONFIG_DEBUG_SG is not set
1005CONFIG_FORCED_INLINING=y
1006# CONFIG_BOOT_PRINTK_DELAY is not set 1043# CONFIG_BOOT_PRINTK_DELAY is not set
1007# CONFIG_RCU_TORTURE_TEST is not set 1044# CONFIG_RCU_TORTURE_TEST is not set
1045# CONFIG_BACKTRACE_SELF_TEST is not set
1008# CONFIG_FAULT_INJECTION is not set 1046# CONFIG_FAULT_INJECTION is not set
1009# CONFIG_SAMPLES is not set 1047# CONFIG_SAMPLES is not set
1010# CONFIG_DEBUG_STACKOVERFLOW is not set 1048# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1023,6 +1061,7 @@ CONFIG_PPC_EARLY_DEBUG=y
1023# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set 1061# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
1024# CONFIG_PPC_EARLY_DEBUG_BEAT is not set 1062# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
1025# CONFIG_PPC_EARLY_DEBUG_44x is not set 1063# CONFIG_PPC_EARLY_DEBUG_44x is not set
1064# CONFIG_PPC_EARLY_DEBUG_40x is not set
1026# CONFIG_PPC_EARLY_DEBUG_CPM is not set 1065# CONFIG_PPC_EARLY_DEBUG_CPM is not set
1027 1066
1028# 1067#
@@ -1034,6 +1073,7 @@ CONFIG_PPC_EARLY_DEBUG=y
1034CONFIG_CRYPTO=y 1073CONFIG_CRYPTO=y
1035CONFIG_CRYPTO_ALGAPI=y 1074CONFIG_CRYPTO_ALGAPI=y
1036CONFIG_CRYPTO_BLKCIPHER=y 1075CONFIG_CRYPTO_BLKCIPHER=y
1076# CONFIG_CRYPTO_SEQIV is not set
1037CONFIG_CRYPTO_MANAGER=y 1077CONFIG_CRYPTO_MANAGER=y
1038# CONFIG_CRYPTO_HMAC is not set 1078# CONFIG_CRYPTO_HMAC is not set
1039# CONFIG_CRYPTO_XCBC is not set 1079# CONFIG_CRYPTO_XCBC is not set
@@ -1051,6 +1091,9 @@ CONFIG_CRYPTO_CBC=y
1051CONFIG_CRYPTO_PCBC=m 1091CONFIG_CRYPTO_PCBC=m
1052# CONFIG_CRYPTO_LRW is not set 1092# CONFIG_CRYPTO_LRW is not set
1053# CONFIG_CRYPTO_XTS is not set 1093# CONFIG_CRYPTO_XTS is not set
1094# CONFIG_CRYPTO_CTR is not set
1095# CONFIG_CRYPTO_GCM is not set
1096# CONFIG_CRYPTO_CCM is not set
1054# CONFIG_CRYPTO_CRYPTD is not set 1097# CONFIG_CRYPTO_CRYPTD is not set
1055CONFIG_CRYPTO_DES=y 1098CONFIG_CRYPTO_DES=y
1056# CONFIG_CRYPTO_FCRYPT is not set 1099# CONFIG_CRYPTO_FCRYPT is not set
@@ -1065,12 +1108,15 @@ CONFIG_CRYPTO_DES=y
1065# CONFIG_CRYPTO_KHAZAD is not set 1108# CONFIG_CRYPTO_KHAZAD is not set
1066# CONFIG_CRYPTO_ANUBIS is not set 1109# CONFIG_CRYPTO_ANUBIS is not set
1067# CONFIG_CRYPTO_SEED is not set 1110# CONFIG_CRYPTO_SEED is not set
1111# CONFIG_CRYPTO_SALSA20 is not set
1068# CONFIG_CRYPTO_DEFLATE is not set 1112# CONFIG_CRYPTO_DEFLATE is not set
1069# CONFIG_CRYPTO_MICHAEL_MIC is not set 1113# CONFIG_CRYPTO_MICHAEL_MIC is not set
1070# CONFIG_CRYPTO_CRC32C is not set 1114# CONFIG_CRYPTO_CRC32C is not set
1071# CONFIG_CRYPTO_CAMELLIA is not set 1115# CONFIG_CRYPTO_CAMELLIA is not set
1072# CONFIG_CRYPTO_TEST is not set 1116# CONFIG_CRYPTO_TEST is not set
1073# CONFIG_CRYPTO_AUTHENC is not set 1117# CONFIG_CRYPTO_AUTHENC is not set
1118# CONFIG_CRYPTO_LZO is not set
1074CONFIG_CRYPTO_HW=y 1119CONFIG_CRYPTO_HW=y
1120# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1075# CONFIG_PPC_CLOCK is not set 1121# CONFIG_PPC_CLOCK is not set
1076CONFIG_PPC_LIB_RHEAP=y 1122CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc8572_ds_defconfig b/arch/powerpc/configs/mpc8572_ds_defconfig
index b40802d17e03..460afe99c653 100644
--- a/arch/powerpc/configs/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/mpc8572_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:52 2007 4# Mon Mar 24 08:48:29 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,17 +69,21 @@ CONFIG_POSIX_MQUEUE=y
68CONFIG_BSD_PROCESS_ACCT=y 69CONFIG_BSD_PROCESS_ACCT=y
69# CONFIG_BSD_PROCESS_ACCT_V3 is not set 70# CONFIG_BSD_PROCESS_ACCT_V3 is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73CONFIG_AUDIT=y 72CONFIG_AUDIT=y
74# CONFIG_AUDITSYSCALL is not set 73# CONFIG_AUDITSYSCALL is not set
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
86# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 88CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,11 +97,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 97CONFIG_PRINTK=y
93CONFIG_BUG=y 98CONFIG_BUG=y
94CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 102CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 104CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 108CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +111,14 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
105CONFIG_SLUB=y 112CONFIG_SLUB=y
106# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
@@ -131,21 +146,30 @@ CONFIG_IOSCHED_CFQ=y
131CONFIG_DEFAULT_CFQ=y 146CONFIG_DEFAULT_CFQ=y
132# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="cfq" 148CONFIG_DEFAULT_IOSCHED="cfq"
149CONFIG_CLASSIC_RCU=y
134 150
135# 151#
136# Platform support 152# Platform support
137# 153#
138# CONFIG_PPC_MPC52xx is not set 154# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 155# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
159CONFIG_MPC85xx=y
143# CONFIG_MPC8540_ADS is not set 160# CONFIG_MPC8540_ADS is not set
144# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
145# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
146# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
147CONFIG_MPC85xx_DS=y 164CONFIG_MPC85xx_DS=y
148CONFIG_MPC85xx=y 165# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set
168# CONFIG_TQM8555 is not set
169# CONFIG_TQM8560 is not set
170# CONFIG_SBC8548 is not set
171# CONFIG_SBC8560 is not set
172# CONFIG_IPIC is not set
149CONFIG_MPIC=y 173CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 174# CONFIG_MPIC_WEIRD is not set
151CONFIG_PPC_I8259=y 175CONFIG_PPC_I8259=y
@@ -172,13 +196,17 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 196# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 197# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 198CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 203CONFIG_BINFMT_ELF=y
179CONFIG_BINFMT_MISC=m 204CONFIG_BINFMT_MISC=m
180CONFIG_MATH_EMULATION=y 205CONFIG_MATH_EMULATION=y
206# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 210CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 211CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 212CONFIG_SELECT_MEMORY_MODEL=y
@@ -197,11 +225,7 @@ CONFIG_VIRT_TO_BUS=y
197CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
198# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 227# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202CONFIG_SECCOMP=y 228CONFIG_SECCOMP=y
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 229CONFIG_ISA_DMA_API=y
206 230
207# 231#
@@ -252,6 +276,7 @@ CONFIG_XFRM=y
252CONFIG_XFRM_USER=y 276CONFIG_XFRM_USER=y
253# CONFIG_XFRM_SUB_POLICY is not set 277# CONFIG_XFRM_SUB_POLICY is not set
254# CONFIG_XFRM_MIGRATE is not set 278# CONFIG_XFRM_MIGRATE is not set
279# CONFIG_XFRM_STATISTICS is not set
255CONFIG_NET_KEY=m 280CONFIG_NET_KEY=m
256# CONFIG_NET_KEY_MIGRATE is not set 281# CONFIG_NET_KEY_MIGRATE is not set
257CONFIG_INET=y 282CONFIG_INET=y
@@ -335,6 +360,7 @@ CONFIG_SCTP_HMAC_MD5=y
335# 360#
336# CONFIG_NET_PKTGEN is not set 361# CONFIG_NET_PKTGEN is not set
337# CONFIG_HAMRADIO is not set 362# CONFIG_HAMRADIO is not set
363# CONFIG_CAN is not set
338# CONFIG_IRDA is not set 364# CONFIG_IRDA is not set
339# CONFIG_BT is not set 365# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 366# CONFIG_AF_RXRPC is not set
@@ -383,7 +409,7 @@ CONFIG_BLK_DEV_NBD=y
383CONFIG_BLK_DEV_RAM=y 409CONFIG_BLK_DEV_RAM=y
384CONFIG_BLK_DEV_RAM_COUNT=16 410CONFIG_BLK_DEV_RAM_COUNT=16
385CONFIG_BLK_DEV_RAM_SIZE=131072 411CONFIG_BLK_DEV_RAM_SIZE=131072
386CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 412# CONFIG_BLK_DEV_XIP is not set
387# CONFIG_CDROM_PKTCDVD is not set 413# CONFIG_CDROM_PKTCDVD is not set
388# CONFIG_ATA_OVER_ETH is not set 414# CONFIG_ATA_OVER_ETH is not set
389CONFIG_MISC_DEVICES=y 415CONFIG_MISC_DEVICES=y
@@ -391,6 +417,8 @@ CONFIG_MISC_DEVICES=y
391# CONFIG_EEPROM_93CX6 is not set 417# CONFIG_EEPROM_93CX6 is not set
392# CONFIG_SGI_IOC4 is not set 418# CONFIG_SGI_IOC4 is not set
393# CONFIG_TIFM_CORE is not set 419# CONFIG_TIFM_CORE is not set
420# CONFIG_ENCLOSURE_SERVICES is not set
421CONFIG_HAVE_IDE=y
394# CONFIG_IDE is not set 422# CONFIG_IDE is not set
395 423
396# 424#
@@ -456,6 +484,7 @@ CONFIG_SCSI_LOWLEVEL=y
456# CONFIG_SCSI_IPS is not set 484# CONFIG_SCSI_IPS is not set
457# CONFIG_SCSI_INITIO is not set 485# CONFIG_SCSI_INITIO is not set
458# CONFIG_SCSI_INIA100 is not set 486# CONFIG_SCSI_INIA100 is not set
487# CONFIG_SCSI_MVSAS is not set
459# CONFIG_SCSI_STEX is not set 488# CONFIG_SCSI_STEX is not set
460# CONFIG_SCSI_SYM53C8XX_2 is not set 489# CONFIG_SCSI_SYM53C8XX_2 is not set
461# CONFIG_SCSI_IPR is not set 490# CONFIG_SCSI_IPR is not set
@@ -486,6 +515,7 @@ CONFIG_SATA_AHCI=y
486# CONFIG_SATA_VIA is not set 515# CONFIG_SATA_VIA is not set
487# CONFIG_SATA_VITESSE is not set 516# CONFIG_SATA_VITESSE is not set
488# CONFIG_SATA_INIC162X is not set 517# CONFIG_SATA_INIC162X is not set
518# CONFIG_SATA_FSL is not set
489CONFIG_PATA_ALI=y 519CONFIG_PATA_ALI=y
490# CONFIG_PATA_AMD is not set 520# CONFIG_PATA_AMD is not set
491# CONFIG_PATA_ARTOP is not set 521# CONFIG_PATA_ARTOP is not set
@@ -509,6 +539,7 @@ CONFIG_PATA_ALI=y
509# CONFIG_PATA_MPIIX is not set 539# CONFIG_PATA_MPIIX is not set
510# CONFIG_PATA_OLDPIIX is not set 540# CONFIG_PATA_OLDPIIX is not set
511# CONFIG_PATA_NETCELL is not set 541# CONFIG_PATA_NETCELL is not set
542# CONFIG_PATA_NINJA32 is not set
512# CONFIG_PATA_NS87410 is not set 543# CONFIG_PATA_NS87410 is not set
513# CONFIG_PATA_NS87415 is not set 544# CONFIG_PATA_NS87415 is not set
514# CONFIG_PATA_OPTI is not set 545# CONFIG_PATA_OPTI is not set
@@ -542,7 +573,6 @@ CONFIG_DUMMY=y
542# CONFIG_EQUALIZER is not set 573# CONFIG_EQUALIZER is not set
543# CONFIG_TUN is not set 574# CONFIG_TUN is not set
544# CONFIG_VETH is not set 575# CONFIG_VETH is not set
545# CONFIG_IP1000 is not set
546# CONFIG_ARCNET is not set 576# CONFIG_ARCNET is not set
547CONFIG_PHYLIB=y 577CONFIG_PHYLIB=y
548 578
@@ -558,6 +588,7 @@ CONFIG_VITESSE_PHY=y
558# CONFIG_SMSC_PHY is not set 588# CONFIG_SMSC_PHY is not set
559# CONFIG_BROADCOM_PHY is not set 589# CONFIG_BROADCOM_PHY is not set
560# CONFIG_ICPLUS_PHY is not set 590# CONFIG_ICPLUS_PHY is not set
591# CONFIG_REALTEK_PHY is not set
561# CONFIG_FIXED_PHY is not set 592# CONFIG_FIXED_PHY is not set
562# CONFIG_MDIO_BITBANG is not set 593# CONFIG_MDIO_BITBANG is not set
563CONFIG_NET_ETHERNET=y 594CONFIG_NET_ETHERNET=y
@@ -579,6 +610,9 @@ CONFIG_NETDEV_1000=y
579# CONFIG_DL2K is not set 610# CONFIG_DL2K is not set
580# CONFIG_E1000 is not set 611# CONFIG_E1000 is not set
581# CONFIG_E1000E is not set 612# CONFIG_E1000E is not set
613# CONFIG_E1000E_ENABLED is not set
614# CONFIG_IP1000 is not set
615# CONFIG_IGB is not set
582# CONFIG_NS83820 is not set 616# CONFIG_NS83820 is not set
583# CONFIG_HAMACHI is not set 617# CONFIG_HAMACHI is not set
584# CONFIG_YELLOWFIN is not set 618# CONFIG_YELLOWFIN is not set
@@ -605,6 +639,7 @@ CONFIG_NETDEV_10000=y
605# CONFIG_NIU is not set 639# CONFIG_NIU is not set
606# CONFIG_MLX4_CORE is not set 640# CONFIG_MLX4_CORE is not set
607# CONFIG_TEHUTI is not set 641# CONFIG_TEHUTI is not set
642# CONFIG_BNX2X is not set
608# CONFIG_TR is not set 643# CONFIG_TR is not set
609 644
610# 645#
@@ -627,7 +662,6 @@ CONFIG_NETDEV_10000=y
627# CONFIG_PPP is not set 662# CONFIG_PPP is not set
628# CONFIG_SLIP is not set 663# CONFIG_SLIP is not set
629# CONFIG_NET_FC is not set 664# CONFIG_NET_FC is not set
630# CONFIG_SHAPER is not set
631# CONFIG_NETCONSOLE is not set 665# CONFIG_NETCONSOLE is not set
632# CONFIG_NETPOLL is not set 666# CONFIG_NETPOLL is not set
633# CONFIG_NET_POLL_CONTROLLER is not set 667# CONFIG_NET_POLL_CONTROLLER is not set
@@ -678,6 +712,7 @@ CONFIG_VT_CONSOLE=y
678CONFIG_HW_CONSOLE=y 712CONFIG_HW_CONSOLE=y
679# CONFIG_VT_HW_CONSOLE_BINDING is not set 713# CONFIG_VT_HW_CONSOLE_BINDING is not set
680# CONFIG_SERIAL_NONSTANDARD is not set 714# CONFIG_SERIAL_NONSTANDARD is not set
715# CONFIG_NOZOMI is not set
681 716
682# 717#
683# Serial drivers 718# Serial drivers
@@ -756,14 +791,12 @@ CONFIG_I2C_MPC=y
756# 791#
757# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
758# 793#
759# CONFIG_SENSORS_DS1337 is not set
760# CONFIG_SENSORS_DS1374 is not set
761# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
762CONFIG_SENSORS_EEPROM=y 795CONFIG_SENSORS_EEPROM=y
763# CONFIG_SENSORS_PCF8574 is not set 796# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_SENSORS_PCA9539 is not set 797# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 798# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_SENSORS_M41T00 is not set 799# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 800# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 801# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 802# CONFIG_I2C_DEBUG_CORE is not set
@@ -779,6 +812,7 @@ CONFIG_SENSORS_EEPROM=y
779# CONFIG_W1 is not set 812# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 813# CONFIG_POWER_SUPPLY is not set
781# CONFIG_HWMON is not set 814# CONFIG_HWMON is not set
815# CONFIG_THERMAL is not set
782# CONFIG_WATCHDOG is not set 816# CONFIG_WATCHDOG is not set
783 817
784# 818#
@@ -803,6 +837,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
803# 837#
804# Supported SAA7146 based PCI Adapters 838# Supported SAA7146 based PCI Adapters
805# 839#
840# CONFIG_TTPCI_EEPROM is not set
841# CONFIG_DVB_BUDGET_CORE is not set
806 842
807# 843#
808# Supported USB Adapters 844# Supported USB Adapters
@@ -888,11 +924,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
888# CONFIG_DVB_PLL is not set 924# CONFIG_DVB_PLL is not set
889# CONFIG_DVB_TDA826X is not set 925# CONFIG_DVB_TDA826X is not set
890# CONFIG_DVB_TDA827X is not set 926# CONFIG_DVB_TDA827X is not set
927# CONFIG_DVB_TDA18271 is not set
891# CONFIG_DVB_TUNER_QT1010 is not set 928# CONFIG_DVB_TUNER_QT1010 is not set
892# CONFIG_DVB_TUNER_MT2060 is not set 929# CONFIG_DVB_TUNER_MT2060 is not set
893# CONFIG_DVB_TUNER_MT2266 is not set 930# CONFIG_DVB_TUNER_MT2266 is not set
894# CONFIG_DVB_TUNER_MT2131 is not set 931# CONFIG_DVB_TUNER_MT2131 is not set
895# CONFIG_DVB_TUNER_DIB0070 is not set 932# CONFIG_DVB_TUNER_DIB0070 is not set
933# CONFIG_DVB_TUNER_XC5000 is not set
896 934
897# 935#
898# Miscellaneous devices 936# Miscellaneous devices
@@ -970,6 +1008,7 @@ CONFIG_SND_AC97_CODEC=y
970# CONFIG_SND_BT87X is not set 1008# CONFIG_SND_BT87X is not set
971# CONFIG_SND_CA0106 is not set 1009# CONFIG_SND_CA0106 is not set
972# CONFIG_SND_CMIPCI is not set 1010# CONFIG_SND_CMIPCI is not set
1011# CONFIG_SND_OXYGEN is not set
973# CONFIG_SND_CS4281 is not set 1012# CONFIG_SND_CS4281 is not set
974# CONFIG_SND_CS46XX is not set 1013# CONFIG_SND_CS46XX is not set
975# CONFIG_SND_CS5530 is not set 1014# CONFIG_SND_CS5530 is not set
@@ -995,6 +1034,7 @@ CONFIG_SND_AC97_CODEC=y
995# CONFIG_SND_HDA_INTEL is not set 1034# CONFIG_SND_HDA_INTEL is not set
996# CONFIG_SND_HDSP is not set 1035# CONFIG_SND_HDSP is not set
997# CONFIG_SND_HDSPM is not set 1036# CONFIG_SND_HDSPM is not set
1037# CONFIG_SND_HIFIER is not set
998# CONFIG_SND_ICE1712 is not set 1038# CONFIG_SND_ICE1712 is not set
999# CONFIG_SND_ICE1724 is not set 1039# CONFIG_SND_ICE1724 is not set
1000CONFIG_SND_INTEL8X0=y 1040CONFIG_SND_INTEL8X0=y
@@ -1012,6 +1052,7 @@ CONFIG_SND_INTEL8X0=y
1012# CONFIG_SND_TRIDENT is not set 1052# CONFIG_SND_TRIDENT is not set
1013# CONFIG_SND_VIA82XX is not set 1053# CONFIG_SND_VIA82XX is not set
1014# CONFIG_SND_VIA82XX_MODEM is not set 1054# CONFIG_SND_VIA82XX_MODEM is not set
1055# CONFIG_SND_VIRTUOSO is not set
1015# CONFIG_SND_VX222 is not set 1056# CONFIG_SND_VX222 is not set
1016# CONFIG_SND_YMFPCI is not set 1057# CONFIG_SND_YMFPCI is not set
1017# CONFIG_SND_AC97_POWER_SAVE is not set 1058# CONFIG_SND_AC97_POWER_SAVE is not set
@@ -1041,6 +1082,10 @@ CONFIG_SND_INTEL8X0=y
1041# 1082#
1042 1083
1043# 1084#
1085# ALSA SoC audio for Freescale SOCs
1086#
1087
1088#
1044# Open Sound System 1089# Open Sound System
1045# 1090#
1046# CONFIG_SOUND_PRIME is not set 1091# CONFIG_SOUND_PRIME is not set
@@ -1063,6 +1108,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1063CONFIG_USB_ARCH_HAS_EHCI=y 1108CONFIG_USB_ARCH_HAS_EHCI=y
1064CONFIG_USB=y 1109CONFIG_USB=y
1065# CONFIG_USB_DEBUG is not set 1110# CONFIG_USB_DEBUG is not set
1111# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1066 1112
1067# 1113#
1068# Miscellaneous USB options 1114# Miscellaneous USB options
@@ -1076,9 +1122,10 @@ CONFIG_USB_DEVICE_CLASS=y
1076# USB Host Controller Drivers 1122# USB Host Controller Drivers
1077# 1123#
1078CONFIG_USB_EHCI_HCD=y 1124CONFIG_USB_EHCI_HCD=y
1079# CONFIG_USB_EHCI_SPLIT_ISO is not set
1080# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1125# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1081# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1126# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1127# CONFIG_USB_EHCI_FSL is not set
1128CONFIG_USB_EHCI_HCD_PPC_OF=y
1082# CONFIG_USB_ISP116X_HCD is not set 1129# CONFIG_USB_ISP116X_HCD is not set
1083CONFIG_USB_OHCI_HCD=y 1130CONFIG_USB_OHCI_HCD=y
1084CONFIG_USB_OHCI_HCD_PPC_OF=y 1131CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1129,10 +1176,6 @@ CONFIG_USB_MON=y
1129# 1176#
1130# USB port drivers 1177# USB port drivers
1131# 1178#
1132
1133#
1134# USB Serial Converter support
1135#
1136# CONFIG_USB_SERIAL is not set 1179# CONFIG_USB_SERIAL is not set
1137 1180
1138# 1181#
@@ -1158,21 +1201,18 @@ CONFIG_USB_MON=y
1158# CONFIG_USB_TRANCEVIBRATOR is not set 1201# CONFIG_USB_TRANCEVIBRATOR is not set
1159# CONFIG_USB_IOWARRIOR is not set 1202# CONFIG_USB_IOWARRIOR is not set
1160# CONFIG_USB_TEST is not set 1203# CONFIG_USB_TEST is not set
1161
1162#
1163# USB DSL modem support
1164#
1165
1166#
1167# USB Gadget Support
1168#
1169# CONFIG_USB_GADGET is not set 1204# CONFIG_USB_GADGET is not set
1170# CONFIG_MMC is not set 1205# CONFIG_MMC is not set
1206# CONFIG_MEMSTICK is not set
1171# CONFIG_NEW_LEDS is not set 1207# CONFIG_NEW_LEDS is not set
1172# CONFIG_INFINIBAND is not set 1208# CONFIG_INFINIBAND is not set
1173# CONFIG_EDAC is not set 1209# CONFIG_EDAC is not set
1174CONFIG_RTC_LIB=y 1210CONFIG_RTC_LIB=y
1175CONFIG_RTC_CLASS=y 1211CONFIG_RTC_CLASS=y
1212
1213#
1214# Conflicting RTC option has been selected, check GEN_RTC and RTC
1215#
1176CONFIG_RTC_HCTOSYS=y 1216CONFIG_RTC_HCTOSYS=y
1177CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1217CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1178# CONFIG_RTC_DEBUG is not set 1218# CONFIG_RTC_DEBUG is not set
@@ -1199,6 +1239,7 @@ CONFIG_RTC_INTF_DEV=y
1199# CONFIG_RTC_DRV_PCF8563 is not set 1239# CONFIG_RTC_DRV_PCF8563 is not set
1200# CONFIG_RTC_DRV_PCF8583 is not set 1240# CONFIG_RTC_DRV_PCF8583 is not set
1201# CONFIG_RTC_DRV_M41T80 is not set 1241# CONFIG_RTC_DRV_M41T80 is not set
1242# CONFIG_RTC_DRV_S35390A is not set
1202 1243
1203# 1244#
1204# SPI RTC drivers 1245# SPI RTC drivers
@@ -1208,9 +1249,10 @@ CONFIG_RTC_INTF_DEV=y
1208# Platform RTC drivers 1249# Platform RTC drivers
1209# 1250#
1210CONFIG_RTC_DRV_CMOS=y 1251CONFIG_RTC_DRV_CMOS=y
1252# CONFIG_RTC_DRV_DS1511 is not set
1211# CONFIG_RTC_DRV_DS1553 is not set 1253# CONFIG_RTC_DRV_DS1553 is not set
1212# CONFIG_RTC_DRV_STK17TA8 is not set
1213# CONFIG_RTC_DRV_DS1742 is not set 1254# CONFIG_RTC_DRV_DS1742 is not set
1255# CONFIG_RTC_DRV_STK17TA8 is not set
1214# CONFIG_RTC_DRV_M48T86 is not set 1256# CONFIG_RTC_DRV_M48T86 is not set
1215# CONFIG_RTC_DRV_M48T59 is not set 1257# CONFIG_RTC_DRV_M48T59 is not set
1216# CONFIG_RTC_DRV_V3020 is not set 1258# CONFIG_RTC_DRV_V3020 is not set
@@ -1218,6 +1260,7 @@ CONFIG_RTC_DRV_CMOS=y
1218# 1260#
1219# on-CPU RTC drivers 1261# on-CPU RTC drivers
1220# 1262#
1263# CONFIG_DMADEVICES is not set
1221 1264
1222# 1265#
1223# Userspace I/O 1266# Userspace I/O
@@ -1243,12 +1286,10 @@ CONFIG_FS_MBCACHE=y
1243# CONFIG_XFS_FS is not set 1286# CONFIG_XFS_FS is not set
1244# CONFIG_GFS2_FS is not set 1287# CONFIG_GFS2_FS is not set
1245# CONFIG_OCFS2_FS is not set 1288# CONFIG_OCFS2_FS is not set
1246# CONFIG_MINIX_FS is not set 1289CONFIG_DNOTIFY=y
1247# CONFIG_ROMFS_FS is not set
1248CONFIG_INOTIFY=y 1290CONFIG_INOTIFY=y
1249CONFIG_INOTIFY_USER=y 1291CONFIG_INOTIFY_USER=y
1250# CONFIG_QUOTA is not set 1292# CONFIG_QUOTA is not set
1251CONFIG_DNOTIFY=y
1252# CONFIG_AUTOFS_FS is not set 1293# CONFIG_AUTOFS_FS is not set
1253# CONFIG_AUTOFS4_FS is not set 1294# CONFIG_AUTOFS4_FS is not set
1254# CONFIG_FUSE_FS is not set 1295# CONFIG_FUSE_FS is not set
@@ -1300,8 +1341,10 @@ CONFIG_BFS_FS=m
1300CONFIG_EFS_FS=m 1341CONFIG_EFS_FS=m
1301CONFIG_CRAMFS=y 1342CONFIG_CRAMFS=y
1302CONFIG_VXFS_FS=m 1343CONFIG_VXFS_FS=m
1344# CONFIG_MINIX_FS is not set
1303CONFIG_HPFS_FS=m 1345CONFIG_HPFS_FS=m
1304CONFIG_QNX4FS_FS=m 1346CONFIG_QNX4FS_FS=m
1347# CONFIG_ROMFS_FS is not set
1305CONFIG_SYSV_FS=m 1348CONFIG_SYSV_FS=m
1306CONFIG_UFS_FS=m 1349CONFIG_UFS_FS=m
1307# CONFIG_UFS_FS_WRITE is not set 1350# CONFIG_UFS_FS_WRITE is not set
@@ -1393,7 +1436,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1393# CONFIG_NLS_KOI8_U is not set 1436# CONFIG_NLS_KOI8_U is not set
1394CONFIG_NLS_UTF8=m 1437CONFIG_NLS_UTF8=m
1395# CONFIG_DLM is not set 1438# CONFIG_DLM is not set
1396# CONFIG_UCC_SLOW is not set
1397 1439
1398# 1440#
1399# Library routines 1441# Library routines
@@ -1410,7 +1452,6 @@ CONFIG_PLIST=y
1410CONFIG_HAS_IOMEM=y 1452CONFIG_HAS_IOMEM=y
1411CONFIG_HAS_IOPORT=y 1453CONFIG_HAS_IOPORT=y
1412CONFIG_HAS_DMA=y 1454CONFIG_HAS_DMA=y
1413# CONFIG_INSTRUMENTATION is not set
1414 1455
1415# 1456#
1416# Kernel hacking 1457# Kernel hacking
@@ -1429,6 +1470,7 @@ CONFIG_SCHED_DEBUG=y
1429# CONFIG_SCHEDSTATS is not set 1470# CONFIG_SCHEDSTATS is not set
1430# CONFIG_TIMER_STATS is not set 1471# CONFIG_TIMER_STATS is not set
1431# CONFIG_SLUB_DEBUG_ON is not set 1472# CONFIG_SLUB_DEBUG_ON is not set
1473# CONFIG_SLUB_STATS is not set
1432# CONFIG_DEBUG_RT_MUTEXES is not set 1474# CONFIG_DEBUG_RT_MUTEXES is not set
1433# CONFIG_RT_MUTEX_TESTER is not set 1475# CONFIG_RT_MUTEX_TESTER is not set
1434# CONFIG_DEBUG_SPINLOCK is not set 1476# CONFIG_DEBUG_SPINLOCK is not set
@@ -1442,9 +1484,9 @@ CONFIG_DEBUG_INFO=y
1442# CONFIG_DEBUG_VM is not set 1484# CONFIG_DEBUG_VM is not set
1443# CONFIG_DEBUG_LIST is not set 1485# CONFIG_DEBUG_LIST is not set
1444# CONFIG_DEBUG_SG is not set 1486# CONFIG_DEBUG_SG is not set
1445CONFIG_FORCED_INLINING=y
1446# CONFIG_BOOT_PRINTK_DELAY is not set 1487# CONFIG_BOOT_PRINTK_DELAY is not set
1447# CONFIG_RCU_TORTURE_TEST is not set 1488# CONFIG_RCU_TORTURE_TEST is not set
1489# CONFIG_BACKTRACE_SELF_TEST is not set
1448# CONFIG_FAULT_INJECTION is not set 1490# CONFIG_FAULT_INJECTION is not set
1449# CONFIG_SAMPLES is not set 1491# CONFIG_SAMPLES is not set
1450# CONFIG_DEBUG_STACKOVERFLOW is not set 1492# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1463,6 +1505,7 @@ CONFIG_FORCED_INLINING=y
1463CONFIG_CRYPTO=y 1505CONFIG_CRYPTO=y
1464CONFIG_CRYPTO_ALGAPI=y 1506CONFIG_CRYPTO_ALGAPI=y
1465CONFIG_CRYPTO_BLKCIPHER=y 1507CONFIG_CRYPTO_BLKCIPHER=y
1508# CONFIG_CRYPTO_SEQIV is not set
1466CONFIG_CRYPTO_HASH=y 1509CONFIG_CRYPTO_HASH=y
1467CONFIG_CRYPTO_MANAGER=y 1510CONFIG_CRYPTO_MANAGER=y
1468CONFIG_CRYPTO_HMAC=y 1511CONFIG_CRYPTO_HMAC=y
@@ -1481,6 +1524,9 @@ CONFIG_CRYPTO_CBC=y
1481CONFIG_CRYPTO_PCBC=m 1524CONFIG_CRYPTO_PCBC=m
1482# CONFIG_CRYPTO_LRW is not set 1525# CONFIG_CRYPTO_LRW is not set
1483# CONFIG_CRYPTO_XTS is not set 1526# CONFIG_CRYPTO_XTS is not set
1527# CONFIG_CRYPTO_CTR is not set
1528# CONFIG_CRYPTO_GCM is not set
1529# CONFIG_CRYPTO_CCM is not set
1484# CONFIG_CRYPTO_CRYPTD is not set 1530# CONFIG_CRYPTO_CRYPTD is not set
1485CONFIG_CRYPTO_DES=y 1531CONFIG_CRYPTO_DES=y
1486# CONFIG_CRYPTO_FCRYPT is not set 1532# CONFIG_CRYPTO_FCRYPT is not set
@@ -1495,11 +1541,14 @@ CONFIG_CRYPTO_DES=y
1495# CONFIG_CRYPTO_KHAZAD is not set 1541# CONFIG_CRYPTO_KHAZAD is not set
1496# CONFIG_CRYPTO_ANUBIS is not set 1542# CONFIG_CRYPTO_ANUBIS is not set
1497# CONFIG_CRYPTO_SEED is not set 1543# CONFIG_CRYPTO_SEED is not set
1544# CONFIG_CRYPTO_SALSA20 is not set
1498# CONFIG_CRYPTO_DEFLATE is not set 1545# CONFIG_CRYPTO_DEFLATE is not set
1499# CONFIG_CRYPTO_MICHAEL_MIC is not set 1546# CONFIG_CRYPTO_MICHAEL_MIC is not set
1500# CONFIG_CRYPTO_CRC32C is not set 1547# CONFIG_CRYPTO_CRC32C is not set
1501# CONFIG_CRYPTO_CAMELLIA is not set 1548# CONFIG_CRYPTO_CAMELLIA is not set
1502# CONFIG_CRYPTO_TEST is not set 1549# CONFIG_CRYPTO_TEST is not set
1503# CONFIG_CRYPTO_AUTHENC is not set 1550# CONFIG_CRYPTO_AUTHENC is not set
1551# CONFIG_CRYPTO_LZO is not set
1504CONFIG_CRYPTO_HW=y 1552CONFIG_CRYPTO_HW=y
1553# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1505# CONFIG_PPC_CLOCK is not set 1554# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc85xx_cds_defconfig b/arch/powerpc/configs/mpc85xx_cds_defconfig
index 2f9ad589b004..a469fe918816 100644
--- a/arch/powerpc/configs/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/mpc85xx_cds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:54 2007 4# Mon Mar 24 08:48:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,15 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76# CONFIG_FAIR_GROUP_SCHED is not set 76# CONFIG_FAIR_GROUP_SCHED is not set
77# CONFIG_RT_GROUP_SCHED is not set
78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
79CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +94,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 94CONFIG_PRINTK=y
90CONFIG_BUG=y 95CONFIG_BUG=y
91CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 99CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 101CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 105CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
102CONFIG_SLUB=y 109CONFIG_SLUB=y
103# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
@@ -123,22 +137,30 @@ CONFIG_DEFAULT_AS=y
123# CONFIG_DEFAULT_CFQ is not set 137# CONFIG_DEFAULT_CFQ is not set
124# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
140CONFIG_CLASSIC_RCU=y
126 141
127# 142#
128# Platform support 143# Platform support
129# 144#
130# CONFIG_PPC_MPC52xx is not set 145# CONFIG_PPC_MPC512x is not set
131# CONFIG_PPC_MPC5200 is not set 146# CONFIG_PPC_MPC5121 is not set
132# CONFIG_PPC_CELL is not set 147# CONFIG_PPC_CELL is not set
133# CONFIG_PPC_CELL_NATIVE is not set 148# CONFIG_PPC_CELL_NATIVE is not set
134# CONFIG_PQ2ADS is not set 149# CONFIG_PQ2ADS is not set
150CONFIG_MPC85xx=y
135# CONFIG_MPC8540_ADS is not set 151# CONFIG_MPC8540_ADS is not set
136# CONFIG_MPC8560_ADS is not set 152# CONFIG_MPC8560_ADS is not set
137CONFIG_MPC85xx_CDS=y 153CONFIG_MPC85xx_CDS=y
138# CONFIG_MPC85xx_MDS is not set 154# CONFIG_MPC85xx_MDS is not set
139# CONFIG_MPC85xx_DS is not set 155# CONFIG_MPC85xx_DS is not set
140CONFIG_MPC8540=y 156# CONFIG_STX_GP3 is not set
141CONFIG_MPC85xx=y 157# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set
159# CONFIG_TQM8555 is not set
160# CONFIG_TQM8560 is not set
161# CONFIG_SBC8548 is not set
162# CONFIG_SBC8560 is not set
163# CONFIG_IPIC is not set
142CONFIG_MPIC=y 164CONFIG_MPIC=y
143# CONFIG_MPIC_WEIRD is not set 165# CONFIG_MPIC_WEIRD is not set
144CONFIG_PPC_I8259=y 166CONFIG_PPC_I8259=y
@@ -165,13 +187,17 @@ CONFIG_HZ_250=y
165# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
166# CONFIG_HZ_1000 is not set 188# CONFIG_HZ_1000 is not set
167CONFIG_HZ=250 189CONFIG_HZ=250
190# CONFIG_SCHED_HRTICK is not set
168CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
169# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
170# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
171CONFIG_BINFMT_ELF=y 194CONFIG_BINFMT_ELF=y
172CONFIG_BINFMT_MISC=y 195CONFIG_BINFMT_MISC=y
173CONFIG_MATH_EMULATION=y 196CONFIG_MATH_EMULATION=y
197# CONFIG_IOMMU_HELPER is not set
174CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 198CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
199CONFIG_ARCH_HAS_WALK_MEMORY=y
200CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
175CONFIG_ARCH_FLATMEM_ENABLE=y 201CONFIG_ARCH_FLATMEM_ENABLE=y
176CONFIG_ARCH_POPULATES_NODE_MAP=y 202CONFIG_ARCH_POPULATES_NODE_MAP=y
177CONFIG_SELECT_MEMORY_MODEL=y 203CONFIG_SELECT_MEMORY_MODEL=y
@@ -190,11 +216,7 @@ CONFIG_VIRT_TO_BUS=y
190CONFIG_PROC_DEVICETREE=y 216CONFIG_PROC_DEVICETREE=y
191# CONFIG_CMDLINE_BOOL is not set 217# CONFIG_CMDLINE_BOOL is not set
192# CONFIG_PM is not set 218# CONFIG_PM is not set
193CONFIG_SUSPEND_UP_POSSIBLE=y
194CONFIG_HIBERNATION_UP_POSSIBLE=y
195# CONFIG_SECCOMP is not set 219# CONFIG_SECCOMP is not set
196CONFIG_WANT_DEVICE_TREE=y
197CONFIG_DEVICE_TREE=""
198CONFIG_ISA_DMA_API=y 220CONFIG_ISA_DMA_API=y
199 221
200# 222#
@@ -244,6 +266,7 @@ CONFIG_XFRM=y
244CONFIG_XFRM_USER=y 266CONFIG_XFRM_USER=y
245# CONFIG_XFRM_SUB_POLICY is not set 267# CONFIG_XFRM_SUB_POLICY is not set
246# CONFIG_XFRM_MIGRATE is not set 268# CONFIG_XFRM_MIGRATE is not set
269# CONFIG_XFRM_STATISTICS is not set
247# CONFIG_NET_KEY is not set 270# CONFIG_NET_KEY is not set
248CONFIG_INET=y 271CONFIG_INET=y
249CONFIG_IP_MULTICAST=y 272CONFIG_IP_MULTICAST=y
@@ -299,6 +322,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
299# 322#
300# CONFIG_NET_PKTGEN is not set 323# CONFIG_NET_PKTGEN is not set
301# CONFIG_HAMRADIO is not set 324# CONFIG_HAMRADIO is not set
325# CONFIG_CAN is not set
302# CONFIG_IRDA is not set 326# CONFIG_IRDA is not set
303# CONFIG_BT is not set 327# CONFIG_BT is not set
304# CONFIG_AF_RXRPC is not set 328# CONFIG_AF_RXRPC is not set
@@ -345,7 +369,7 @@ CONFIG_BLK_DEV_LOOP=y
345CONFIG_BLK_DEV_RAM=y 369CONFIG_BLK_DEV_RAM=y
346CONFIG_BLK_DEV_RAM_COUNT=16 370CONFIG_BLK_DEV_RAM_COUNT=16
347CONFIG_BLK_DEV_RAM_SIZE=32768 371CONFIG_BLK_DEV_RAM_SIZE=32768
348CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 372# CONFIG_BLK_DEV_XIP is not set
349# CONFIG_CDROM_PKTCDVD is not set 373# CONFIG_CDROM_PKTCDVD is not set
350# CONFIG_ATA_OVER_ETH is not set 374# CONFIG_ATA_OVER_ETH is not set
351CONFIG_MISC_DEVICES=y 375CONFIG_MISC_DEVICES=y
@@ -353,12 +377,14 @@ CONFIG_MISC_DEVICES=y
353# CONFIG_EEPROM_93CX6 is not set 377# CONFIG_EEPROM_93CX6 is not set
354# CONFIG_SGI_IOC4 is not set 378# CONFIG_SGI_IOC4 is not set
355# CONFIG_TIFM_CORE is not set 379# CONFIG_TIFM_CORE is not set
380# CONFIG_ENCLOSURE_SERVICES is not set
381CONFIG_HAVE_IDE=y
356CONFIG_IDE=y 382CONFIG_IDE=y
357CONFIG_IDE_MAX_HWIFS=4 383CONFIG_IDE_MAX_HWIFS=4
358CONFIG_BLK_DEV_IDE=y 384CONFIG_BLK_DEV_IDE=y
359 385
360# 386#
361# Please see Documentation/ide.txt for help/info on IDE drives 387# Please see Documentation/ide/ide.txt for help/info on IDE drives
362# 388#
363# CONFIG_BLK_DEV_IDE_SATA is not set 389# CONFIG_BLK_DEV_IDE_SATA is not set
364# CONFIG_BLK_DEV_IDEDISK is not set 390# CONFIG_BLK_DEV_IDEDISK is not set
@@ -374,12 +400,12 @@ CONFIG_IDE_PROC_FS=y
374# 400#
375CONFIG_IDE_GENERIC=y 401CONFIG_IDE_GENERIC=y
376# CONFIG_BLK_DEV_PLATFORM is not set 402# CONFIG_BLK_DEV_PLATFORM is not set
403CONFIG_BLK_DEV_IDEDMA_SFF=y
377 404
378# 405#
379# PCI IDE chipsets support 406# PCI IDE chipsets support
380# 407#
381CONFIG_BLK_DEV_IDEPCI=y 408CONFIG_BLK_DEV_IDEPCI=y
382CONFIG_IDEPCI_SHARE_IRQ=y
383CONFIG_IDEPCI_PCIBUS_ORDER=y 409CONFIG_IDEPCI_PCIBUS_ORDER=y
384# CONFIG_BLK_DEV_OFFBOARD is not set 410# CONFIG_BLK_DEV_OFFBOARD is not set
385CONFIG_BLK_DEV_GENERIC=y 411CONFIG_BLK_DEV_GENERIC=y
@@ -410,7 +436,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
410# CONFIG_BLK_DEV_TRM290 is not set 436# CONFIG_BLK_DEV_TRM290 is not set
411CONFIG_BLK_DEV_VIA82CXXX=y 437CONFIG_BLK_DEV_VIA82CXXX=y
412# CONFIG_BLK_DEV_TC86C001 is not set 438# CONFIG_BLK_DEV_TC86C001 is not set
413# CONFIG_IDE_ARM is not set
414CONFIG_BLK_DEV_IDEDMA=y 439CONFIG_BLK_DEV_IDEDMA=y
415CONFIG_IDE_ARCH_OBSOLETE_INIT=y 440CONFIG_IDE_ARCH_OBSOLETE_INIT=y
416# CONFIG_BLK_DEV_HD is not set 441# CONFIG_BLK_DEV_HD is not set
@@ -441,7 +466,6 @@ CONFIG_NETDEVICES=y
441# CONFIG_EQUALIZER is not set 466# CONFIG_EQUALIZER is not set
442# CONFIG_TUN is not set 467# CONFIG_TUN is not set
443# CONFIG_VETH is not set 468# CONFIG_VETH is not set
444# CONFIG_IP1000 is not set
445# CONFIG_ARCNET is not set 469# CONFIG_ARCNET is not set
446CONFIG_PHYLIB=y 470CONFIG_PHYLIB=y
447 471
@@ -457,6 +481,7 @@ CONFIG_PHYLIB=y
457# CONFIG_SMSC_PHY is not set 481# CONFIG_SMSC_PHY is not set
458# CONFIG_BROADCOM_PHY is not set 482# CONFIG_BROADCOM_PHY is not set
459# CONFIG_ICPLUS_PHY is not set 483# CONFIG_ICPLUS_PHY is not set
484# CONFIG_REALTEK_PHY is not set
460# CONFIG_FIXED_PHY is not set 485# CONFIG_FIXED_PHY is not set
461# CONFIG_MDIO_BITBANG is not set 486# CONFIG_MDIO_BITBANG is not set
462CONFIG_NET_ETHERNET=y 487CONFIG_NET_ETHERNET=y
@@ -480,6 +505,9 @@ CONFIG_E1000=y
480CONFIG_E1000_NAPI=y 505CONFIG_E1000_NAPI=y
481# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 506# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
482# CONFIG_E1000E is not set 507# CONFIG_E1000E is not set
508# CONFIG_E1000E_ENABLED is not set
509# CONFIG_IP1000 is not set
510# CONFIG_IGB is not set
483# CONFIG_NS83820 is not set 511# CONFIG_NS83820 is not set
484# CONFIG_HAMACHI is not set 512# CONFIG_HAMACHI is not set
485# CONFIG_YELLOWFIN is not set 513# CONFIG_YELLOWFIN is not set
@@ -506,6 +534,7 @@ CONFIG_NETDEV_10000=y
506# CONFIG_NIU is not set 534# CONFIG_NIU is not set
507# CONFIG_MLX4_CORE is not set 535# CONFIG_MLX4_CORE is not set
508# CONFIG_TEHUTI is not set 536# CONFIG_TEHUTI is not set
537# CONFIG_BNX2X is not set
509# CONFIG_TR is not set 538# CONFIG_TR is not set
510 539
511# 540#
@@ -518,7 +547,6 @@ CONFIG_NETDEV_10000=y
518# CONFIG_HIPPI is not set 547# CONFIG_HIPPI is not set
519# CONFIG_PPP is not set 548# CONFIG_PPP is not set
520# CONFIG_SLIP is not set 549# CONFIG_SLIP is not set
521# CONFIG_SHAPER is not set
522# CONFIG_NETCONSOLE is not set 550# CONFIG_NETCONSOLE is not set
523# CONFIG_NETPOLL is not set 551# CONFIG_NETPOLL is not set
524# CONFIG_NET_POLL_CONTROLLER is not set 552# CONFIG_NET_POLL_CONTROLLER is not set
@@ -561,6 +589,7 @@ CONFIG_INPUT=y
561# 589#
562# CONFIG_VT is not set 590# CONFIG_VT is not set
563# CONFIG_SERIAL_NONSTANDARD is not set 591# CONFIG_SERIAL_NONSTANDARD is not set
592# CONFIG_NOZOMI is not set
564 593
565# 594#
566# Serial drivers 595# Serial drivers
@@ -620,6 +649,7 @@ CONFIG_HWMON=y
620# CONFIG_SENSORS_W83627HF is not set 649# CONFIG_SENSORS_W83627HF is not set
621# CONFIG_SENSORS_W83627EHF is not set 650# CONFIG_SENSORS_W83627EHF is not set
622# CONFIG_HWMON_DEBUG_CHIP is not set 651# CONFIG_HWMON_DEBUG_CHIP is not set
652# CONFIG_THERMAL is not set
623# CONFIG_WATCHDOG is not set 653# CONFIG_WATCHDOG is not set
624 654
625# 655#
@@ -672,16 +702,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
672# 702#
673# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 703# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
674# 704#
675
676#
677# USB Gadget Support
678#
679# CONFIG_USB_GADGET is not set 705# CONFIG_USB_GADGET is not set
680# CONFIG_MMC is not set 706# CONFIG_MMC is not set
707# CONFIG_MEMSTICK is not set
681# CONFIG_NEW_LEDS is not set 708# CONFIG_NEW_LEDS is not set
682# CONFIG_INFINIBAND is not set 709# CONFIG_INFINIBAND is not set
683# CONFIG_EDAC is not set 710# CONFIG_EDAC is not set
684# CONFIG_RTC_CLASS is not set 711# CONFIG_RTC_CLASS is not set
712# CONFIG_DMADEVICES is not set
685 713
686# 714#
687# Userspace I/O 715# Userspace I/O
@@ -707,12 +735,10 @@ CONFIG_FS_MBCACHE=y
707# CONFIG_XFS_FS is not set 735# CONFIG_XFS_FS is not set
708# CONFIG_GFS2_FS is not set 736# CONFIG_GFS2_FS is not set
709# CONFIG_OCFS2_FS is not set 737# CONFIG_OCFS2_FS is not set
710# CONFIG_MINIX_FS is not set 738CONFIG_DNOTIFY=y
711# CONFIG_ROMFS_FS is not set
712CONFIG_INOTIFY=y 739CONFIG_INOTIFY=y
713CONFIG_INOTIFY_USER=y 740CONFIG_INOTIFY_USER=y
714# CONFIG_QUOTA is not set 741# CONFIG_QUOTA is not set
715CONFIG_DNOTIFY=y
716# CONFIG_AUTOFS_FS is not set 742# CONFIG_AUTOFS_FS is not set
717# CONFIG_AUTOFS4_FS is not set 743# CONFIG_AUTOFS4_FS is not set
718# CONFIG_FUSE_FS is not set 744# CONFIG_FUSE_FS is not set
@@ -754,8 +780,10 @@ CONFIG_TMPFS=y
754# CONFIG_EFS_FS is not set 780# CONFIG_EFS_FS is not set
755# CONFIG_CRAMFS is not set 781# CONFIG_CRAMFS is not set
756# CONFIG_VXFS_FS is not set 782# CONFIG_VXFS_FS is not set
783# CONFIG_MINIX_FS is not set
757# CONFIG_HPFS_FS is not set 784# CONFIG_HPFS_FS is not set
758# CONFIG_QNX4FS_FS is not set 785# CONFIG_QNX4FS_FS is not set
786# CONFIG_ROMFS_FS is not set
759# CONFIG_SYSV_FS is not set 787# CONFIG_SYSV_FS is not set
760# CONFIG_UFS_FS is not set 788# CONFIG_UFS_FS is not set
761CONFIG_NETWORK_FILESYSTEMS=y 789CONFIG_NETWORK_FILESYSTEMS=y
@@ -796,7 +824,6 @@ CONFIG_PARTITION_ADVANCED=y
796# CONFIG_SYSV68_PARTITION is not set 824# CONFIG_SYSV68_PARTITION is not set
797# CONFIG_NLS is not set 825# CONFIG_NLS is not set
798# CONFIG_DLM is not set 826# CONFIG_DLM is not set
799# CONFIG_UCC_SLOW is not set
800 827
801# 828#
802# Library routines 829# Library routines
@@ -812,7 +839,6 @@ CONFIG_PLIST=y
812CONFIG_HAS_IOMEM=y 839CONFIG_HAS_IOMEM=y
813CONFIG_HAS_IOPORT=y 840CONFIG_HAS_IOPORT=y
814CONFIG_HAS_DMA=y 841CONFIG_HAS_DMA=y
815# CONFIG_INSTRUMENTATION is not set
816 842
817# 843#
818# Kernel hacking 844# Kernel hacking
@@ -831,6 +857,7 @@ CONFIG_SCHED_DEBUG=y
831# CONFIG_SCHEDSTATS is not set 857# CONFIG_SCHEDSTATS is not set
832# CONFIG_TIMER_STATS is not set 858# CONFIG_TIMER_STATS is not set
833# CONFIG_SLUB_DEBUG_ON is not set 859# CONFIG_SLUB_DEBUG_ON is not set
860# CONFIG_SLUB_STATS is not set
834# CONFIG_DEBUG_RT_MUTEXES is not set 861# CONFIG_DEBUG_RT_MUTEXES is not set
835# CONFIG_RT_MUTEX_TESTER is not set 862# CONFIG_RT_MUTEX_TESTER is not set
836# CONFIG_DEBUG_SPINLOCK is not set 863# CONFIG_DEBUG_SPINLOCK is not set
@@ -843,8 +870,8 @@ CONFIG_DEBUG_MUTEXES=y
843# CONFIG_DEBUG_VM is not set 870# CONFIG_DEBUG_VM is not set
844# CONFIG_DEBUG_LIST is not set 871# CONFIG_DEBUG_LIST is not set
845# CONFIG_DEBUG_SG is not set 872# CONFIG_DEBUG_SG is not set
846CONFIG_FORCED_INLINING=y
847# CONFIG_BOOT_PRINTK_DELAY is not set 873# CONFIG_BOOT_PRINTK_DELAY is not set
874# CONFIG_BACKTRACE_SELF_TEST is not set
848# CONFIG_FAULT_INJECTION is not set 875# CONFIG_FAULT_INJECTION is not set
849# CONFIG_SAMPLES is not set 876# CONFIG_SAMPLES is not set
850# CONFIG_DEBUG_STACKOVERFLOW is not set 877# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -860,5 +887,49 @@ CONFIG_FORCED_INLINING=y
860# CONFIG_KEYS is not set 887# CONFIG_KEYS is not set
861# CONFIG_SECURITY is not set 888# CONFIG_SECURITY is not set
862# CONFIG_SECURITY_FILE_CAPABILITIES is not set 889# CONFIG_SECURITY_FILE_CAPABILITIES is not set
863# CONFIG_CRYPTO is not set 890CONFIG_CRYPTO=y
891# CONFIG_CRYPTO_SEQIV is not set
892# CONFIG_CRYPTO_MANAGER is not set
893# CONFIG_CRYPTO_HMAC is not set
894# CONFIG_CRYPTO_XCBC is not set
895# CONFIG_CRYPTO_NULL is not set
896# CONFIG_CRYPTO_MD4 is not set
897# CONFIG_CRYPTO_MD5 is not set
898# CONFIG_CRYPTO_SHA1 is not set
899# CONFIG_CRYPTO_SHA256 is not set
900# CONFIG_CRYPTO_SHA512 is not set
901# CONFIG_CRYPTO_WP512 is not set
902# CONFIG_CRYPTO_TGR192 is not set
903# CONFIG_CRYPTO_GF128MUL is not set
904# CONFIG_CRYPTO_ECB is not set
905# CONFIG_CRYPTO_CBC is not set
906# CONFIG_CRYPTO_PCBC is not set
907# CONFIG_CRYPTO_LRW is not set
908# CONFIG_CRYPTO_XTS is not set
909# CONFIG_CRYPTO_CTR is not set
910# CONFIG_CRYPTO_GCM is not set
911# CONFIG_CRYPTO_CCM is not set
912# CONFIG_CRYPTO_CRYPTD is not set
913# CONFIG_CRYPTO_DES is not set
914# CONFIG_CRYPTO_FCRYPT is not set
915# CONFIG_CRYPTO_BLOWFISH is not set
916# CONFIG_CRYPTO_TWOFISH is not set
917# CONFIG_CRYPTO_SERPENT is not set
918# CONFIG_CRYPTO_AES is not set
919# CONFIG_CRYPTO_CAST5 is not set
920# CONFIG_CRYPTO_CAST6 is not set
921# CONFIG_CRYPTO_TEA is not set
922# CONFIG_CRYPTO_ARC4 is not set
923# CONFIG_CRYPTO_KHAZAD is not set
924# CONFIG_CRYPTO_ANUBIS is not set
925# CONFIG_CRYPTO_SEED is not set
926# CONFIG_CRYPTO_SALSA20 is not set
927# CONFIG_CRYPTO_DEFLATE is not set
928# CONFIG_CRYPTO_MICHAEL_MIC is not set
929# CONFIG_CRYPTO_CRC32C is not set
930# CONFIG_CRYPTO_CAMELLIA is not set
931# CONFIG_CRYPTO_AUTHENC is not set
932# CONFIG_CRYPTO_LZO is not set
933CONFIG_CRYPTO_HW=y
934# CONFIG_CRYPTO_DEV_HIFN_795X is not set
864# CONFIG_PPC_CLOCK is not set 935# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 90e38ba3832b..615e4c1bf735 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Mon Jan 28 13:12:07 2008 4# Mon Mar 24 08:48:31 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -17,6 +17,7 @@ CONFIG_PPC_85xx=y
17CONFIG_E500=y 17CONFIG_E500=y
18CONFIG_BOOKE=y 18CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
20# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
21CONFIG_SPE=y 22CONFIG_SPE=y
22# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +30,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +69,21 @@ CONFIG_POSIX_MQUEUE=y
67CONFIG_BSD_PROCESS_ACCT=y 69CONFIG_BSD_PROCESS_ACCT=y
68# CONFIG_BSD_PROCESS_ACCT_V3 is not set 70# CONFIG_BSD_PROCESS_ACCT_V3 is not set
69# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72CONFIG_AUDIT=y 72CONFIG_AUDIT=y
73# CONFIG_AUDITSYSCALL is not set 73# CONFIG_AUDITSYSCALL is not set
74CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y
78# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
86# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 88CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +97,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 97CONFIG_PRINTK=y
92CONFIG_BUG=y 98CONFIG_BUG=y
93CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 102CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 104CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 108CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +111,13 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
104CONFIG_SLUB=y 112CONFIG_SLUB=y
105# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
106CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
@@ -131,12 +146,13 @@ CONFIG_IOSCHED_CFQ=y
131CONFIG_DEFAULT_CFQ=y 146CONFIG_DEFAULT_CFQ=y
132# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="cfq" 148CONFIG_DEFAULT_IOSCHED="cfq"
149CONFIG_CLASSIC_RCU=y
134 150
135# 151#
136# Platform support 152# Platform support
137# 153#
138# CONFIG_PPC_MPC52xx is not set 154# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 155# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -184,13 +200,17 @@ CONFIG_HZ_250=y
184# CONFIG_HZ_300 is not set 200# CONFIG_HZ_300 is not set
185# CONFIG_HZ_1000 is not set 201# CONFIG_HZ_1000 is not set
186CONFIG_HZ=250 202CONFIG_HZ=250
203# CONFIG_SCHED_HRTICK is not set
187CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
188# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
189# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
190CONFIG_BINFMT_ELF=y 207CONFIG_BINFMT_ELF=y
191CONFIG_BINFMT_MISC=m 208CONFIG_BINFMT_MISC=m
192CONFIG_MATH_EMULATION=y 209CONFIG_MATH_EMULATION=y
210# CONFIG_IOMMU_HELPER is not set
193CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
212CONFIG_ARCH_HAS_WALK_MEMORY=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
194CONFIG_ARCH_FLATMEM_ENABLE=y 214CONFIG_ARCH_FLATMEM_ENABLE=y
195CONFIG_ARCH_POPULATES_NODE_MAP=y 215CONFIG_ARCH_POPULATES_NODE_MAP=y
196CONFIG_SELECT_MEMORY_MODEL=y 216CONFIG_SELECT_MEMORY_MODEL=y
@@ -209,11 +229,7 @@ CONFIG_VIRT_TO_BUS=y
209CONFIG_PROC_DEVICETREE=y 229CONFIG_PROC_DEVICETREE=y
210# CONFIG_CMDLINE_BOOL is not set 230# CONFIG_CMDLINE_BOOL is not set
211# CONFIG_PM is not set 231# CONFIG_PM is not set
212CONFIG_SUSPEND_UP_POSSIBLE=y
213CONFIG_HIBERNATION_UP_POSSIBLE=y
214CONFIG_SECCOMP=y 232CONFIG_SECCOMP=y
215CONFIG_WANT_DEVICE_TREE=y
216CONFIG_DEVICE_TREE=""
217CONFIG_ISA_DMA_API=y 233CONFIG_ISA_DMA_API=y
218 234
219# 235#
@@ -264,6 +280,7 @@ CONFIG_XFRM=y
264CONFIG_XFRM_USER=y 280CONFIG_XFRM_USER=y
265# CONFIG_XFRM_SUB_POLICY is not set 281# CONFIG_XFRM_SUB_POLICY is not set
266# CONFIG_XFRM_MIGRATE is not set 282# CONFIG_XFRM_MIGRATE is not set
283# CONFIG_XFRM_STATISTICS is not set
267CONFIG_NET_KEY=m 284CONFIG_NET_KEY=m
268# CONFIG_NET_KEY_MIGRATE is not set 285# CONFIG_NET_KEY_MIGRATE is not set
269CONFIG_INET=y 286CONFIG_INET=y
@@ -347,6 +364,7 @@ CONFIG_SCTP_HMAC_MD5=y
347# 364#
348# CONFIG_NET_PKTGEN is not set 365# CONFIG_NET_PKTGEN is not set
349# CONFIG_HAMRADIO is not set 366# CONFIG_HAMRADIO is not set
367# CONFIG_CAN is not set
350# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
351# CONFIG_BT is not set 369# CONFIG_BT is not set
352# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
@@ -395,7 +413,7 @@ CONFIG_BLK_DEV_NBD=y
395CONFIG_BLK_DEV_RAM=y 413CONFIG_BLK_DEV_RAM=y
396CONFIG_BLK_DEV_RAM_COUNT=16 414CONFIG_BLK_DEV_RAM_COUNT=16
397CONFIG_BLK_DEV_RAM_SIZE=131072 415CONFIG_BLK_DEV_RAM_SIZE=131072
398CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 416# CONFIG_BLK_DEV_XIP is not set
399# CONFIG_CDROM_PKTCDVD is not set 417# CONFIG_CDROM_PKTCDVD is not set
400# CONFIG_ATA_OVER_ETH is not set 418# CONFIG_ATA_OVER_ETH is not set
401CONFIG_MISC_DEVICES=y 419CONFIG_MISC_DEVICES=y
@@ -403,6 +421,8 @@ CONFIG_MISC_DEVICES=y
403# CONFIG_EEPROM_93CX6 is not set 421# CONFIG_EEPROM_93CX6 is not set
404# CONFIG_SGI_IOC4 is not set 422# CONFIG_SGI_IOC4 is not set
405# CONFIG_TIFM_CORE is not set 423# CONFIG_TIFM_CORE is not set
424# CONFIG_ENCLOSURE_SERVICES is not set
425CONFIG_HAVE_IDE=y
406# CONFIG_IDE is not set 426# CONFIG_IDE is not set
407 427
408# 428#
@@ -468,6 +488,7 @@ CONFIG_SCSI_LOWLEVEL=y
468# CONFIG_SCSI_IPS is not set 488# CONFIG_SCSI_IPS is not set
469# CONFIG_SCSI_INITIO is not set 489# CONFIG_SCSI_INITIO is not set
470# CONFIG_SCSI_INIA100 is not set 490# CONFIG_SCSI_INIA100 is not set
491# CONFIG_SCSI_MVSAS is not set
471# CONFIG_SCSI_STEX is not set 492# CONFIG_SCSI_STEX is not set
472# CONFIG_SCSI_SYM53C8XX_2 is not set 493# CONFIG_SCSI_SYM53C8XX_2 is not set
473# CONFIG_SCSI_IPR is not set 494# CONFIG_SCSI_IPR is not set
@@ -522,6 +543,7 @@ CONFIG_PATA_ALI=y
522# CONFIG_PATA_MPIIX is not set 543# CONFIG_PATA_MPIIX is not set
523# CONFIG_PATA_OLDPIIX is not set 544# CONFIG_PATA_OLDPIIX is not set
524# CONFIG_PATA_NETCELL is not set 545# CONFIG_PATA_NETCELL is not set
546# CONFIG_PATA_NINJA32 is not set
525# CONFIG_PATA_NS87410 is not set 547# CONFIG_PATA_NS87410 is not set
526# CONFIG_PATA_NS87415 is not set 548# CONFIG_PATA_NS87415 is not set
527# CONFIG_PATA_OPTI is not set 549# CONFIG_PATA_OPTI is not set
@@ -570,6 +592,7 @@ CONFIG_VITESSE_PHY=y
570# CONFIG_SMSC_PHY is not set 592# CONFIG_SMSC_PHY is not set
571# CONFIG_BROADCOM_PHY is not set 593# CONFIG_BROADCOM_PHY is not set
572# CONFIG_ICPLUS_PHY is not set 594# CONFIG_ICPLUS_PHY is not set
595# CONFIG_REALTEK_PHY is not set
573# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
574# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
575CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
@@ -592,7 +615,9 @@ CONFIG_NETDEV_1000=y
592# CONFIG_DL2K is not set 615# CONFIG_DL2K is not set
593# CONFIG_E1000 is not set 616# CONFIG_E1000 is not set
594# CONFIG_E1000E is not set 617# CONFIG_E1000E is not set
618# CONFIG_E1000E_ENABLED is not set
595# CONFIG_IP1000 is not set 619# CONFIG_IP1000 is not set
620# CONFIG_IGB is not set
596# CONFIG_NS83820 is not set 621# CONFIG_NS83820 is not set
597# CONFIG_HAMACHI is not set 622# CONFIG_HAMACHI is not set
598# CONFIG_YELLOWFIN is not set 623# CONFIG_YELLOWFIN is not set
@@ -620,6 +645,7 @@ CONFIG_NETDEV_10000=y
620# CONFIG_NIU is not set 645# CONFIG_NIU is not set
621# CONFIG_MLX4_CORE is not set 646# CONFIG_MLX4_CORE is not set
622# CONFIG_TEHUTI is not set 647# CONFIG_TEHUTI is not set
648# CONFIG_BNX2X is not set
623# CONFIG_TR is not set 649# CONFIG_TR is not set
624 650
625# 651#
@@ -642,7 +668,6 @@ CONFIG_NETDEV_10000=y
642# CONFIG_PPP is not set 668# CONFIG_PPP is not set
643# CONFIG_SLIP is not set 669# CONFIG_SLIP is not set
644# CONFIG_NET_FC is not set 670# CONFIG_NET_FC is not set
645# CONFIG_SHAPER is not set
646# CONFIG_NETCONSOLE is not set 671# CONFIG_NETCONSOLE is not set
647# CONFIG_NETPOLL is not set 672# CONFIG_NETPOLL is not set
648# CONFIG_NET_POLL_CONTROLLER is not set 673# CONFIG_NET_POLL_CONTROLLER is not set
@@ -693,6 +718,7 @@ CONFIG_VT_CONSOLE=y
693CONFIG_HW_CONSOLE=y 718CONFIG_HW_CONSOLE=y
694# CONFIG_VT_HW_CONSOLE_BINDING is not set 719# CONFIG_VT_HW_CONSOLE_BINDING is not set
695# CONFIG_SERIAL_NONSTANDARD is not set 720# CONFIG_SERIAL_NONSTANDARD is not set
721# CONFIG_NOZOMI is not set
696 722
697# 723#
698# Serial drivers 724# Serial drivers
@@ -773,14 +799,12 @@ CONFIG_I2C_MPC=y
773# 799#
774# Miscellaneous I2C Chip support 800# Miscellaneous I2C Chip support
775# 801#
776# CONFIG_SENSORS_DS1337 is not set
777# CONFIG_SENSORS_DS1374 is not set
778# CONFIG_DS1682 is not set 802# CONFIG_DS1682 is not set
779CONFIG_SENSORS_EEPROM=y 803CONFIG_SENSORS_EEPROM=y
780# CONFIG_SENSORS_PCF8574 is not set 804# CONFIG_SENSORS_PCF8574 is not set
781# CONFIG_SENSORS_PCA9539 is not set 805# CONFIG_PCF8575 is not set
782# CONFIG_SENSORS_PCF8591 is not set 806# CONFIG_SENSORS_PCF8591 is not set
783# CONFIG_SENSORS_M41T00 is not set 807# CONFIG_TPS65010 is not set
784# CONFIG_SENSORS_MAX6875 is not set 808# CONFIG_SENSORS_MAX6875 is not set
785# CONFIG_SENSORS_TSL2550 is not set 809# CONFIG_SENSORS_TSL2550 is not set
786# CONFIG_I2C_DEBUG_CORE is not set 810# CONFIG_I2C_DEBUG_CORE is not set
@@ -796,6 +820,7 @@ CONFIG_SENSORS_EEPROM=y
796# CONFIG_W1 is not set 820# CONFIG_W1 is not set
797# CONFIG_POWER_SUPPLY is not set 821# CONFIG_POWER_SUPPLY is not set
798# CONFIG_HWMON is not set 822# CONFIG_HWMON is not set
823# CONFIG_THERMAL is not set
799# CONFIG_WATCHDOG is not set 824# CONFIG_WATCHDOG is not set
800 825
801# 826#
@@ -820,6 +845,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
820# 845#
821# Supported SAA7146 based PCI Adapters 846# Supported SAA7146 based PCI Adapters
822# 847#
848# CONFIG_TTPCI_EEPROM is not set
849# CONFIG_DVB_BUDGET_CORE is not set
823 850
824# 851#
825# Supported USB Adapters 852# Supported USB Adapters
@@ -905,11 +932,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
905# CONFIG_DVB_PLL is not set 932# CONFIG_DVB_PLL is not set
906# CONFIG_DVB_TDA826X is not set 933# CONFIG_DVB_TDA826X is not set
907# CONFIG_DVB_TDA827X is not set 934# CONFIG_DVB_TDA827X is not set
935# CONFIG_DVB_TDA18271 is not set
908# CONFIG_DVB_TUNER_QT1010 is not set 936# CONFIG_DVB_TUNER_QT1010 is not set
909# CONFIG_DVB_TUNER_MT2060 is not set 937# CONFIG_DVB_TUNER_MT2060 is not set
910# CONFIG_DVB_TUNER_MT2266 is not set 938# CONFIG_DVB_TUNER_MT2266 is not set
911# CONFIG_DVB_TUNER_MT2131 is not set 939# CONFIG_DVB_TUNER_MT2131 is not set
912# CONFIG_DVB_TUNER_DIB0070 is not set 940# CONFIG_DVB_TUNER_DIB0070 is not set
941# CONFIG_DVB_TUNER_XC5000 is not set
913 942
914# 943#
915# Miscellaneous devices 944# Miscellaneous devices
@@ -987,6 +1016,7 @@ CONFIG_SND_AC97_CODEC=y
987# CONFIG_SND_BT87X is not set 1016# CONFIG_SND_BT87X is not set
988# CONFIG_SND_CA0106 is not set 1017# CONFIG_SND_CA0106 is not set
989# CONFIG_SND_CMIPCI is not set 1018# CONFIG_SND_CMIPCI is not set
1019# CONFIG_SND_OXYGEN is not set
990# CONFIG_SND_CS4281 is not set 1020# CONFIG_SND_CS4281 is not set
991# CONFIG_SND_CS46XX is not set 1021# CONFIG_SND_CS46XX is not set
992# CONFIG_SND_CS5530 is not set 1022# CONFIG_SND_CS5530 is not set
@@ -1012,6 +1042,7 @@ CONFIG_SND_AC97_CODEC=y
1012# CONFIG_SND_HDA_INTEL is not set 1042# CONFIG_SND_HDA_INTEL is not set
1013# CONFIG_SND_HDSP is not set 1043# CONFIG_SND_HDSP is not set
1014# CONFIG_SND_HDSPM is not set 1044# CONFIG_SND_HDSPM is not set
1045# CONFIG_SND_HIFIER is not set
1015# CONFIG_SND_ICE1712 is not set 1046# CONFIG_SND_ICE1712 is not set
1016# CONFIG_SND_ICE1724 is not set 1047# CONFIG_SND_ICE1724 is not set
1017CONFIG_SND_INTEL8X0=y 1048CONFIG_SND_INTEL8X0=y
@@ -1029,6 +1060,7 @@ CONFIG_SND_INTEL8X0=y
1029# CONFIG_SND_TRIDENT is not set 1060# CONFIG_SND_TRIDENT is not set
1030# CONFIG_SND_VIA82XX is not set 1061# CONFIG_SND_VIA82XX is not set
1031# CONFIG_SND_VIA82XX_MODEM is not set 1062# CONFIG_SND_VIA82XX_MODEM is not set
1063# CONFIG_SND_VIRTUOSO is not set
1032# CONFIG_SND_VX222 is not set 1064# CONFIG_SND_VX222 is not set
1033# CONFIG_SND_YMFPCI is not set 1065# CONFIG_SND_YMFPCI is not set
1034# CONFIG_SND_AC97_POWER_SAVE is not set 1066# CONFIG_SND_AC97_POWER_SAVE is not set
@@ -1058,6 +1090,10 @@ CONFIG_SND_INTEL8X0=y
1058# 1090#
1059 1091
1060# 1092#
1093# ALSA SoC audio for Freescale SOCs
1094#
1095
1096#
1061# Open Sound System 1097# Open Sound System
1062# 1098#
1063# CONFIG_SOUND_PRIME is not set 1099# CONFIG_SOUND_PRIME is not set
@@ -1080,6 +1116,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1080CONFIG_USB_ARCH_HAS_EHCI=y 1116CONFIG_USB_ARCH_HAS_EHCI=y
1081CONFIG_USB=y 1117CONFIG_USB=y
1082# CONFIG_USB_DEBUG is not set 1118# CONFIG_USB_DEBUG is not set
1119# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1083 1120
1084# 1121#
1085# Miscellaneous USB options 1122# Miscellaneous USB options
@@ -1093,9 +1130,10 @@ CONFIG_USB_DEVICE_CLASS=y
1093# USB Host Controller Drivers 1130# USB Host Controller Drivers
1094# 1131#
1095CONFIG_USB_EHCI_HCD=y 1132CONFIG_USB_EHCI_HCD=y
1096# CONFIG_USB_EHCI_SPLIT_ISO is not set
1097# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1133# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1098# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1134# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1135# CONFIG_USB_EHCI_FSL is not set
1136CONFIG_USB_EHCI_HCD_PPC_OF=y
1099# CONFIG_USB_ISP116X_HCD is not set 1137# CONFIG_USB_ISP116X_HCD is not set
1100CONFIG_USB_OHCI_HCD=y 1138CONFIG_USB_OHCI_HCD=y
1101CONFIG_USB_OHCI_HCD_PPC_OF=y 1139CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1146,10 +1184,6 @@ CONFIG_USB_MON=y
1146# 1184#
1147# USB port drivers 1185# USB port drivers
1148# 1186#
1149
1150#
1151# USB Serial Converter support
1152#
1153# CONFIG_USB_SERIAL is not set 1187# CONFIG_USB_SERIAL is not set
1154 1188
1155# 1189#
@@ -1175,21 +1209,18 @@ CONFIG_USB_MON=y
1175# CONFIG_USB_TRANCEVIBRATOR is not set 1209# CONFIG_USB_TRANCEVIBRATOR is not set
1176# CONFIG_USB_IOWARRIOR is not set 1210# CONFIG_USB_IOWARRIOR is not set
1177# CONFIG_USB_TEST is not set 1211# CONFIG_USB_TEST is not set
1178
1179#
1180# USB DSL modem support
1181#
1182
1183#
1184# USB Gadget Support
1185#
1186# CONFIG_USB_GADGET is not set 1212# CONFIG_USB_GADGET is not set
1187# CONFIG_MMC is not set 1213# CONFIG_MMC is not set
1214# CONFIG_MEMSTICK is not set
1188# CONFIG_NEW_LEDS is not set 1215# CONFIG_NEW_LEDS is not set
1189# CONFIG_INFINIBAND is not set 1216# CONFIG_INFINIBAND is not set
1190# CONFIG_EDAC is not set 1217# CONFIG_EDAC is not set
1191CONFIG_RTC_LIB=y 1218CONFIG_RTC_LIB=y
1192CONFIG_RTC_CLASS=y 1219CONFIG_RTC_CLASS=y
1220
1221#
1222# Conflicting RTC option has been selected, check GEN_RTC and RTC
1223#
1193CONFIG_RTC_HCTOSYS=y 1224CONFIG_RTC_HCTOSYS=y
1194CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1225CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1195# CONFIG_RTC_DEBUG is not set 1226# CONFIG_RTC_DEBUG is not set
@@ -1216,6 +1247,7 @@ CONFIG_RTC_INTF_DEV=y
1216# CONFIG_RTC_DRV_PCF8563 is not set 1247# CONFIG_RTC_DRV_PCF8563 is not set
1217# CONFIG_RTC_DRV_PCF8583 is not set 1248# CONFIG_RTC_DRV_PCF8583 is not set
1218# CONFIG_RTC_DRV_M41T80 is not set 1249# CONFIG_RTC_DRV_M41T80 is not set
1250# CONFIG_RTC_DRV_S35390A is not set
1219 1251
1220# 1252#
1221# SPI RTC drivers 1253# SPI RTC drivers
@@ -1225,9 +1257,10 @@ CONFIG_RTC_INTF_DEV=y
1225# Platform RTC drivers 1257# Platform RTC drivers
1226# 1258#
1227CONFIG_RTC_DRV_CMOS=y 1259CONFIG_RTC_DRV_CMOS=y
1260# CONFIG_RTC_DRV_DS1511 is not set
1228# CONFIG_RTC_DRV_DS1553 is not set 1261# CONFIG_RTC_DRV_DS1553 is not set
1229# CONFIG_RTC_DRV_STK17TA8 is not set
1230# CONFIG_RTC_DRV_DS1742 is not set 1262# CONFIG_RTC_DRV_DS1742 is not set
1263# CONFIG_RTC_DRV_STK17TA8 is not set
1231# CONFIG_RTC_DRV_M48T86 is not set 1264# CONFIG_RTC_DRV_M48T86 is not set
1232# CONFIG_RTC_DRV_M48T59 is not set 1265# CONFIG_RTC_DRV_M48T59 is not set
1233# CONFIG_RTC_DRV_V3020 is not set 1266# CONFIG_RTC_DRV_V3020 is not set
@@ -1235,6 +1268,7 @@ CONFIG_RTC_DRV_CMOS=y
1235# 1268#
1236# on-CPU RTC drivers 1269# on-CPU RTC drivers
1237# 1270#
1271# CONFIG_DMADEVICES is not set
1238 1272
1239# 1273#
1240# Userspace I/O 1274# Userspace I/O
@@ -1260,12 +1294,10 @@ CONFIG_FS_MBCACHE=y
1260# CONFIG_XFS_FS is not set 1294# CONFIG_XFS_FS is not set
1261# CONFIG_GFS2_FS is not set 1295# CONFIG_GFS2_FS is not set
1262# CONFIG_OCFS2_FS is not set 1296# CONFIG_OCFS2_FS is not set
1263# CONFIG_MINIX_FS is not set 1297CONFIG_DNOTIFY=y
1264# CONFIG_ROMFS_FS is not set
1265CONFIG_INOTIFY=y 1298CONFIG_INOTIFY=y
1266CONFIG_INOTIFY_USER=y 1299CONFIG_INOTIFY_USER=y
1267# CONFIG_QUOTA is not set 1300# CONFIG_QUOTA is not set
1268CONFIG_DNOTIFY=y
1269# CONFIG_AUTOFS_FS is not set 1301# CONFIG_AUTOFS_FS is not set
1270# CONFIG_AUTOFS4_FS is not set 1302# CONFIG_AUTOFS4_FS is not set
1271# CONFIG_FUSE_FS is not set 1303# CONFIG_FUSE_FS is not set
@@ -1317,8 +1349,10 @@ CONFIG_BFS_FS=m
1317CONFIG_EFS_FS=m 1349CONFIG_EFS_FS=m
1318CONFIG_CRAMFS=y 1350CONFIG_CRAMFS=y
1319CONFIG_VXFS_FS=m 1351CONFIG_VXFS_FS=m
1352# CONFIG_MINIX_FS is not set
1320CONFIG_HPFS_FS=m 1353CONFIG_HPFS_FS=m
1321CONFIG_QNX4FS_FS=m 1354CONFIG_QNX4FS_FS=m
1355# CONFIG_ROMFS_FS is not set
1322CONFIG_SYSV_FS=m 1356CONFIG_SYSV_FS=m
1323CONFIG_UFS_FS=m 1357CONFIG_UFS_FS=m
1324# CONFIG_UFS_FS_WRITE is not set 1358# CONFIG_UFS_FS_WRITE is not set
@@ -1426,7 +1460,6 @@ CONFIG_PLIST=y
1426CONFIG_HAS_IOMEM=y 1460CONFIG_HAS_IOMEM=y
1427CONFIG_HAS_IOPORT=y 1461CONFIG_HAS_IOPORT=y
1428CONFIG_HAS_DMA=y 1462CONFIG_HAS_DMA=y
1429# CONFIG_INSTRUMENTATION is not set
1430 1463
1431# 1464#
1432# Kernel hacking 1465# Kernel hacking
@@ -1445,6 +1478,7 @@ CONFIG_SCHED_DEBUG=y
1445# CONFIG_SCHEDSTATS is not set 1478# CONFIG_SCHEDSTATS is not set
1446# CONFIG_TIMER_STATS is not set 1479# CONFIG_TIMER_STATS is not set
1447# CONFIG_SLUB_DEBUG_ON is not set 1480# CONFIG_SLUB_DEBUG_ON is not set
1481# CONFIG_SLUB_STATS is not set
1448# CONFIG_DEBUG_RT_MUTEXES is not set 1482# CONFIG_DEBUG_RT_MUTEXES is not set
1449# CONFIG_RT_MUTEX_TESTER is not set 1483# CONFIG_RT_MUTEX_TESTER is not set
1450# CONFIG_DEBUG_SPINLOCK is not set 1484# CONFIG_DEBUG_SPINLOCK is not set
@@ -1458,9 +1492,9 @@ CONFIG_DEBUG_INFO=y
1458# CONFIG_DEBUG_VM is not set 1492# CONFIG_DEBUG_VM is not set
1459# CONFIG_DEBUG_LIST is not set 1493# CONFIG_DEBUG_LIST is not set
1460# CONFIG_DEBUG_SG is not set 1494# CONFIG_DEBUG_SG is not set
1461CONFIG_FORCED_INLINING=y
1462# CONFIG_BOOT_PRINTK_DELAY is not set 1495# CONFIG_BOOT_PRINTK_DELAY is not set
1463# CONFIG_RCU_TORTURE_TEST is not set 1496# CONFIG_RCU_TORTURE_TEST is not set
1497# CONFIG_BACKTRACE_SELF_TEST is not set
1464# CONFIG_FAULT_INJECTION is not set 1498# CONFIG_FAULT_INJECTION is not set
1465# CONFIG_SAMPLES is not set 1499# CONFIG_SAMPLES is not set
1466# CONFIG_DEBUG_STACKOVERFLOW is not set 1500# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1480,6 +1514,7 @@ CONFIG_FORCED_INLINING=y
1480CONFIG_CRYPTO=y 1514CONFIG_CRYPTO=y
1481CONFIG_CRYPTO_ALGAPI=y 1515CONFIG_CRYPTO_ALGAPI=y
1482CONFIG_CRYPTO_BLKCIPHER=y 1516CONFIG_CRYPTO_BLKCIPHER=y
1517# CONFIG_CRYPTO_SEQIV is not set
1483CONFIG_CRYPTO_HASH=y 1518CONFIG_CRYPTO_HASH=y
1484CONFIG_CRYPTO_MANAGER=y 1519CONFIG_CRYPTO_MANAGER=y
1485CONFIG_CRYPTO_HMAC=y 1520CONFIG_CRYPTO_HMAC=y
@@ -1498,6 +1533,9 @@ CONFIG_CRYPTO_CBC=y
1498CONFIG_CRYPTO_PCBC=m 1533CONFIG_CRYPTO_PCBC=m
1499# CONFIG_CRYPTO_LRW is not set 1534# CONFIG_CRYPTO_LRW is not set
1500# CONFIG_CRYPTO_XTS is not set 1535# CONFIG_CRYPTO_XTS is not set
1536# CONFIG_CRYPTO_CTR is not set
1537# CONFIG_CRYPTO_GCM is not set
1538# CONFIG_CRYPTO_CCM is not set
1501# CONFIG_CRYPTO_CRYPTD is not set 1539# CONFIG_CRYPTO_CRYPTD is not set
1502CONFIG_CRYPTO_DES=y 1540CONFIG_CRYPTO_DES=y
1503# CONFIG_CRYPTO_FCRYPT is not set 1541# CONFIG_CRYPTO_FCRYPT is not set
@@ -1512,12 +1550,15 @@ CONFIG_CRYPTO_DES=y
1512# CONFIG_CRYPTO_KHAZAD is not set 1550# CONFIG_CRYPTO_KHAZAD is not set
1513# CONFIG_CRYPTO_ANUBIS is not set 1551# CONFIG_CRYPTO_ANUBIS is not set
1514# CONFIG_CRYPTO_SEED is not set 1552# CONFIG_CRYPTO_SEED is not set
1553# CONFIG_CRYPTO_SALSA20 is not set
1515# CONFIG_CRYPTO_DEFLATE is not set 1554# CONFIG_CRYPTO_DEFLATE is not set
1516# CONFIG_CRYPTO_MICHAEL_MIC is not set 1555# CONFIG_CRYPTO_MICHAEL_MIC is not set
1517# CONFIG_CRYPTO_CRC32C is not set 1556# CONFIG_CRYPTO_CRC32C is not set
1518# CONFIG_CRYPTO_CAMELLIA is not set 1557# CONFIG_CRYPTO_CAMELLIA is not set
1519# CONFIG_CRYPTO_TEST is not set 1558# CONFIG_CRYPTO_TEST is not set
1520# CONFIG_CRYPTO_AUTHENC is not set 1559# CONFIG_CRYPTO_AUTHENC is not set
1560# CONFIG_CRYPTO_LZO is not set
1521CONFIG_CRYPTO_HW=y 1561CONFIG_CRYPTO_HW=y
1562# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1522# CONFIG_PPC_CLOCK is not set 1563# CONFIG_PPC_CLOCK is not set
1523CONFIG_PPC_LIB_RHEAP=y 1564CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
index 2500ef42959d..9270afe7594d 100644
--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:56 2007 4# Mon Mar 24 08:48:33 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -65,16 +66,20 @@ CONFIG_LOCALVERSION=""
65# CONFIG_POSIX_MQUEUE is not set 66# CONFIG_POSIX_MQUEUE is not set
66# CONFIG_BSD_PROCESS_ACCT is not set 67# CONFIG_BSD_PROCESS_ACCT is not set
67# CONFIG_TASKSTATS is not set 68# CONFIG_TASKSTATS is not set
68# CONFIG_USER_NS is not set
69# CONFIG_PID_NS is not set
70# CONFIG_AUDIT is not set 69# CONFIG_AUDIT is not set
71CONFIG_IKCONFIG=y 70CONFIG_IKCONFIG=y
72CONFIG_IKCONFIG_PROC=y 71CONFIG_IKCONFIG_PROC=y
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76# CONFIG_RT_GROUP_SCHED is not set
77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
77# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,11 +93,13 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 93CONFIG_PRINTK=y
89CONFIG_BUG=y 94CONFIG_BUG=y
90# CONFIG_ELF_CORE is not set 95# CONFIG_ELF_CORE is not set
96CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 98CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
94CONFIG_EPOLL=y 100CONFIG_EPOLL=y
95CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 104CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
@@ -100,6 +107,13 @@ CONFIG_SLUB_DEBUG=y
100# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
101CONFIG_SLUB=y 108CONFIG_SLUB=y
102# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -122,6 +136,7 @@ CONFIG_DEFAULT_DEADLINE=y
122# CONFIG_DEFAULT_CFQ is not set 136# CONFIG_DEFAULT_CFQ is not set
123# CONFIG_DEFAULT_NOOP is not set 137# CONFIG_DEFAULT_NOOP is not set
124CONFIG_DEFAULT_IOSCHED="deadline" 138CONFIG_DEFAULT_IOSCHED="deadline"
139CONFIG_CLASSIC_RCU=y
125 140
126# 141#
127# Platform support 142# Platform support
@@ -130,14 +145,15 @@ CONFIG_DEFAULT_IOSCHED="deadline"
130# CONFIG_PPC_82xx is not set 145# CONFIG_PPC_82xx is not set
131# CONFIG_PPC_83xx is not set 146# CONFIG_PPC_83xx is not set
132CONFIG_PPC_86xx=y 147CONFIG_PPC_86xx=y
133# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
134# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
135# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
136# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
137# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
138# CONFIG_MPC8641_HPCN is not set 153# CONFIG_MPC8641_HPCN is not set
139CONFIG_MPC8610_HPCD=y 154CONFIG_MPC8610_HPCD=y
140CONFIG_MPC8610=y 155CONFIG_MPC8610=y
156# CONFIG_IPIC is not set
141CONFIG_MPIC=y 157CONFIG_MPIC=y
142# CONFIG_MPIC_WEIRD is not set 158# CONFIG_MPIC_WEIRD is not set
143# CONFIG_PPC_I8259 is not set 159# CONFIG_PPC_I8259 is not set
@@ -148,7 +164,6 @@ CONFIG_MPIC=y
148# CONFIG_PPC_INDIRECT_IO is not set 164# CONFIG_PPC_INDIRECT_IO is not set
149# CONFIG_GENERIC_IOMAP is not set 165# CONFIG_GENERIC_IOMAP is not set
150# CONFIG_CPU_FREQ is not set 166# CONFIG_CPU_FREQ is not set
151# CONFIG_CPM2 is not set
152# CONFIG_FSL_ULI1575 is not set 167# CONFIG_FSL_ULI1575 is not set
153 168
154# 169#
@@ -164,12 +179,16 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
164# CONFIG_HZ_300 is not set 179# CONFIG_HZ_300 is not set
165CONFIG_HZ_1000=y 180CONFIG_HZ_1000=y
166CONFIG_HZ=1000 181CONFIG_HZ=1000
182# CONFIG_SCHED_HRTICK is not set
167CONFIG_PREEMPT_NONE=y 183CONFIG_PREEMPT_NONE=y
168# CONFIG_PREEMPT_VOLUNTARY is not set 184# CONFIG_PREEMPT_VOLUNTARY is not set
169# CONFIG_PREEMPT is not set 185# CONFIG_PREEMPT is not set
170CONFIG_BINFMT_ELF=y 186CONFIG_BINFMT_ELF=y
171# CONFIG_BINFMT_MISC is not set 187# CONFIG_BINFMT_MISC is not set
188# CONFIG_IOMMU_HELPER is not set
172CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 189CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
190CONFIG_ARCH_HAS_WALK_MEMORY=y
191CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
173CONFIG_ARCH_FLATMEM_ENABLE=y 192CONFIG_ARCH_FLATMEM_ENABLE=y
174CONFIG_ARCH_POPULATES_NODE_MAP=y 193CONFIG_ARCH_POPULATES_NODE_MAP=y
175CONFIG_SELECT_MEMORY_MODEL=y 194CONFIG_SELECT_MEMORY_MODEL=y
@@ -188,10 +207,7 @@ CONFIG_VIRT_TO_BUS=y
188CONFIG_PROC_DEVICETREE=y 207CONFIG_PROC_DEVICETREE=y
189# CONFIG_CMDLINE_BOOL is not set 208# CONFIG_CMDLINE_BOOL is not set
190# CONFIG_PM is not set 209# CONFIG_PM is not set
191CONFIG_SUSPEND_UP_POSSIBLE=y
192CONFIG_HIBERNATION_UP_POSSIBLE=y
193# CONFIG_SECCOMP is not set 210# CONFIG_SECCOMP is not set
194# CONFIG_WANT_DEVICE_TREE is not set
195CONFIG_ISA_DMA_API=y 211CONFIG_ISA_DMA_API=y
196 212
197# 213#
@@ -243,6 +259,7 @@ CONFIG_XFRM=y
243CONFIG_XFRM_USER=y 259CONFIG_XFRM_USER=y
244# CONFIG_XFRM_SUB_POLICY is not set 260# CONFIG_XFRM_SUB_POLICY is not set
245# CONFIG_XFRM_MIGRATE is not set 261# CONFIG_XFRM_MIGRATE is not set
262# CONFIG_XFRM_STATISTICS is not set
246# CONFIG_NET_KEY is not set 263# CONFIG_NET_KEY is not set
247CONFIG_INET=y 264CONFIG_INET=y
248# CONFIG_IP_MULTICAST is not set 265# CONFIG_IP_MULTICAST is not set
@@ -311,6 +328,7 @@ CONFIG_IPV6_SIT=y
311# 328#
312# CONFIG_NET_PKTGEN is not set 329# CONFIG_NET_PKTGEN is not set
313# CONFIG_HAMRADIO is not set 330# CONFIG_HAMRADIO is not set
331# CONFIG_CAN is not set
314# CONFIG_IRDA is not set 332# CONFIG_IRDA is not set
315# CONFIG_BT is not set 333# CONFIG_BT is not set
316# CONFIG_AF_RXRPC is not set 334# CONFIG_AF_RXRPC is not set
@@ -357,7 +375,7 @@ CONFIG_BLK_DEV_LOOP=y
357CONFIG_BLK_DEV_RAM=y 375CONFIG_BLK_DEV_RAM=y
358CONFIG_BLK_DEV_RAM_COUNT=16 376CONFIG_BLK_DEV_RAM_COUNT=16
359CONFIG_BLK_DEV_RAM_SIZE=131072 377CONFIG_BLK_DEV_RAM_SIZE=131072
360CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 378# CONFIG_BLK_DEV_XIP is not set
361# CONFIG_CDROM_PKTCDVD is not set 379# CONFIG_CDROM_PKTCDVD is not set
362# CONFIG_ATA_OVER_ETH is not set 380# CONFIG_ATA_OVER_ETH is not set
363CONFIG_MISC_DEVICES=y 381CONFIG_MISC_DEVICES=y
@@ -365,6 +383,8 @@ CONFIG_MISC_DEVICES=y
365# CONFIG_EEPROM_93CX6 is not set 383# CONFIG_EEPROM_93CX6 is not set
366# CONFIG_SGI_IOC4 is not set 384# CONFIG_SGI_IOC4 is not set
367# CONFIG_TIFM_CORE is not set 385# CONFIG_TIFM_CORE is not set
386# CONFIG_ENCLOSURE_SERVICES is not set
387CONFIG_HAVE_IDE=y
368CONFIG_IDE=y 388CONFIG_IDE=y
369CONFIG_IDE_MAX_HWIFS=4 389CONFIG_IDE_MAX_HWIFS=4
370# CONFIG_BLK_DEV_IDE is not set 390# CONFIG_BLK_DEV_IDE is not set
@@ -432,6 +452,7 @@ CONFIG_SCSI_LOWLEVEL=y
432# CONFIG_SCSI_IPS is not set 452# CONFIG_SCSI_IPS is not set
433# CONFIG_SCSI_INITIO is not set 453# CONFIG_SCSI_INITIO is not set
434# CONFIG_SCSI_INIA100 is not set 454# CONFIG_SCSI_INIA100 is not set
455# CONFIG_SCSI_MVSAS is not set
435# CONFIG_SCSI_STEX is not set 456# CONFIG_SCSI_STEX is not set
436# CONFIG_SCSI_SYM53C8XX_2 is not set 457# CONFIG_SCSI_SYM53C8XX_2 is not set
437# CONFIG_SCSI_IPR is not set 458# CONFIG_SCSI_IPR is not set
@@ -462,6 +483,7 @@ CONFIG_SATA_AHCI=y
462# CONFIG_SATA_VIA is not set 483# CONFIG_SATA_VIA is not set
463# CONFIG_SATA_VITESSE is not set 484# CONFIG_SATA_VITESSE is not set
464# CONFIG_SATA_INIC162X is not set 485# CONFIG_SATA_INIC162X is not set
486# CONFIG_SATA_FSL is not set
465CONFIG_PATA_ALI=y 487CONFIG_PATA_ALI=y
466# CONFIG_PATA_AMD is not set 488# CONFIG_PATA_AMD is not set
467# CONFIG_PATA_ARTOP is not set 489# CONFIG_PATA_ARTOP is not set
@@ -485,6 +507,7 @@ CONFIG_PATA_ALI=y
485# CONFIG_PATA_MPIIX is not set 507# CONFIG_PATA_MPIIX is not set
486# CONFIG_PATA_OLDPIIX is not set 508# CONFIG_PATA_OLDPIIX is not set
487# CONFIG_PATA_NETCELL is not set 509# CONFIG_PATA_NETCELL is not set
510# CONFIG_PATA_NINJA32 is not set
488# CONFIG_PATA_NS87410 is not set 511# CONFIG_PATA_NS87410 is not set
489# CONFIG_PATA_NS87415 is not set 512# CONFIG_PATA_NS87415 is not set
490# CONFIG_PATA_OPTI is not set 513# CONFIG_PATA_OPTI is not set
@@ -518,7 +541,6 @@ CONFIG_DUMMY=y
518# CONFIG_EQUALIZER is not set 541# CONFIG_EQUALIZER is not set
519# CONFIG_TUN is not set 542# CONFIG_TUN is not set
520# CONFIG_VETH is not set 543# CONFIG_VETH is not set
521# CONFIG_IP1000 is not set
522# CONFIG_ARCNET is not set 544# CONFIG_ARCNET is not set
523CONFIG_PHYLIB=y 545CONFIG_PHYLIB=y
524 546
@@ -534,6 +556,7 @@ CONFIG_PHYLIB=y
534# CONFIG_SMSC_PHY is not set 556# CONFIG_SMSC_PHY is not set
535# CONFIG_BROADCOM_PHY is not set 557# CONFIG_BROADCOM_PHY is not set
536# CONFIG_ICPLUS_PHY is not set 558# CONFIG_ICPLUS_PHY is not set
559# CONFIG_REALTEK_PHY is not set
537# CONFIG_FIXED_PHY is not set 560# CONFIG_FIXED_PHY is not set
538# CONFIG_MDIO_BITBANG is not set 561# CONFIG_MDIO_BITBANG is not set
539CONFIG_NET_ETHERNET=y 562CONFIG_NET_ETHERNET=y
@@ -574,6 +597,7 @@ CONFIG_8139TOO_PIO=y
574# CONFIG_8139TOO_TUNE_TWISTER is not set 597# CONFIG_8139TOO_TUNE_TWISTER is not set
575# CONFIG_8139TOO_8129 is not set 598# CONFIG_8139TOO_8129 is not set
576# CONFIG_8139_OLD_RX_RESET is not set 599# CONFIG_8139_OLD_RX_RESET is not set
600# CONFIG_R6040 is not set
577# CONFIG_SIS900 is not set 601# CONFIG_SIS900 is not set
578# CONFIG_EPIC100 is not set 602# CONFIG_EPIC100 is not set
579# CONFIG_SUNDANCE is not set 603# CONFIG_SUNDANCE is not set
@@ -585,6 +609,9 @@ CONFIG_NETDEV_1000=y
585# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
586# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
587# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
612# CONFIG_E1000E_ENABLED is not set
613# CONFIG_IP1000 is not set
614# CONFIG_IGB is not set
588# CONFIG_NS83820 is not set 615# CONFIG_NS83820 is not set
589# CONFIG_HAMACHI is not set 616# CONFIG_HAMACHI is not set
590# CONFIG_YELLOWFIN is not set 617# CONFIG_YELLOWFIN is not set
@@ -610,6 +637,7 @@ CONFIG_NETDEV_10000=y
610# CONFIG_NIU is not set 637# CONFIG_NIU is not set
611# CONFIG_MLX4_CORE is not set 638# CONFIG_MLX4_CORE is not set
612# CONFIG_TEHUTI is not set 639# CONFIG_TEHUTI is not set
640# CONFIG_BNX2X is not set
613# CONFIG_TR is not set 641# CONFIG_TR is not set
614 642
615# 643#
@@ -623,7 +651,6 @@ CONFIG_NETDEV_10000=y
623# CONFIG_PPP is not set 651# CONFIG_PPP is not set
624# CONFIG_SLIP is not set 652# CONFIG_SLIP is not set
625# CONFIG_NET_FC is not set 653# CONFIG_NET_FC is not set
626# CONFIG_SHAPER is not set
627# CONFIG_NETCONSOLE is not set 654# CONFIG_NETCONSOLE is not set
628# CONFIG_NETPOLL is not set 655# CONFIG_NETPOLL is not set
629# CONFIG_NET_POLL_CONTROLLER is not set 656# CONFIG_NET_POLL_CONTROLLER is not set
@@ -674,6 +701,7 @@ CONFIG_VT_CONSOLE=y
674CONFIG_HW_CONSOLE=y 701CONFIG_HW_CONSOLE=y
675# CONFIG_VT_HW_CONSOLE_BINDING is not set 702# CONFIG_VT_HW_CONSOLE_BINDING is not set
676# CONFIG_SERIAL_NONSTANDARD is not set 703# CONFIG_SERIAL_NONSTANDARD is not set
704# CONFIG_NOZOMI is not set
677 705
678# 706#
679# Serial drivers 707# Serial drivers
@@ -748,14 +776,12 @@ CONFIG_I2C_MPC=y
748# 776#
749# Miscellaneous I2C Chip support 777# Miscellaneous I2C Chip support
750# 778#
751# CONFIG_SENSORS_DS1337 is not set
752# CONFIG_SENSORS_DS1374 is not set
753# CONFIG_DS1682 is not set 779# CONFIG_DS1682 is not set
754# CONFIG_SENSORS_EEPROM is not set 780# CONFIG_SENSORS_EEPROM is not set
755# CONFIG_SENSORS_PCF8574 is not set 781# CONFIG_SENSORS_PCF8574 is not set
756# CONFIG_SENSORS_PCA9539 is not set 782# CONFIG_PCF8575 is not set
757# CONFIG_SENSORS_PCF8591 is not set 783# CONFIG_SENSORS_PCF8591 is not set
758# CONFIG_SENSORS_M41T00 is not set 784# CONFIG_TPS65010 is not set
759# CONFIG_SENSORS_MAX6875 is not set 785# CONFIG_SENSORS_MAX6875 is not set
760# CONFIG_SENSORS_TSL2550 is not set 786# CONFIG_SENSORS_TSL2550 is not set
761# CONFIG_I2C_DEBUG_CORE is not set 787# CONFIG_I2C_DEBUG_CORE is not set
@@ -771,6 +797,7 @@ CONFIG_I2C_MPC=y
771# CONFIG_W1 is not set 797# CONFIG_W1 is not set
772# CONFIG_POWER_SUPPLY is not set 798# CONFIG_POWER_SUPPLY is not set
773# CONFIG_HWMON is not set 799# CONFIG_HWMON is not set
800# CONFIG_THERMAL is not set
774# CONFIG_WATCHDOG is not set 801# CONFIG_WATCHDOG is not set
775 802
776# 803#
@@ -859,6 +886,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
859# CONFIG_SND_BT87X is not set 886# CONFIG_SND_BT87X is not set
860# CONFIG_SND_CA0106 is not set 887# CONFIG_SND_CA0106 is not set
861# CONFIG_SND_CMIPCI is not set 888# CONFIG_SND_CMIPCI is not set
889# CONFIG_SND_OXYGEN is not set
862# CONFIG_SND_CS4281 is not set 890# CONFIG_SND_CS4281 is not set
863# CONFIG_SND_CS46XX is not set 891# CONFIG_SND_CS46XX is not set
864# CONFIG_SND_CS5530 is not set 892# CONFIG_SND_CS5530 is not set
@@ -884,6 +912,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
884# CONFIG_SND_HDA_INTEL is not set 912# CONFIG_SND_HDA_INTEL is not set
885# CONFIG_SND_HDSP is not set 913# CONFIG_SND_HDSP is not set
886# CONFIG_SND_HDSPM is not set 914# CONFIG_SND_HDSPM is not set
915# CONFIG_SND_HIFIER is not set
887# CONFIG_SND_ICE1712 is not set 916# CONFIG_SND_ICE1712 is not set
888# CONFIG_SND_ICE1724 is not set 917# CONFIG_SND_ICE1724 is not set
889# CONFIG_SND_INTEL8X0 is not set 918# CONFIG_SND_INTEL8X0 is not set
@@ -901,6 +930,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
901# CONFIG_SND_TRIDENT is not set 930# CONFIG_SND_TRIDENT is not set
902# CONFIG_SND_VIA82XX is not set 931# CONFIG_SND_VIA82XX is not set
903# CONFIG_SND_VIA82XX_MODEM is not set 932# CONFIG_SND_VIA82XX_MODEM is not set
933# CONFIG_SND_VIRTUOSO is not set
904# CONFIG_SND_VX222 is not set 934# CONFIG_SND_VX222 is not set
905# CONFIG_SND_YMFPCI is not set 935# CONFIG_SND_YMFPCI is not set
906 936
@@ -929,6 +959,10 @@ CONFIG_SND_SOC_MPC8610_HPCD=y
929CONFIG_SND_SOC_CS4270=y 959CONFIG_SND_SOC_CS4270=y
930CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 960CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
931 961
962#
963# Open Sound System
964#
965# CONFIG_SOUND_PRIME is not set
932CONFIG_HID_SUPPORT=y 966CONFIG_HID_SUPPORT=y
933CONFIG_HID=y 967CONFIG_HID=y
934# CONFIG_HID_DEBUG is not set 968# CONFIG_HID_DEBUG is not set
@@ -942,16 +976,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
942# 976#
943# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 977# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
944# 978#
945
946#
947# USB Gadget Support
948#
949# CONFIG_USB_GADGET is not set 979# CONFIG_USB_GADGET is not set
950# CONFIG_MMC is not set 980# CONFIG_MMC is not set
981# CONFIG_MEMSTICK is not set
951# CONFIG_NEW_LEDS is not set 982# CONFIG_NEW_LEDS is not set
952# CONFIG_INFINIBAND is not set 983# CONFIG_INFINIBAND is not set
953# CONFIG_EDAC is not set 984# CONFIG_EDAC is not set
954# CONFIG_RTC_CLASS is not set 985# CONFIG_RTC_CLASS is not set
986# CONFIG_DMADEVICES is not set
955 987
956# 988#
957# Userspace I/O 989# Userspace I/O
@@ -977,11 +1009,9 @@ CONFIG_FS_MBCACHE=y
977# CONFIG_XFS_FS is not set 1009# CONFIG_XFS_FS is not set
978# CONFIG_GFS2_FS is not set 1010# CONFIG_GFS2_FS is not set
979# CONFIG_OCFS2_FS is not set 1011# CONFIG_OCFS2_FS is not set
980# CONFIG_MINIX_FS is not set 1012# CONFIG_DNOTIFY is not set
981# CONFIG_ROMFS_FS is not set
982# CONFIG_INOTIFY is not set 1013# CONFIG_INOTIFY is not set
983# CONFIG_QUOTA is not set 1014# CONFIG_QUOTA is not set
984# CONFIG_DNOTIFY is not set
985# CONFIG_AUTOFS_FS is not set 1015# CONFIG_AUTOFS_FS is not set
986# CONFIG_AUTOFS4_FS is not set 1016# CONFIG_AUTOFS4_FS is not set
987# CONFIG_FUSE_FS is not set 1017# CONFIG_FUSE_FS is not set
@@ -1023,8 +1053,10 @@ CONFIG_TMPFS=y
1023# CONFIG_EFS_FS is not set 1053# CONFIG_EFS_FS is not set
1024# CONFIG_CRAMFS is not set 1054# CONFIG_CRAMFS is not set
1025# CONFIG_VXFS_FS is not set 1055# CONFIG_VXFS_FS is not set
1056# CONFIG_MINIX_FS is not set
1026# CONFIG_HPFS_FS is not set 1057# CONFIG_HPFS_FS is not set
1027# CONFIG_QNX4FS_FS is not set 1058# CONFIG_QNX4FS_FS is not set
1059# CONFIG_ROMFS_FS is not set
1028# CONFIG_SYSV_FS is not set 1060# CONFIG_SYSV_FS is not set
1029# CONFIG_UFS_FS is not set 1061# CONFIG_UFS_FS is not set
1030CONFIG_NETWORK_FILESYSTEMS=y 1062CONFIG_NETWORK_FILESYSTEMS=y
@@ -1114,7 +1146,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1114# CONFIG_NLS_KOI8_U is not set 1146# CONFIG_NLS_KOI8_U is not set
1115# CONFIG_NLS_UTF8 is not set 1147# CONFIG_NLS_UTF8 is not set
1116# CONFIG_DLM is not set 1148# CONFIG_DLM is not set
1117# CONFIG_UCC_SLOW is not set
1118 1149
1119# 1150#
1120# Library routines 1151# Library routines
@@ -1130,7 +1161,6 @@ CONFIG_PLIST=y
1130CONFIG_HAS_IOMEM=y 1161CONFIG_HAS_IOMEM=y
1131CONFIG_HAS_IOPORT=y 1162CONFIG_HAS_IOPORT=y
1132CONFIG_HAS_DMA=y 1163CONFIG_HAS_DMA=y
1133# CONFIG_INSTRUMENTATION is not set
1134 1164
1135# 1165#
1136# Kernel hacking 1166# Kernel hacking
@@ -1149,6 +1179,7 @@ CONFIG_SCHED_DEBUG=y
1149# CONFIG_SCHEDSTATS is not set 1179# CONFIG_SCHEDSTATS is not set
1150# CONFIG_TIMER_STATS is not set 1180# CONFIG_TIMER_STATS is not set
1151# CONFIG_SLUB_DEBUG_ON is not set 1181# CONFIG_SLUB_DEBUG_ON is not set
1182# CONFIG_SLUB_STATS is not set
1152# CONFIG_DEBUG_RT_MUTEXES is not set 1183# CONFIG_DEBUG_RT_MUTEXES is not set
1153# CONFIG_RT_MUTEX_TESTER is not set 1184# CONFIG_RT_MUTEX_TESTER is not set
1154# CONFIG_DEBUG_SPINLOCK is not set 1185# CONFIG_DEBUG_SPINLOCK is not set
@@ -1162,8 +1193,8 @@ CONFIG_DEBUG_INFO=y
1162# CONFIG_DEBUG_VM is not set 1193# CONFIG_DEBUG_VM is not set
1163# CONFIG_DEBUG_LIST is not set 1194# CONFIG_DEBUG_LIST is not set
1164# CONFIG_DEBUG_SG is not set 1195# CONFIG_DEBUG_SG is not set
1165CONFIG_FORCED_INLINING=y
1166# CONFIG_BOOT_PRINTK_DELAY is not set 1196# CONFIG_BOOT_PRINTK_DELAY is not set
1197# CONFIG_BACKTRACE_SELF_TEST is not set
1167# CONFIG_FAULT_INJECTION is not set 1198# CONFIG_FAULT_INJECTION is not set
1168# CONFIG_SAMPLES is not set 1199# CONFIG_SAMPLES is not set
1169# CONFIG_DEBUG_STACKOVERFLOW is not set 1200# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1179,5 +1210,49 @@ CONFIG_FORCED_INLINING=y
1179# CONFIG_KEYS is not set 1210# CONFIG_KEYS is not set
1180# CONFIG_SECURITY is not set 1211# CONFIG_SECURITY is not set
1181# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1212# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1182# CONFIG_CRYPTO is not set 1213CONFIG_CRYPTO=y
1214# CONFIG_CRYPTO_SEQIV is not set
1215# CONFIG_CRYPTO_MANAGER is not set
1216# CONFIG_CRYPTO_HMAC is not set
1217# CONFIG_CRYPTO_XCBC is not set
1218# CONFIG_CRYPTO_NULL is not set
1219# CONFIG_CRYPTO_MD4 is not set
1220# CONFIG_CRYPTO_MD5 is not set
1221# CONFIG_CRYPTO_SHA1 is not set
1222# CONFIG_CRYPTO_SHA256 is not set
1223# CONFIG_CRYPTO_SHA512 is not set
1224# CONFIG_CRYPTO_WP512 is not set
1225# CONFIG_CRYPTO_TGR192 is not set
1226# CONFIG_CRYPTO_GF128MUL is not set
1227# CONFIG_CRYPTO_ECB is not set
1228# CONFIG_CRYPTO_CBC is not set
1229# CONFIG_CRYPTO_PCBC is not set
1230# CONFIG_CRYPTO_LRW is not set
1231# CONFIG_CRYPTO_XTS is not set
1232# CONFIG_CRYPTO_CTR is not set
1233# CONFIG_CRYPTO_GCM is not set
1234# CONFIG_CRYPTO_CCM is not set
1235# CONFIG_CRYPTO_CRYPTD is not set
1236# CONFIG_CRYPTO_DES is not set
1237# CONFIG_CRYPTO_FCRYPT is not set
1238# CONFIG_CRYPTO_BLOWFISH is not set
1239# CONFIG_CRYPTO_TWOFISH is not set
1240# CONFIG_CRYPTO_SERPENT is not set
1241# CONFIG_CRYPTO_AES is not set
1242# CONFIG_CRYPTO_CAST5 is not set
1243# CONFIG_CRYPTO_CAST6 is not set
1244# CONFIG_CRYPTO_TEA is not set
1245# CONFIG_CRYPTO_ARC4 is not set
1246# CONFIG_CRYPTO_KHAZAD is not set
1247# CONFIG_CRYPTO_ANUBIS is not set
1248# CONFIG_CRYPTO_SEED is not set
1249# CONFIG_CRYPTO_SALSA20 is not set
1250# CONFIG_CRYPTO_DEFLATE is not set
1251# CONFIG_CRYPTO_MICHAEL_MIC is not set
1252# CONFIG_CRYPTO_CRC32C is not set
1253# CONFIG_CRYPTO_CAMELLIA is not set
1254# CONFIG_CRYPTO_AUTHENC is not set
1255# CONFIG_CRYPTO_LZO is not set
1256CONFIG_CRYPTO_HW=y
1257# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1183# CONFIG_PPC_CLOCK is not set 1258# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8641_hpcn_defconfig b/arch/powerpc/configs/mpc8641_hpcn_defconfig
index ff092fc4c6be..994e76817967 100644
--- a/arch/powerpc/configs/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/mpc8641_hpcn_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:58 2007 4# Mon Mar 24 08:48:34 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,17 +69,21 @@ CONFIG_POSIX_MQUEUE=y
68CONFIG_BSD_PROCESS_ACCT=y 69CONFIG_BSD_PROCESS_ACCT=y
69# CONFIG_BSD_PROCESS_ACCT_V3 is not set 70# CONFIG_BSD_PROCESS_ACCT_V3 is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73CONFIG_AUDIT=y 72CONFIG_AUDIT=y
74# CONFIG_AUDITSYSCALL is not set 73# CONFIG_AUDITSYSCALL is not set
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
78CONFIG_GROUP_SCHED=y
79# CONFIG_FAIR_GROUP_SCHED is not set 79# CONFIG_FAIR_GROUP_SCHED is not set
80# CONFIG_RT_GROUP_SCHED is not set
81CONFIG_USER_SCHED=y
82# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 83CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
86# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 88CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,11 +97,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 97CONFIG_PRINTK=y
93CONFIG_BUG=y 98CONFIG_BUG=y
94CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 102CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 104CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 108CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +111,14 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
105CONFIG_SLUB=y 112CONFIG_SLUB=y
106# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
@@ -132,6 +147,7 @@ CONFIG_IOSCHED_CFQ=y
132CONFIG_DEFAULT_CFQ=y 147CONFIG_DEFAULT_CFQ=y
133# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
134CONFIG_DEFAULT_IOSCHED="cfq" 149CONFIG_DEFAULT_IOSCHED="cfq"
150CONFIG_CLASSIC_RCU=y
135 151
136# 152#
137# Platform support 153# Platform support
@@ -140,14 +156,15 @@ CONFIG_DEFAULT_IOSCHED="cfq"
140# CONFIG_PPC_82xx is not set 156# CONFIG_PPC_82xx is not set
141# CONFIG_PPC_83xx is not set 157# CONFIG_PPC_83xx is not set
142CONFIG_PPC_86xx=y 158CONFIG_PPC_86xx=y
143# CONFIG_PPC_MPC52xx is not set 159# CONFIG_PPC_MPC512x is not set
144# CONFIG_PPC_MPC5200 is not set 160# CONFIG_PPC_MPC5121 is not set
145# CONFIG_PPC_CELL is not set 161# CONFIG_PPC_CELL is not set
146# CONFIG_PPC_CELL_NATIVE is not set 162# CONFIG_PPC_CELL_NATIVE is not set
147# CONFIG_PQ2ADS is not set 163# CONFIG_PQ2ADS is not set
148CONFIG_MPC8641_HPCN=y 164CONFIG_MPC8641_HPCN=y
149# CONFIG_MPC8610_HPCD is not set 165# CONFIG_MPC8610_HPCD is not set
150CONFIG_MPC8641=y 166CONFIG_MPC8641=y
167# CONFIG_IPIC is not set
151CONFIG_MPIC=y 168CONFIG_MPIC=y
152# CONFIG_MPIC_WEIRD is not set 169# CONFIG_MPIC_WEIRD is not set
153CONFIG_PPC_I8259=y 170CONFIG_PPC_I8259=y
@@ -158,7 +175,6 @@ CONFIG_PPC_I8259=y
158# CONFIG_PPC_INDIRECT_IO is not set 175# CONFIG_PPC_INDIRECT_IO is not set
159# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
160# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
161# CONFIG_CPM2 is not set
162CONFIG_FSL_ULI1575=y 178CONFIG_FSL_ULI1575=y
163 179
164# 180#
@@ -174,13 +190,16 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
174# CONFIG_HZ_300 is not set 190# CONFIG_HZ_300 is not set
175CONFIG_HZ_1000=y 191CONFIG_HZ_1000=y
176CONFIG_HZ=1000 192CONFIG_HZ=1000
193# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
180CONFIG_PREEMPT_BKL=y
181CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
182CONFIG_BINFMT_MISC=m 198CONFIG_BINFMT_MISC=m
199# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184# CONFIG_IRQ_ALL_CPUS is not set 203# CONFIG_IRQ_ALL_CPUS is not set
185CONFIG_ARCH_FLATMEM_ENABLE=y 204CONFIG_ARCH_FLATMEM_ENABLE=y
186CONFIG_ARCH_POPULATES_NODE_MAP=y 205CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -201,7 +220,6 @@ CONFIG_PROC_DEVICETREE=y
201# CONFIG_CMDLINE_BOOL is not set 220# CONFIG_CMDLINE_BOOL is not set
202# CONFIG_PM is not set 221# CONFIG_PM is not set
203CONFIG_SECCOMP=y 222CONFIG_SECCOMP=y
204# CONFIG_WANT_DEVICE_TREE is not set
205CONFIG_ISA_DMA_API=y 223CONFIG_ISA_DMA_API=y
206 224
207# 225#
@@ -252,6 +270,7 @@ CONFIG_XFRM=y
252CONFIG_XFRM_USER=y 270CONFIG_XFRM_USER=y
253# CONFIG_XFRM_SUB_POLICY is not set 271# CONFIG_XFRM_SUB_POLICY is not set
254# CONFIG_XFRM_MIGRATE is not set 272# CONFIG_XFRM_MIGRATE is not set
273# CONFIG_XFRM_STATISTICS is not set
255CONFIG_NET_KEY=m 274CONFIG_NET_KEY=m
256# CONFIG_NET_KEY_MIGRATE is not set 275# CONFIG_NET_KEY_MIGRATE is not set
257CONFIG_INET=y 276CONFIG_INET=y
@@ -335,6 +354,7 @@ CONFIG_SCTP_HMAC_MD5=y
335# 354#
336# CONFIG_NET_PKTGEN is not set 355# CONFIG_NET_PKTGEN is not set
337# CONFIG_HAMRADIO is not set 356# CONFIG_HAMRADIO is not set
357# CONFIG_CAN is not set
338# CONFIG_IRDA is not set 358# CONFIG_IRDA is not set
339# CONFIG_BT is not set 359# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 360# CONFIG_AF_RXRPC is not set
@@ -383,7 +403,7 @@ CONFIG_BLK_DEV_NBD=y
383CONFIG_BLK_DEV_RAM=y 403CONFIG_BLK_DEV_RAM=y
384CONFIG_BLK_DEV_RAM_COUNT=16 404CONFIG_BLK_DEV_RAM_COUNT=16
385CONFIG_BLK_DEV_RAM_SIZE=131072 405CONFIG_BLK_DEV_RAM_SIZE=131072
386CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 406# CONFIG_BLK_DEV_XIP is not set
387# CONFIG_CDROM_PKTCDVD is not set 407# CONFIG_CDROM_PKTCDVD is not set
388# CONFIG_ATA_OVER_ETH is not set 408# CONFIG_ATA_OVER_ETH is not set
389CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
@@ -391,6 +411,8 @@ CONFIG_MISC_DEVICES=y
391# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
392# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
393# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
414# CONFIG_ENCLOSURE_SERVICES is not set
415CONFIG_HAVE_IDE=y
394# CONFIG_IDE is not set 416# CONFIG_IDE is not set
395 417
396# 418#
@@ -456,6 +478,7 @@ CONFIG_SCSI_LOWLEVEL=y
456# CONFIG_SCSI_IPS is not set 478# CONFIG_SCSI_IPS is not set
457# CONFIG_SCSI_INITIO is not set 479# CONFIG_SCSI_INITIO is not set
458# CONFIG_SCSI_INIA100 is not set 480# CONFIG_SCSI_INIA100 is not set
481# CONFIG_SCSI_MVSAS is not set
459# CONFIG_SCSI_STEX is not set 482# CONFIG_SCSI_STEX is not set
460# CONFIG_SCSI_SYM53C8XX_2 is not set 483# CONFIG_SCSI_SYM53C8XX_2 is not set
461# CONFIG_SCSI_IPR is not set 484# CONFIG_SCSI_IPR is not set
@@ -486,6 +509,7 @@ CONFIG_SATA_AHCI=y
486# CONFIG_SATA_VIA is not set 509# CONFIG_SATA_VIA is not set
487# CONFIG_SATA_VITESSE is not set 510# CONFIG_SATA_VITESSE is not set
488# CONFIG_SATA_INIC162X is not set 511# CONFIG_SATA_INIC162X is not set
512# CONFIG_SATA_FSL is not set
489CONFIG_PATA_ALI=y 513CONFIG_PATA_ALI=y
490# CONFIG_PATA_AMD is not set 514# CONFIG_PATA_AMD is not set
491# CONFIG_PATA_ARTOP is not set 515# CONFIG_PATA_ARTOP is not set
@@ -509,6 +533,7 @@ CONFIG_PATA_ALI=y
509# CONFIG_PATA_MPIIX is not set 533# CONFIG_PATA_MPIIX is not set
510# CONFIG_PATA_OLDPIIX is not set 534# CONFIG_PATA_OLDPIIX is not set
511# CONFIG_PATA_NETCELL is not set 535# CONFIG_PATA_NETCELL is not set
536# CONFIG_PATA_NINJA32 is not set
512# CONFIG_PATA_NS87410 is not set 537# CONFIG_PATA_NS87410 is not set
513# CONFIG_PATA_NS87415 is not set 538# CONFIG_PATA_NS87415 is not set
514# CONFIG_PATA_OPTI is not set 539# CONFIG_PATA_OPTI is not set
@@ -542,7 +567,6 @@ CONFIG_DUMMY=y
542# CONFIG_EQUALIZER is not set 567# CONFIG_EQUALIZER is not set
543# CONFIG_TUN is not set 568# CONFIG_TUN is not set
544# CONFIG_VETH is not set 569# CONFIG_VETH is not set
545# CONFIG_IP1000 is not set
546# CONFIG_ARCNET is not set 570# CONFIG_ARCNET is not set
547CONFIG_PHYLIB=y 571CONFIG_PHYLIB=y
548 572
@@ -558,6 +582,7 @@ CONFIG_VITESSE_PHY=y
558# CONFIG_SMSC_PHY is not set 582# CONFIG_SMSC_PHY is not set
559# CONFIG_BROADCOM_PHY is not set 583# CONFIG_BROADCOM_PHY is not set
560# CONFIG_ICPLUS_PHY is not set 584# CONFIG_ICPLUS_PHY is not set
585# CONFIG_REALTEK_PHY is not set
561# CONFIG_FIXED_PHY is not set 586# CONFIG_FIXED_PHY is not set
562# CONFIG_MDIO_BITBANG is not set 587# CONFIG_MDIO_BITBANG is not set
563CONFIG_NET_ETHERNET=y 588CONFIG_NET_ETHERNET=y
@@ -579,6 +604,9 @@ CONFIG_NETDEV_1000=y
579# CONFIG_DL2K is not set 604# CONFIG_DL2K is not set
580# CONFIG_E1000 is not set 605# CONFIG_E1000 is not set
581# CONFIG_E1000E is not set 606# CONFIG_E1000E is not set
607# CONFIG_E1000E_ENABLED is not set
608# CONFIG_IP1000 is not set
609# CONFIG_IGB is not set
582# CONFIG_NS83820 is not set 610# CONFIG_NS83820 is not set
583# CONFIG_HAMACHI is not set 611# CONFIG_HAMACHI is not set
584# CONFIG_YELLOWFIN is not set 612# CONFIG_YELLOWFIN is not set
@@ -605,6 +633,7 @@ CONFIG_NETDEV_10000=y
605# CONFIG_NIU is not set 633# CONFIG_NIU is not set
606# CONFIG_MLX4_CORE is not set 634# CONFIG_MLX4_CORE is not set
607# CONFIG_TEHUTI is not set 635# CONFIG_TEHUTI is not set
636# CONFIG_BNX2X is not set
608# CONFIG_TR is not set 637# CONFIG_TR is not set
609 638
610# 639#
@@ -627,7 +656,6 @@ CONFIG_NETDEV_10000=y
627# CONFIG_PPP is not set 656# CONFIG_PPP is not set
628# CONFIG_SLIP is not set 657# CONFIG_SLIP is not set
629# CONFIG_NET_FC is not set 658# CONFIG_NET_FC is not set
630# CONFIG_SHAPER is not set
631# CONFIG_NETCONSOLE is not set 659# CONFIG_NETCONSOLE is not set
632# CONFIG_NETPOLL is not set 660# CONFIG_NETPOLL is not set
633# CONFIG_NET_POLL_CONTROLLER is not set 661# CONFIG_NET_POLL_CONTROLLER is not set
@@ -678,6 +706,7 @@ CONFIG_VT_CONSOLE=y
678CONFIG_HW_CONSOLE=y 706CONFIG_HW_CONSOLE=y
679# CONFIG_VT_HW_CONSOLE_BINDING is not set 707# CONFIG_VT_HW_CONSOLE_BINDING is not set
680# CONFIG_SERIAL_NONSTANDARD is not set 708# CONFIG_SERIAL_NONSTANDARD is not set
709# CONFIG_NOZOMI is not set
681 710
682# 711#
683# Serial drivers 712# Serial drivers
@@ -756,14 +785,12 @@ CONFIG_I2C_MPC=y
756# 785#
757# Miscellaneous I2C Chip support 786# Miscellaneous I2C Chip support
758# 787#
759# CONFIG_SENSORS_DS1337 is not set
760# CONFIG_SENSORS_DS1374 is not set
761# CONFIG_DS1682 is not set 788# CONFIG_DS1682 is not set
762CONFIG_SENSORS_EEPROM=y 789CONFIG_SENSORS_EEPROM=y
763# CONFIG_SENSORS_PCF8574 is not set 790# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_SENSORS_PCA9539 is not set 791# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 792# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_SENSORS_M41T00 is not set 793# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 794# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 795# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 796# CONFIG_I2C_DEBUG_CORE is not set
@@ -779,6 +806,7 @@ CONFIG_SENSORS_EEPROM=y
779# CONFIG_W1 is not set 806# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 807# CONFIG_POWER_SUPPLY is not set
781# CONFIG_HWMON is not set 808# CONFIG_HWMON is not set
809# CONFIG_THERMAL is not set
782# CONFIG_WATCHDOG is not set 810# CONFIG_WATCHDOG is not set
783 811
784# 812#
@@ -803,6 +831,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
803# 831#
804# Supported SAA7146 based PCI Adapters 832# Supported SAA7146 based PCI Adapters
805# 833#
834# CONFIG_TTPCI_EEPROM is not set
835# CONFIG_DVB_BUDGET_CORE is not set
806 836
807# 837#
808# Supported USB Adapters 838# Supported USB Adapters
@@ -888,11 +918,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
888# CONFIG_DVB_PLL is not set 918# CONFIG_DVB_PLL is not set
889# CONFIG_DVB_TDA826X is not set 919# CONFIG_DVB_TDA826X is not set
890# CONFIG_DVB_TDA827X is not set 920# CONFIG_DVB_TDA827X is not set
921# CONFIG_DVB_TDA18271 is not set
891# CONFIG_DVB_TUNER_QT1010 is not set 922# CONFIG_DVB_TUNER_QT1010 is not set
892# CONFIG_DVB_TUNER_MT2060 is not set 923# CONFIG_DVB_TUNER_MT2060 is not set
893# CONFIG_DVB_TUNER_MT2266 is not set 924# CONFIG_DVB_TUNER_MT2266 is not set
894# CONFIG_DVB_TUNER_MT2131 is not set 925# CONFIG_DVB_TUNER_MT2131 is not set
895# CONFIG_DVB_TUNER_DIB0070 is not set 926# CONFIG_DVB_TUNER_DIB0070 is not set
927# CONFIG_DVB_TUNER_XC5000 is not set
896 928
897# 929#
898# Miscellaneous devices 930# Miscellaneous devices
@@ -970,6 +1002,7 @@ CONFIG_SND_AC97_CODEC=y
970# CONFIG_SND_BT87X is not set 1002# CONFIG_SND_BT87X is not set
971# CONFIG_SND_CA0106 is not set 1003# CONFIG_SND_CA0106 is not set
972# CONFIG_SND_CMIPCI is not set 1004# CONFIG_SND_CMIPCI is not set
1005# CONFIG_SND_OXYGEN is not set
973# CONFIG_SND_CS4281 is not set 1006# CONFIG_SND_CS4281 is not set
974# CONFIG_SND_CS46XX is not set 1007# CONFIG_SND_CS46XX is not set
975# CONFIG_SND_CS5530 is not set 1008# CONFIG_SND_CS5530 is not set
@@ -995,6 +1028,7 @@ CONFIG_SND_AC97_CODEC=y
995# CONFIG_SND_HDA_INTEL is not set 1028# CONFIG_SND_HDA_INTEL is not set
996# CONFIG_SND_HDSP is not set 1029# CONFIG_SND_HDSP is not set
997# CONFIG_SND_HDSPM is not set 1030# CONFIG_SND_HDSPM is not set
1031# CONFIG_SND_HIFIER is not set
998# CONFIG_SND_ICE1712 is not set 1032# CONFIG_SND_ICE1712 is not set
999# CONFIG_SND_ICE1724 is not set 1033# CONFIG_SND_ICE1724 is not set
1000CONFIG_SND_INTEL8X0=y 1034CONFIG_SND_INTEL8X0=y
@@ -1012,6 +1046,7 @@ CONFIG_SND_INTEL8X0=y
1012# CONFIG_SND_TRIDENT is not set 1046# CONFIG_SND_TRIDENT is not set
1013# CONFIG_SND_VIA82XX is not set 1047# CONFIG_SND_VIA82XX is not set
1014# CONFIG_SND_VIA82XX_MODEM is not set 1048# CONFIG_SND_VIA82XX_MODEM is not set
1049# CONFIG_SND_VIRTUOSO is not set
1015# CONFIG_SND_VX222 is not set 1050# CONFIG_SND_VX222 is not set
1016# CONFIG_SND_YMFPCI is not set 1051# CONFIG_SND_YMFPCI is not set
1017# CONFIG_SND_AC97_POWER_SAVE is not set 1052# CONFIG_SND_AC97_POWER_SAVE is not set
@@ -1041,6 +1076,10 @@ CONFIG_SND_INTEL8X0=y
1041# 1076#
1042 1077
1043# 1078#
1079# ALSA SoC audio for Freescale SOCs
1080#
1081
1082#
1044# Open Sound System 1083# Open Sound System
1045# 1084#
1046# CONFIG_SOUND_PRIME is not set 1085# CONFIG_SOUND_PRIME is not set
@@ -1063,6 +1102,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1063CONFIG_USB_ARCH_HAS_EHCI=y 1102CONFIG_USB_ARCH_HAS_EHCI=y
1064CONFIG_USB=y 1103CONFIG_USB=y
1065# CONFIG_USB_DEBUG is not set 1104# CONFIG_USB_DEBUG is not set
1105# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1066 1106
1067# 1107#
1068# Miscellaneous USB options 1108# Miscellaneous USB options
@@ -1076,9 +1116,10 @@ CONFIG_USB_DEVICE_CLASS=y
1076# USB Host Controller Drivers 1116# USB Host Controller Drivers
1077# 1117#
1078CONFIG_USB_EHCI_HCD=y 1118CONFIG_USB_EHCI_HCD=y
1079# CONFIG_USB_EHCI_SPLIT_ISO is not set
1080# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1119# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1081# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1120# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1121# CONFIG_USB_EHCI_FSL is not set
1122CONFIG_USB_EHCI_HCD_PPC_OF=y
1082# CONFIG_USB_ISP116X_HCD is not set 1123# CONFIG_USB_ISP116X_HCD is not set
1083CONFIG_USB_OHCI_HCD=y 1124CONFIG_USB_OHCI_HCD=y
1084CONFIG_USB_OHCI_HCD_PPC_OF=y 1125CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -1129,10 +1170,6 @@ CONFIG_USB_MON=y
1129# 1170#
1130# USB port drivers 1171# USB port drivers
1131# 1172#
1132
1133#
1134# USB Serial Converter support
1135#
1136# CONFIG_USB_SERIAL is not set 1173# CONFIG_USB_SERIAL is not set
1137 1174
1138# 1175#
@@ -1158,21 +1195,18 @@ CONFIG_USB_MON=y
1158# CONFIG_USB_TRANCEVIBRATOR is not set 1195# CONFIG_USB_TRANCEVIBRATOR is not set
1159# CONFIG_USB_IOWARRIOR is not set 1196# CONFIG_USB_IOWARRIOR is not set
1160# CONFIG_USB_TEST is not set 1197# CONFIG_USB_TEST is not set
1161
1162#
1163# USB DSL modem support
1164#
1165
1166#
1167# USB Gadget Support
1168#
1169# CONFIG_USB_GADGET is not set 1198# CONFIG_USB_GADGET is not set
1170# CONFIG_MMC is not set 1199# CONFIG_MMC is not set
1200# CONFIG_MEMSTICK is not set
1171# CONFIG_NEW_LEDS is not set 1201# CONFIG_NEW_LEDS is not set
1172# CONFIG_INFINIBAND is not set 1202# CONFIG_INFINIBAND is not set
1173# CONFIG_EDAC is not set 1203# CONFIG_EDAC is not set
1174CONFIG_RTC_LIB=y 1204CONFIG_RTC_LIB=y
1175CONFIG_RTC_CLASS=y 1205CONFIG_RTC_CLASS=y
1206
1207#
1208# Conflicting RTC option has been selected, check GEN_RTC and RTC
1209#
1176CONFIG_RTC_HCTOSYS=y 1210CONFIG_RTC_HCTOSYS=y
1177CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1211CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1178# CONFIG_RTC_DEBUG is not set 1212# CONFIG_RTC_DEBUG is not set
@@ -1199,6 +1233,7 @@ CONFIG_RTC_INTF_DEV=y
1199# CONFIG_RTC_DRV_PCF8563 is not set 1233# CONFIG_RTC_DRV_PCF8563 is not set
1200# CONFIG_RTC_DRV_PCF8583 is not set 1234# CONFIG_RTC_DRV_PCF8583 is not set
1201# CONFIG_RTC_DRV_M41T80 is not set 1235# CONFIG_RTC_DRV_M41T80 is not set
1236# CONFIG_RTC_DRV_S35390A is not set
1202 1237
1203# 1238#
1204# SPI RTC drivers 1239# SPI RTC drivers
@@ -1208,9 +1243,10 @@ CONFIG_RTC_INTF_DEV=y
1208# Platform RTC drivers 1243# Platform RTC drivers
1209# 1244#
1210CONFIG_RTC_DRV_CMOS=y 1245CONFIG_RTC_DRV_CMOS=y
1246# CONFIG_RTC_DRV_DS1511 is not set
1211# CONFIG_RTC_DRV_DS1553 is not set 1247# CONFIG_RTC_DRV_DS1553 is not set
1212# CONFIG_RTC_DRV_STK17TA8 is not set
1213# CONFIG_RTC_DRV_DS1742 is not set 1248# CONFIG_RTC_DRV_DS1742 is not set
1249# CONFIG_RTC_DRV_STK17TA8 is not set
1214# CONFIG_RTC_DRV_M48T86 is not set 1250# CONFIG_RTC_DRV_M48T86 is not set
1215# CONFIG_RTC_DRV_M48T59 is not set 1251# CONFIG_RTC_DRV_M48T59 is not set
1216# CONFIG_RTC_DRV_V3020 is not set 1252# CONFIG_RTC_DRV_V3020 is not set
@@ -1218,6 +1254,7 @@ CONFIG_RTC_DRV_CMOS=y
1218# 1254#
1219# on-CPU RTC drivers 1255# on-CPU RTC drivers
1220# 1256#
1257# CONFIG_DMADEVICES is not set
1221 1258
1222# 1259#
1223# Userspace I/O 1260# Userspace I/O
@@ -1243,12 +1280,10 @@ CONFIG_FS_MBCACHE=y
1243# CONFIG_XFS_FS is not set 1280# CONFIG_XFS_FS is not set
1244# CONFIG_GFS2_FS is not set 1281# CONFIG_GFS2_FS is not set
1245# CONFIG_OCFS2_FS is not set 1282# CONFIG_OCFS2_FS is not set
1246# CONFIG_MINIX_FS is not set 1283CONFIG_DNOTIFY=y
1247# CONFIG_ROMFS_FS is not set
1248CONFIG_INOTIFY=y 1284CONFIG_INOTIFY=y
1249CONFIG_INOTIFY_USER=y 1285CONFIG_INOTIFY_USER=y
1250# CONFIG_QUOTA is not set 1286# CONFIG_QUOTA is not set
1251CONFIG_DNOTIFY=y
1252# CONFIG_AUTOFS_FS is not set 1287# CONFIG_AUTOFS_FS is not set
1253# CONFIG_AUTOFS4_FS is not set 1288# CONFIG_AUTOFS4_FS is not set
1254# CONFIG_FUSE_FS is not set 1289# CONFIG_FUSE_FS is not set
@@ -1300,8 +1335,10 @@ CONFIG_BFS_FS=m
1300CONFIG_EFS_FS=m 1335CONFIG_EFS_FS=m
1301CONFIG_CRAMFS=y 1336CONFIG_CRAMFS=y
1302CONFIG_VXFS_FS=m 1337CONFIG_VXFS_FS=m
1338# CONFIG_MINIX_FS is not set
1303CONFIG_HPFS_FS=m 1339CONFIG_HPFS_FS=m
1304CONFIG_QNX4FS_FS=m 1340CONFIG_QNX4FS_FS=m
1341# CONFIG_ROMFS_FS is not set
1305CONFIG_SYSV_FS=m 1342CONFIG_SYSV_FS=m
1306CONFIG_UFS_FS=m 1343CONFIG_UFS_FS=m
1307# CONFIG_UFS_FS_WRITE is not set 1344# CONFIG_UFS_FS_WRITE is not set
@@ -1393,7 +1430,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1393# CONFIG_NLS_KOI8_U is not set 1430# CONFIG_NLS_KOI8_U is not set
1394CONFIG_NLS_UTF8=m 1431CONFIG_NLS_UTF8=m
1395# CONFIG_DLM is not set 1432# CONFIG_DLM is not set
1396# CONFIG_UCC_SLOW is not set
1397 1433
1398# 1434#
1399# Library routines 1435# Library routines
@@ -1410,7 +1446,6 @@ CONFIG_PLIST=y
1410CONFIG_HAS_IOMEM=y 1446CONFIG_HAS_IOMEM=y
1411CONFIG_HAS_IOPORT=y 1447CONFIG_HAS_IOPORT=y
1412CONFIG_HAS_DMA=y 1448CONFIG_HAS_DMA=y
1413# CONFIG_INSTRUMENTATION is not set
1414 1449
1415# 1450#
1416# Kernel hacking 1451# Kernel hacking
@@ -1429,6 +1464,7 @@ CONFIG_SCHED_DEBUG=y
1429# CONFIG_SCHEDSTATS is not set 1464# CONFIG_SCHEDSTATS is not set
1430# CONFIG_TIMER_STATS is not set 1465# CONFIG_TIMER_STATS is not set
1431# CONFIG_SLUB_DEBUG_ON is not set 1466# CONFIG_SLUB_DEBUG_ON is not set
1467# CONFIG_SLUB_STATS is not set
1432# CONFIG_DEBUG_RT_MUTEXES is not set 1468# CONFIG_DEBUG_RT_MUTEXES is not set
1433# CONFIG_RT_MUTEX_TESTER is not set 1469# CONFIG_RT_MUTEX_TESTER is not set
1434# CONFIG_DEBUG_SPINLOCK is not set 1470# CONFIG_DEBUG_SPINLOCK is not set
@@ -1442,9 +1478,9 @@ CONFIG_DEBUG_INFO=y
1442# CONFIG_DEBUG_VM is not set 1478# CONFIG_DEBUG_VM is not set
1443# CONFIG_DEBUG_LIST is not set 1479# CONFIG_DEBUG_LIST is not set
1444# CONFIG_DEBUG_SG is not set 1480# CONFIG_DEBUG_SG is not set
1445CONFIG_FORCED_INLINING=y
1446# CONFIG_BOOT_PRINTK_DELAY is not set 1481# CONFIG_BOOT_PRINTK_DELAY is not set
1447# CONFIG_RCU_TORTURE_TEST is not set 1482# CONFIG_RCU_TORTURE_TEST is not set
1483# CONFIG_BACKTRACE_SELF_TEST is not set
1448# CONFIG_FAULT_INJECTION is not set 1484# CONFIG_FAULT_INJECTION is not set
1449# CONFIG_SAMPLES is not set 1485# CONFIG_SAMPLES is not set
1450# CONFIG_DEBUG_STACKOVERFLOW is not set 1486# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1463,6 +1499,7 @@ CONFIG_FORCED_INLINING=y
1463CONFIG_CRYPTO=y 1499CONFIG_CRYPTO=y
1464CONFIG_CRYPTO_ALGAPI=y 1500CONFIG_CRYPTO_ALGAPI=y
1465CONFIG_CRYPTO_BLKCIPHER=y 1501CONFIG_CRYPTO_BLKCIPHER=y
1502# CONFIG_CRYPTO_SEQIV is not set
1466CONFIG_CRYPTO_HASH=y 1503CONFIG_CRYPTO_HASH=y
1467CONFIG_CRYPTO_MANAGER=y 1504CONFIG_CRYPTO_MANAGER=y
1468CONFIG_CRYPTO_HMAC=y 1505CONFIG_CRYPTO_HMAC=y
@@ -1481,6 +1518,9 @@ CONFIG_CRYPTO_CBC=y
1481CONFIG_CRYPTO_PCBC=m 1518CONFIG_CRYPTO_PCBC=m
1482# CONFIG_CRYPTO_LRW is not set 1519# CONFIG_CRYPTO_LRW is not set
1483# CONFIG_CRYPTO_XTS is not set 1520# CONFIG_CRYPTO_XTS is not set
1521# CONFIG_CRYPTO_CTR is not set
1522# CONFIG_CRYPTO_GCM is not set
1523# CONFIG_CRYPTO_CCM is not set
1484# CONFIG_CRYPTO_CRYPTD is not set 1524# CONFIG_CRYPTO_CRYPTD is not set
1485CONFIG_CRYPTO_DES=y 1525CONFIG_CRYPTO_DES=y
1486# CONFIG_CRYPTO_FCRYPT is not set 1526# CONFIG_CRYPTO_FCRYPT is not set
@@ -1495,11 +1535,14 @@ CONFIG_CRYPTO_DES=y
1495# CONFIG_CRYPTO_KHAZAD is not set 1535# CONFIG_CRYPTO_KHAZAD is not set
1496# CONFIG_CRYPTO_ANUBIS is not set 1536# CONFIG_CRYPTO_ANUBIS is not set
1497# CONFIG_CRYPTO_SEED is not set 1537# CONFIG_CRYPTO_SEED is not set
1538# CONFIG_CRYPTO_SALSA20 is not set
1498# CONFIG_CRYPTO_DEFLATE is not set 1539# CONFIG_CRYPTO_DEFLATE is not set
1499# CONFIG_CRYPTO_MICHAEL_MIC is not set 1540# CONFIG_CRYPTO_MICHAEL_MIC is not set
1500# CONFIG_CRYPTO_CRC32C is not set 1541# CONFIG_CRYPTO_CRC32C is not set
1501# CONFIG_CRYPTO_CAMELLIA is not set 1542# CONFIG_CRYPTO_CAMELLIA is not set
1502# CONFIG_CRYPTO_TEST is not set 1543# CONFIG_CRYPTO_TEST is not set
1503# CONFIG_CRYPTO_AUTHENC is not set 1544# CONFIG_CRYPTO_AUTHENC is not set
1545# CONFIG_CRYPTO_LZO is not set
1504CONFIG_CRYPTO_HW=y 1546CONFIG_CRYPTO_HW=y
1547# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1505# CONFIG_PPC_CLOCK is not set 1548# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index a7ef231f2ab2..2d831db9ae5b 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:48:59 2007 4# Mon Mar 24 08:48:35 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -62,15 +63,19 @@ CONFIG_SYSVIPC_SYSCTL=y
62# CONFIG_POSIX_MQUEUE is not set 63# CONFIG_POSIX_MQUEUE is not set
63# CONFIG_BSD_PROCESS_ACCT is not set 64# CONFIG_BSD_PROCESS_ACCT is not set
64# CONFIG_TASKSTATS is not set 65# CONFIG_TASKSTATS is not set
65# CONFIG_USER_NS is not set
66# CONFIG_PID_NS is not set
67# CONFIG_AUDIT is not set 66# CONFIG_AUDIT is not set
68# CONFIG_IKCONFIG is not set 67# CONFIG_IKCONFIG is not set
69CONFIG_LOG_BUF_SHIFT=14 68CONFIG_LOG_BUF_SHIFT=14
70# CONFIG_CGROUPS is not set 69# CONFIG_CGROUPS is not set
70CONFIG_GROUP_SCHED=y
71# CONFIG_FAIR_GROUP_SCHED is not set 71# CONFIG_FAIR_GROUP_SCHED is not set
72# CONFIG_RT_GROUP_SCHED is not set
73CONFIG_USER_SCHED=y
74# CONFIG_CGROUP_SCHED is not set
72CONFIG_SYSFS_DEPRECATED=y 75CONFIG_SYSFS_DEPRECATED=y
76CONFIG_SYSFS_DEPRECATED_V2=y
73# CONFIG_RELAY is not set 77# CONFIG_RELAY is not set
78# CONFIG_NAMESPACES is not set
74# CONFIG_BLK_DEV_INITRD is not set 79# CONFIG_BLK_DEV_INITRD is not set
75# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
76CONFIG_SYSCTL=y 81CONFIG_SYSCTL=y
@@ -82,11 +87,13 @@ CONFIG_KALLSYMS=y
82CONFIG_PRINTK=y 87CONFIG_PRINTK=y
83# CONFIG_BUG is not set 88# CONFIG_BUG is not set
84CONFIG_ELF_CORE=y 89CONFIG_ELF_CORE=y
90CONFIG_COMPAT_BRK=y
85# CONFIG_BASE_FULL is not set 91# CONFIG_BASE_FULL is not set
86CONFIG_FUTEX=y 92CONFIG_FUTEX=y
87CONFIG_ANON_INODES=y 93CONFIG_ANON_INODES=y
88# CONFIG_EPOLL is not set 94# CONFIG_EPOLL is not set
89CONFIG_SIGNALFD=y 95CONFIG_SIGNALFD=y
96CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 97CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 98CONFIG_SHMEM=y
92# CONFIG_VM_EVENT_COUNTERS is not set 99# CONFIG_VM_EVENT_COUNTERS is not set
@@ -94,6 +101,13 @@ CONFIG_SLUB_DEBUG=y
94# CONFIG_SLAB is not set 101# CONFIG_SLAB is not set
95CONFIG_SLUB=y 102CONFIG_SLUB=y
96# CONFIG_SLOB is not set 103# CONFIG_SLOB is not set
104# CONFIG_PROFILING is not set
105# CONFIG_MARKERS is not set
106CONFIG_HAVE_OPROFILE=y
107CONFIG_HAVE_KPROBES=y
108CONFIG_HAVE_KRETPROBES=y
109CONFIG_PROC_PAGE_MONITOR=y
110CONFIG_SLABINFO=y
97CONFIG_RT_MUTEXES=y 111CONFIG_RT_MUTEXES=y
98# CONFIG_TINY_SHMEM is not set 112# CONFIG_TINY_SHMEM is not set
99CONFIG_BASE_SMALL=1 113CONFIG_BASE_SMALL=1
@@ -116,12 +130,13 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
117# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
133CONFIG_CLASSIC_RCU=y
119 134
120# 135#
121# Platform support 136# Platform support
122# 137#
123# CONFIG_PPC_MPC52xx is not set 138# CONFIG_PPC_MPC512x is not set
124# CONFIG_PPC_MPC5200 is not set 139# CONFIG_PPC_MPC5121 is not set
125# CONFIG_PPC_CELL is not set 140# CONFIG_PPC_CELL is not set
126# CONFIG_PPC_CELL_NATIVE is not set 141# CONFIG_PPC_CELL_NATIVE is not set
127CONFIG_CPM1=y 142CONFIG_CPM1=y
@@ -129,6 +144,7 @@ CONFIG_CPM1=y
129CONFIG_MPC86XADS=y 144CONFIG_MPC86XADS=y
130# CONFIG_MPC885ADS is not set 145# CONFIG_MPC885ADS is not set
131# CONFIG_PPC_EP88XC is not set 146# CONFIG_PPC_EP88XC is not set
147# CONFIG_PPC_ADDER875 is not set
132 148
133# 149#
134# MPC8xx CPM Options 150# MPC8xx CPM Options
@@ -145,6 +161,7 @@ CONFIG_NO_UCODE_PATCH=y
145# CONFIG_I2C_SPI_UCODE_PATCH is not set 161# CONFIG_I2C_SPI_UCODE_PATCH is not set
146# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set 162# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set
147# CONFIG_PQ2ADS is not set 163# CONFIG_PQ2ADS is not set
164# CONFIG_IPIC is not set
148# CONFIG_MPIC is not set 165# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 166# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -155,7 +172,7 @@ CONFIG_NO_UCODE_PATCH=y
155# CONFIG_PPC_INDIRECT_IO is not set 172# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set 175CONFIG_PPC_CPM_NEW_BINDING=y
159# CONFIG_FSL_ULI1575 is not set 176# CONFIG_FSL_ULI1575 is not set
160CONFIG_CPM=y 177CONFIG_CPM=y
161 178
@@ -172,13 +189,17 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
172# CONFIG_HZ_300 is not set 189# CONFIG_HZ_300 is not set
173CONFIG_HZ_1000=y 190CONFIG_HZ_1000=y
174CONFIG_HZ=1000 191CONFIG_HZ=1000
192# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 193CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 194# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 195# CONFIG_PREEMPT is not set
178CONFIG_BINFMT_ELF=y 196CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 197# CONFIG_BINFMT_MISC is not set
180CONFIG_MATH_EMULATION=y 198CONFIG_MATH_EMULATION=y
199# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -197,11 +218,7 @@ CONFIG_VIRT_TO_BUS=y
197# CONFIG_PROC_DEVICETREE is not set 218# CONFIG_PROC_DEVICETREE is not set
198# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
199# CONFIG_PM is not set 220# CONFIG_PM is not set
200CONFIG_SUSPEND_UP_POSSIBLE=y
201CONFIG_HIBERNATION_UP_POSSIBLE=y
202# CONFIG_SECCOMP is not set 221# CONFIG_SECCOMP is not set
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE=""
205CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
206 223
207# 224#
@@ -246,6 +263,7 @@ CONFIG_XFRM=y
246# CONFIG_XFRM_USER is not set 263# CONFIG_XFRM_USER is not set
247# CONFIG_XFRM_SUB_POLICY is not set 264# CONFIG_XFRM_SUB_POLICY is not set
248# CONFIG_XFRM_MIGRATE is not set 265# CONFIG_XFRM_MIGRATE is not set
266# CONFIG_XFRM_STATISTICS is not set
249# CONFIG_NET_KEY is not set 267# CONFIG_NET_KEY is not set
250CONFIG_INET=y 268CONFIG_INET=y
251CONFIG_IP_MULTICAST=y 269CONFIG_IP_MULTICAST=y
@@ -301,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
301# 319#
302# CONFIG_NET_PKTGEN is not set 320# CONFIG_NET_PKTGEN is not set
303# CONFIG_HAMRADIO is not set 321# CONFIG_HAMRADIO is not set
322# CONFIG_CAN is not set
304# CONFIG_IRDA is not set 323# CONFIG_IRDA is not set
305# CONFIG_BT is not set 324# CONFIG_BT is not set
306# CONFIG_AF_RXRPC is not set 325# CONFIG_AF_RXRPC is not set
@@ -340,6 +359,8 @@ CONFIG_BLK_DEV_LOOP=y
340# CONFIG_ATA_OVER_ETH is not set 359# CONFIG_ATA_OVER_ETH is not set
341CONFIG_MISC_DEVICES=y 360CONFIG_MISC_DEVICES=y
342# CONFIG_EEPROM_93CX6 is not set 361# CONFIG_EEPROM_93CX6 is not set
362# CONFIG_ENCLOSURE_SERVICES is not set
363CONFIG_HAVE_IDE=y
343# CONFIG_IDE is not set 364# CONFIG_IDE is not set
344 365
345# 366#
@@ -374,11 +395,8 @@ CONFIG_PHYLIB=y
374# CONFIG_SMSC_PHY is not set 395# CONFIG_SMSC_PHY is not set
375# CONFIG_BROADCOM_PHY is not set 396# CONFIG_BROADCOM_PHY is not set
376# CONFIG_ICPLUS_PHY is not set 397# CONFIG_ICPLUS_PHY is not set
398# CONFIG_REALTEK_PHY is not set
377CONFIG_FIXED_PHY=y 399CONFIG_FIXED_PHY=y
378CONFIG_FIXED_MII_10_FDX=y
379CONFIG_FIXED_MII_100_FDX=y
380# CONFIG_FIXED_MII_1000_FDX is not set
381CONFIG_FIXED_MII_AMNT=1
382# CONFIG_MDIO_BITBANG is not set 400# CONFIG_MDIO_BITBANG is not set
383CONFIG_NET_ETHERNET=y 401CONFIG_NET_ETHERNET=y
384CONFIG_MII=y 402CONFIG_MII=y
@@ -392,6 +410,8 @@ CONFIG_FS_ENET_HAS_SCC=y
392CONFIG_FS_ENET_HAS_FEC=y 410CONFIG_FS_ENET_HAS_FEC=y
393CONFIG_FS_ENET_MDIO_FEC=y 411CONFIG_FS_ENET_MDIO_FEC=y
394CONFIG_NETDEV_1000=y 412CONFIG_NETDEV_1000=y
413# CONFIG_E1000E_ENABLED is not set
414# CONFIG_GIANFAR is not set
395CONFIG_NETDEV_10000=y 415CONFIG_NETDEV_10000=y
396 416
397# 417#
@@ -402,7 +422,6 @@ CONFIG_NETDEV_10000=y
402# CONFIG_WAN is not set 422# CONFIG_WAN is not set
403# CONFIG_PPP is not set 423# CONFIG_PPP is not set
404# CONFIG_SLIP is not set 424# CONFIG_SLIP is not set
405# CONFIG_SHAPER is not set
406# CONFIG_NETCONSOLE is not set 425# CONFIG_NETCONSOLE is not set
407# CONFIG_NETPOLL is not set 426# CONFIG_NETPOLL is not set
408# CONFIG_NET_POLL_CONTROLLER is not set 427# CONFIG_NET_POLL_CONTROLLER is not set
@@ -519,6 +538,7 @@ CONFIG_HWMON=y
519# CONFIG_SENSORS_W83627HF is not set 538# CONFIG_SENSORS_W83627HF is not set
520# CONFIG_SENSORS_W83627EHF is not set 539# CONFIG_SENSORS_W83627EHF is not set
521# CONFIG_HWMON_DEBUG_CHIP is not set 540# CONFIG_HWMON_DEBUG_CHIP is not set
541# CONFIG_THERMAL is not set
522# CONFIG_WATCHDOG is not set 542# CONFIG_WATCHDOG is not set
523 543
524# 544#
@@ -568,15 +588,13 @@ CONFIG_USB_SUPPORT=y
568# 588#
569# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 589# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
570# 590#
571
572#
573# USB Gadget Support
574#
575# CONFIG_USB_GADGET is not set 591# CONFIG_USB_GADGET is not set
576# CONFIG_MMC is not set 592# CONFIG_MMC is not set
593# CONFIG_MEMSTICK is not set
577# CONFIG_NEW_LEDS is not set 594# CONFIG_NEW_LEDS is not set
578# CONFIG_EDAC is not set 595# CONFIG_EDAC is not set
579# CONFIG_RTC_CLASS is not set 596# CONFIG_RTC_CLASS is not set
597# CONFIG_DMADEVICES is not set
580 598
581# 599#
582# Userspace I/O 600# Userspace I/O
@@ -604,12 +622,10 @@ CONFIG_FS_MBCACHE=y
604# CONFIG_XFS_FS is not set 622# CONFIG_XFS_FS is not set
605# CONFIG_GFS2_FS is not set 623# CONFIG_GFS2_FS is not set
606# CONFIG_OCFS2_FS is not set 624# CONFIG_OCFS2_FS is not set
607# CONFIG_MINIX_FS is not set 625CONFIG_DNOTIFY=y
608# CONFIG_ROMFS_FS is not set
609CONFIG_INOTIFY=y 626CONFIG_INOTIFY=y
610CONFIG_INOTIFY_USER=y 627CONFIG_INOTIFY_USER=y
611# CONFIG_QUOTA is not set 628# CONFIG_QUOTA is not set
612CONFIG_DNOTIFY=y
613# CONFIG_AUTOFS_FS is not set 629# CONFIG_AUTOFS_FS is not set
614# CONFIG_AUTOFS4_FS is not set 630# CONFIG_AUTOFS4_FS is not set
615# CONFIG_FUSE_FS is not set 631# CONFIG_FUSE_FS is not set
@@ -651,8 +667,10 @@ CONFIG_TMPFS=y
651# CONFIG_EFS_FS is not set 667# CONFIG_EFS_FS is not set
652CONFIG_CRAMFS=y 668CONFIG_CRAMFS=y
653# CONFIG_VXFS_FS is not set 669# CONFIG_VXFS_FS is not set
670# CONFIG_MINIX_FS is not set
654# CONFIG_HPFS_FS is not set 671# CONFIG_HPFS_FS is not set
655# CONFIG_QNX4FS_FS is not set 672# CONFIG_QNX4FS_FS is not set
673# CONFIG_ROMFS_FS is not set
656# CONFIG_SYSV_FS is not set 674# CONFIG_SYSV_FS is not set
657# CONFIG_UFS_FS is not set 675# CONFIG_UFS_FS is not set
658CONFIG_NETWORK_FILESYSTEMS=y 676CONFIG_NETWORK_FILESYSTEMS=y
@@ -699,7 +717,6 @@ CONFIG_MSDOS_PARTITION=y
699# CONFIG_SYSV68_PARTITION is not set 717# CONFIG_SYSV68_PARTITION is not set
700# CONFIG_NLS is not set 718# CONFIG_NLS is not set
701# CONFIG_DLM is not set 719# CONFIG_DLM is not set
702# CONFIG_UCC_SLOW is not set
703 720
704# 721#
705# Library routines 722# Library routines
@@ -716,7 +733,6 @@ CONFIG_PLIST=y
716CONFIG_HAS_IOMEM=y 733CONFIG_HAS_IOMEM=y
717CONFIG_HAS_IOPORT=y 734CONFIG_HAS_IOPORT=y
718CONFIG_HAS_DMA=y 735CONFIG_HAS_DMA=y
719# CONFIG_INSTRUMENTATION is not set
720 736
721# 737#
722# Kernel hacking 738# Kernel hacking
@@ -730,6 +746,7 @@ CONFIG_ENABLE_MUST_CHECK=y
730# CONFIG_HEADERS_CHECK is not set 746# CONFIG_HEADERS_CHECK is not set
731# CONFIG_DEBUG_KERNEL is not set 747# CONFIG_DEBUG_KERNEL is not set
732# CONFIG_SLUB_DEBUG_ON is not set 748# CONFIG_SLUB_DEBUG_ON is not set
749# CONFIG_SLUB_STATS is not set
733# CONFIG_SAMPLES is not set 750# CONFIG_SAMPLES is not set
734# CONFIG_PPC_EARLY_DEBUG is not set 751# CONFIG_PPC_EARLY_DEBUG is not set
735 752
@@ -739,6 +756,49 @@ CONFIG_ENABLE_MUST_CHECK=y
739# CONFIG_KEYS is not set 756# CONFIG_KEYS is not set
740# CONFIG_SECURITY is not set 757# CONFIG_SECURITY is not set
741# CONFIG_SECURITY_FILE_CAPABILITIES is not set 758# CONFIG_SECURITY_FILE_CAPABILITIES is not set
742# CONFIG_CRYPTO is not set 759CONFIG_CRYPTO=y
760# CONFIG_CRYPTO_SEQIV is not set
761# CONFIG_CRYPTO_MANAGER is not set
762# CONFIG_CRYPTO_HMAC is not set
763# CONFIG_CRYPTO_XCBC is not set
764# CONFIG_CRYPTO_NULL is not set
765# CONFIG_CRYPTO_MD4 is not set
766# CONFIG_CRYPTO_MD5 is not set
767# CONFIG_CRYPTO_SHA1 is not set
768# CONFIG_CRYPTO_SHA256 is not set
769# CONFIG_CRYPTO_SHA512 is not set
770# CONFIG_CRYPTO_WP512 is not set
771# CONFIG_CRYPTO_TGR192 is not set
772# CONFIG_CRYPTO_GF128MUL is not set
773# CONFIG_CRYPTO_ECB is not set
774# CONFIG_CRYPTO_CBC is not set
775# CONFIG_CRYPTO_PCBC is not set
776# CONFIG_CRYPTO_LRW is not set
777# CONFIG_CRYPTO_XTS is not set
778# CONFIG_CRYPTO_CTR is not set
779# CONFIG_CRYPTO_GCM is not set
780# CONFIG_CRYPTO_CCM is not set
781# CONFIG_CRYPTO_CRYPTD is not set
782# CONFIG_CRYPTO_DES is not set
783# CONFIG_CRYPTO_FCRYPT is not set
784# CONFIG_CRYPTO_BLOWFISH is not set
785# CONFIG_CRYPTO_TWOFISH is not set
786# CONFIG_CRYPTO_SERPENT is not set
787# CONFIG_CRYPTO_AES is not set
788# CONFIG_CRYPTO_CAST5 is not set
789# CONFIG_CRYPTO_CAST6 is not set
790# CONFIG_CRYPTO_TEA is not set
791# CONFIG_CRYPTO_ARC4 is not set
792# CONFIG_CRYPTO_KHAZAD is not set
793# CONFIG_CRYPTO_ANUBIS is not set
794# CONFIG_CRYPTO_SEED is not set
795# CONFIG_CRYPTO_SALSA20 is not set
796# CONFIG_CRYPTO_DEFLATE is not set
797# CONFIG_CRYPTO_MICHAEL_MIC is not set
798# CONFIG_CRYPTO_CRC32C is not set
799# CONFIG_CRYPTO_CAMELLIA is not set
800# CONFIG_CRYPTO_AUTHENC is not set
801# CONFIG_CRYPTO_LZO is not set
802CONFIG_CRYPTO_HW=y
743# CONFIG_PPC_CLOCK is not set 803# CONFIG_PPC_CLOCK is not set
744CONFIG_PPC_LIB_RHEAP=y 804CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 22f8171d6d45..82151b9bba26 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:49:01 2007 4# Mon Mar 24 08:48:35 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -63,15 +64,19 @@ CONFIG_SYSVIPC_SYSCTL=y
63# CONFIG_POSIX_MQUEUE is not set 64# CONFIG_POSIX_MQUEUE is not set
64# CONFIG_BSD_PROCESS_ACCT is not set 65# CONFIG_BSD_PROCESS_ACCT is not set
65# CONFIG_TASKSTATS is not set 66# CONFIG_TASKSTATS is not set
66# CONFIG_USER_NS is not set
67# CONFIG_PID_NS is not set
68# CONFIG_AUDIT is not set 67# CONFIG_AUDIT is not set
69# CONFIG_IKCONFIG is not set 68# CONFIG_IKCONFIG is not set
70CONFIG_LOG_BUF_SHIFT=14 69CONFIG_LOG_BUF_SHIFT=14
71# CONFIG_CGROUPS is not set 70# CONFIG_CGROUPS is not set
71CONFIG_GROUP_SCHED=y
72# CONFIG_FAIR_GROUP_SCHED is not set 72# CONFIG_FAIR_GROUP_SCHED is not set
73# CONFIG_RT_GROUP_SCHED is not set
74CONFIG_USER_SCHED=y
75# CONFIG_CGROUP_SCHED is not set
73CONFIG_SYSFS_DEPRECATED=y 76CONFIG_SYSFS_DEPRECATED=y
77CONFIG_SYSFS_DEPRECATED_V2=y
74# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
75# CONFIG_BLK_DEV_INITRD is not set 80# CONFIG_BLK_DEV_INITRD is not set
76# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
77CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
@@ -84,11 +89,13 @@ CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 89CONFIG_PRINTK=y
85CONFIG_BUG=y 90CONFIG_BUG=y
86# CONFIG_ELF_CORE is not set 91# CONFIG_ELF_CORE is not set
92CONFIG_COMPAT_BRK=y
87# CONFIG_BASE_FULL is not set 93# CONFIG_BASE_FULL is not set
88# CONFIG_FUTEX is not set 94# CONFIG_FUTEX is not set
89CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
90CONFIG_EPOLL=y 96CONFIG_EPOLL=y
91CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
98CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 100CONFIG_SHMEM=y
94# CONFIG_VM_EVENT_COUNTERS is not set 101# CONFIG_VM_EVENT_COUNTERS is not set
@@ -96,6 +103,13 @@ CONFIG_SLUB_DEBUG=y
96# CONFIG_SLAB is not set 103# CONFIG_SLAB is not set
97CONFIG_SLUB=y 104CONFIG_SLUB=y
98# CONFIG_SLOB is not set 105# CONFIG_SLOB is not set
106# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y
111CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y
99# CONFIG_TINY_SHMEM is not set 113# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=1 114CONFIG_BASE_SMALL=1
101# CONFIG_MODULES is not set 115# CONFIG_MODULES is not set
@@ -117,12 +131,13 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
118# CONFIG_DEFAULT_NOOP is not set 132# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 133CONFIG_DEFAULT_IOSCHED="deadline"
134CONFIG_CLASSIC_RCU=y
120 135
121# 136#
122# Platform support 137# Platform support
123# 138#
124# CONFIG_PPC_MPC52xx is not set 139# CONFIG_PPC_MPC512x is not set
125# CONFIG_PPC_MPC5200 is not set 140# CONFIG_PPC_MPC5121 is not set
126# CONFIG_PPC_CELL is not set 141# CONFIG_PPC_CELL is not set
127# CONFIG_PPC_CELL_NATIVE is not set 142# CONFIG_PPC_CELL_NATIVE is not set
128CONFIG_CPM1=y 143CONFIG_CPM1=y
@@ -130,6 +145,7 @@ CONFIG_CPM1=y
130# CONFIG_MPC86XADS is not set 145# CONFIG_MPC86XADS is not set
131CONFIG_MPC885ADS=y 146CONFIG_MPC885ADS=y
132# CONFIG_PPC_EP88XC is not set 147# CONFIG_PPC_EP88XC is not set
148# CONFIG_PPC_ADDER875 is not set
133 149
134# 150#
135# Freescale Ethernet driver platform-specific options 151# Freescale Ethernet driver platform-specific options
@@ -153,6 +169,7 @@ CONFIG_NO_UCODE_PATCH=y
153# CONFIG_I2C_SPI_UCODE_PATCH is not set 169# CONFIG_I2C_SPI_UCODE_PATCH is not set
154# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set 170# CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set
155# CONFIG_PQ2ADS is not set 171# CONFIG_PQ2ADS is not set
172# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 173# CONFIG_MPIC is not set
157# CONFIG_MPIC_WEIRD is not set 174# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 175# CONFIG_PPC_I8259 is not set
@@ -163,7 +180,6 @@ CONFIG_NO_UCODE_PATCH=y
163# CONFIG_PPC_INDIRECT_IO is not set 180# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 181# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 182# CONFIG_CPU_FREQ is not set
166# CONFIG_CPM2 is not set
167CONFIG_PPC_CPM_NEW_BINDING=y 183CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 184# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 185CONFIG_CPM=y
@@ -181,6 +197,7 @@ CONFIG_HZ_100=y
181# CONFIG_HZ_300 is not set 197# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 198# CONFIG_HZ_1000 is not set
183CONFIG_HZ=100 199CONFIG_HZ=100
200# CONFIG_SCHED_HRTICK is not set
184CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -188,7 +205,10 @@ CONFIG_BINFMT_ELF=y
188# CONFIG_BINFMT_MISC is not set 205# CONFIG_BINFMT_MISC is not set
189# CONFIG_MATH_EMULATION is not set 206# CONFIG_MATH_EMULATION is not set
190CONFIG_8XX_MINIMAL_FPEMU=y 207CONFIG_8XX_MINIMAL_FPEMU=y
208# CONFIG_IOMMU_HELPER is not set
191CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
192CONFIG_ARCH_FLATMEM_ENABLE=y 212CONFIG_ARCH_FLATMEM_ENABLE=y
193CONFIG_ARCH_POPULATES_NODE_MAP=y 213CONFIG_ARCH_POPULATES_NODE_MAP=y
194CONFIG_SELECT_MEMORY_MODEL=y 214CONFIG_SELECT_MEMORY_MODEL=y
@@ -207,11 +227,7 @@ CONFIG_VIRT_TO_BUS=y
207CONFIG_PROC_DEVICETREE=y 227CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
209# CONFIG_PM is not set 229# CONFIG_PM is not set
210CONFIG_SUSPEND_UP_POSSIBLE=y
211CONFIG_HIBERNATION_UP_POSSIBLE=y
212# CONFIG_SECCOMP is not set 230# CONFIG_SECCOMP is not set
213CONFIG_WANT_DEVICE_TREE=y
214CONFIG_DEVICE_TREE="mpc885ads.dts"
215CONFIG_ISA_DMA_API=y 231CONFIG_ISA_DMA_API=y
216 232
217# 233#
@@ -308,6 +324,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# 324#
309# CONFIG_NET_PKTGEN is not set 325# CONFIG_NET_PKTGEN is not set
310# CONFIG_HAMRADIO is not set 326# CONFIG_HAMRADIO is not set
327# CONFIG_CAN is not set
311# CONFIG_IRDA is not set 328# CONFIG_IRDA is not set
312# CONFIG_BT is not set 329# CONFIG_BT is not set
313# CONFIG_AF_RXRPC is not set 330# CONFIG_AF_RXRPC is not set
@@ -418,6 +435,7 @@ CONFIG_OF_DEVICE=y
418# CONFIG_PARPORT is not set 435# CONFIG_PARPORT is not set
419# CONFIG_BLK_DEV is not set 436# CONFIG_BLK_DEV is not set
420# CONFIG_MISC_DEVICES is not set 437# CONFIG_MISC_DEVICES is not set
438CONFIG_HAVE_IDE=y
421# CONFIG_IDE is not set 439# CONFIG_IDE is not set
422 440
423# 441#
@@ -452,6 +470,7 @@ CONFIG_DAVICOM_PHY=y
452# CONFIG_SMSC_PHY is not set 470# CONFIG_SMSC_PHY is not set
453# CONFIG_BROADCOM_PHY is not set 471# CONFIG_BROADCOM_PHY is not set
454# CONFIG_ICPLUS_PHY is not set 472# CONFIG_ICPLUS_PHY is not set
473# CONFIG_REALTEK_PHY is not set
455# CONFIG_FIXED_PHY is not set 474# CONFIG_FIXED_PHY is not set
456# CONFIG_MDIO_BITBANG is not set 475# CONFIG_MDIO_BITBANG is not set
457CONFIG_NET_ETHERNET=y 476CONFIG_NET_ETHERNET=y
@@ -476,7 +495,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
476# CONFIG_WAN is not set 495# CONFIG_WAN is not set
477# CONFIG_PPP is not set 496# CONFIG_PPP is not set
478# CONFIG_SLIP is not set 497# CONFIG_SLIP is not set
479# CONFIG_SHAPER is not set
480# CONFIG_NETCONSOLE is not set 498# CONFIG_NETCONSOLE is not set
481# CONFIG_NETPOLL is not set 499# CONFIG_NETPOLL is not set
482# CONFIG_NET_POLL_CONTROLLER is not set 500# CONFIG_NET_POLL_CONTROLLER is not set
@@ -539,6 +557,7 @@ CONFIG_GEN_RTC=y
539# CONFIG_W1 is not set 557# CONFIG_W1 is not set
540# CONFIG_POWER_SUPPLY is not set 558# CONFIG_POWER_SUPPLY is not set
541# CONFIG_HWMON is not set 559# CONFIG_HWMON is not set
560# CONFIG_THERMAL is not set
542# CONFIG_WATCHDOG is not set 561# CONFIG_WATCHDOG is not set
543 562
544# 563#
@@ -578,9 +597,11 @@ CONFIG_DAB=y
578# CONFIG_SOUND is not set 597# CONFIG_SOUND is not set
579# CONFIG_USB_SUPPORT is not set 598# CONFIG_USB_SUPPORT is not set
580# CONFIG_MMC is not set 599# CONFIG_MMC is not set
600# CONFIG_MEMSTICK is not set
581# CONFIG_NEW_LEDS is not set 601# CONFIG_NEW_LEDS is not set
582# CONFIG_EDAC is not set 602# CONFIG_EDAC is not set
583# CONFIG_RTC_CLASS is not set 603# CONFIG_RTC_CLASS is not set
604# CONFIG_DMADEVICES is not set
584 605
585# 606#
586# Userspace I/O 607# Userspace I/O
@@ -599,11 +620,9 @@ CONFIG_DAB=y
599# CONFIG_XFS_FS is not set 620# CONFIG_XFS_FS is not set
600# CONFIG_GFS2_FS is not set 621# CONFIG_GFS2_FS is not set
601# CONFIG_OCFS2_FS is not set 622# CONFIG_OCFS2_FS is not set
602# CONFIG_MINIX_FS is not set 623# CONFIG_DNOTIFY is not set
603# CONFIG_ROMFS_FS is not set
604# CONFIG_INOTIFY is not set 624# CONFIG_INOTIFY is not set
605# CONFIG_QUOTA is not set 625# CONFIG_QUOTA is not set
606# CONFIG_DNOTIFY is not set
607# CONFIG_AUTOFS_FS is not set 626# CONFIG_AUTOFS_FS is not set
608# CONFIG_AUTOFS4_FS is not set 627# CONFIG_AUTOFS4_FS is not set
609# CONFIG_FUSE_FS is not set 628# CONFIG_FUSE_FS is not set
@@ -646,8 +665,10 @@ CONFIG_TMPFS=y
646# CONFIG_JFFS2_FS is not set 665# CONFIG_JFFS2_FS is not set
647CONFIG_CRAMFS=y 666CONFIG_CRAMFS=y
648# CONFIG_VXFS_FS is not set 667# CONFIG_VXFS_FS is not set
668# CONFIG_MINIX_FS is not set
649# CONFIG_HPFS_FS is not set 669# CONFIG_HPFS_FS is not set
650# CONFIG_QNX4FS_FS is not set 670# CONFIG_QNX4FS_FS is not set
671# CONFIG_ROMFS_FS is not set
651# CONFIG_SYSV_FS is not set 672# CONFIG_SYSV_FS is not set
652# CONFIG_UFS_FS is not set 673# CONFIG_UFS_FS is not set
653CONFIG_NETWORK_FILESYSTEMS=y 674CONFIG_NETWORK_FILESYSTEMS=y
@@ -694,7 +715,6 @@ CONFIG_MSDOS_PARTITION=y
694# CONFIG_SYSV68_PARTITION is not set 715# CONFIG_SYSV68_PARTITION is not set
695# CONFIG_NLS is not set 716# CONFIG_NLS is not set
696# CONFIG_DLM is not set 717# CONFIG_DLM is not set
697# CONFIG_UCC_SLOW is not set
698 718
699# 719#
700# Library routines 720# Library routines
@@ -709,7 +729,6 @@ CONFIG_ZLIB_INFLATE=y
709CONFIG_HAS_IOMEM=y 729CONFIG_HAS_IOMEM=y
710CONFIG_HAS_IOPORT=y 730CONFIG_HAS_IOPORT=y
711CONFIG_HAS_DMA=y 731CONFIG_HAS_DMA=y
712# CONFIG_INSTRUMENTATION is not set
713 732
714# 733#
715# Kernel hacking 734# Kernel hacking
@@ -728,6 +747,7 @@ CONFIG_SCHED_DEBUG=y
728# CONFIG_SCHEDSTATS is not set 747# CONFIG_SCHEDSTATS is not set
729# CONFIG_TIMER_STATS is not set 748# CONFIG_TIMER_STATS is not set
730# CONFIG_SLUB_DEBUG_ON is not set 749# CONFIG_SLUB_DEBUG_ON is not set
750# CONFIG_SLUB_STATS is not set
731# CONFIG_DEBUG_SPINLOCK is not set 751# CONFIG_DEBUG_SPINLOCK is not set
732# CONFIG_DEBUG_MUTEXES is not set 752# CONFIG_DEBUG_MUTEXES is not set
733# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 753# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
@@ -738,8 +758,8 @@ CONFIG_DEBUG_INFO=y
738# CONFIG_DEBUG_VM is not set 758# CONFIG_DEBUG_VM is not set
739# CONFIG_DEBUG_LIST is not set 759# CONFIG_DEBUG_LIST is not set
740# CONFIG_DEBUG_SG is not set 760# CONFIG_DEBUG_SG is not set
741CONFIG_FORCED_INLINING=y
742# CONFIG_BOOT_PRINTK_DELAY is not set 761# CONFIG_BOOT_PRINTK_DELAY is not set
762# CONFIG_BACKTRACE_SELF_TEST is not set
743# CONFIG_FAULT_INJECTION is not set 763# CONFIG_FAULT_INJECTION is not set
744# CONFIG_SAMPLES is not set 764# CONFIG_SAMPLES is not set
745# CONFIG_DEBUG_STACKOVERFLOW is not set 765# CONFIG_DEBUG_STACKOVERFLOW is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 797f0dfebde2..09f306248f2e 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc6
4# Tue Jan 15 10:26:10 2008 4# Tue Mar 25 10:25:48 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 33CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=17 73CONFIG_LOG_BUF_SHIFT=17
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
76CONFIG_FAIR_GROUP_SCHED=y 75# CONFIG_GROUP_SCHED is not set
77CONFIG_FAIR_USER_SCHED=y
78# CONFIG_FAIR_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 76CONFIG_SYSFS_DEPRECATED=y
77CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79CONFIG_NAMESPACES=y
80# CONFIG_UTS_NS is not set
81# CONFIG_IPC_NS is not set
82# CONFIG_USER_NS is not set
83# CONFIG_PID_NS is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +94,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
92CONFIG_BUG=y 95CONFIG_BUG=y
93CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 99CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 101CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 105CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +108,15 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
104CONFIG_SLUB=y 109CONFIG_SLUB=y
105# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111CONFIG_PROFILING=y
112# CONFIG_MARKERS is not set
113CONFIG_OPROFILE=y
114CONFIG_HAVE_OPROFILE=y
115# CONFIG_KPROBES is not set
116CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y
118CONFIG_PROC_PAGE_MONITOR=y
119CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
@@ -130,6 +144,7 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 144# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y
133 148
134# 149#
135# Platform support 150# Platform support
@@ -140,8 +155,8 @@ CONFIG_PPC_MULTIPLATFORM=y
140# CONFIG_PPC_86xx is not set 155# CONFIG_PPC_86xx is not set
141# CONFIG_PPC_PSERIES is not set 156# CONFIG_PPC_PSERIES is not set
142# CONFIG_PPC_ISERIES is not set 157# CONFIG_PPC_ISERIES is not set
143# CONFIG_PPC_MPC52xx is not set 158# CONFIG_PPC_MPC512x is not set
144# CONFIG_PPC_MPC5200 is not set 159# CONFIG_PPC_MPC5121 is not set
145# CONFIG_PPC_PMAC is not set 160# CONFIG_PPC_PMAC is not set
146# CONFIG_PPC_MAPLE is not set 161# CONFIG_PPC_MAPLE is not set
147CONFIG_PPC_PASEMI=y 162CONFIG_PPC_PASEMI=y
@@ -159,6 +174,7 @@ CONFIG_PPC_PASEMI_MDIO=y
159# CONFIG_PPC_IBM_CELL_BLADE is not set 174# CONFIG_PPC_IBM_CELL_BLADE is not set
160# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
161CONFIG_PPC_NATIVE=y 176CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set
162CONFIG_MPIC=y 178CONFIG_MPIC=y
163# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
164# CONFIG_PPC_I8259 is not set 180# CONFIG_PPC_I8259 is not set
@@ -189,7 +205,6 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y
189# CPU Frequency drivers 205# CPU Frequency drivers
190# 206#
191CONFIG_PPC_PASEMI_CPUFREQ=y 207CONFIG_PPC_PASEMI_CPUFREQ=y
192# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
194 209
195# 210#
@@ -204,16 +219,20 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
204# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
205CONFIG_HZ_1000=y 220CONFIG_HZ_1000=y
206CONFIG_HZ=1000 221CONFIG_HZ=1000
222# CONFIG_SCHED_HRTICK is not set
207CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
210# CONFIG_PREEMPT_BKL is not set
211CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227CONFIG_COMPAT_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
213CONFIG_FORCE_MAX_ZONEORDER=9 229CONFIG_FORCE_MAX_ZONEORDER=9
214CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 230CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
215CONFIG_IOMMU_VMERGE=y 231CONFIG_IOMMU_VMERGE=y
232CONFIG_IOMMU_HELPER=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
234CONFIG_ARCH_HAS_WALK_MEMORY=y
235CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
217# CONFIG_KEXEC is not set 236# CONFIG_KEXEC is not set
218# CONFIG_CRASH_DUMP is not set 237# CONFIG_CRASH_DUMP is not set
219# CONFIG_IRQ_ALL_CPUS is not set 238# CONFIG_IRQ_ALL_CPUS is not set
@@ -236,12 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
237CONFIG_PPC_HAS_HASH_64K=y 256CONFIG_PPC_HAS_HASH_64K=y
238CONFIG_PPC_64K_PAGES=y 257CONFIG_PPC_64K_PAGES=y
258# CONFIG_PPC_SUBPAGE_PROT is not set
239# CONFIG_SCHED_SMT is not set 259# CONFIG_SCHED_SMT is not set
240CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
242# CONFIG_PM is not set 262# CONFIG_PM is not set
243# CONFIG_SECCOMP is not set 263# CONFIG_SECCOMP is not set
244# CONFIG_WANT_DEVICE_TREE is not set
245CONFIG_ISA_DMA_API=y 264CONFIG_ISA_DMA_API=y
246 265
247# 266#
@@ -290,6 +309,7 @@ CONFIG_XFRM=y
290CONFIG_XFRM_USER=y 309CONFIG_XFRM_USER=y
291# CONFIG_XFRM_SUB_POLICY is not set 310# CONFIG_XFRM_SUB_POLICY is not set
292# CONFIG_XFRM_MIGRATE is not set 311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_XFRM_STATISTICS is not set
293CONFIG_NET_KEY=y 313CONFIG_NET_KEY=y
294# CONFIG_NET_KEY_MIGRATE is not set 314# CONFIG_NET_KEY_MIGRATE is not set
295CONFIG_INET=y 315CONFIG_INET=y
@@ -346,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
346# 366#
347# CONFIG_NET_PKTGEN is not set 367# CONFIG_NET_PKTGEN is not set
348# CONFIG_HAMRADIO is not set 368# CONFIG_HAMRADIO is not set
369# CONFIG_CAN is not set
349# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
350# CONFIG_BT is not set 371# CONFIG_BT is not set
351# CONFIG_AF_RXRPC is not set 372# CONFIG_AF_RXRPC is not set
@@ -441,8 +462,10 @@ CONFIG_MTD_NAND=y
441CONFIG_MTD_NAND_IDS=y 462CONFIG_MTD_NAND_IDS=y
442# CONFIG_MTD_NAND_DISKONCHIP is not set 463# CONFIG_MTD_NAND_DISKONCHIP is not set
443# CONFIG_MTD_NAND_CAFE is not set 464# CONFIG_MTD_NAND_CAFE is not set
465CONFIG_MTD_NAND_PASEMI=y
444# CONFIG_MTD_NAND_PLATFORM is not set 466# CONFIG_MTD_NAND_PLATFORM is not set
445# CONFIG_MTD_ALAUDA is not set 467# CONFIG_MTD_ALAUDA is not set
468# CONFIG_MTD_NAND_FSL_ELBC is not set
446# CONFIG_MTD_ONENAND is not set 469# CONFIG_MTD_ONENAND is not set
447 470
448# 471#
@@ -465,7 +488,7 @@ CONFIG_BLK_DEV_LOOP=y
465CONFIG_BLK_DEV_RAM=y 488CONFIG_BLK_DEV_RAM=y
466CONFIG_BLK_DEV_RAM_COUNT=16 489CONFIG_BLK_DEV_RAM_COUNT=16
467CONFIG_BLK_DEV_RAM_SIZE=16384 490CONFIG_BLK_DEV_RAM_SIZE=16384
468CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 491# CONFIG_BLK_DEV_XIP is not set
469# CONFIG_CDROM_PKTCDVD is not set 492# CONFIG_CDROM_PKTCDVD is not set
470# CONFIG_ATA_OVER_ETH is not set 493# CONFIG_ATA_OVER_ETH is not set
471CONFIG_MISC_DEVICES=y 494CONFIG_MISC_DEVICES=y
@@ -473,11 +496,13 @@ CONFIG_MISC_DEVICES=y
473# CONFIG_EEPROM_93CX6 is not set 496# CONFIG_EEPROM_93CX6 is not set
474# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
475# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
499# CONFIG_ENCLOSURE_SERVICES is not set
500CONFIG_HAVE_IDE=y
476CONFIG_IDE=y 501CONFIG_IDE=y
477CONFIG_BLK_DEV_IDE=y 502CONFIG_BLK_DEV_IDE=y
478 503
479# 504#
480# Please see Documentation/ide.txt for help/info on IDE drives 505# Please see Documentation/ide/ide.txt for help/info on IDE drives
481# 506#
482# CONFIG_BLK_DEV_IDE_SATA is not set 507# CONFIG_BLK_DEV_IDE_SATA is not set
483CONFIG_BLK_DEV_IDEDISK=y 508CONFIG_BLK_DEV_IDEDISK=y
@@ -485,6 +510,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
485# CONFIG_BLK_DEV_IDECS is not set 510# CONFIG_BLK_DEV_IDECS is not set
486# CONFIG_BLK_DEV_DELKIN is not set 511# CONFIG_BLK_DEV_DELKIN is not set
487CONFIG_BLK_DEV_IDECD=y 512CONFIG_BLK_DEV_IDECD=y
513CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
488# CONFIG_BLK_DEV_IDETAPE is not set 514# CONFIG_BLK_DEV_IDETAPE is not set
489# CONFIG_BLK_DEV_IDEFLOPPY is not set 515# CONFIG_BLK_DEV_IDEFLOPPY is not set
490CONFIG_BLK_DEV_IDESCSI=y 516CONFIG_BLK_DEV_IDESCSI=y
@@ -500,7 +526,6 @@ CONFIG_IDE_PROC_FS=y
500# 526#
501# PCI IDE chipsets support 527# PCI IDE chipsets support
502# 528#
503# CONFIG_IDEPCI_PCIBUS_ORDER is not set
504# CONFIG_BLK_DEV_GENERIC is not set 529# CONFIG_BLK_DEV_GENERIC is not set
505# CONFIG_BLK_DEV_OPTI621 is not set 530# CONFIG_BLK_DEV_OPTI621 is not set
506# CONFIG_BLK_DEV_AEC62XX is not set 531# CONFIG_BLK_DEV_AEC62XX is not set
@@ -528,7 +553,6 @@ CONFIG_IDE_PROC_FS=y
528# CONFIG_BLK_DEV_TRM290 is not set 553# CONFIG_BLK_DEV_TRM290 is not set
529# CONFIG_BLK_DEV_VIA82CXXX is not set 554# CONFIG_BLK_DEV_VIA82CXXX is not set
530# CONFIG_BLK_DEV_TC86C001 is not set 555# CONFIG_BLK_DEV_TC86C001 is not set
531# CONFIG_IDE_ARM is not set
532# CONFIG_BLK_DEV_IDEDMA is not set 556# CONFIG_BLK_DEV_IDEDMA is not set
533CONFIG_IDE_ARCH_OBSOLETE_INIT=y 557CONFIG_IDE_ARCH_OBSOLETE_INIT=y
534# CONFIG_BLK_DEV_HD is not set 558# CONFIG_BLK_DEV_HD is not set
@@ -593,6 +617,7 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_SCSI_IPS is not set 617# CONFIG_SCSI_IPS is not set
594# CONFIG_SCSI_INITIO is not set 618# CONFIG_SCSI_INITIO is not set
595# CONFIG_SCSI_INIA100 is not set 619# CONFIG_SCSI_INIA100 is not set
620# CONFIG_SCSI_MVSAS is not set
596# CONFIG_SCSI_STEX is not set 621# CONFIG_SCSI_STEX is not set
597# CONFIG_SCSI_SYM53C8XX_2 is not set 622# CONFIG_SCSI_SYM53C8XX_2 is not set
598# CONFIG_SCSI_IPR is not set 623# CONFIG_SCSI_IPR is not set
@@ -646,6 +671,7 @@ CONFIG_ATA_GENERIC=y
646# CONFIG_PATA_MPIIX is not set 671# CONFIG_PATA_MPIIX is not set
647# CONFIG_PATA_OLDPIIX is not set 672# CONFIG_PATA_OLDPIIX is not set
648# CONFIG_PATA_NETCELL is not set 673# CONFIG_PATA_NETCELL is not set
674# CONFIG_PATA_NINJA32 is not set
649# CONFIG_PATA_NS87410 is not set 675# CONFIG_PATA_NS87410 is not set
650# CONFIG_PATA_NS87415 is not set 676# CONFIG_PATA_NS87415 is not set
651# CONFIG_PATA_OPTI is not set 677# CONFIG_PATA_OPTI is not set
@@ -699,7 +725,6 @@ CONFIG_DUMMY=y
699# CONFIG_EQUALIZER is not set 725# CONFIG_EQUALIZER is not set
700# CONFIG_TUN is not set 726# CONFIG_TUN is not set
701# CONFIG_VETH is not set 727# CONFIG_VETH is not set
702# CONFIG_IP1000 is not set
703# CONFIG_ARCNET is not set 728# CONFIG_ARCNET is not set
704CONFIG_PHYLIB=y 729CONFIG_PHYLIB=y
705 730
@@ -715,6 +740,7 @@ CONFIG_MARVELL_PHY=y
715# CONFIG_SMSC_PHY is not set 740# CONFIG_SMSC_PHY is not set
716# CONFIG_BROADCOM_PHY is not set 741# CONFIG_BROADCOM_PHY is not set
717# CONFIG_ICPLUS_PHY is not set 742# CONFIG_ICPLUS_PHY is not set
743# CONFIG_REALTEK_PHY is not set
718# CONFIG_FIXED_PHY is not set 744# CONFIG_FIXED_PHY is not set
719# CONFIG_MDIO_BITBANG is not set 745# CONFIG_MDIO_BITBANG is not set
720CONFIG_NET_ETHERNET=y 746CONFIG_NET_ETHERNET=y
@@ -742,6 +768,7 @@ CONFIG_NET_PCI=y
742# CONFIG_NE2K_PCI is not set 768# CONFIG_NE2K_PCI is not set
743# CONFIG_8139CP is not set 769# CONFIG_8139CP is not set
744# CONFIG_8139TOO is not set 770# CONFIG_8139TOO is not set
771# CONFIG_R6040 is not set
745# CONFIG_SIS900 is not set 772# CONFIG_SIS900 is not set
746# CONFIG_EPIC100 is not set 773# CONFIG_EPIC100 is not set
747# CONFIG_SUNDANCE is not set 774# CONFIG_SUNDANCE is not set
@@ -754,6 +781,9 @@ CONFIG_E1000=y
754CONFIG_E1000_NAPI=y 781CONFIG_E1000_NAPI=y
755# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 782# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
756# CONFIG_E1000E is not set 783# CONFIG_E1000E is not set
784# CONFIG_E1000E_ENABLED is not set
785# CONFIG_IP1000 is not set
786# CONFIG_IGB is not set
757# CONFIG_NS83820 is not set 787# CONFIG_NS83820 is not set
758# CONFIG_HAMACHI is not set 788# CONFIG_HAMACHI is not set
759# CONFIG_YELLOWFIN is not set 789# CONFIG_YELLOWFIN is not set
@@ -779,6 +809,7 @@ CONFIG_NETDEV_10000=y
779CONFIG_PASEMI_MAC=y 809CONFIG_PASEMI_MAC=y
780# CONFIG_MLX4_CORE is not set 810# CONFIG_MLX4_CORE is not set
781# CONFIG_TEHUTI is not set 811# CONFIG_TEHUTI is not set
812# CONFIG_BNX2X is not set
782# CONFIG_TR is not set 813# CONFIG_TR is not set
783 814
784# 815#
@@ -802,7 +833,6 @@ CONFIG_PASEMI_MAC=y
802# CONFIG_PPP is not set 833# CONFIG_PPP is not set
803# CONFIG_SLIP is not set 834# CONFIG_SLIP is not set
804# CONFIG_NET_FC is not set 835# CONFIG_NET_FC is not set
805# CONFIG_SHAPER is not set
806# CONFIG_NETCONSOLE is not set 836# CONFIG_NETCONSOLE is not set
807# CONFIG_NETPOLL is not set 837# CONFIG_NETPOLL is not set
808# CONFIG_NET_POLL_CONTROLLER is not set 838# CONFIG_NET_POLL_CONTROLLER is not set
@@ -861,6 +891,7 @@ CONFIG_VT_CONSOLE=y
861CONFIG_HW_CONSOLE=y 891CONFIG_HW_CONSOLE=y
862# CONFIG_VT_HW_CONSOLE_BINDING is not set 892# CONFIG_VT_HW_CONSOLE_BINDING is not set
863# CONFIG_SERIAL_NONSTANDARD is not set 893# CONFIG_SERIAL_NONSTANDARD is not set
894# CONFIG_NOZOMI is not set
864 895
865# 896#
866# Serial drivers 897# Serial drivers
@@ -886,8 +917,7 @@ CONFIG_LEGACY_PTY_COUNT=4
886# CONFIG_IPMI_HANDLER is not set 917# CONFIG_IPMI_HANDLER is not set
887CONFIG_HW_RANDOM=y 918CONFIG_HW_RANDOM=y
888CONFIG_HW_RANDOM_PASEMI=y 919CONFIG_HW_RANDOM_PASEMI=y
889CONFIG_GEN_RTC=y 920# CONFIG_GEN_RTC is not set
890CONFIG_GEN_RTC_X=y
891# CONFIG_R3964 is not set 921# CONFIG_R3964 is not set
892# CONFIG_APPLICOM is not set 922# CONFIG_APPLICOM is not set
893 923
@@ -897,6 +927,7 @@ CONFIG_GEN_RTC_X=y
897# CONFIG_SYNCLINK_CS is not set 927# CONFIG_SYNCLINK_CS is not set
898# CONFIG_CARDMAN_4000 is not set 928# CONFIG_CARDMAN_4000 is not set
899# CONFIG_CARDMAN_4040 is not set 929# CONFIG_CARDMAN_4040 is not set
930# CONFIG_IPWIRELESS is not set
900CONFIG_RAW_DRIVER=y 931CONFIG_RAW_DRIVER=y
901CONFIG_MAX_RAW_DEVS=256 932CONFIG_MAX_RAW_DEVS=256
902# CONFIG_HANGCHECK_TIMER is not set 933# CONFIG_HANGCHECK_TIMER is not set
@@ -944,13 +975,12 @@ CONFIG_I2C_PASEMI=y
944# 975#
945# Miscellaneous I2C Chip support 976# Miscellaneous I2C Chip support
946# 977#
947# CONFIG_SENSORS_DS1337 is not set
948# CONFIG_SENSORS_DS1374 is not set
949# CONFIG_DS1682 is not set 978# CONFIG_DS1682 is not set
950CONFIG_SENSORS_EEPROM=y 979CONFIG_SENSORS_EEPROM=y
951# CONFIG_SENSORS_PCF8574 is not set 980# CONFIG_SENSORS_PCF8574 is not set
952# CONFIG_SENSORS_PCA9539 is not set 981# CONFIG_PCF8575 is not set
953# CONFIG_SENSORS_PCF8591 is not set 982# CONFIG_SENSORS_PCF8591 is not set
983# CONFIG_TPS65010 is not set
954# CONFIG_SENSORS_MAX6875 is not set 984# CONFIG_SENSORS_MAX6875 is not set
955# CONFIG_SENSORS_TSL2550 is not set 985# CONFIG_SENSORS_TSL2550 is not set
956# CONFIG_I2C_DEBUG_CORE is not set 986# CONFIG_I2C_DEBUG_CORE is not set
@@ -975,6 +1005,7 @@ CONFIG_HWMON_VID=y
975# CONFIG_SENSORS_ADM1031 is not set 1005# CONFIG_SENSORS_ADM1031 is not set
976# CONFIG_SENSORS_ADM9240 is not set 1006# CONFIG_SENSORS_ADM9240 is not set
977# CONFIG_SENSORS_ADT7470 is not set 1007# CONFIG_SENSORS_ADT7470 is not set
1008# CONFIG_SENSORS_ADT7473 is not set
978# CONFIG_SENSORS_ATXP1 is not set 1009# CONFIG_SENSORS_ATXP1 is not set
979# CONFIG_SENSORS_DS1621 is not set 1010# CONFIG_SENSORS_DS1621 is not set
980# CONFIG_SENSORS_I5K_AMB is not set 1011# CONFIG_SENSORS_I5K_AMB is not set
@@ -1004,6 +1035,7 @@ CONFIG_SENSORS_LM90=y
1004# CONFIG_SENSORS_SMSC47M1 is not set 1035# CONFIG_SENSORS_SMSC47M1 is not set
1005# CONFIG_SENSORS_SMSC47M192 is not set 1036# CONFIG_SENSORS_SMSC47M192 is not set
1006# CONFIG_SENSORS_SMSC47B397 is not set 1037# CONFIG_SENSORS_SMSC47B397 is not set
1038# CONFIG_SENSORS_ADS7828 is not set
1007# CONFIG_SENSORS_THMC50 is not set 1039# CONFIG_SENSORS_THMC50 is not set
1008# CONFIG_SENSORS_VIA686A is not set 1040# CONFIG_SENSORS_VIA686A is not set
1009# CONFIG_SENSORS_VT1211 is not set 1041# CONFIG_SENSORS_VT1211 is not set
@@ -1013,9 +1045,11 @@ CONFIG_SENSORS_LM90=y
1013# CONFIG_SENSORS_W83792D is not set 1045# CONFIG_SENSORS_W83792D is not set
1014# CONFIG_SENSORS_W83793 is not set 1046# CONFIG_SENSORS_W83793 is not set
1015# CONFIG_SENSORS_W83L785TS is not set 1047# CONFIG_SENSORS_W83L785TS is not set
1048# CONFIG_SENSORS_W83L786NG is not set
1016# CONFIG_SENSORS_W83627HF is not set 1049# CONFIG_SENSORS_W83627HF is not set
1017# CONFIG_SENSORS_W83627EHF is not set 1050# CONFIG_SENSORS_W83627EHF is not set
1018# CONFIG_HWMON_DEBUG_CHIP is not set 1051# CONFIG_HWMON_DEBUG_CHIP is not set
1052# CONFIG_THERMAL is not set
1019# CONFIG_WATCHDOG is not set 1053# CONFIG_WATCHDOG is not set
1020 1054
1021# 1055#
@@ -1183,6 +1217,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1183# CONFIG_SND_BT87X is not set 1217# CONFIG_SND_BT87X is not set
1184# CONFIG_SND_CA0106 is not set 1218# CONFIG_SND_CA0106 is not set
1185# CONFIG_SND_CMIPCI is not set 1219# CONFIG_SND_CMIPCI is not set
1220# CONFIG_SND_OXYGEN is not set
1186# CONFIG_SND_CS4281 is not set 1221# CONFIG_SND_CS4281 is not set
1187# CONFIG_SND_CS46XX is not set 1222# CONFIG_SND_CS46XX is not set
1188# CONFIG_SND_CS5530 is not set 1223# CONFIG_SND_CS5530 is not set
@@ -1208,6 +1243,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1208# CONFIG_SND_HDA_INTEL is not set 1243# CONFIG_SND_HDA_INTEL is not set
1209# CONFIG_SND_HDSP is not set 1244# CONFIG_SND_HDSP is not set
1210# CONFIG_SND_HDSPM is not set 1245# CONFIG_SND_HDSPM is not set
1246# CONFIG_SND_HIFIER is not set
1211# CONFIG_SND_ICE1712 is not set 1247# CONFIG_SND_ICE1712 is not set
1212# CONFIG_SND_ICE1724 is not set 1248# CONFIG_SND_ICE1724 is not set
1213# CONFIG_SND_INTEL8X0 is not set 1249# CONFIG_SND_INTEL8X0 is not set
@@ -1225,6 +1261,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1225# CONFIG_SND_TRIDENT is not set 1261# CONFIG_SND_TRIDENT is not set
1226# CONFIG_SND_VIA82XX is not set 1262# CONFIG_SND_VIA82XX is not set
1227# CONFIG_SND_VIA82XX_MODEM is not set 1263# CONFIG_SND_VIA82XX_MODEM is not set
1264# CONFIG_SND_VIRTUOSO is not set
1228# CONFIG_SND_VX222 is not set 1265# CONFIG_SND_VX222 is not set
1229# CONFIG_SND_YMFPCI is not set 1266# CONFIG_SND_YMFPCI is not set
1230 1267
@@ -1259,6 +1296,10 @@ CONFIG_SND_USB_USX2Y=y
1259# 1296#
1260 1297
1261# 1298#
1299# ALSA SoC audio for Freescale SOCs
1300#
1301
1302#
1262# Open Sound System 1303# Open Sound System
1263# 1304#
1264# CONFIG_SOUND_PRIME is not set 1305# CONFIG_SOUND_PRIME is not set
@@ -1280,6 +1321,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1280CONFIG_USB_ARCH_HAS_EHCI=y 1321CONFIG_USB_ARCH_HAS_EHCI=y
1281CONFIG_USB=y 1322CONFIG_USB=y
1282# CONFIG_USB_DEBUG is not set 1323# CONFIG_USB_DEBUG is not set
1324# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1283 1325
1284# 1326#
1285# Miscellaneous USB options 1327# Miscellaneous USB options
@@ -1293,17 +1335,14 @@ CONFIG_USB_DEVICEFS=y
1293# USB Host Controller Drivers 1335# USB Host Controller Drivers
1294# 1336#
1295CONFIG_USB_EHCI_HCD=y 1337CONFIG_USB_EHCI_HCD=y
1296# CONFIG_USB_EHCI_SPLIT_ISO is not set
1297# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1338# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1298# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1339# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1340CONFIG_USB_EHCI_HCD_PPC_OF=y
1299# CONFIG_USB_ISP116X_HCD is not set 1341# CONFIG_USB_ISP116X_HCD is not set
1300CONFIG_USB_OHCI_HCD=y 1342CONFIG_USB_OHCI_HCD=y
1301CONFIG_USB_OHCI_HCD_PPC_OF=y 1343# CONFIG_USB_OHCI_HCD_PPC_OF is not set
1302CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1344# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1303# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 1345# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1304CONFIG_USB_OHCI_HCD_PCI=y
1305CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1306CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1307CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1346CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1308CONFIG_USB_UHCI_HCD=y 1347CONFIG_USB_UHCI_HCD=y
1309CONFIG_USB_SL811_HCD=y 1348CONFIG_USB_SL811_HCD=y
@@ -1348,10 +1387,6 @@ CONFIG_USB_LIBUSUAL=y
1348# 1387#
1349# USB port drivers 1388# USB port drivers
1350# 1389#
1351
1352#
1353# USB Serial Converter support
1354#
1355# CONFIG_USB_SERIAL is not set 1390# CONFIG_USB_SERIAL is not set
1356 1391
1357# 1392#
@@ -1377,16 +1412,9 @@ CONFIG_USB_LIBUSUAL=y
1377# CONFIG_USB_TRANCEVIBRATOR is not set 1412# CONFIG_USB_TRANCEVIBRATOR is not set
1378# CONFIG_USB_IOWARRIOR is not set 1413# CONFIG_USB_IOWARRIOR is not set
1379# CONFIG_USB_TEST is not set 1414# CONFIG_USB_TEST is not set
1380
1381#
1382# USB DSL modem support
1383#
1384
1385#
1386# USB Gadget Support
1387#
1388# CONFIG_USB_GADGET is not set 1415# CONFIG_USB_GADGET is not set
1389# CONFIG_MMC is not set 1416# CONFIG_MMC is not set
1417# CONFIG_MEMSTICK is not set
1390# CONFIG_NEW_LEDS is not set 1418# CONFIG_NEW_LEDS is not set
1391# CONFIG_INFINIBAND is not set 1419# CONFIG_INFINIBAND is not set
1392CONFIG_EDAC=y 1420CONFIG_EDAC=y
@@ -1425,6 +1453,7 @@ CONFIG_RTC_DRV_DS1307=y
1425# CONFIG_RTC_DRV_PCF8563 is not set 1453# CONFIG_RTC_DRV_PCF8563 is not set
1426# CONFIG_RTC_DRV_PCF8583 is not set 1454# CONFIG_RTC_DRV_PCF8583 is not set
1427# CONFIG_RTC_DRV_M41T80 is not set 1455# CONFIG_RTC_DRV_M41T80 is not set
1456# CONFIG_RTC_DRV_S35390A is not set
1428 1457
1429# 1458#
1430# SPI RTC drivers 1459# SPI RTC drivers
@@ -1434,9 +1463,10 @@ CONFIG_RTC_DRV_DS1307=y
1434# Platform RTC drivers 1463# Platform RTC drivers
1435# 1464#
1436# CONFIG_RTC_DRV_CMOS is not set 1465# CONFIG_RTC_DRV_CMOS is not set
1466# CONFIG_RTC_DRV_DS1511 is not set
1437# CONFIG_RTC_DRV_DS1553 is not set 1467# CONFIG_RTC_DRV_DS1553 is not set
1438# CONFIG_RTC_DRV_STK17TA8 is not set
1439# CONFIG_RTC_DRV_DS1742 is not set 1468# CONFIG_RTC_DRV_DS1742 is not set
1469# CONFIG_RTC_DRV_STK17TA8 is not set
1440# CONFIG_RTC_DRV_M48T86 is not set 1470# CONFIG_RTC_DRV_M48T86 is not set
1441# CONFIG_RTC_DRV_M48T59 is not set 1471# CONFIG_RTC_DRV_M48T59 is not set
1442# CONFIG_RTC_DRV_V3020 is not set 1472# CONFIG_RTC_DRV_V3020 is not set
@@ -1444,6 +1474,7 @@ CONFIG_RTC_DRV_DS1307=y
1444# 1474#
1445# on-CPU RTC drivers 1475# on-CPU RTC drivers
1446# 1476#
1477# CONFIG_DMADEVICES is not set
1447 1478
1448# 1479#
1449# Userspace I/O 1480# Userspace I/O
@@ -1471,12 +1502,10 @@ CONFIG_FS_POSIX_ACL=y
1471# CONFIG_XFS_FS is not set 1502# CONFIG_XFS_FS is not set
1472# CONFIG_GFS2_FS is not set 1503# CONFIG_GFS2_FS is not set
1473# CONFIG_OCFS2_FS is not set 1504# CONFIG_OCFS2_FS is not set
1474# CONFIG_MINIX_FS is not set 1505CONFIG_DNOTIFY=y
1475# CONFIG_ROMFS_FS is not set
1476CONFIG_INOTIFY=y 1506CONFIG_INOTIFY=y
1477CONFIG_INOTIFY_USER=y 1507CONFIG_INOTIFY_USER=y
1478# CONFIG_QUOTA is not set 1508# CONFIG_QUOTA is not set
1479CONFIG_DNOTIFY=y
1480CONFIG_AUTOFS_FS=y 1509CONFIG_AUTOFS_FS=y
1481CONFIG_AUTOFS4_FS=y 1510CONFIG_AUTOFS4_FS=y
1482# CONFIG_FUSE_FS is not set 1511# CONFIG_FUSE_FS is not set
@@ -1536,8 +1565,10 @@ CONFIG_JFFS2_RTIME=y
1536# CONFIG_JFFS2_RUBIN is not set 1565# CONFIG_JFFS2_RUBIN is not set
1537# CONFIG_CRAMFS is not set 1566# CONFIG_CRAMFS is not set
1538# CONFIG_VXFS_FS is not set 1567# CONFIG_VXFS_FS is not set
1568# CONFIG_MINIX_FS is not set
1539# CONFIG_HPFS_FS is not set 1569# CONFIG_HPFS_FS is not set
1540# CONFIG_QNX4FS_FS is not set 1570# CONFIG_QNX4FS_FS is not set
1571# CONFIG_ROMFS_FS is not set
1541# CONFIG_SYSV_FS is not set 1572# CONFIG_SYSV_FS is not set
1542# CONFIG_UFS_FS is not set 1573# CONFIG_UFS_FS is not set
1543CONFIG_NETWORK_FILESYSTEMS=y 1574CONFIG_NETWORK_FILESYSTEMS=y
@@ -1629,7 +1660,6 @@ CONFIG_NLS_ISO8859_1=y
1629# CONFIG_NLS_KOI8_U is not set 1660# CONFIG_NLS_KOI8_U is not set
1630# CONFIG_NLS_UTF8 is not set 1661# CONFIG_NLS_UTF8 is not set
1631# CONFIG_DLM is not set 1662# CONFIG_DLM is not set
1632# CONFIG_UCC_SLOW is not set
1633 1663
1634# 1664#
1635# Library routines 1665# Library routines
@@ -1647,11 +1677,6 @@ CONFIG_PLIST=y
1647CONFIG_HAS_IOMEM=y 1677CONFIG_HAS_IOMEM=y
1648CONFIG_HAS_IOPORT=y 1678CONFIG_HAS_IOPORT=y
1649CONFIG_HAS_DMA=y 1679CONFIG_HAS_DMA=y
1650CONFIG_INSTRUMENTATION=y
1651CONFIG_PROFILING=y
1652CONFIG_OPROFILE=y
1653# CONFIG_KPROBES is not set
1654# CONFIG_MARKERS is not set
1655 1680
1656# 1681#
1657# Kernel hacking 1682# Kernel hacking
@@ -1670,6 +1695,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1670# CONFIG_SCHEDSTATS is not set 1695# CONFIG_SCHEDSTATS is not set
1671# CONFIG_TIMER_STATS is not set 1696# CONFIG_TIMER_STATS is not set
1672# CONFIG_SLUB_DEBUG_ON is not set 1697# CONFIG_SLUB_DEBUG_ON is not set
1698# CONFIG_SLUB_STATS is not set
1673# CONFIG_DEBUG_RT_MUTEXES is not set 1699# CONFIG_DEBUG_RT_MUTEXES is not set
1674# CONFIG_RT_MUTEX_TESTER is not set 1700# CONFIG_RT_MUTEX_TESTER is not set
1675# CONFIG_DEBUG_SPINLOCK is not set 1701# CONFIG_DEBUG_SPINLOCK is not set
@@ -1682,9 +1708,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1682# CONFIG_DEBUG_VM is not set 1708# CONFIG_DEBUG_VM is not set
1683# CONFIG_DEBUG_LIST is not set 1709# CONFIG_DEBUG_LIST is not set
1684# CONFIG_DEBUG_SG is not set 1710# CONFIG_DEBUG_SG is not set
1685# CONFIG_FORCED_INLINING is not set
1686# CONFIG_BOOT_PRINTK_DELAY is not set 1711# CONFIG_BOOT_PRINTK_DELAY is not set
1687# CONFIG_RCU_TORTURE_TEST is not set 1712# CONFIG_RCU_TORTURE_TEST is not set
1713# CONFIG_BACKTRACE_SELF_TEST is not set
1688# CONFIG_FAULT_INJECTION is not set 1714# CONFIG_FAULT_INJECTION is not set
1689# CONFIG_SAMPLES is not set 1715# CONFIG_SAMPLES is not set
1690# CONFIG_DEBUG_STACKOVERFLOW is not set 1716# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1710,7 +1736,9 @@ CONFIG_ASYNC_MEMCPY=y
1710CONFIG_ASYNC_XOR=y 1736CONFIG_ASYNC_XOR=y
1711CONFIG_CRYPTO=y 1737CONFIG_CRYPTO=y
1712CONFIG_CRYPTO_ALGAPI=y 1738CONFIG_CRYPTO_ALGAPI=y
1739CONFIG_CRYPTO_AEAD=y
1713CONFIG_CRYPTO_BLKCIPHER=y 1740CONFIG_CRYPTO_BLKCIPHER=y
1741# CONFIG_CRYPTO_SEQIV is not set
1714CONFIG_CRYPTO_HASH=y 1742CONFIG_CRYPTO_HASH=y
1715CONFIG_CRYPTO_MANAGER=y 1743CONFIG_CRYPTO_MANAGER=y
1716CONFIG_CRYPTO_HMAC=y 1744CONFIG_CRYPTO_HMAC=y
@@ -1729,6 +1757,9 @@ CONFIG_CRYPTO_CBC=y
1729# CONFIG_CRYPTO_PCBC is not set 1757# CONFIG_CRYPTO_PCBC is not set
1730# CONFIG_CRYPTO_LRW is not set 1758# CONFIG_CRYPTO_LRW is not set
1731# CONFIG_CRYPTO_XTS is not set 1759# CONFIG_CRYPTO_XTS is not set
1760# CONFIG_CRYPTO_CTR is not set
1761# CONFIG_CRYPTO_GCM is not set
1762# CONFIG_CRYPTO_CCM is not set
1732# CONFIG_CRYPTO_CRYPTD is not set 1763# CONFIG_CRYPTO_CRYPTD is not set
1733CONFIG_CRYPTO_DES=y 1764CONFIG_CRYPTO_DES=y
1734# CONFIG_CRYPTO_FCRYPT is not set 1765# CONFIG_CRYPTO_FCRYPT is not set
@@ -1743,11 +1774,14 @@ CONFIG_CRYPTO_AES=y
1743# CONFIG_CRYPTO_KHAZAD is not set 1774# CONFIG_CRYPTO_KHAZAD is not set
1744# CONFIG_CRYPTO_ANUBIS is not set 1775# CONFIG_CRYPTO_ANUBIS is not set
1745# CONFIG_CRYPTO_SEED is not set 1776# CONFIG_CRYPTO_SEED is not set
1777# CONFIG_CRYPTO_SALSA20 is not set
1746# CONFIG_CRYPTO_DEFLATE is not set 1778# CONFIG_CRYPTO_DEFLATE is not set
1747# CONFIG_CRYPTO_MICHAEL_MIC is not set 1779# CONFIG_CRYPTO_MICHAEL_MIC is not set
1748# CONFIG_CRYPTO_CRC32C is not set 1780# CONFIG_CRYPTO_CRC32C is not set
1749# CONFIG_CRYPTO_CAMELLIA is not set 1781# CONFIG_CRYPTO_CAMELLIA is not set
1750# CONFIG_CRYPTO_TEST is not set 1782# CONFIG_CRYPTO_TEST is not set
1751# CONFIG_CRYPTO_AUTHENC is not set 1783CONFIG_CRYPTO_AUTHENC=y
1784# CONFIG_CRYPTO_LZO is not set
1752CONFIG_CRYPTO_HW=y 1785CONFIG_CRYPTO_HW=y
1786# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1753# CONFIG_PPC_CLOCK is not set 1787# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 5416be4419bb..558b0d348d4f 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:49:05 2007 4# Thu Mar 20 11:05:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -49,6 +50,9 @@ CONFIG_AUDIT_ARCH=y
49CONFIG_GENERIC_BUG=y 50CONFIG_GENERIC_BUG=y
50CONFIG_SYS_SUPPORTS_APM_EMULATION=y 51CONFIG_SYS_SUPPORTS_APM_EMULATION=y
51# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53CONFIG_HIBERNATE_32=y
54CONFIG_ARCH_HIBERNATION_POSSIBLE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y
52# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -67,18 +71,22 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 71CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
73CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
77CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
78CONFIG_FAIR_USER_SCHED=y 80# CONFIG_USER_SCHED is not set
79# CONFIG_FAIR_CGROUP_SCHED is not set 81# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_NAMESPACES=y
86# CONFIG_UTS_NS is not set
87# CONFIG_IPC_NS is not set
88# CONFIG_USER_NS is not set
89# CONFIG_PID_NS is not set
82CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 91CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,11 +100,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 100CONFIG_PRINTK=y
93CONFIG_BUG=y 101CONFIG_BUG=y
94CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 105CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 107CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 111CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +114,15 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
105CONFIG_SLUB=y 115CONFIG_SLUB=y
106# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117CONFIG_PROFILING=y
118# CONFIG_MARKERS is not set
119CONFIG_OPROFILE=y
120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set
122CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y
124CONFIG_PROC_PAGE_MONITOR=y
125CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
@@ -131,6 +150,7 @@ CONFIG_DEFAULT_AS=y
131# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
132# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y
134 154
135# 155#
136# Platform support 156# Platform support
@@ -141,16 +161,17 @@ CONFIG_PPC_MULTIPLATFORM=y
141# CONFIG_PPC_86xx is not set 161# CONFIG_PPC_86xx is not set
142CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
143# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
164# CONFIG_PPC_MPC512x is not set
165# CONFIG_PPC_MPC5121 is not set
166# CONFIG_MPC5121_ADS is not set
144# CONFIG_PPC_MPC52xx is not set 167# CONFIG_PPC_MPC52xx is not set
145# CONFIG_PPC_MPC5200 is not set
146# CONFIG_PPC_EFIKA is not set
147# CONFIG_PPC_LITE5200 is not set
148CONFIG_PPC_PMAC=y 168CONFIG_PPC_PMAC=y
149# CONFIG_PPC_CELL is not set 169# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 170# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 171# CONFIG_PQ2ADS is not set
152# CONFIG_EMBEDDED6xx is not set 172# CONFIG_EMBEDDED6xx is not set
153CONFIG_PPC_NATIVE=y 173CONFIG_PPC_NATIVE=y
174# CONFIG_IPIC is not set
154CONFIG_MPIC=y 175CONFIG_MPIC=y
155# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
156# CONFIG_PPC_I8259 is not set 177# CONFIG_PPC_I8259 is not set
@@ -181,7 +202,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
181CONFIG_CPU_FREQ_PMAC=y 202CONFIG_CPU_FREQ_PMAC=y
182CONFIG_PPC601_SYNC_FIX=y 203CONFIG_PPC601_SYNC_FIX=y
183# CONFIG_TAU is not set 204# CONFIG_TAU is not set
184# CONFIG_CPM2 is not set
185# CONFIG_FSL_ULI1575 is not set 205# CONFIG_FSL_ULI1575 is not set
186 206
187# 207#
@@ -197,12 +217,16 @@ CONFIG_HZ_250=y
197# CONFIG_HZ_300 is not set 217# CONFIG_HZ_300 is not set
198# CONFIG_HZ_1000 is not set 218# CONFIG_HZ_1000 is not set
199CONFIG_HZ=250 219CONFIG_HZ=250
220# CONFIG_SCHED_HRTICK is not set
200CONFIG_PREEMPT_NONE=y 221CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 222# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 223# CONFIG_PREEMPT is not set
203CONFIG_BINFMT_ELF=y 224CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 225CONFIG_BINFMT_MISC=m
226# CONFIG_IOMMU_HELPER is not set
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
228CONFIG_ARCH_HAS_WALK_MEMORY=y
229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
206# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
207CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
208CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -221,19 +245,19 @@ CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
222CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
223# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
224CONFIG_PM=y 249CONFIG_PM=y
225# CONFIG_PM_LEGACY is not set 250# CONFIG_PM_LEGACY is not set
226CONFIG_PM_DEBUG=y 251CONFIG_PM_DEBUG=y
227# CONFIG_PM_VERBOSE is not set 252# CONFIG_PM_VERBOSE is not set
253CONFIG_CAN_PM_TRACE=y
228CONFIG_PM_SLEEP=y 254CONFIG_PM_SLEEP=y
229CONFIG_SUSPEND_UP_POSSIBLE=y
230CONFIG_SUSPEND=y 255CONFIG_SUSPEND=y
231CONFIG_HIBERNATION_UP_POSSIBLE=y 256CONFIG_SUSPEND_FREEZER=y
232CONFIG_HIBERNATION=y 257CONFIG_HIBERNATION=y
233CONFIG_PM_STD_PARTITION="" 258CONFIG_PM_STD_PARTITION=""
234CONFIG_APM_EMULATION=y 259CONFIG_APM_EMULATION=y
235CONFIG_SECCOMP=y 260CONFIG_SECCOMP=y
236# CONFIG_WANT_DEVICE_TREE is not set
237CONFIG_ISA_DMA_API=y 261CONFIG_ISA_DMA_API=y
238 262
239# 263#
@@ -300,6 +324,7 @@ CONFIG_XFRM=y
300CONFIG_XFRM_USER=y 324CONFIG_XFRM_USER=y
301# CONFIG_XFRM_SUB_POLICY is not set 325# CONFIG_XFRM_SUB_POLICY is not set
302# CONFIG_XFRM_MIGRATE is not set 326# CONFIG_XFRM_MIGRATE is not set
327# CONFIG_XFRM_STATISTICS is not set
303CONFIG_NET_KEY=y 328CONFIG_NET_KEY=y
304# CONFIG_NET_KEY_MIGRATE is not set 329# CONFIG_NET_KEY_MIGRATE is not set
305CONFIG_INET=y 330CONFIG_INET=y
@@ -334,12 +359,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_NETWORK_SECMARK is not set 359# CONFIG_NETWORK_SECMARK is not set
335CONFIG_NETFILTER=y 360CONFIG_NETFILTER=y
336# CONFIG_NETFILTER_DEBUG is not set 361# CONFIG_NETFILTER_DEBUG is not set
362CONFIG_NETFILTER_ADVANCED=y
337 363
338# 364#
339# Core Netfilter Configuration 365# Core Netfilter Configuration
340# 366#
341# CONFIG_NETFILTER_NETLINK is not set 367CONFIG_NETFILTER_NETLINK=m
342CONFIG_NF_CONNTRACK_ENABLED=m 368CONFIG_NETFILTER_NETLINK_QUEUE=m
369CONFIG_NETFILTER_NETLINK_LOG=m
343CONFIG_NF_CONNTRACK=m 370CONFIG_NF_CONNTRACK=m
344# CONFIG_NF_CT_ACCT is not set 371# CONFIG_NF_CT_ACCT is not set
345# CONFIG_NF_CONNTRACK_MARK is not set 372# CONFIG_NF_CONNTRACK_MARK is not set
@@ -355,6 +382,7 @@ CONFIG_NF_CONNTRACK_IRC=m
355# CONFIG_NF_CONNTRACK_SANE is not set 382# CONFIG_NF_CONNTRACK_SANE is not set
356# CONFIG_NF_CONNTRACK_SIP is not set 383# CONFIG_NF_CONNTRACK_SIP is not set
357CONFIG_NF_CONNTRACK_TFTP=m 384CONFIG_NF_CONNTRACK_TFTP=m
385CONFIG_NF_CT_NETLINK=m
358CONFIG_NETFILTER_XTABLES=m 386CONFIG_NETFILTER_XTABLES=m
359CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 387CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
360# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 388# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
@@ -363,8 +391,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
363CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 391CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
364CONFIG_NETFILTER_XT_TARGET_NFLOG=m 392CONFIG_NETFILTER_XT_TARGET_NFLOG=m
365CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 393CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
394CONFIG_NETFILTER_XT_TARGET_RATEEST=m
366CONFIG_NETFILTER_XT_TARGET_TRACE=m 395CONFIG_NETFILTER_XT_TARGET_TRACE=m
367CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 396CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
397CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
368CONFIG_NETFILTER_XT_MATCH_COMMENT=m 398CONFIG_NETFILTER_XT_MATCH_COMMENT=m
369# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 399# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
370CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 400CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -374,14 +404,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
374CONFIG_NETFILTER_XT_MATCH_DSCP=m 404CONFIG_NETFILTER_XT_MATCH_DSCP=m
375CONFIG_NETFILTER_XT_MATCH_ESP=m 405CONFIG_NETFILTER_XT_MATCH_ESP=m
376CONFIG_NETFILTER_XT_MATCH_HELPER=m 406CONFIG_NETFILTER_XT_MATCH_HELPER=m
407CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
377CONFIG_NETFILTER_XT_MATCH_LENGTH=m 408CONFIG_NETFILTER_XT_MATCH_LENGTH=m
378CONFIG_NETFILTER_XT_MATCH_LIMIT=m 409CONFIG_NETFILTER_XT_MATCH_LIMIT=m
379CONFIG_NETFILTER_XT_MATCH_MAC=m 410CONFIG_NETFILTER_XT_MATCH_MAC=m
380CONFIG_NETFILTER_XT_MATCH_MARK=m 411CONFIG_NETFILTER_XT_MATCH_MARK=m
412CONFIG_NETFILTER_XT_MATCH_OWNER=m
381CONFIG_NETFILTER_XT_MATCH_POLICY=m 413CONFIG_NETFILTER_XT_MATCH_POLICY=m
382CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 414CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
383CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 415CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
384# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 416# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
417CONFIG_NETFILTER_XT_MATCH_RATEEST=m
385CONFIG_NETFILTER_XT_MATCH_REALM=m 418CONFIG_NETFILTER_XT_MATCH_REALM=m
386CONFIG_NETFILTER_XT_MATCH_SCTP=m 419CONFIG_NETFILTER_XT_MATCH_SCTP=m
387# CONFIG_NETFILTER_XT_MATCH_STATE is not set 420# CONFIG_NETFILTER_XT_MATCH_STATE is not set
@@ -399,13 +432,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
399CONFIG_NF_CONNTRACK_PROC_COMPAT=y 432CONFIG_NF_CONNTRACK_PROC_COMPAT=y
400# CONFIG_IP_NF_QUEUE is not set 433# CONFIG_IP_NF_QUEUE is not set
401CONFIG_IP_NF_IPTABLES=m 434CONFIG_IP_NF_IPTABLES=m
402CONFIG_IP_NF_MATCH_IPRANGE=m
403CONFIG_IP_NF_MATCH_TOS=m
404CONFIG_IP_NF_MATCH_RECENT=m 435CONFIG_IP_NF_MATCH_RECENT=m
405CONFIG_IP_NF_MATCH_ECN=m 436CONFIG_IP_NF_MATCH_ECN=m
406CONFIG_IP_NF_MATCH_AH=m 437CONFIG_IP_NF_MATCH_AH=m
407CONFIG_IP_NF_MATCH_TTL=m 438CONFIG_IP_NF_MATCH_TTL=m
408CONFIG_IP_NF_MATCH_OWNER=m
409CONFIG_IP_NF_MATCH_ADDRTYPE=m 439CONFIG_IP_NF_MATCH_ADDRTYPE=m
410CONFIG_IP_NF_FILTER=m 440CONFIG_IP_NF_FILTER=m
411CONFIG_IP_NF_TARGET_REJECT=m 441CONFIG_IP_NF_TARGET_REJECT=m
@@ -416,7 +446,6 @@ CONFIG_NF_NAT_NEEDED=y
416CONFIG_IP_NF_TARGET_MASQUERADE=m 446CONFIG_IP_NF_TARGET_MASQUERADE=m
417CONFIG_IP_NF_TARGET_REDIRECT=m 447CONFIG_IP_NF_TARGET_REDIRECT=m
418CONFIG_IP_NF_TARGET_NETMAP=m 448CONFIG_IP_NF_TARGET_NETMAP=m
419CONFIG_IP_NF_TARGET_SAME=m
420# CONFIG_NF_NAT_SNMP_BASIC is not set 449# CONFIG_NF_NAT_SNMP_BASIC is not set
421CONFIG_NF_NAT_FTP=m 450CONFIG_NF_NAT_FTP=m
422CONFIG_NF_NAT_IRC=m 451CONFIG_NF_NAT_IRC=m
@@ -426,7 +455,6 @@ CONFIG_NF_NAT_TFTP=m
426# CONFIG_NF_NAT_H323 is not set 455# CONFIG_NF_NAT_H323 is not set
427# CONFIG_NF_NAT_SIP is not set 456# CONFIG_NF_NAT_SIP is not set
428CONFIG_IP_NF_MANGLE=m 457CONFIG_IP_NF_MANGLE=m
429CONFIG_IP_NF_TARGET_TOS=m
430CONFIG_IP_NF_TARGET_ECN=m 458CONFIG_IP_NF_TARGET_ECN=m
431CONFIG_IP_NF_TARGET_TTL=m 459CONFIG_IP_NF_TARGET_TTL=m
432# CONFIG_IP_NF_TARGET_CLUSTERIP is not set 460# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
@@ -444,9 +472,9 @@ CONFIG_IP_DCCP_ACKVEC=y
444CONFIG_IP_DCCP_CCID2=m 472CONFIG_IP_DCCP_CCID2=m
445# CONFIG_IP_DCCP_CCID2_DEBUG is not set 473# CONFIG_IP_DCCP_CCID2_DEBUG is not set
446CONFIG_IP_DCCP_CCID3=m 474CONFIG_IP_DCCP_CCID3=m
447CONFIG_IP_DCCP_TFRC_LIB=m
448# CONFIG_IP_DCCP_CCID3_DEBUG is not set 475# CONFIG_IP_DCCP_CCID3_DEBUG is not set
449CONFIG_IP_DCCP_CCID3_RTO=100 476CONFIG_IP_DCCP_CCID3_RTO=100
477CONFIG_IP_DCCP_TFRC_LIB=m
450 478
451# 479#
452# DCCP Kernel Hacking 480# DCCP Kernel Hacking
@@ -474,6 +502,7 @@ CONFIG_NET_SCH_FIFO=y
474# 502#
475# CONFIG_NET_PKTGEN is not set 503# CONFIG_NET_PKTGEN is not set
476# CONFIG_HAMRADIO is not set 504# CONFIG_HAMRADIO is not set
505# CONFIG_CAN is not set
477CONFIG_IRDA=m 506CONFIG_IRDA=m
478 507
479# 508#
@@ -509,15 +538,6 @@ CONFIG_IRTTY_SIR=m
509# CONFIG_KS959_DONGLE is not set 538# CONFIG_KS959_DONGLE is not set
510 539
511# 540#
512# Old SIR device drivers
513#
514# CONFIG_IRPORT_SIR is not set
515
516#
517# Old Serial dongle support
518#
519
520#
521# FIR device drivers 541# FIR device drivers
522# 542#
523# CONFIG_USB_IRDA is not set 543# CONFIG_USB_IRDA is not set
@@ -563,8 +583,26 @@ CONFIG_CFG80211=m
563CONFIG_NL80211=y 583CONFIG_NL80211=y
564CONFIG_WIRELESS_EXT=y 584CONFIG_WIRELESS_EXT=y
565CONFIG_MAC80211=m 585CONFIG_MAC80211=m
566CONFIG_MAC80211_RCSIMPLE=y 586
587#
588# Rate control algorithm selection
589#
590CONFIG_MAC80211_RC_DEFAULT_PID=y
591# CONFIG_MAC80211_RC_DEFAULT_SIMPLE is not set
592# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
593
594#
595# Selecting 'y' for an algorithm will
596#
597
598#
599# build the algorithm into mac80211.
600#
601CONFIG_MAC80211_RC_DEFAULT="pid"
602CONFIG_MAC80211_RC_PID=y
603# CONFIG_MAC80211_RC_SIMPLE is not set
567CONFIG_MAC80211_LEDS=y 604CONFIG_MAC80211_LEDS=y
605# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
568# CONFIG_MAC80211_DEBUG is not set 606# CONFIG_MAC80211_DEBUG is not set
569CONFIG_IEEE80211=m 607CONFIG_IEEE80211=m
570# CONFIG_IEEE80211_DEBUG is not set 608# CONFIG_IEEE80211_DEBUG is not set
@@ -610,7 +648,7 @@ CONFIG_BLK_DEV_UB=m
610CONFIG_BLK_DEV_RAM=y 648CONFIG_BLK_DEV_RAM=y
611CONFIG_BLK_DEV_RAM_COUNT=16 649CONFIG_BLK_DEV_RAM_COUNT=16
612CONFIG_BLK_DEV_RAM_SIZE=4096 650CONFIG_BLK_DEV_RAM_SIZE=4096
613CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 651# CONFIG_BLK_DEV_XIP is not set
614# CONFIG_CDROM_PKTCDVD is not set 652# CONFIG_CDROM_PKTCDVD is not set
615# CONFIG_ATA_OVER_ETH is not set 653# CONFIG_ATA_OVER_ETH is not set
616CONFIG_MISC_DEVICES=y 654CONFIG_MISC_DEVICES=y
@@ -618,11 +656,13 @@ CONFIG_MISC_DEVICES=y
618# CONFIG_EEPROM_93CX6 is not set 656# CONFIG_EEPROM_93CX6 is not set
619# CONFIG_SGI_IOC4 is not set 657# CONFIG_SGI_IOC4 is not set
620# CONFIG_TIFM_CORE is not set 658# CONFIG_TIFM_CORE is not set
659# CONFIG_ENCLOSURE_SERVICES is not set
660CONFIG_HAVE_IDE=y
621CONFIG_IDE=y 661CONFIG_IDE=y
622CONFIG_BLK_DEV_IDE=y 662CONFIG_BLK_DEV_IDE=y
623 663
624# 664#
625# Please see Documentation/ide.txt for help/info on IDE drives 665# Please see Documentation/ide/ide.txt for help/info on IDE drives
626# 666#
627# CONFIG_BLK_DEV_IDE_SATA is not set 667# CONFIG_BLK_DEV_IDE_SATA is not set
628CONFIG_BLK_DEV_IDEDISK=y 668CONFIG_BLK_DEV_IDEDISK=y
@@ -630,6 +670,7 @@ CONFIG_BLK_DEV_IDEDISK=y
630CONFIG_BLK_DEV_IDECS=m 670CONFIG_BLK_DEV_IDECS=m
631# CONFIG_BLK_DEV_DELKIN is not set 671# CONFIG_BLK_DEV_DELKIN is not set
632CONFIG_BLK_DEV_IDECD=y 672CONFIG_BLK_DEV_IDECD=y
673CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
633# CONFIG_BLK_DEV_IDETAPE is not set 674# CONFIG_BLK_DEV_IDETAPE is not set
634CONFIG_BLK_DEV_IDEFLOPPY=y 675CONFIG_BLK_DEV_IDEFLOPPY=y
635CONFIG_BLK_DEV_IDESCSI=y 676CONFIG_BLK_DEV_IDESCSI=y
@@ -641,12 +682,12 @@ CONFIG_IDE_PROC_FS=y
641# 682#
642# CONFIG_IDE_GENERIC is not set 683# CONFIG_IDE_GENERIC is not set
643# CONFIG_BLK_DEV_PLATFORM is not set 684# CONFIG_BLK_DEV_PLATFORM is not set
685CONFIG_BLK_DEV_IDEDMA_SFF=y
644 686
645# 687#
646# PCI IDE chipsets support 688# PCI IDE chipsets support
647# 689#
648CONFIG_BLK_DEV_IDEPCI=y 690CONFIG_BLK_DEV_IDEPCI=y
649CONFIG_IDEPCI_SHARE_IRQ=y
650CONFIG_IDEPCI_PCIBUS_ORDER=y 691CONFIG_IDEPCI_PCIBUS_ORDER=y
651# CONFIG_BLK_DEV_OFFBOARD is not set 692# CONFIG_BLK_DEV_OFFBOARD is not set
652CONFIG_BLK_DEV_GENERIC=y 693CONFIG_BLK_DEV_GENERIC=y
@@ -680,7 +721,6 @@ CONFIG_BLK_DEV_SL82C105=y
680CONFIG_BLK_DEV_IDE_PMAC=y 721CONFIG_BLK_DEV_IDE_PMAC=y
681CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 722CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
682CONFIG_BLK_DEV_IDEDMA_PMAC=y 723CONFIG_BLK_DEV_IDEDMA_PMAC=y
683# CONFIG_IDE_ARM is not set
684CONFIG_BLK_DEV_IDEDMA=y 724CONFIG_BLK_DEV_IDEDMA=y
685CONFIG_IDE_ARCH_OBSOLETE_INIT=y 725CONFIG_IDE_ARCH_OBSOLETE_INIT=y
686# CONFIG_BLK_DEV_HD is not set 726# CONFIG_BLK_DEV_HD is not set
@@ -754,6 +794,7 @@ CONFIG_SCSI_AIC7XXX_OLD=m
754# CONFIG_SCSI_IPS is not set 794# CONFIG_SCSI_IPS is not set
755# CONFIG_SCSI_INITIO is not set 795# CONFIG_SCSI_INITIO is not set
756# CONFIG_SCSI_INIA100 is not set 796# CONFIG_SCSI_INIA100 is not set
797# CONFIG_SCSI_MVSAS is not set
757# CONFIG_SCSI_STEX is not set 798# CONFIG_SCSI_STEX is not set
758CONFIG_SCSI_SYM53C8XX_2=y 799CONFIG_SCSI_SYM53C8XX_2=y
759CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 800CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -848,7 +889,6 @@ CONFIG_DUMMY=m
848# CONFIG_EQUALIZER is not set 889# CONFIG_EQUALIZER is not set
849CONFIG_TUN=m 890CONFIG_TUN=m
850# CONFIG_VETH is not set 891# CONFIG_VETH is not set
851# CONFIG_IP1000 is not set
852# CONFIG_ARCNET is not set 892# CONFIG_ARCNET is not set
853# CONFIG_PHYLIB is not set 893# CONFIG_PHYLIB is not set
854CONFIG_NET_ETHERNET=y 894CONFIG_NET_ETHERNET=y
@@ -880,6 +920,7 @@ CONFIG_PCNET32=y
880# CONFIG_NE2K_PCI is not set 920# CONFIG_NE2K_PCI is not set
881# CONFIG_8139CP is not set 921# CONFIG_8139CP is not set
882# CONFIG_8139TOO is not set 922# CONFIG_8139TOO is not set
923# CONFIG_R6040 is not set
883# CONFIG_SIS900 is not set 924# CONFIG_SIS900 is not set
884# CONFIG_EPIC100 is not set 925# CONFIG_EPIC100 is not set
885# CONFIG_SUNDANCE is not set 926# CONFIG_SUNDANCE is not set
@@ -891,6 +932,9 @@ CONFIG_NETDEV_1000=y
891# CONFIG_DL2K is not set 932# CONFIG_DL2K is not set
892# CONFIG_E1000 is not set 933# CONFIG_E1000 is not set
893# CONFIG_E1000E is not set 934# CONFIG_E1000E is not set
935# CONFIG_E1000E_ENABLED is not set
936# CONFIG_IP1000 is not set
937# CONFIG_IGB is not set
894# CONFIG_NS83820 is not set 938# CONFIG_NS83820 is not set
895# CONFIG_HAMACHI is not set 939# CONFIG_HAMACHI is not set
896# CONFIG_YELLOWFIN is not set 940# CONFIG_YELLOWFIN is not set
@@ -916,6 +960,7 @@ CONFIG_NETDEV_10000=y
916# CONFIG_NIU is not set 960# CONFIG_NIU is not set
917# CONFIG_MLX4_CORE is not set 961# CONFIG_MLX4_CORE is not set
918# CONFIG_TEHUTI is not set 962# CONFIG_TEHUTI is not set
963# CONFIG_BNX2X is not set
919# CONFIG_TR is not set 964# CONFIG_TR is not set
920 965
921# 966#
@@ -941,12 +986,16 @@ CONFIG_PCMCIA_HERMES=m
941# CONFIG_PCMCIA_WL3501 is not set 986# CONFIG_PCMCIA_WL3501 is not set
942CONFIG_PRISM54=m 987CONFIG_PRISM54=m
943# CONFIG_USB_ZD1201 is not set 988# CONFIG_USB_ZD1201 is not set
989# CONFIG_USB_NET_RNDIS_WLAN is not set
990# CONFIG_RTL8180 is not set
944# CONFIG_RTL8187 is not set 991# CONFIG_RTL8187 is not set
945# CONFIG_ADM8211 is not set 992# CONFIG_ADM8211 is not set
946CONFIG_P54_COMMON=m 993CONFIG_P54_COMMON=m
947# CONFIG_P54_USB is not set 994# CONFIG_P54_USB is not set
948# CONFIG_P54_PCI is not set 995# CONFIG_P54_PCI is not set
949# CONFIG_IWLWIFI is not set 996# CONFIG_ATH5K is not set
997# CONFIG_IWL4965 is not set
998# CONFIG_IWL3945 is not set
950# CONFIG_HOSTAP is not set 999# CONFIG_HOSTAP is not set
951CONFIG_B43=m 1000CONFIG_B43=m
952CONFIG_B43_PCI_AUTOSELECT=y 1001CONFIG_B43_PCI_AUTOSELECT=y
@@ -954,20 +1003,17 @@ CONFIG_B43_PCICORE_AUTOSELECT=y
954# CONFIG_B43_PCMCIA is not set 1003# CONFIG_B43_PCMCIA is not set
955CONFIG_B43_LEDS=y 1004CONFIG_B43_LEDS=y
956# CONFIG_B43_DEBUG is not set 1005# CONFIG_B43_DEBUG is not set
957CONFIG_B43_DMA=y
958CONFIG_B43_PIO=y
959CONFIG_B43_DMA_AND_PIO_MODE=y
960# CONFIG_B43_DMA_MODE is not set
961# CONFIG_B43_PIO_MODE is not set
962CONFIG_B43LEGACY=m 1006CONFIG_B43LEGACY=m
963CONFIG_B43LEGACY_PCI_AUTOSELECT=y 1007CONFIG_B43LEGACY_PCI_AUTOSELECT=y
964CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y 1008CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
1009CONFIG_B43LEGACY_LEDS=y
965CONFIG_B43LEGACY_DEBUG=y 1010CONFIG_B43LEGACY_DEBUG=y
966CONFIG_B43LEGACY_DMA=y 1011CONFIG_B43LEGACY_DMA=y
967CONFIG_B43LEGACY_PIO=y 1012CONFIG_B43LEGACY_PIO=y
968CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y 1013CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
969# CONFIG_B43LEGACY_DMA_MODE is not set 1014# CONFIG_B43LEGACY_DMA_MODE is not set
970# CONFIG_B43LEGACY_PIO_MODE is not set 1015# CONFIG_B43LEGACY_PIO_MODE is not set
1016# CONFIG_ZD1211RW is not set
971# CONFIG_RT2X00 is not set 1017# CONFIG_RT2X00 is not set
972 1018
973# 1019#
@@ -1005,7 +1051,6 @@ CONFIG_PPP_BSDCOMP=m
1005# CONFIG_SLIP is not set 1051# CONFIG_SLIP is not set
1006CONFIG_SLHC=y 1052CONFIG_SLHC=y
1007# CONFIG_NET_FC is not set 1053# CONFIG_NET_FC is not set
1008# CONFIG_SHAPER is not set
1009# CONFIG_NETCONSOLE is not set 1054# CONFIG_NETCONSOLE is not set
1010# CONFIG_NETPOLL is not set 1055# CONFIG_NETPOLL is not set
1011# CONFIG_NET_POLL_CONTROLLER is not set 1056# CONFIG_NET_POLL_CONTROLLER is not set
@@ -1068,6 +1113,7 @@ CONFIG_VT_CONSOLE=y
1068CONFIG_HW_CONSOLE=y 1113CONFIG_HW_CONSOLE=y
1069# CONFIG_VT_HW_CONSOLE_BINDING is not set 1114# CONFIG_VT_HW_CONSOLE_BINDING is not set
1070# CONFIG_SERIAL_NONSTANDARD is not set 1115# CONFIG_SERIAL_NONSTANDARD is not set
1116# CONFIG_NOZOMI is not set
1071 1117
1072# 1118#
1073# Serial drivers 1119# Serial drivers
@@ -1105,6 +1151,7 @@ CONFIG_GEN_RTC=y
1105# CONFIG_SYNCLINK_CS is not set 1151# CONFIG_SYNCLINK_CS is not set
1106# CONFIG_CARDMAN_4000 is not set 1152# CONFIG_CARDMAN_4000 is not set
1107# CONFIG_CARDMAN_4040 is not set 1153# CONFIG_CARDMAN_4040 is not set
1154# CONFIG_IPWIRELESS is not set
1108# CONFIG_RAW_DRIVER is not set 1155# CONFIG_RAW_DRIVER is not set
1109# CONFIG_TCG_TPM is not set 1156# CONFIG_TCG_TPM is not set
1110CONFIG_DEVPORT=y 1157CONFIG_DEVPORT=y
@@ -1151,14 +1198,12 @@ CONFIG_I2C_POWERMAC=y
1151# 1198#
1152# Miscellaneous I2C Chip support 1199# Miscellaneous I2C Chip support
1153# 1200#
1154# CONFIG_SENSORS_DS1337 is not set
1155# CONFIG_SENSORS_DS1374 is not set
1156# CONFIG_DS1682 is not set 1201# CONFIG_DS1682 is not set
1157# CONFIG_SENSORS_EEPROM is not set 1202# CONFIG_SENSORS_EEPROM is not set
1158# CONFIG_SENSORS_PCF8574 is not set 1203# CONFIG_SENSORS_PCF8574 is not set
1159# CONFIG_SENSORS_PCA9539 is not set 1204# CONFIG_PCF8575 is not set
1160# CONFIG_SENSORS_PCF8591 is not set 1205# CONFIG_SENSORS_PCF8591 is not set
1161# CONFIG_SENSORS_M41T00 is not set 1206# CONFIG_TPS65010 is not set
1162# CONFIG_SENSORS_MAX6875 is not set 1207# CONFIG_SENSORS_MAX6875 is not set
1163# CONFIG_SENSORS_TSL2550 is not set 1208# CONFIG_SENSORS_TSL2550 is not set
1164# CONFIG_I2C_DEBUG_CORE is not set 1209# CONFIG_I2C_DEBUG_CORE is not set
@@ -1179,6 +1224,7 @@ CONFIG_APM_POWER=y
1179# CONFIG_BATTERY_DS2760 is not set 1224# CONFIG_BATTERY_DS2760 is not set
1180CONFIG_BATTERY_PMU=y 1225CONFIG_BATTERY_PMU=y
1181# CONFIG_HWMON is not set 1226# CONFIG_HWMON is not set
1227# CONFIG_THERMAL is not set
1182# CONFIG_WATCHDOG is not set 1228# CONFIG_WATCHDOG is not set
1183 1229
1184# 1230#
@@ -1188,6 +1234,7 @@ CONFIG_SSB_POSSIBLE=y
1188CONFIG_SSB=m 1234CONFIG_SSB=m
1189CONFIG_SSB_PCIHOST_POSSIBLE=y 1235CONFIG_SSB_PCIHOST_POSSIBLE=y
1190CONFIG_SSB_PCIHOST=y 1236CONFIG_SSB_PCIHOST=y
1237CONFIG_SSB_B43_PCI_BRIDGE=y
1191CONFIG_SSB_PCMCIAHOST_POSSIBLE=y 1238CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
1192# CONFIG_SSB_PCMCIAHOST is not set 1239# CONFIG_SSB_PCMCIAHOST is not set
1193# CONFIG_SSB_DEBUG is not set 1240# CONFIG_SSB_DEBUG is not set
@@ -1372,6 +1419,7 @@ CONFIG_SND_DUMMY=m
1372# CONFIG_SND_BT87X is not set 1419# CONFIG_SND_BT87X is not set
1373# CONFIG_SND_CA0106 is not set 1420# CONFIG_SND_CA0106 is not set
1374# CONFIG_SND_CMIPCI is not set 1421# CONFIG_SND_CMIPCI is not set
1422# CONFIG_SND_OXYGEN is not set
1375# CONFIG_SND_CS4281 is not set 1423# CONFIG_SND_CS4281 is not set
1376# CONFIG_SND_CS46XX is not set 1424# CONFIG_SND_CS46XX is not set
1377# CONFIG_SND_CS5530 is not set 1425# CONFIG_SND_CS5530 is not set
@@ -1397,6 +1445,7 @@ CONFIG_SND_DUMMY=m
1397# CONFIG_SND_HDA_INTEL is not set 1445# CONFIG_SND_HDA_INTEL is not set
1398# CONFIG_SND_HDSP is not set 1446# CONFIG_SND_HDSP is not set
1399# CONFIG_SND_HDSPM is not set 1447# CONFIG_SND_HDSPM is not set
1448# CONFIG_SND_HIFIER is not set
1400# CONFIG_SND_ICE1712 is not set 1449# CONFIG_SND_ICE1712 is not set
1401# CONFIG_SND_ICE1724 is not set 1450# CONFIG_SND_ICE1724 is not set
1402# CONFIG_SND_INTEL8X0 is not set 1451# CONFIG_SND_INTEL8X0 is not set
@@ -1414,6 +1463,7 @@ CONFIG_SND_DUMMY=m
1414# CONFIG_SND_TRIDENT is not set 1463# CONFIG_SND_TRIDENT is not set
1415# CONFIG_SND_VIA82XX is not set 1464# CONFIG_SND_VIA82XX is not set
1416# CONFIG_SND_VIA82XX_MODEM is not set 1465# CONFIG_SND_VIA82XX_MODEM is not set
1466# CONFIG_SND_VIRTUOSO is not set
1417# CONFIG_SND_VX222 is not set 1467# CONFIG_SND_VX222 is not set
1418# CONFIG_SND_YMFPCI is not set 1468# CONFIG_SND_YMFPCI is not set
1419 1469
@@ -1461,6 +1511,10 @@ CONFIG_SND_USB_AUDIO=m
1461# 1511#
1462 1512
1463# 1513#
1514# ALSA SoC audio for Freescale SOCs
1515#
1516
1517#
1464# Open Sound System 1518# Open Sound System
1465# 1519#
1466# CONFIG_SOUND_PRIME is not set 1520# CONFIG_SOUND_PRIME is not set
@@ -1482,6 +1536,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1482CONFIG_USB_ARCH_HAS_EHCI=y 1536CONFIG_USB_ARCH_HAS_EHCI=y
1483CONFIG_USB=y 1537CONFIG_USB=y
1484# CONFIG_USB_DEBUG is not set 1538# CONFIG_USB_DEBUG is not set
1539# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1485 1540
1486# 1541#
1487# Miscellaneous USB options 1542# Miscellaneous USB options
@@ -1497,9 +1552,9 @@ CONFIG_USB_DYNAMIC_MINORS=y
1497# USB Host Controller Drivers 1552# USB Host Controller Drivers
1498# 1553#
1499CONFIG_USB_EHCI_HCD=m 1554CONFIG_USB_EHCI_HCD=m
1500CONFIG_USB_EHCI_SPLIT_ISO=y
1501CONFIG_USB_EHCI_ROOT_HUB_TT=y 1555CONFIG_USB_EHCI_ROOT_HUB_TT=y
1502# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1556# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1557# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1503# CONFIG_USB_ISP116X_HCD is not set 1558# CONFIG_USB_ISP116X_HCD is not set
1504CONFIG_USB_OHCI_HCD=y 1559CONFIG_USB_OHCI_HCD=y
1505# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1560# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -1547,11 +1602,8 @@ CONFIG_USB_MON=y
1547# 1602#
1548# USB port drivers 1603# USB port drivers
1549# 1604#
1550
1551#
1552# USB Serial Converter support
1553#
1554CONFIG_USB_SERIAL=m 1605CONFIG_USB_SERIAL=m
1606CONFIG_USB_EZUSB=y
1555# CONFIG_USB_SERIAL_GENERIC is not set 1607# CONFIG_USB_SERIAL_GENERIC is not set
1556# CONFIG_USB_SERIAL_AIRCABLE is not set 1608# CONFIG_USB_SERIAL_AIRCABLE is not set
1557# CONFIG_USB_SERIAL_AIRPRIME is not set 1609# CONFIG_USB_SERIAL_AIRPRIME is not set
@@ -1572,6 +1624,7 @@ CONFIG_USB_SERIAL_IPAQ=m
1572# CONFIG_USB_SERIAL_EDGEPORT_TI is not set 1624# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1573# CONFIG_USB_SERIAL_GARMIN is not set 1625# CONFIG_USB_SERIAL_GARMIN is not set
1574# CONFIG_USB_SERIAL_IPW is not set 1626# CONFIG_USB_SERIAL_IPW is not set
1627# CONFIG_USB_SERIAL_IUU is not set
1575CONFIG_USB_SERIAL_KEYSPAN_PDA=m 1628CONFIG_USB_SERIAL_KEYSPAN_PDA=m
1576CONFIG_USB_SERIAL_KEYSPAN=m 1629CONFIG_USB_SERIAL_KEYSPAN=m
1577CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1630CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -1603,7 +1656,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1603# CONFIG_USB_SERIAL_OPTION is not set 1656# CONFIG_USB_SERIAL_OPTION is not set
1604# CONFIG_USB_SERIAL_OMNINET is not set 1657# CONFIG_USB_SERIAL_OMNINET is not set
1605# CONFIG_USB_SERIAL_DEBUG is not set 1658# CONFIG_USB_SERIAL_DEBUG is not set
1606CONFIG_USB_EZUSB=y
1607 1659
1608# 1660#
1609# USB Miscellaneous drivers 1661# USB Miscellaneous drivers
@@ -1628,16 +1680,9 @@ CONFIG_USB_APPLEDISPLAY=m
1628# CONFIG_USB_TRANCEVIBRATOR is not set 1680# CONFIG_USB_TRANCEVIBRATOR is not set
1629# CONFIG_USB_IOWARRIOR is not set 1681# CONFIG_USB_IOWARRIOR is not set
1630# CONFIG_USB_TEST is not set 1682# CONFIG_USB_TEST is not set
1631
1632#
1633# USB DSL modem support
1634#
1635
1636#
1637# USB Gadget Support
1638#
1639# CONFIG_USB_GADGET is not set 1683# CONFIG_USB_GADGET is not set
1640# CONFIG_MMC is not set 1684# CONFIG_MMC is not set
1685# CONFIG_MEMSTICK is not set
1641CONFIG_NEW_LEDS=y 1686CONFIG_NEW_LEDS=y
1642CONFIG_LEDS_CLASS=y 1687CONFIG_LEDS_CLASS=y
1643 1688
@@ -1655,6 +1700,7 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y
1655# CONFIG_INFINIBAND is not set 1700# CONFIG_INFINIBAND is not set
1656# CONFIG_EDAC is not set 1701# CONFIG_EDAC is not set
1657# CONFIG_RTC_CLASS is not set 1702# CONFIG_RTC_CLASS is not set
1703# CONFIG_DMADEVICES is not set
1658 1704
1659# 1705#
1660# Userspace I/O 1706# Userspace I/O
@@ -1680,12 +1726,10 @@ CONFIG_FS_POSIX_ACL=y
1680# CONFIG_XFS_FS is not set 1726# CONFIG_XFS_FS is not set
1681# CONFIG_GFS2_FS is not set 1727# CONFIG_GFS2_FS is not set
1682# CONFIG_OCFS2_FS is not set 1728# CONFIG_OCFS2_FS is not set
1683# CONFIG_MINIX_FS is not set 1729CONFIG_DNOTIFY=y
1684# CONFIG_ROMFS_FS is not set
1685CONFIG_INOTIFY=y 1730CONFIG_INOTIFY=y
1686CONFIG_INOTIFY_USER=y 1731CONFIG_INOTIFY_USER=y
1687# CONFIG_QUOTA is not set 1732# CONFIG_QUOTA is not set
1688CONFIG_DNOTIFY=y
1689# CONFIG_AUTOFS_FS is not set 1733# CONFIG_AUTOFS_FS is not set
1690CONFIG_AUTOFS4_FS=m 1734CONFIG_AUTOFS4_FS=m
1691CONFIG_FUSE_FS=m 1735CONFIG_FUSE_FS=m
@@ -1733,8 +1777,10 @@ CONFIG_HFSPLUS_FS=m
1733# CONFIG_EFS_FS is not set 1777# CONFIG_EFS_FS is not set
1734# CONFIG_CRAMFS is not set 1778# CONFIG_CRAMFS is not set
1735# CONFIG_VXFS_FS is not set 1779# CONFIG_VXFS_FS is not set
1780# CONFIG_MINIX_FS is not set
1736# CONFIG_HPFS_FS is not set 1781# CONFIG_HPFS_FS is not set
1737# CONFIG_QNX4FS_FS is not set 1782# CONFIG_QNX4FS_FS is not set
1783# CONFIG_ROMFS_FS is not set
1738# CONFIG_SYSV_FS is not set 1784# CONFIG_SYSV_FS is not set
1739# CONFIG_UFS_FS is not set 1785# CONFIG_UFS_FS is not set
1740CONFIG_NETWORK_FILESYSTEMS=y 1786CONFIG_NETWORK_FILESYSTEMS=y
@@ -1828,7 +1874,6 @@ CONFIG_NLS_ISO8859_1=m
1828# CONFIG_NLS_KOI8_U is not set 1874# CONFIG_NLS_KOI8_U is not set
1829CONFIG_NLS_UTF8=m 1875CONFIG_NLS_UTF8=m
1830# CONFIG_DLM is not set 1876# CONFIG_DLM is not set
1831# CONFIG_UCC_SLOW is not set
1832 1877
1833# 1878#
1834# Library routines 1879# Library routines
@@ -1850,11 +1895,6 @@ CONFIG_PLIST=y
1850CONFIG_HAS_IOMEM=y 1895CONFIG_HAS_IOMEM=y
1851CONFIG_HAS_IOPORT=y 1896CONFIG_HAS_IOPORT=y
1852CONFIG_HAS_DMA=y 1897CONFIG_HAS_DMA=y
1853CONFIG_INSTRUMENTATION=y
1854CONFIG_PROFILING=y
1855CONFIG_OPROFILE=y
1856# CONFIG_KPROBES is not set
1857# CONFIG_MARKERS is not set
1858 1898
1859# 1899#
1860# Kernel hacking 1900# Kernel hacking
@@ -1873,6 +1913,7 @@ CONFIG_SCHED_DEBUG=y
1873# CONFIG_SCHEDSTATS is not set 1913# CONFIG_SCHEDSTATS is not set
1874# CONFIG_TIMER_STATS is not set 1914# CONFIG_TIMER_STATS is not set
1875# CONFIG_SLUB_DEBUG_ON is not set 1915# CONFIG_SLUB_DEBUG_ON is not set
1916# CONFIG_SLUB_STATS is not set
1876# CONFIG_DEBUG_RT_MUTEXES is not set 1917# CONFIG_DEBUG_RT_MUTEXES is not set
1877# CONFIG_RT_MUTEX_TESTER is not set 1918# CONFIG_RT_MUTEX_TESTER is not set
1878# CONFIG_DEBUG_SPINLOCK is not set 1919# CONFIG_DEBUG_SPINLOCK is not set
@@ -1885,9 +1926,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1885# CONFIG_DEBUG_VM is not set 1926# CONFIG_DEBUG_VM is not set
1886# CONFIG_DEBUG_LIST is not set 1927# CONFIG_DEBUG_LIST is not set
1887# CONFIG_DEBUG_SG is not set 1928# CONFIG_DEBUG_SG is not set
1888# CONFIG_FORCED_INLINING is not set
1889# CONFIG_BOOT_PRINTK_DELAY is not set 1929# CONFIG_BOOT_PRINTK_DELAY is not set
1890# CONFIG_RCU_TORTURE_TEST is not set 1930# CONFIG_RCU_TORTURE_TEST is not set
1931# CONFIG_BACKTRACE_SELF_TEST is not set
1891# CONFIG_FAULT_INJECTION is not set 1932# CONFIG_FAULT_INJECTION is not set
1892# CONFIG_SAMPLES is not set 1933# CONFIG_SAMPLES is not set
1893# CONFIG_DEBUG_STACKOVERFLOW is not set 1934# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1908,7 +1949,9 @@ CONFIG_BOOTX_TEXT=y
1908# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1949# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1909CONFIG_CRYPTO=y 1950CONFIG_CRYPTO=y
1910CONFIG_CRYPTO_ALGAPI=y 1951CONFIG_CRYPTO_ALGAPI=y
1952CONFIG_CRYPTO_AEAD=y
1911CONFIG_CRYPTO_BLKCIPHER=y 1953CONFIG_CRYPTO_BLKCIPHER=y
1954# CONFIG_CRYPTO_SEQIV is not set
1912CONFIG_CRYPTO_HASH=y 1955CONFIG_CRYPTO_HASH=y
1913CONFIG_CRYPTO_MANAGER=y 1956CONFIG_CRYPTO_MANAGER=y
1914CONFIG_CRYPTO_HMAC=y 1957CONFIG_CRYPTO_HMAC=y
@@ -1927,6 +1970,9 @@ CONFIG_CRYPTO_CBC=y
1927CONFIG_CRYPTO_PCBC=m 1970CONFIG_CRYPTO_PCBC=m
1928# CONFIG_CRYPTO_LRW is not set 1971# CONFIG_CRYPTO_LRW is not set
1929# CONFIG_CRYPTO_XTS is not set 1972# CONFIG_CRYPTO_XTS is not set
1973# CONFIG_CRYPTO_CTR is not set
1974# CONFIG_CRYPTO_GCM is not set
1975# CONFIG_CRYPTO_CCM is not set
1930# CONFIG_CRYPTO_CRYPTD is not set 1976# CONFIG_CRYPTO_CRYPTD is not set
1931CONFIG_CRYPTO_DES=y 1977CONFIG_CRYPTO_DES=y
1932# CONFIG_CRYPTO_FCRYPT is not set 1978# CONFIG_CRYPTO_FCRYPT is not set
@@ -1942,11 +1988,14 @@ CONFIG_CRYPTO_ARC4=m
1942CONFIG_CRYPTO_KHAZAD=m 1988CONFIG_CRYPTO_KHAZAD=m
1943CONFIG_CRYPTO_ANUBIS=m 1989CONFIG_CRYPTO_ANUBIS=m
1944# CONFIG_CRYPTO_SEED is not set 1990# CONFIG_CRYPTO_SEED is not set
1991# CONFIG_CRYPTO_SALSA20 is not set
1945CONFIG_CRYPTO_DEFLATE=m 1992CONFIG_CRYPTO_DEFLATE=m
1946CONFIG_CRYPTO_MICHAEL_MIC=m 1993CONFIG_CRYPTO_MICHAEL_MIC=m
1947CONFIG_CRYPTO_CRC32C=m 1994CONFIG_CRYPTO_CRC32C=m
1948# CONFIG_CRYPTO_CAMELLIA is not set 1995# CONFIG_CRYPTO_CAMELLIA is not set
1949# CONFIG_CRYPTO_TEST is not set 1996# CONFIG_CRYPTO_TEST is not set
1950# CONFIG_CRYPTO_AUTHENC is not set 1997CONFIG_CRYPTO_AUTHENC=y
1998# CONFIG_CRYPTO_LZO is not set
1951CONFIG_CRYPTO_HW=y 1999CONFIG_CRYPTO_HW=y
2000# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1952# CONFIG_PPC_CLOCK is not set 2001# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 7695a4c66e80..880ab7ad10c1 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Fri Dec 21 14:47:29 2007 4# Thu Mar 20 11:06:28 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -49,7 +50,9 @@ CONFIG_GENERIC_TBSYNC=y
49CONFIG_AUDIT_ARCH=y 50CONFIG_AUDIT_ARCH=y
50CONFIG_GENERIC_BUG=y 51CONFIG_GENERIC_BUG=y
51# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
52CONFIG_PPC64_SWSUSP=y 53CONFIG_HIBERNATE_64=y
54CONFIG_ARCH_HIBERNATION_POSSIBLE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
54CONFIG_PPC_DCR_MMIO=y 57CONFIG_PPC_DCR_MMIO=y
55CONFIG_PPC_DCR=y 58CONFIG_PPC_DCR=y
@@ -72,8 +75,6 @@ CONFIG_POSIX_MQUEUE=y
72CONFIG_TASKSTATS=y 75CONFIG_TASKSTATS=y
73CONFIG_TASK_DELAY_ACCT=y 76CONFIG_TASK_DELAY_ACCT=y
74# CONFIG_TASK_XACCT is not set 77# CONFIG_TASK_XACCT is not set
75# CONFIG_USER_NS is not set
76# CONFIG_PID_NS is not set
77# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_IKCONFIG_PROC=y
@@ -82,13 +83,20 @@ CONFIG_CGROUPS=y
82# CONFIG_CGROUP_DEBUG is not set 83# CONFIG_CGROUP_DEBUG is not set
83# CONFIG_CGROUP_NS is not set 84# CONFIG_CGROUP_NS is not set
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
85CONFIG_FAIR_GROUP_SCHED=y 86# CONFIG_GROUP_SCHED is not set
86CONFIG_FAIR_USER_SCHED=y 87# CONFIG_USER_SCHED is not set
87# CONFIG_FAIR_CGROUP_SCHED is not set 88# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUP_CPUACCT is not set 89# CONFIG_CGROUP_CPUACCT is not set
90# CONFIG_RESOURCE_COUNTERS is not set
89CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
92CONFIG_SYSFS_DEPRECATED_V2=y
90CONFIG_PROC_PID_CPUSET=y 93CONFIG_PROC_PID_CPUSET=y
91CONFIG_RELAY=y 94CONFIG_RELAY=y
95CONFIG_NAMESPACES=y
96# CONFIG_UTS_NS is not set
97# CONFIG_IPC_NS is not set
98# CONFIG_USER_NS is not set
99# CONFIG_PID_NS is not set
92CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
94CONFIG_CC_OPTIMIZE_FOR_SIZE=y 102CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -102,11 +110,13 @@ CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 110CONFIG_PRINTK=y
103CONFIG_BUG=y 111CONFIG_BUG=y
104CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
113# CONFIG_COMPAT_BRK is not set
105CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 115CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y 116CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 117CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
119CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 120CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 121CONFIG_SHMEM=y
112CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
@@ -114,6 +124,15 @@ CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 124# CONFIG_SLAB is not set
115CONFIG_SLUB=y 125CONFIG_SLUB=y
116# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
127CONFIG_PROFILING=y
128# CONFIG_MARKERS is not set
129CONFIG_OPROFILE=y
130CONFIG_HAVE_OPROFILE=y
131# CONFIG_KPROBES is not set
132CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y
134CONFIG_PROC_PAGE_MONITOR=y
135CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
119CONFIG_BASE_SMALL=0 138CONFIG_BASE_SMALL=0
@@ -141,6 +160,7 @@ CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
142# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y
144 164
145# 165#
146# Platform support 166# Platform support
@@ -163,8 +183,8 @@ CONFIG_VIODASD=y
163CONFIG_VIOCD=m 183CONFIG_VIOCD=m
164CONFIG_VIOTAPE=m 184CONFIG_VIOTAPE=m
165CONFIG_VIOPATH=y 185CONFIG_VIOPATH=y
166# CONFIG_PPC_MPC52xx is not set 186# CONFIG_PPC_MPC512x is not set
167# CONFIG_PPC_MPC5200 is not set 187# CONFIG_PPC_MPC5121 is not set
168CONFIG_PPC_PMAC=y 188CONFIG_PPC_PMAC=y
169CONFIG_PPC_PMAC64=y 189CONFIG_PPC_PMAC64=y
170CONFIG_PPC_MAPLE=y 190CONFIG_PPC_MAPLE=y
@@ -176,7 +196,6 @@ CONFIG_PPC_PASEMI=y
176CONFIG_PPC_PASEMI_IOMMU=y 196CONFIG_PPC_PASEMI_IOMMU=y
177# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set 197# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
178CONFIG_PPC_PASEMI_MDIO=y 198CONFIG_PPC_PASEMI_MDIO=y
179CONFIG_ELECTRA_IDE=y
180CONFIG_PPC_CELLEB=y 199CONFIG_PPC_CELLEB=y
181# CONFIG_PPC_PS3 is not set 200# CONFIG_PPC_PS3 is not set
182CONFIG_PPC_CELL=y 201CONFIG_PPC_CELL=y
@@ -193,11 +212,13 @@ CONFIG_CBE_RAS=y
193CONFIG_CBE_THERM=m 212CONFIG_CBE_THERM=m
194CONFIG_CBE_CPUFREQ=m 213CONFIG_CBE_CPUFREQ=m
195CONFIG_CBE_CPUFREQ_PMI=m 214CONFIG_CBE_CPUFREQ_PMI=m
215CONFIG_OPROFILE_CELL=y
196# CONFIG_PQ2ADS is not set 216# CONFIG_PQ2ADS is not set
197CONFIG_PPC_NATIVE=y 217CONFIG_PPC_NATIVE=y
198CONFIG_UDBG_RTAS_CONSOLE=y 218CONFIG_UDBG_RTAS_CONSOLE=y
199CONFIG_PPC_UDBG_BEAT=y 219CONFIG_PPC_UDBG_BEAT=y
200CONFIG_XICS=y 220CONFIG_XICS=y
221# CONFIG_IPIC is not set
201CONFIG_MPIC=y 222CONFIG_MPIC=y
202# CONFIG_MPIC_WEIRD is not set 223# CONFIG_MPIC_WEIRD is not set
203CONFIG_PPC_I8259=y 224CONFIG_PPC_I8259=y
@@ -236,7 +257,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
236# 257#
237CONFIG_CPU_FREQ_PMAC64=y 258CONFIG_CPU_FREQ_PMAC64=y
238CONFIG_PPC_PASEMI_CPUFREQ=y 259CONFIG_PPC_PASEMI_CPUFREQ=y
239# CONFIG_CPM2 is not set
240CONFIG_AXON_RAM=m 260CONFIG_AXON_RAM=m
241# CONFIG_FSL_ULI1575 is not set 261# CONFIG_FSL_ULI1575 is not set
242 262
@@ -252,17 +272,21 @@ CONFIG_HZ_250=y
252# CONFIG_HZ_300 is not set 272# CONFIG_HZ_300 is not set
253# CONFIG_HZ_1000 is not set 273# CONFIG_HZ_1000 is not set
254CONFIG_HZ=250 274CONFIG_HZ=250
275# CONFIG_SCHED_HRTICK is not set
255CONFIG_PREEMPT_NONE=y 276CONFIG_PREEMPT_NONE=y
256# CONFIG_PREEMPT_VOLUNTARY is not set 277# CONFIG_PREEMPT_VOLUNTARY is not set
257# CONFIG_PREEMPT is not set 278# CONFIG_PREEMPT is not set
258# CONFIG_PREEMPT_BKL is not set
259CONFIG_BINFMT_ELF=y 279CONFIG_BINFMT_ELF=y
280CONFIG_COMPAT_BINFMT_ELF=y
260CONFIG_BINFMT_MISC=m 281CONFIG_BINFMT_MISC=m
261CONFIG_FORCE_MAX_ZONEORDER=13 282CONFIG_FORCE_MAX_ZONEORDER=13
262CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 283CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
263CONFIG_IOMMU_VMERGE=y 284CONFIG_IOMMU_VMERGE=y
285CONFIG_IOMMU_HELPER=y
264CONFIG_HOTPLUG_CPU=y 286CONFIG_HOTPLUG_CPU=y
265CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 287CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
288CONFIG_ARCH_HAS_WALK_MEMORY=y
289CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
266CONFIG_KEXEC=y 290CONFIG_KEXEC=y
267# CONFIG_CRASH_DUMP is not set 291# CONFIG_CRASH_DUMP is not set
268CONFIG_IRQ_ALL_CPUS=y 292CONFIG_IRQ_ALL_CPUS=y
@@ -294,11 +318,9 @@ CONFIG_PPC_HAS_HASH_64K=y
294# CONFIG_SCHED_SMT is not set 318# CONFIG_SCHED_SMT is not set
295CONFIG_PROC_DEVICETREE=y 319CONFIG_PROC_DEVICETREE=y
296# CONFIG_CMDLINE_BOOL is not set 320# CONFIG_CMDLINE_BOOL is not set
321CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
297# CONFIG_PM is not set 322# CONFIG_PM is not set
298CONFIG_SUSPEND_SMP_POSSIBLE=y
299CONFIG_HIBERNATION_SMP_POSSIBLE=y
300CONFIG_SECCOMP=y 323CONFIG_SECCOMP=y
301# CONFIG_WANT_DEVICE_TREE is not set
302CONFIG_ISA_DMA_API=y 324CONFIG_ISA_DMA_API=y
303 325
304# 326#
@@ -352,6 +374,7 @@ CONFIG_XFRM=y
352CONFIG_XFRM_USER=m 374CONFIG_XFRM_USER=m
353# CONFIG_XFRM_SUB_POLICY is not set 375# CONFIG_XFRM_SUB_POLICY is not set
354# CONFIG_XFRM_MIGRATE is not set 376# CONFIG_XFRM_MIGRATE is not set
377# CONFIG_XFRM_STATISTICS is not set
355CONFIG_NET_KEY=m 378CONFIG_NET_KEY=m
356# CONFIG_NET_KEY_MIGRATE is not set 379# CONFIG_NET_KEY_MIGRATE is not set
357CONFIG_INET=y 380CONFIG_INET=y
@@ -375,7 +398,7 @@ CONFIG_INET_TUNNEL=y
375CONFIG_INET_XFRM_MODE_TRANSPORT=y 398CONFIG_INET_XFRM_MODE_TRANSPORT=y
376CONFIG_INET_XFRM_MODE_TUNNEL=y 399CONFIG_INET_XFRM_MODE_TUNNEL=y
377CONFIG_INET_XFRM_MODE_BEET=y 400CONFIG_INET_XFRM_MODE_BEET=y
378CONFIG_INET_LRO=m 401CONFIG_INET_LRO=y
379CONFIG_INET_DIAG=y 402CONFIG_INET_DIAG=y
380CONFIG_INET_TCP_DIAG=y 403CONFIG_INET_TCP_DIAG=y
381# CONFIG_TCP_CONG_ADVANCED is not set 404# CONFIG_TCP_CONG_ADVANCED is not set
@@ -389,14 +412,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
389# CONFIG_NETWORK_SECMARK is not set 412# CONFIG_NETWORK_SECMARK is not set
390CONFIG_NETFILTER=y 413CONFIG_NETFILTER=y
391# CONFIG_NETFILTER_DEBUG is not set 414# CONFIG_NETFILTER_DEBUG is not set
415CONFIG_NETFILTER_ADVANCED=y
392 416
393# 417#
394# Core Netfilter Configuration 418# Core Netfilter Configuration
395# 419#
396CONFIG_NETFILTER_NETLINK=y 420CONFIG_NETFILTER_NETLINK=m
397CONFIG_NETFILTER_NETLINK_QUEUE=m 421CONFIG_NETFILTER_NETLINK_QUEUE=m
398CONFIG_NETFILTER_NETLINK_LOG=m 422CONFIG_NETFILTER_NETLINK_LOG=m
399CONFIG_NF_CONNTRACK_ENABLED=m
400CONFIG_NF_CONNTRACK=m 423CONFIG_NF_CONNTRACK=m
401CONFIG_NF_CT_ACCT=y 424CONFIG_NF_CT_ACCT=y
402CONFIG_NF_CONNTRACK_MARK=y 425CONFIG_NF_CONNTRACK_MARK=y
@@ -422,8 +445,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
422CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 445CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
423CONFIG_NETFILTER_XT_TARGET_NFLOG=m 446CONFIG_NETFILTER_XT_TARGET_NFLOG=m
424CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 447CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
448CONFIG_NETFILTER_XT_TARGET_RATEEST=m
425CONFIG_NETFILTER_XT_TARGET_TRACE=m 449CONFIG_NETFILTER_XT_TARGET_TRACE=m
426CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 450CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
451CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
427CONFIG_NETFILTER_XT_MATCH_COMMENT=m 452CONFIG_NETFILTER_XT_MATCH_COMMENT=m
428CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 453CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
429CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 454CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -433,14 +458,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
433CONFIG_NETFILTER_XT_MATCH_DSCP=m 458CONFIG_NETFILTER_XT_MATCH_DSCP=m
434CONFIG_NETFILTER_XT_MATCH_ESP=m 459CONFIG_NETFILTER_XT_MATCH_ESP=m
435CONFIG_NETFILTER_XT_MATCH_HELPER=m 460CONFIG_NETFILTER_XT_MATCH_HELPER=m
461CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
436CONFIG_NETFILTER_XT_MATCH_LENGTH=m 462CONFIG_NETFILTER_XT_MATCH_LENGTH=m
437CONFIG_NETFILTER_XT_MATCH_LIMIT=m 463CONFIG_NETFILTER_XT_MATCH_LIMIT=m
438CONFIG_NETFILTER_XT_MATCH_MAC=m 464CONFIG_NETFILTER_XT_MATCH_MAC=m
439CONFIG_NETFILTER_XT_MATCH_MARK=m 465CONFIG_NETFILTER_XT_MATCH_MARK=m
466CONFIG_NETFILTER_XT_MATCH_OWNER=m
440CONFIG_NETFILTER_XT_MATCH_POLICY=m 467CONFIG_NETFILTER_XT_MATCH_POLICY=m
441CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 468CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
442CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 469CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
443CONFIG_NETFILTER_XT_MATCH_QUOTA=m 470CONFIG_NETFILTER_XT_MATCH_QUOTA=m
471CONFIG_NETFILTER_XT_MATCH_RATEEST=m
444CONFIG_NETFILTER_XT_MATCH_REALM=m 472CONFIG_NETFILTER_XT_MATCH_REALM=m
445CONFIG_NETFILTER_XT_MATCH_SCTP=m 473CONFIG_NETFILTER_XT_MATCH_SCTP=m
446CONFIG_NETFILTER_XT_MATCH_STATE=m 474CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -458,13 +486,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
458CONFIG_NF_CONNTRACK_PROC_COMPAT=y 486CONFIG_NF_CONNTRACK_PROC_COMPAT=y
459CONFIG_IP_NF_QUEUE=m 487CONFIG_IP_NF_QUEUE=m
460CONFIG_IP_NF_IPTABLES=m 488CONFIG_IP_NF_IPTABLES=m
461CONFIG_IP_NF_MATCH_IPRANGE=m
462CONFIG_IP_NF_MATCH_TOS=m
463CONFIG_IP_NF_MATCH_RECENT=m 489CONFIG_IP_NF_MATCH_RECENT=m
464CONFIG_IP_NF_MATCH_ECN=m 490CONFIG_IP_NF_MATCH_ECN=m
465CONFIG_IP_NF_MATCH_AH=m 491CONFIG_IP_NF_MATCH_AH=m
466CONFIG_IP_NF_MATCH_TTL=m 492CONFIG_IP_NF_MATCH_TTL=m
467CONFIG_IP_NF_MATCH_OWNER=m
468CONFIG_IP_NF_MATCH_ADDRTYPE=m 493CONFIG_IP_NF_MATCH_ADDRTYPE=m
469CONFIG_IP_NF_FILTER=m 494CONFIG_IP_NF_FILTER=m
470CONFIG_IP_NF_TARGET_REJECT=m 495CONFIG_IP_NF_TARGET_REJECT=m
@@ -475,7 +500,6 @@ CONFIG_NF_NAT_NEEDED=y
475CONFIG_IP_NF_TARGET_MASQUERADE=m 500CONFIG_IP_NF_TARGET_MASQUERADE=m
476CONFIG_IP_NF_TARGET_REDIRECT=m 501CONFIG_IP_NF_TARGET_REDIRECT=m
477CONFIG_IP_NF_TARGET_NETMAP=m 502CONFIG_IP_NF_TARGET_NETMAP=m
478CONFIG_IP_NF_TARGET_SAME=m
479CONFIG_NF_NAT_SNMP_BASIC=m 503CONFIG_NF_NAT_SNMP_BASIC=m
480CONFIG_NF_NAT_PROTO_GRE=m 504CONFIG_NF_NAT_PROTO_GRE=m
481CONFIG_NF_NAT_FTP=m 505CONFIG_NF_NAT_FTP=m
@@ -486,7 +510,6 @@ CONFIG_NF_NAT_PPTP=m
486CONFIG_NF_NAT_H323=m 510CONFIG_NF_NAT_H323=m
487CONFIG_NF_NAT_SIP=m 511CONFIG_NF_NAT_SIP=m
488CONFIG_IP_NF_MANGLE=m 512CONFIG_IP_NF_MANGLE=m
489CONFIG_IP_NF_TARGET_TOS=m
490CONFIG_IP_NF_TARGET_ECN=m 513CONFIG_IP_NF_TARGET_ECN=m
491CONFIG_IP_NF_TARGET_TTL=m 514CONFIG_IP_NF_TARGET_TTL=m
492CONFIG_IP_NF_TARGET_CLUSTERIP=m 515CONFIG_IP_NF_TARGET_CLUSTERIP=m
@@ -517,6 +540,7 @@ CONFIG_NET_CLS_ROUTE=y
517# 540#
518# CONFIG_NET_PKTGEN is not set 541# CONFIG_NET_PKTGEN is not set
519# CONFIG_HAMRADIO is not set 542# CONFIG_HAMRADIO is not set
543# CONFIG_CAN is not set
520# CONFIG_IRDA is not set 544# CONFIG_IRDA is not set
521# CONFIG_BT is not set 545# CONFIG_BT is not set
522# CONFIG_AF_RXRPC is not set 546# CONFIG_AF_RXRPC is not set
@@ -563,7 +587,7 @@ CONFIG_BLK_DEV_NBD=m
563CONFIG_BLK_DEV_RAM=y 587CONFIG_BLK_DEV_RAM=y
564CONFIG_BLK_DEV_RAM_COUNT=16 588CONFIG_BLK_DEV_RAM_COUNT=16
565CONFIG_BLK_DEV_RAM_SIZE=65536 589CONFIG_BLK_DEV_RAM_SIZE=65536
566CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 590# CONFIG_BLK_DEV_XIP is not set
567# CONFIG_CDROM_PKTCDVD is not set 591# CONFIG_CDROM_PKTCDVD is not set
568# CONFIG_ATA_OVER_ETH is not set 592# CONFIG_ATA_OVER_ETH is not set
569CONFIG_MISC_DEVICES=y 593CONFIG_MISC_DEVICES=y
@@ -571,11 +595,13 @@ CONFIG_MISC_DEVICES=y
571# CONFIG_EEPROM_93CX6 is not set 595# CONFIG_EEPROM_93CX6 is not set
572# CONFIG_SGI_IOC4 is not set 596# CONFIG_SGI_IOC4 is not set
573# CONFIG_TIFM_CORE is not set 597# CONFIG_TIFM_CORE is not set
598# CONFIG_ENCLOSURE_SERVICES is not set
599CONFIG_HAVE_IDE=y
574CONFIG_IDE=y 600CONFIG_IDE=y
575CONFIG_BLK_DEV_IDE=y 601CONFIG_BLK_DEV_IDE=y
576 602
577# 603#
578# Please see Documentation/ide.txt for help/info on IDE drives 604# Please see Documentation/ide/ide.txt for help/info on IDE drives
579# 605#
580# CONFIG_BLK_DEV_IDE_SATA is not set 606# CONFIG_BLK_DEV_IDE_SATA is not set
581CONFIG_BLK_DEV_IDEDISK=y 607CONFIG_BLK_DEV_IDEDISK=y
@@ -583,6 +609,7 @@ CONFIG_BLK_DEV_IDEDISK=y
583# CONFIG_BLK_DEV_IDECS is not set 609# CONFIG_BLK_DEV_IDECS is not set
584# CONFIG_BLK_DEV_DELKIN is not set 610# CONFIG_BLK_DEV_DELKIN is not set
585CONFIG_BLK_DEV_IDECD=y 611CONFIG_BLK_DEV_IDECD=y
612CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
586# CONFIG_BLK_DEV_IDETAPE is not set 613# CONFIG_BLK_DEV_IDETAPE is not set
587# CONFIG_BLK_DEV_IDEFLOPPY is not set 614# CONFIG_BLK_DEV_IDEFLOPPY is not set
588# CONFIG_BLK_DEV_IDESCSI is not set 615# CONFIG_BLK_DEV_IDESCSI is not set
@@ -594,12 +621,12 @@ CONFIG_IDE_PROC_FS=y
594# 621#
595CONFIG_IDE_GENERIC=y 622CONFIG_IDE_GENERIC=y
596# CONFIG_BLK_DEV_PLATFORM is not set 623# CONFIG_BLK_DEV_PLATFORM is not set
624CONFIG_BLK_DEV_IDEDMA_SFF=y
597 625
598# 626#
599# PCI IDE chipsets support 627# PCI IDE chipsets support
600# 628#
601CONFIG_BLK_DEV_IDEPCI=y 629CONFIG_BLK_DEV_IDEPCI=y
602CONFIG_IDEPCI_SHARE_IRQ=y
603CONFIG_IDEPCI_PCIBUS_ORDER=y 630CONFIG_IDEPCI_PCIBUS_ORDER=y
604# CONFIG_BLK_DEV_OFFBOARD is not set 631# CONFIG_BLK_DEV_OFFBOARD is not set
605CONFIG_BLK_DEV_GENERIC=y 632CONFIG_BLK_DEV_GENERIC=y
@@ -634,7 +661,6 @@ CONFIG_BLK_DEV_CELLEB=y
634CONFIG_BLK_DEV_IDE_PMAC=y 661CONFIG_BLK_DEV_IDE_PMAC=y
635CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 662CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
636CONFIG_BLK_DEV_IDEDMA_PMAC=y 663CONFIG_BLK_DEV_IDEDMA_PMAC=y
637# CONFIG_IDE_ARM is not set
638CONFIG_BLK_DEV_IDEDMA=y 664CONFIG_BLK_DEV_IDEDMA=y
639CONFIG_IDE_ARCH_OBSOLETE_INIT=y 665CONFIG_IDE_ARCH_OBSOLETE_INIT=y
640# CONFIG_BLK_DEV_HD is not set 666# CONFIG_BLK_DEV_HD is not set
@@ -701,6 +727,7 @@ CONFIG_SCSI_LOWLEVEL=y
701CONFIG_SCSI_IBMVSCSI=y 727CONFIG_SCSI_IBMVSCSI=y
702# CONFIG_SCSI_INITIO is not set 728# CONFIG_SCSI_INITIO is not set
703# CONFIG_SCSI_INIA100 is not set 729# CONFIG_SCSI_INIA100 is not set
730# CONFIG_SCSI_MVSAS is not set
704# CONFIG_SCSI_STEX is not set 731# CONFIG_SCSI_STEX is not set
705CONFIG_SCSI_SYM53C8XX_2=y 732CONFIG_SCSI_SYM53C8XX_2=y
706CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 733CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -760,6 +787,7 @@ CONFIG_SATA_SIL24=y
760# CONFIG_PATA_MPIIX is not set 787# CONFIG_PATA_MPIIX is not set
761# CONFIG_PATA_OLDPIIX is not set 788# CONFIG_PATA_OLDPIIX is not set
762# CONFIG_PATA_NETCELL is not set 789# CONFIG_PATA_NETCELL is not set
790# CONFIG_PATA_NINJA32 is not set
763# CONFIG_PATA_NS87410 is not set 791# CONFIG_PATA_NS87410 is not set
764# CONFIG_PATA_NS87415 is not set 792# CONFIG_PATA_NS87415 is not set
765# CONFIG_PATA_OPTI is not set 793# CONFIG_PATA_OPTI is not set
@@ -776,6 +804,7 @@ CONFIG_PATA_PCMCIA=y
776# CONFIG_PATA_VIA is not set 804# CONFIG_PATA_VIA is not set
777CONFIG_PATA_WINBOND=y 805CONFIG_PATA_WINBOND=y
778CONFIG_PATA_PLATFORM=y 806CONFIG_PATA_PLATFORM=y
807# CONFIG_PATA_OF_PLATFORM is not set
779CONFIG_PATA_SCC=y 808CONFIG_PATA_SCC=y
780CONFIG_MD=y 809CONFIG_MD=y
781CONFIG_BLK_DEV_MD=y 810CONFIG_BLK_DEV_MD=y
@@ -847,7 +876,6 @@ CONFIG_BONDING=m
847# CONFIG_EQUALIZER is not set 876# CONFIG_EQUALIZER is not set
848CONFIG_TUN=m 877CONFIG_TUN=m
849# CONFIG_VETH is not set 878# CONFIG_VETH is not set
850# CONFIG_IP1000 is not set
851# CONFIG_ARCNET is not set 879# CONFIG_ARCNET is not set
852CONFIG_PHYLIB=y 880CONFIG_PHYLIB=y
853 881
@@ -863,11 +891,8 @@ CONFIG_MARVELL_PHY=y
863# CONFIG_SMSC_PHY is not set 891# CONFIG_SMSC_PHY is not set
864CONFIG_BROADCOM_PHY=m 892CONFIG_BROADCOM_PHY=m
865# CONFIG_ICPLUS_PHY is not set 893# CONFIG_ICPLUS_PHY is not set
866CONFIG_FIXED_PHY=m 894# CONFIG_REALTEK_PHY is not set
867CONFIG_FIXED_MII_10_FDX=y 895# CONFIG_FIXED_PHY is not set
868CONFIG_FIXED_MII_100_FDX=y
869# CONFIG_FIXED_MII_1000_FDX is not set
870CONFIG_FIXED_MII_AMNT=1
871# CONFIG_MDIO_BITBANG is not set 896# CONFIG_MDIO_BITBANG is not set
872CONFIG_NET_ETHERNET=y 897CONFIG_NET_ETHERNET=y
873CONFIG_MII=y 898CONFIG_MII=y
@@ -899,6 +924,7 @@ CONFIG_E100=y
899# CONFIG_NE2K_PCI is not set 924# CONFIG_NE2K_PCI is not set
900# CONFIG_8139CP is not set 925# CONFIG_8139CP is not set
901# CONFIG_8139TOO is not set 926# CONFIG_8139TOO is not set
927# CONFIG_R6040 is not set
902# CONFIG_SIS900 is not set 928# CONFIG_SIS900 is not set
903# CONFIG_EPIC100 is not set 929# CONFIG_EPIC100 is not set
904# CONFIG_SUNDANCE is not set 930# CONFIG_SUNDANCE is not set
@@ -912,6 +938,9 @@ CONFIG_E1000=y
912# CONFIG_E1000_NAPI is not set 938# CONFIG_E1000_NAPI is not set
913# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 939# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
914# CONFIG_E1000E is not set 940# CONFIG_E1000E is not set
941# CONFIG_E1000E_ENABLED is not set
942# CONFIG_IP1000 is not set
943# CONFIG_IGB is not set
915# CONFIG_NS83820 is not set 944# CONFIG_NS83820 is not set
916# CONFIG_HAMACHI is not set 945# CONFIG_HAMACHI is not set
917# CONFIG_YELLOWFIN is not set 946# CONFIG_YELLOWFIN is not set
@@ -940,6 +969,7 @@ CONFIG_IXGB=m
940CONFIG_PASEMI_MAC=y 969CONFIG_PASEMI_MAC=y
941# CONFIG_MLX4_CORE is not set 970# CONFIG_MLX4_CORE is not set
942# CONFIG_TEHUTI is not set 971# CONFIG_TEHUTI is not set
972# CONFIG_BNX2X is not set
943CONFIG_TR=y 973CONFIG_TR=y
944CONFIG_IBMOL=y 974CONFIG_IBMOL=y
945# CONFIG_3C359 is not set 975# CONFIG_3C359 is not set
@@ -977,7 +1007,6 @@ CONFIG_PPPOE=m
977# CONFIG_SLIP is not set 1007# CONFIG_SLIP is not set
978CONFIG_SLHC=m 1008CONFIG_SLHC=m
979# CONFIG_NET_FC is not set 1009# CONFIG_NET_FC is not set
980# CONFIG_SHAPER is not set
981CONFIG_NETCONSOLE=y 1010CONFIG_NETCONSOLE=y
982# CONFIG_NETCONSOLE_DYNAMIC is not set 1011# CONFIG_NETCONSOLE_DYNAMIC is not set
983CONFIG_NETPOLL=y 1012CONFIG_NETPOLL=y
@@ -1056,6 +1085,7 @@ CONFIG_VT_CONSOLE=y
1056CONFIG_HW_CONSOLE=y 1085CONFIG_HW_CONSOLE=y
1057# CONFIG_VT_HW_CONSOLE_BINDING is not set 1086# CONFIG_VT_HW_CONSOLE_BINDING is not set
1058# CONFIG_SERIAL_NONSTANDARD is not set 1087# CONFIG_SERIAL_NONSTANDARD is not set
1088# CONFIG_NOZOMI is not set
1059 1089
1060# 1090#
1061# Serial drivers 1091# Serial drivers
@@ -1103,6 +1133,7 @@ CONFIG_GEN_RTC=y
1103# CONFIG_SYNCLINK_CS is not set 1133# CONFIG_SYNCLINK_CS is not set
1104# CONFIG_CARDMAN_4000 is not set 1134# CONFIG_CARDMAN_4000 is not set
1105# CONFIG_CARDMAN_4040 is not set 1135# CONFIG_CARDMAN_4040 is not set
1136# CONFIG_IPWIRELESS is not set
1106CONFIG_RAW_DRIVER=y 1137CONFIG_RAW_DRIVER=y
1107CONFIG_MAX_RAW_DEVS=256 1138CONFIG_MAX_RAW_DEVS=256
1108# CONFIG_HANGCHECK_TIMER is not set 1139# CONFIG_HANGCHECK_TIMER is not set
@@ -1151,13 +1182,12 @@ CONFIG_I2C_PASEMI=y
1151# 1182#
1152# Miscellaneous I2C Chip support 1183# Miscellaneous I2C Chip support
1153# 1184#
1154# CONFIG_SENSORS_DS1337 is not set
1155# CONFIG_SENSORS_DS1374 is not set
1156# CONFIG_DS1682 is not set 1185# CONFIG_DS1682 is not set
1157# CONFIG_SENSORS_EEPROM is not set 1186# CONFIG_SENSORS_EEPROM is not set
1158# CONFIG_SENSORS_PCF8574 is not set 1187# CONFIG_SENSORS_PCF8574 is not set
1159# CONFIG_SENSORS_PCA9539 is not set 1188# CONFIG_PCF8575 is not set
1160# CONFIG_SENSORS_PCF8591 is not set 1189# CONFIG_SENSORS_PCF8591 is not set
1190# CONFIG_TPS65010 is not set
1161# CONFIG_SENSORS_MAX6875 is not set 1191# CONFIG_SENSORS_MAX6875 is not set
1162# CONFIG_SENSORS_TSL2550 is not set 1192# CONFIG_SENSORS_TSL2550 is not set
1163# CONFIG_I2C_DEBUG_CORE is not set 1193# CONFIG_I2C_DEBUG_CORE is not set
@@ -1173,6 +1203,7 @@ CONFIG_I2C_PASEMI=y
1173# CONFIG_W1 is not set 1203# CONFIG_W1 is not set
1174# CONFIG_POWER_SUPPLY is not set 1204# CONFIG_POWER_SUPPLY is not set
1175# CONFIG_HWMON is not set 1205# CONFIG_HWMON is not set
1206# CONFIG_THERMAL is not set
1176# CONFIG_WATCHDOG is not set 1207# CONFIG_WATCHDOG is not set
1177 1208
1178# 1209#
@@ -1337,6 +1368,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1337# CONFIG_SND_BT87X is not set 1368# CONFIG_SND_BT87X is not set
1338# CONFIG_SND_CA0106 is not set 1369# CONFIG_SND_CA0106 is not set
1339# CONFIG_SND_CMIPCI is not set 1370# CONFIG_SND_CMIPCI is not set
1371# CONFIG_SND_OXYGEN is not set
1340# CONFIG_SND_CS4281 is not set 1372# CONFIG_SND_CS4281 is not set
1341# CONFIG_SND_CS46XX is not set 1373# CONFIG_SND_CS46XX is not set
1342# CONFIG_SND_CS5530 is not set 1374# CONFIG_SND_CS5530 is not set
@@ -1362,6 +1394,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1362# CONFIG_SND_HDA_INTEL is not set 1394# CONFIG_SND_HDA_INTEL is not set
1363# CONFIG_SND_HDSP is not set 1395# CONFIG_SND_HDSP is not set
1364# CONFIG_SND_HDSPM is not set 1396# CONFIG_SND_HDSPM is not set
1397# CONFIG_SND_HIFIER is not set
1365# CONFIG_SND_ICE1712 is not set 1398# CONFIG_SND_ICE1712 is not set
1366# CONFIG_SND_ICE1724 is not set 1399# CONFIG_SND_ICE1724 is not set
1367# CONFIG_SND_INTEL8X0 is not set 1400# CONFIG_SND_INTEL8X0 is not set
@@ -1379,6 +1412,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1379# CONFIG_SND_TRIDENT is not set 1412# CONFIG_SND_TRIDENT is not set
1380# CONFIG_SND_VIA82XX is not set 1413# CONFIG_SND_VIA82XX is not set
1381# CONFIG_SND_VIA82XX_MODEM is not set 1414# CONFIG_SND_VIA82XX_MODEM is not set
1415# CONFIG_SND_VIRTUOSO is not set
1382# CONFIG_SND_VX222 is not set 1416# CONFIG_SND_VX222 is not set
1383# CONFIG_SND_YMFPCI is not set 1417# CONFIG_SND_YMFPCI is not set
1384 1418
@@ -1426,6 +1460,10 @@ CONFIG_SND_AOA_SOUNDBUS_I2S=m
1426# 1460#
1427 1461
1428# 1462#
1463# ALSA SoC audio for Freescale SOCs
1464#
1465
1466#
1429# Open Sound System 1467# Open Sound System
1430# 1468#
1431# CONFIG_SOUND_PRIME is not set 1469# CONFIG_SOUND_PRIME is not set
@@ -1447,6 +1485,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1447CONFIG_USB_ARCH_HAS_EHCI=y 1485CONFIG_USB_ARCH_HAS_EHCI=y
1448CONFIG_USB=y 1486CONFIG_USB=y
1449# CONFIG_USB_DEBUG is not set 1487# CONFIG_USB_DEBUG is not set
1488# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1450 1489
1451# 1490#
1452# Miscellaneous USB options 1491# Miscellaneous USB options
@@ -1460,10 +1499,10 @@ CONFIG_USB_DEVICE_CLASS=y
1460# USB Host Controller Drivers 1499# USB Host Controller Drivers
1461# 1500#
1462CONFIG_USB_EHCI_HCD=y 1501CONFIG_USB_EHCI_HCD=y
1463# CONFIG_USB_EHCI_SPLIT_ISO is not set
1464# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1502# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1465CONFIG_USB_EHCI_TT_NEWSCHED=y 1503CONFIG_USB_EHCI_TT_NEWSCHED=y
1466CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1504CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
1505# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1467# CONFIG_USB_ISP116X_HCD is not set 1506# CONFIG_USB_ISP116X_HCD is not set
1468CONFIG_USB_OHCI_HCD=y 1507CONFIG_USB_OHCI_HCD=y
1469# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1508# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -1512,10 +1551,6 @@ CONFIG_USB_STORAGE=m
1512# 1551#
1513# USB port drivers 1552# USB port drivers
1514# 1553#
1515
1516#
1517# USB Serial Converter support
1518#
1519# CONFIG_USB_SERIAL is not set 1554# CONFIG_USB_SERIAL is not set
1520 1555
1521# 1556#
@@ -1541,16 +1576,9 @@ CONFIG_USB_APPLEDISPLAY=m
1541# CONFIG_USB_TRANCEVIBRATOR is not set 1576# CONFIG_USB_TRANCEVIBRATOR is not set
1542# CONFIG_USB_IOWARRIOR is not set 1577# CONFIG_USB_IOWARRIOR is not set
1543# CONFIG_USB_TEST is not set 1578# CONFIG_USB_TEST is not set
1544
1545#
1546# USB DSL modem support
1547#
1548
1549#
1550# USB Gadget Support
1551#
1552# CONFIG_USB_GADGET is not set 1579# CONFIG_USB_GADGET is not set
1553# CONFIG_MMC is not set 1580# CONFIG_MMC is not set
1581# CONFIG_MEMSTICK is not set
1554# CONFIG_NEW_LEDS is not set 1582# CONFIG_NEW_LEDS is not set
1555CONFIG_INFINIBAND=m 1583CONFIG_INFINIBAND=m
1556# CONFIG_INFINIBAND_USER_MAD is not set 1584# CONFIG_INFINIBAND_USER_MAD is not set
@@ -1562,6 +1590,7 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y
1562CONFIG_INFINIBAND_EHCA=m 1590CONFIG_INFINIBAND_EHCA=m
1563# CONFIG_INFINIBAND_AMSO1100 is not set 1591# CONFIG_INFINIBAND_AMSO1100 is not set
1564# CONFIG_MLX4_INFINIBAND is not set 1592# CONFIG_MLX4_INFINIBAND is not set
1593# CONFIG_INFINIBAND_NES is not set
1565CONFIG_INFINIBAND_IPOIB=m 1594CONFIG_INFINIBAND_IPOIB=m
1566# CONFIG_INFINIBAND_IPOIB_CM is not set 1595# CONFIG_INFINIBAND_IPOIB_CM is not set
1567CONFIG_INFINIBAND_IPOIB_DEBUG=y 1596CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -1576,8 +1605,13 @@ CONFIG_EDAC=y
1576# CONFIG_EDAC_DEBUG is not set 1605# CONFIG_EDAC_DEBUG is not set
1577CONFIG_EDAC_MM_EDAC=y 1606CONFIG_EDAC_MM_EDAC=y
1578CONFIG_EDAC_PASEMI=y 1607CONFIG_EDAC_PASEMI=y
1608# CONFIG_EDAC_CELL is not set
1579CONFIG_RTC_LIB=y 1609CONFIG_RTC_LIB=y
1580CONFIG_RTC_CLASS=y 1610CONFIG_RTC_CLASS=y
1611
1612#
1613# Conflicting RTC option has been selected, check GEN_RTC and RTC
1614#
1581CONFIG_RTC_HCTOSYS=y 1615CONFIG_RTC_HCTOSYS=y
1582CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1616CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1583# CONFIG_RTC_DEBUG is not set 1617# CONFIG_RTC_DEBUG is not set
@@ -1604,6 +1638,7 @@ CONFIG_RTC_DRV_DS1307=y
1604# CONFIG_RTC_DRV_PCF8563 is not set 1638# CONFIG_RTC_DRV_PCF8563 is not set
1605# CONFIG_RTC_DRV_PCF8583 is not set 1639# CONFIG_RTC_DRV_PCF8583 is not set
1606# CONFIG_RTC_DRV_M41T80 is not set 1640# CONFIG_RTC_DRV_M41T80 is not set
1641# CONFIG_RTC_DRV_S35390A is not set
1607 1642
1608# 1643#
1609# SPI RTC drivers 1644# SPI RTC drivers
@@ -1613,9 +1648,10 @@ CONFIG_RTC_DRV_DS1307=y
1613# Platform RTC drivers 1648# Platform RTC drivers
1614# 1649#
1615# CONFIG_RTC_DRV_CMOS is not set 1650# CONFIG_RTC_DRV_CMOS is not set
1651# CONFIG_RTC_DRV_DS1511 is not set
1616# CONFIG_RTC_DRV_DS1553 is not set 1652# CONFIG_RTC_DRV_DS1553 is not set
1617# CONFIG_RTC_DRV_STK17TA8 is not set
1618# CONFIG_RTC_DRV_DS1742 is not set 1653# CONFIG_RTC_DRV_DS1742 is not set
1654# CONFIG_RTC_DRV_STK17TA8 is not set
1619# CONFIG_RTC_DRV_M48T86 is not set 1655# CONFIG_RTC_DRV_M48T86 is not set
1620# CONFIG_RTC_DRV_M48T59 is not set 1656# CONFIG_RTC_DRV_M48T59 is not set
1621# CONFIG_RTC_DRV_V3020 is not set 1657# CONFIG_RTC_DRV_V3020 is not set
@@ -1623,6 +1659,7 @@ CONFIG_RTC_DRV_DS1307=y
1623# 1659#
1624# on-CPU RTC drivers 1660# on-CPU RTC drivers
1625# 1661#
1662# CONFIG_DMADEVICES is not set
1626 1663
1627# 1664#
1628# Userspace I/O 1665# Userspace I/O
@@ -1665,12 +1702,10 @@ CONFIG_XFS_POSIX_ACL=y
1665# CONFIG_XFS_RT is not set 1702# CONFIG_XFS_RT is not set
1666# CONFIG_GFS2_FS is not set 1703# CONFIG_GFS2_FS is not set
1667# CONFIG_OCFS2_FS is not set 1704# CONFIG_OCFS2_FS is not set
1668# CONFIG_MINIX_FS is not set 1705CONFIG_DNOTIFY=y
1669# CONFIG_ROMFS_FS is not set
1670CONFIG_INOTIFY=y 1706CONFIG_INOTIFY=y
1671CONFIG_INOTIFY_USER=y 1707CONFIG_INOTIFY_USER=y
1672# CONFIG_QUOTA is not set 1708# CONFIG_QUOTA is not set
1673CONFIG_DNOTIFY=y
1674# CONFIG_AUTOFS_FS is not set 1709# CONFIG_AUTOFS_FS is not set
1675CONFIG_AUTOFS4_FS=m 1710CONFIG_AUTOFS4_FS=m
1676# CONFIG_FUSE_FS is not set 1711# CONFIG_FUSE_FS is not set
@@ -1719,8 +1754,10 @@ CONFIG_HFSPLUS_FS=m
1719# CONFIG_EFS_FS is not set 1754# CONFIG_EFS_FS is not set
1720CONFIG_CRAMFS=y 1755CONFIG_CRAMFS=y
1721# CONFIG_VXFS_FS is not set 1756# CONFIG_VXFS_FS is not set
1757# CONFIG_MINIX_FS is not set
1722# CONFIG_HPFS_FS is not set 1758# CONFIG_HPFS_FS is not set
1723# CONFIG_QNX4FS_FS is not set 1759# CONFIG_QNX4FS_FS is not set
1760# CONFIG_ROMFS_FS is not set
1724# CONFIG_SYSV_FS is not set 1761# CONFIG_SYSV_FS is not set
1725# CONFIG_UFS_FS is not set 1762# CONFIG_UFS_FS is not set
1726CONFIG_NETWORK_FILESYSTEMS=y 1763CONFIG_NETWORK_FILESYSTEMS=y
@@ -1821,7 +1858,6 @@ CONFIG_NLS_KOI8_R=m
1821CONFIG_NLS_KOI8_U=m 1858CONFIG_NLS_KOI8_U=m
1822CONFIG_NLS_UTF8=m 1859CONFIG_NLS_UTF8=m
1823# CONFIG_DLM is not set 1860# CONFIG_DLM is not set
1824# CONFIG_UCC_SLOW is not set
1825 1861
1826# 1862#
1827# Library routines 1863# Library routines
@@ -1835,6 +1871,8 @@ CONFIG_CRC32=y
1835CONFIG_LIBCRC32C=m 1871CONFIG_LIBCRC32C=m
1836CONFIG_ZLIB_INFLATE=y 1872CONFIG_ZLIB_INFLATE=y
1837CONFIG_ZLIB_DEFLATE=m 1873CONFIG_ZLIB_DEFLATE=m
1874CONFIG_LZO_COMPRESS=m
1875CONFIG_LZO_DECOMPRESS=m
1838CONFIG_TEXTSEARCH=y 1876CONFIG_TEXTSEARCH=y
1839CONFIG_TEXTSEARCH_KMP=m 1877CONFIG_TEXTSEARCH_KMP=m
1840CONFIG_TEXTSEARCH_BM=m 1878CONFIG_TEXTSEARCH_BM=m
@@ -1843,11 +1881,6 @@ CONFIG_PLIST=y
1843CONFIG_HAS_IOMEM=y 1881CONFIG_HAS_IOMEM=y
1844CONFIG_HAS_IOPORT=y 1882CONFIG_HAS_IOPORT=y
1845CONFIG_HAS_DMA=y 1883CONFIG_HAS_DMA=y
1846CONFIG_INSTRUMENTATION=y
1847CONFIG_PROFILING=y
1848CONFIG_OPROFILE=y
1849# CONFIG_KPROBES is not set
1850# CONFIG_MARKERS is not set
1851 1884
1852# 1885#
1853# Kernel hacking 1886# Kernel hacking
@@ -1866,6 +1899,7 @@ CONFIG_SCHED_DEBUG=y
1866# CONFIG_SCHEDSTATS is not set 1899# CONFIG_SCHEDSTATS is not set
1867# CONFIG_TIMER_STATS is not set 1900# CONFIG_TIMER_STATS is not set
1868# CONFIG_SLUB_DEBUG_ON is not set 1901# CONFIG_SLUB_DEBUG_ON is not set
1902# CONFIG_SLUB_STATS is not set
1869# CONFIG_DEBUG_RT_MUTEXES is not set 1903# CONFIG_DEBUG_RT_MUTEXES is not set
1870# CONFIG_RT_MUTEX_TESTER is not set 1904# CONFIG_RT_MUTEX_TESTER is not set
1871# CONFIG_DEBUG_SPINLOCK is not set 1905# CONFIG_DEBUG_SPINLOCK is not set
@@ -1878,9 +1912,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1878# CONFIG_DEBUG_VM is not set 1912# CONFIG_DEBUG_VM is not set
1879# CONFIG_DEBUG_LIST is not set 1913# CONFIG_DEBUG_LIST is not set
1880# CONFIG_DEBUG_SG is not set 1914# CONFIG_DEBUG_SG is not set
1881CONFIG_FORCED_INLINING=y
1882# CONFIG_BOOT_PRINTK_DELAY is not set 1915# CONFIG_BOOT_PRINTK_DELAY is not set
1883# CONFIG_RCU_TORTURE_TEST is not set 1916# CONFIG_RCU_TORTURE_TEST is not set
1917# CONFIG_BACKTRACE_SELF_TEST is not set
1884# CONFIG_FAULT_INJECTION is not set 1918# CONFIG_FAULT_INJECTION is not set
1885# CONFIG_SAMPLES is not set 1919# CONFIG_SAMPLES is not set
1886CONFIG_DEBUG_STACKOVERFLOW=y 1920CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1908,7 +1942,9 @@ CONFIG_ASYNC_MEMCPY=y
1908CONFIG_ASYNC_XOR=y 1942CONFIG_ASYNC_XOR=y
1909CONFIG_CRYPTO=y 1943CONFIG_CRYPTO=y
1910CONFIG_CRYPTO_ALGAPI=y 1944CONFIG_CRYPTO_ALGAPI=y
1945CONFIG_CRYPTO_AEAD=m
1911CONFIG_CRYPTO_BLKCIPHER=y 1946CONFIG_CRYPTO_BLKCIPHER=y
1947CONFIG_CRYPTO_SEQIV=m
1912CONFIG_CRYPTO_HASH=y 1948CONFIG_CRYPTO_HASH=y
1913CONFIG_CRYPTO_MANAGER=y 1949CONFIG_CRYPTO_MANAGER=y
1914CONFIG_CRYPTO_HMAC=y 1950CONFIG_CRYPTO_HMAC=y
@@ -1921,12 +1957,15 @@ CONFIG_CRYPTO_SHA256=m
1921CONFIG_CRYPTO_SHA512=m 1957CONFIG_CRYPTO_SHA512=m
1922CONFIG_CRYPTO_WP512=m 1958CONFIG_CRYPTO_WP512=m
1923CONFIG_CRYPTO_TGR192=m 1959CONFIG_CRYPTO_TGR192=m
1924# CONFIG_CRYPTO_GF128MUL is not set 1960CONFIG_CRYPTO_GF128MUL=m
1925CONFIG_CRYPTO_ECB=m 1961CONFIG_CRYPTO_ECB=m
1926CONFIG_CRYPTO_CBC=y 1962CONFIG_CRYPTO_CBC=y
1927CONFIG_CRYPTO_PCBC=m 1963CONFIG_CRYPTO_PCBC=m
1928# CONFIG_CRYPTO_LRW is not set 1964# CONFIG_CRYPTO_LRW is not set
1929# CONFIG_CRYPTO_XTS is not set 1965# CONFIG_CRYPTO_XTS is not set
1966CONFIG_CRYPTO_CTR=m
1967CONFIG_CRYPTO_GCM=m
1968CONFIG_CRYPTO_CCM=m
1930# CONFIG_CRYPTO_CRYPTD is not set 1969# CONFIG_CRYPTO_CRYPTD is not set
1931CONFIG_CRYPTO_DES=y 1970CONFIG_CRYPTO_DES=y
1932# CONFIG_CRYPTO_FCRYPT is not set 1971# CONFIG_CRYPTO_FCRYPT is not set
@@ -1942,11 +1981,13 @@ CONFIG_CRYPTO_ARC4=m
1942CONFIG_CRYPTO_KHAZAD=m 1981CONFIG_CRYPTO_KHAZAD=m
1943CONFIG_CRYPTO_ANUBIS=m 1982CONFIG_CRYPTO_ANUBIS=m
1944# CONFIG_CRYPTO_SEED is not set 1983# CONFIG_CRYPTO_SEED is not set
1984CONFIG_CRYPTO_SALSA20=m
1945CONFIG_CRYPTO_DEFLATE=m 1985CONFIG_CRYPTO_DEFLATE=m
1946CONFIG_CRYPTO_MICHAEL_MIC=m 1986CONFIG_CRYPTO_MICHAEL_MIC=m
1947CONFIG_CRYPTO_CRC32C=m 1987CONFIG_CRYPTO_CRC32C=m
1948# CONFIG_CRYPTO_CAMELLIA is not set 1988# CONFIG_CRYPTO_CAMELLIA is not set
1949CONFIG_CRYPTO_TEST=m 1989CONFIG_CRYPTO_TEST=m
1950# CONFIG_CRYPTO_AUTHENC is not set 1990CONFIG_CRYPTO_AUTHENC=m
1991CONFIG_CRYPTO_LZO=m
1951# CONFIG_CRYPTO_HW is not set 1992# CONFIG_CRYPTO_HW is not set
1952# CONFIG_PPC_CLOCK is not set 1993# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index a3bfbb65a933..1383eb696a20 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 13 22:39:18 2007 4# Mon Mar 24 08:48:36 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -69,9 +70,14 @@ CONFIG_IKCONFIG=y
69CONFIG_IKCONFIG_PROC=y 70CONFIG_IKCONFIG_PROC=y
70CONFIG_LOG_BUF_SHIFT=14 71CONFIG_LOG_BUF_SHIFT=14
71# CONFIG_CGROUPS is not set 72# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
72# CONFIG_FAIR_GROUP_SCHED is not set 74# CONFIG_FAIR_GROUP_SCHED is not set
73# CONFIG_SYSFS_DEPRECATED is not set 75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y
74# CONFIG_RELAY is not set 79# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set
75CONFIG_BLK_DEV_INITRD=y 81CONFIG_BLK_DEV_INITRD=y
76CONFIG_INITRAMFS_SOURCE="" 82CONFIG_INITRAMFS_SOURCE=""
77CONFIG_SYSCTL=y 83CONFIG_SYSCTL=y
@@ -84,11 +90,13 @@ CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 90CONFIG_PRINTK=y
85CONFIG_BUG=y 91CONFIG_BUG=y
86CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
87CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
88CONFIG_FUTEX=y 95CONFIG_FUTEX=y
89CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
90CONFIG_EPOLL=y 97CONFIG_EPOLL=y
91CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
92CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
93CONFIG_SHMEM=y 101CONFIG_SHMEM=y
94CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -96,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
96# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
97CONFIG_SLUB=y 105CONFIG_SLUB=y
98# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
101CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -117,6 +132,7 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_CFQ is not set 132# CONFIG_DEFAULT_CFQ is not set
118# CONFIG_DEFAULT_NOOP is not set 133# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="anticipatory" 134CONFIG_DEFAULT_IOSCHED="anticipatory"
135CONFIG_CLASSIC_RCU=y
120 136
121# 137#
122# Platform support 138# Platform support
@@ -125,15 +141,17 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
125CONFIG_PPC_82xx=y 141CONFIG_PPC_82xx=y
126# CONFIG_PPC_83xx is not set 142# CONFIG_PPC_83xx is not set
127# CONFIG_PPC_86xx is not set 143# CONFIG_PPC_86xx is not set
128# CONFIG_PPC_MPC52xx is not set 144# CONFIG_PPC_MPC512x is not set
129# CONFIG_PPC_MPC5200 is not set 145# CONFIG_PPC_MPC5121 is not set
130# CONFIG_PPC_CELL is not set 146# CONFIG_PPC_CELL is not set
131# CONFIG_PPC_CELL_NATIVE is not set 147# CONFIG_PPC_CELL_NATIVE is not set
132# CONFIG_MPC8272_ADS is not set 148# CONFIG_MPC8272_ADS is not set
133CONFIG_PQ2FADS=y 149CONFIG_PQ2FADS=y
150# CONFIG_EP8248E is not set
134CONFIG_PQ2ADS=y 151CONFIG_PQ2ADS=y
135CONFIG_8260=y 152CONFIG_8260=y
136CONFIG_PQ2_ADS_PCI_PIC=y 153CONFIG_PQ2_ADS_PCI_PIC=y
154# CONFIG_IPIC is not set
137# CONFIG_MPIC is not set 155# CONFIG_MPIC is not set
138# CONFIG_MPIC_WEIRD is not set 156# CONFIG_MPIC_WEIRD is not set
139# CONFIG_PPC_I8259 is not set 157# CONFIG_PPC_I8259 is not set
@@ -162,12 +180,16 @@ CONFIG_HZ_250=y
162# CONFIG_HZ_300 is not set 180# CONFIG_HZ_300 is not set
163# CONFIG_HZ_1000 is not set 181# CONFIG_HZ_1000 is not set
164CONFIG_HZ=250 182CONFIG_HZ=250
183# CONFIG_SCHED_HRTICK is not set
165CONFIG_PREEMPT_NONE=y 184CONFIG_PREEMPT_NONE=y
166# CONFIG_PREEMPT_VOLUNTARY is not set 185# CONFIG_PREEMPT_VOLUNTARY is not set
167# CONFIG_PREEMPT is not set 186# CONFIG_PREEMPT is not set
168CONFIG_BINFMT_ELF=y 187CONFIG_BINFMT_ELF=y
169CONFIG_BINFMT_MISC=y 188CONFIG_BINFMT_MISC=y
189# CONFIG_IOMMU_HELPER is not set
170CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 190CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
191CONFIG_ARCH_HAS_WALK_MEMORY=y
192CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
171CONFIG_ARCH_FLATMEM_ENABLE=y 193CONFIG_ARCH_FLATMEM_ENABLE=y
172CONFIG_ARCH_POPULATES_NODE_MAP=y 194CONFIG_ARCH_POPULATES_NODE_MAP=y
173CONFIG_FLATMEM=y 195CONFIG_FLATMEM=y
@@ -182,11 +204,7 @@ CONFIG_VIRT_TO_BUS=y
182CONFIG_PROC_DEVICETREE=y 204CONFIG_PROC_DEVICETREE=y
183# CONFIG_CMDLINE_BOOL is not set 205# CONFIG_CMDLINE_BOOL is not set
184# CONFIG_PM is not set 206# CONFIG_PM is not set
185CONFIG_SUSPEND_UP_POSSIBLE=y
186CONFIG_HIBERNATION_UP_POSSIBLE=y
187CONFIG_SECCOMP=y 207CONFIG_SECCOMP=y
188CONFIG_WANT_DEVICE_TREE=y
189CONFIG_DEVICE_TREE="pq2fads.dts"
190CONFIG_ISA_DMA_API=y 208CONFIG_ISA_DMA_API=y
191 209
192# 210#
@@ -206,6 +224,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
206CONFIG_PCI_LEGACY=y 224CONFIG_PCI_LEGACY=y
207# CONFIG_PCI_DEBUG is not set 225# CONFIG_PCI_DEBUG is not set
208# CONFIG_PCCARD is not set 226# CONFIG_PCCARD is not set
227# CONFIG_HOTPLUG_PCI is not set
209 228
210# 229#
211# Advanced setup 230# Advanced setup
@@ -278,12 +297,13 @@ CONFIG_IPV6_SIT=y
278# CONFIG_NETWORK_SECMARK is not set 297# CONFIG_NETWORK_SECMARK is not set
279CONFIG_NETFILTER=y 298CONFIG_NETFILTER=y
280# CONFIG_NETFILTER_DEBUG is not set 299# CONFIG_NETFILTER_DEBUG is not set
300CONFIG_NETFILTER_ADVANCED=y
281 301
282# 302#
283# Core Netfilter Configuration 303# Core Netfilter Configuration
284# 304#
285# CONFIG_NETFILTER_NETLINK is not set 305# CONFIG_NETFILTER_NETLINK_QUEUE is not set
286# CONFIG_NF_CONNTRACK_ENABLED is not set 306# CONFIG_NETFILTER_NETLINK_LOG is not set
287# CONFIG_NF_CONNTRACK is not set 307# CONFIG_NF_CONNTRACK is not set
288# CONFIG_NETFILTER_XTABLES is not set 308# CONFIG_NETFILTER_XTABLES is not set
289 309
@@ -293,6 +313,13 @@ CONFIG_NETFILTER=y
293# CONFIG_IP_NF_QUEUE is not set 313# CONFIG_IP_NF_QUEUE is not set
294# CONFIG_IP_NF_IPTABLES is not set 314# CONFIG_IP_NF_IPTABLES is not set
295# CONFIG_IP_NF_ARPTABLES is not set 315# CONFIG_IP_NF_ARPTABLES is not set
316
317#
318# IPv6: Netfilter Configuration
319#
320# CONFIG_IP6_NF_QUEUE is not set
321# CONFIG_IP6_NF_IPTABLES is not set
322# CONFIG_ATM is not set
296# CONFIG_BRIDGE is not set 323# CONFIG_BRIDGE is not set
297# CONFIG_VLAN_8021Q is not set 324# CONFIG_VLAN_8021Q is not set
298# CONFIG_DECNET is not set 325# CONFIG_DECNET is not set
@@ -306,6 +333,7 @@ CONFIG_NETFILTER=y
306# 333#
307# CONFIG_NET_PKTGEN is not set 334# CONFIG_NET_PKTGEN is not set
308# CONFIG_HAMRADIO is not set 335# CONFIG_HAMRADIO is not set
336# CONFIG_CAN is not set
309# CONFIG_IRDA is not set 337# CONFIG_IRDA is not set
310# CONFIG_BT is not set 338# CONFIG_BT is not set
311 339
@@ -314,6 +342,7 @@ CONFIG_NETFILTER=y
314# 342#
315# CONFIG_CFG80211 is not set 343# CONFIG_CFG80211 is not set
316# CONFIG_WIRELESS_EXT is not set 344# CONFIG_WIRELESS_EXT is not set
345# CONFIG_MAC80211 is not set
317# CONFIG_IEEE80211 is not set 346# CONFIG_IEEE80211 is not set
318# CONFIG_RFKILL is not set 347# CONFIG_RFKILL is not set
319 348
@@ -431,17 +460,20 @@ CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set 460# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 462# CONFIG_SGI_IOC4 is not set
463# CONFIG_ENCLOSURE_SERVICES is not set
464CONFIG_HAVE_IDE=y
434CONFIG_IDE=y 465CONFIG_IDE=y
435CONFIG_IDE_MAX_HWIFS=4 466CONFIG_IDE_MAX_HWIFS=4
436CONFIG_BLK_DEV_IDE=y 467CONFIG_BLK_DEV_IDE=y
437 468
438# 469#
439# Please see Documentation/ide.txt for help/info on IDE drives 470# Please see Documentation/ide/ide.txt for help/info on IDE drives
440# 471#
441# CONFIG_BLK_DEV_IDE_SATA is not set 472# CONFIG_BLK_DEV_IDE_SATA is not set
442CONFIG_BLK_DEV_IDEDISK=y 473CONFIG_BLK_DEV_IDEDISK=y
443# CONFIG_IDEDISK_MULTI_MODE is not set 474# CONFIG_IDEDISK_MULTI_MODE is not set
444# CONFIG_BLK_DEV_IDECD is not set 475# CONFIG_BLK_DEV_IDECD is not set
476# CONFIG_BLK_DEV_IDETAPE is not set
445# CONFIG_BLK_DEV_IDEFLOPPY is not set 477# CONFIG_BLK_DEV_IDEFLOPPY is not set
446# CONFIG_IDE_TASK_IOCTL is not set 478# CONFIG_IDE_TASK_IOCTL is not set
447CONFIG_IDE_PROC_FS=y 479CONFIG_IDE_PROC_FS=y
@@ -455,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
455# 487#
456# PCI IDE chipsets support 488# PCI IDE chipsets support
457# 489#
458# CONFIG_IDEPCI_PCIBUS_ORDER is not set
459# CONFIG_BLK_DEV_GENERIC is not set 490# CONFIG_BLK_DEV_GENERIC is not set
460# CONFIG_BLK_DEV_AEC62XX is not set 491# CONFIG_BLK_DEV_AEC62XX is not set
461# CONFIG_BLK_DEV_ALI15X3 is not set 492# CONFIG_BLK_DEV_ALI15X3 is not set
@@ -481,7 +512,6 @@ CONFIG_IDE_PROC_FS=y
481# CONFIG_BLK_DEV_TRM290 is not set 512# CONFIG_BLK_DEV_TRM290 is not set
482# CONFIG_BLK_DEV_VIA82CXXX is not set 513# CONFIG_BLK_DEV_VIA82CXXX is not set
483# CONFIG_BLK_DEV_TC86C001 is not set 514# CONFIG_BLK_DEV_TC86C001 is not set
484# CONFIG_IDE_ARM is not set
485# CONFIG_BLK_DEV_IDEDMA is not set 515# CONFIG_BLK_DEV_IDEDMA is not set
486CONFIG_IDE_ARCH_OBSOLETE_INIT=y 516CONFIG_IDE_ARCH_OBSOLETE_INIT=y
487# CONFIG_BLK_DEV_HD is not set 517# CONFIG_BLK_DEV_HD is not set
@@ -529,6 +559,7 @@ CONFIG_DAVICOM_PHY=y
529# CONFIG_SMSC_PHY is not set 559# CONFIG_SMSC_PHY is not set
530# CONFIG_BROADCOM_PHY is not set 560# CONFIG_BROADCOM_PHY is not set
531# CONFIG_ICPLUS_PHY is not set 561# CONFIG_ICPLUS_PHY is not set
562# CONFIG_REALTEK_PHY is not set
532# CONFIG_FIXED_PHY is not set 563# CONFIG_FIXED_PHY is not set
533CONFIG_MDIO_BITBANG=y 564CONFIG_MDIO_BITBANG=y
534CONFIG_NET_ETHERNET=y 565CONFIG_NET_ETHERNET=y
@@ -554,6 +585,8 @@ CONFIG_NETDEV_1000=y
554# CONFIG_DL2K is not set 585# CONFIG_DL2K is not set
555# CONFIG_E1000 is not set 586# CONFIG_E1000 is not set
556# CONFIG_E1000E is not set 587# CONFIG_E1000E is not set
588# CONFIG_E1000E_ENABLED is not set
589# CONFIG_IGB is not set
557# CONFIG_NS83820 is not set 590# CONFIG_NS83820 is not set
558# CONFIG_HAMACHI is not set 591# CONFIG_HAMACHI is not set
559# CONFIG_R8169 is not set 592# CONFIG_R8169 is not set
@@ -564,6 +597,7 @@ CONFIG_NETDEV_1000=y
564# CONFIG_VIA_VELOCITY is not set 597# CONFIG_VIA_VELOCITY is not set
565# CONFIG_TIGON3 is not set 598# CONFIG_TIGON3 is not set
566# CONFIG_BNX2 is not set 599# CONFIG_BNX2 is not set
600# CONFIG_GIANFAR is not set
567# CONFIG_QLA3XXX is not set 601# CONFIG_QLA3XXX is not set
568CONFIG_NETDEV_10000=y 602CONFIG_NETDEV_10000=y
569# CONFIG_CHELSIO_T1 is not set 603# CONFIG_CHELSIO_T1 is not set
@@ -576,6 +610,7 @@ CONFIG_NETDEV_10000=y
576# CONFIG_NIU is not set 610# CONFIG_NIU is not set
577# CONFIG_MLX4_CORE is not set 611# CONFIG_MLX4_CORE is not set
578# CONFIG_TEHUTI is not set 612# CONFIG_TEHUTI is not set
613# CONFIG_BNX2X is not set
579# CONFIG_TR is not set 614# CONFIG_TR is not set
580 615
581# 616#
@@ -700,6 +735,7 @@ CONFIG_DEVPORT=y
700# CONFIG_W1 is not set 735# CONFIG_W1 is not set
701# CONFIG_POWER_SUPPLY is not set 736# CONFIG_POWER_SUPPLY is not set
702# CONFIG_HWMON is not set 737# CONFIG_HWMON is not set
738# CONFIG_THERMAL is not set
703# CONFIG_WATCHDOG is not set 739# CONFIG_WATCHDOG is not set
704 740
705# 741#
@@ -749,10 +785,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# 785#
750# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
751# 787#
752
753#
754# USB Gadget Support
755#
756CONFIG_USB_GADGET=y 788CONFIG_USB_GADGET=y
757# CONFIG_USB_GADGET_DEBUG_FILES is not set 789# CONFIG_USB_GADGET_DEBUG_FILES is not set
758CONFIG_USB_GADGET_SELECTED=y 790CONFIG_USB_GADGET_SELECTED=y
@@ -776,10 +808,13 @@ CONFIG_USB_ETH=y
776# CONFIG_USB_FILE_STORAGE is not set 808# CONFIG_USB_FILE_STORAGE is not set
777# CONFIG_USB_G_SERIAL is not set 809# CONFIG_USB_G_SERIAL is not set
778# CONFIG_USB_MIDI_GADGET is not set 810# CONFIG_USB_MIDI_GADGET is not set
811# CONFIG_USB_G_PRINTER is not set
779# CONFIG_MMC is not set 812# CONFIG_MMC is not set
813# CONFIG_MEMSTICK is not set
780# CONFIG_NEW_LEDS is not set 814# CONFIG_NEW_LEDS is not set
781# CONFIG_INFINIBAND is not set 815# CONFIG_INFINIBAND is not set
782# CONFIG_RTC_CLASS is not set 816# CONFIG_RTC_CLASS is not set
817# CONFIG_DMADEVICES is not set
783 818
784# 819#
785# Userspace I/O 820# Userspace I/O
@@ -803,12 +838,10 @@ CONFIG_FS_MBCACHE=y
803CONFIG_FS_POSIX_ACL=y 838CONFIG_FS_POSIX_ACL=y
804# CONFIG_XFS_FS is not set 839# CONFIG_XFS_FS is not set
805# CONFIG_OCFS2_FS is not set 840# CONFIG_OCFS2_FS is not set
806# CONFIG_MINIX_FS is not set 841CONFIG_DNOTIFY=y
807# CONFIG_ROMFS_FS is not set
808CONFIG_INOTIFY=y 842CONFIG_INOTIFY=y
809CONFIG_INOTIFY_USER=y 843CONFIG_INOTIFY_USER=y
810# CONFIG_QUOTA is not set 844# CONFIG_QUOTA is not set
811CONFIG_DNOTIFY=y
812# CONFIG_AUTOFS_FS is not set 845# CONFIG_AUTOFS_FS is not set
813CONFIG_AUTOFS4_FS=y 846CONFIG_AUTOFS4_FS=y
814# CONFIG_FUSE_FS is not set 847# CONFIG_FUSE_FS is not set
@@ -836,6 +869,7 @@ CONFIG_SYSFS=y
836CONFIG_TMPFS=y 869CONFIG_TMPFS=y
837# CONFIG_TMPFS_POSIX_ACL is not set 870# CONFIG_TMPFS_POSIX_ACL is not set
838# CONFIG_HUGETLB_PAGE is not set 871# CONFIG_HUGETLB_PAGE is not set
872# CONFIG_CONFIGFS_FS is not set
839 873
840# 874#
841# Miscellaneous filesystems 875# Miscellaneous filesystems
@@ -844,8 +878,10 @@ CONFIG_TMPFS=y
844# CONFIG_JFFS2_FS is not set 878# CONFIG_JFFS2_FS is not set
845CONFIG_CRAMFS=y 879CONFIG_CRAMFS=y
846# CONFIG_VXFS_FS is not set 880# CONFIG_VXFS_FS is not set
881# CONFIG_MINIX_FS is not set
847# CONFIG_HPFS_FS is not set 882# CONFIG_HPFS_FS is not set
848# CONFIG_QNX4FS_FS is not set 883# CONFIG_QNX4FS_FS is not set
884# CONFIG_ROMFS_FS is not set
849# CONFIG_SYSV_FS is not set 885# CONFIG_SYSV_FS is not set
850# CONFIG_UFS_FS is not set 886# CONFIG_UFS_FS is not set
851CONFIG_NETWORK_FILESYSTEMS=y 887CONFIG_NETWORK_FILESYSTEMS=y
@@ -926,7 +962,6 @@ CONFIG_NLS_ISO8859_1=y
926# CONFIG_NLS_KOI8_R is not set 962# CONFIG_NLS_KOI8_R is not set
927# CONFIG_NLS_KOI8_U is not set 963# CONFIG_NLS_KOI8_U is not set
928CONFIG_NLS_UTF8=y 964CONFIG_NLS_UTF8=y
929# CONFIG_UCC_SLOW is not set
930 965
931# 966#
932# Library routines 967# Library routines
@@ -944,7 +979,6 @@ CONFIG_PLIST=y
944CONFIG_HAS_IOMEM=y 979CONFIG_HAS_IOMEM=y
945CONFIG_HAS_IOPORT=y 980CONFIG_HAS_IOPORT=y
946CONFIG_HAS_DMA=y 981CONFIG_HAS_DMA=y
947# CONFIG_INSTRUMENTATION is not set
948 982
949# 983#
950# Kernel hacking 984# Kernel hacking
@@ -963,6 +997,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
963# CONFIG_SCHEDSTATS is not set 997# CONFIG_SCHEDSTATS is not set
964# CONFIG_TIMER_STATS is not set 998# CONFIG_TIMER_STATS is not set
965# CONFIG_SLUB_DEBUG_ON is not set 999# CONFIG_SLUB_DEBUG_ON is not set
1000# CONFIG_SLUB_STATS is not set
966# CONFIG_DEBUG_RT_MUTEXES is not set 1001# CONFIG_DEBUG_RT_MUTEXES is not set
967# CONFIG_RT_MUTEX_TESTER is not set 1002# CONFIG_RT_MUTEX_TESTER is not set
968# CONFIG_DEBUG_SPINLOCK is not set 1003# CONFIG_DEBUG_SPINLOCK is not set
@@ -975,8 +1010,8 @@ CONFIG_DEBUG_INFO=y
975# CONFIG_DEBUG_VM is not set 1010# CONFIG_DEBUG_VM is not set
976# CONFIG_DEBUG_LIST is not set 1011# CONFIG_DEBUG_LIST is not set
977# CONFIG_DEBUG_SG is not set 1012# CONFIG_DEBUG_SG is not set
978CONFIG_FORCED_INLINING=y
979# CONFIG_BOOT_PRINTK_DELAY is not set 1013# CONFIG_BOOT_PRINTK_DELAY is not set
1014# CONFIG_BACKTRACE_SELF_TEST is not set
980# CONFIG_FAULT_INJECTION is not set 1015# CONFIG_FAULT_INJECTION is not set
981# CONFIG_SAMPLES is not set 1016# CONFIG_SAMPLES is not set
982# CONFIG_DEBUG_STACKOVERFLOW is not set 1017# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -995,6 +1030,7 @@ CONFIG_BDI_SWITCH=y
995CONFIG_CRYPTO=y 1030CONFIG_CRYPTO=y
996CONFIG_CRYPTO_ALGAPI=y 1031CONFIG_CRYPTO_ALGAPI=y
997CONFIG_CRYPTO_BLKCIPHER=y 1032CONFIG_CRYPTO_BLKCIPHER=y
1033# CONFIG_CRYPTO_SEQIV is not set
998CONFIG_CRYPTO_MANAGER=y 1034CONFIG_CRYPTO_MANAGER=y
999# CONFIG_CRYPTO_HMAC is not set 1035# CONFIG_CRYPTO_HMAC is not set
1000# CONFIG_CRYPTO_NULL is not set 1036# CONFIG_CRYPTO_NULL is not set
@@ -1008,6 +1044,9 @@ CONFIG_CRYPTO_MD5=y
1008CONFIG_CRYPTO_ECB=y 1044CONFIG_CRYPTO_ECB=y
1009CONFIG_CRYPTO_CBC=y 1045CONFIG_CRYPTO_CBC=y
1010CONFIG_CRYPTO_PCBC=y 1046CONFIG_CRYPTO_PCBC=y
1047# CONFIG_CRYPTO_CTR is not set
1048# CONFIG_CRYPTO_GCM is not set
1049# CONFIG_CRYPTO_CCM is not set
1011# CONFIG_CRYPTO_CRYPTD is not set 1050# CONFIG_CRYPTO_CRYPTD is not set
1012CONFIG_CRYPTO_DES=y 1051CONFIG_CRYPTO_DES=y
1013# CONFIG_CRYPTO_FCRYPT is not set 1052# CONFIG_CRYPTO_FCRYPT is not set
@@ -1027,6 +1066,8 @@ CONFIG_CRYPTO_DES=y
1027# CONFIG_CRYPTO_CRC32C is not set 1066# CONFIG_CRYPTO_CRC32C is not set
1028# CONFIG_CRYPTO_CAMELLIA is not set 1067# CONFIG_CRYPTO_CAMELLIA is not set
1029# CONFIG_CRYPTO_AUTHENC is not set 1068# CONFIG_CRYPTO_AUTHENC is not set
1069# CONFIG_CRYPTO_LZO is not set
1030CONFIG_CRYPTO_HW=y 1070CONFIG_CRYPTO_HW=y
1071# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1031# CONFIG_PPC_CLOCK is not set 1072# CONFIG_PPC_CLOCK is not set
1032CONFIG_PPC_LIB_RHEAP=y 1073CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 46b2579d38b1..f53d55bbdd7c 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:49:11 2007 4# Mon Mar 24 08:48:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,7 @@ CONFIG_GENERIC_TIME=y
31CONFIG_GENERIC_TIME_VSYSCALL=y 31CONFIG_GENERIC_TIME_VSYSCALL=y
32CONFIG_GENERIC_CLOCKEVENTS=y 32CONFIG_GENERIC_CLOCKEVENTS=y
33CONFIG_GENERIC_HARDIRQS=y 33CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,15 +69,23 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 69CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y
77# CONFIG_FAIR_GROUP_SCHED is not set 77# CONFIG_FAIR_GROUP_SCHED is not set
78# CONFIG_SYSFS_DEPRECATED is not set 78# CONFIG_RT_GROUP_SCHED is not set
79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set
81CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set
86# CONFIG_IPC_NS is not set
87# CONFIG_USER_NS is not set
88# CONFIG_PID_NS is not set
80CONFIG_BLK_DEV_INITRD=y 89CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 90CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 91# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +98,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 98CONFIG_PRINTK=y
90CONFIG_BUG=y 99CONFIG_BUG=y
91CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 102CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 103CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 104CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 105CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 109CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +112,13 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
102CONFIG_SLUB=y 113CONFIG_SLUB=y
103# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 124CONFIG_BASE_SMALL=0
@@ -123,6 +141,7 @@ CONFIG_DEFAULT_AS=y
123# CONFIG_DEFAULT_CFQ is not set 141# CONFIG_DEFAULT_CFQ is not set
124# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
126 145
127# 146#
128# Platform support 147# Platform support
@@ -133,20 +152,22 @@ CONFIG_PPC_MULTIPLATFORM=y
133# CONFIG_PPC_86xx is not set 152# CONFIG_PPC_86xx is not set
134CONFIG_CLASSIC32=y 153CONFIG_CLASSIC32=y
135# CONFIG_PPC_CHRP is not set 154# CONFIG_PPC_CHRP is not set
155# CONFIG_PPC_MPC512x is not set
156# CONFIG_PPC_MPC5121 is not set
157# CONFIG_MPC5121_ADS is not set
136# CONFIG_PPC_MPC52xx is not set 158# CONFIG_PPC_MPC52xx is not set
137# CONFIG_PPC_MPC5200 is not set
138# CONFIG_PPC_EFIKA is not set
139# CONFIG_PPC_LITE5200 is not set
140# CONFIG_PPC_PMAC is not set 159# CONFIG_PPC_PMAC is not set
141# CONFIG_PPC_CELL is not set 160# CONFIG_PPC_CELL is not set
142# CONFIG_PPC_CELL_NATIVE is not set 161# CONFIG_PPC_CELL_NATIVE is not set
143# CONFIG_PQ2ADS is not set 162# CONFIG_PQ2ADS is not set
144CONFIG_EMBEDDED6xx=y 163CONFIG_EMBEDDED6xx=y
145# CONFIG_LINKSTATION is not set 164# CONFIG_LINKSTATION is not set
165# CONFIG_STORCENTER is not set
146# CONFIG_MPC7448HPC2 is not set 166# CONFIG_MPC7448HPC2 is not set
147# CONFIG_PPC_HOLLY is not set 167# CONFIG_PPC_HOLLY is not set
148CONFIG_PPC_PRPMC2800=y 168CONFIG_PPC_PRPMC2800=y
149CONFIG_MV64X60=y 169CONFIG_MV64X60=y
170# CONFIG_IPIC is not set
150# CONFIG_MPIC is not set 171# CONFIG_MPIC is not set
151# CONFIG_MPIC_WEIRD is not set 172# CONFIG_MPIC_WEIRD is not set
152# CONFIG_PPC_I8259 is not set 173# CONFIG_PPC_I8259 is not set
@@ -158,7 +179,6 @@ CONFIG_MV64X60=y
158# CONFIG_GENERIC_IOMAP is not set 179# CONFIG_GENERIC_IOMAP is not set
159# CONFIG_CPU_FREQ is not set 180# CONFIG_CPU_FREQ is not set
160# CONFIG_TAU is not set 181# CONFIG_TAU is not set
161# CONFIG_CPM2 is not set
162# CONFIG_FSL_ULI1575 is not set 182# CONFIG_FSL_ULI1575 is not set
163 183
164# 184#
@@ -174,12 +194,16 @@ CONFIG_HZ_250=y
174# CONFIG_HZ_300 is not set 194# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 195# CONFIG_HZ_1000 is not set
176CONFIG_HZ=250 196CONFIG_HZ=250
197# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 198CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 199# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 200# CONFIG_PREEMPT is not set
180CONFIG_BINFMT_ELF=y 201CONFIG_BINFMT_ELF=y
181CONFIG_BINFMT_MISC=y 202CONFIG_BINFMT_MISC=y
203# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 204CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
205CONFIG_ARCH_HAS_WALK_MEMORY=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183# CONFIG_KEXEC is not set 207# CONFIG_KEXEC is not set
184CONFIG_ARCH_FLATMEM_ENABLE=y 208CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 209CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -199,11 +223,7 @@ CONFIG_VIRT_TO_BUS=y
199CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
200# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
201# CONFIG_PM is not set 225# CONFIG_PM is not set
202CONFIG_SUSPEND_UP_POSSIBLE=y
203CONFIG_HIBERNATION_UP_POSSIBLE=y
204# CONFIG_SECCOMP is not set 226# CONFIG_SECCOMP is not set
205CONFIG_WANT_DEVICE_TREE=y
206CONFIG_DEVICE_TREE="prpmc2800.dts"
207CONFIG_ISA_DMA_API=y 227CONFIG_ISA_DMA_API=y
208 228
209# 229#
@@ -253,6 +273,7 @@ CONFIG_XFRM=y
253CONFIG_XFRM_USER=y 273CONFIG_XFRM_USER=y
254# CONFIG_XFRM_SUB_POLICY is not set 274# CONFIG_XFRM_SUB_POLICY is not set
255# CONFIG_XFRM_MIGRATE is not set 275# CONFIG_XFRM_MIGRATE is not set
276# CONFIG_XFRM_STATISTICS is not set
256# CONFIG_NET_KEY is not set 277# CONFIG_NET_KEY is not set
257CONFIG_INET=y 278CONFIG_INET=y
258CONFIG_IP_MULTICAST=y 279CONFIG_IP_MULTICAST=y
@@ -308,6 +329,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# 329#
309# CONFIG_NET_PKTGEN is not set 330# CONFIG_NET_PKTGEN is not set
310# CONFIG_HAMRADIO is not set 331# CONFIG_HAMRADIO is not set
332# CONFIG_CAN is not set
311# CONFIG_IRDA is not set 333# CONFIG_IRDA is not set
312# CONFIG_BT is not set 334# CONFIG_BT is not set
313# CONFIG_AF_RXRPC is not set 335# CONFIG_AF_RXRPC is not set
@@ -341,6 +363,7 @@ CONFIG_MTD_CONCAT=y
341CONFIG_MTD_PARTITIONS=y 363CONFIG_MTD_PARTITIONS=y
342# CONFIG_MTD_REDBOOT_PARTS is not set 364# CONFIG_MTD_REDBOOT_PARTS is not set
343# CONFIG_MTD_CMDLINE_PARTS is not set 365# CONFIG_MTD_CMDLINE_PARTS is not set
366# CONFIG_MTD_OF_PARTS is not set
344 367
345# 368#
346# User Modules And Translation Layers 369# User Modules And Translation Layers
@@ -428,7 +451,7 @@ CONFIG_BLK_DEV_LOOP=y
428CONFIG_BLK_DEV_RAM=y 451CONFIG_BLK_DEV_RAM=y
429CONFIG_BLK_DEV_RAM_COUNT=16 452CONFIG_BLK_DEV_RAM_COUNT=16
430CONFIG_BLK_DEV_RAM_SIZE=131072 453CONFIG_BLK_DEV_RAM_SIZE=131072
431CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 454# CONFIG_BLK_DEV_XIP is not set
432# CONFIG_CDROM_PKTCDVD is not set 455# CONFIG_CDROM_PKTCDVD is not set
433# CONFIG_ATA_OVER_ETH is not set 456# CONFIG_ATA_OVER_ETH is not set
434CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
@@ -436,11 +459,13 @@ CONFIG_MISC_DEVICES=y
436# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
437# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
438# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
462# CONFIG_ENCLOSURE_SERVICES is not set
463CONFIG_HAVE_IDE=y
439CONFIG_IDE=y 464CONFIG_IDE=y
440CONFIG_BLK_DEV_IDE=y 465CONFIG_BLK_DEV_IDE=y
441 466
442# 467#
443# Please see Documentation/ide.txt for help/info on IDE drives 468# Please see Documentation/ide/ide.txt for help/info on IDE drives
444# 469#
445# CONFIG_BLK_DEV_IDE_SATA is not set 470# CONFIG_BLK_DEV_IDE_SATA is not set
446CONFIG_BLK_DEV_IDEDISK=y 471CONFIG_BLK_DEV_IDEDISK=y
@@ -457,12 +482,12 @@ CONFIG_IDE_PROC_FS=y
457# 482#
458CONFIG_IDE_GENERIC=y 483CONFIG_IDE_GENERIC=y
459# CONFIG_BLK_DEV_PLATFORM is not set 484# CONFIG_BLK_DEV_PLATFORM is not set
485CONFIG_BLK_DEV_IDEDMA_SFF=y
460 486
461# 487#
462# PCI IDE chipsets support 488# PCI IDE chipsets support
463# 489#
464CONFIG_BLK_DEV_IDEPCI=y 490CONFIG_BLK_DEV_IDEPCI=y
465# CONFIG_IDEPCI_SHARE_IRQ is not set
466CONFIG_IDEPCI_PCIBUS_ORDER=y 491CONFIG_IDEPCI_PCIBUS_ORDER=y
467# CONFIG_BLK_DEV_OFFBOARD is not set 492# CONFIG_BLK_DEV_OFFBOARD is not set
468CONFIG_BLK_DEV_GENERIC=y 493CONFIG_BLK_DEV_GENERIC=y
@@ -493,7 +518,6 @@ CONFIG_BLK_DEV_PDC202XX_NEW=y
493# CONFIG_BLK_DEV_TRM290 is not set 518# CONFIG_BLK_DEV_TRM290 is not set
494# CONFIG_BLK_DEV_VIA82CXXX is not set 519# CONFIG_BLK_DEV_VIA82CXXX is not set
495# CONFIG_BLK_DEV_TC86C001 is not set 520# CONFIG_BLK_DEV_TC86C001 is not set
496# CONFIG_IDE_ARM is not set
497CONFIG_BLK_DEV_IDEDMA=y 521CONFIG_BLK_DEV_IDEDMA=y
498CONFIG_IDE_ARCH_OBSOLETE_INIT=y 522CONFIG_IDE_ARCH_OBSOLETE_INIT=y
499# CONFIG_BLK_DEV_HD is not set 523# CONFIG_BLK_DEV_HD is not set
@@ -559,6 +583,7 @@ CONFIG_SCSI_LOWLEVEL=y
559# CONFIG_SCSI_IPS is not set 583# CONFIG_SCSI_IPS is not set
560# CONFIG_SCSI_INITIO is not set 584# CONFIG_SCSI_INITIO is not set
561# CONFIG_SCSI_INIA100 is not set 585# CONFIG_SCSI_INIA100 is not set
586# CONFIG_SCSI_MVSAS is not set
562# CONFIG_SCSI_STEX is not set 587# CONFIG_SCSI_STEX is not set
563# CONFIG_SCSI_SYM53C8XX_2 is not set 588# CONFIG_SCSI_SYM53C8XX_2 is not set
564# CONFIG_SCSI_IPR is not set 589# CONFIG_SCSI_IPR is not set
@@ -612,6 +637,7 @@ CONFIG_SATA_MV=y
612# CONFIG_PATA_MPIIX is not set 637# CONFIG_PATA_MPIIX is not set
613# CONFIG_PATA_OLDPIIX is not set 638# CONFIG_PATA_OLDPIIX is not set
614# CONFIG_PATA_NETCELL is not set 639# CONFIG_PATA_NETCELL is not set
640# CONFIG_PATA_NINJA32 is not set
615# CONFIG_PATA_NS87410 is not set 641# CONFIG_PATA_NS87410 is not set
616# CONFIG_PATA_NS87415 is not set 642# CONFIG_PATA_NS87415 is not set
617# CONFIG_PATA_OPTI is not set 643# CONFIG_PATA_OPTI is not set
@@ -626,6 +652,7 @@ CONFIG_SATA_MV=y
626# CONFIG_PATA_SIS is not set 652# CONFIG_PATA_SIS is not set
627# CONFIG_PATA_VIA is not set 653# CONFIG_PATA_VIA is not set
628# CONFIG_PATA_WINBOND is not set 654# CONFIG_PATA_WINBOND is not set
655# CONFIG_PATA_PLATFORM is not set
629# CONFIG_MD is not set 656# CONFIG_MD is not set
630# CONFIG_FUSION is not set 657# CONFIG_FUSION is not set
631 658
@@ -646,7 +673,6 @@ CONFIG_NETDEVICES=y
646# CONFIG_EQUALIZER is not set 673# CONFIG_EQUALIZER is not set
647# CONFIG_TUN is not set 674# CONFIG_TUN is not set
648# CONFIG_VETH is not set 675# CONFIG_VETH is not set
649# CONFIG_IP1000 is not set
650# CONFIG_ARCNET is not set 676# CONFIG_ARCNET is not set
651CONFIG_PHYLIB=y 677CONFIG_PHYLIB=y
652 678
@@ -662,6 +688,7 @@ CONFIG_PHYLIB=y
662# CONFIG_SMSC_PHY is not set 688# CONFIG_SMSC_PHY is not set
663# CONFIG_BROADCOM_PHY is not set 689# CONFIG_BROADCOM_PHY is not set
664# CONFIG_ICPLUS_PHY is not set 690# CONFIG_ICPLUS_PHY is not set
691# CONFIG_REALTEK_PHY is not set
665# CONFIG_FIXED_PHY is not set 692# CONFIG_FIXED_PHY is not set
666# CONFIG_MDIO_BITBANG is not set 693# CONFIG_MDIO_BITBANG is not set
667CONFIG_NET_ETHERNET=y 694CONFIG_NET_ETHERNET=y
@@ -693,6 +720,7 @@ CONFIG_8139TOO=y
693# CONFIG_8139TOO_TUNE_TWISTER is not set 720# CONFIG_8139TOO_TUNE_TWISTER is not set
694# CONFIG_8139TOO_8129 is not set 721# CONFIG_8139TOO_8129 is not set
695# CONFIG_8139_OLD_RX_RESET is not set 722# CONFIG_8139_OLD_RX_RESET is not set
723# CONFIG_R6040 is not set
696# CONFIG_SIS900 is not set 724# CONFIG_SIS900 is not set
697# CONFIG_EPIC100 is not set 725# CONFIG_EPIC100 is not set
698# CONFIG_SUNDANCE is not set 726# CONFIG_SUNDANCE is not set
@@ -706,6 +734,9 @@ CONFIG_E1000=y
706# CONFIG_E1000_NAPI is not set 734# CONFIG_E1000_NAPI is not set
707# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 735# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
708# CONFIG_E1000E is not set 736# CONFIG_E1000E is not set
737# CONFIG_E1000E_ENABLED is not set
738# CONFIG_IP1000 is not set
739# CONFIG_IGB is not set
709# CONFIG_NS83820 is not set 740# CONFIG_NS83820 is not set
710# CONFIG_HAMACHI is not set 741# CONFIG_HAMACHI is not set
711# CONFIG_YELLOWFIN is not set 742# CONFIG_YELLOWFIN is not set
@@ -731,6 +762,7 @@ CONFIG_NETDEV_10000=y
731# CONFIG_NIU is not set 762# CONFIG_NIU is not set
732# CONFIG_MLX4_CORE is not set 763# CONFIG_MLX4_CORE is not set
733# CONFIG_TEHUTI is not set 764# CONFIG_TEHUTI is not set
765# CONFIG_BNX2X is not set
734# CONFIG_TR is not set 766# CONFIG_TR is not set
735 767
736# 768#
@@ -753,7 +785,6 @@ CONFIG_NETDEV_10000=y
753# CONFIG_PPP is not set 785# CONFIG_PPP is not set
754# CONFIG_SLIP is not set 786# CONFIG_SLIP is not set
755# CONFIG_NET_FC is not set 787# CONFIG_NET_FC is not set
756# CONFIG_SHAPER is not set
757# CONFIG_NETCONSOLE is not set 788# CONFIG_NETCONSOLE is not set
758# CONFIG_NETPOLL is not set 789# CONFIG_NETPOLL is not set
759# CONFIG_NET_POLL_CONTROLLER is not set 790# CONFIG_NET_POLL_CONTROLLER is not set
@@ -802,6 +833,7 @@ CONFIG_VT_CONSOLE=y
802CONFIG_HW_CONSOLE=y 833CONFIG_HW_CONSOLE=y
803# CONFIG_VT_HW_CONSOLE_BINDING is not set 834# CONFIG_VT_HW_CONSOLE_BINDING is not set
804# CONFIG_SERIAL_NONSTANDARD is not set 835# CONFIG_SERIAL_NONSTANDARD is not set
836# CONFIG_NOZOMI is not set
805 837
806# 838#
807# Serial drivers 839# Serial drivers
@@ -872,14 +904,12 @@ CONFIG_I2C_MV64XXX=y
872# 904#
873# Miscellaneous I2C Chip support 905# Miscellaneous I2C Chip support
874# 906#
875# CONFIG_SENSORS_DS1337 is not set
876# CONFIG_SENSORS_DS1374 is not set
877# CONFIG_DS1682 is not set 907# CONFIG_DS1682 is not set
878# CONFIG_SENSORS_EEPROM is not set 908# CONFIG_SENSORS_EEPROM is not set
879# CONFIG_SENSORS_PCF8574 is not set 909# CONFIG_SENSORS_PCF8574 is not set
880# CONFIG_SENSORS_PCA9539 is not set 910# CONFIG_PCF8575 is not set
881# CONFIG_SENSORS_PCF8591 is not set 911# CONFIG_SENSORS_PCF8591 is not set
882# CONFIG_SENSORS_M41T00 is not set 912# CONFIG_TPS65010 is not set
883# CONFIG_SENSORS_MAX6875 is not set 913# CONFIG_SENSORS_MAX6875 is not set
884# CONFIG_SENSORS_TSL2550 is not set 914# CONFIG_SENSORS_TSL2550 is not set
885# CONFIG_I2C_DEBUG_CORE is not set 915# CONFIG_I2C_DEBUG_CORE is not set
@@ -904,6 +934,7 @@ CONFIG_HWMON=y
904# CONFIG_SENSORS_ADM1031 is not set 934# CONFIG_SENSORS_ADM1031 is not set
905# CONFIG_SENSORS_ADM9240 is not set 935# CONFIG_SENSORS_ADM9240 is not set
906# CONFIG_SENSORS_ADT7470 is not set 936# CONFIG_SENSORS_ADT7470 is not set
937# CONFIG_SENSORS_ADT7473 is not set
907# CONFIG_SENSORS_ATXP1 is not set 938# CONFIG_SENSORS_ATXP1 is not set
908# CONFIG_SENSORS_DS1621 is not set 939# CONFIG_SENSORS_DS1621 is not set
909# CONFIG_SENSORS_I5K_AMB is not set 940# CONFIG_SENSORS_I5K_AMB is not set
@@ -933,6 +964,7 @@ CONFIG_HWMON=y
933# CONFIG_SENSORS_SMSC47M1 is not set 964# CONFIG_SENSORS_SMSC47M1 is not set
934# CONFIG_SENSORS_SMSC47M192 is not set 965# CONFIG_SENSORS_SMSC47M192 is not set
935# CONFIG_SENSORS_SMSC47B397 is not set 966# CONFIG_SENSORS_SMSC47B397 is not set
967# CONFIG_SENSORS_ADS7828 is not set
936# CONFIG_SENSORS_THMC50 is not set 968# CONFIG_SENSORS_THMC50 is not set
937# CONFIG_SENSORS_VIA686A is not set 969# CONFIG_SENSORS_VIA686A is not set
938# CONFIG_SENSORS_VT1211 is not set 970# CONFIG_SENSORS_VT1211 is not set
@@ -942,9 +974,11 @@ CONFIG_HWMON=y
942# CONFIG_SENSORS_W83792D is not set 974# CONFIG_SENSORS_W83792D is not set
943# CONFIG_SENSORS_W83793 is not set 975# CONFIG_SENSORS_W83793 is not set
944# CONFIG_SENSORS_W83L785TS is not set 976# CONFIG_SENSORS_W83L785TS is not set
977# CONFIG_SENSORS_W83L786NG is not set
945# CONFIG_SENSORS_W83627HF is not set 978# CONFIG_SENSORS_W83627HF is not set
946# CONFIG_SENSORS_W83627EHF is not set 979# CONFIG_SENSORS_W83627EHF is not set
947# CONFIG_HWMON_DEBUG_CHIP is not set 980# CONFIG_HWMON_DEBUG_CHIP is not set
981# CONFIG_THERMAL is not set
948# CONFIG_WATCHDOG is not set 982# CONFIG_WATCHDOG is not set
949 983
950# 984#
@@ -1009,6 +1043,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1009CONFIG_USB_ARCH_HAS_EHCI=y 1043CONFIG_USB_ARCH_HAS_EHCI=y
1010CONFIG_USB=y 1044CONFIG_USB=y
1011# CONFIG_USB_DEBUG is not set 1045# CONFIG_USB_DEBUG is not set
1046# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1012 1047
1013# 1048#
1014# Miscellaneous USB options 1049# Miscellaneous USB options
@@ -1022,9 +1057,9 @@ CONFIG_USB_DEVICEFS=y
1022# USB Host Controller Drivers 1057# USB Host Controller Drivers
1023# 1058#
1024CONFIG_USB_EHCI_HCD=y 1059CONFIG_USB_EHCI_HCD=y
1025# CONFIG_USB_EHCI_SPLIT_ISO is not set
1026# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1060# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1027# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1061# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1062CONFIG_USB_EHCI_HCD_PPC_OF=y
1028# CONFIG_USB_ISP116X_HCD is not set 1063# CONFIG_USB_ISP116X_HCD is not set
1029CONFIG_USB_OHCI_HCD=y 1064CONFIG_USB_OHCI_HCD=y
1030# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1065# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -1061,10 +1096,6 @@ CONFIG_USB_MON=y
1061# 1096#
1062# USB port drivers 1097# USB port drivers
1063# 1098#
1064
1065#
1066# USB Serial Converter support
1067#
1068# CONFIG_USB_SERIAL is not set 1099# CONFIG_USB_SERIAL is not set
1069 1100
1070# 1101#
@@ -1090,21 +1121,18 @@ CONFIG_USB_MON=y
1090# CONFIG_USB_TRANCEVIBRATOR is not set 1121# CONFIG_USB_TRANCEVIBRATOR is not set
1091# CONFIG_USB_IOWARRIOR is not set 1122# CONFIG_USB_IOWARRIOR is not set
1092# CONFIG_USB_TEST is not set 1123# CONFIG_USB_TEST is not set
1093
1094#
1095# USB DSL modem support
1096#
1097
1098#
1099# USB Gadget Support
1100#
1101# CONFIG_USB_GADGET is not set 1124# CONFIG_USB_GADGET is not set
1102# CONFIG_MMC is not set 1125# CONFIG_MMC is not set
1126# CONFIG_MEMSTICK is not set
1103# CONFIG_NEW_LEDS is not set 1127# CONFIG_NEW_LEDS is not set
1104# CONFIG_INFINIBAND is not set 1128# CONFIG_INFINIBAND is not set
1105# CONFIG_EDAC is not set 1129# CONFIG_EDAC is not set
1106CONFIG_RTC_LIB=y 1130CONFIG_RTC_LIB=y
1107CONFIG_RTC_CLASS=y 1131CONFIG_RTC_CLASS=y
1132
1133#
1134# Conflicting RTC option has been selected, check GEN_RTC and RTC
1135#
1108CONFIG_RTC_HCTOSYS=y 1136CONFIG_RTC_HCTOSYS=y
1109CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1137CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1110# CONFIG_RTC_DEBUG is not set 1138# CONFIG_RTC_DEBUG is not set
@@ -1131,6 +1159,7 @@ CONFIG_RTC_DRV_MAX6900=y
1131# CONFIG_RTC_DRV_PCF8563 is not set 1159# CONFIG_RTC_DRV_PCF8563 is not set
1132# CONFIG_RTC_DRV_PCF8583 is not set 1160# CONFIG_RTC_DRV_PCF8583 is not set
1133# CONFIG_RTC_DRV_M41T80 is not set 1161# CONFIG_RTC_DRV_M41T80 is not set
1162# CONFIG_RTC_DRV_S35390A is not set
1134 1163
1135# 1164#
1136# SPI RTC drivers 1165# SPI RTC drivers
@@ -1140,9 +1169,10 @@ CONFIG_RTC_DRV_MAX6900=y
1140# Platform RTC drivers 1169# Platform RTC drivers
1141# 1170#
1142# CONFIG_RTC_DRV_CMOS is not set 1171# CONFIG_RTC_DRV_CMOS is not set
1172# CONFIG_RTC_DRV_DS1511 is not set
1143# CONFIG_RTC_DRV_DS1553 is not set 1173# CONFIG_RTC_DRV_DS1553 is not set
1144# CONFIG_RTC_DRV_STK17TA8 is not set
1145# CONFIG_RTC_DRV_DS1742 is not set 1174# CONFIG_RTC_DRV_DS1742 is not set
1175# CONFIG_RTC_DRV_STK17TA8 is not set
1146# CONFIG_RTC_DRV_M48T86 is not set 1176# CONFIG_RTC_DRV_M48T86 is not set
1147# CONFIG_RTC_DRV_M48T59 is not set 1177# CONFIG_RTC_DRV_M48T59 is not set
1148# CONFIG_RTC_DRV_V3020 is not set 1178# CONFIG_RTC_DRV_V3020 is not set
@@ -1150,6 +1180,7 @@ CONFIG_RTC_DRV_MAX6900=y
1150# 1180#
1151# on-CPU RTC drivers 1181# on-CPU RTC drivers
1152# 1182#
1183# CONFIG_DMADEVICES is not set
1153 1184
1154# 1185#
1155# Userspace I/O 1186# Userspace I/O
@@ -1175,12 +1206,10 @@ CONFIG_FS_MBCACHE=y
1175# CONFIG_XFS_FS is not set 1206# CONFIG_XFS_FS is not set
1176# CONFIG_GFS2_FS is not set 1207# CONFIG_GFS2_FS is not set
1177# CONFIG_OCFS2_FS is not set 1208# CONFIG_OCFS2_FS is not set
1178# CONFIG_MINIX_FS is not set 1209CONFIG_DNOTIFY=y
1179# CONFIG_ROMFS_FS is not set
1180CONFIG_INOTIFY=y 1210CONFIG_INOTIFY=y
1181CONFIG_INOTIFY_USER=y 1211CONFIG_INOTIFY_USER=y
1182# CONFIG_QUOTA is not set 1212# CONFIG_QUOTA is not set
1183CONFIG_DNOTIFY=y
1184# CONFIG_AUTOFS_FS is not set 1213# CONFIG_AUTOFS_FS is not set
1185# CONFIG_AUTOFS4_FS is not set 1214# CONFIG_AUTOFS4_FS is not set
1186# CONFIG_FUSE_FS is not set 1215# CONFIG_FUSE_FS is not set
@@ -1223,8 +1252,10 @@ CONFIG_TMPFS=y
1223# CONFIG_JFFS2_FS is not set 1252# CONFIG_JFFS2_FS is not set
1224# CONFIG_CRAMFS is not set 1253# CONFIG_CRAMFS is not set
1225# CONFIG_VXFS_FS is not set 1254# CONFIG_VXFS_FS is not set
1255# CONFIG_MINIX_FS is not set
1226# CONFIG_HPFS_FS is not set 1256# CONFIG_HPFS_FS is not set
1227# CONFIG_QNX4FS_FS is not set 1257# CONFIG_QNX4FS_FS is not set
1258# CONFIG_ROMFS_FS is not set
1228# CONFIG_SYSV_FS is not set 1259# CONFIG_SYSV_FS is not set
1229# CONFIG_UFS_FS is not set 1260# CONFIG_UFS_FS is not set
1230CONFIG_NETWORK_FILESYSTEMS=y 1261CONFIG_NETWORK_FILESYSTEMS=y
@@ -1269,7 +1300,6 @@ CONFIG_MSDOS_PARTITION=y
1269# CONFIG_SYSV68_PARTITION is not set 1300# CONFIG_SYSV68_PARTITION is not set
1270# CONFIG_NLS is not set 1301# CONFIG_NLS is not set
1271# CONFIG_DLM is not set 1302# CONFIG_DLM is not set
1272# CONFIG_UCC_SLOW is not set
1273 1303
1274# 1304#
1275# Library routines 1305# Library routines
@@ -1285,7 +1315,6 @@ CONFIG_PLIST=y
1285CONFIG_HAS_IOMEM=y 1315CONFIG_HAS_IOMEM=y
1286CONFIG_HAS_IOPORT=y 1316CONFIG_HAS_IOPORT=y
1287CONFIG_HAS_DMA=y 1317CONFIG_HAS_DMA=y
1288# CONFIG_INSTRUMENTATION is not set
1289 1318
1290# 1319#
1291# Kernel hacking 1320# Kernel hacking
@@ -1299,6 +1328,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1299# CONFIG_HEADERS_CHECK is not set 1328# CONFIG_HEADERS_CHECK is not set
1300# CONFIG_DEBUG_KERNEL is not set 1329# CONFIG_DEBUG_KERNEL is not set
1301# CONFIG_SLUB_DEBUG_ON is not set 1330# CONFIG_SLUB_DEBUG_ON is not set
1331# CONFIG_SLUB_STATS is not set
1302CONFIG_DEBUG_BUGVERBOSE=y 1332CONFIG_DEBUG_BUGVERBOSE=y
1303# CONFIG_SAMPLES is not set 1333# CONFIG_SAMPLES is not set
1304# CONFIG_BOOTX_TEXT is not set 1334# CONFIG_BOOTX_TEXT is not set
@@ -1310,5 +1340,49 @@ CONFIG_DEBUG_BUGVERBOSE=y
1310# CONFIG_KEYS is not set 1340# CONFIG_KEYS is not set
1311# CONFIG_SECURITY is not set 1341# CONFIG_SECURITY is not set
1312# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1342# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1313# CONFIG_CRYPTO is not set 1343CONFIG_CRYPTO=y
1344# CONFIG_CRYPTO_SEQIV is not set
1345# CONFIG_CRYPTO_MANAGER is not set
1346# CONFIG_CRYPTO_HMAC is not set
1347# CONFIG_CRYPTO_XCBC is not set
1348# CONFIG_CRYPTO_NULL is not set
1349# CONFIG_CRYPTO_MD4 is not set
1350# CONFIG_CRYPTO_MD5 is not set
1351# CONFIG_CRYPTO_SHA1 is not set
1352# CONFIG_CRYPTO_SHA256 is not set
1353# CONFIG_CRYPTO_SHA512 is not set
1354# CONFIG_CRYPTO_WP512 is not set
1355# CONFIG_CRYPTO_TGR192 is not set
1356# CONFIG_CRYPTO_GF128MUL is not set
1357# CONFIG_CRYPTO_ECB is not set
1358# CONFIG_CRYPTO_CBC is not set
1359# CONFIG_CRYPTO_PCBC is not set
1360# CONFIG_CRYPTO_LRW is not set
1361# CONFIG_CRYPTO_XTS is not set
1362# CONFIG_CRYPTO_CTR is not set
1363# CONFIG_CRYPTO_GCM is not set
1364# CONFIG_CRYPTO_CCM is not set
1365# CONFIG_CRYPTO_CRYPTD is not set
1366# CONFIG_CRYPTO_DES is not set
1367# CONFIG_CRYPTO_FCRYPT is not set
1368# CONFIG_CRYPTO_BLOWFISH is not set
1369# CONFIG_CRYPTO_TWOFISH is not set
1370# CONFIG_CRYPTO_SERPENT is not set
1371# CONFIG_CRYPTO_AES is not set
1372# CONFIG_CRYPTO_CAST5 is not set
1373# CONFIG_CRYPTO_CAST6 is not set
1374# CONFIG_CRYPTO_TEA is not set
1375# CONFIG_CRYPTO_ARC4 is not set
1376# CONFIG_CRYPTO_KHAZAD is not set
1377# CONFIG_CRYPTO_ANUBIS is not set
1378# CONFIG_CRYPTO_SEED is not set
1379# CONFIG_CRYPTO_SALSA20 is not set
1380# CONFIG_CRYPTO_DEFLATE is not set
1381# CONFIG_CRYPTO_MICHAEL_MIC is not set
1382# CONFIG_CRYPTO_CRC32C is not set
1383# CONFIG_CRYPTO_CAMELLIA is not set
1384# CONFIG_CRYPTO_AUTHENC is not set
1385# CONFIG_CRYPTO_LZO is not set
1386CONFIG_CRYPTO_HW=y
1387# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1314# CONFIG_PPC_CLOCK is not set 1388# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index 7994955c29d3..7a64c564f6e6 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Wed Jan 16 14:31:21 2008 4# Thu Mar 20 11:07:04 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,7 +52,6 @@ CONFIG_GENERIC_BUG=y
51# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
52# CONFIG_PPC_DCR_NATIVE is not set 53# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 54# CONFIG_PPC_DCR_MMIO is not set
54# CONFIG_PPC_OF_PLATFORM_PCI is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 56
57# 57#
@@ -68,17 +68,21 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 68CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=17 73CONFIG_LOG_BUF_SHIFT=17
76# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
77CONFIG_FAIR_GROUP_SCHED=y 75# CONFIG_GROUP_SCHED is not set
78CONFIG_FAIR_USER_SCHED=y 76# CONFIG_USER_SCHED is not set
79# CONFIG_FAIR_CGROUP_SCHED is not set 77# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 78CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 80# CONFIG_RELAY is not set
81CONFIG_NAMESPACES=y
82# CONFIG_UTS_NS is not set
83# CONFIG_IPC_NS is not set
84# CONFIG_USER_NS is not set
85# CONFIG_PID_NS is not set
82CONFIG_BLK_DEV_INITRD=y 86CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 87CONFIG_INITRAMFS_SOURCE=""
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 88CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -92,17 +96,27 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 96CONFIG_PRINTK=y
93CONFIG_BUG=y 97CONFIG_BUG=y
94CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
99# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 101CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 102CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 103CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 104CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 107CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
103CONFIG_SLAB=y 109CONFIG_SLAB=y
104# CONFIG_SLUB is not set 110# CONFIG_SLUB is not set
105# CONFIG_SLOB is not set 111# CONFIG_SLOB is not set
112CONFIG_PROFILING=y
113# CONFIG_MARKERS is not set
114CONFIG_OPROFILE=m
115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set
117CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y
119CONFIG_PROC_PAGE_MONITOR=y
106CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 122# CONFIG_TINY_SHMEM is not set
@@ -131,6 +145,7 @@ CONFIG_DEFAULT_AS=y
131# CONFIG_DEFAULT_CFQ is not set 145# CONFIG_DEFAULT_CFQ is not set
132# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y
134 149
135# 150#
136# Platform support 151# Platform support
@@ -141,8 +156,8 @@ CONFIG_PPC_MULTIPLATFORM=y
141# CONFIG_PPC_86xx is not set 156# CONFIG_PPC_86xx is not set
142# CONFIG_PPC_PSERIES is not set 157# CONFIG_PPC_PSERIES is not set
143# CONFIG_PPC_ISERIES is not set 158# CONFIG_PPC_ISERIES is not set
144# CONFIG_PPC_MPC52xx is not set 159# CONFIG_PPC_MPC512x is not set
145# CONFIG_PPC_MPC5200 is not set 160# CONFIG_PPC_MPC5121 is not set
146# CONFIG_PPC_PMAC is not set 161# CONFIG_PPC_PMAC is not set
147# CONFIG_PPC_MAPLE is not set 162# CONFIG_PPC_MAPLE is not set
148# CONFIG_PPC_PASEMI is not set 163# CONFIG_PPC_PASEMI is not set
@@ -173,6 +188,7 @@ CONFIG_PPC_CELL=y
173CONFIG_SPU_FS=y 188CONFIG_SPU_FS=y
174CONFIG_SPU_BASE=y 189CONFIG_SPU_BASE=y
175# CONFIG_PQ2ADS is not set 190# CONFIG_PQ2ADS is not set
191# CONFIG_IPIC is not set
176# CONFIG_MPIC is not set 192# CONFIG_MPIC is not set
177# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
178# CONFIG_PPC_I8259 is not set 194# CONFIG_PPC_I8259 is not set
@@ -184,7 +200,6 @@ CONFIG_SPU_BASE=y
184# CONFIG_PPC_INDIRECT_IO is not set 200# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 201# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 202# CONFIG_CPU_FREQ is not set
187# CONFIG_CPM2 is not set
188# CONFIG_FSL_ULI1575 is not set 203# CONFIG_FSL_ULI1575 is not set
189 204
190# 205#
@@ -199,15 +214,19 @@ CONFIG_HZ_250=y
199# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
200# CONFIG_HZ_1000 is not set 215# CONFIG_HZ_1000 is not set
201CONFIG_HZ=250 216CONFIG_HZ=250
217# CONFIG_SCHED_HRTICK is not set
202CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
205# CONFIG_PREEMPT_BKL is not set
206CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
222CONFIG_COMPAT_BINFMT_ELF=y
207CONFIG_BINFMT_MISC=y 223CONFIG_BINFMT_MISC=y
208CONFIG_FORCE_MAX_ZONEORDER=13 224CONFIG_FORCE_MAX_ZONEORDER=13
209# CONFIG_IOMMU_VMERGE is not set 225# CONFIG_IOMMU_VMERGE is not set
226CONFIG_IOMMU_HELPER=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
228CONFIG_ARCH_HAS_WALK_MEMORY=y
229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
211CONFIG_KEXEC=y 230CONFIG_KEXEC=y
212# CONFIG_CRASH_DUMP is not set 231# CONFIG_CRASH_DUMP is not set
213# CONFIG_IRQ_ALL_CPUS is not set 232# CONFIG_IRQ_ALL_CPUS is not set
@@ -241,7 +260,6 @@ CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
242# CONFIG_PM is not set 261# CONFIG_PM is not set
243# CONFIG_SECCOMP is not set 262# CONFIG_SECCOMP is not set
244# CONFIG_WANT_DEVICE_TREE is not set
245CONFIG_ISA_DMA_API=y 263CONFIG_ISA_DMA_API=y
246 264
247# 265#
@@ -271,6 +289,7 @@ CONFIG_XFRM=y
271# CONFIG_XFRM_USER is not set 289# CONFIG_XFRM_USER is not set
272# CONFIG_XFRM_SUB_POLICY is not set 290# CONFIG_XFRM_SUB_POLICY is not set
273# CONFIG_XFRM_MIGRATE is not set 291# CONFIG_XFRM_MIGRATE is not set
292# CONFIG_XFRM_STATISTICS is not set
274# CONFIG_NET_KEY is not set 293# CONFIG_NET_KEY is not set
275CONFIG_INET=y 294CONFIG_INET=y
276# CONFIG_IP_MULTICAST is not set 295# CONFIG_IP_MULTICAST is not set
@@ -338,6 +357,7 @@ CONFIG_IPV6_SIT=y
338# 357#
339# CONFIG_NET_PKTGEN is not set 358# CONFIG_NET_PKTGEN is not set
340# CONFIG_HAMRADIO is not set 359# CONFIG_HAMRADIO is not set
360# CONFIG_CAN is not set
341# CONFIG_IRDA is not set 361# CONFIG_IRDA is not set
342CONFIG_BT=m 362CONFIG_BT=m
343CONFIG_BT_L2CAP=m 363CONFIG_BT_L2CAP=m
@@ -405,11 +425,13 @@ CONFIG_BLK_DEV_LOOP=y
405CONFIG_BLK_DEV_RAM=y 425CONFIG_BLK_DEV_RAM=y
406CONFIG_BLK_DEV_RAM_COUNT=16 426CONFIG_BLK_DEV_RAM_COUNT=16
407CONFIG_BLK_DEV_RAM_SIZE=65535 427CONFIG_BLK_DEV_RAM_SIZE=65535
408CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 428# CONFIG_BLK_DEV_XIP is not set
409# CONFIG_CDROM_PKTCDVD is not set 429# CONFIG_CDROM_PKTCDVD is not set
410# CONFIG_ATA_OVER_ETH is not set 430# CONFIG_ATA_OVER_ETH is not set
411CONFIG_MISC_DEVICES=y 431CONFIG_MISC_DEVICES=y
412# CONFIG_EEPROM_93CX6 is not set 432# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_ENCLOSURE_SERVICES is not set
434CONFIG_HAVE_IDE=y
413# CONFIG_IDE is not set 435# CONFIG_IDE is not set
414 436
415# 437#
@@ -472,7 +494,9 @@ CONFIG_MII=m
472# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 494# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
473# CONFIG_B44 is not set 495# CONFIG_B44 is not set
474CONFIG_NETDEV_1000=y 496CONFIG_NETDEV_1000=y
497# CONFIG_E1000E_ENABLED is not set
475CONFIG_GELIC_NET=y 498CONFIG_GELIC_NET=y
499CONFIG_GELIC_WIRELESS=y
476# CONFIG_NETDEV_10000 is not set 500# CONFIG_NETDEV_10000 is not set
477 501
478# 502#
@@ -482,9 +506,8 @@ CONFIG_GELIC_NET=y
482CONFIG_WLAN_80211=y 506CONFIG_WLAN_80211=y
483# CONFIG_LIBERTAS is not set 507# CONFIG_LIBERTAS is not set
484# CONFIG_USB_ZD1201 is not set 508# CONFIG_USB_ZD1201 is not set
509# CONFIG_USB_NET_RNDIS_WLAN is not set
485# CONFIG_HOSTAP is not set 510# CONFIG_HOSTAP is not set
486CONFIG_ZD1211RW=m
487# CONFIG_ZD1211RW_DEBUG is not set
488 511
489# 512#
490# USB Network Adapters 513# USB Network Adapters
@@ -507,7 +530,6 @@ CONFIG_USB_NET_MCS7830=m
507# CONFIG_WAN is not set 530# CONFIG_WAN is not set
508# CONFIG_PPP is not set 531# CONFIG_PPP is not set
509# CONFIG_SLIP is not set 532# CONFIG_SLIP is not set
510# CONFIG_SHAPER is not set
511# CONFIG_NETCONSOLE is not set 533# CONFIG_NETCONSOLE is not set
512# CONFIG_NETPOLL is not set 534# CONFIG_NETPOLL is not set
513# CONFIG_NET_POLL_CONTROLLER is not set 535# CONFIG_NET_POLL_CONTROLLER is not set
@@ -606,6 +628,7 @@ CONFIG_GEN_RTC=y
606# CONFIG_W1 is not set 628# CONFIG_W1 is not set
607# CONFIG_POWER_SUPPLY is not set 629# CONFIG_POWER_SUPPLY is not set
608# CONFIG_HWMON is not set 630# CONFIG_HWMON is not set
631# CONFIG_THERMAL is not set
609# CONFIG_WATCHDOG is not set 632# CONFIG_WATCHDOG is not set
610 633
611# 634#
@@ -742,6 +765,10 @@ CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
742# 765#
743 766
744# 767#
768# ALSA SoC audio for Freescale SOCs
769#
770
771#
745# Open Sound System 772# Open Sound System
746# 773#
747# CONFIG_SOUND_PRIME is not set 774# CONFIG_SOUND_PRIME is not set
@@ -769,6 +796,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
769CONFIG_USB_ARCH_HAS_EHCI=y 796CONFIG_USB_ARCH_HAS_EHCI=y
770CONFIG_USB=m 797CONFIG_USB=m
771# CONFIG_USB_DEBUG is not set 798# CONFIG_USB_DEBUG is not set
799# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
772 800
773# 801#
774# Miscellaneous USB options 802# Miscellaneous USB options
@@ -782,10 +810,10 @@ CONFIG_USB_DEVICEFS=y
782# USB Host Controller Drivers 810# USB Host Controller Drivers
783# 811#
784CONFIG_USB_EHCI_HCD=m 812CONFIG_USB_EHCI_HCD=m
785# CONFIG_USB_EHCI_SPLIT_ISO is not set
786# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 813# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
787# CONFIG_USB_EHCI_TT_NEWSCHED is not set 814# CONFIG_USB_EHCI_TT_NEWSCHED is not set
788CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 815CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
816# CONFIG_USB_EHCI_HCD_PPC_OF is not set
789# CONFIG_USB_ISP116X_HCD is not set 817# CONFIG_USB_ISP116X_HCD is not set
790CONFIG_USB_OHCI_HCD=m 818CONFIG_USB_OHCI_HCD=m
791# CONFIG_USB_OHCI_HCD_PPC_OF is not set 819# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -833,10 +861,6 @@ CONFIG_USB_MON=y
833# 861#
834# USB port drivers 862# USB port drivers
835# 863#
836
837#
838# USB Serial Converter support
839#
840# CONFIG_USB_SERIAL is not set 864# CONFIG_USB_SERIAL is not set
841 865
842# 866#
@@ -862,19 +886,13 @@ CONFIG_USB_MON=y
862# CONFIG_USB_TRANCEVIBRATOR is not set 886# CONFIG_USB_TRANCEVIBRATOR is not set
863# CONFIG_USB_IOWARRIOR is not set 887# CONFIG_USB_IOWARRIOR is not set
864# CONFIG_USB_TEST is not set 888# CONFIG_USB_TEST is not set
865
866#
867# USB DSL modem support
868#
869
870#
871# USB Gadget Support
872#
873# CONFIG_USB_GADGET is not set 889# CONFIG_USB_GADGET is not set
874# CONFIG_MMC is not set 890# CONFIG_MMC is not set
891# CONFIG_MEMSTICK is not set
875# CONFIG_NEW_LEDS is not set 892# CONFIG_NEW_LEDS is not set
876# CONFIG_EDAC is not set 893# CONFIG_EDAC is not set
877# CONFIG_RTC_CLASS is not set 894# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set
878 896
879# 897#
880# Userspace I/O 898# Userspace I/O
@@ -900,8 +918,7 @@ CONFIG_FS_MBCACHE=y
900# CONFIG_XFS_FS is not set 918# CONFIG_XFS_FS is not set
901# CONFIG_GFS2_FS is not set 919# CONFIG_GFS2_FS is not set
902# CONFIG_OCFS2_FS is not set 920# CONFIG_OCFS2_FS is not set
903# CONFIG_MINIX_FS is not set 921CONFIG_DNOTIFY=y
904# CONFIG_ROMFS_FS is not set
905CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
906CONFIG_INOTIFY_USER=y 923CONFIG_INOTIFY_USER=y
907CONFIG_QUOTA=y 924CONFIG_QUOTA=y
@@ -910,7 +927,6 @@ CONFIG_PRINT_QUOTA_WARNING=y
910# CONFIG_QFMT_V1 is not set 927# CONFIG_QFMT_V1 is not set
911CONFIG_QFMT_V2=y 928CONFIG_QFMT_V2=y
912CONFIG_QUOTACTL=y 929CONFIG_QUOTACTL=y
913CONFIG_DNOTIFY=y
914CONFIG_AUTOFS_FS=m 930CONFIG_AUTOFS_FS=m
915CONFIG_AUTOFS4_FS=m 931CONFIG_AUTOFS4_FS=m
916# CONFIG_FUSE_FS is not set 932# CONFIG_FUSE_FS is not set
@@ -959,8 +975,10 @@ CONFIG_TMPFS=y
959# CONFIG_EFS_FS is not set 975# CONFIG_EFS_FS is not set
960# CONFIG_CRAMFS is not set 976# CONFIG_CRAMFS is not set
961# CONFIG_VXFS_FS is not set 977# CONFIG_VXFS_FS is not set
978# CONFIG_MINIX_FS is not set
962# CONFIG_HPFS_FS is not set 979# CONFIG_HPFS_FS is not set
963# CONFIG_QNX4FS_FS is not set 980# CONFIG_QNX4FS_FS is not set
981# CONFIG_ROMFS_FS is not set
964# CONFIG_SYSV_FS is not set 982# CONFIG_SYSV_FS is not set
965# CONFIG_UFS_FS is not set 983# CONFIG_UFS_FS is not set
966CONFIG_NETWORK_FILESYSTEMS=y 984CONFIG_NETWORK_FILESYSTEMS=y
@@ -1036,7 +1054,6 @@ CONFIG_NLS_ISO8859_1=y
1036# CONFIG_NLS_KOI8_U is not set 1054# CONFIG_NLS_KOI8_U is not set
1037# CONFIG_NLS_UTF8 is not set 1055# CONFIG_NLS_UTF8 is not set
1038# CONFIG_DLM is not set 1056# CONFIG_DLM is not set
1039# CONFIG_UCC_SLOW is not set
1040 1057
1041# 1058#
1042# Library routines 1059# Library routines
@@ -1048,15 +1065,12 @@ CONFIG_BITREVERSE=y
1048CONFIG_CRC32=y 1065CONFIG_CRC32=y
1049# CONFIG_CRC7 is not set 1066# CONFIG_CRC7 is not set
1050# CONFIG_LIBCRC32C is not set 1067# CONFIG_LIBCRC32C is not set
1068CONFIG_LZO_COMPRESS=m
1069CONFIG_LZO_DECOMPRESS=m
1051CONFIG_PLIST=y 1070CONFIG_PLIST=y
1052CONFIG_HAS_IOMEM=y 1071CONFIG_HAS_IOMEM=y
1053CONFIG_HAS_IOPORT=y 1072CONFIG_HAS_IOPORT=y
1054CONFIG_HAS_DMA=y 1073CONFIG_HAS_DMA=y
1055CONFIG_INSTRUMENTATION=y
1056CONFIG_PROFILING=y
1057CONFIG_OPROFILE=m
1058# CONFIG_KPROBES is not set
1059# CONFIG_MARKERS is not set
1060 1074
1061# 1075#
1062# Kernel hacking 1076# Kernel hacking
@@ -1087,9 +1101,9 @@ CONFIG_DEBUG_INFO=y
1087# CONFIG_DEBUG_VM is not set 1101# CONFIG_DEBUG_VM is not set
1088CONFIG_DEBUG_LIST=y 1102CONFIG_DEBUG_LIST=y
1089# CONFIG_DEBUG_SG is not set 1103# CONFIG_DEBUG_SG is not set
1090CONFIG_FORCED_INLINING=y
1091# CONFIG_BOOT_PRINTK_DELAY is not set 1104# CONFIG_BOOT_PRINTK_DELAY is not set
1092# CONFIG_RCU_TORTURE_TEST is not set 1105# CONFIG_RCU_TORTURE_TEST is not set
1106# CONFIG_BACKTRACE_SELF_TEST is not set
1093# CONFIG_FAULT_INJECTION is not set 1107# CONFIG_FAULT_INJECTION is not set
1094# CONFIG_SAMPLES is not set 1108# CONFIG_SAMPLES is not set
1095CONFIG_DEBUG_STACKOVERFLOW=y 1109CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1108,7 +1122,9 @@ CONFIG_IRQSTACKS=y
1108# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1122# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1109CONFIG_CRYPTO=y 1123CONFIG_CRYPTO=y
1110CONFIG_CRYPTO_ALGAPI=y 1124CONFIG_CRYPTO_ALGAPI=y
1125CONFIG_CRYPTO_AEAD=m
1111CONFIG_CRYPTO_BLKCIPHER=y 1126CONFIG_CRYPTO_BLKCIPHER=y
1127CONFIG_CRYPTO_SEQIV=m
1112CONFIG_CRYPTO_MANAGER=y 1128CONFIG_CRYPTO_MANAGER=y
1113# CONFIG_CRYPTO_HMAC is not set 1129# CONFIG_CRYPTO_HMAC is not set
1114# CONFIG_CRYPTO_XCBC is not set 1130# CONFIG_CRYPTO_XCBC is not set
@@ -1120,12 +1136,15 @@ CONFIG_CRYPTO_MD5=y
1120# CONFIG_CRYPTO_SHA512 is not set 1136# CONFIG_CRYPTO_SHA512 is not set
1121# CONFIG_CRYPTO_WP512 is not set 1137# CONFIG_CRYPTO_WP512 is not set
1122# CONFIG_CRYPTO_TGR192 is not set 1138# CONFIG_CRYPTO_TGR192 is not set
1123# CONFIG_CRYPTO_GF128MUL is not set 1139CONFIG_CRYPTO_GF128MUL=m
1124CONFIG_CRYPTO_ECB=m 1140CONFIG_CRYPTO_ECB=m
1125CONFIG_CRYPTO_CBC=y 1141CONFIG_CRYPTO_CBC=y
1126CONFIG_CRYPTO_PCBC=m 1142CONFIG_CRYPTO_PCBC=m
1127# CONFIG_CRYPTO_LRW is not set 1143# CONFIG_CRYPTO_LRW is not set
1128# CONFIG_CRYPTO_XTS is not set 1144# CONFIG_CRYPTO_XTS is not set
1145CONFIG_CRYPTO_CTR=m
1146CONFIG_CRYPTO_GCM=m
1147CONFIG_CRYPTO_CCM=m
1129# CONFIG_CRYPTO_CRYPTD is not set 1148# CONFIG_CRYPTO_CRYPTD is not set
1130CONFIG_CRYPTO_DES=y 1149CONFIG_CRYPTO_DES=y
1131# CONFIG_CRYPTO_FCRYPT is not set 1150# CONFIG_CRYPTO_FCRYPT is not set
@@ -1140,11 +1159,13 @@ CONFIG_CRYPTO_ARC4=m
1140# CONFIG_CRYPTO_KHAZAD is not set 1159# CONFIG_CRYPTO_KHAZAD is not set
1141# CONFIG_CRYPTO_ANUBIS is not set 1160# CONFIG_CRYPTO_ANUBIS is not set
1142# CONFIG_CRYPTO_SEED is not set 1161# CONFIG_CRYPTO_SEED is not set
1162CONFIG_CRYPTO_SALSA20=m
1143# CONFIG_CRYPTO_DEFLATE is not set 1163# CONFIG_CRYPTO_DEFLATE is not set
1144CONFIG_CRYPTO_MICHAEL_MIC=m 1164CONFIG_CRYPTO_MICHAEL_MIC=m
1145# CONFIG_CRYPTO_CRC32C is not set 1165# CONFIG_CRYPTO_CRC32C is not set
1146# CONFIG_CRYPTO_CAMELLIA is not set 1166# CONFIG_CRYPTO_CAMELLIA is not set
1147# CONFIG_CRYPTO_TEST is not set 1167# CONFIG_CRYPTO_TEST is not set
1148# CONFIG_CRYPTO_AUTHENC is not set 1168# CONFIG_CRYPTO_AUTHENC is not set
1169CONFIG_CRYPTO_LZO=m
1149CONFIG_CRYPTO_HW=y 1170CONFIG_CRYPTO_HW=y
1150# CONFIG_PPC_CLOCK is not set 1171# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 92bbf51ad4f0..755aca72b522 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Thu Dec 6 16:49:15 2007 4# Thu Mar 20 11:08:01 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -71,8 +72,6 @@ CONFIG_TASKSTATS=y
71CONFIG_TASK_DELAY_ACCT=y 72CONFIG_TASK_DELAY_ACCT=y
72CONFIG_TASK_XACCT=y 73CONFIG_TASK_XACCT=y
73CONFIG_TASK_IO_ACCOUNTING=y 74CONFIG_TASK_IO_ACCOUNTING=y
74# CONFIG_USER_NS is not set
75# CONFIG_PID_NS is not set
76CONFIG_AUDIT=y 75CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 76CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 77CONFIG_AUDIT_TREE=y
@@ -83,13 +82,20 @@ CONFIG_CGROUPS=y
83# CONFIG_CGROUP_DEBUG is not set 82# CONFIG_CGROUP_DEBUG is not set
84CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
85CONFIG_CPUSETS=y 84CONFIG_CPUSETS=y
86CONFIG_FAIR_GROUP_SCHED=y 85# CONFIG_GROUP_SCHED is not set
87# CONFIG_FAIR_USER_SCHED is not set 86# CONFIG_USER_SCHED is not set
88CONFIG_FAIR_CGROUP_SCHED=y 87# CONFIG_CGROUP_SCHED is not set
89CONFIG_CGROUP_CPUACCT=y 88CONFIG_CGROUP_CPUACCT=y
89# CONFIG_RESOURCE_COUNTERS is not set
90CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
91CONFIG_SYSFS_DEPRECATED_V2=y
91CONFIG_PROC_PID_CPUSET=y 92CONFIG_PROC_PID_CPUSET=y
92# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
94CONFIG_NAMESPACES=y
95# CONFIG_UTS_NS is not set
96# CONFIG_IPC_NS is not set
97# CONFIG_USER_NS is not set
98# CONFIG_PID_NS is not set
93CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
94CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
95CONFIG_CC_OPTIMIZE_FOR_SIZE=y 101CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -103,11 +109,13 @@ CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 109CONFIG_PRINTK=y
104CONFIG_BUG=y 110CONFIG_BUG=y
105CONFIG_ELF_CORE=y 111CONFIG_ELF_CORE=y
112# CONFIG_COMPAT_BRK is not set
106CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 114CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y 115CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 116CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
118CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 119CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 120CONFIG_SHMEM=y
113CONFIG_VM_EVENT_COUNTERS=y 121CONFIG_VM_EVENT_COUNTERS=y
@@ -115,6 +123,16 @@ CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 123# CONFIG_SLAB is not set
116CONFIG_SLUB=y 124CONFIG_SLUB=y
117# CONFIG_SLOB is not set 125# CONFIG_SLOB is not set
126CONFIG_PROFILING=y
127CONFIG_MARKERS=y
128CONFIG_OPROFILE=y
129CONFIG_HAVE_OPROFILE=y
130CONFIG_KPROBES=y
131CONFIG_KRETPROBES=y
132CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y
134CONFIG_PROC_PAGE_MONITOR=y
135CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
120CONFIG_BASE_SMALL=0 138CONFIG_BASE_SMALL=0
@@ -142,6 +160,7 @@ CONFIG_DEFAULT_AS=y
142# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
143# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y
145 164
146# 165#
147# Platform support 166# Platform support
@@ -156,8 +175,8 @@ CONFIG_EEH=y
156CONFIG_SCANLOG=m 175CONFIG_SCANLOG=m
157CONFIG_LPARCFG=y 176CONFIG_LPARCFG=y
158# CONFIG_PPC_ISERIES is not set 177# CONFIG_PPC_ISERIES is not set
159# CONFIG_PPC_MPC52xx is not set 178# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5200 is not set 179# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_PMAC is not set 180# CONFIG_PPC_PMAC is not set
162# CONFIG_PPC_MAPLE is not set 181# CONFIG_PPC_MAPLE is not set
163# CONFIG_PPC_PASEMI is not set 182# CONFIG_PPC_PASEMI is not set
@@ -170,6 +189,7 @@ CONFIG_LPARCFG=y
170CONFIG_PPC_NATIVE=y 189CONFIG_PPC_NATIVE=y
171# CONFIG_UDBG_RTAS_CONSOLE is not set 190# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_XICS=y 191CONFIG_XICS=y
192# CONFIG_IPIC is not set
173CONFIG_MPIC=y 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175CONFIG_PPC_I8259=y 195CONFIG_PPC_I8259=y
@@ -186,7 +206,6 @@ CONFIG_IBMEBUS=y
186# CONFIG_PPC_INDIRECT_IO is not set 206# CONFIG_PPC_INDIRECT_IO is not set
187# CONFIG_GENERIC_IOMAP is not set 207# CONFIG_GENERIC_IOMAP is not set
188# CONFIG_CPU_FREQ is not set 208# CONFIG_CPU_FREQ is not set
189# CONFIG_CPM2 is not set
190# CONFIG_FSL_ULI1575 is not set 209# CONFIG_FSL_ULI1575 is not set
191 210
192# 211#
@@ -201,17 +220,21 @@ CONFIG_HZ_250=y
201# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
202# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
203CONFIG_HZ=250 222CONFIG_HZ=250
223# CONFIG_SCHED_HRTICK is not set
204CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
207# CONFIG_PREEMPT_BKL is not set
208CONFIG_BINFMT_ELF=y 227CONFIG_BINFMT_ELF=y
228CONFIG_COMPAT_BINFMT_ELF=y
209CONFIG_BINFMT_MISC=m 229CONFIG_BINFMT_MISC=m
210CONFIG_FORCE_MAX_ZONEORDER=13 230CONFIG_FORCE_MAX_ZONEORDER=13
211CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 231CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
212CONFIG_IOMMU_VMERGE=y 232CONFIG_IOMMU_VMERGE=y
233CONFIG_IOMMU_HELPER=y
213CONFIG_HOTPLUG_CPU=y 234CONFIG_HOTPLUG_CPU=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 235CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
236CONFIG_ARCH_HAS_WALK_MEMORY=y
237CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215CONFIG_KEXEC=y 238CONFIG_KEXEC=y
216# CONFIG_CRASH_DUMP is not set 239# CONFIG_CRASH_DUMP is not set
217CONFIG_IRQ_ALL_CPUS=y 240CONFIG_IRQ_ALL_CPUS=y
@@ -245,9 +268,7 @@ CONFIG_SCHED_SMT=y
245CONFIG_PROC_DEVICETREE=y 268CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
247# CONFIG_PM is not set 270# CONFIG_PM is not set
248CONFIG_SUSPEND_SMP_POSSIBLE=y
249CONFIG_SECCOMP=y 271CONFIG_SECCOMP=y
250# CONFIG_WANT_DEVICE_TREE is not set
251CONFIG_ISA_DMA_API=y 272CONFIG_ISA_DMA_API=y
252 273
253# 274#
@@ -288,6 +309,7 @@ CONFIG_XFRM=y
288CONFIG_XFRM_USER=m 309CONFIG_XFRM_USER=m
289# CONFIG_XFRM_SUB_POLICY is not set 310# CONFIG_XFRM_SUB_POLICY is not set
290# CONFIG_XFRM_MIGRATE is not set 311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_XFRM_STATISTICS is not set
291CONFIG_NET_KEY=m 313CONFIG_NET_KEY=m
292# CONFIG_NET_KEY_MIGRATE is not set 314# CONFIG_NET_KEY_MIGRATE is not set
293CONFIG_INET=y 315CONFIG_INET=y
@@ -322,14 +344,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_NETWORK_SECMARK is not set 344# CONFIG_NETWORK_SECMARK is not set
323CONFIG_NETFILTER=y 345CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set 346# CONFIG_NETFILTER_DEBUG is not set
347CONFIG_NETFILTER_ADVANCED=y
325 348
326# 349#
327# Core Netfilter Configuration 350# Core Netfilter Configuration
328# 351#
329CONFIG_NETFILTER_NETLINK=y 352CONFIG_NETFILTER_NETLINK=m
330CONFIG_NETFILTER_NETLINK_QUEUE=m 353CONFIG_NETFILTER_NETLINK_QUEUE=m
331CONFIG_NETFILTER_NETLINK_LOG=m 354CONFIG_NETFILTER_NETLINK_LOG=m
332CONFIG_NF_CONNTRACK_ENABLED=m
333CONFIG_NF_CONNTRACK=m 355CONFIG_NF_CONNTRACK=m
334CONFIG_NF_CT_ACCT=y 356CONFIG_NF_CT_ACCT=y
335CONFIG_NF_CONNTRACK_MARK=y 357CONFIG_NF_CONNTRACK_MARK=y
@@ -351,6 +373,7 @@ CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
351CONFIG_NETFILTER_XT_TARGET_MARK=m 373CONFIG_NETFILTER_XT_TARGET_MARK=m
352CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 374CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
353CONFIG_NETFILTER_XT_TARGET_NFLOG=m 375CONFIG_NETFILTER_XT_TARGET_NFLOG=m
376CONFIG_NETFILTER_XT_TARGET_RATEEST=m
354CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 377CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
355CONFIG_NETFILTER_XT_MATCH_COMMENT=m 378CONFIG_NETFILTER_XT_MATCH_COMMENT=m
356CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 379CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
@@ -361,14 +384,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
361CONFIG_NETFILTER_XT_MATCH_DSCP=m 384CONFIG_NETFILTER_XT_MATCH_DSCP=m
362CONFIG_NETFILTER_XT_MATCH_ESP=m 385CONFIG_NETFILTER_XT_MATCH_ESP=m
363CONFIG_NETFILTER_XT_MATCH_HELPER=m 386CONFIG_NETFILTER_XT_MATCH_HELPER=m
387CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
364CONFIG_NETFILTER_XT_MATCH_LENGTH=m 388CONFIG_NETFILTER_XT_MATCH_LENGTH=m
365CONFIG_NETFILTER_XT_MATCH_LIMIT=m 389CONFIG_NETFILTER_XT_MATCH_LIMIT=m
366CONFIG_NETFILTER_XT_MATCH_MAC=m 390CONFIG_NETFILTER_XT_MATCH_MAC=m
367CONFIG_NETFILTER_XT_MATCH_MARK=m 391CONFIG_NETFILTER_XT_MATCH_MARK=m
392CONFIG_NETFILTER_XT_MATCH_OWNER=m
368CONFIG_NETFILTER_XT_MATCH_POLICY=m 393CONFIG_NETFILTER_XT_MATCH_POLICY=m
369CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 394CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
370CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 395CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
371CONFIG_NETFILTER_XT_MATCH_QUOTA=m 396CONFIG_NETFILTER_XT_MATCH_QUOTA=m
397CONFIG_NETFILTER_XT_MATCH_RATEEST=m
372CONFIG_NETFILTER_XT_MATCH_REALM=m 398CONFIG_NETFILTER_XT_MATCH_REALM=m
373CONFIG_NETFILTER_XT_MATCH_SCTP=m 399CONFIG_NETFILTER_XT_MATCH_SCTP=m
374CONFIG_NETFILTER_XT_MATCH_STATE=m 400CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -386,13 +412,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
386CONFIG_NF_CONNTRACK_PROC_COMPAT=y 412CONFIG_NF_CONNTRACK_PROC_COMPAT=y
387CONFIG_IP_NF_QUEUE=m 413CONFIG_IP_NF_QUEUE=m
388CONFIG_IP_NF_IPTABLES=m 414CONFIG_IP_NF_IPTABLES=m
389CONFIG_IP_NF_MATCH_IPRANGE=m
390CONFIG_IP_NF_MATCH_TOS=m
391CONFIG_IP_NF_MATCH_RECENT=m 415CONFIG_IP_NF_MATCH_RECENT=m
392CONFIG_IP_NF_MATCH_ECN=m 416CONFIG_IP_NF_MATCH_ECN=m
393CONFIG_IP_NF_MATCH_AH=m 417CONFIG_IP_NF_MATCH_AH=m
394CONFIG_IP_NF_MATCH_TTL=m 418CONFIG_IP_NF_MATCH_TTL=m
395CONFIG_IP_NF_MATCH_OWNER=m
396CONFIG_IP_NF_MATCH_ADDRTYPE=m 419CONFIG_IP_NF_MATCH_ADDRTYPE=m
397CONFIG_IP_NF_FILTER=m 420CONFIG_IP_NF_FILTER=m
398CONFIG_IP_NF_TARGET_REJECT=m 421CONFIG_IP_NF_TARGET_REJECT=m
@@ -403,7 +426,6 @@ CONFIG_NF_NAT_NEEDED=y
403CONFIG_IP_NF_TARGET_MASQUERADE=m 426CONFIG_IP_NF_TARGET_MASQUERADE=m
404CONFIG_IP_NF_TARGET_REDIRECT=m 427CONFIG_IP_NF_TARGET_REDIRECT=m
405CONFIG_IP_NF_TARGET_NETMAP=m 428CONFIG_IP_NF_TARGET_NETMAP=m
406CONFIG_IP_NF_TARGET_SAME=m
407CONFIG_NF_NAT_SNMP_BASIC=m 429CONFIG_NF_NAT_SNMP_BASIC=m
408CONFIG_NF_NAT_FTP=m 430CONFIG_NF_NAT_FTP=m
409CONFIG_NF_NAT_IRC=m 431CONFIG_NF_NAT_IRC=m
@@ -439,6 +461,7 @@ CONFIG_NET_CLS_ROUTE=y
439# CONFIG_NET_PKTGEN is not set 461# CONFIG_NET_PKTGEN is not set
440# CONFIG_NET_TCPPROBE is not set 462# CONFIG_NET_TCPPROBE is not set
441# CONFIG_HAMRADIO is not set 463# CONFIG_HAMRADIO is not set
464# CONFIG_CAN is not set
442# CONFIG_IRDA is not set 465# CONFIG_IRDA is not set
443# CONFIG_BT is not set 466# CONFIG_BT is not set
444# CONFIG_AF_RXRPC is not set 467# CONFIG_AF_RXRPC is not set
@@ -493,7 +516,7 @@ CONFIG_BLK_DEV_NBD=m
493CONFIG_BLK_DEV_RAM=y 516CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16 517CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=65536 518CONFIG_BLK_DEV_RAM_SIZE=65536
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 519# CONFIG_BLK_DEV_XIP is not set
497# CONFIG_CDROM_PKTCDVD is not set 520# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set 521# CONFIG_ATA_OVER_ETH is not set
499CONFIG_MISC_DEVICES=y 522CONFIG_MISC_DEVICES=y
@@ -501,16 +524,19 @@ CONFIG_MISC_DEVICES=y
501# CONFIG_EEPROM_93CX6 is not set 524# CONFIG_EEPROM_93CX6 is not set
502# CONFIG_SGI_IOC4 is not set 525# CONFIG_SGI_IOC4 is not set
503# CONFIG_TIFM_CORE is not set 526# CONFIG_TIFM_CORE is not set
527# CONFIG_ENCLOSURE_SERVICES is not set
528CONFIG_HAVE_IDE=y
504CONFIG_IDE=y 529CONFIG_IDE=y
505CONFIG_BLK_DEV_IDE=y 530CONFIG_BLK_DEV_IDE=y
506 531
507# 532#
508# Please see Documentation/ide.txt for help/info on IDE drives 533# Please see Documentation/ide/ide.txt for help/info on IDE drives
509# 534#
510# CONFIG_BLK_DEV_IDE_SATA is not set 535# CONFIG_BLK_DEV_IDE_SATA is not set
511CONFIG_BLK_DEV_IDEDISK=y 536CONFIG_BLK_DEV_IDEDISK=y
512# CONFIG_IDEDISK_MULTI_MODE is not set 537# CONFIG_IDEDISK_MULTI_MODE is not set
513CONFIG_BLK_DEV_IDECD=y 538CONFIG_BLK_DEV_IDECD=y
539CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
514# CONFIG_BLK_DEV_IDETAPE is not set 540# CONFIG_BLK_DEV_IDETAPE is not set
515# CONFIG_BLK_DEV_IDEFLOPPY is not set 541# CONFIG_BLK_DEV_IDEFLOPPY is not set
516# CONFIG_BLK_DEV_IDESCSI is not set 542# CONFIG_BLK_DEV_IDESCSI is not set
@@ -522,12 +548,12 @@ CONFIG_IDE_PROC_FS=y
522# 548#
523CONFIG_IDE_GENERIC=y 549CONFIG_IDE_GENERIC=y
524# CONFIG_BLK_DEV_PLATFORM is not set 550# CONFIG_BLK_DEV_PLATFORM is not set
551CONFIG_BLK_DEV_IDEDMA_SFF=y
525 552
526# 553#
527# PCI IDE chipsets support 554# PCI IDE chipsets support
528# 555#
529CONFIG_BLK_DEV_IDEPCI=y 556CONFIG_BLK_DEV_IDEPCI=y
530CONFIG_IDEPCI_SHARE_IRQ=y
531CONFIG_IDEPCI_PCIBUS_ORDER=y 557CONFIG_IDEPCI_PCIBUS_ORDER=y
532# CONFIG_BLK_DEV_OFFBOARD is not set 558# CONFIG_BLK_DEV_OFFBOARD is not set
533CONFIG_BLK_DEV_GENERIC=y 559CONFIG_BLK_DEV_GENERIC=y
@@ -558,7 +584,6 @@ CONFIG_BLK_DEV_AMD74XX=y
558# CONFIG_BLK_DEV_TRM290 is not set 584# CONFIG_BLK_DEV_TRM290 is not set
559# CONFIG_BLK_DEV_VIA82CXXX is not set 585# CONFIG_BLK_DEV_VIA82CXXX is not set
560# CONFIG_BLK_DEV_TC86C001 is not set 586# CONFIG_BLK_DEV_TC86C001 is not set
561# CONFIG_IDE_ARM is not set
562CONFIG_BLK_DEV_IDEDMA=y 587CONFIG_BLK_DEV_IDEDMA=y
563CONFIG_IDE_ARCH_OBSOLETE_INIT=y 588CONFIG_IDE_ARCH_OBSOLETE_INIT=y
564# CONFIG_BLK_DEV_HD is not set 589# CONFIG_BLK_DEV_HD is not set
@@ -627,6 +652,7 @@ CONFIG_SCSI_IBMVSCSI=y
627# CONFIG_SCSI_INIA100 is not set 652# CONFIG_SCSI_INIA100 is not set
628# CONFIG_SCSI_PPA is not set 653# CONFIG_SCSI_PPA is not set
629# CONFIG_SCSI_IMM is not set 654# CONFIG_SCSI_IMM is not set
655# CONFIG_SCSI_MVSAS is not set
630# CONFIG_SCSI_STEX is not set 656# CONFIG_SCSI_STEX is not set
631CONFIG_SCSI_SYM53C8XX_2=y 657CONFIG_SCSI_SYM53C8XX_2=y
632CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 658CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -685,6 +711,7 @@ CONFIG_ATA=y
685# CONFIG_PATA_MPIIX is not set 711# CONFIG_PATA_MPIIX is not set
686# CONFIG_PATA_OLDPIIX is not set 712# CONFIG_PATA_OLDPIIX is not set
687# CONFIG_PATA_NETCELL is not set 713# CONFIG_PATA_NETCELL is not set
714# CONFIG_PATA_NINJA32 is not set
688# CONFIG_PATA_NS87410 is not set 715# CONFIG_PATA_NS87410 is not set
689# CONFIG_PATA_NS87415 is not set 716# CONFIG_PATA_NS87415 is not set
690# CONFIG_PATA_OPTI is not set 717# CONFIG_PATA_OPTI is not set
@@ -699,6 +726,7 @@ CONFIG_ATA=y
699# CONFIG_PATA_SIS is not set 726# CONFIG_PATA_SIS is not set
700# CONFIG_PATA_VIA is not set 727# CONFIG_PATA_VIA is not set
701CONFIG_PATA_WINBOND=y 728CONFIG_PATA_WINBOND=y
729# CONFIG_PATA_PLATFORM is not set
702CONFIG_MD=y 730CONFIG_MD=y
703CONFIG_BLK_DEV_MD=y 731CONFIG_BLK_DEV_MD=y
704CONFIG_MD_LINEAR=y 732CONFIG_MD_LINEAR=y
@@ -737,7 +765,6 @@ CONFIG_BONDING=m
737# CONFIG_EQUALIZER is not set 765# CONFIG_EQUALIZER is not set
738CONFIG_TUN=m 766CONFIG_TUN=m
739# CONFIG_VETH is not set 767# CONFIG_VETH is not set
740# CONFIG_IP1000 is not set
741# CONFIG_ARCNET is not set 768# CONFIG_ARCNET is not set
742# CONFIG_PHYLIB is not set 769# CONFIG_PHYLIB is not set
743CONFIG_NET_ETHERNET=y 770CONFIG_NET_ETHERNET=y
@@ -769,6 +796,7 @@ CONFIG_E100=y
769# CONFIG_NE2K_PCI is not set 796# CONFIG_NE2K_PCI is not set
770# CONFIG_8139CP is not set 797# CONFIG_8139CP is not set
771# CONFIG_8139TOO is not set 798# CONFIG_8139TOO is not set
799# CONFIG_R6040 is not set
772# CONFIG_SIS900 is not set 800# CONFIG_SIS900 is not set
773# CONFIG_EPIC100 is not set 801# CONFIG_EPIC100 is not set
774# CONFIG_SUNDANCE is not set 802# CONFIG_SUNDANCE is not set
@@ -783,6 +811,9 @@ CONFIG_E1000=y
783# CONFIG_E1000_NAPI is not set 811# CONFIG_E1000_NAPI is not set
784# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 812# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
785# CONFIG_E1000E is not set 813# CONFIG_E1000E is not set
814# CONFIG_E1000E_ENABLED is not set
815# CONFIG_IP1000 is not set
816# CONFIG_IGB is not set
786# CONFIG_NS83820 is not set 817# CONFIG_NS83820 is not set
787# CONFIG_HAMACHI is not set 818# CONFIG_HAMACHI is not set
788# CONFIG_YELLOWFIN is not set 819# CONFIG_YELLOWFIN is not set
@@ -811,6 +842,7 @@ CONFIG_S2IO=m
811# CONFIG_PASEMI_MAC is not set 842# CONFIG_PASEMI_MAC is not set
812# CONFIG_MLX4_CORE is not set 843# CONFIG_MLX4_CORE is not set
813# CONFIG_TEHUTI is not set 844# CONFIG_TEHUTI is not set
845# CONFIG_BNX2X is not set
814CONFIG_TR=y 846CONFIG_TR=y
815CONFIG_IBMOL=y 847CONFIG_IBMOL=y
816# CONFIG_3C359 is not set 848# CONFIG_3C359 is not set
@@ -847,7 +879,6 @@ CONFIG_PPPOE=m
847# CONFIG_SLIP is not set 879# CONFIG_SLIP is not set
848CONFIG_SLHC=m 880CONFIG_SLHC=m
849# CONFIG_NET_FC is not set 881# CONFIG_NET_FC is not set
850# CONFIG_SHAPER is not set
851CONFIG_NETCONSOLE=y 882CONFIG_NETCONSOLE=y
852# CONFIG_NETCONSOLE_DYNAMIC is not set 883# CONFIG_NETCONSOLE_DYNAMIC is not set
853CONFIG_NETPOLL=y 884CONFIG_NETPOLL=y
@@ -927,6 +958,7 @@ CONFIG_VT_CONSOLE=y
927CONFIG_HW_CONSOLE=y 958CONFIG_HW_CONSOLE=y
928# CONFIG_VT_HW_CONSOLE_BINDING is not set 959# CONFIG_VT_HW_CONSOLE_BINDING is not set
929# CONFIG_SERIAL_NONSTANDARD is not set 960# CONFIG_SERIAL_NONSTANDARD is not set
961# CONFIG_NOZOMI is not set
930 962
931# 963#
932# Serial drivers 964# Serial drivers
@@ -951,7 +983,6 @@ CONFIG_LEGACY_PTYS=y
951CONFIG_LEGACY_PTY_COUNT=256 983CONFIG_LEGACY_PTY_COUNT=256
952# CONFIG_PRINTER is not set 984# CONFIG_PRINTER is not set
953# CONFIG_PPDEV is not set 985# CONFIG_PPDEV is not set
954# CONFIG_TIPAR is not set
955CONFIG_HVC_DRIVER=y 986CONFIG_HVC_DRIVER=y
956CONFIG_HVC_CONSOLE=y 987CONFIG_HVC_CONSOLE=y
957CONFIG_HVC_RTAS=y 988CONFIG_HVC_RTAS=y
@@ -1009,13 +1040,12 @@ CONFIG_I2C_ALGOBIT=y
1009# 1040#
1010# Miscellaneous I2C Chip support 1041# Miscellaneous I2C Chip support
1011# 1042#
1012# CONFIG_SENSORS_DS1337 is not set
1013# CONFIG_SENSORS_DS1374 is not set
1014# CONFIG_DS1682 is not set 1043# CONFIG_DS1682 is not set
1015# CONFIG_SENSORS_EEPROM is not set 1044# CONFIG_SENSORS_EEPROM is not set
1016# CONFIG_SENSORS_PCF8574 is not set 1045# CONFIG_SENSORS_PCF8574 is not set
1017# CONFIG_SENSORS_PCA9539 is not set 1046# CONFIG_PCF8575 is not set
1018# CONFIG_SENSORS_PCF8591 is not set 1047# CONFIG_SENSORS_PCF8591 is not set
1048# CONFIG_TPS65010 is not set
1019# CONFIG_SENSORS_MAX6875 is not set 1049# CONFIG_SENSORS_MAX6875 is not set
1020# CONFIG_SENSORS_TSL2550 is not set 1050# CONFIG_SENSORS_TSL2550 is not set
1021# CONFIG_I2C_DEBUG_CORE is not set 1051# CONFIG_I2C_DEBUG_CORE is not set
@@ -1031,6 +1061,7 @@ CONFIG_I2C_ALGOBIT=y
1031# CONFIG_W1 is not set 1061# CONFIG_W1 is not set
1032# CONFIG_POWER_SUPPLY is not set 1062# CONFIG_POWER_SUPPLY is not set
1033# CONFIG_HWMON is not set 1063# CONFIG_HWMON is not set
1064# CONFIG_THERMAL is not set
1034# CONFIG_WATCHDOG is not set 1065# CONFIG_WATCHDOG is not set
1035 1066
1036# 1067#
@@ -1166,6 +1197,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1166CONFIG_USB_ARCH_HAS_EHCI=y 1197CONFIG_USB_ARCH_HAS_EHCI=y
1167CONFIG_USB=y 1198CONFIG_USB=y
1168# CONFIG_USB_DEBUG is not set 1199# CONFIG_USB_DEBUG is not set
1200# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1169 1201
1170# 1202#
1171# Miscellaneous USB options 1203# Miscellaneous USB options
@@ -1179,9 +1211,9 @@ CONFIG_USB_DEVICE_CLASS=y
1179# USB Host Controller Drivers 1211# USB Host Controller Drivers
1180# 1212#
1181CONFIG_USB_EHCI_HCD=y 1213CONFIG_USB_EHCI_HCD=y
1182# CONFIG_USB_EHCI_SPLIT_ISO is not set
1183# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1214# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1184# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1215# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1216# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1185# CONFIG_USB_ISP116X_HCD is not set 1217# CONFIG_USB_ISP116X_HCD is not set
1186CONFIG_USB_OHCI_HCD=y 1218CONFIG_USB_OHCI_HCD=y
1187# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1219# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -1230,10 +1262,6 @@ CONFIG_USB_MON=y
1230# USB port drivers 1262# USB port drivers
1231# 1263#
1232# CONFIG_USB_USS720 is not set 1264# CONFIG_USB_USS720 is not set
1233
1234#
1235# USB Serial Converter support
1236#
1237# CONFIG_USB_SERIAL is not set 1265# CONFIG_USB_SERIAL is not set
1238 1266
1239# 1267#
@@ -1259,16 +1287,9 @@ CONFIG_USB_MON=y
1259# CONFIG_USB_TRANCEVIBRATOR is not set 1287# CONFIG_USB_TRANCEVIBRATOR is not set
1260# CONFIG_USB_IOWARRIOR is not set 1288# CONFIG_USB_IOWARRIOR is not set
1261# CONFIG_USB_TEST is not set 1289# CONFIG_USB_TEST is not set
1262
1263#
1264# USB DSL modem support
1265#
1266
1267#
1268# USB Gadget Support
1269#
1270# CONFIG_USB_GADGET is not set 1290# CONFIG_USB_GADGET is not set
1271# CONFIG_MMC is not set 1291# CONFIG_MMC is not set
1292# CONFIG_MEMSTICK is not set
1272# CONFIG_NEW_LEDS is not set 1293# CONFIG_NEW_LEDS is not set
1273CONFIG_INFINIBAND=m 1294CONFIG_INFINIBAND=m
1274CONFIG_INFINIBAND_USER_MAD=m 1295CONFIG_INFINIBAND_USER_MAD=m
@@ -1281,6 +1302,7 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y
1281CONFIG_INFINIBAND_EHCA=m 1302CONFIG_INFINIBAND_EHCA=m
1282# CONFIG_INFINIBAND_AMSO1100 is not set 1303# CONFIG_INFINIBAND_AMSO1100 is not set
1283# CONFIG_MLX4_INFINIBAND is not set 1304# CONFIG_MLX4_INFINIBAND is not set
1305# CONFIG_INFINIBAND_NES is not set
1284CONFIG_INFINIBAND_IPOIB=m 1306CONFIG_INFINIBAND_IPOIB=m
1285# CONFIG_INFINIBAND_IPOIB_CM is not set 1307# CONFIG_INFINIBAND_IPOIB_CM is not set
1286CONFIG_INFINIBAND_IPOIB_DEBUG=y 1308CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -1289,6 +1311,7 @@ CONFIG_INFINIBAND_SRP=m
1289# CONFIG_INFINIBAND_ISER is not set 1311# CONFIG_INFINIBAND_ISER is not set
1290# CONFIG_EDAC is not set 1312# CONFIG_EDAC is not set
1291# CONFIG_RTC_CLASS is not set 1313# CONFIG_RTC_CLASS is not set
1314# CONFIG_DMADEVICES is not set
1292# CONFIG_AUXDISPLAY is not set 1315# CONFIG_AUXDISPLAY is not set
1293 1316
1294# 1317#
@@ -1334,12 +1357,10 @@ CONFIG_XFS_POSIX_ACL=y
1334CONFIG_OCFS2_FS=m 1357CONFIG_OCFS2_FS=m
1335CONFIG_OCFS2_DEBUG_MASKLOG=y 1358CONFIG_OCFS2_DEBUG_MASKLOG=y
1336# CONFIG_OCFS2_DEBUG_FS is not set 1359# CONFIG_OCFS2_DEBUG_FS is not set
1337# CONFIG_MINIX_FS is not set 1360CONFIG_DNOTIFY=y
1338# CONFIG_ROMFS_FS is not set
1339CONFIG_INOTIFY=y 1361CONFIG_INOTIFY=y
1340CONFIG_INOTIFY_USER=y 1362CONFIG_INOTIFY_USER=y
1341# CONFIG_QUOTA is not set 1363# CONFIG_QUOTA is not set
1342CONFIG_DNOTIFY=y
1343# CONFIG_AUTOFS_FS is not set 1364# CONFIG_AUTOFS_FS is not set
1344CONFIG_AUTOFS4_FS=m 1365CONFIG_AUTOFS4_FS=m
1345CONFIG_FUSE_FS=m 1366CONFIG_FUSE_FS=m
@@ -1388,8 +1409,10 @@ CONFIG_CONFIGFS_FS=m
1388# CONFIG_EFS_FS is not set 1409# CONFIG_EFS_FS is not set
1389CONFIG_CRAMFS=y 1410CONFIG_CRAMFS=y
1390# CONFIG_VXFS_FS is not set 1411# CONFIG_VXFS_FS is not set
1412# CONFIG_MINIX_FS is not set
1391# CONFIG_HPFS_FS is not set 1413# CONFIG_HPFS_FS is not set
1392# CONFIG_QNX4FS_FS is not set 1414# CONFIG_QNX4FS_FS is not set
1415# CONFIG_ROMFS_FS is not set
1393# CONFIG_SYSV_FS is not set 1416# CONFIG_SYSV_FS is not set
1394# CONFIG_UFS_FS is not set 1417# CONFIG_UFS_FS is not set
1395CONFIG_NETWORK_FILESYSTEMS=y 1418CONFIG_NETWORK_FILESYSTEMS=y
@@ -1473,7 +1496,6 @@ CONFIG_NLS_ISO8859_1=y
1473# CONFIG_NLS_KOI8_U is not set 1496# CONFIG_NLS_KOI8_U is not set
1474# CONFIG_NLS_UTF8 is not set 1497# CONFIG_NLS_UTF8 is not set
1475# CONFIG_DLM is not set 1498# CONFIG_DLM is not set
1476# CONFIG_UCC_SLOW is not set
1477 1499
1478# 1500#
1479# Library routines 1501# Library routines
@@ -1487,6 +1509,8 @@ CONFIG_CRC32=y
1487CONFIG_LIBCRC32C=m 1509CONFIG_LIBCRC32C=m
1488CONFIG_ZLIB_INFLATE=y 1510CONFIG_ZLIB_INFLATE=y
1489CONFIG_ZLIB_DEFLATE=m 1511CONFIG_ZLIB_DEFLATE=m
1512CONFIG_LZO_COMPRESS=m
1513CONFIG_LZO_DECOMPRESS=m
1490CONFIG_TEXTSEARCH=y 1514CONFIG_TEXTSEARCH=y
1491CONFIG_TEXTSEARCH_KMP=m 1515CONFIG_TEXTSEARCH_KMP=m
1492CONFIG_TEXTSEARCH_BM=m 1516CONFIG_TEXTSEARCH_BM=m
@@ -1495,11 +1519,6 @@ CONFIG_PLIST=y
1495CONFIG_HAS_IOMEM=y 1519CONFIG_HAS_IOMEM=y
1496CONFIG_HAS_IOPORT=y 1520CONFIG_HAS_IOPORT=y
1497CONFIG_HAS_DMA=y 1521CONFIG_HAS_DMA=y
1498CONFIG_INSTRUMENTATION=y
1499CONFIG_PROFILING=y
1500CONFIG_OPROFILE=y
1501CONFIG_KPROBES=y
1502CONFIG_MARKERS=y
1503 1522
1504# 1523#
1505# Kernel hacking 1524# Kernel hacking
@@ -1518,6 +1537,7 @@ CONFIG_SCHED_DEBUG=y
1518# CONFIG_SCHEDSTATS is not set 1537# CONFIG_SCHEDSTATS is not set
1519# CONFIG_TIMER_STATS is not set 1538# CONFIG_TIMER_STATS is not set
1520# CONFIG_SLUB_DEBUG_ON is not set 1539# CONFIG_SLUB_DEBUG_ON is not set
1540# CONFIG_SLUB_STATS is not set
1521# CONFIG_DEBUG_RT_MUTEXES is not set 1541# CONFIG_DEBUG_RT_MUTEXES is not set
1522# CONFIG_RT_MUTEX_TESTER is not set 1542# CONFIG_RT_MUTEX_TESTER is not set
1523# CONFIG_DEBUG_SPINLOCK is not set 1543# CONFIG_DEBUG_SPINLOCK is not set
@@ -1530,9 +1550,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
1530# CONFIG_DEBUG_VM is not set 1550# CONFIG_DEBUG_VM is not set
1531# CONFIG_DEBUG_LIST is not set 1551# CONFIG_DEBUG_LIST is not set
1532# CONFIG_DEBUG_SG is not set 1552# CONFIG_DEBUG_SG is not set
1533CONFIG_FORCED_INLINING=y
1534# CONFIG_BOOT_PRINTK_DELAY is not set 1553# CONFIG_BOOT_PRINTK_DELAY is not set
1535# CONFIG_RCU_TORTURE_TEST is not set 1554# CONFIG_RCU_TORTURE_TEST is not set
1555# CONFIG_KPROBES_SANITY_TEST is not set
1556# CONFIG_BACKTRACE_SELF_TEST is not set
1536# CONFIG_LKDTM is not set 1557# CONFIG_LKDTM is not set
1537# CONFIG_FAULT_INJECTION is not set 1558# CONFIG_FAULT_INJECTION is not set
1538# CONFIG_SAMPLES is not set 1559# CONFIG_SAMPLES is not set
@@ -1557,7 +1578,9 @@ CONFIG_VIRQ_DEBUG=y
1557# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1578# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1558CONFIG_CRYPTO=y 1579CONFIG_CRYPTO=y
1559CONFIG_CRYPTO_ALGAPI=y 1580CONFIG_CRYPTO_ALGAPI=y
1581CONFIG_CRYPTO_AEAD=m
1560CONFIG_CRYPTO_BLKCIPHER=y 1582CONFIG_CRYPTO_BLKCIPHER=y
1583CONFIG_CRYPTO_SEQIV=m
1561CONFIG_CRYPTO_HASH=y 1584CONFIG_CRYPTO_HASH=y
1562CONFIG_CRYPTO_MANAGER=y 1585CONFIG_CRYPTO_MANAGER=y
1563CONFIG_CRYPTO_HMAC=y 1586CONFIG_CRYPTO_HMAC=y
@@ -1570,12 +1593,15 @@ CONFIG_CRYPTO_SHA256=m
1570CONFIG_CRYPTO_SHA512=m 1593CONFIG_CRYPTO_SHA512=m
1571CONFIG_CRYPTO_WP512=m 1594CONFIG_CRYPTO_WP512=m
1572CONFIG_CRYPTO_TGR192=m 1595CONFIG_CRYPTO_TGR192=m
1573# CONFIG_CRYPTO_GF128MUL is not set 1596CONFIG_CRYPTO_GF128MUL=m
1574CONFIG_CRYPTO_ECB=m 1597CONFIG_CRYPTO_ECB=m
1575CONFIG_CRYPTO_CBC=y 1598CONFIG_CRYPTO_CBC=y
1576CONFIG_CRYPTO_PCBC=m 1599CONFIG_CRYPTO_PCBC=m
1577# CONFIG_CRYPTO_LRW is not set 1600# CONFIG_CRYPTO_LRW is not set
1578# CONFIG_CRYPTO_XTS is not set 1601# CONFIG_CRYPTO_XTS is not set
1602CONFIG_CRYPTO_CTR=m
1603CONFIG_CRYPTO_GCM=m
1604CONFIG_CRYPTO_CCM=m
1579# CONFIG_CRYPTO_CRYPTD is not set 1605# CONFIG_CRYPTO_CRYPTD is not set
1580CONFIG_CRYPTO_DES=y 1606CONFIG_CRYPTO_DES=y
1581# CONFIG_CRYPTO_FCRYPT is not set 1607# CONFIG_CRYPTO_FCRYPT is not set
@@ -1591,11 +1617,13 @@ CONFIG_CRYPTO_ARC4=m
1591CONFIG_CRYPTO_KHAZAD=m 1617CONFIG_CRYPTO_KHAZAD=m
1592CONFIG_CRYPTO_ANUBIS=m 1618CONFIG_CRYPTO_ANUBIS=m
1593# CONFIG_CRYPTO_SEED is not set 1619# CONFIG_CRYPTO_SEED is not set
1620CONFIG_CRYPTO_SALSA20=m
1594CONFIG_CRYPTO_DEFLATE=m 1621CONFIG_CRYPTO_DEFLATE=m
1595CONFIG_CRYPTO_MICHAEL_MIC=m 1622CONFIG_CRYPTO_MICHAEL_MIC=m
1596CONFIG_CRYPTO_CRC32C=m 1623CONFIG_CRYPTO_CRC32C=m
1597# CONFIG_CRYPTO_CAMELLIA is not set 1624# CONFIG_CRYPTO_CAMELLIA is not set
1598CONFIG_CRYPTO_TEST=m 1625CONFIG_CRYPTO_TEST=m
1599# CONFIG_CRYPTO_AUTHENC is not set 1626CONFIG_CRYPTO_AUTHENC=m
1627CONFIG_CRYPTO_LZO=m
1600# CONFIG_CRYPTO_HW is not set 1628# CONFIG_CRYPTO_HW is not set
1601# CONFIG_PPC_CLOCK is not set 1629# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/sbc834x_defconfig b/arch/powerpc/configs/sbc834x_defconfig
index 9245bcc24724..1f1518229f6d 100644
--- a/arch/powerpc/configs/sbc834x_defconfig
+++ b/arch/powerpc/configs/sbc834x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 24 15:54:27 2008 4# Mon Mar 24 08:48:38 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,8 +14,8 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_83xx=y
18CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set
19CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,17 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75CONFIG_FAIR_GROUP_SCHED=y 75CONFIG_FAIR_GROUP_SCHED=y
76CONFIG_FAIR_USER_SCHED=y 76# CONFIG_RT_GROUP_SCHED is not set
77# CONFIG_FAIR_CGROUP_SCHED is not set 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
80CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,17 +91,25 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 91CONFIG_PRINTK=y
89CONFIG_BUG=y 92CONFIG_BUG=y
90CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 96CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
94# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
95CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 102CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 103CONFIG_VM_EVENT_COUNTERS=y
99CONFIG_SLAB=y 104CONFIG_SLAB=y
100# CONFIG_SLUB is not set 105# CONFIG_SLUB is not set
101# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
102CONFIG_SLABINFO=y 113CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
@@ -127,6 +138,7 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
130 142
131# 143#
132# Platform support 144# Platform support
@@ -135,20 +147,22 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
135# CONFIG_PPC_82xx is not set 147# CONFIG_PPC_82xx is not set
136CONFIG_PPC_83xx=y 148CONFIG_PPC_83xx=y
137# CONFIG_PPC_86xx is not set 149# CONFIG_PPC_86xx is not set
138# CONFIG_PPC_MPC52xx is not set 150# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 151# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 152# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 153# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 154# CONFIG_PQ2ADS is not set
143# CONFIG_MPC8313_RDB is not set 155CONFIG_MPC83xx=y
156# CONFIG_MPC831x_RDB is not set
144# CONFIG_MPC832x_MDS is not set 157# CONFIG_MPC832x_MDS is not set
145# CONFIG_MPC832x_RDB is not set 158# CONFIG_MPC832x_RDB is not set
146# CONFIG_MPC834x_MDS is not set 159# CONFIG_MPC834x_MDS is not set
147# CONFIG_MPC834x_ITX is not set 160# CONFIG_MPC834x_ITX is not set
148# CONFIG_MPC836x_MDS is not set 161# CONFIG_MPC836x_MDS is not set
149# CONFIG_MPC837x_MDS is not set 162# CONFIG_MPC837x_MDS is not set
163# CONFIG_MPC837x_RDB is not set
150CONFIG_SBC834x=y 164CONFIG_SBC834x=y
151CONFIG_MPC834x=y 165CONFIG_PPC_MPC834x=y
152CONFIG_IPIC=y 166CONFIG_IPIC=y
153# CONFIG_MPIC is not set 167# CONFIG_MPIC is not set
154# CONFIG_MPIC_WEIRD is not set 168# CONFIG_MPIC_WEIRD is not set
@@ -175,12 +189,16 @@ CONFIG_HZ_250=y
175# CONFIG_HZ_300 is not set 189# CONFIG_HZ_300 is not set
176# CONFIG_HZ_1000 is not set 190# CONFIG_HZ_1000 is not set
177CONFIG_HZ=250 191CONFIG_HZ=250
192# CONFIG_SCHED_HRTICK is not set
178CONFIG_PREEMPT_NONE=y 193CONFIG_PREEMPT_NONE=y
179# CONFIG_PREEMPT_VOLUNTARY is not set 194# CONFIG_PREEMPT_VOLUNTARY is not set
180# CONFIG_PREEMPT is not set 195# CONFIG_PREEMPT is not set
181CONFIG_BINFMT_ELF=y 196CONFIG_BINFMT_ELF=y
182# CONFIG_BINFMT_MISC is not set 197# CONFIG_BINFMT_MISC is not set
198# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
186CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,11 +217,7 @@ CONFIG_VIRT_TO_BUS=y
199CONFIG_PROC_DEVICETREE=y 217CONFIG_PROC_DEVICETREE=y
200# CONFIG_CMDLINE_BOOL is not set 218# CONFIG_CMDLINE_BOOL is not set
201# CONFIG_PM is not set 219# CONFIG_PM is not set
202CONFIG_SUSPEND_UP_POSSIBLE=y
203CONFIG_HIBERNATION_UP_POSSIBLE=y
204CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
205CONFIG_WANT_DEVICE_TREE=y
206CONFIG_DEVICE_TREE=""
207CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
208 222
209# 223#
@@ -248,6 +262,7 @@ CONFIG_XFRM=y
248CONFIG_XFRM_USER=m 262CONFIG_XFRM_USER=m
249# CONFIG_XFRM_SUB_POLICY is not set 263# CONFIG_XFRM_SUB_POLICY is not set
250# CONFIG_XFRM_MIGRATE is not set 264# CONFIG_XFRM_MIGRATE is not set
265# CONFIG_XFRM_STATISTICS is not set
251# CONFIG_NET_KEY is not set 266# CONFIG_NET_KEY is not set
252CONFIG_INET=y 267CONFIG_INET=y
253CONFIG_IP_MULTICAST=y 268CONFIG_IP_MULTICAST=y
@@ -303,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
303# 318#
304# CONFIG_NET_PKTGEN is not set 319# CONFIG_NET_PKTGEN is not set
305# CONFIG_HAMRADIO is not set 320# CONFIG_HAMRADIO is not set
321# CONFIG_CAN is not set
306# CONFIG_IRDA is not set 322# CONFIG_IRDA is not set
307# CONFIG_BT is not set 323# CONFIG_BT is not set
308# CONFIG_AF_RXRPC is not set 324# CONFIG_AF_RXRPC is not set
@@ -342,11 +358,13 @@ CONFIG_BLK_DEV_LOOP=y
342CONFIG_BLK_DEV_RAM=y 358CONFIG_BLK_DEV_RAM=y
343CONFIG_BLK_DEV_RAM_COUNT=16 359CONFIG_BLK_DEV_RAM_COUNT=16
344CONFIG_BLK_DEV_RAM_SIZE=32768 360CONFIG_BLK_DEV_RAM_SIZE=32768
345CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 361# CONFIG_BLK_DEV_XIP is not set
346# CONFIG_CDROM_PKTCDVD is not set 362# CONFIG_CDROM_PKTCDVD is not set
347# CONFIG_ATA_OVER_ETH is not set 363# CONFIG_ATA_OVER_ETH is not set
348CONFIG_MISC_DEVICES=y 364CONFIG_MISC_DEVICES=y
349# CONFIG_EEPROM_93CX6 is not set 365# CONFIG_EEPROM_93CX6 is not set
366# CONFIG_ENCLOSURE_SERVICES is not set
367CONFIG_HAVE_IDE=y
350# CONFIG_IDE is not set 368# CONFIG_IDE is not set
351 369
352# 370#
@@ -381,6 +399,7 @@ CONFIG_PHYLIB=y
381# CONFIG_SMSC_PHY is not set 399# CONFIG_SMSC_PHY is not set
382CONFIG_BROADCOM_PHY=y 400CONFIG_BROADCOM_PHY=y
383# CONFIG_ICPLUS_PHY is not set 401# CONFIG_ICPLUS_PHY is not set
402# CONFIG_REALTEK_PHY is not set
384# CONFIG_FIXED_PHY is not set 403# CONFIG_FIXED_PHY is not set
385# CONFIG_MDIO_BITBANG is not set 404# CONFIG_MDIO_BITBANG is not set
386CONFIG_NET_ETHERNET=y 405CONFIG_NET_ETHERNET=y
@@ -391,6 +410,7 @@ CONFIG_MII=y
391# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 410# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
392# CONFIG_B44 is not set 411# CONFIG_B44 is not set
393CONFIG_NETDEV_1000=y 412CONFIG_NETDEV_1000=y
413# CONFIG_E1000E_ENABLED is not set
394CONFIG_GIANFAR=y 414CONFIG_GIANFAR=y
395# CONFIG_GFAR_NAPI is not set 415# CONFIG_GFAR_NAPI is not set
396# CONFIG_NETDEV_10000 is not set 416# CONFIG_NETDEV_10000 is not set
@@ -403,7 +423,6 @@ CONFIG_GIANFAR=y
403# CONFIG_WAN is not set 423# CONFIG_WAN is not set
404# CONFIG_PPP is not set 424# CONFIG_PPP is not set
405# CONFIG_SLIP is not set 425# CONFIG_SLIP is not set
406# CONFIG_SHAPER is not set
407# CONFIG_NETCONSOLE is not set 426# CONFIG_NETCONSOLE is not set
408# CONFIG_NETPOLL is not set 427# CONFIG_NETPOLL is not set
409# CONFIG_NET_POLL_CONTROLLER is not set 428# CONFIG_NET_POLL_CONTROLLER is not set
@@ -498,14 +517,12 @@ CONFIG_I2C_MPC=y
498# 517#
499# Miscellaneous I2C Chip support 518# Miscellaneous I2C Chip support
500# 519#
501# CONFIG_SENSORS_DS1337 is not set
502# CONFIG_SENSORS_DS1374 is not set
503# CONFIG_DS1682 is not set 520# CONFIG_DS1682 is not set
504# CONFIG_SENSORS_EEPROM is not set 521# CONFIG_SENSORS_EEPROM is not set
505# CONFIG_SENSORS_PCF8574 is not set 522# CONFIG_SENSORS_PCF8574 is not set
506# CONFIG_SENSORS_PCA9539 is not set 523# CONFIG_PCF8575 is not set
507# CONFIG_SENSORS_PCF8591 is not set 524# CONFIG_SENSORS_PCF8591 is not set
508# CONFIG_SENSORS_M41T00 is not set 525# CONFIG_TPS65010 is not set
509# CONFIG_SENSORS_MAX6875 is not set 526# CONFIG_SENSORS_MAX6875 is not set
510# CONFIG_SENSORS_TSL2550 is not set 527# CONFIG_SENSORS_TSL2550 is not set
511# CONFIG_I2C_DEBUG_CORE is not set 528# CONFIG_I2C_DEBUG_CORE is not set
@@ -530,6 +547,7 @@ CONFIG_HWMON=y
530# CONFIG_SENSORS_ADM1031 is not set 547# CONFIG_SENSORS_ADM1031 is not set
531# CONFIG_SENSORS_ADM9240 is not set 548# CONFIG_SENSORS_ADM9240 is not set
532# CONFIG_SENSORS_ADT7470 is not set 549# CONFIG_SENSORS_ADT7470 is not set
550# CONFIG_SENSORS_ADT7473 is not set
533# CONFIG_SENSORS_ATXP1 is not set 551# CONFIG_SENSORS_ATXP1 is not set
534# CONFIG_SENSORS_DS1621 is not set 552# CONFIG_SENSORS_DS1621 is not set
535# CONFIG_SENSORS_F71805F is not set 553# CONFIG_SENSORS_F71805F is not set
@@ -557,6 +575,7 @@ CONFIG_HWMON=y
557# CONFIG_SENSORS_SMSC47M1 is not set 575# CONFIG_SENSORS_SMSC47M1 is not set
558# CONFIG_SENSORS_SMSC47M192 is not set 576# CONFIG_SENSORS_SMSC47M192 is not set
559# CONFIG_SENSORS_SMSC47B397 is not set 577# CONFIG_SENSORS_SMSC47B397 is not set
578# CONFIG_SENSORS_ADS7828 is not set
560# CONFIG_SENSORS_THMC50 is not set 579# CONFIG_SENSORS_THMC50 is not set
561# CONFIG_SENSORS_VT1211 is not set 580# CONFIG_SENSORS_VT1211 is not set
562# CONFIG_SENSORS_W83781D is not set 581# CONFIG_SENSORS_W83781D is not set
@@ -564,9 +583,11 @@ CONFIG_HWMON=y
564# CONFIG_SENSORS_W83792D is not set 583# CONFIG_SENSORS_W83792D is not set
565# CONFIG_SENSORS_W83793 is not set 584# CONFIG_SENSORS_W83793 is not set
566# CONFIG_SENSORS_W83L785TS is not set 585# CONFIG_SENSORS_W83L785TS is not set
586# CONFIG_SENSORS_W83L786NG is not set
567# CONFIG_SENSORS_W83627HF is not set 587# CONFIG_SENSORS_W83627HF is not set
568# CONFIG_SENSORS_W83627EHF is not set 588# CONFIG_SENSORS_W83627EHF is not set
569# CONFIG_HWMON_DEBUG_CHIP is not set 589# CONFIG_HWMON_DEBUG_CHIP is not set
590# CONFIG_THERMAL is not set
570CONFIG_WATCHDOG=y 591CONFIG_WATCHDOG=y
571# CONFIG_WATCHDOG_NOWAYOUT is not set 592# CONFIG_WATCHDOG_NOWAYOUT is not set
572 593
@@ -617,9 +638,11 @@ CONFIG_HID=y
617# CONFIG_HIDRAW is not set 638# CONFIG_HIDRAW is not set
618# CONFIG_USB_SUPPORT is not set 639# CONFIG_USB_SUPPORT is not set
619# CONFIG_MMC is not set 640# CONFIG_MMC is not set
641# CONFIG_MEMSTICK is not set
620# CONFIG_NEW_LEDS is not set 642# CONFIG_NEW_LEDS is not set
621# CONFIG_EDAC is not set 643# CONFIG_EDAC is not set
622# CONFIG_RTC_CLASS is not set 644# CONFIG_RTC_CLASS is not set
645# CONFIG_DMADEVICES is not set
623 646
624# 647#
625# Userspace I/O 648# Userspace I/O
@@ -638,12 +661,10 @@ CONFIG_HID=y
638# CONFIG_XFS_FS is not set 661# CONFIG_XFS_FS is not set
639# CONFIG_GFS2_FS is not set 662# CONFIG_GFS2_FS is not set
640# CONFIG_OCFS2_FS is not set 663# CONFIG_OCFS2_FS is not set
641# CONFIG_MINIX_FS is not set 664CONFIG_DNOTIFY=y
642# CONFIG_ROMFS_FS is not set
643CONFIG_INOTIFY=y 665CONFIG_INOTIFY=y
644CONFIG_INOTIFY_USER=y 666CONFIG_INOTIFY_USER=y
645# CONFIG_QUOTA is not set 667# CONFIG_QUOTA is not set
646CONFIG_DNOTIFY=y
647# CONFIG_AUTOFS_FS is not set 668# CONFIG_AUTOFS_FS is not set
648# CONFIG_AUTOFS4_FS is not set 669# CONFIG_AUTOFS4_FS is not set
649# CONFIG_FUSE_FS is not set 670# CONFIG_FUSE_FS is not set
@@ -685,8 +706,10 @@ CONFIG_TMPFS=y
685# CONFIG_EFS_FS is not set 706# CONFIG_EFS_FS is not set
686# CONFIG_CRAMFS is not set 707# CONFIG_CRAMFS is not set
687# CONFIG_VXFS_FS is not set 708# CONFIG_VXFS_FS is not set
709# CONFIG_MINIX_FS is not set
688# CONFIG_HPFS_FS is not set 710# CONFIG_HPFS_FS is not set
689# CONFIG_QNX4FS_FS is not set 711# CONFIG_QNX4FS_FS is not set
712# CONFIG_ROMFS_FS is not set
690# CONFIG_SYSV_FS is not set 713# CONFIG_SYSV_FS is not set
691# CONFIG_UFS_FS is not set 714# CONFIG_UFS_FS is not set
692CONFIG_NETWORK_FILESYSTEMS=y 715CONFIG_NETWORK_FILESYSTEMS=y
@@ -733,7 +756,6 @@ CONFIG_PLIST=y
733CONFIG_HAS_IOMEM=y 756CONFIG_HAS_IOMEM=y
734CONFIG_HAS_IOPORT=y 757CONFIG_HAS_IOPORT=y
735CONFIG_HAS_DMA=y 758CONFIG_HAS_DMA=y
736# CONFIG_INSTRUMENTATION is not set
737 759
738# 760#
739# Kernel hacking 761# Kernel hacking
@@ -759,6 +781,7 @@ CONFIG_ENABLE_MUST_CHECK=y
759CONFIG_CRYPTO=y 781CONFIG_CRYPTO=y
760CONFIG_CRYPTO_ALGAPI=y 782CONFIG_CRYPTO_ALGAPI=y
761CONFIG_CRYPTO_BLKCIPHER=y 783CONFIG_CRYPTO_BLKCIPHER=y
784# CONFIG_CRYPTO_SEQIV is not set
762CONFIG_CRYPTO_MANAGER=y 785CONFIG_CRYPTO_MANAGER=y
763# CONFIG_CRYPTO_HMAC is not set 786# CONFIG_CRYPTO_HMAC is not set
764# CONFIG_CRYPTO_XCBC is not set 787# CONFIG_CRYPTO_XCBC is not set
@@ -776,6 +799,9 @@ CONFIG_CRYPTO_CBC=y
776CONFIG_CRYPTO_PCBC=m 799CONFIG_CRYPTO_PCBC=m
777# CONFIG_CRYPTO_LRW is not set 800# CONFIG_CRYPTO_LRW is not set
778# CONFIG_CRYPTO_XTS is not set 801# CONFIG_CRYPTO_XTS is not set
802# CONFIG_CRYPTO_CTR is not set
803# CONFIG_CRYPTO_GCM is not set
804# CONFIG_CRYPTO_CCM is not set
779# CONFIG_CRYPTO_CRYPTD is not set 805# CONFIG_CRYPTO_CRYPTD is not set
780CONFIG_CRYPTO_DES=y 806CONFIG_CRYPTO_DES=y
781# CONFIG_CRYPTO_FCRYPT is not set 807# CONFIG_CRYPTO_FCRYPT is not set
@@ -790,11 +816,13 @@ CONFIG_CRYPTO_DES=y
790# CONFIG_CRYPTO_KHAZAD is not set 816# CONFIG_CRYPTO_KHAZAD is not set
791# CONFIG_CRYPTO_ANUBIS is not set 817# CONFIG_CRYPTO_ANUBIS is not set
792# CONFIG_CRYPTO_SEED is not set 818# CONFIG_CRYPTO_SEED is not set
819# CONFIG_CRYPTO_SALSA20 is not set
793# CONFIG_CRYPTO_DEFLATE is not set 820# CONFIG_CRYPTO_DEFLATE is not set
794# CONFIG_CRYPTO_MICHAEL_MIC is not set 821# CONFIG_CRYPTO_MICHAEL_MIC is not set
795# CONFIG_CRYPTO_CRC32C is not set 822# CONFIG_CRYPTO_CRC32C is not set
796# CONFIG_CRYPTO_CAMELLIA is not set 823# CONFIG_CRYPTO_CAMELLIA is not set
797# CONFIG_CRYPTO_TEST is not set 824# CONFIG_CRYPTO_TEST is not set
798# CONFIG_CRYPTO_AUTHENC is not set 825# CONFIG_CRYPTO_AUTHENC is not set
826# CONFIG_CRYPTO_LZO is not set
799# CONFIG_CRYPTO_HW is not set 827# CONFIG_CRYPTO_HW is not set
800# CONFIG_PPC_CLOCK is not set 828# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/sbc8548_defconfig b/arch/powerpc/configs/sbc8548_defconfig
index 3b7fa53a2475..67f67978c742 100644
--- a/arch/powerpc/configs/sbc8548_defconfig
+++ b/arch/powerpc/configs/sbc8548_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 24 15:19:12 2008 4# Mon Mar 24 08:48:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -90,17 +93,25 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 93CONFIG_PRINTK=y
91CONFIG_BUG=y 94CONFIG_BUG=y
92CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 98CONFIG_FUTEX=y
95CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
96CONFIG_EPOLL=y 100CONFIG_EPOLL=y
97CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y
98CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 104CONFIG_SHMEM=y
100CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
101CONFIG_SLAB=y 106CONFIG_SLAB=y
102# CONFIG_SLUB is not set 107# CONFIG_SLUB is not set
103# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
104CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -124,24 +135,29 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
127 139
128# 140#
129# Platform support 141# Platform support
130# 142#
131# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 147# CONFIG_PQ2ADS is not set
148CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 149# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 150# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 151# CONFIG_MPC85xx_CDS is not set
139# CONFIG_MPC85xx_MDS is not set 152# CONFIG_MPC85xx_MDS is not set
140# CONFIG_MPC85xx_DS is not set 153# CONFIG_MPC85xx_DS is not set
154# CONFIG_STX_GP3 is not set
155# CONFIG_TQM8540 is not set
156# CONFIG_TQM8541 is not set
157# CONFIG_TQM8555 is not set
158# CONFIG_TQM8560 is not set
141CONFIG_SBC8548=y 159CONFIG_SBC8548=y
142# CONFIG_SBC8560 is not set 160# CONFIG_SBC8560 is not set
143CONFIG_MPC8540=y
144CONFIG_MPC85xx=y
145# CONFIG_IPIC is not set 161# CONFIG_IPIC is not set
146CONFIG_MPIC=y 162CONFIG_MPIC=y
147# CONFIG_MPIC_WEIRD is not set 163# CONFIG_MPIC_WEIRD is not set
@@ -153,6 +169,7 @@ CONFIG_MPIC=y
153# CONFIG_PPC_INDIRECT_IO is not set 169# CONFIG_PPC_INDIRECT_IO is not set
154# CONFIG_GENERIC_IOMAP is not set 170# CONFIG_GENERIC_IOMAP is not set
155# CONFIG_CPU_FREQ is not set 171# CONFIG_CPU_FREQ is not set
172# CONFIG_CPM2 is not set
156# CONFIG_FSL_ULI1575 is not set 173# CONFIG_FSL_ULI1575 is not set
157 174
158# 175#
@@ -168,13 +185,17 @@ CONFIG_HZ_250=y
168# CONFIG_HZ_300 is not set 185# CONFIG_HZ_300 is not set
169# CONFIG_HZ_1000 is not set 186# CONFIG_HZ_1000 is not set
170CONFIG_HZ=250 187CONFIG_HZ=250
188# CONFIG_SCHED_HRTICK is not set
171CONFIG_PREEMPT_NONE=y 189CONFIG_PREEMPT_NONE=y
172# CONFIG_PREEMPT_VOLUNTARY is not set 190# CONFIG_PREEMPT_VOLUNTARY is not set
173# CONFIG_PREEMPT is not set 191# CONFIG_PREEMPT is not set
174CONFIG_BINFMT_ELF=y 192CONFIG_BINFMT_ELF=y
175CONFIG_BINFMT_MISC=y 193CONFIG_BINFMT_MISC=y
176CONFIG_MATH_EMULATION=y 194CONFIG_MATH_EMULATION=y
195# CONFIG_IOMMU_HELPER is not set
177CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 196CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
197CONFIG_ARCH_HAS_WALK_MEMORY=y
198CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
178CONFIG_ARCH_FLATMEM_ENABLE=y 199CONFIG_ARCH_FLATMEM_ENABLE=y
179CONFIG_ARCH_POPULATES_NODE_MAP=y 200CONFIG_ARCH_POPULATES_NODE_MAP=y
180CONFIG_SELECT_MEMORY_MODEL=y 201CONFIG_SELECT_MEMORY_MODEL=y
@@ -193,11 +214,7 @@ CONFIG_VIRT_TO_BUS=y
193CONFIG_PROC_DEVICETREE=y 214CONFIG_PROC_DEVICETREE=y
194# CONFIG_CMDLINE_BOOL is not set 215# CONFIG_CMDLINE_BOOL is not set
195# CONFIG_PM is not set 216# CONFIG_PM is not set
196CONFIG_SUSPEND_UP_POSSIBLE=y
197CONFIG_HIBERNATION_UP_POSSIBLE=y
198# CONFIG_SECCOMP is not set 217# CONFIG_SECCOMP is not set
199CONFIG_WANT_DEVICE_TREE=y
200CONFIG_DEVICE_TREE=""
201CONFIG_ISA_DMA_API=y 218CONFIG_ISA_DMA_API=y
202 219
203# 220#
@@ -246,6 +263,7 @@ CONFIG_XFRM=y
246CONFIG_XFRM_USER=y 263CONFIG_XFRM_USER=y
247# CONFIG_XFRM_SUB_POLICY is not set 264# CONFIG_XFRM_SUB_POLICY is not set
248# CONFIG_XFRM_MIGRATE is not set 265# CONFIG_XFRM_MIGRATE is not set
266# CONFIG_XFRM_STATISTICS is not set
249# CONFIG_NET_KEY is not set 267# CONFIG_NET_KEY is not set
250CONFIG_INET=y 268CONFIG_INET=y
251CONFIG_IP_MULTICAST=y 269CONFIG_IP_MULTICAST=y
@@ -301,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
301# 319#
302# CONFIG_NET_PKTGEN is not set 320# CONFIG_NET_PKTGEN is not set
303# CONFIG_HAMRADIO is not set 321# CONFIG_HAMRADIO is not set
322# CONFIG_CAN is not set
304# CONFIG_IRDA is not set 323# CONFIG_IRDA is not set
305# CONFIG_BT is not set 324# CONFIG_BT is not set
306# CONFIG_AF_RXRPC is not set 325# CONFIG_AF_RXRPC is not set
@@ -345,7 +364,7 @@ CONFIG_BLK_DEV_LOOP=y
345CONFIG_BLK_DEV_RAM=y 364CONFIG_BLK_DEV_RAM=y
346CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
347CONFIG_BLK_DEV_RAM_SIZE=4096 366CONFIG_BLK_DEV_RAM_SIZE=4096
348CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 367# CONFIG_BLK_DEV_XIP is not set
349# CONFIG_CDROM_PKTCDVD is not set 368# CONFIG_CDROM_PKTCDVD is not set
350# CONFIG_ATA_OVER_ETH is not set 369# CONFIG_ATA_OVER_ETH is not set
351CONFIG_MISC_DEVICES=y 370CONFIG_MISC_DEVICES=y
@@ -353,6 +372,8 @@ CONFIG_MISC_DEVICES=y
353# CONFIG_EEPROM_93CX6 is not set 372# CONFIG_EEPROM_93CX6 is not set
354# CONFIG_SGI_IOC4 is not set 373# CONFIG_SGI_IOC4 is not set
355# CONFIG_TIFM_CORE is not set 374# CONFIG_TIFM_CORE is not set
375# CONFIG_ENCLOSURE_SERVICES is not set
376CONFIG_HAVE_IDE=y
356# CONFIG_IDE is not set 377# CONFIG_IDE is not set
357 378
358# 379#
@@ -396,6 +417,7 @@ CONFIG_PHYLIB=y
396# CONFIG_SMSC_PHY is not set 417# CONFIG_SMSC_PHY is not set
397CONFIG_BROADCOM_PHY=y 418CONFIG_BROADCOM_PHY=y
398# CONFIG_ICPLUS_PHY is not set 419# CONFIG_ICPLUS_PHY is not set
420# CONFIG_REALTEK_PHY is not set
399# CONFIG_FIXED_PHY is not set 421# CONFIG_FIXED_PHY is not set
400# CONFIG_MDIO_BITBANG is not set 422# CONFIG_MDIO_BITBANG is not set
401CONFIG_NET_ETHERNET=y 423CONFIG_NET_ETHERNET=y
@@ -417,7 +439,9 @@ CONFIG_NETDEV_1000=y
417# CONFIG_DL2K is not set 439# CONFIG_DL2K is not set
418# CONFIG_E1000 is not set 440# CONFIG_E1000 is not set
419# CONFIG_E1000E is not set 441# CONFIG_E1000E is not set
442# CONFIG_E1000E_ENABLED is not set
420# CONFIG_IP1000 is not set 443# CONFIG_IP1000 is not set
444# CONFIG_IGB is not set
421# CONFIG_NS83820 is not set 445# CONFIG_NS83820 is not set
422# CONFIG_HAMACHI is not set 446# CONFIG_HAMACHI is not set
423# CONFIG_YELLOWFIN is not set 447# CONFIG_YELLOWFIN is not set
@@ -444,6 +468,7 @@ CONFIG_NETDEV_10000=y
444# CONFIG_NIU is not set 468# CONFIG_NIU is not set
445# CONFIG_MLX4_CORE is not set 469# CONFIG_MLX4_CORE is not set
446# CONFIG_TEHUTI is not set 470# CONFIG_TEHUTI is not set
471# CONFIG_BNX2X is not set
447# CONFIG_TR is not set 472# CONFIG_TR is not set
448 473
449# 474#
@@ -456,7 +481,6 @@ CONFIG_NETDEV_10000=y
456# CONFIG_HIPPI is not set 481# CONFIG_HIPPI is not set
457# CONFIG_PPP is not set 482# CONFIG_PPP is not set
458# CONFIG_SLIP is not set 483# CONFIG_SLIP is not set
459# CONFIG_SHAPER is not set
460# CONFIG_NETCONSOLE is not set 484# CONFIG_NETCONSOLE is not set
461# CONFIG_NETPOLL is not set 485# CONFIG_NETPOLL is not set
462# CONFIG_NET_POLL_CONTROLLER is not set 486# CONFIG_NET_POLL_CONTROLLER is not set
@@ -499,6 +523,7 @@ CONFIG_INPUT=y
499# 523#
500# CONFIG_VT is not set 524# CONFIG_VT is not set
501# CONFIG_SERIAL_NONSTANDARD is not set 525# CONFIG_SERIAL_NONSTANDARD is not set
526# CONFIG_NOZOMI is not set
502 527
503# 528#
504# Serial drivers 529# Serial drivers
@@ -558,6 +583,7 @@ CONFIG_HWMON=y
558# CONFIG_SENSORS_W83627HF is not set 583# CONFIG_SENSORS_W83627HF is not set
559# CONFIG_SENSORS_W83627EHF is not set 584# CONFIG_SENSORS_W83627EHF is not set
560# CONFIG_HWMON_DEBUG_CHIP is not set 585# CONFIG_HWMON_DEBUG_CHIP is not set
586# CONFIG_THERMAL is not set
561# CONFIG_WATCHDOG is not set 587# CONFIG_WATCHDOG is not set
562 588
563# 589#
@@ -600,10 +626,12 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
600# CONFIG_HID_SUPPORT is not set 626# CONFIG_HID_SUPPORT is not set
601# CONFIG_USB_SUPPORT is not set 627# CONFIG_USB_SUPPORT is not set
602# CONFIG_MMC is not set 628# CONFIG_MMC is not set
629# CONFIG_MEMSTICK is not set
603# CONFIG_NEW_LEDS is not set 630# CONFIG_NEW_LEDS is not set
604# CONFIG_INFINIBAND is not set 631# CONFIG_INFINIBAND is not set
605# CONFIG_EDAC is not set 632# CONFIG_EDAC is not set
606# CONFIG_RTC_CLASS is not set 633# CONFIG_RTC_CLASS is not set
634# CONFIG_DMADEVICES is not set
607 635
608# 636#
609# Userspace I/O 637# Userspace I/O
@@ -622,12 +650,10 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
622# CONFIG_XFS_FS is not set 650# CONFIG_XFS_FS is not set
623# CONFIG_GFS2_FS is not set 651# CONFIG_GFS2_FS is not set
624# CONFIG_OCFS2_FS is not set 652# CONFIG_OCFS2_FS is not set
625# CONFIG_MINIX_FS is not set 653CONFIG_DNOTIFY=y
626# CONFIG_ROMFS_FS is not set
627CONFIG_INOTIFY=y 654CONFIG_INOTIFY=y
628CONFIG_INOTIFY_USER=y 655CONFIG_INOTIFY_USER=y
629# CONFIG_QUOTA is not set 656# CONFIG_QUOTA is not set
630CONFIG_DNOTIFY=y
631# CONFIG_AUTOFS_FS is not set 657# CONFIG_AUTOFS_FS is not set
632# CONFIG_AUTOFS4_FS is not set 658# CONFIG_AUTOFS4_FS is not set
633# CONFIG_FUSE_FS is not set 659# CONFIG_FUSE_FS is not set
@@ -669,8 +695,10 @@ CONFIG_TMPFS=y
669# CONFIG_EFS_FS is not set 695# CONFIG_EFS_FS is not set
670# CONFIG_CRAMFS is not set 696# CONFIG_CRAMFS is not set
671# CONFIG_VXFS_FS is not set 697# CONFIG_VXFS_FS is not set
698# CONFIG_MINIX_FS is not set
672# CONFIG_HPFS_FS is not set 699# CONFIG_HPFS_FS is not set
673# CONFIG_QNX4FS_FS is not set 700# CONFIG_QNX4FS_FS is not set
701# CONFIG_ROMFS_FS is not set
674# CONFIG_SYSV_FS is not set 702# CONFIG_SYSV_FS is not set
675# CONFIG_UFS_FS is not set 703# CONFIG_UFS_FS is not set
676CONFIG_NETWORK_FILESYSTEMS=y 704CONFIG_NETWORK_FILESYSTEMS=y
@@ -714,7 +742,6 @@ CONFIG_PLIST=y
714CONFIG_HAS_IOMEM=y 742CONFIG_HAS_IOMEM=y
715CONFIG_HAS_IOPORT=y 743CONFIG_HAS_IOPORT=y
716CONFIG_HAS_DMA=y 744CONFIG_HAS_DMA=y
717# CONFIG_INSTRUMENTATION is not set
718 745
719# 746#
720# Kernel hacking 747# Kernel hacking
@@ -737,5 +764,49 @@ CONFIG_ENABLE_MUST_CHECK=y
737# CONFIG_KEYS is not set 764# CONFIG_KEYS is not set
738# CONFIG_SECURITY is not set 765# CONFIG_SECURITY is not set
739# CONFIG_SECURITY_FILE_CAPABILITIES is not set 766# CONFIG_SECURITY_FILE_CAPABILITIES is not set
740# CONFIG_CRYPTO is not set 767CONFIG_CRYPTO=y
768# CONFIG_CRYPTO_SEQIV is not set
769# CONFIG_CRYPTO_MANAGER is not set
770# CONFIG_CRYPTO_HMAC is not set
771# CONFIG_CRYPTO_XCBC is not set
772# CONFIG_CRYPTO_NULL is not set
773# CONFIG_CRYPTO_MD4 is not set
774# CONFIG_CRYPTO_MD5 is not set
775# CONFIG_CRYPTO_SHA1 is not set
776# CONFIG_CRYPTO_SHA256 is not set
777# CONFIG_CRYPTO_SHA512 is not set
778# CONFIG_CRYPTO_WP512 is not set
779# CONFIG_CRYPTO_TGR192 is not set
780# CONFIG_CRYPTO_GF128MUL is not set
781# CONFIG_CRYPTO_ECB is not set
782# CONFIG_CRYPTO_CBC is not set
783# CONFIG_CRYPTO_PCBC is not set
784# CONFIG_CRYPTO_LRW is not set
785# CONFIG_CRYPTO_XTS is not set
786# CONFIG_CRYPTO_CTR is not set
787# CONFIG_CRYPTO_GCM is not set
788# CONFIG_CRYPTO_CCM is not set
789# CONFIG_CRYPTO_CRYPTD is not set
790# CONFIG_CRYPTO_DES is not set
791# CONFIG_CRYPTO_FCRYPT is not set
792# CONFIG_CRYPTO_BLOWFISH is not set
793# CONFIG_CRYPTO_TWOFISH is not set
794# CONFIG_CRYPTO_SERPENT is not set
795# CONFIG_CRYPTO_AES is not set
796# CONFIG_CRYPTO_CAST5 is not set
797# CONFIG_CRYPTO_CAST6 is not set
798# CONFIG_CRYPTO_TEA is not set
799# CONFIG_CRYPTO_ARC4 is not set
800# CONFIG_CRYPTO_KHAZAD is not set
801# CONFIG_CRYPTO_ANUBIS is not set
802# CONFIG_CRYPTO_SEED is not set
803# CONFIG_CRYPTO_SALSA20 is not set
804# CONFIG_CRYPTO_DEFLATE is not set
805# CONFIG_CRYPTO_MICHAEL_MIC is not set
806# CONFIG_CRYPTO_CRC32C is not set
807# CONFIG_CRYPTO_CAMELLIA is not set
808# CONFIG_CRYPTO_AUTHENC is not set
809# CONFIG_CRYPTO_LZO is not set
810CONFIG_CRYPTO_HW=y
811# CONFIG_CRYPTO_DEV_HIFN_795X is not set
741# CONFIG_PPC_CLOCK is not set 812# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/sbc8560_defconfig b/arch/powerpc/configs/sbc8560_defconfig
index d89fce0d3ba1..fef605579e29 100644
--- a/arch/powerpc/configs/sbc8560_defconfig
+++ b/arch/powerpc/configs/sbc8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.25-rc6
4# Wed Jan 23 14:59:20 2008 4# Mon Mar 24 08:48:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,17 +94,26 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
92CONFIG_BUG=y 95CONFIG_BUG=y
93CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 99CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 101CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 105CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
102CONFIG_SLAB=y 107CONFIG_SLAB=y
103# CONFIG_SLUB is not set 108# CONFIG_SLUB is not set
104# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
107CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -124,23 +136,30 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 136# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 137# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 138CONFIG_DEFAULT_IOSCHED="anticipatory"
139CONFIG_CLASSIC_RCU=y
127 140
128# 141#
129# Platform support 142# Platform support
130# 143#
131# CONFIG_PPC_MPC52xx is not set 144# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 145# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 146# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 147# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 148# CONFIG_PQ2ADS is not set
149CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 150# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 151# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 152# CONFIG_MPC85xx_CDS is not set
139# CONFIG_MPC85xx_MDS is not set 153# CONFIG_MPC85xx_MDS is not set
140# CONFIG_MPC85xx_DS is not set 154# CONFIG_MPC85xx_DS is not set
155# CONFIG_STX_GP3 is not set
156# CONFIG_TQM8540 is not set
157# CONFIG_TQM8541 is not set
158# CONFIG_TQM8555 is not set
159# CONFIG_TQM8560 is not set
160# CONFIG_SBC8548 is not set
141CONFIG_SBC8560=y 161CONFIG_SBC8560=y
142CONFIG_MPC8560=y 162# CONFIG_IPIC is not set
143CONFIG_MPC85xx=y
144CONFIG_MPIC=y 163CONFIG_MPIC=y
145# CONFIG_MPIC_WEIRD is not set 164# CONFIG_MPIC_WEIRD is not set
146# CONFIG_PPC_I8259 is not set 165# CONFIG_PPC_I8259 is not set
@@ -167,13 +186,17 @@ CONFIG_HZ_250=y
167# CONFIG_HZ_300 is not set 186# CONFIG_HZ_300 is not set
168# CONFIG_HZ_1000 is not set 187# CONFIG_HZ_1000 is not set
169CONFIG_HZ=250 188CONFIG_HZ=250
189# CONFIG_SCHED_HRTICK is not set
170CONFIG_PREEMPT_NONE=y 190CONFIG_PREEMPT_NONE=y
171# CONFIG_PREEMPT_VOLUNTARY is not set 191# CONFIG_PREEMPT_VOLUNTARY is not set
172# CONFIG_PREEMPT is not set 192# CONFIG_PREEMPT is not set
173CONFIG_BINFMT_ELF=y 193CONFIG_BINFMT_ELF=y
174CONFIG_BINFMT_MISC=y 194CONFIG_BINFMT_MISC=y
175# CONFIG_MATH_EMULATION is not set 195# CONFIG_MATH_EMULATION is not set
196# CONFIG_IOMMU_HELPER is not set
176CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 197CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
198CONFIG_ARCH_HAS_WALK_MEMORY=y
199CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
177CONFIG_ARCH_FLATMEM_ENABLE=y 200CONFIG_ARCH_FLATMEM_ENABLE=y
178CONFIG_ARCH_POPULATES_NODE_MAP=y 201CONFIG_ARCH_POPULATES_NODE_MAP=y
179CONFIG_SELECT_MEMORY_MODEL=y 202CONFIG_SELECT_MEMORY_MODEL=y
@@ -192,11 +215,7 @@ CONFIG_VIRT_TO_BUS=y
192CONFIG_PROC_DEVICETREE=y 215CONFIG_PROC_DEVICETREE=y
193# CONFIG_CMDLINE_BOOL is not set 216# CONFIG_CMDLINE_BOOL is not set
194# CONFIG_PM is not set 217# CONFIG_PM is not set
195CONFIG_SUSPEND_UP_POSSIBLE=y
196CONFIG_HIBERNATION_UP_POSSIBLE=y
197# CONFIG_SECCOMP is not set 218# CONFIG_SECCOMP is not set
198CONFIG_WANT_DEVICE_TREE=y
199CONFIG_DEVICE_TREE=""
200CONFIG_ISA_DMA_API=y 219CONFIG_ISA_DMA_API=y
201 220
202# 221#
@@ -239,6 +258,7 @@ CONFIG_XFRM=y
239CONFIG_XFRM_USER=y 258CONFIG_XFRM_USER=y
240# CONFIG_XFRM_SUB_POLICY is not set 259# CONFIG_XFRM_SUB_POLICY is not set
241# CONFIG_XFRM_MIGRATE is not set 260# CONFIG_XFRM_MIGRATE is not set
261# CONFIG_XFRM_STATISTICS is not set
242# CONFIG_NET_KEY is not set 262# CONFIG_NET_KEY is not set
243CONFIG_INET=y 263CONFIG_INET=y
244CONFIG_IP_MULTICAST=y 264CONFIG_IP_MULTICAST=y
@@ -294,6 +314,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
294# 314#
295# CONFIG_NET_PKTGEN is not set 315# CONFIG_NET_PKTGEN is not set
296# CONFIG_HAMRADIO is not set 316# CONFIG_HAMRADIO is not set
317# CONFIG_CAN is not set
297# CONFIG_IRDA is not set 318# CONFIG_IRDA is not set
298# CONFIG_BT is not set 319# CONFIG_BT is not set
299# CONFIG_AF_RXRPC is not set 320# CONFIG_AF_RXRPC is not set
@@ -335,11 +356,13 @@ CONFIG_BLK_DEV_LOOP=y
335CONFIG_BLK_DEV_RAM=y 356CONFIG_BLK_DEV_RAM=y
336CONFIG_BLK_DEV_RAM_COUNT=16 357CONFIG_BLK_DEV_RAM_COUNT=16
337CONFIG_BLK_DEV_RAM_SIZE=32768 358CONFIG_BLK_DEV_RAM_SIZE=32768
338CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 359# CONFIG_BLK_DEV_XIP is not set
339# CONFIG_CDROM_PKTCDVD is not set 360# CONFIG_CDROM_PKTCDVD is not set
340# CONFIG_ATA_OVER_ETH is not set 361# CONFIG_ATA_OVER_ETH is not set
341CONFIG_MISC_DEVICES=y 362CONFIG_MISC_DEVICES=y
342# CONFIG_EEPROM_93CX6 is not set 363# CONFIG_EEPROM_93CX6 is not set
364# CONFIG_ENCLOSURE_SERVICES is not set
365CONFIG_HAVE_IDE=y
343# CONFIG_IDE is not set 366# CONFIG_IDE is not set
344 367
345# 368#
@@ -374,6 +397,7 @@ CONFIG_PHYLIB=y
374# CONFIG_SMSC_PHY is not set 397# CONFIG_SMSC_PHY is not set
375CONFIG_BROADCOM_PHY=y 398CONFIG_BROADCOM_PHY=y
376# CONFIG_ICPLUS_PHY is not set 399# CONFIG_ICPLUS_PHY is not set
400# CONFIG_REALTEK_PHY is not set
377# CONFIG_FIXED_PHY is not set 401# CONFIG_FIXED_PHY is not set
378# CONFIG_MDIO_BITBANG is not set 402# CONFIG_MDIO_BITBANG is not set
379CONFIG_NET_ETHERNET=y 403CONFIG_NET_ETHERNET=y
@@ -384,6 +408,7 @@ CONFIG_MII=y
384# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 408# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
385# CONFIG_B44 is not set 409# CONFIG_B44 is not set
386CONFIG_NETDEV_1000=y 410CONFIG_NETDEV_1000=y
411# CONFIG_E1000E_ENABLED is not set
387CONFIG_GIANFAR=y 412CONFIG_GIANFAR=y
388CONFIG_GFAR_NAPI=y 413CONFIG_GFAR_NAPI=y
389CONFIG_NETDEV_10000=y 414CONFIG_NETDEV_10000=y
@@ -396,7 +421,6 @@ CONFIG_NETDEV_10000=y
396# CONFIG_WAN is not set 421# CONFIG_WAN is not set
397# CONFIG_PPP is not set 422# CONFIG_PPP is not set
398# CONFIG_SLIP is not set 423# CONFIG_SLIP is not set
399# CONFIG_SHAPER is not set
400# CONFIG_NETCONSOLE is not set 424# CONFIG_NETCONSOLE is not set
401# CONFIG_NETPOLL is not set 425# CONFIG_NETPOLL is not set
402# CONFIG_NET_POLL_CONTROLLER is not set 426# CONFIG_NET_POLL_CONTROLLER is not set
@@ -489,6 +513,7 @@ CONFIG_HWMON=y
489# CONFIG_SENSORS_W83627HF is not set 513# CONFIG_SENSORS_W83627HF is not set
490# CONFIG_SENSORS_W83627EHF is not set 514# CONFIG_SENSORS_W83627EHF is not set
491# CONFIG_HWMON_DEBUG_CHIP is not set 515# CONFIG_HWMON_DEBUG_CHIP is not set
516# CONFIG_THERMAL is not set
492# CONFIG_WATCHDOG is not set 517# CONFIG_WATCHDOG is not set
493 518
494# 519#
@@ -538,12 +563,9 @@ CONFIG_USB_SUPPORT=y
538# 563#
539# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 564# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
540# 565#
541
542#
543# USB Gadget Support
544#
545# CONFIG_USB_GADGET is not set 566# CONFIG_USB_GADGET is not set
546# CONFIG_MMC is not set 567# CONFIG_MMC is not set
568# CONFIG_MEMSTICK is not set
547# CONFIG_NEW_LEDS is not set 569# CONFIG_NEW_LEDS is not set
548# CONFIG_EDAC is not set 570# CONFIG_EDAC is not set
549CONFIG_RTC_LIB=y 571CONFIG_RTC_LIB=y
@@ -569,9 +591,10 @@ CONFIG_RTC_INTF_DEV=y
569# Platform RTC drivers 591# Platform RTC drivers
570# 592#
571# CONFIG_RTC_DRV_CMOS is not set 593# CONFIG_RTC_DRV_CMOS is not set
594# CONFIG_RTC_DRV_DS1511 is not set
572# CONFIG_RTC_DRV_DS1553 is not set 595# CONFIG_RTC_DRV_DS1553 is not set
573# CONFIG_RTC_DRV_STK17TA8 is not set
574# CONFIG_RTC_DRV_DS1742 is not set 596# CONFIG_RTC_DRV_DS1742 is not set
597# CONFIG_RTC_DRV_STK17TA8 is not set
575# CONFIG_RTC_DRV_M48T86 is not set 598# CONFIG_RTC_DRV_M48T86 is not set
576CONFIG_RTC_DRV_M48T59=y 599CONFIG_RTC_DRV_M48T59=y
577# CONFIG_RTC_DRV_V3020 is not set 600# CONFIG_RTC_DRV_V3020 is not set
@@ -579,6 +602,7 @@ CONFIG_RTC_DRV_M48T59=y
579# 602#
580# on-CPU RTC drivers 603# on-CPU RTC drivers
581# 604#
605# CONFIG_DMADEVICES is not set
582 606
583# 607#
584# Userspace I/O 608# Userspace I/O
@@ -597,12 +621,10 @@ CONFIG_RTC_DRV_M48T59=y
597# CONFIG_XFS_FS is not set 621# CONFIG_XFS_FS is not set
598# CONFIG_GFS2_FS is not set 622# CONFIG_GFS2_FS is not set
599# CONFIG_OCFS2_FS is not set 623# CONFIG_OCFS2_FS is not set
600# CONFIG_MINIX_FS is not set 624CONFIG_DNOTIFY=y
601# CONFIG_ROMFS_FS is not set
602CONFIG_INOTIFY=y 625CONFIG_INOTIFY=y
603CONFIG_INOTIFY_USER=y 626CONFIG_INOTIFY_USER=y
604# CONFIG_QUOTA is not set 627# CONFIG_QUOTA is not set
605CONFIG_DNOTIFY=y
606# CONFIG_AUTOFS_FS is not set 628# CONFIG_AUTOFS_FS is not set
607# CONFIG_AUTOFS4_FS is not set 629# CONFIG_AUTOFS4_FS is not set
608# CONFIG_FUSE_FS is not set 630# CONFIG_FUSE_FS is not set
@@ -644,8 +666,10 @@ CONFIG_TMPFS=y
644# CONFIG_EFS_FS is not set 666# CONFIG_EFS_FS is not set
645# CONFIG_CRAMFS is not set 667# CONFIG_CRAMFS is not set
646# CONFIG_VXFS_FS is not set 668# CONFIG_VXFS_FS is not set
669# CONFIG_MINIX_FS is not set
647# CONFIG_HPFS_FS is not set 670# CONFIG_HPFS_FS is not set
648# CONFIG_QNX4FS_FS is not set 671# CONFIG_QNX4FS_FS is not set
672# CONFIG_ROMFS_FS is not set
649# CONFIG_SYSV_FS is not set 673# CONFIG_SYSV_FS is not set
650# CONFIG_UFS_FS is not set 674# CONFIG_UFS_FS is not set
651CONFIG_NETWORK_FILESYSTEMS=y 675CONFIG_NETWORK_FILESYSTEMS=y
@@ -686,7 +710,6 @@ CONFIG_PARTITION_ADVANCED=y
686# CONFIG_SYSV68_PARTITION is not set 710# CONFIG_SYSV68_PARTITION is not set
687# CONFIG_NLS is not set 711# CONFIG_NLS is not set
688# CONFIG_DLM is not set 712# CONFIG_DLM is not set
689# CONFIG_UCC_SLOW is not set
690 713
691# 714#
692# Library routines 715# Library routines
@@ -702,7 +725,6 @@ CONFIG_PLIST=y
702CONFIG_HAS_IOMEM=y 725CONFIG_HAS_IOMEM=y
703CONFIG_HAS_IOPORT=y 726CONFIG_HAS_IOPORT=y
704CONFIG_HAS_DMA=y 727CONFIG_HAS_DMA=y
705# CONFIG_INSTRUMENTATION is not set
706 728
707# 729#
708# Kernel hacking 730# Kernel hacking
@@ -733,8 +755,8 @@ CONFIG_DEBUG_MUTEXES=y
733# CONFIG_DEBUG_VM is not set 755# CONFIG_DEBUG_VM is not set
734# CONFIG_DEBUG_LIST is not set 756# CONFIG_DEBUG_LIST is not set
735# CONFIG_DEBUG_SG is not set 757# CONFIG_DEBUG_SG is not set
736CONFIG_FORCED_INLINING=y
737# CONFIG_BOOT_PRINTK_DELAY is not set 758# CONFIG_BOOT_PRINTK_DELAY is not set
759# CONFIG_BACKTRACE_SELF_TEST is not set
738# CONFIG_FAULT_INJECTION is not set 760# CONFIG_FAULT_INJECTION is not set
739# CONFIG_SAMPLES is not set 761# CONFIG_SAMPLES is not set
740# CONFIG_DEBUG_STACKOVERFLOW is not set 762# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -752,6 +774,7 @@ CONFIG_PPC_EARLY_DEBUG=y
752# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set 774# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
753# CONFIG_PPC_EARLY_DEBUG_BEAT is not set 775# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
754# CONFIG_PPC_EARLY_DEBUG_44x is not set 776# CONFIG_PPC_EARLY_DEBUG_44x is not set
777# CONFIG_PPC_EARLY_DEBUG_40x is not set
755# CONFIG_PPC_EARLY_DEBUG_CPM is not set 778# CONFIG_PPC_EARLY_DEBUG_CPM is not set
756 779
757# 780#
@@ -760,5 +783,48 @@ CONFIG_PPC_EARLY_DEBUG=y
760# CONFIG_KEYS is not set 783# CONFIG_KEYS is not set
761# CONFIG_SECURITY is not set 784# CONFIG_SECURITY is not set
762# CONFIG_SECURITY_FILE_CAPABILITIES is not set 785# CONFIG_SECURITY_FILE_CAPABILITIES is not set
763# CONFIG_CRYPTO is not set 786CONFIG_CRYPTO=y
787# CONFIG_CRYPTO_SEQIV is not set
788# CONFIG_CRYPTO_MANAGER is not set
789# CONFIG_CRYPTO_HMAC is not set
790# CONFIG_CRYPTO_XCBC is not set
791# CONFIG_CRYPTO_NULL is not set
792# CONFIG_CRYPTO_MD4 is not set
793# CONFIG_CRYPTO_MD5 is not set
794# CONFIG_CRYPTO_SHA1 is not set
795# CONFIG_CRYPTO_SHA256 is not set
796# CONFIG_CRYPTO_SHA512 is not set
797# CONFIG_CRYPTO_WP512 is not set
798# CONFIG_CRYPTO_TGR192 is not set
799# CONFIG_CRYPTO_GF128MUL is not set
800# CONFIG_CRYPTO_ECB is not set
801# CONFIG_CRYPTO_CBC is not set
802# CONFIG_CRYPTO_PCBC is not set
803# CONFIG_CRYPTO_LRW is not set
804# CONFIG_CRYPTO_XTS is not set
805# CONFIG_CRYPTO_CTR is not set
806# CONFIG_CRYPTO_GCM is not set
807# CONFIG_CRYPTO_CCM is not set
808# CONFIG_CRYPTO_CRYPTD is not set
809# CONFIG_CRYPTO_DES is not set
810# CONFIG_CRYPTO_FCRYPT is not set
811# CONFIG_CRYPTO_BLOWFISH is not set
812# CONFIG_CRYPTO_TWOFISH is not set
813# CONFIG_CRYPTO_SERPENT is not set
814# CONFIG_CRYPTO_AES is not set
815# CONFIG_CRYPTO_CAST5 is not set
816# CONFIG_CRYPTO_CAST6 is not set
817# CONFIG_CRYPTO_TEA is not set
818# CONFIG_CRYPTO_ARC4 is not set
819# CONFIG_CRYPTO_KHAZAD is not set
820# CONFIG_CRYPTO_ANUBIS is not set
821# CONFIG_CRYPTO_SEED is not set
822# CONFIG_CRYPTO_SALSA20 is not set
823# CONFIG_CRYPTO_DEFLATE is not set
824# CONFIG_CRYPTO_MICHAEL_MIC is not set
825# CONFIG_CRYPTO_CRC32C is not set
826# CONFIG_CRYPTO_CAMELLIA is not set
827# CONFIG_CRYPTO_AUTHENC is not set
828# CONFIG_CRYPTO_LZO is not set
829CONFIG_CRYPTO_HW=y
764# CONFIG_PPC_CLOCK is not set 830# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index a034a5e452ef..8fc85747a0a7 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc6
4# Tue Jan 8 09:33:54 2008 4# Mon Mar 24 08:48:41 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -66,17 +67,19 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 68# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 69# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 70# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 73# CONFIG_CGROUPS is not set
74CONFIG_GROUP_SCHED=y
75CONFIG_FAIR_GROUP_SCHED=y 75CONFIG_FAIR_GROUP_SCHED=y
76CONFIG_FAIR_USER_SCHED=y 76# CONFIG_RT_GROUP_SCHED is not set
77# CONFIG_FAIR_CGROUP_SCHED is not set 77CONFIG_USER_SCHED=y
78# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
80# CONFIG_BLK_DEV_INITRD is not set 83# CONFIG_BLK_DEV_INITRD is not set
81CONFIG_CC_OPTIMIZE_FOR_SIZE=y 84CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 85CONFIG_SYSCTL=y
@@ -87,11 +90,13 @@ CONFIG_HOTPLUG=y
87CONFIG_PRINTK=y 90CONFIG_PRINTK=y
88CONFIG_BUG=y 91CONFIG_BUG=y
89CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
90CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
91CONFIG_FUTEX=y 95CONFIG_FUTEX=y
92CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
93CONFIG_EPOLL=y 97CONFIG_EPOLL=y
94CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
95CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
96CONFIG_SHMEM=y 101CONFIG_SHMEM=y
97CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -99,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
99# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
100CONFIG_SLUB=y 105CONFIG_SLUB=y
101# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -126,6 +138,7 @@ CONFIG_IOSCHED_CFQ=y
126CONFIG_DEFAULT_CFQ=y 138CONFIG_DEFAULT_CFQ=y
127# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="cfq" 140CONFIG_DEFAULT_IOSCHED="cfq"
141CONFIG_CLASSIC_RCU=y
129 142
130# 143#
131# Platform support 144# Platform support
@@ -136,10 +149,10 @@ CONFIG_PPC_MULTIPLATFORM=y
136# CONFIG_PPC_86xx is not set 149# CONFIG_PPC_86xx is not set
137CONFIG_CLASSIC32=y 150CONFIG_CLASSIC32=y
138# CONFIG_PPC_CHRP is not set 151# CONFIG_PPC_CHRP is not set
152# CONFIG_PPC_MPC512x is not set
153# CONFIG_PPC_MPC5121 is not set
154# CONFIG_MPC5121_ADS is not set
139# CONFIG_PPC_MPC52xx is not set 155# CONFIG_PPC_MPC52xx is not set
140# CONFIG_PPC_MPC5200 is not set
141# CONFIG_PPC_EFIKA is not set
142# CONFIG_PPC_LITE5200 is not set
143# CONFIG_PPC_PMAC is not set 156# CONFIG_PPC_PMAC is not set
144# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
145# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
@@ -153,6 +166,7 @@ CONFIG_STORCENTER=y
153CONFIG_MPC10X_BRIDGE=y 166CONFIG_MPC10X_BRIDGE=y
154CONFIG_MPC10X_OPENPIC=y 167CONFIG_MPC10X_OPENPIC=y
155# CONFIG_MPC10X_STORE_GATHERING is not set 168# CONFIG_MPC10X_STORE_GATHERING is not set
169# CONFIG_IPIC is not set
156CONFIG_MPIC=y 170CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 171# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 172# CONFIG_PPC_I8259 is not set
@@ -164,7 +178,6 @@ CONFIG_MPIC=y
164# CONFIG_GENERIC_IOMAP is not set 178# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 179# CONFIG_CPU_FREQ is not set
166# CONFIG_TAU is not set 180# CONFIG_TAU is not set
167# CONFIG_CPM2 is not set
168# CONFIG_FSL_ULI1575 is not set 181# CONFIG_FSL_ULI1575 is not set
169 182
170# 183#
@@ -180,12 +193,16 @@ CONFIG_HZ_100=y
180# CONFIG_HZ_300 is not set 193# CONFIG_HZ_300 is not set
181# CONFIG_HZ_1000 is not set 194# CONFIG_HZ_1000 is not set
182CONFIG_HZ=100 195CONFIG_HZ=100
196# CONFIG_SCHED_HRTICK is not set
183CONFIG_PREEMPT_NONE=y 197CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 198# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 199# CONFIG_PREEMPT is not set
186CONFIG_BINFMT_ELF=y 200CONFIG_BINFMT_ELF=y
187CONFIG_BINFMT_MISC=y 201CONFIG_BINFMT_MISC=y
202# CONFIG_IOMMU_HELPER is not set
188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 203CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
204CONFIG_ARCH_HAS_WALK_MEMORY=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
189# CONFIG_KEXEC is not set 206# CONFIG_KEXEC is not set
190CONFIG_ARCH_FLATMEM_ENABLE=y 207CONFIG_ARCH_FLATMEM_ENABLE=y
191CONFIG_ARCH_POPULATES_NODE_MAP=y 208CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -206,11 +223,7 @@ CONFIG_PROC_DEVICETREE=y
206CONFIG_CMDLINE_BOOL=y 223CONFIG_CMDLINE_BOOL=y
207CONFIG_CMDLINE="console=ttyS0,115200" 224CONFIG_CMDLINE="console=ttyS0,115200"
208# CONFIG_PM is not set 225# CONFIG_PM is not set
209CONFIG_SUSPEND_UP_POSSIBLE=y
210CONFIG_HIBERNATION_UP_POSSIBLE=y
211# CONFIG_SECCOMP is not set 226# CONFIG_SECCOMP is not set
212CONFIG_WANT_DEVICE_TREE=y
213CONFIG_DEVICE_TREE="storcenter.dts"
214CONFIG_ISA_DMA_API=y 227CONFIG_ISA_DMA_API=y
215 228
216# 229#
@@ -310,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
310# 323#
311# CONFIG_NET_PKTGEN is not set 324# CONFIG_NET_PKTGEN is not set
312# CONFIG_HAMRADIO is not set 325# CONFIG_HAMRADIO is not set
326# CONFIG_CAN is not set
313# CONFIG_IRDA is not set 327# CONFIG_IRDA is not set
314# CONFIG_BT is not set 328# CONFIG_BT is not set
315# CONFIG_AF_RXRPC is not set 329# CONFIG_AF_RXRPC is not set
@@ -343,6 +357,7 @@ CONFIG_MTD=y
343CONFIG_MTD_PARTITIONS=y 357CONFIG_MTD_PARTITIONS=y
344# CONFIG_MTD_REDBOOT_PARTS is not set 358# CONFIG_MTD_REDBOOT_PARTS is not set
345# CONFIG_MTD_CMDLINE_PARTS is not set 359# CONFIG_MTD_CMDLINE_PARTS is not set
360# CONFIG_MTD_OF_PARTS is not set
346 361
347# 362#
348# User Modules And Translation Layers 363# User Modules And Translation Layers
@@ -438,12 +453,14 @@ CONFIG_MISC_DEVICES=y
438# CONFIG_EEPROM_93CX6 is not set 453# CONFIG_EEPROM_93CX6 is not set
439# CONFIG_SGI_IOC4 is not set 454# CONFIG_SGI_IOC4 is not set
440# CONFIG_TIFM_CORE is not set 455# CONFIG_TIFM_CORE is not set
456# CONFIG_ENCLOSURE_SERVICES is not set
457CONFIG_HAVE_IDE=y
441CONFIG_IDE=y 458CONFIG_IDE=y
442CONFIG_IDE_MAX_HWIFS=4 459CONFIG_IDE_MAX_HWIFS=4
443CONFIG_BLK_DEV_IDE=y 460CONFIG_BLK_DEV_IDE=y
444 461
445# 462#
446# Please see Documentation/ide.txt for help/info on IDE drives 463# Please see Documentation/ide/ide.txt for help/info on IDE drives
447# 464#
448# CONFIG_BLK_DEV_IDE_SATA is not set 465# CONFIG_BLK_DEV_IDE_SATA is not set
449CONFIG_BLK_DEV_IDEDISK=y 466CONFIG_BLK_DEV_IDEDISK=y
@@ -460,12 +477,12 @@ CONFIG_IDE_PROC_FS=y
460# 477#
461CONFIG_IDE_GENERIC=y 478CONFIG_IDE_GENERIC=y
462# CONFIG_BLK_DEV_PLATFORM is not set 479# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_IDEDMA_SFF=y
463 481
464# 482#
465# PCI IDE chipsets support 483# PCI IDE chipsets support
466# 484#
467CONFIG_BLK_DEV_IDEPCI=y 485CONFIG_BLK_DEV_IDEPCI=y
468# CONFIG_IDEPCI_SHARE_IRQ is not set
469CONFIG_IDEPCI_PCIBUS_ORDER=y 486CONFIG_IDEPCI_PCIBUS_ORDER=y
470# CONFIG_BLK_DEV_GENERIC is not set 487# CONFIG_BLK_DEV_GENERIC is not set
471# CONFIG_BLK_DEV_OPTI621 is not set 488# CONFIG_BLK_DEV_OPTI621 is not set
@@ -495,7 +512,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_TRM290 is not set 512# CONFIG_BLK_DEV_TRM290 is not set
496CONFIG_BLK_DEV_VIA82CXXX=y 513CONFIG_BLK_DEV_VIA82CXXX=y
497# CONFIG_BLK_DEV_TC86C001 is not set 514# CONFIG_BLK_DEV_TC86C001 is not set
498# CONFIG_IDE_ARM is not set
499CONFIG_BLK_DEV_IDEDMA=y 515CONFIG_BLK_DEV_IDEDMA=y
500CONFIG_IDE_ARCH_OBSOLETE_INIT=y 516CONFIG_IDE_ARCH_OBSOLETE_INIT=y
501# CONFIG_BLK_DEV_HD is not set 517# CONFIG_BLK_DEV_HD is not set
@@ -563,6 +579,7 @@ CONFIG_SCSI_LOWLEVEL=y
563# CONFIG_SCSI_IPS is not set 579# CONFIG_SCSI_IPS is not set
564# CONFIG_SCSI_INITIO is not set 580# CONFIG_SCSI_INITIO is not set
565# CONFIG_SCSI_INIA100 is not set 581# CONFIG_SCSI_INIA100 is not set
582# CONFIG_SCSI_MVSAS is not set
566# CONFIG_SCSI_STEX is not set 583# CONFIG_SCSI_STEX is not set
567# CONFIG_SCSI_SYM53C8XX_2 is not set 584# CONFIG_SCSI_SYM53C8XX_2 is not set
568# CONFIG_SCSI_QLOGIC_1280 is not set 585# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -603,7 +620,6 @@ CONFIG_DUMMY=m
603# CONFIG_EQUALIZER is not set 620# CONFIG_EQUALIZER is not set
604# CONFIG_TUN is not set 621# CONFIG_TUN is not set
605# CONFIG_VETH is not set 622# CONFIG_VETH is not set
606# CONFIG_IP1000 is not set
607# CONFIG_ARCNET is not set 623# CONFIG_ARCNET is not set
608# CONFIG_NET_ETHERNET is not set 624# CONFIG_NET_ETHERNET is not set
609CONFIG_NETDEV_1000=y 625CONFIG_NETDEV_1000=y
@@ -611,6 +627,9 @@ CONFIG_NETDEV_1000=y
611# CONFIG_DL2K is not set 627# CONFIG_DL2K is not set
612# CONFIG_E1000 is not set 628# CONFIG_E1000 is not set
613# CONFIG_E1000E is not set 629# CONFIG_E1000E is not set
630# CONFIG_E1000E_ENABLED is not set
631# CONFIG_IP1000 is not set
632# CONFIG_IGB is not set
614# CONFIG_NS83820 is not set 633# CONFIG_NS83820 is not set
615# CONFIG_HAMACHI is not set 634# CONFIG_HAMACHI is not set
616# CONFIG_YELLOWFIN is not set 635# CONFIG_YELLOWFIN is not set
@@ -623,6 +642,7 @@ CONFIG_R8169=y
623# CONFIG_VIA_VELOCITY is not set 642# CONFIG_VIA_VELOCITY is not set
624# CONFIG_TIGON3 is not set 643# CONFIG_TIGON3 is not set
625# CONFIG_BNX2 is not set 644# CONFIG_BNX2 is not set
645# CONFIG_GIANFAR is not set
626# CONFIG_MV643XX_ETH is not set 646# CONFIG_MV643XX_ETH is not set
627# CONFIG_QLA3XXX is not set 647# CONFIG_QLA3XXX is not set
628# CONFIG_ATL1 is not set 648# CONFIG_ATL1 is not set
@@ -649,7 +669,6 @@ CONFIG_R8169=y
649# CONFIG_PPP is not set 669# CONFIG_PPP is not set
650# CONFIG_SLIP is not set 670# CONFIG_SLIP is not set
651# CONFIG_NET_FC is not set 671# CONFIG_NET_FC is not set
652# CONFIG_SHAPER is not set
653# CONFIG_NETCONSOLE is not set 672# CONFIG_NETCONSOLE is not set
654# CONFIG_NETPOLL is not set 673# CONFIG_NETPOLL is not set
655# CONFIG_NET_POLL_CONTROLLER is not set 674# CONFIG_NET_POLL_CONTROLLER is not set
@@ -672,6 +691,7 @@ CONFIG_R8169=y
672# 691#
673# CONFIG_VT is not set 692# CONFIG_VT is not set
674# CONFIG_SERIAL_NONSTANDARD is not set 693# CONFIG_SERIAL_NONSTANDARD is not set
694# CONFIG_NOZOMI is not set
675 695
676# 696#
677# Serial drivers 697# Serial drivers
@@ -746,14 +766,12 @@ CONFIG_I2C_MPC=y
746# 766#
747# Miscellaneous I2C Chip support 767# Miscellaneous I2C Chip support
748# 768#
749# CONFIG_SENSORS_DS1337 is not set
750# CONFIG_SENSORS_DS1374 is not set
751# CONFIG_DS1682 is not set 769# CONFIG_DS1682 is not set
752# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_SENSORS_EEPROM is not set
753# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
754# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_PCF8575 is not set
755# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_SENSORS_M41T00 is not set 774# CONFIG_TPS65010 is not set
757# CONFIG_SENSORS_MAX6875 is not set 775# CONFIG_SENSORS_MAX6875 is not set
758# CONFIG_SENSORS_TSL2550 is not set 776# CONFIG_SENSORS_TSL2550 is not set
759# CONFIG_I2C_DEBUG_CORE is not set 777# CONFIG_I2C_DEBUG_CORE is not set
@@ -769,6 +787,7 @@ CONFIG_I2C_MPC=y
769# CONFIG_W1 is not set 787# CONFIG_W1 is not set
770# CONFIG_POWER_SUPPLY is not set 788# CONFIG_POWER_SUPPLY is not set
771# CONFIG_HWMON is not set 789# CONFIG_HWMON is not set
790# CONFIG_THERMAL is not set
772# CONFIG_WATCHDOG is not set 791# CONFIG_WATCHDOG is not set
773 792
774# 793#
@@ -814,6 +833,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
814CONFIG_USB_ARCH_HAS_EHCI=y 833CONFIG_USB_ARCH_HAS_EHCI=y
815CONFIG_USB=y 834CONFIG_USB=y
816# CONFIG_USB_DEBUG is not set 835# CONFIG_USB_DEBUG is not set
836# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
817 837
818# 838#
819# Miscellaneous USB options 839# Miscellaneous USB options
@@ -827,9 +847,10 @@ CONFIG_USB_DEVICE_CLASS=y
827# USB Host Controller Drivers 847# USB Host Controller Drivers
828# 848#
829CONFIG_USB_EHCI_HCD=y 849CONFIG_USB_EHCI_HCD=y
830# CONFIG_USB_EHCI_SPLIT_ISO is not set
831# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 850# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
832# CONFIG_USB_EHCI_TT_NEWSCHED is not set 851# CONFIG_USB_EHCI_TT_NEWSCHED is not set
852# CONFIG_USB_EHCI_FSL is not set
853CONFIG_USB_EHCI_HCD_PPC_OF=y
833# CONFIG_USB_ISP116X_HCD is not set 854# CONFIG_USB_ISP116X_HCD is not set
834CONFIG_USB_OHCI_HCD=y 855CONFIG_USB_OHCI_HCD=y
835# CONFIG_USB_OHCI_HCD_PPC_OF is not set 856# CONFIG_USB_OHCI_HCD_PPC_OF is not set
@@ -877,10 +898,6 @@ CONFIG_USB_STORAGE=y
877# 898#
878# USB port drivers 899# USB port drivers
879# 900#
880
881#
882# USB Serial Converter support
883#
884# CONFIG_USB_SERIAL is not set 901# CONFIG_USB_SERIAL is not set
885 902
886# 903#
@@ -906,21 +923,18 @@ CONFIG_USB_STORAGE=y
906# CONFIG_USB_TRANCEVIBRATOR is not set 923# CONFIG_USB_TRANCEVIBRATOR is not set
907# CONFIG_USB_IOWARRIOR is not set 924# CONFIG_USB_IOWARRIOR is not set
908# CONFIG_USB_TEST is not set 925# CONFIG_USB_TEST is not set
909
910#
911# USB DSL modem support
912#
913
914#
915# USB Gadget Support
916#
917# CONFIG_USB_GADGET is not set 926# CONFIG_USB_GADGET is not set
918# CONFIG_MMC is not set 927# CONFIG_MMC is not set
928# CONFIG_MEMSTICK is not set
919# CONFIG_NEW_LEDS is not set 929# CONFIG_NEW_LEDS is not set
920# CONFIG_INFINIBAND is not set 930# CONFIG_INFINIBAND is not set
921# CONFIG_EDAC is not set 931# CONFIG_EDAC is not set
922CONFIG_RTC_LIB=y 932CONFIG_RTC_LIB=y
923CONFIG_RTC_CLASS=y 933CONFIG_RTC_CLASS=y
934
935#
936# Conflicting RTC option has been selected, check GEN_RTC and RTC
937#
924CONFIG_RTC_HCTOSYS=y 938CONFIG_RTC_HCTOSYS=y
925CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 939CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
926# CONFIG_RTC_DEBUG is not set 940# CONFIG_RTC_DEBUG is not set
@@ -947,6 +961,7 @@ CONFIG_RTC_DRV_DS1307=y
947# CONFIG_RTC_DRV_PCF8563 is not set 961# CONFIG_RTC_DRV_PCF8563 is not set
948# CONFIG_RTC_DRV_PCF8583 is not set 962# CONFIG_RTC_DRV_PCF8583 is not set
949# CONFIG_RTC_DRV_M41T80 is not set 963# CONFIG_RTC_DRV_M41T80 is not set
964# CONFIG_RTC_DRV_S35390A is not set
950 965
951# 966#
952# SPI RTC drivers 967# SPI RTC drivers
@@ -956,9 +971,10 @@ CONFIG_RTC_DRV_DS1307=y
956# Platform RTC drivers 971# Platform RTC drivers
957# 972#
958# CONFIG_RTC_DRV_CMOS is not set 973# CONFIG_RTC_DRV_CMOS is not set
974# CONFIG_RTC_DRV_DS1511 is not set
959# CONFIG_RTC_DRV_DS1553 is not set 975# CONFIG_RTC_DRV_DS1553 is not set
960# CONFIG_RTC_DRV_STK17TA8 is not set
961# CONFIG_RTC_DRV_DS1742 is not set 976# CONFIG_RTC_DRV_DS1742 is not set
977# CONFIG_RTC_DRV_STK17TA8 is not set
962# CONFIG_RTC_DRV_M48T86 is not set 978# CONFIG_RTC_DRV_M48T86 is not set
963# CONFIG_RTC_DRV_M48T59 is not set 979# CONFIG_RTC_DRV_M48T59 is not set
964# CONFIG_RTC_DRV_V3020 is not set 980# CONFIG_RTC_DRV_V3020 is not set
@@ -966,6 +982,7 @@ CONFIG_RTC_DRV_DS1307=y
966# 982#
967# on-CPU RTC drivers 983# on-CPU RTC drivers
968# 984#
985# CONFIG_DMADEVICES is not set
969 986
970# 987#
971# Userspace I/O 988# Userspace I/O
@@ -995,12 +1012,10 @@ CONFIG_XFS_FS=m
995# CONFIG_XFS_RT is not set 1012# CONFIG_XFS_RT is not set
996# CONFIG_GFS2_FS is not set 1013# CONFIG_GFS2_FS is not set
997# CONFIG_OCFS2_FS is not set 1014# CONFIG_OCFS2_FS is not set
998# CONFIG_MINIX_FS is not set 1015CONFIG_DNOTIFY=y
999# CONFIG_ROMFS_FS is not set
1000CONFIG_INOTIFY=y 1016CONFIG_INOTIFY=y
1001CONFIG_INOTIFY_USER=y 1017CONFIG_INOTIFY_USER=y
1002# CONFIG_QUOTA is not set 1018# CONFIG_QUOTA is not set
1003CONFIG_DNOTIFY=y
1004# CONFIG_AUTOFS_FS is not set 1019# CONFIG_AUTOFS_FS is not set
1005# CONFIG_AUTOFS4_FS is not set 1020# CONFIG_AUTOFS4_FS is not set
1006# CONFIG_FUSE_FS is not set 1021# CONFIG_FUSE_FS is not set
@@ -1053,8 +1068,10 @@ CONFIG_JFFS2_RTIME=y
1053# CONFIG_JFFS2_RUBIN is not set 1068# CONFIG_JFFS2_RUBIN is not set
1054# CONFIG_CRAMFS is not set 1069# CONFIG_CRAMFS is not set
1055# CONFIG_VXFS_FS is not set 1070# CONFIG_VXFS_FS is not set
1071# CONFIG_MINIX_FS is not set
1056# CONFIG_HPFS_FS is not set 1072# CONFIG_HPFS_FS is not set
1057# CONFIG_QNX4FS_FS is not set 1073# CONFIG_QNX4FS_FS is not set
1074# CONFIG_ROMFS_FS is not set
1058# CONFIG_SYSV_FS is not set 1075# CONFIG_SYSV_FS is not set
1059# CONFIG_UFS_FS is not set 1076# CONFIG_UFS_FS is not set
1060# CONFIG_NETWORK_FILESYSTEMS is not set 1077# CONFIG_NETWORK_FILESYSTEMS is not set
@@ -1121,7 +1138,6 @@ CONFIG_NLS_ISO8859_1=y
1121# CONFIG_NLS_KOI8_U is not set 1138# CONFIG_NLS_KOI8_U is not set
1122CONFIG_NLS_UTF8=y 1139CONFIG_NLS_UTF8=y
1123# CONFIG_DLM is not set 1140# CONFIG_DLM is not set
1124# CONFIG_UCC_SLOW is not set
1125 1141
1126# 1142#
1127# Library routines 1143# Library routines
@@ -1139,9 +1155,6 @@ CONFIG_PLIST=y
1139CONFIG_HAS_IOMEM=y 1155CONFIG_HAS_IOMEM=y
1140CONFIG_HAS_IOPORT=y 1156CONFIG_HAS_IOPORT=y
1141CONFIG_HAS_DMA=y 1157CONFIG_HAS_DMA=y
1142CONFIG_INSTRUMENTATION=y
1143# CONFIG_PROFILING is not set
1144# CONFIG_MARKERS is not set
1145 1158
1146# 1159#
1147# Kernel hacking 1160# Kernel hacking
@@ -1155,6 +1168,7 @@ CONFIG_INSTRUMENTATION=y
1155# CONFIG_HEADERS_CHECK is not set 1168# CONFIG_HEADERS_CHECK is not set
1156# CONFIG_DEBUG_KERNEL is not set 1169# CONFIG_DEBUG_KERNEL is not set
1157# CONFIG_SLUB_DEBUG_ON is not set 1170# CONFIG_SLUB_DEBUG_ON is not set
1171# CONFIG_SLUB_STATS is not set
1158# CONFIG_DEBUG_BUGVERBOSE is not set 1172# CONFIG_DEBUG_BUGVERBOSE is not set
1159# CONFIG_SAMPLES is not set 1173# CONFIG_SAMPLES is not set
1160# CONFIG_BOOTX_TEXT is not set 1174# CONFIG_BOOTX_TEXT is not set
diff --git a/arch/powerpc/configs/stx_gp3_defconfig b/arch/powerpc/configs/stx_gp3_defconfig
index e8137a839bd4..1d303c49bb0c 100644
--- a/arch/powerpc/configs/stx_gp3_defconfig
+++ b/arch/powerpc/configs/stx_gp3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 24 02:02:30 2008 4# Mon Mar 24 08:48:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +94,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
92CONFIG_BUG=y 95CONFIG_BUG=y
93CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 99CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 101CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 105CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
104CONFIG_SLUB=y 109CONFIG_SLUB=y
105# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set
115CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y
117CONFIG_PROC_PAGE_MONITOR=y
106CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
@@ -130,23 +142,29 @@ CONFIG_IOSCHED_CFQ=y
130CONFIG_DEFAULT_CFQ=y 142CONFIG_DEFAULT_CFQ=y
131# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="cfq" 144CONFIG_DEFAULT_IOSCHED="cfq"
145CONFIG_CLASSIC_RCU=y
133 146
134# 147#
135# Platform support 148# Platform support
136# 149#
137# CONFIG_PPC_MPC52xx is not set 150# CONFIG_PPC_MPC512x is not set
138# CONFIG_PPC_MPC5200 is not set 151# CONFIG_PPC_MPC5121 is not set
139# CONFIG_PPC_CELL is not set 152# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 153# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PQ2ADS is not set 154# CONFIG_PQ2ADS is not set
155CONFIG_MPC85xx=y
142# CONFIG_MPC8540_ADS is not set 156# CONFIG_MPC8540_ADS is not set
143# CONFIG_MPC8560_ADS is not set 157# CONFIG_MPC8560_ADS is not set
144# CONFIG_MPC85xx_CDS is not set 158# CONFIG_MPC85xx_CDS is not set
145# CONFIG_MPC85xx_MDS is not set 159# CONFIG_MPC85xx_MDS is not set
146# CONFIG_MPC85xx_DS is not set 160# CONFIG_MPC85xx_DS is not set
147CONFIG_STX_GP3=y 161CONFIG_STX_GP3=y
148CONFIG_MPC8560=y 162# CONFIG_TQM8540 is not set
149CONFIG_MPC85xx=y 163# CONFIG_TQM8541 is not set
164# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set
167# CONFIG_SBC8560 is not set
150# CONFIG_IPIC is not set 168# CONFIG_IPIC is not set
151CONFIG_MPIC=y 169CONFIG_MPIC=y
152# CONFIG_MPIC_WEIRD is not set 170# CONFIG_MPIC_WEIRD is not set
@@ -176,13 +194,17 @@ CONFIG_HZ_250=y
176# CONFIG_HZ_300 is not set 194# CONFIG_HZ_300 is not set
177# CONFIG_HZ_1000 is not set 195# CONFIG_HZ_1000 is not set
178CONFIG_HZ=250 196CONFIG_HZ=250
197# CONFIG_SCHED_HRTICK is not set
179CONFIG_PREEMPT_NONE=y 198CONFIG_PREEMPT_NONE=y
180# CONFIG_PREEMPT_VOLUNTARY is not set 199# CONFIG_PREEMPT_VOLUNTARY is not set
181# CONFIG_PREEMPT is not set 200# CONFIG_PREEMPT is not set
182CONFIG_BINFMT_ELF=y 201CONFIG_BINFMT_ELF=y
183CONFIG_BINFMT_MISC=m 202CONFIG_BINFMT_MISC=m
184CONFIG_MATH_EMULATION=y 203CONFIG_MATH_EMULATION=y
204# CONFIG_IOMMU_HELPER is not set
185CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
186CONFIG_ARCH_FLATMEM_ENABLE=y 208CONFIG_ARCH_FLATMEM_ENABLE=y
187CONFIG_ARCH_POPULATES_NODE_MAP=y 209CONFIG_ARCH_POPULATES_NODE_MAP=y
188CONFIG_SELECT_MEMORY_MODEL=y 210CONFIG_SELECT_MEMORY_MODEL=y
@@ -201,11 +223,7 @@ CONFIG_VIRT_TO_BUS=y
201CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
202# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
203# CONFIG_PM is not set 225# CONFIG_PM is not set
204CONFIG_SUSPEND_UP_POSSIBLE=y
205CONFIG_HIBERNATION_UP_POSSIBLE=y
206CONFIG_SECCOMP=y 226CONFIG_SECCOMP=y
207CONFIG_WANT_DEVICE_TREE=y
208CONFIG_DEVICE_TREE="stx_gp3_8560.dts"
209CONFIG_ISA_DMA_API=y 227CONFIG_ISA_DMA_API=y
210 228
211# 229#
@@ -255,6 +273,7 @@ CONFIG_XFRM=y
255# CONFIG_XFRM_USER is not set 273# CONFIG_XFRM_USER is not set
256# CONFIG_XFRM_SUB_POLICY is not set 274# CONFIG_XFRM_SUB_POLICY is not set
257# CONFIG_XFRM_MIGRATE is not set 275# CONFIG_XFRM_MIGRATE is not set
276# CONFIG_XFRM_STATISTICS is not set
258# CONFIG_NET_KEY is not set 277# CONFIG_NET_KEY is not set
259CONFIG_INET=y 278CONFIG_INET=y
260# CONFIG_IP_MULTICAST is not set 279# CONFIG_IP_MULTICAST is not set
@@ -290,31 +309,36 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
290# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
291CONFIG_NETFILTER=y 310CONFIG_NETFILTER=y
292# CONFIG_NETFILTER_DEBUG is not set 311# CONFIG_NETFILTER_DEBUG is not set
312CONFIG_NETFILTER_ADVANCED=y
293 313
294# 314#
295# Core Netfilter Configuration 315# Core Netfilter Configuration
296# 316#
297# CONFIG_NETFILTER_NETLINK is not set 317# CONFIG_NETFILTER_NETLINK_QUEUE is not set
298# CONFIG_NF_CONNTRACK_ENABLED is not set 318# CONFIG_NETFILTER_NETLINK_LOG is not set
299# CONFIG_NF_CONNTRACK is not set 319# CONFIG_NF_CONNTRACK is not set
300CONFIG_NETFILTER_XTABLES=m 320CONFIG_NETFILTER_XTABLES=m
301# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 321# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
302# CONFIG_NETFILTER_XT_TARGET_MARK is not set 322# CONFIG_NETFILTER_XT_TARGET_MARK is not set
303# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 323# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
304# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 324# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
325# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
305# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 326# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
306# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 327# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
307# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 328# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
308# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 329# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
309# CONFIG_NETFILTER_XT_MATCH_ESP is not set 330# CONFIG_NETFILTER_XT_MATCH_ESP is not set
331# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
310# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 332# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
311# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 333# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
312# CONFIG_NETFILTER_XT_MATCH_MAC is not set 334# CONFIG_NETFILTER_XT_MATCH_MAC is not set
313# CONFIG_NETFILTER_XT_MATCH_MARK is not set 335# CONFIG_NETFILTER_XT_MATCH_MARK is not set
336# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
314# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 337# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
315# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set 338# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
316# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 339# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
317# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 340# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
341# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
318# CONFIG_NETFILTER_XT_MATCH_REALM is not set 342# CONFIG_NETFILTER_XT_MATCH_REALM is not set
319# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 343# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
320# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 344# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
@@ -329,13 +353,10 @@ CONFIG_NETFILTER_XTABLES=m
329# 353#
330# CONFIG_IP_NF_QUEUE is not set 354# CONFIG_IP_NF_QUEUE is not set
331CONFIG_IP_NF_IPTABLES=m 355CONFIG_IP_NF_IPTABLES=m
332# CONFIG_IP_NF_MATCH_IPRANGE is not set
333# CONFIG_IP_NF_MATCH_TOS is not set
334# CONFIG_IP_NF_MATCH_RECENT is not set 356# CONFIG_IP_NF_MATCH_RECENT is not set
335# CONFIG_IP_NF_MATCH_ECN is not set 357# CONFIG_IP_NF_MATCH_ECN is not set
336# CONFIG_IP_NF_MATCH_AH is not set 358# CONFIG_IP_NF_MATCH_AH is not set
337# CONFIG_IP_NF_MATCH_TTL is not set 359# CONFIG_IP_NF_MATCH_TTL is not set
338# CONFIG_IP_NF_MATCH_OWNER is not set
339# CONFIG_IP_NF_MATCH_ADDRTYPE is not set 360# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
340CONFIG_IP_NF_FILTER=m 361CONFIG_IP_NF_FILTER=m
341# CONFIG_IP_NF_TARGET_REJECT is not set 362# CONFIG_IP_NF_TARGET_REJECT is not set
@@ -365,6 +386,7 @@ CONFIG_IP_NF_FILTER=m
365# 386#
366CONFIG_NET_PKTGEN=y 387CONFIG_NET_PKTGEN=y
367# CONFIG_HAMRADIO is not set 388# CONFIG_HAMRADIO is not set
389# CONFIG_CAN is not set
368# CONFIG_IRDA is not set 390# CONFIG_IRDA is not set
369# CONFIG_BT is not set 391# CONFIG_BT is not set
370# CONFIG_AF_RXRPC is not set 392# CONFIG_AF_RXRPC is not set
@@ -418,7 +440,7 @@ CONFIG_BLK_DEV_NBD=m
418CONFIG_BLK_DEV_RAM=y 440CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16 441CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=32768 442CONFIG_BLK_DEV_RAM_SIZE=32768
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 443# CONFIG_BLK_DEV_XIP is not set
422# CONFIG_CDROM_PKTCDVD is not set 444# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set 445# CONFIG_ATA_OVER_ETH is not set
424CONFIG_MISC_DEVICES=y 446CONFIG_MISC_DEVICES=y
@@ -426,17 +448,20 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
427# CONFIG_SGI_IOC4 is not set 449# CONFIG_SGI_IOC4 is not set
428# CONFIG_TIFM_CORE is not set 450# CONFIG_TIFM_CORE is not set
451# CONFIG_ENCLOSURE_SERVICES is not set
452CONFIG_HAVE_IDE=y
429CONFIG_IDE=y 453CONFIG_IDE=y
430CONFIG_IDE_MAX_HWIFS=4 454CONFIG_IDE_MAX_HWIFS=4
431CONFIG_BLK_DEV_IDE=y 455CONFIG_BLK_DEV_IDE=y
432 456
433# 457#
434# Please see Documentation/ide.txt for help/info on IDE drives 458# Please see Documentation/ide/ide.txt for help/info on IDE drives
435# 459#
436# CONFIG_BLK_DEV_IDE_SATA is not set 460# CONFIG_BLK_DEV_IDE_SATA is not set
437CONFIG_BLK_DEV_IDEDISK=y 461CONFIG_BLK_DEV_IDEDISK=y
438# CONFIG_IDEDISK_MULTI_MODE is not set 462# CONFIG_IDEDISK_MULTI_MODE is not set
439CONFIG_BLK_DEV_IDECD=m 463CONFIG_BLK_DEV_IDECD=m
464CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
440# CONFIG_BLK_DEV_IDETAPE is not set 465# CONFIG_BLK_DEV_IDETAPE is not set
441# CONFIG_BLK_DEV_IDEFLOPPY is not set 466# CONFIG_BLK_DEV_IDEFLOPPY is not set
442# CONFIG_BLK_DEV_IDESCSI is not set 467# CONFIG_BLK_DEV_IDESCSI is not set
@@ -452,7 +477,6 @@ CONFIG_IDE_GENERIC=y
452# 477#
453# PCI IDE chipsets support 478# PCI IDE chipsets support
454# 479#
455# CONFIG_IDEPCI_PCIBUS_ORDER is not set
456# CONFIG_BLK_DEV_GENERIC is not set 480# CONFIG_BLK_DEV_GENERIC is not set
457# CONFIG_BLK_DEV_OPTI621 is not set 481# CONFIG_BLK_DEV_OPTI621 is not set
458# CONFIG_BLK_DEV_AEC62XX is not set 482# CONFIG_BLK_DEV_AEC62XX is not set
@@ -480,7 +504,6 @@ CONFIG_IDE_GENERIC=y
480# CONFIG_BLK_DEV_TRM290 is not set 504# CONFIG_BLK_DEV_TRM290 is not set
481# CONFIG_BLK_DEV_VIA82CXXX is not set 505# CONFIG_BLK_DEV_VIA82CXXX is not set
482# CONFIG_BLK_DEV_TC86C001 is not set 506# CONFIG_BLK_DEV_TC86C001 is not set
483# CONFIG_IDE_ARM is not set
484# CONFIG_BLK_DEV_IDEDMA is not set 507# CONFIG_BLK_DEV_IDEDMA is not set
485CONFIG_IDE_ARCH_OBSOLETE_INIT=y 508CONFIG_IDE_ARCH_OBSOLETE_INIT=y
486# CONFIG_BLK_DEV_HD is not set 509# CONFIG_BLK_DEV_HD is not set
@@ -550,6 +573,7 @@ CONFIG_SCSI_LOWLEVEL=y
550# CONFIG_SCSI_INIA100 is not set 573# CONFIG_SCSI_INIA100 is not set
551# CONFIG_SCSI_PPA is not set 574# CONFIG_SCSI_PPA is not set
552# CONFIG_SCSI_IMM is not set 575# CONFIG_SCSI_IMM is not set
576# CONFIG_SCSI_MVSAS is not set
553# CONFIG_SCSI_STEX is not set 577# CONFIG_SCSI_STEX is not set
554# CONFIG_SCSI_SYM53C8XX_2 is not set 578# CONFIG_SCSI_SYM53C8XX_2 is not set
555# CONFIG_SCSI_QLOGIC_1280 is not set 579# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -595,6 +619,7 @@ CONFIG_MARVELL_PHY=y
595# CONFIG_SMSC_PHY is not set 619# CONFIG_SMSC_PHY is not set
596# CONFIG_BROADCOM_PHY is not set 620# CONFIG_BROADCOM_PHY is not set
597# CONFIG_ICPLUS_PHY is not set 621# CONFIG_ICPLUS_PHY is not set
622# CONFIG_REALTEK_PHY is not set
598# CONFIG_FIXED_PHY is not set 623# CONFIG_FIXED_PHY is not set
599# CONFIG_MDIO_BITBANG is not set 624# CONFIG_MDIO_BITBANG is not set
600CONFIG_NET_ETHERNET=y 625CONFIG_NET_ETHERNET=y
@@ -618,7 +643,9 @@ CONFIG_NETDEV_1000=y
618# CONFIG_DL2K is not set 643# CONFIG_DL2K is not set
619# CONFIG_E1000 is not set 644# CONFIG_E1000 is not set
620# CONFIG_E1000E is not set 645# CONFIG_E1000E is not set
646# CONFIG_E1000E_ENABLED is not set
621# CONFIG_IP1000 is not set 647# CONFIG_IP1000 is not set
648# CONFIG_IGB is not set
622# CONFIG_NS83820 is not set 649# CONFIG_NS83820 is not set
623# CONFIG_HAMACHI is not set 650# CONFIG_HAMACHI is not set
624# CONFIG_YELLOWFIN is not set 651# CONFIG_YELLOWFIN is not set
@@ -645,6 +672,7 @@ CONFIG_NETDEV_10000=y
645# CONFIG_NIU is not set 672# CONFIG_NIU is not set
646# CONFIG_MLX4_CORE is not set 673# CONFIG_MLX4_CORE is not set
647# CONFIG_TEHUTI is not set 674# CONFIG_TEHUTI is not set
675# CONFIG_BNX2X is not set
648# CONFIG_TR is not set 676# CONFIG_TR is not set
649 677
650# 678#
@@ -659,7 +687,6 @@ CONFIG_NETDEV_10000=y
659# CONFIG_PPP is not set 687# CONFIG_PPP is not set
660# CONFIG_SLIP is not set 688# CONFIG_SLIP is not set
661# CONFIG_NET_FC is not set 689# CONFIG_NET_FC is not set
662# CONFIG_SHAPER is not set
663# CONFIG_NETCONSOLE is not set 690# CONFIG_NETCONSOLE is not set
664# CONFIG_NETPOLL is not set 691# CONFIG_NETPOLL is not set
665# CONFIG_NET_POLL_CONTROLLER is not set 692# CONFIG_NET_POLL_CONTROLLER is not set
@@ -727,6 +754,7 @@ CONFIG_SERIO_LIBPS2=y
727# 754#
728# CONFIG_VT is not set 755# CONFIG_VT is not set
729# CONFIG_SERIAL_NONSTANDARD is not set 756# CONFIG_SERIAL_NONSTANDARD is not set
757# CONFIG_NOZOMI is not set
730 758
731# 759#
732# Serial drivers 760# Serial drivers
@@ -805,14 +833,12 @@ CONFIG_I2C_ALGOBIT=m
805# 833#
806# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
807# 835#
808# CONFIG_SENSORS_DS1337 is not set
809# CONFIG_SENSORS_DS1374 is not set
810# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
811# CONFIG_SENSORS_EEPROM is not set 837# CONFIG_SENSORS_EEPROM is not set
812# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
813# CONFIG_SENSORS_PCA9539 is not set 839# CONFIG_PCF8575 is not set
814# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
815# CONFIG_SENSORS_M41T00 is not set 841# CONFIG_TPS65010 is not set
816# CONFIG_SENSORS_MAX6875 is not set 842# CONFIG_SENSORS_MAX6875 is not set
817# CONFIG_SENSORS_TSL2550 is not set 843# CONFIG_SENSORS_TSL2550 is not set
818# CONFIG_I2C_DEBUG_CORE is not set 844# CONFIG_I2C_DEBUG_CORE is not set
@@ -837,6 +863,7 @@ CONFIG_HWMON=y
837# CONFIG_SENSORS_ADM1031 is not set 863# CONFIG_SENSORS_ADM1031 is not set
838# CONFIG_SENSORS_ADM9240 is not set 864# CONFIG_SENSORS_ADM9240 is not set
839# CONFIG_SENSORS_ADT7470 is not set 865# CONFIG_SENSORS_ADT7470 is not set
866# CONFIG_SENSORS_ADT7473 is not set
840# CONFIG_SENSORS_ATXP1 is not set 867# CONFIG_SENSORS_ATXP1 is not set
841# CONFIG_SENSORS_DS1621 is not set 868# CONFIG_SENSORS_DS1621 is not set
842# CONFIG_SENSORS_I5K_AMB is not set 869# CONFIG_SENSORS_I5K_AMB is not set
@@ -866,6 +893,7 @@ CONFIG_HWMON=y
866# CONFIG_SENSORS_SMSC47M1 is not set 893# CONFIG_SENSORS_SMSC47M1 is not set
867# CONFIG_SENSORS_SMSC47M192 is not set 894# CONFIG_SENSORS_SMSC47M192 is not set
868# CONFIG_SENSORS_SMSC47B397 is not set 895# CONFIG_SENSORS_SMSC47B397 is not set
896# CONFIG_SENSORS_ADS7828 is not set
869# CONFIG_SENSORS_THMC50 is not set 897# CONFIG_SENSORS_THMC50 is not set
870# CONFIG_SENSORS_VIA686A is not set 898# CONFIG_SENSORS_VIA686A is not set
871# CONFIG_SENSORS_VT1211 is not set 899# CONFIG_SENSORS_VT1211 is not set
@@ -875,9 +903,11 @@ CONFIG_HWMON=y
875# CONFIG_SENSORS_W83792D is not set 903# CONFIG_SENSORS_W83792D is not set
876# CONFIG_SENSORS_W83793 is not set 904# CONFIG_SENSORS_W83793 is not set
877# CONFIG_SENSORS_W83L785TS is not set 905# CONFIG_SENSORS_W83L785TS is not set
906# CONFIG_SENSORS_W83L786NG is not set
878# CONFIG_SENSORS_W83627HF is not set 907# CONFIG_SENSORS_W83627HF is not set
879# CONFIG_SENSORS_W83627EHF is not set 908# CONFIG_SENSORS_W83627EHF is not set
880# CONFIG_HWMON_DEBUG_CHIP is not set 909# CONFIG_HWMON_DEBUG_CHIP is not set
910# CONFIG_THERMAL is not set
881# CONFIG_WATCHDOG is not set 911# CONFIG_WATCHDOG is not set
882 912
883# 913#
@@ -947,16 +977,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
947# 977#
948# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
949# 979#
950
951#
952# USB Gadget Support
953#
954# CONFIG_USB_GADGET is not set 980# CONFIG_USB_GADGET is not set
955# CONFIG_MMC is not set 981# CONFIG_MMC is not set
982# CONFIG_MEMSTICK is not set
956# CONFIG_NEW_LEDS is not set 983# CONFIG_NEW_LEDS is not set
957# CONFIG_INFINIBAND is not set 984# CONFIG_INFINIBAND is not set
958# CONFIG_EDAC is not set 985# CONFIG_EDAC is not set
959# CONFIG_RTC_CLASS is not set 986# CONFIG_RTC_CLASS is not set
987# CONFIG_DMADEVICES is not set
960# CONFIG_AUXDISPLAY is not set 988# CONFIG_AUXDISPLAY is not set
961 989
962# 990#
@@ -983,12 +1011,10 @@ CONFIG_FS_MBCACHE=y
983# CONFIG_XFS_FS is not set 1011# CONFIG_XFS_FS is not set
984# CONFIG_GFS2_FS is not set 1012# CONFIG_GFS2_FS is not set
985# CONFIG_OCFS2_FS is not set 1013# CONFIG_OCFS2_FS is not set
986# CONFIG_MINIX_FS is not set 1014CONFIG_DNOTIFY=y
987# CONFIG_ROMFS_FS is not set
988CONFIG_INOTIFY=y 1015CONFIG_INOTIFY=y
989CONFIG_INOTIFY_USER=y 1016CONFIG_INOTIFY_USER=y
990# CONFIG_QUOTA is not set 1017# CONFIG_QUOTA is not set
991CONFIG_DNOTIFY=y
992CONFIG_AUTOFS_FS=m 1018CONFIG_AUTOFS_FS=m
993CONFIG_AUTOFS4_FS=y 1019CONFIG_AUTOFS4_FS=y
994# CONFIG_FUSE_FS is not set 1020# CONFIG_FUSE_FS is not set
@@ -1036,8 +1062,10 @@ CONFIG_TMPFS=y
1036# CONFIG_EFS_FS is not set 1062# CONFIG_EFS_FS is not set
1037CONFIG_CRAMFS=m 1063CONFIG_CRAMFS=m
1038# CONFIG_VXFS_FS is not set 1064# CONFIG_VXFS_FS is not set
1065# CONFIG_MINIX_FS is not set
1039# CONFIG_HPFS_FS is not set 1066# CONFIG_HPFS_FS is not set
1040# CONFIG_QNX4FS_FS is not set 1067# CONFIG_QNX4FS_FS is not set
1068# CONFIG_ROMFS_FS is not set
1041# CONFIG_SYSV_FS is not set 1069# CONFIG_SYSV_FS is not set
1042# CONFIG_UFS_FS is not set 1070# CONFIG_UFS_FS is not set
1043CONFIG_NETWORK_FILESYSTEMS=y 1071CONFIG_NETWORK_FILESYSTEMS=y
@@ -1124,10 +1152,6 @@ CONFIG_PLIST=y
1124CONFIG_HAS_IOMEM=y 1152CONFIG_HAS_IOMEM=y
1125CONFIG_HAS_IOPORT=y 1153CONFIG_HAS_IOPORT=y
1126CONFIG_HAS_DMA=y 1154CONFIG_HAS_DMA=y
1127CONFIG_INSTRUMENTATION=y
1128# CONFIG_PROFILING is not set
1129# CONFIG_KPROBES is not set
1130# CONFIG_MARKERS is not set
1131 1155
1132# 1156#
1133# Kernel hacking 1157# Kernel hacking
@@ -1146,6 +1170,7 @@ CONFIG_SCHED_DEBUG=y
1146# CONFIG_SCHEDSTATS is not set 1170# CONFIG_SCHEDSTATS is not set
1147# CONFIG_TIMER_STATS is not set 1171# CONFIG_TIMER_STATS is not set
1148# CONFIG_SLUB_DEBUG_ON is not set 1172# CONFIG_SLUB_DEBUG_ON is not set
1173# CONFIG_SLUB_STATS is not set
1149# CONFIG_DEBUG_RT_MUTEXES is not set 1174# CONFIG_DEBUG_RT_MUTEXES is not set
1150# CONFIG_RT_MUTEX_TESTER is not set 1175# CONFIG_RT_MUTEX_TESTER is not set
1151# CONFIG_DEBUG_SPINLOCK is not set 1176# CONFIG_DEBUG_SPINLOCK is not set
@@ -1159,9 +1184,9 @@ CONFIG_SCHED_DEBUG=y
1159# CONFIG_DEBUG_VM is not set 1184# CONFIG_DEBUG_VM is not set
1160# CONFIG_DEBUG_LIST is not set 1185# CONFIG_DEBUG_LIST is not set
1161# CONFIG_DEBUG_SG is not set 1186# CONFIG_DEBUG_SG is not set
1162CONFIG_FORCED_INLINING=y
1163# CONFIG_BOOT_PRINTK_DELAY is not set 1187# CONFIG_BOOT_PRINTK_DELAY is not set
1164# CONFIG_RCU_TORTURE_TEST is not set 1188# CONFIG_RCU_TORTURE_TEST is not set
1189# CONFIG_BACKTRACE_SELF_TEST is not set
1165# CONFIG_FAULT_INJECTION is not set 1190# CONFIG_FAULT_INJECTION is not set
1166# CONFIG_SAMPLES is not set 1191# CONFIG_SAMPLES is not set
1167# CONFIG_DEBUG_STACKOVERFLOW is not set 1192# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1178,6 +1203,51 @@ CONFIG_BDI_SWITCH=y
1178# CONFIG_KEYS is not set 1203# CONFIG_KEYS is not set
1179# CONFIG_SECURITY is not set 1204# CONFIG_SECURITY is not set
1180# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1205# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1181# CONFIG_CRYPTO is not set 1206CONFIG_CRYPTO=y
1207# CONFIG_CRYPTO_SEQIV is not set
1208# CONFIG_CRYPTO_MANAGER is not set
1209# CONFIG_CRYPTO_HMAC is not set
1210# CONFIG_CRYPTO_XCBC is not set
1211# CONFIG_CRYPTO_NULL is not set
1212# CONFIG_CRYPTO_MD4 is not set
1213# CONFIG_CRYPTO_MD5 is not set
1214# CONFIG_CRYPTO_SHA1 is not set
1215# CONFIG_CRYPTO_SHA256 is not set
1216# CONFIG_CRYPTO_SHA512 is not set
1217# CONFIG_CRYPTO_WP512 is not set
1218# CONFIG_CRYPTO_TGR192 is not set
1219# CONFIG_CRYPTO_GF128MUL is not set
1220# CONFIG_CRYPTO_ECB is not set
1221# CONFIG_CRYPTO_CBC is not set
1222# CONFIG_CRYPTO_PCBC is not set
1223# CONFIG_CRYPTO_LRW is not set
1224# CONFIG_CRYPTO_XTS is not set
1225# CONFIG_CRYPTO_CTR is not set
1226# CONFIG_CRYPTO_GCM is not set
1227# CONFIG_CRYPTO_CCM is not set
1228# CONFIG_CRYPTO_CRYPTD is not set
1229# CONFIG_CRYPTO_DES is not set
1230# CONFIG_CRYPTO_FCRYPT is not set
1231# CONFIG_CRYPTO_BLOWFISH is not set
1232# CONFIG_CRYPTO_TWOFISH is not set
1233# CONFIG_CRYPTO_SERPENT is not set
1234# CONFIG_CRYPTO_AES is not set
1235# CONFIG_CRYPTO_CAST5 is not set
1236# CONFIG_CRYPTO_CAST6 is not set
1237# CONFIG_CRYPTO_TEA is not set
1238# CONFIG_CRYPTO_ARC4 is not set
1239# CONFIG_CRYPTO_KHAZAD is not set
1240# CONFIG_CRYPTO_ANUBIS is not set
1241# CONFIG_CRYPTO_SEED is not set
1242# CONFIG_CRYPTO_SALSA20 is not set
1243# CONFIG_CRYPTO_DEFLATE is not set
1244# CONFIG_CRYPTO_MICHAEL_MIC is not set
1245# CONFIG_CRYPTO_CRC32C is not set
1246# CONFIG_CRYPTO_CAMELLIA is not set
1247# CONFIG_CRYPTO_TEST is not set
1248# CONFIG_CRYPTO_AUTHENC is not set
1249# CONFIG_CRYPTO_LZO is not set
1250CONFIG_CRYPTO_HW=y
1251# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1182# CONFIG_PPC_CLOCK is not set 1252# CONFIG_PPC_CLOCK is not set
1183CONFIG_PPC_LIB_RHEAP=y 1253CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/tqm8540_defconfig b/arch/powerpc/configs/tqm8540_defconfig
index 732de34cfc27..d39ee3b35bfc 100644
--- a/arch/powerpc/configs/tqm8540_defconfig
+++ b/arch/powerpc/configs/tqm8540_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Fri Jan 25 01:32:05 2008 4# Mon Mar 24 08:48:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +92,13 @@ CONFIG_SYSCTL_SYSCALL=y
89CONFIG_PRINTK=y 92CONFIG_PRINTK=y
90CONFIG_BUG=y 93CONFIG_BUG=y
91CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 97CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
95# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
96CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 103CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +106,12 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
102CONFIG_SLUB=y 107CONFIG_SLUB=y
103# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
104CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -124,15 +135,17 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
127 139
128# 140#
129# Platform support 141# Platform support
130# 142#
131# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 147# CONFIG_PQ2ADS is not set
148CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 149# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 150# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 151# CONFIG_MPC85xx_CDS is not set
@@ -143,8 +156,9 @@ CONFIG_TQM8540=y
143# CONFIG_TQM8541 is not set 156# CONFIG_TQM8541 is not set
144# CONFIG_TQM8555 is not set 157# CONFIG_TQM8555 is not set
145# CONFIG_TQM8560 is not set 158# CONFIG_TQM8560 is not set
159# CONFIG_SBC8548 is not set
160# CONFIG_SBC8560 is not set
146CONFIG_TQM85xx=y 161CONFIG_TQM85xx=y
147CONFIG_MPC85xx=y
148# CONFIG_IPIC is not set 162# CONFIG_IPIC is not set
149CONFIG_MPIC=y 163CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 164# CONFIG_MPIC_WEIRD is not set
@@ -173,13 +187,17 @@ CONFIG_HZ_250=y
173# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
174# CONFIG_HZ_1000 is not set 188# CONFIG_HZ_1000 is not set
175CONFIG_HZ=250 189CONFIG_HZ=250
190# CONFIG_SCHED_HRTICK is not set
176CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
179CONFIG_BINFMT_ELF=y 194CONFIG_BINFMT_ELF=y
180# CONFIG_BINFMT_MISC is not set 195# CONFIG_BINFMT_MISC is not set
181CONFIG_MATH_EMULATION=y 196CONFIG_MATH_EMULATION=y
197# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 198CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
199CONFIG_ARCH_HAS_WALK_MEMORY=y
200CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183CONFIG_ARCH_FLATMEM_ENABLE=y 201CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_ARCH_POPULATES_NODE_MAP=y 202CONFIG_ARCH_POPULATES_NODE_MAP=y
185CONFIG_SELECT_MEMORY_MODEL=y 203CONFIG_SELECT_MEMORY_MODEL=y
@@ -198,11 +216,7 @@ CONFIG_VIRT_TO_BUS=y
198# CONFIG_PROC_DEVICETREE is not set 216# CONFIG_PROC_DEVICETREE is not set
199# CONFIG_CMDLINE_BOOL is not set 217# CONFIG_CMDLINE_BOOL is not set
200# CONFIG_PM is not set 218# CONFIG_PM is not set
201CONFIG_SUSPEND_UP_POSSIBLE=y
202CONFIG_HIBERNATION_UP_POSSIBLE=y
203CONFIG_SECCOMP=y 219CONFIG_SECCOMP=y
204CONFIG_WANT_DEVICE_TREE=y
205CONFIG_DEVICE_TREE="tqm8540.dts"
206CONFIG_ISA_DMA_API=y 220CONFIG_ISA_DMA_API=y
207 221
208# 222#
@@ -249,6 +263,7 @@ CONFIG_XFRM=y
249# CONFIG_XFRM_USER is not set 263# CONFIG_XFRM_USER is not set
250# CONFIG_XFRM_SUB_POLICY is not set 264# CONFIG_XFRM_SUB_POLICY is not set
251# CONFIG_XFRM_MIGRATE is not set 265# CONFIG_XFRM_MIGRATE is not set
266# CONFIG_XFRM_STATISTICS is not set
252# CONFIG_NET_KEY is not set 267# CONFIG_NET_KEY is not set
253CONFIG_INET=y 268CONFIG_INET=y
254CONFIG_IP_MULTICAST=y 269CONFIG_IP_MULTICAST=y
@@ -304,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
304# 319#
305# CONFIG_NET_PKTGEN is not set 320# CONFIG_NET_PKTGEN is not set
306# CONFIG_HAMRADIO is not set 321# CONFIG_HAMRADIO is not set
322# CONFIG_CAN is not set
307# CONFIG_IRDA is not set 323# CONFIG_IRDA is not set
308# CONFIG_BT is not set 324# CONFIG_BT is not set
309# CONFIG_AF_RXRPC is not set 325# CONFIG_AF_RXRPC is not set
@@ -335,6 +351,7 @@ CONFIG_MTD_CONCAT=y
335CONFIG_MTD_PARTITIONS=y 351CONFIG_MTD_PARTITIONS=y
336# CONFIG_MTD_REDBOOT_PARTS is not set 352# CONFIG_MTD_REDBOOT_PARTS is not set
337CONFIG_MTD_CMDLINE_PARTS=y 353CONFIG_MTD_CMDLINE_PARTS=y
354# CONFIG_MTD_OF_PARTS is not set
338 355
339# 356#
340# User Modules And Translation Layers 357# User Modules And Translation Layers
@@ -421,7 +438,7 @@ CONFIG_BLK_DEV_LOOP=y
421CONFIG_BLK_DEV_RAM=y 438CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 439CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=32768 440CONFIG_BLK_DEV_RAM_SIZE=32768
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 441# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 442# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set 443# CONFIG_ATA_OVER_ETH is not set
427CONFIG_MISC_DEVICES=y 444CONFIG_MISC_DEVICES=y
@@ -429,12 +446,14 @@ CONFIG_MISC_DEVICES=y
429# CONFIG_EEPROM_93CX6 is not set 446# CONFIG_EEPROM_93CX6 is not set
430# CONFIG_SGI_IOC4 is not set 447# CONFIG_SGI_IOC4 is not set
431# CONFIG_TIFM_CORE is not set 448# CONFIG_TIFM_CORE is not set
449# CONFIG_ENCLOSURE_SERVICES is not set
450CONFIG_HAVE_IDE=y
432CONFIG_IDE=y 451CONFIG_IDE=y
433CONFIG_IDE_MAX_HWIFS=4 452CONFIG_IDE_MAX_HWIFS=4
434CONFIG_BLK_DEV_IDE=y 453CONFIG_BLK_DEV_IDE=y
435 454
436# 455#
437# Please see Documentation/ide.txt for help/info on IDE drives 456# Please see Documentation/ide/ide.txt for help/info on IDE drives
438# 457#
439# CONFIG_BLK_DEV_IDE_SATA is not set 458# CONFIG_BLK_DEV_IDE_SATA is not set
440CONFIG_BLK_DEV_IDEDISK=y 459CONFIG_BLK_DEV_IDEDISK=y
@@ -450,12 +469,12 @@ CONFIG_IDE_PROC_FS=y
450# 469#
451CONFIG_IDE_GENERIC=y 470CONFIG_IDE_GENERIC=y
452# CONFIG_BLK_DEV_PLATFORM is not set 471# CONFIG_BLK_DEV_PLATFORM is not set
472CONFIG_BLK_DEV_IDEDMA_SFF=y
453 473
454# 474#
455# PCI IDE chipsets support 475# PCI IDE chipsets support
456# 476#
457CONFIG_BLK_DEV_IDEPCI=y 477CONFIG_BLK_DEV_IDEPCI=y
458CONFIG_IDEPCI_SHARE_IRQ=y
459CONFIG_IDEPCI_PCIBUS_ORDER=y 478CONFIG_IDEPCI_PCIBUS_ORDER=y
460# CONFIG_BLK_DEV_OFFBOARD is not set 479# CONFIG_BLK_DEV_OFFBOARD is not set
461CONFIG_BLK_DEV_GENERIC=y 480CONFIG_BLK_DEV_GENERIC=y
@@ -486,7 +505,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
486# CONFIG_BLK_DEV_TRM290 is not set 505# CONFIG_BLK_DEV_TRM290 is not set
487CONFIG_BLK_DEV_VIA82CXXX=y 506CONFIG_BLK_DEV_VIA82CXXX=y
488# CONFIG_BLK_DEV_TC86C001 is not set 507# CONFIG_BLK_DEV_TC86C001 is not set
489# CONFIG_IDE_ARM is not set
490CONFIG_BLK_DEV_IDEDMA=y 508CONFIG_BLK_DEV_IDEDMA=y
491CONFIG_IDE_ARCH_OBSOLETE_INIT=y 509CONFIG_IDE_ARCH_OBSOLETE_INIT=y
492# CONFIG_BLK_DEV_HD is not set 510# CONFIG_BLK_DEV_HD is not set
@@ -532,6 +550,7 @@ CONFIG_PHYLIB=y
532# CONFIG_SMSC_PHY is not set 550# CONFIG_SMSC_PHY is not set
533# CONFIG_BROADCOM_PHY is not set 551# CONFIG_BROADCOM_PHY is not set
534# CONFIG_ICPLUS_PHY is not set 552# CONFIG_ICPLUS_PHY is not set
553# CONFIG_REALTEK_PHY is not set
535# CONFIG_FIXED_PHY is not set 554# CONFIG_FIXED_PHY is not set
536# CONFIG_MDIO_BITBANG is not set 555# CONFIG_MDIO_BITBANG is not set
537CONFIG_NET_ETHERNET=y 556CONFIG_NET_ETHERNET=y
@@ -559,6 +578,7 @@ CONFIG_E100=y
559# CONFIG_NE2K_PCI is not set 578# CONFIG_NE2K_PCI is not set
560# CONFIG_8139CP is not set 579# CONFIG_8139CP is not set
561# CONFIG_8139TOO is not set 580# CONFIG_8139TOO is not set
581# CONFIG_R6040 is not set
562# CONFIG_SIS900 is not set 582# CONFIG_SIS900 is not set
563# CONFIG_EPIC100 is not set 583# CONFIG_EPIC100 is not set
564# CONFIG_SUNDANCE is not set 584# CONFIG_SUNDANCE is not set
@@ -570,7 +590,9 @@ CONFIG_NETDEV_1000=y
570# CONFIG_DL2K is not set 590# CONFIG_DL2K is not set
571# CONFIG_E1000 is not set 591# CONFIG_E1000 is not set
572# CONFIG_E1000E is not set 592# CONFIG_E1000E is not set
593# CONFIG_E1000E_ENABLED is not set
573# CONFIG_IP1000 is not set 594# CONFIG_IP1000 is not set
595# CONFIG_IGB is not set
574# CONFIG_NS83820 is not set 596# CONFIG_NS83820 is not set
575# CONFIG_HAMACHI is not set 597# CONFIG_HAMACHI is not set
576# CONFIG_YELLOWFIN is not set 598# CONFIG_YELLOWFIN is not set
@@ -597,6 +619,7 @@ CONFIG_NETDEV_10000=y
597# CONFIG_NIU is not set 619# CONFIG_NIU is not set
598# CONFIG_MLX4_CORE is not set 620# CONFIG_MLX4_CORE is not set
599# CONFIG_TEHUTI is not set 621# CONFIG_TEHUTI is not set
622# CONFIG_BNX2X is not set
600# CONFIG_TR is not set 623# CONFIG_TR is not set
601 624
602# 625#
@@ -609,7 +632,6 @@ CONFIG_NETDEV_10000=y
609# CONFIG_HIPPI is not set 632# CONFIG_HIPPI is not set
610# CONFIG_PPP is not set 633# CONFIG_PPP is not set
611# CONFIG_SLIP is not set 634# CONFIG_SLIP is not set
612# CONFIG_SHAPER is not set
613# CONFIG_NETCONSOLE is not set 635# CONFIG_NETCONSOLE is not set
614# CONFIG_NETPOLL is not set 636# CONFIG_NETPOLL is not set
615# CONFIG_NET_POLL_CONTROLLER is not set 637# CONFIG_NET_POLL_CONTROLLER is not set
@@ -652,6 +674,7 @@ CONFIG_INPUT=y
652# 674#
653# CONFIG_VT is not set 675# CONFIG_VT is not set
654# CONFIG_SERIAL_NONSTANDARD is not set 676# CONFIG_SERIAL_NONSTANDARD is not set
677# CONFIG_NOZOMI is not set
655 678
656# 679#
657# Serial drivers 680# Serial drivers
@@ -725,14 +748,12 @@ CONFIG_I2C_MPC=y
725# 748#
726# Miscellaneous I2C Chip support 749# Miscellaneous I2C Chip support
727# 750#
728CONFIG_SENSORS_DS1337=y
729# CONFIG_SENSORS_DS1374 is not set
730# CONFIG_DS1682 is not set 751# CONFIG_DS1682 is not set
731# CONFIG_SENSORS_EEPROM is not set 752# CONFIG_SENSORS_EEPROM is not set
732# CONFIG_SENSORS_PCF8574 is not set 753# CONFIG_SENSORS_PCF8574 is not set
733# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_PCF8575 is not set
734# CONFIG_SENSORS_PCF8591 is not set 755# CONFIG_SENSORS_PCF8591 is not set
735# CONFIG_SENSORS_M41T00 is not set 756# CONFIG_TPS65010 is not set
736# CONFIG_SENSORS_MAX6875 is not set 757# CONFIG_SENSORS_MAX6875 is not set
737# CONFIG_SENSORS_TSL2550 is not set 758# CONFIG_SENSORS_TSL2550 is not set
738# CONFIG_I2C_DEBUG_CORE is not set 759# CONFIG_I2C_DEBUG_CORE is not set
@@ -757,6 +778,7 @@ CONFIG_HWMON=y
757# CONFIG_SENSORS_ADM1031 is not set 778# CONFIG_SENSORS_ADM1031 is not set
758# CONFIG_SENSORS_ADM9240 is not set 779# CONFIG_SENSORS_ADM9240 is not set
759# CONFIG_SENSORS_ADT7470 is not set 780# CONFIG_SENSORS_ADT7470 is not set
781# CONFIG_SENSORS_ADT7473 is not set
760# CONFIG_SENSORS_ATXP1 is not set 782# CONFIG_SENSORS_ATXP1 is not set
761# CONFIG_SENSORS_DS1621 is not set 783# CONFIG_SENSORS_DS1621 is not set
762# CONFIG_SENSORS_I5K_AMB is not set 784# CONFIG_SENSORS_I5K_AMB is not set
@@ -786,6 +808,7 @@ CONFIG_SENSORS_LM75=y
786# CONFIG_SENSORS_SMSC47M1 is not set 808# CONFIG_SENSORS_SMSC47M1 is not set
787# CONFIG_SENSORS_SMSC47M192 is not set 809# CONFIG_SENSORS_SMSC47M192 is not set
788# CONFIG_SENSORS_SMSC47B397 is not set 810# CONFIG_SENSORS_SMSC47B397 is not set
811# CONFIG_SENSORS_ADS7828 is not set
789# CONFIG_SENSORS_THMC50 is not set 812# CONFIG_SENSORS_THMC50 is not set
790# CONFIG_SENSORS_VIA686A is not set 813# CONFIG_SENSORS_VIA686A is not set
791# CONFIG_SENSORS_VT1211 is not set 814# CONFIG_SENSORS_VT1211 is not set
@@ -795,9 +818,11 @@ CONFIG_SENSORS_LM75=y
795# CONFIG_SENSORS_W83792D is not set 818# CONFIG_SENSORS_W83792D is not set
796# CONFIG_SENSORS_W83793 is not set 819# CONFIG_SENSORS_W83793 is not set
797# CONFIG_SENSORS_W83L785TS is not set 820# CONFIG_SENSORS_W83L785TS is not set
821# CONFIG_SENSORS_W83L786NG is not set
798# CONFIG_SENSORS_W83627HF is not set 822# CONFIG_SENSORS_W83627HF is not set
799# CONFIG_SENSORS_W83627EHF is not set 823# CONFIG_SENSORS_W83627EHF is not set
800CONFIG_HWMON_DEBUG_CHIP=y 824CONFIG_HWMON_DEBUG_CHIP=y
825# CONFIG_THERMAL is not set
801# CONFIG_WATCHDOG is not set 826# CONFIG_WATCHDOG is not set
802 827
803# 828#
@@ -850,16 +875,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
850# 875#
851# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 876# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
852# 877#
853
854#
855# USB Gadget Support
856#
857# CONFIG_USB_GADGET is not set 878# CONFIG_USB_GADGET is not set
858# CONFIG_MMC is not set 879# CONFIG_MMC is not set
880# CONFIG_MEMSTICK is not set
859# CONFIG_NEW_LEDS is not set 881# CONFIG_NEW_LEDS is not set
860# CONFIG_INFINIBAND is not set 882# CONFIG_INFINIBAND is not set
861# CONFIG_EDAC is not set 883# CONFIG_EDAC is not set
862# CONFIG_RTC_CLASS is not set 884# CONFIG_RTC_CLASS is not set
885# CONFIG_DMADEVICES is not set
863 886
864# 887#
865# Userspace I/O 888# Userspace I/O
@@ -885,12 +908,10 @@ CONFIG_FS_MBCACHE=y
885# CONFIG_XFS_FS is not set 908# CONFIG_XFS_FS is not set
886# CONFIG_GFS2_FS is not set 909# CONFIG_GFS2_FS is not set
887# CONFIG_OCFS2_FS is not set 910# CONFIG_OCFS2_FS is not set
888# CONFIG_MINIX_FS is not set 911CONFIG_DNOTIFY=y
889# CONFIG_ROMFS_FS is not set
890CONFIG_INOTIFY=y 912CONFIG_INOTIFY=y
891CONFIG_INOTIFY_USER=y 913CONFIG_INOTIFY_USER=y
892# CONFIG_QUOTA is not set 914# CONFIG_QUOTA is not set
893CONFIG_DNOTIFY=y
894# CONFIG_AUTOFS_FS is not set 915# CONFIG_AUTOFS_FS is not set
895# CONFIG_AUTOFS4_FS is not set 916# CONFIG_AUTOFS4_FS is not set
896# CONFIG_FUSE_FS is not set 917# CONFIG_FUSE_FS is not set
@@ -943,8 +964,10 @@ CONFIG_JFFS2_RTIME=y
943# CONFIG_JFFS2_RUBIN is not set 964# CONFIG_JFFS2_RUBIN is not set
944CONFIG_CRAMFS=y 965CONFIG_CRAMFS=y
945# CONFIG_VXFS_FS is not set 966# CONFIG_VXFS_FS is not set
967# CONFIG_MINIX_FS is not set
946# CONFIG_HPFS_FS is not set 968# CONFIG_HPFS_FS is not set
947# CONFIG_QNX4FS_FS is not set 969# CONFIG_QNX4FS_FS is not set
970# CONFIG_ROMFS_FS is not set
948# CONFIG_SYSV_FS is not set 971# CONFIG_SYSV_FS is not set
949# CONFIG_UFS_FS is not set 972# CONFIG_UFS_FS is not set
950CONFIG_NETWORK_FILESYSTEMS=y 973CONFIG_NETWORK_FILESYSTEMS=y
@@ -1002,9 +1025,6 @@ CONFIG_PLIST=y
1002CONFIG_HAS_IOMEM=y 1025CONFIG_HAS_IOMEM=y
1003CONFIG_HAS_IOPORT=y 1026CONFIG_HAS_IOPORT=y
1004CONFIG_HAS_DMA=y 1027CONFIG_HAS_DMA=y
1005CONFIG_INSTRUMENTATION=y
1006# CONFIG_PROFILING is not set
1007# CONFIG_MARKERS is not set
1008 1028
1009# 1029#
1010# Kernel hacking 1030# Kernel hacking
@@ -1018,6 +1038,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1018# CONFIG_HEADERS_CHECK is not set 1038# CONFIG_HEADERS_CHECK is not set
1019# CONFIG_DEBUG_KERNEL is not set 1039# CONFIG_DEBUG_KERNEL is not set
1020# CONFIG_SLUB_DEBUG_ON is not set 1040# CONFIG_SLUB_DEBUG_ON is not set
1041# CONFIG_SLUB_STATS is not set
1021# CONFIG_DEBUG_BUGVERBOSE is not set 1042# CONFIG_DEBUG_BUGVERBOSE is not set
1022# CONFIG_SAMPLES is not set 1043# CONFIG_SAMPLES is not set
1023# CONFIG_PPC_EARLY_DEBUG is not set 1044# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1028,5 +1049,49 @@ CONFIG_ENABLE_MUST_CHECK=y
1028# CONFIG_KEYS is not set 1049# CONFIG_KEYS is not set
1029# CONFIG_SECURITY is not set 1050# CONFIG_SECURITY is not set
1030# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1051# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1031# CONFIG_CRYPTO is not set 1052CONFIG_CRYPTO=y
1053# CONFIG_CRYPTO_SEQIV is not set
1054# CONFIG_CRYPTO_MANAGER is not set
1055# CONFIG_CRYPTO_HMAC is not set
1056# CONFIG_CRYPTO_XCBC is not set
1057# CONFIG_CRYPTO_NULL is not set
1058# CONFIG_CRYPTO_MD4 is not set
1059# CONFIG_CRYPTO_MD5 is not set
1060# CONFIG_CRYPTO_SHA1 is not set
1061# CONFIG_CRYPTO_SHA256 is not set
1062# CONFIG_CRYPTO_SHA512 is not set
1063# CONFIG_CRYPTO_WP512 is not set
1064# CONFIG_CRYPTO_TGR192 is not set
1065# CONFIG_CRYPTO_GF128MUL is not set
1066# CONFIG_CRYPTO_ECB is not set
1067# CONFIG_CRYPTO_CBC is not set
1068# CONFIG_CRYPTO_PCBC is not set
1069# CONFIG_CRYPTO_LRW is not set
1070# CONFIG_CRYPTO_XTS is not set
1071# CONFIG_CRYPTO_CTR is not set
1072# CONFIG_CRYPTO_GCM is not set
1073# CONFIG_CRYPTO_CCM is not set
1074# CONFIG_CRYPTO_CRYPTD is not set
1075# CONFIG_CRYPTO_DES is not set
1076# CONFIG_CRYPTO_FCRYPT is not set
1077# CONFIG_CRYPTO_BLOWFISH is not set
1078# CONFIG_CRYPTO_TWOFISH is not set
1079# CONFIG_CRYPTO_SERPENT is not set
1080# CONFIG_CRYPTO_AES is not set
1081# CONFIG_CRYPTO_CAST5 is not set
1082# CONFIG_CRYPTO_CAST6 is not set
1083# CONFIG_CRYPTO_TEA is not set
1084# CONFIG_CRYPTO_ARC4 is not set
1085# CONFIG_CRYPTO_KHAZAD is not set
1086# CONFIG_CRYPTO_ANUBIS is not set
1087# CONFIG_CRYPTO_SEED is not set
1088# CONFIG_CRYPTO_SALSA20 is not set
1089# CONFIG_CRYPTO_DEFLATE is not set
1090# CONFIG_CRYPTO_MICHAEL_MIC is not set
1091# CONFIG_CRYPTO_CRC32C is not set
1092# CONFIG_CRYPTO_CAMELLIA is not set
1093# CONFIG_CRYPTO_AUTHENC is not set
1094# CONFIG_CRYPTO_LZO is not set
1095CONFIG_CRYPTO_HW=y
1096# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1032# CONFIG_PPC_CLOCK is not set 1097# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/tqm8541_defconfig b/arch/powerpc/configs/tqm8541_defconfig
index 1aff35f0c53a..cbf6ad2d71da 100644
--- a/arch/powerpc/configs/tqm8541_defconfig
+++ b/arch/powerpc/configs/tqm8541_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Fri Jan 25 01:31:28 2008 4# Mon Mar 24 08:48:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +92,13 @@ CONFIG_SYSCTL_SYSCALL=y
89CONFIG_PRINTK=y 92CONFIG_PRINTK=y
90CONFIG_BUG=y 93CONFIG_BUG=y
91CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 97CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
95# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
96CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 103CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +106,12 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
102CONFIG_SLUB=y 107CONFIG_SLUB=y
103# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
104CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -124,15 +135,17 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
127 139
128# 140#
129# Platform support 141# Platform support
130# 142#
131# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 147# CONFIG_PQ2ADS is not set
148CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 149# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 150# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 151# CONFIG_MPC85xx_CDS is not set
@@ -143,8 +156,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
143CONFIG_TQM8541=y 156CONFIG_TQM8541=y
144# CONFIG_TQM8555 is not set 157# CONFIG_TQM8555 is not set
145# CONFIG_TQM8560 is not set 158# CONFIG_TQM8560 is not set
159# CONFIG_SBC8548 is not set
160# CONFIG_SBC8560 is not set
146CONFIG_TQM85xx=y 161CONFIG_TQM85xx=y
147CONFIG_MPC85xx=y
148# CONFIG_IPIC is not set 162# CONFIG_IPIC is not set
149CONFIG_MPIC=y 163CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 164# CONFIG_MPIC_WEIRD is not set
@@ -174,13 +188,17 @@ CONFIG_HZ_250=y
174# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
176CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
180CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
182CONFIG_MATH_EMULATION=y 197CONFIG_MATH_EMULATION=y
198# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
186CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,11 +217,7 @@ CONFIG_VIRT_TO_BUS=y
199# CONFIG_PROC_DEVICETREE is not set 217# CONFIG_PROC_DEVICETREE is not set
200# CONFIG_CMDLINE_BOOL is not set 218# CONFIG_CMDLINE_BOOL is not set
201# CONFIG_PM is not set 219# CONFIG_PM is not set
202CONFIG_SUSPEND_UP_POSSIBLE=y
203CONFIG_HIBERNATION_UP_POSSIBLE=y
204CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
205CONFIG_WANT_DEVICE_TREE=y
206CONFIG_DEVICE_TREE="tqm8541.dts"
207CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
208 222
209# 223#
@@ -250,6 +264,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 264# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 265# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 266# CONFIG_XFRM_MIGRATE is not set
267# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 268# CONFIG_NET_KEY is not set
254CONFIG_INET=y 269CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 270CONFIG_IP_MULTICAST=y
@@ -305,6 +320,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 320#
306# CONFIG_NET_PKTGEN is not set 321# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 322# CONFIG_HAMRADIO is not set
323# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 324# CONFIG_IRDA is not set
309# CONFIG_BT is not set 325# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 326# CONFIG_AF_RXRPC is not set
@@ -336,6 +352,7 @@ CONFIG_MTD_CONCAT=y
336CONFIG_MTD_PARTITIONS=y 352CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 353# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 354CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set
339 356
340# 357#
341# User Modules And Translation Layers 358# User Modules And Translation Layers
@@ -422,7 +439,7 @@ CONFIG_BLK_DEV_LOOP=y
422CONFIG_BLK_DEV_RAM=y 439CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=32768 441CONFIG_BLK_DEV_RAM_SIZE=32768
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 442# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
428CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
@@ -430,12 +447,14 @@ CONFIG_MISC_DEVICES=y
430# CONFIG_EEPROM_93CX6 is not set 447# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 448# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 449# CONFIG_TIFM_CORE is not set
450# CONFIG_ENCLOSURE_SERVICES is not set
451CONFIG_HAVE_IDE=y
433CONFIG_IDE=y 452CONFIG_IDE=y
434CONFIG_IDE_MAX_HWIFS=4 453CONFIG_IDE_MAX_HWIFS=4
435CONFIG_BLK_DEV_IDE=y 454CONFIG_BLK_DEV_IDE=y
436 455
437# 456#
438# Please see Documentation/ide.txt for help/info on IDE drives 457# Please see Documentation/ide/ide.txt for help/info on IDE drives
439# 458#
440# CONFIG_BLK_DEV_IDE_SATA is not set 459# CONFIG_BLK_DEV_IDE_SATA is not set
441CONFIG_BLK_DEV_IDEDISK=y 460CONFIG_BLK_DEV_IDEDISK=y
@@ -451,12 +470,12 @@ CONFIG_IDE_PROC_FS=y
451# 470#
452CONFIG_IDE_GENERIC=y 471CONFIG_IDE_GENERIC=y
453# CONFIG_BLK_DEV_PLATFORM is not set 472# CONFIG_BLK_DEV_PLATFORM is not set
473CONFIG_BLK_DEV_IDEDMA_SFF=y
454 474
455# 475#
456# PCI IDE chipsets support 476# PCI IDE chipsets support
457# 477#
458CONFIG_BLK_DEV_IDEPCI=y 478CONFIG_BLK_DEV_IDEPCI=y
459CONFIG_IDEPCI_SHARE_IRQ=y
460CONFIG_IDEPCI_PCIBUS_ORDER=y 479CONFIG_IDEPCI_PCIBUS_ORDER=y
461# CONFIG_BLK_DEV_OFFBOARD is not set 480# CONFIG_BLK_DEV_OFFBOARD is not set
462CONFIG_BLK_DEV_GENERIC=y 481CONFIG_BLK_DEV_GENERIC=y
@@ -487,7 +506,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
487# CONFIG_BLK_DEV_TRM290 is not set 506# CONFIG_BLK_DEV_TRM290 is not set
488CONFIG_BLK_DEV_VIA82CXXX=y 507CONFIG_BLK_DEV_VIA82CXXX=y
489# CONFIG_BLK_DEV_TC86C001 is not set 508# CONFIG_BLK_DEV_TC86C001 is not set
490# CONFIG_IDE_ARM is not set
491CONFIG_BLK_DEV_IDEDMA=y 509CONFIG_BLK_DEV_IDEDMA=y
492CONFIG_IDE_ARCH_OBSOLETE_INIT=y 510CONFIG_IDE_ARCH_OBSOLETE_INIT=y
493# CONFIG_BLK_DEV_HD is not set 511# CONFIG_BLK_DEV_HD is not set
@@ -533,6 +551,7 @@ CONFIG_PHYLIB=y
533# CONFIG_SMSC_PHY is not set 551# CONFIG_SMSC_PHY is not set
534# CONFIG_BROADCOM_PHY is not set 552# CONFIG_BROADCOM_PHY is not set
535# CONFIG_ICPLUS_PHY is not set 553# CONFIG_ICPLUS_PHY is not set
554# CONFIG_REALTEK_PHY is not set
536# CONFIG_FIXED_PHY is not set 555# CONFIG_FIXED_PHY is not set
537# CONFIG_MDIO_BITBANG is not set 556# CONFIG_MDIO_BITBANG is not set
538CONFIG_NET_ETHERNET=y 557CONFIG_NET_ETHERNET=y
@@ -560,6 +579,7 @@ CONFIG_E100=y
560# CONFIG_NE2K_PCI is not set 579# CONFIG_NE2K_PCI is not set
561# CONFIG_8139CP is not set 580# CONFIG_8139CP is not set
562# CONFIG_8139TOO is not set 581# CONFIG_8139TOO is not set
582# CONFIG_R6040 is not set
563# CONFIG_SIS900 is not set 583# CONFIG_SIS900 is not set
564# CONFIG_EPIC100 is not set 584# CONFIG_EPIC100 is not set
565# CONFIG_SUNDANCE is not set 585# CONFIG_SUNDANCE is not set
@@ -572,7 +592,9 @@ CONFIG_NETDEV_1000=y
572# CONFIG_DL2K is not set 592# CONFIG_DL2K is not set
573# CONFIG_E1000 is not set 593# CONFIG_E1000 is not set
574# CONFIG_E1000E is not set 594# CONFIG_E1000E is not set
595# CONFIG_E1000E_ENABLED is not set
575# CONFIG_IP1000 is not set 596# CONFIG_IP1000 is not set
597# CONFIG_IGB is not set
576# CONFIG_NS83820 is not set 598# CONFIG_NS83820 is not set
577# CONFIG_HAMACHI is not set 599# CONFIG_HAMACHI is not set
578# CONFIG_YELLOWFIN is not set 600# CONFIG_YELLOWFIN is not set
@@ -599,6 +621,7 @@ CONFIG_NETDEV_10000=y
599# CONFIG_NIU is not set 621# CONFIG_NIU is not set
600# CONFIG_MLX4_CORE is not set 622# CONFIG_MLX4_CORE is not set
601# CONFIG_TEHUTI is not set 623# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set
602# CONFIG_TR is not set 625# CONFIG_TR is not set
603 626
604# 627#
@@ -611,7 +634,6 @@ CONFIG_NETDEV_10000=y
611# CONFIG_HIPPI is not set 634# CONFIG_HIPPI is not set
612# CONFIG_PPP is not set 635# CONFIG_PPP is not set
613# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
614# CONFIG_SHAPER is not set
615# CONFIG_NETCONSOLE is not set 637# CONFIG_NETCONSOLE is not set
616# CONFIG_NETPOLL is not set 638# CONFIG_NETPOLL is not set
617# CONFIG_NET_POLL_CONTROLLER is not set 639# CONFIG_NET_POLL_CONTROLLER is not set
@@ -654,6 +676,7 @@ CONFIG_INPUT=y
654# 676#
655# CONFIG_VT is not set 677# CONFIG_VT is not set
656# CONFIG_SERIAL_NONSTANDARD is not set 678# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set
657 680
658# 681#
659# Serial drivers 682# Serial drivers
@@ -735,14 +758,12 @@ CONFIG_I2C_MPC=y
735# 758#
736# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
737# 760#
738CONFIG_SENSORS_DS1337=y
739# CONFIG_SENSORS_DS1374 is not set
740# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
741# CONFIG_SENSORS_EEPROM is not set 762# CONFIG_SENSORS_EEPROM is not set
742# CONFIG_SENSORS_PCF8574 is not set 763# CONFIG_SENSORS_PCF8574 is not set
743# CONFIG_SENSORS_PCA9539 is not set 764# CONFIG_PCF8575 is not set
744# CONFIG_SENSORS_PCF8591 is not set 765# CONFIG_SENSORS_PCF8591 is not set
745# CONFIG_SENSORS_M41T00 is not set 766# CONFIG_TPS65010 is not set
746# CONFIG_SENSORS_MAX6875 is not set 767# CONFIG_SENSORS_MAX6875 is not set
747# CONFIG_SENSORS_TSL2550 is not set 768# CONFIG_SENSORS_TSL2550 is not set
748# CONFIG_I2C_DEBUG_CORE is not set 769# CONFIG_I2C_DEBUG_CORE is not set
@@ -767,6 +788,7 @@ CONFIG_HWMON=y
767# CONFIG_SENSORS_ADM1031 is not set 788# CONFIG_SENSORS_ADM1031 is not set
768# CONFIG_SENSORS_ADM9240 is not set 789# CONFIG_SENSORS_ADM9240 is not set
769# CONFIG_SENSORS_ADT7470 is not set 790# CONFIG_SENSORS_ADT7470 is not set
791# CONFIG_SENSORS_ADT7473 is not set
770# CONFIG_SENSORS_ATXP1 is not set 792# CONFIG_SENSORS_ATXP1 is not set
771# CONFIG_SENSORS_DS1621 is not set 793# CONFIG_SENSORS_DS1621 is not set
772# CONFIG_SENSORS_I5K_AMB is not set 794# CONFIG_SENSORS_I5K_AMB is not set
@@ -796,6 +818,7 @@ CONFIG_SENSORS_LM75=y
796# CONFIG_SENSORS_SMSC47M1 is not set 818# CONFIG_SENSORS_SMSC47M1 is not set
797# CONFIG_SENSORS_SMSC47M192 is not set 819# CONFIG_SENSORS_SMSC47M192 is not set
798# CONFIG_SENSORS_SMSC47B397 is not set 820# CONFIG_SENSORS_SMSC47B397 is not set
821# CONFIG_SENSORS_ADS7828 is not set
799# CONFIG_SENSORS_THMC50 is not set 822# CONFIG_SENSORS_THMC50 is not set
800# CONFIG_SENSORS_VIA686A is not set 823# CONFIG_SENSORS_VIA686A is not set
801# CONFIG_SENSORS_VT1211 is not set 824# CONFIG_SENSORS_VT1211 is not set
@@ -805,9 +828,11 @@ CONFIG_SENSORS_LM75=y
805# CONFIG_SENSORS_W83792D is not set 828# CONFIG_SENSORS_W83792D is not set
806# CONFIG_SENSORS_W83793 is not set 829# CONFIG_SENSORS_W83793 is not set
807# CONFIG_SENSORS_W83L785TS is not set 830# CONFIG_SENSORS_W83L785TS is not set
831# CONFIG_SENSORS_W83L786NG is not set
808# CONFIG_SENSORS_W83627HF is not set 832# CONFIG_SENSORS_W83627HF is not set
809# CONFIG_SENSORS_W83627EHF is not set 833# CONFIG_SENSORS_W83627EHF is not set
810CONFIG_HWMON_DEBUG_CHIP=y 834CONFIG_HWMON_DEBUG_CHIP=y
835# CONFIG_THERMAL is not set
811# CONFIG_WATCHDOG is not set 836# CONFIG_WATCHDOG is not set
812 837
813# 838#
@@ -860,16 +885,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
860# 885#
861# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
862# 887#
863
864#
865# USB Gadget Support
866#
867# CONFIG_USB_GADGET is not set 888# CONFIG_USB_GADGET is not set
868# CONFIG_MMC is not set 889# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set
869# CONFIG_NEW_LEDS is not set 891# CONFIG_NEW_LEDS is not set
870# CONFIG_INFINIBAND is not set 892# CONFIG_INFINIBAND is not set
871# CONFIG_EDAC is not set 893# CONFIG_EDAC is not set
872# CONFIG_RTC_CLASS is not set 894# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set
873 896
874# 897#
875# Userspace I/O 898# Userspace I/O
@@ -895,12 +918,10 @@ CONFIG_FS_MBCACHE=y
895# CONFIG_XFS_FS is not set 918# CONFIG_XFS_FS is not set
896# CONFIG_GFS2_FS is not set 919# CONFIG_GFS2_FS is not set
897# CONFIG_OCFS2_FS is not set 920# CONFIG_OCFS2_FS is not set
898# CONFIG_MINIX_FS is not set 921CONFIG_DNOTIFY=y
899# CONFIG_ROMFS_FS is not set
900CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
901CONFIG_INOTIFY_USER=y 923CONFIG_INOTIFY_USER=y
902# CONFIG_QUOTA is not set 924# CONFIG_QUOTA is not set
903CONFIG_DNOTIFY=y
904# CONFIG_AUTOFS_FS is not set 925# CONFIG_AUTOFS_FS is not set
905# CONFIG_AUTOFS4_FS is not set 926# CONFIG_AUTOFS4_FS is not set
906# CONFIG_FUSE_FS is not set 927# CONFIG_FUSE_FS is not set
@@ -953,8 +974,10 @@ CONFIG_JFFS2_RTIME=y
953# CONFIG_JFFS2_RUBIN is not set 974# CONFIG_JFFS2_RUBIN is not set
954CONFIG_CRAMFS=y 975CONFIG_CRAMFS=y
955# CONFIG_VXFS_FS is not set 976# CONFIG_VXFS_FS is not set
977# CONFIG_MINIX_FS is not set
956# CONFIG_HPFS_FS is not set 978# CONFIG_HPFS_FS is not set
957# CONFIG_QNX4FS_FS is not set 979# CONFIG_QNX4FS_FS is not set
980# CONFIG_ROMFS_FS is not set
958# CONFIG_SYSV_FS is not set 981# CONFIG_SYSV_FS is not set
959# CONFIG_UFS_FS is not set 982# CONFIG_UFS_FS is not set
960CONFIG_NETWORK_FILESYSTEMS=y 983CONFIG_NETWORK_FILESYSTEMS=y
@@ -1012,9 +1035,6 @@ CONFIG_PLIST=y
1012CONFIG_HAS_IOMEM=y 1035CONFIG_HAS_IOMEM=y
1013CONFIG_HAS_IOPORT=y 1036CONFIG_HAS_IOPORT=y
1014CONFIG_HAS_DMA=y 1037CONFIG_HAS_DMA=y
1015CONFIG_INSTRUMENTATION=y
1016# CONFIG_PROFILING is not set
1017# CONFIG_MARKERS is not set
1018 1038
1019# 1039#
1020# Kernel hacking 1040# Kernel hacking
@@ -1028,6 +1048,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1028# CONFIG_HEADERS_CHECK is not set 1048# CONFIG_HEADERS_CHECK is not set
1029# CONFIG_DEBUG_KERNEL is not set 1049# CONFIG_DEBUG_KERNEL is not set
1030# CONFIG_SLUB_DEBUG_ON is not set 1050# CONFIG_SLUB_DEBUG_ON is not set
1051# CONFIG_SLUB_STATS is not set
1031# CONFIG_DEBUG_BUGVERBOSE is not set 1052# CONFIG_DEBUG_BUGVERBOSE is not set
1032# CONFIG_SAMPLES is not set 1053# CONFIG_SAMPLES is not set
1033# CONFIG_KGDB_CONSOLE is not set 1054# CONFIG_KGDB_CONSOLE is not set
@@ -1039,6 +1060,50 @@ CONFIG_ENABLE_MUST_CHECK=y
1039# CONFIG_KEYS is not set 1060# CONFIG_KEYS is not set
1040# CONFIG_SECURITY is not set 1061# CONFIG_SECURITY is not set
1041# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1042# CONFIG_CRYPTO is not set 1063CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set
1065# CONFIG_CRYPTO_MANAGER is not set
1066# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set
1069# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set
1071# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_ECB is not set
1078# CONFIG_CRYPTO_CBC is not set
1079# CONFIG_CRYPTO_PCBC is not set
1080# CONFIG_CRYPTO_LRW is not set
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set
1092# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set
1095# CONFIG_CRYPTO_ARC4 is not set
1096# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set
1100# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1043# CONFIG_PPC_CLOCK is not set 1108# CONFIG_PPC_CLOCK is not set
1044CONFIG_PPC_LIB_RHEAP=y 1109CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/tqm8555_defconfig b/arch/powerpc/configs/tqm8555_defconfig
index a3af2262128b..bbff962c8472 100644
--- a/arch/powerpc/configs/tqm8555_defconfig
+++ b/arch/powerpc/configs/tqm8555_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Fri Jan 25 01:15:24 2008 4# Mon Mar 24 08:48:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +92,13 @@ CONFIG_SYSCTL_SYSCALL=y
89CONFIG_PRINTK=y 92CONFIG_PRINTK=y
90CONFIG_BUG=y 93CONFIG_BUG=y
91CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 97CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
95# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
96CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 103CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +106,12 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
102CONFIG_SLUB=y 107CONFIG_SLUB=y
103# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
104CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -124,15 +135,17 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
127 139
128# 140#
129# Platform support 141# Platform support
130# 142#
131# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 147# CONFIG_PQ2ADS is not set
148CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 149# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 150# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 151# CONFIG_MPC85xx_CDS is not set
@@ -143,8 +156,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
143# CONFIG_TQM8541 is not set 156# CONFIG_TQM8541 is not set
144CONFIG_TQM8555=y 157CONFIG_TQM8555=y
145# CONFIG_TQM8560 is not set 158# CONFIG_TQM8560 is not set
159# CONFIG_SBC8548 is not set
160# CONFIG_SBC8560 is not set
146CONFIG_TQM85xx=y 161CONFIG_TQM85xx=y
147CONFIG_MPC85xx=y
148# CONFIG_IPIC is not set 162# CONFIG_IPIC is not set
149CONFIG_MPIC=y 163CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 164# CONFIG_MPIC_WEIRD is not set
@@ -174,13 +188,17 @@ CONFIG_HZ_250=y
174# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
176CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
180CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
182CONFIG_MATH_EMULATION=y 197CONFIG_MATH_EMULATION=y
198# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
186CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,11 +217,7 @@ CONFIG_VIRT_TO_BUS=y
199# CONFIG_PROC_DEVICETREE is not set 217# CONFIG_PROC_DEVICETREE is not set
200# CONFIG_CMDLINE_BOOL is not set 218# CONFIG_CMDLINE_BOOL is not set
201# CONFIG_PM is not set 219# CONFIG_PM is not set
202CONFIG_SUSPEND_UP_POSSIBLE=y
203CONFIG_HIBERNATION_UP_POSSIBLE=y
204CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
205CONFIG_WANT_DEVICE_TREE=y
206CONFIG_DEVICE_TREE="tqm8555.dts"
207CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
208 222
209# 223#
@@ -250,6 +264,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 264# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 265# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 266# CONFIG_XFRM_MIGRATE is not set
267# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 268# CONFIG_NET_KEY is not set
254CONFIG_INET=y 269CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 270CONFIG_IP_MULTICAST=y
@@ -305,6 +320,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 320#
306# CONFIG_NET_PKTGEN is not set 321# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 322# CONFIG_HAMRADIO is not set
323# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 324# CONFIG_IRDA is not set
309# CONFIG_BT is not set 325# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 326# CONFIG_AF_RXRPC is not set
@@ -336,6 +352,7 @@ CONFIG_MTD_CONCAT=y
336CONFIG_MTD_PARTITIONS=y 352CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 353# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 354CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set
339 356
340# 357#
341# User Modules And Translation Layers 358# User Modules And Translation Layers
@@ -422,7 +439,7 @@ CONFIG_BLK_DEV_LOOP=y
422CONFIG_BLK_DEV_RAM=y 439CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=32768 441CONFIG_BLK_DEV_RAM_SIZE=32768
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 442# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
428CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
@@ -430,12 +447,14 @@ CONFIG_MISC_DEVICES=y
430# CONFIG_EEPROM_93CX6 is not set 447# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 448# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 449# CONFIG_TIFM_CORE is not set
450# CONFIG_ENCLOSURE_SERVICES is not set
451CONFIG_HAVE_IDE=y
433CONFIG_IDE=y 452CONFIG_IDE=y
434CONFIG_IDE_MAX_HWIFS=4 453CONFIG_IDE_MAX_HWIFS=4
435CONFIG_BLK_DEV_IDE=y 454CONFIG_BLK_DEV_IDE=y
436 455
437# 456#
438# Please see Documentation/ide.txt for help/info on IDE drives 457# Please see Documentation/ide/ide.txt for help/info on IDE drives
439# 458#
440# CONFIG_BLK_DEV_IDE_SATA is not set 459# CONFIG_BLK_DEV_IDE_SATA is not set
441CONFIG_BLK_DEV_IDEDISK=y 460CONFIG_BLK_DEV_IDEDISK=y
@@ -451,12 +470,12 @@ CONFIG_IDE_PROC_FS=y
451# 470#
452CONFIG_IDE_GENERIC=y 471CONFIG_IDE_GENERIC=y
453# CONFIG_BLK_DEV_PLATFORM is not set 472# CONFIG_BLK_DEV_PLATFORM is not set
473CONFIG_BLK_DEV_IDEDMA_SFF=y
454 474
455# 475#
456# PCI IDE chipsets support 476# PCI IDE chipsets support
457# 477#
458CONFIG_BLK_DEV_IDEPCI=y 478CONFIG_BLK_DEV_IDEPCI=y
459CONFIG_IDEPCI_SHARE_IRQ=y
460CONFIG_IDEPCI_PCIBUS_ORDER=y 479CONFIG_IDEPCI_PCIBUS_ORDER=y
461# CONFIG_BLK_DEV_OFFBOARD is not set 480# CONFIG_BLK_DEV_OFFBOARD is not set
462CONFIG_BLK_DEV_GENERIC=y 481CONFIG_BLK_DEV_GENERIC=y
@@ -487,7 +506,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
487# CONFIG_BLK_DEV_TRM290 is not set 506# CONFIG_BLK_DEV_TRM290 is not set
488CONFIG_BLK_DEV_VIA82CXXX=y 507CONFIG_BLK_DEV_VIA82CXXX=y
489# CONFIG_BLK_DEV_TC86C001 is not set 508# CONFIG_BLK_DEV_TC86C001 is not set
490# CONFIG_IDE_ARM is not set
491CONFIG_BLK_DEV_IDEDMA=y 509CONFIG_BLK_DEV_IDEDMA=y
492CONFIG_IDE_ARCH_OBSOLETE_INIT=y 510CONFIG_IDE_ARCH_OBSOLETE_INIT=y
493# CONFIG_BLK_DEV_HD is not set 511# CONFIG_BLK_DEV_HD is not set
@@ -533,6 +551,7 @@ CONFIG_PHYLIB=y
533# CONFIG_SMSC_PHY is not set 551# CONFIG_SMSC_PHY is not set
534# CONFIG_BROADCOM_PHY is not set 552# CONFIG_BROADCOM_PHY is not set
535# CONFIG_ICPLUS_PHY is not set 553# CONFIG_ICPLUS_PHY is not set
554# CONFIG_REALTEK_PHY is not set
536# CONFIG_FIXED_PHY is not set 555# CONFIG_FIXED_PHY is not set
537# CONFIG_MDIO_BITBANG is not set 556# CONFIG_MDIO_BITBANG is not set
538CONFIG_NET_ETHERNET=y 557CONFIG_NET_ETHERNET=y
@@ -560,6 +579,7 @@ CONFIG_E100=y
560# CONFIG_NE2K_PCI is not set 579# CONFIG_NE2K_PCI is not set
561# CONFIG_8139CP is not set 580# CONFIG_8139CP is not set
562# CONFIG_8139TOO is not set 581# CONFIG_8139TOO is not set
582# CONFIG_R6040 is not set
563# CONFIG_SIS900 is not set 583# CONFIG_SIS900 is not set
564# CONFIG_EPIC100 is not set 584# CONFIG_EPIC100 is not set
565# CONFIG_SUNDANCE is not set 585# CONFIG_SUNDANCE is not set
@@ -572,7 +592,9 @@ CONFIG_NETDEV_1000=y
572# CONFIG_DL2K is not set 592# CONFIG_DL2K is not set
573# CONFIG_E1000 is not set 593# CONFIG_E1000 is not set
574# CONFIG_E1000E is not set 594# CONFIG_E1000E is not set
595# CONFIG_E1000E_ENABLED is not set
575# CONFIG_IP1000 is not set 596# CONFIG_IP1000 is not set
597# CONFIG_IGB is not set
576# CONFIG_NS83820 is not set 598# CONFIG_NS83820 is not set
577# CONFIG_HAMACHI is not set 599# CONFIG_HAMACHI is not set
578# CONFIG_YELLOWFIN is not set 600# CONFIG_YELLOWFIN is not set
@@ -599,6 +621,7 @@ CONFIG_NETDEV_10000=y
599# CONFIG_NIU is not set 621# CONFIG_NIU is not set
600# CONFIG_MLX4_CORE is not set 622# CONFIG_MLX4_CORE is not set
601# CONFIG_TEHUTI is not set 623# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set
602# CONFIG_TR is not set 625# CONFIG_TR is not set
603 626
604# 627#
@@ -611,7 +634,6 @@ CONFIG_NETDEV_10000=y
611# CONFIG_HIPPI is not set 634# CONFIG_HIPPI is not set
612# CONFIG_PPP is not set 635# CONFIG_PPP is not set
613# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
614# CONFIG_SHAPER is not set
615# CONFIG_NETCONSOLE is not set 637# CONFIG_NETCONSOLE is not set
616# CONFIG_NETPOLL is not set 638# CONFIG_NETPOLL is not set
617# CONFIG_NET_POLL_CONTROLLER is not set 639# CONFIG_NET_POLL_CONTROLLER is not set
@@ -654,6 +676,7 @@ CONFIG_INPUT=y
654# 676#
655# CONFIG_VT is not set 677# CONFIG_VT is not set
656# CONFIG_SERIAL_NONSTANDARD is not set 678# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set
657 680
658# 681#
659# Serial drivers 682# Serial drivers
@@ -735,14 +758,12 @@ CONFIG_I2C_MPC=y
735# 758#
736# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
737# 760#
738CONFIG_SENSORS_DS1337=y
739# CONFIG_SENSORS_DS1374 is not set
740# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
741# CONFIG_SENSORS_EEPROM is not set 762# CONFIG_SENSORS_EEPROM is not set
742# CONFIG_SENSORS_PCF8574 is not set 763# CONFIG_SENSORS_PCF8574 is not set
743# CONFIG_SENSORS_PCA9539 is not set 764# CONFIG_PCF8575 is not set
744# CONFIG_SENSORS_PCF8591 is not set 765# CONFIG_SENSORS_PCF8591 is not set
745# CONFIG_SENSORS_M41T00 is not set 766# CONFIG_TPS65010 is not set
746# CONFIG_SENSORS_MAX6875 is not set 767# CONFIG_SENSORS_MAX6875 is not set
747# CONFIG_SENSORS_TSL2550 is not set 768# CONFIG_SENSORS_TSL2550 is not set
748# CONFIG_I2C_DEBUG_CORE is not set 769# CONFIG_I2C_DEBUG_CORE is not set
@@ -767,6 +788,7 @@ CONFIG_HWMON=y
767# CONFIG_SENSORS_ADM1031 is not set 788# CONFIG_SENSORS_ADM1031 is not set
768# CONFIG_SENSORS_ADM9240 is not set 789# CONFIG_SENSORS_ADM9240 is not set
769# CONFIG_SENSORS_ADT7470 is not set 790# CONFIG_SENSORS_ADT7470 is not set
791# CONFIG_SENSORS_ADT7473 is not set
770# CONFIG_SENSORS_ATXP1 is not set 792# CONFIG_SENSORS_ATXP1 is not set
771# CONFIG_SENSORS_DS1621 is not set 793# CONFIG_SENSORS_DS1621 is not set
772# CONFIG_SENSORS_I5K_AMB is not set 794# CONFIG_SENSORS_I5K_AMB is not set
@@ -796,6 +818,7 @@ CONFIG_SENSORS_LM75=y
796# CONFIG_SENSORS_SMSC47M1 is not set 818# CONFIG_SENSORS_SMSC47M1 is not set
797# CONFIG_SENSORS_SMSC47M192 is not set 819# CONFIG_SENSORS_SMSC47M192 is not set
798# CONFIG_SENSORS_SMSC47B397 is not set 820# CONFIG_SENSORS_SMSC47B397 is not set
821# CONFIG_SENSORS_ADS7828 is not set
799# CONFIG_SENSORS_THMC50 is not set 822# CONFIG_SENSORS_THMC50 is not set
800# CONFIG_SENSORS_VIA686A is not set 823# CONFIG_SENSORS_VIA686A is not set
801# CONFIG_SENSORS_VT1211 is not set 824# CONFIG_SENSORS_VT1211 is not set
@@ -805,9 +828,11 @@ CONFIG_SENSORS_LM75=y
805# CONFIG_SENSORS_W83792D is not set 828# CONFIG_SENSORS_W83792D is not set
806# CONFIG_SENSORS_W83793 is not set 829# CONFIG_SENSORS_W83793 is not set
807# CONFIG_SENSORS_W83L785TS is not set 830# CONFIG_SENSORS_W83L785TS is not set
831# CONFIG_SENSORS_W83L786NG is not set
808# CONFIG_SENSORS_W83627HF is not set 832# CONFIG_SENSORS_W83627HF is not set
809# CONFIG_SENSORS_W83627EHF is not set 833# CONFIG_SENSORS_W83627EHF is not set
810CONFIG_HWMON_DEBUG_CHIP=y 834CONFIG_HWMON_DEBUG_CHIP=y
835# CONFIG_THERMAL is not set
811# CONFIG_WATCHDOG is not set 836# CONFIG_WATCHDOG is not set
812 837
813# 838#
@@ -860,16 +885,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
860# 885#
861# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
862# 887#
863
864#
865# USB Gadget Support
866#
867# CONFIG_USB_GADGET is not set 888# CONFIG_USB_GADGET is not set
868# CONFIG_MMC is not set 889# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set
869# CONFIG_NEW_LEDS is not set 891# CONFIG_NEW_LEDS is not set
870# CONFIG_INFINIBAND is not set 892# CONFIG_INFINIBAND is not set
871# CONFIG_EDAC is not set 893# CONFIG_EDAC is not set
872# CONFIG_RTC_CLASS is not set 894# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set
873 896
874# 897#
875# Userspace I/O 898# Userspace I/O
@@ -895,12 +918,10 @@ CONFIG_FS_MBCACHE=y
895# CONFIG_XFS_FS is not set 918# CONFIG_XFS_FS is not set
896# CONFIG_GFS2_FS is not set 919# CONFIG_GFS2_FS is not set
897# CONFIG_OCFS2_FS is not set 920# CONFIG_OCFS2_FS is not set
898# CONFIG_MINIX_FS is not set 921CONFIG_DNOTIFY=y
899# CONFIG_ROMFS_FS is not set
900CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
901CONFIG_INOTIFY_USER=y 923CONFIG_INOTIFY_USER=y
902# CONFIG_QUOTA is not set 924# CONFIG_QUOTA is not set
903CONFIG_DNOTIFY=y
904# CONFIG_AUTOFS_FS is not set 925# CONFIG_AUTOFS_FS is not set
905# CONFIG_AUTOFS4_FS is not set 926# CONFIG_AUTOFS4_FS is not set
906# CONFIG_FUSE_FS is not set 927# CONFIG_FUSE_FS is not set
@@ -953,8 +974,10 @@ CONFIG_JFFS2_RTIME=y
953# CONFIG_JFFS2_RUBIN is not set 974# CONFIG_JFFS2_RUBIN is not set
954CONFIG_CRAMFS=y 975CONFIG_CRAMFS=y
955# CONFIG_VXFS_FS is not set 976# CONFIG_VXFS_FS is not set
977# CONFIG_MINIX_FS is not set
956# CONFIG_HPFS_FS is not set 978# CONFIG_HPFS_FS is not set
957# CONFIG_QNX4FS_FS is not set 979# CONFIG_QNX4FS_FS is not set
980# CONFIG_ROMFS_FS is not set
958# CONFIG_SYSV_FS is not set 981# CONFIG_SYSV_FS is not set
959# CONFIG_UFS_FS is not set 982# CONFIG_UFS_FS is not set
960CONFIG_NETWORK_FILESYSTEMS=y 983CONFIG_NETWORK_FILESYSTEMS=y
@@ -1012,9 +1035,6 @@ CONFIG_PLIST=y
1012CONFIG_HAS_IOMEM=y 1035CONFIG_HAS_IOMEM=y
1013CONFIG_HAS_IOPORT=y 1036CONFIG_HAS_IOPORT=y
1014CONFIG_HAS_DMA=y 1037CONFIG_HAS_DMA=y
1015CONFIG_INSTRUMENTATION=y
1016# CONFIG_PROFILING is not set
1017# CONFIG_MARKERS is not set
1018 1038
1019# 1039#
1020# Kernel hacking 1040# Kernel hacking
@@ -1028,6 +1048,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1028# CONFIG_HEADERS_CHECK is not set 1048# CONFIG_HEADERS_CHECK is not set
1029# CONFIG_DEBUG_KERNEL is not set 1049# CONFIG_DEBUG_KERNEL is not set
1030# CONFIG_SLUB_DEBUG_ON is not set 1050# CONFIG_SLUB_DEBUG_ON is not set
1051# CONFIG_SLUB_STATS is not set
1031# CONFIG_DEBUG_BUGVERBOSE is not set 1052# CONFIG_DEBUG_BUGVERBOSE is not set
1032# CONFIG_SAMPLES is not set 1053# CONFIG_SAMPLES is not set
1033# CONFIG_KGDB_CONSOLE is not set 1054# CONFIG_KGDB_CONSOLE is not set
@@ -1039,6 +1060,50 @@ CONFIG_ENABLE_MUST_CHECK=y
1039# CONFIG_KEYS is not set 1060# CONFIG_KEYS is not set
1040# CONFIG_SECURITY is not set 1061# CONFIG_SECURITY is not set
1041# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1042# CONFIG_CRYPTO is not set 1063CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set
1065# CONFIG_CRYPTO_MANAGER is not set
1066# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set
1069# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set
1071# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_ECB is not set
1078# CONFIG_CRYPTO_CBC is not set
1079# CONFIG_CRYPTO_PCBC is not set
1080# CONFIG_CRYPTO_LRW is not set
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set
1092# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set
1095# CONFIG_CRYPTO_ARC4 is not set
1096# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set
1100# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1043# CONFIG_PPC_CLOCK is not set 1108# CONFIG_PPC_CLOCK is not set
1044CONFIG_PPC_LIB_RHEAP=y 1109CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/tqm8560_defconfig b/arch/powerpc/configs/tqm8560_defconfig
index 0832e8996ac2..63c5ec8b6515 100644
--- a/arch/powerpc/configs/tqm8560_defconfig
+++ b/arch/powerpc/configs/tqm8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8 3# Linux kernel version: 2.6.25-rc6
4# Thu Jan 24 23:50:42 2008 4# Mon Mar 24 08:48:45 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,10 +14,10 @@ CONFIG_PPC_85xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_85xx=y
18CONFIG_E500=y 17CONFIG_E500=y
19CONFIG_BOOKE=y 18CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y 19CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 21# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 22CONFIG_SPE=y
23# CONFIG_PPC_MM_SLICES is not set 23# CONFIG_PPC_MM_SLICES is not set
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -89,11 +92,13 @@ CONFIG_SYSCTL_SYSCALL=y
89CONFIG_PRINTK=y 92CONFIG_PRINTK=y
90CONFIG_BUG=y 93CONFIG_BUG=y
91CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
92CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 97CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 98CONFIG_ANON_INODES=y
95# CONFIG_EPOLL is not set 99# CONFIG_EPOLL is not set
96CONFIG_SIGNALFD=y 100CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 103CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
@@ -101,6 +106,12 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 106# CONFIG_SLAB is not set
102CONFIG_SLUB=y 107CONFIG_SLUB=y
103# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114CONFIG_PROC_PAGE_MONITOR=y
104CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -124,15 +135,17 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_CFQ is not set 135# CONFIG_DEFAULT_CFQ is not set
125# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="anticipatory" 137CONFIG_DEFAULT_IOSCHED="anticipatory"
138CONFIG_CLASSIC_RCU=y
127 139
128# 140#
129# Platform support 141# Platform support
130# 142#
131# CONFIG_PPC_MPC52xx is not set 143# CONFIG_PPC_MPC512x is not set
132# CONFIG_PPC_MPC5200 is not set 144# CONFIG_PPC_MPC5121 is not set
133# CONFIG_PPC_CELL is not set 145# CONFIG_PPC_CELL is not set
134# CONFIG_PPC_CELL_NATIVE is not set 146# CONFIG_PPC_CELL_NATIVE is not set
135# CONFIG_PQ2ADS is not set 147# CONFIG_PQ2ADS is not set
148CONFIG_MPC85xx=y
136# CONFIG_MPC8540_ADS is not set 149# CONFIG_MPC8540_ADS is not set
137# CONFIG_MPC8560_ADS is not set 150# CONFIG_MPC8560_ADS is not set
138# CONFIG_MPC85xx_CDS is not set 151# CONFIG_MPC85xx_CDS is not set
@@ -143,8 +156,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
143# CONFIG_TQM8541 is not set 156# CONFIG_TQM8541 is not set
144# CONFIG_TQM8555 is not set 157# CONFIG_TQM8555 is not set
145CONFIG_TQM8560=y 158CONFIG_TQM8560=y
159# CONFIG_SBC8548 is not set
160# CONFIG_SBC8560 is not set
146CONFIG_TQM85xx=y 161CONFIG_TQM85xx=y
147CONFIG_MPC85xx=y
148# CONFIG_IPIC is not set 162# CONFIG_IPIC is not set
149CONFIG_MPIC=y 163CONFIG_MPIC=y
150# CONFIG_MPIC_WEIRD is not set 164# CONFIG_MPIC_WEIRD is not set
@@ -174,13 +188,17 @@ CONFIG_HZ_250=y
174# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
175# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
176CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
180CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
182CONFIG_MATH_EMULATION=y 197CONFIG_MATH_EMULATION=y
198# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
186CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,11 +217,7 @@ CONFIG_VIRT_TO_BUS=y
199# CONFIG_PROC_DEVICETREE is not set 217# CONFIG_PROC_DEVICETREE is not set
200# CONFIG_CMDLINE_BOOL is not set 218# CONFIG_CMDLINE_BOOL is not set
201# CONFIG_PM is not set 219# CONFIG_PM is not set
202CONFIG_SUSPEND_UP_POSSIBLE=y
203CONFIG_HIBERNATION_UP_POSSIBLE=y
204CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
205CONFIG_WANT_DEVICE_TREE=y
206CONFIG_DEVICE_TREE="tqm8560.dts"
207CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
208 222
209# 223#
@@ -250,6 +264,7 @@ CONFIG_XFRM=y
250# CONFIG_XFRM_USER is not set 264# CONFIG_XFRM_USER is not set
251# CONFIG_XFRM_SUB_POLICY is not set 265# CONFIG_XFRM_SUB_POLICY is not set
252# CONFIG_XFRM_MIGRATE is not set 266# CONFIG_XFRM_MIGRATE is not set
267# CONFIG_XFRM_STATISTICS is not set
253# CONFIG_NET_KEY is not set 268# CONFIG_NET_KEY is not set
254CONFIG_INET=y 269CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 270CONFIG_IP_MULTICAST=y
@@ -305,6 +320,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
305# 320#
306# CONFIG_NET_PKTGEN is not set 321# CONFIG_NET_PKTGEN is not set
307# CONFIG_HAMRADIO is not set 322# CONFIG_HAMRADIO is not set
323# CONFIG_CAN is not set
308# CONFIG_IRDA is not set 324# CONFIG_IRDA is not set
309# CONFIG_BT is not set 325# CONFIG_BT is not set
310# CONFIG_AF_RXRPC is not set 326# CONFIG_AF_RXRPC is not set
@@ -336,6 +352,7 @@ CONFIG_MTD_CONCAT=y
336CONFIG_MTD_PARTITIONS=y 352CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 353# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 354CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set
339 356
340# 357#
341# User Modules And Translation Layers 358# User Modules And Translation Layers
@@ -422,7 +439,7 @@ CONFIG_BLK_DEV_LOOP=y
422CONFIG_BLK_DEV_RAM=y 439CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=32768 441CONFIG_BLK_DEV_RAM_SIZE=32768
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 442# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
428CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
@@ -430,12 +447,14 @@ CONFIG_MISC_DEVICES=y
430# CONFIG_EEPROM_93CX6 is not set 447# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 448# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 449# CONFIG_TIFM_CORE is not set
450# CONFIG_ENCLOSURE_SERVICES is not set
451CONFIG_HAVE_IDE=y
433CONFIG_IDE=y 452CONFIG_IDE=y
434CONFIG_IDE_MAX_HWIFS=4 453CONFIG_IDE_MAX_HWIFS=4
435CONFIG_BLK_DEV_IDE=y 454CONFIG_BLK_DEV_IDE=y
436 455
437# 456#
438# Please see Documentation/ide.txt for help/info on IDE drives 457# Please see Documentation/ide/ide.txt for help/info on IDE drives
439# 458#
440# CONFIG_BLK_DEV_IDE_SATA is not set 459# CONFIG_BLK_DEV_IDE_SATA is not set
441CONFIG_BLK_DEV_IDEDISK=y 460CONFIG_BLK_DEV_IDEDISK=y
@@ -451,12 +470,12 @@ CONFIG_IDE_PROC_FS=y
451# 470#
452CONFIG_IDE_GENERIC=y 471CONFIG_IDE_GENERIC=y
453# CONFIG_BLK_DEV_PLATFORM is not set 472# CONFIG_BLK_DEV_PLATFORM is not set
473CONFIG_BLK_DEV_IDEDMA_SFF=y
454 474
455# 475#
456# PCI IDE chipsets support 476# PCI IDE chipsets support
457# 477#
458CONFIG_BLK_DEV_IDEPCI=y 478CONFIG_BLK_DEV_IDEPCI=y
459CONFIG_IDEPCI_SHARE_IRQ=y
460CONFIG_IDEPCI_PCIBUS_ORDER=y 479CONFIG_IDEPCI_PCIBUS_ORDER=y
461# CONFIG_BLK_DEV_OFFBOARD is not set 480# CONFIG_BLK_DEV_OFFBOARD is not set
462CONFIG_BLK_DEV_GENERIC=y 481CONFIG_BLK_DEV_GENERIC=y
@@ -487,7 +506,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
487# CONFIG_BLK_DEV_TRM290 is not set 506# CONFIG_BLK_DEV_TRM290 is not set
488CONFIG_BLK_DEV_VIA82CXXX=y 507CONFIG_BLK_DEV_VIA82CXXX=y
489# CONFIG_BLK_DEV_TC86C001 is not set 508# CONFIG_BLK_DEV_TC86C001 is not set
490# CONFIG_IDE_ARM is not set
491CONFIG_BLK_DEV_IDEDMA=y 509CONFIG_BLK_DEV_IDEDMA=y
492CONFIG_IDE_ARCH_OBSOLETE_INIT=y 510CONFIG_IDE_ARCH_OBSOLETE_INIT=y
493# CONFIG_BLK_DEV_HD is not set 511# CONFIG_BLK_DEV_HD is not set
@@ -533,6 +551,7 @@ CONFIG_PHYLIB=y
533# CONFIG_SMSC_PHY is not set 551# CONFIG_SMSC_PHY is not set
534# CONFIG_BROADCOM_PHY is not set 552# CONFIG_BROADCOM_PHY is not set
535# CONFIG_ICPLUS_PHY is not set 553# CONFIG_ICPLUS_PHY is not set
554# CONFIG_REALTEK_PHY is not set
536# CONFIG_FIXED_PHY is not set 555# CONFIG_FIXED_PHY is not set
537# CONFIG_MDIO_BITBANG is not set 556# CONFIG_MDIO_BITBANG is not set
538CONFIG_NET_ETHERNET=y 557CONFIG_NET_ETHERNET=y
@@ -560,6 +579,7 @@ CONFIG_E100=y
560# CONFIG_NE2K_PCI is not set 579# CONFIG_NE2K_PCI is not set
561# CONFIG_8139CP is not set 580# CONFIG_8139CP is not set
562# CONFIG_8139TOO is not set 581# CONFIG_8139TOO is not set
582# CONFIG_R6040 is not set
563# CONFIG_SIS900 is not set 583# CONFIG_SIS900 is not set
564# CONFIG_EPIC100 is not set 584# CONFIG_EPIC100 is not set
565# CONFIG_SUNDANCE is not set 585# CONFIG_SUNDANCE is not set
@@ -572,7 +592,9 @@ CONFIG_NETDEV_1000=y
572# CONFIG_DL2K is not set 592# CONFIG_DL2K is not set
573# CONFIG_E1000 is not set 593# CONFIG_E1000 is not set
574# CONFIG_E1000E is not set 594# CONFIG_E1000E is not set
595# CONFIG_E1000E_ENABLED is not set
575# CONFIG_IP1000 is not set 596# CONFIG_IP1000 is not set
597# CONFIG_IGB is not set
576# CONFIG_NS83820 is not set 598# CONFIG_NS83820 is not set
577# CONFIG_HAMACHI is not set 599# CONFIG_HAMACHI is not set
578# CONFIG_YELLOWFIN is not set 600# CONFIG_YELLOWFIN is not set
@@ -599,6 +621,7 @@ CONFIG_NETDEV_10000=y
599# CONFIG_NIU is not set 621# CONFIG_NIU is not set
600# CONFIG_MLX4_CORE is not set 622# CONFIG_MLX4_CORE is not set
601# CONFIG_TEHUTI is not set 623# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set
602# CONFIG_TR is not set 625# CONFIG_TR is not set
603 626
604# 627#
@@ -611,7 +634,6 @@ CONFIG_NETDEV_10000=y
611# CONFIG_HIPPI is not set 634# CONFIG_HIPPI is not set
612# CONFIG_PPP is not set 635# CONFIG_PPP is not set
613# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
614# CONFIG_SHAPER is not set
615# CONFIG_NETCONSOLE is not set 637# CONFIG_NETCONSOLE is not set
616# CONFIG_NETPOLL is not set 638# CONFIG_NETPOLL is not set
617# CONFIG_NET_POLL_CONTROLLER is not set 639# CONFIG_NET_POLL_CONTROLLER is not set
@@ -654,6 +676,7 @@ CONFIG_INPUT=y
654# 676#
655# CONFIG_VT is not set 677# CONFIG_VT is not set
656# CONFIG_SERIAL_NONSTANDARD is not set 678# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set
657 680
658# 681#
659# Serial drivers 682# Serial drivers
@@ -735,14 +758,12 @@ CONFIG_I2C_MPC=y
735# 758#
736# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
737# 760#
738CONFIG_SENSORS_DS1337=y
739# CONFIG_SENSORS_DS1374 is not set
740# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
741# CONFIG_SENSORS_EEPROM is not set 762# CONFIG_SENSORS_EEPROM is not set
742# CONFIG_SENSORS_PCF8574 is not set 763# CONFIG_SENSORS_PCF8574 is not set
743# CONFIG_SENSORS_PCA9539 is not set 764# CONFIG_PCF8575 is not set
744# CONFIG_SENSORS_PCF8591 is not set 765# CONFIG_SENSORS_PCF8591 is not set
745# CONFIG_SENSORS_M41T00 is not set 766# CONFIG_TPS65010 is not set
746# CONFIG_SENSORS_MAX6875 is not set 767# CONFIG_SENSORS_MAX6875 is not set
747# CONFIG_SENSORS_TSL2550 is not set 768# CONFIG_SENSORS_TSL2550 is not set
748# CONFIG_I2C_DEBUG_CORE is not set 769# CONFIG_I2C_DEBUG_CORE is not set
@@ -767,6 +788,7 @@ CONFIG_HWMON=y
767# CONFIG_SENSORS_ADM1031 is not set 788# CONFIG_SENSORS_ADM1031 is not set
768# CONFIG_SENSORS_ADM9240 is not set 789# CONFIG_SENSORS_ADM9240 is not set
769# CONFIG_SENSORS_ADT7470 is not set 790# CONFIG_SENSORS_ADT7470 is not set
791# CONFIG_SENSORS_ADT7473 is not set
770# CONFIG_SENSORS_ATXP1 is not set 792# CONFIG_SENSORS_ATXP1 is not set
771# CONFIG_SENSORS_DS1621 is not set 793# CONFIG_SENSORS_DS1621 is not set
772# CONFIG_SENSORS_I5K_AMB is not set 794# CONFIG_SENSORS_I5K_AMB is not set
@@ -796,6 +818,7 @@ CONFIG_SENSORS_LM75=y
796# CONFIG_SENSORS_SMSC47M1 is not set 818# CONFIG_SENSORS_SMSC47M1 is not set
797# CONFIG_SENSORS_SMSC47M192 is not set 819# CONFIG_SENSORS_SMSC47M192 is not set
798# CONFIG_SENSORS_SMSC47B397 is not set 820# CONFIG_SENSORS_SMSC47B397 is not set
821# CONFIG_SENSORS_ADS7828 is not set
799# CONFIG_SENSORS_THMC50 is not set 822# CONFIG_SENSORS_THMC50 is not set
800# CONFIG_SENSORS_VIA686A is not set 823# CONFIG_SENSORS_VIA686A is not set
801# CONFIG_SENSORS_VT1211 is not set 824# CONFIG_SENSORS_VT1211 is not set
@@ -805,9 +828,11 @@ CONFIG_SENSORS_LM75=y
805# CONFIG_SENSORS_W83792D is not set 828# CONFIG_SENSORS_W83792D is not set
806# CONFIG_SENSORS_W83793 is not set 829# CONFIG_SENSORS_W83793 is not set
807# CONFIG_SENSORS_W83L785TS is not set 830# CONFIG_SENSORS_W83L785TS is not set
831# CONFIG_SENSORS_W83L786NG is not set
808# CONFIG_SENSORS_W83627HF is not set 832# CONFIG_SENSORS_W83627HF is not set
809# CONFIG_SENSORS_W83627EHF is not set 833# CONFIG_SENSORS_W83627EHF is not set
810CONFIG_HWMON_DEBUG_CHIP=y 834CONFIG_HWMON_DEBUG_CHIP=y
835# CONFIG_THERMAL is not set
811# CONFIG_WATCHDOG is not set 836# CONFIG_WATCHDOG is not set
812 837
813# 838#
@@ -860,16 +885,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
860# 885#
861# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
862# 887#
863
864#
865# USB Gadget Support
866#
867# CONFIG_USB_GADGET is not set 888# CONFIG_USB_GADGET is not set
868# CONFIG_MMC is not set 889# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set
869# CONFIG_NEW_LEDS is not set 891# CONFIG_NEW_LEDS is not set
870# CONFIG_INFINIBAND is not set 892# CONFIG_INFINIBAND is not set
871# CONFIG_EDAC is not set 893# CONFIG_EDAC is not set
872# CONFIG_RTC_CLASS is not set 894# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set
873 896
874# 897#
875# Userspace I/O 898# Userspace I/O
@@ -895,12 +918,10 @@ CONFIG_FS_MBCACHE=y
895# CONFIG_XFS_FS is not set 918# CONFIG_XFS_FS is not set
896# CONFIG_GFS2_FS is not set 919# CONFIG_GFS2_FS is not set
897# CONFIG_OCFS2_FS is not set 920# CONFIG_OCFS2_FS is not set
898# CONFIG_MINIX_FS is not set 921CONFIG_DNOTIFY=y
899# CONFIG_ROMFS_FS is not set
900CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
901CONFIG_INOTIFY_USER=y 923CONFIG_INOTIFY_USER=y
902# CONFIG_QUOTA is not set 924# CONFIG_QUOTA is not set
903CONFIG_DNOTIFY=y
904# CONFIG_AUTOFS_FS is not set 925# CONFIG_AUTOFS_FS is not set
905# CONFIG_AUTOFS4_FS is not set 926# CONFIG_AUTOFS4_FS is not set
906# CONFIG_FUSE_FS is not set 927# CONFIG_FUSE_FS is not set
@@ -953,8 +974,10 @@ CONFIG_JFFS2_RTIME=y
953# CONFIG_JFFS2_RUBIN is not set 974# CONFIG_JFFS2_RUBIN is not set
954CONFIG_CRAMFS=y 975CONFIG_CRAMFS=y
955# CONFIG_VXFS_FS is not set 976# CONFIG_VXFS_FS is not set
977# CONFIG_MINIX_FS is not set
956# CONFIG_HPFS_FS is not set 978# CONFIG_HPFS_FS is not set
957# CONFIG_QNX4FS_FS is not set 979# CONFIG_QNX4FS_FS is not set
980# CONFIG_ROMFS_FS is not set
958# CONFIG_SYSV_FS is not set 981# CONFIG_SYSV_FS is not set
959# CONFIG_UFS_FS is not set 982# CONFIG_UFS_FS is not set
960CONFIG_NETWORK_FILESYSTEMS=y 983CONFIG_NETWORK_FILESYSTEMS=y
@@ -1012,9 +1035,6 @@ CONFIG_PLIST=y
1012CONFIG_HAS_IOMEM=y 1035CONFIG_HAS_IOMEM=y
1013CONFIG_HAS_IOPORT=y 1036CONFIG_HAS_IOPORT=y
1014CONFIG_HAS_DMA=y 1037CONFIG_HAS_DMA=y
1015CONFIG_INSTRUMENTATION=y
1016# CONFIG_PROFILING is not set
1017# CONFIG_MARKERS is not set
1018 1038
1019# 1039#
1020# Kernel hacking 1040# Kernel hacking
@@ -1028,6 +1048,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1028# CONFIG_HEADERS_CHECK is not set 1048# CONFIG_HEADERS_CHECK is not set
1029# CONFIG_DEBUG_KERNEL is not set 1049# CONFIG_DEBUG_KERNEL is not set
1030# CONFIG_SLUB_DEBUG_ON is not set 1050# CONFIG_SLUB_DEBUG_ON is not set
1051# CONFIG_SLUB_STATS is not set
1031# CONFIG_DEBUG_BUGVERBOSE is not set 1052# CONFIG_DEBUG_BUGVERBOSE is not set
1032# CONFIG_SAMPLES is not set 1053# CONFIG_SAMPLES is not set
1033# CONFIG_KGDB_CONSOLE is not set 1054# CONFIG_KGDB_CONSOLE is not set
@@ -1039,6 +1060,50 @@ CONFIG_ENABLE_MUST_CHECK=y
1039# CONFIG_KEYS is not set 1060# CONFIG_KEYS is not set
1040# CONFIG_SECURITY is not set 1061# CONFIG_SECURITY is not set
1041# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1042# CONFIG_CRYPTO is not set 1063CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set
1065# CONFIG_CRYPTO_MANAGER is not set
1066# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set
1069# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set
1071# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_ECB is not set
1078# CONFIG_CRYPTO_CBC is not set
1079# CONFIG_CRYPTO_PCBC is not set
1080# CONFIG_CRYPTO_LRW is not set
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set
1092# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set
1095# CONFIG_CRYPTO_ARC4 is not set
1096# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set
1100# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1043# CONFIG_PPC_CLOCK is not set 1108# CONFIG_PPC_CLOCK is not set
1044CONFIG_PPC_LIB_RHEAP=y 1109CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index f7458396cd7c..3c9452d4308b 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -332,8 +332,18 @@ InstructionTLBMiss:
332 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ 332 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */
333 lwz r10, 0(r11) /* Get the pte */ 333 lwz r10, 0(r11) /* Get the pte */
334 334
335#ifdef CONFIG_SWAP
336 /* do not set the _PAGE_ACCESSED bit of a non-present page */
337 andi. r11, r10, _PAGE_PRESENT
338 beq 4f
339 ori r10, r10, _PAGE_ACCESSED
340 mfspr r11, SPRN_MD_TWC /* get the pte address again */
341 stw r10, 0(r11)
3424:
343#else
335 ori r10, r10, _PAGE_ACCESSED 344 ori r10, r10, _PAGE_ACCESSED
336 stw r10, 0(r11) 345 stw r10, 0(r11)
346#endif
337 347
338 /* The Linux PTE won't go exactly into the MMU TLB. 348 /* The Linux PTE won't go exactly into the MMU TLB.
339 * Software indicator bits 21, 22 and 28 must be clear. 349 * Software indicator bits 21, 22 and 28 must be clear.
@@ -398,8 +408,17 @@ DataStoreTLBMiss:
398 DO_8xx_CPU6(0x3b80, r3) 408 DO_8xx_CPU6(0x3b80, r3)
399 mtspr SPRN_MD_TWC, r11 409 mtspr SPRN_MD_TWC, r11
400 410
401 mfspr r11, SPRN_MD_TWC /* get the pte address again */ 411#ifdef CONFIG_SWAP
412 /* do not set the _PAGE_ACCESSED bit of a non-present page */
413 andi. r11, r10, _PAGE_PRESENT
414 beq 4f
402 ori r10, r10, _PAGE_ACCESSED 415 ori r10, r10, _PAGE_ACCESSED
4164:
417 /* and update pte in table */
418#else
419 ori r10, r10, _PAGE_ACCESSED
420#endif
421 mfspr r11, SPRN_MD_TWC /* get the pte address again */
403 stw r10, 0(r11) 422 stw r10, 0(r11)
404 423
405 /* The Linux PTE won't go exactly into the MMU TLB. 424 /* The Linux PTE won't go exactly into the MMU TLB.
@@ -507,7 +526,16 @@ DataTLBError:
507 526
508 /* Update 'changed', among others. 527 /* Update 'changed', among others.
509 */ 528 */
529#ifdef CONFIG_SWAP
530 ori r10, r10, _PAGE_DIRTY|_PAGE_HWWRITE
531 /* do not set the _PAGE_ACCESSED bit of a non-present page */
532 andi. r11, r10, _PAGE_PRESENT
533 beq 4f
534 ori r10, r10, _PAGE_ACCESSED
5354:
536#else
510 ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE 537 ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE
538#endif
511 mfspr r11, SPRN_MD_TWC /* Get pte address again */ 539 mfspr r11, SPRN_MD_TWC /* Get pte address again */
512 stw r10, 0(r11) /* and update pte in table */ 540 stw r10, 0(r11) /* and update pte in table */
513 541
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 5c2e253ddfb1..9d2c56621f1e 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -785,6 +785,21 @@ _GLOBAL(__lshrdi3)
785 or r4,r4,r7 # LSW |= t2 785 or r4,r4,r7 # LSW |= t2
786 blr 786 blr
787 787
788/*
789 * 64-bit comparison: __ucmpdi2(u64 a, u64 b)
790 * Returns 0 if a < b, 1 if a == b, 2 if a > b.
791 */
792_GLOBAL(__ucmpdi2)
793 cmplw r3,r5
794 li r3,1
795 bne 1f
796 cmplw r4,r6
797 beqlr
7981: li r3,0
799 bltlr
800 li r3,2
801 blr
802
788_GLOBAL(abs) 803_GLOBAL(abs)
789 srawi r4,r3,31 804 srawi r4,r3,31
790 xor r3,r3,r4 805 xor r3,r3,r4
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 980fe32895c0..89c83ccb85c1 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -748,7 +748,13 @@ static void __devinit pcibios_fixup_resources(struct pci_dev *dev)
748 struct resource *res = dev->resource + i; 748 struct resource *res = dev->resource + i;
749 if (!res->flags) 749 if (!res->flags)
750 continue; 750 continue;
751 if (res->end == 0xffffffff) { 751 /* On platforms that have PPC_PCI_PROBE_ONLY set, we don't
752 * consider 0 as an unassigned BAR value. It's technically
753 * a valid value, but linux doesn't like it... so when we can
754 * re-assign things, we do so, but if we can't, we keep it
755 * around and hope for the best...
756 */
757 if (res->start == 0 && !(ppc_pci_flags & PPC_PCI_PROBE_ONLY)) {
752 pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] is unassigned\n", 758 pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] is unassigned\n",
753 pci_name(dev), i, 759 pci_name(dev), i,
754 (unsigned long long)res->start, 760 (unsigned long long)res->start,
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index aa9ff35b0e63..9c98424277a8 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -58,6 +58,7 @@ extern void program_check_exception(struct pt_regs *regs);
58extern void single_step_exception(struct pt_regs *regs); 58extern void single_step_exception(struct pt_regs *regs);
59extern int sys_sigreturn(struct pt_regs *regs); 59extern int sys_sigreturn(struct pt_regs *regs);
60 60
61EXPORT_SYMBOL(empty_zero_page);
61EXPORT_SYMBOL(clear_pages); 62EXPORT_SYMBOL(clear_pages);
62EXPORT_SYMBOL(copy_page); 63EXPORT_SYMBOL(copy_page);
63EXPORT_SYMBOL(ISA_DMA_THRESHOLD); 64EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
@@ -149,6 +150,8 @@ long long __lshrdi3(long long, int);
149EXPORT_SYMBOL(__ashrdi3); 150EXPORT_SYMBOL(__ashrdi3);
150EXPORT_SYMBOL(__ashldi3); 151EXPORT_SYMBOL(__ashldi3);
151EXPORT_SYMBOL(__lshrdi3); 152EXPORT_SYMBOL(__lshrdi3);
153int __ucmpdi2(unsigned long long, unsigned long long);
154EXPORT_SYMBOL(__ucmpdi2);
152#endif 155#endif
153 156
154EXPORT_SYMBOL(memcpy); 157EXPORT_SYMBOL(memcpy);
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 4846bf543a8c..4ec605521504 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -241,8 +241,12 @@ void discard_lazy_cpu_state(void)
241} 241}
242#endif /* CONFIG_SMP */ 242#endif /* CONFIG_SMP */
243 243
244static DEFINE_PER_CPU(unsigned long, current_dabr);
245
244int set_dabr(unsigned long dabr) 246int set_dabr(unsigned long dabr)
245{ 247{
248 __get_cpu_var(current_dabr) = dabr;
249
246#ifdef CONFIG_PPC_MERGE /* XXX for now */ 250#ifdef CONFIG_PPC_MERGE /* XXX for now */
247 if (ppc_md.set_dabr) 251 if (ppc_md.set_dabr)
248 return ppc_md.set_dabr(dabr); 252 return ppc_md.set_dabr(dabr);
@@ -259,8 +263,6 @@ int set_dabr(unsigned long dabr)
259DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); 263DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array);
260#endif 264#endif
261 265
262static DEFINE_PER_CPU(unsigned long, current_dabr);
263
264struct task_struct *__switch_to(struct task_struct *prev, 266struct task_struct *__switch_to(struct task_struct *prev,
265 struct task_struct *new) 267 struct task_struct *new)
266{ 268{
@@ -325,10 +327,8 @@ struct task_struct *__switch_to(struct task_struct *prev,
325 327
326#endif /* CONFIG_SMP */ 328#endif /* CONFIG_SMP */
327 329
328 if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) { 330 if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr))
329 set_dabr(new->thread.dabr); 331 set_dabr(new->thread.dabr);
330 __get_cpu_var(current_dabr) = new->thread.dabr;
331 }
332 332
333 new_thread = &new->thread; 333 new_thread = &new->thread;
334 old_thread = &current->thread; 334 old_thread = &current->thread;
@@ -353,6 +353,12 @@ struct task_struct *__switch_to(struct task_struct *prev,
353 account_process_vtime(current); 353 account_process_vtime(current);
354 calculate_steal_time(); 354 calculate_steal_time();
355 355
356 /*
357 * We can't take a PMU exception inside _switch() since there is a
358 * window where the kernel stack SLB and the kernel stack are out
359 * of sync. Hard disable here.
360 */
361 hard_irq_disable();
356 last = _switch(old_thread, new_thread); 362 last = _switch(old_thread, new_thread);
357 363
358 local_irq_restore(flags); 364 local_irq_restore(flags);
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 7673e9865733..2a9fe97e4521 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -530,15 +530,21 @@ static int gpr32_set(struct task_struct *target,
530 --count; 530 --count;
531 } 531 }
532 532
533 if (kbuf) 533 if (kbuf) {
534 for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) 534 for (; count > 0 && pos <= PT_MAX_PUT_REG; --count)
535 regs[pos++] = *k++; 535 regs[pos++] = *k++;
536 else 536 for (; count > 0 && pos < PT_TRAP; --count, ++pos)
537 ++k;
538 } else {
537 for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) { 539 for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) {
538 if (__get_user(reg, u++)) 540 if (__get_user(reg, u++))
539 return -EFAULT; 541 return -EFAULT;
540 regs[pos++] = reg; 542 regs[pos++] = reg;
541 } 543 }
544 for (; count > 0 && pos < PT_TRAP; --count, ++pos)
545 if (__get_user(reg, u++))
546 return -EFAULT;
547 }
542 548
543 if (count > 0 && pos == PT_TRAP) { 549 if (count > 0 && pos == PT_TRAP) {
544 if (kbuf) 550 if (kbuf)
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 32f416175db1..a83dfa3cf40c 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -351,9 +351,14 @@ static void __init htab_init_page_sizes(void)
351 mmu_vmalloc_psize = MMU_PAGE_64K; 351 mmu_vmalloc_psize = MMU_PAGE_64K;
352 if (mmu_linear_psize == MMU_PAGE_4K) 352 if (mmu_linear_psize == MMU_PAGE_4K)
353 mmu_linear_psize = MMU_PAGE_64K; 353 mmu_linear_psize = MMU_PAGE_64K;
354 if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) 354 if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) {
355 mmu_io_psize = MMU_PAGE_64K; 355 /*
356 else 356 * Don't use 64k pages for ioremap on pSeries, since
357 * that would stop us accessing the HEA ethernet.
358 */
359 if (!machine_is(pseries))
360 mmu_io_psize = MMU_PAGE_64K;
361 } else
357 mmu_ci_restrictions = 1; 362 mmu_ci_restrictions = 1;
358 } 363 }
359#endif /* CONFIG_PPC_64K_PAGES */ 364#endif /* CONFIG_PPC_64K_PAGES */
@@ -506,10 +511,10 @@ void __init htab_initialize(void)
506 } else { 511 } else {
507 /* Find storage for the HPT. Must be contiguous in 512 /* Find storage for the HPT. Must be contiguous in
508 * the absolute address space. On cell we want it to be 513 * the absolute address space. On cell we want it to be
509 * in the first 1 Gig. 514 * in the first 2 Gig so we can use it for IOMMU hacks.
510 */ 515 */
511 if (machine_is(cell)) 516 if (machine_is(cell))
512 limit = 0x40000000; 517 limit = 0x80000000;
513 else 518 else
514 limit = 0; 519 limit = 0;
515 520
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index 47b06bad24ad..906daeda59a8 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -124,6 +124,12 @@ void slb_flush_and_rebolt(void)
124 ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; 124 ksp_vsid_data = get_slb_shadow()->save_area[2].vsid;
125 } 125 }
126 126
127 /*
128 * We can't take a PMU exception in the following code, so hard
129 * disable interrupts.
130 */
131 hard_irq_disable();
132
127 /* We need to do this all in asm, so we're sure we don't touch 133 /* We need to do this all in asm, so we're sure we don't touch
128 * the stack between the slbia and rebolting it. */ 134 * the stack between the slbia and rebolting it. */
129 asm volatile("isync\n" 135 asm volatile("isync\n"
diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c
index 76ec1d16aef7..9a932177e70e 100644
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
@@ -92,7 +92,7 @@ vma_map_add(struct vma_to_fileoffset_map *map, unsigned int vma,
92 * A pointer to the first vma_map in the generated list 92 * A pointer to the first vma_map in the generated list
93 * of vma_maps is returned. */ 93 * of vma_maps is returned. */
94struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, 94struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
95 unsigned long spu_elf_start) 95 unsigned long __spu_elf_start)
96{ 96{
97 static const unsigned char expected[EI_PAD] = { 97 static const unsigned char expected[EI_PAD] = {
98 [EI_MAG0] = ELFMAG0, 98 [EI_MAG0] = ELFMAG0,
@@ -107,9 +107,11 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
107 107
108 int grd_val; 108 int grd_val;
109 struct vma_to_fileoffset_map *map = NULL; 109 struct vma_to_fileoffset_map *map = NULL;
110 void __user *spu_elf_start = (void __user *)__spu_elf_start;
110 struct spu_overlay_info ovly; 111 struct spu_overlay_info ovly;
111 unsigned int overlay_tbl_offset = -1; 112 unsigned int overlay_tbl_offset = -1;
112 unsigned long phdr_start, shdr_start; 113 Elf32_Phdr __user *phdr_start;
114 Elf32_Shdr __user *shdr_start;
113 Elf32_Ehdr ehdr; 115 Elf32_Ehdr ehdr;
114 Elf32_Phdr phdr; 116 Elf32_Phdr phdr;
115 Elf32_Shdr shdr, shdr_str; 117 Elf32_Shdr shdr, shdr_str;
@@ -121,12 +123,12 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
121 unsigned int ovly_buf_table_sym = 0; 123 unsigned int ovly_buf_table_sym = 0;
122 unsigned int ovly_table_end_sym = 0; 124 unsigned int ovly_table_end_sym = 0;
123 unsigned int ovly_buf_table_end_sym = 0; 125 unsigned int ovly_buf_table_end_sym = 0;
124 unsigned long ovly_table; 126 struct spu_overlay_info __user *ovly_table;
125 unsigned int n_ovlys; 127 unsigned int n_ovlys;
126 128
127 /* Get and validate ELF header. */ 129 /* Get and validate ELF header. */
128 130
129 if (copy_from_user(&ehdr, (void *) spu_elf_start, sizeof (ehdr))) 131 if (copy_from_user(&ehdr, spu_elf_start, sizeof (ehdr)))
130 goto fail; 132 goto fail;
131 133
132 if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) { 134 if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) {
@@ -152,9 +154,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
152 154
153 /* Traverse program headers. */ 155 /* Traverse program headers. */
154 for (i = 0; i < ehdr.e_phnum; i++) { 156 for (i = 0; i < ehdr.e_phnum; i++) {
155 if (copy_from_user(&phdr, 157 if (copy_from_user(&phdr, phdr_start + i, sizeof(phdr)))
156 (void *) (phdr_start + i * sizeof(phdr)),
157 sizeof(phdr)))
158 goto fail; 158 goto fail;
159 159
160 if (phdr.p_type != PT_LOAD) 160 if (phdr.p_type != PT_LOAD)
@@ -171,9 +171,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
171 pr_debug("SPU_PROF: Created non-overlay maps\n"); 171 pr_debug("SPU_PROF: Created non-overlay maps\n");
172 /* Traverse section table and search for overlay-related symbols. */ 172 /* Traverse section table and search for overlay-related symbols. */
173 for (i = 0; i < ehdr.e_shnum; i++) { 173 for (i = 0; i < ehdr.e_shnum; i++) {
174 if (copy_from_user(&shdr, 174 if (copy_from_user(&shdr, shdr_start + i, sizeof(shdr)))
175 (void *) (shdr_start + i * sizeof(shdr)),
176 sizeof(shdr)))
177 goto fail; 175 goto fail;
178 176
179 if (shdr.sh_type != SHT_SYMTAB) 177 if (shdr.sh_type != SHT_SYMTAB)
@@ -182,8 +180,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
182 continue; 180 continue;
183 181
184 if (copy_from_user(&shdr_str, 182 if (copy_from_user(&shdr_str,
185 (void *) (shdr_start + shdr.sh_link * 183 shdr_start + shdr.sh_link,
186 sizeof(shdr)),
187 sizeof(shdr))) 184 sizeof(shdr)))
188 goto fail; 185 goto fail;
189 186
@@ -191,15 +188,15 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
191 goto fail;; 188 goto fail;;
192 189
193 for (j = 0; j < shdr.sh_size / sizeof (sym); j++) { 190 for (j = 0; j < shdr.sh_size / sizeof (sym); j++) {
194 if (copy_from_user(&sym, (void *) (spu_elf_start + 191 if (copy_from_user(&sym, spu_elf_start +
195 shdr.sh_offset + j * 192 shdr.sh_offset +
196 sizeof (sym)), 193 j * sizeof (sym),
197 sizeof (sym))) 194 sizeof (sym)))
198 goto fail; 195 goto fail;
199 196
200 if (copy_from_user(name, (void *) 197 if (copy_from_user(name,
201 (spu_elf_start + shdr_str.sh_offset + 198 spu_elf_start + shdr_str.sh_offset +
202 sym.st_name), 199 sym.st_name,
203 20)) 200 20))
204 goto fail; 201 goto fail;
205 202
@@ -245,9 +242,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
245 242
246 /* Traverse overlay table. */ 243 /* Traverse overlay table. */
247 for (i = 0; i < n_ovlys; i++) { 244 for (i = 0; i < n_ovlys; i++) {
248 if (copy_from_user(&ovly, (void *) 245 if (copy_from_user(&ovly, ovly_table + i, sizeof (ovly)))
249 (ovly_table + i * sizeof (ovly)),
250 sizeof (ovly)))
251 goto fail; 246 goto fail;
252 247
253 /* The ovly.vma/size/offset arguments are analogous to the same 248 /* The ovly.vma/size/offset arguments are analogous to the same
diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c b/arch/powerpc/platforms/83xx/mpc837x_mds.c
index 8a9c26973605..64d17b0d6455 100644
--- a/arch/powerpc/platforms/83xx/mpc837x_mds.c
+++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c
@@ -39,12 +39,9 @@ static int mpc837xmds_usb_cfg(void)
39 if (ret) 39 if (ret)
40 return ret; 40 return ret;
41 /* Map BCSR area */ 41 /* Map BCSR area */
42 np = of_find_node_by_name(NULL, "bcsr"); 42 np = of_find_compatible_node(NULL, NULL, "fsl,mpc837xmds-bcsr");
43 if (np) { 43 if (np) {
44 struct resource res; 44 bcsr_regs = of_iomap(np, 0);
45
46 of_address_to_resource(np, 0, &res);
47 bcsr_regs = ioremap(res.start, res.end - res.start + 1);
48 of_node_put(np); 45 of_node_put(np);
49 } 46 }
50 if (!bcsr_regs) 47 if (!bcsr_regs)
@@ -96,6 +93,7 @@ static void __init mpc837x_mds_setup_arch(void)
96static struct of_device_id mpc837x_ids[] = { 93static struct of_device_id mpc837x_ids[] = {
97 { .type = "soc", }, 94 { .type = "soc", },
98 { .compatible = "soc", }, 95 { .compatible = "soc", },
96 { .compatible = "simple-bus", },
99 {}, 97 {},
100}; 98};
101 99
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index 0afd22595546..a578b966ecbc 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -22,7 +22,6 @@ config PPC_83xx
22 select FSL_SOC 22 select FSL_SOC
23 select MPC83xx 23 select MPC83xx
24 select IPIC 24 select IPIC
25 select FSL_EMB_PERFMON
26 25
27config PPC_86xx 26config PPC_86xx
28 bool "Freescale 86xx" 27 bool "Freescale 86xx"
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 73d81ce14b67..0c3face0ddbb 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -113,7 +113,12 @@ config FSL_BOOKE
113 default y 113 default y
114 114
115config FSL_EMB_PERFMON 115config FSL_EMB_PERFMON
116 bool 116 bool "Freescale Embedded Perfmon"
117 depends on E500 || PPC_83xx
118 help
119 This is the Performance Monitor support found on the e500 core
120 and some e300 cores (c3 and c4). Select this only if your
121 core supports the Embedded Performance Monitor APU
117 122
118config PTE_64BIT 123config PTE_64BIT
119 bool 124 bool
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 20ea0e118f24..d75ccded7f10 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -802,17 +802,24 @@ static int __init cell_iommu_init_disabled(void)
802 802
803static u64 cell_iommu_get_fixed_address(struct device *dev) 803static u64 cell_iommu_get_fixed_address(struct device *dev)
804{ 804{
805 u64 cpu_addr, size, best_size, pci_addr = OF_BAD_ADDR; 805 u64 cpu_addr, size, best_size, dev_addr = OF_BAD_ADDR;
806 struct device_node *np; 806 struct device_node *np;
807 const u32 *ranges = NULL; 807 const u32 *ranges = NULL;
808 int i, len, best; 808 int i, len, best, naddr, nsize, pna, range_size;
809 809
810 np = of_node_get(dev->archdata.of_node); 810 np = of_node_get(dev->archdata.of_node);
811 while (np) { 811 while (1) {
812 naddr = of_n_addr_cells(np);
813 nsize = of_n_size_cells(np);
814 np = of_get_next_parent(np);
815 if (!np)
816 break;
817
812 ranges = of_get_property(np, "dma-ranges", &len); 818 ranges = of_get_property(np, "dma-ranges", &len);
813 if (ranges) 819
820 /* Ignore empty ranges, they imply no translation required */
821 if (ranges && len > 0)
814 break; 822 break;
815 np = of_get_next_parent(np);
816 } 823 }
817 824
818 if (!ranges) { 825 if (!ranges) {
@@ -822,15 +829,17 @@ static u64 cell_iommu_get_fixed_address(struct device *dev)
822 829
823 len /= sizeof(u32); 830 len /= sizeof(u32);
824 831
832 pna = of_n_addr_cells(np);
833 range_size = naddr + nsize + pna;
834
825 /* dma-ranges format: 835 /* dma-ranges format:
826 * 1 cell: pci space 836 * child addr : naddr cells
827 * 2 cells: pci address 837 * parent addr : pna cells
828 * 2 cells: parent address 838 * size : nsize cells
829 * 2 cells: size
830 */ 839 */
831 for (i = 0, best = -1, best_size = 0; i < len; i += 7) { 840 for (i = 0, best = -1, best_size = 0; i < len; i += range_size) {
832 cpu_addr = of_translate_dma_address(np, ranges +i + 3); 841 cpu_addr = of_translate_dma_address(np, ranges + i + naddr);
833 size = of_read_number(ranges + i + 5, 2); 842 size = of_read_number(ranges + i + naddr + pna, nsize);
834 843
835 if (cpu_addr == 0 && size > best_size) { 844 if (cpu_addr == 0 && size > best_size) {
836 best = i; 845 best = i;
@@ -838,15 +847,15 @@ static u64 cell_iommu_get_fixed_address(struct device *dev)
838 } 847 }
839 } 848 }
840 849
841 if (best >= 0) 850 if (best >= 0) {
842 pci_addr = of_read_number(ranges + best + 1, 2); 851 dev_addr = of_read_number(ranges + best, naddr);
843 else 852 } else
844 dev_dbg(dev, "iommu: no suitable range found!\n"); 853 dev_dbg(dev, "iommu: no suitable range found!\n");
845 854
846out: 855out:
847 of_node_put(np); 856 of_node_put(np);
848 857
849 return pci_addr; 858 return dev_addr;
850} 859}
851 860
852static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) 861static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask)
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c
index dda34650cb07..5c531e8f9f6f 100644
--- a/arch/powerpc/platforms/cell/setup.c
+++ b/arch/powerpc/platforms/cell/setup.c
@@ -81,6 +81,42 @@ static void cell_progress(char *s, unsigned short hex)
81 printk("*** %04x : %s\n", hex, s ? s : ""); 81 printk("*** %04x : %s\n", hex, s ? s : "");
82} 82}
83 83
84static void cell_fixup_pcie_rootcomplex(struct pci_dev *dev)
85{
86 struct pci_controller *hose;
87 const char *s;
88 int i;
89
90 if (!machine_is(cell))
91 return;
92
93 /* We're searching for a direct child of the PHB */
94 if (dev->bus->self != NULL || dev->devfn != 0)
95 return;
96
97 hose = pci_bus_to_host(dev->bus);
98 if (hose == NULL)
99 return;
100
101 /* Only on PCIE */
102 if (!of_device_is_compatible(hose->dn, "pciex"))
103 return;
104
105 /* And only on axon */
106 s = of_get_property(hose->dn, "model", NULL);
107 if (!s || strcmp(s, "Axon") != 0)
108 return;
109
110 for (i = 0; i < PCI_BRIDGE_RESOURCES; i++) {
111 dev->resource[i].start = dev->resource[i].end = 0;
112 dev->resource[i].flags = 0;
113 }
114
115 printk(KERN_DEBUG "PCI: Hiding resources on Axon PCIE RC %s\n",
116 pci_name(dev));
117}
118DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, cell_fixup_pcie_rootcomplex);
119
84static int __init cell_publish_devices(void) 120static int __init cell_publish_devices(void)
85{ 121{
86 int node; 122 int node;
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c
index cf6c2c89211d..0ad83aeb70b1 100644
--- a/arch/powerpc/platforms/cell/spufs/context.c
+++ b/arch/powerpc/platforms/cell/spufs/context.c
@@ -170,7 +170,8 @@ void spu_release_saved(struct spu_context *ctx)
170{ 170{
171 BUG_ON(ctx->state != SPU_STATE_SAVED); 171 BUG_ON(ctx->state != SPU_STATE_SAVED);
172 172
173 if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags)) 173 if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags) &&
174 test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags))
174 spu_activate(ctx, 0); 175 spu_activate(ctx, 0);
175 176
176 spu_release(ctx); 177 spu_release(ctx);
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c
index 6221968c2a3c..cac69e116776 100644
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
@@ -220,6 +220,7 @@ static int spu_run_init(struct spu_context *ctx, u32 *npc)
220 } 220 }
221 } 221 }
222 222
223 set_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags);
223 return 0; 224 return 0;
224} 225}
225 226
@@ -234,7 +235,7 @@ static int spu_run_fini(struct spu_context *ctx, u32 *npc,
234 *npc = ctx->ops->npc_read(ctx); 235 *npc = ctx->ops->npc_read(ctx);
235 236
236 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); 237 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED);
237 ctx->policy = SCHED_IDLE; 238 clear_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags);
238 spu_release(ctx); 239 spu_release(ctx);
239 240
240 if (signal_pending(current)) 241 if (signal_pending(current))
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 5d5f680cd0b8..00528ef84ad2 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -867,7 +867,7 @@ static noinline void spusched_tick(struct spu_context *ctx)
867 if (ctx->policy == SCHED_FIFO) 867 if (ctx->policy == SCHED_FIFO)
868 goto out; 868 goto out;
869 869
870 if (--ctx->time_slice && ctx->policy != SCHED_IDLE) 870 if (--ctx->time_slice && test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags))
871 goto out; 871 goto out;
872 872
873 spu = ctx->spu; 873 spu = ctx->spu;
@@ -877,7 +877,7 @@ static noinline void spusched_tick(struct spu_context *ctx)
877 new = grab_runnable_context(ctx->prio + 1, spu->node); 877 new = grab_runnable_context(ctx->prio + 1, spu->node);
878 if (new) { 878 if (new) {
879 spu_unschedule(spu, ctx); 879 spu_unschedule(spu, ctx);
880 if (ctx->policy != SCHED_IDLE) 880 if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags))
881 spu_add_to_rq(ctx); 881 spu_add_to_rq(ctx);
882 } else { 882 } else {
883 spu_context_nospu_trace(spusched_tick__newslice, ctx); 883 spu_context_nospu_trace(spusched_tick__newslice, ctx);
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h
index 2c2fe3c07d72..cdc515182f82 100644
--- a/arch/powerpc/platforms/cell/spufs/spufs.h
+++ b/arch/powerpc/platforms/cell/spufs/spufs.h
@@ -44,6 +44,7 @@ struct spu_gang;
44enum { 44enum {
45 SPU_SCHED_NOTIFY_ACTIVE, 45 SPU_SCHED_NOTIFY_ACTIVE,
46 SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */ 46 SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */
47 SPU_SCHED_SPU_RUN, /* context is within spu_run */
47}; 48};
48 49
49struct spu_context { 50struct spu_context {
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 40736400ef80..829b8b02527b 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -618,9 +618,9 @@ static int pmacpic_find_viaint(void)
618 if (np == NULL) 618 if (np == NULL)
619 goto not_found; 619 goto not_found;
620 viaint = irq_of_parse_and_map(np, 0);; 620 viaint = irq_of_parse_and_map(np, 0);;
621#endif /* CONFIG_ADB_PMU */
622 621
623not_found: 622not_found:
623#endif /* CONFIG_ADB_PMU */
624 return viaint; 624 return viaint;
625} 625}
626 626
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index ca52b587166d..a977f200db89 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -763,7 +763,7 @@ void xics_request_IPIs(void)
763} 763}
764#endif /* CONFIG_SMP */ 764#endif /* CONFIG_SMP */
765 765
766void xics_teardown_cpu() 766void xics_teardown_cpu(void)
767{ 767{
768 int cpu = smp_processor_id(); 768 int cpu = smp_processor_id();
769 769
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c
index f589999361e0..64ec7d629363 100644
--- a/arch/powerpc/sysdev/bestcomm/bestcomm.c
+++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c
@@ -52,6 +52,10 @@ bcom_task_alloc(int bd_count, int bd_size, int priv_size)
52 int i, tasknum = -1; 52 int i, tasknum = -1;
53 struct bcom_task *tsk; 53 struct bcom_task *tsk;
54 54
55 /* Don't try to do anything if bestcomm init failed */
56 if (!bcom_eng)
57 return NULL;
58
55 /* Get and reserve a task num */ 59 /* Get and reserve a task num */
56 spin_lock(&bcom_eng->lock); 60 spin_lock(&bcom_eng->lock);
57 61
@@ -484,8 +488,8 @@ mpc52xx_bcom_remove(struct of_device *op)
484} 488}
485 489
486static struct of_device_id mpc52xx_bcom_of_match[] = { 490static struct of_device_id mpc52xx_bcom_of_match[] = {
487 { .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", }, 491 { .compatible = "fsl,mpc5200-bestcomm", },
488 { .type = "dma-controller", .compatible = "mpc5200-bestcomm", }, 492 { .compatible = "mpc5200-bestcomm", },
489 {}, 493 {},
490}; 494};
491 495
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index ae0dbf4c1d66..0f2dfb0aaa6a 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -906,7 +906,7 @@ static int __init init_ipic_sysfs(void)
906{ 906{
907 int rc; 907 int rc;
908 908
909 if (!primary_ipic->regs) 909 if (!primary_ipic || !primary_ipic->regs)
910 return -ENODEV; 910 return -ENODEV;
911 printk(KERN_DEBUG "Registering ipic with sysfs...\n"); 911 printk(KERN_DEBUG "Registering ipic with sysfs...\n");
912 912
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c
index 6efbd5e5bb1b..cc81fd1141b0 100644
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
@@ -509,7 +509,7 @@ int qe_upload_firmware(const struct qe_firmware *firmware)
509 } 509 }
510 510
511 /* Validate some of the fields */ 511 /* Validate some of the fields */
512 if ((firmware->count < 1) || (firmware->count >= MAX_QE_RISC)) { 512 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) {
513 printk(KERN_ERR "qe-firmware: invalid data\n"); 513 printk(KERN_ERR "qe-firmware: invalid data\n");
514 return -EINVAL; 514 return -EINVAL;
515 } 515 }
@@ -609,7 +609,10 @@ struct qe_firmware_info *qe_get_firmware_info(void)
609 * If we haven't checked yet, and a driver hasn't uploaded a firmware 609 * If we haven't checked yet, and a driver hasn't uploaded a firmware
610 * yet, then check the device tree for information. 610 * yet, then check the device tree for information.
611 */ 611 */
612 if (initialized || qe_firmware_uploaded) 612 if (qe_firmware_uploaded)
613 return &qe_firmware_info;
614
615 if (initialized)
613 return NULL; 616 return NULL;
614 617
615 initialized = 1; 618 initialized = 1;
diff --git a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S
index eb8d26f87362..321bda2de2cb 100644
--- a/arch/ppc/kernel/head_8xx.S
+++ b/arch/ppc/kernel/head_8xx.S
@@ -329,8 +329,18 @@ InstructionTLBMiss:
329 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ 329 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */
330 lwz r10, 0(r11) /* Get the pte */ 330 lwz r10, 0(r11) /* Get the pte */
331 331
332#ifdef CONFIG_SWAP
333 /* do not set the _PAGE_ACCESSED bit of a non-present page */
334 andi. r11, r10, _PAGE_PRESENT
335 beq 4f
336 ori r10, r10, _PAGE_ACCESSED
337 mfspr r11, SPRN_MD_TWC /* get the pte address again */
338 stw r10, 0(r11)
3394:
340#else
332 ori r10, r10, _PAGE_ACCESSED 341 ori r10, r10, _PAGE_ACCESSED
333 stw r10, 0(r11) 342 stw r10, 0(r11)
343#endif
334 344
335 /* The Linux PTE won't go exactly into the MMU TLB. 345 /* The Linux PTE won't go exactly into the MMU TLB.
336 * Software indicator bits 21, 22 and 28 must be clear. 346 * Software indicator bits 21, 22 and 28 must be clear.
@@ -395,8 +405,17 @@ DataStoreTLBMiss:
395 DO_8xx_CPU6(0x3b80, r3) 405 DO_8xx_CPU6(0x3b80, r3)
396 mtspr SPRN_MD_TWC, r11 406 mtspr SPRN_MD_TWC, r11
397 407
398 mfspr r11, SPRN_MD_TWC /* get the pte address again */ 408#ifdef CONFIG_SWAP
409 /* do not set the _PAGE_ACCESSED bit of a non-present page */
410 andi. r11, r10, _PAGE_PRESENT
411 beq 4f
412 ori r10, r10, _PAGE_ACCESSED
4134:
414 /* and update pte in table */
415#else
399 ori r10, r10, _PAGE_ACCESSED 416 ori r10, r10, _PAGE_ACCESSED
417#endif
418 mfspr r11, SPRN_MD_TWC /* get the pte address again */
400 stw r10, 0(r11) 419 stw r10, 0(r11)
401 420
402 /* The Linux PTE won't go exactly into the MMU TLB. 421 /* The Linux PTE won't go exactly into the MMU TLB.
@@ -575,7 +594,16 @@ DataTLBError:
575 594
576 /* Update 'changed', among others. 595 /* Update 'changed', among others.
577 */ 596 */
597#ifdef CONFIG_SWAP
598 ori r10, r10, _PAGE_DIRTY|_PAGE_HWWRITE
599 /* do not set the _PAGE_ACCESSED bit of a non-present page */
600 andi. r11, r10, _PAGE_PRESENT
601 beq 4f
602 ori r10, r10, _PAGE_ACCESSED
6034:
604#else
578 ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE 605 ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE
606#endif
579 mfspr r11, SPRN_MD_TWC /* Get pte address again */ 607 mfspr r11, SPRN_MD_TWC /* Get pte address again */
580 stw r10, 0(r11) /* and update pte in table */ 608 stw r10, 0(r11) /* and update pte in table */
581 609
diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c
index 7e8efaade2ea..5efdfe9f5e76 100644
--- a/arch/s390/lib/uaccess_pt.c
+++ b/arch/s390/lib/uaccess_pt.c
@@ -406,6 +406,8 @@ int futex_atomic_cmpxchg_pt(int __user *uaddr, int oldval, int newval)
406{ 406{
407 int ret; 407 int ret;
408 408
409 if (!current->mm)
410 return -EFAULT;
409 spin_lock(&current->mm->page_table_lock); 411 spin_lock(&current->mm->page_table_lock);
410 uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr); 412 uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr);
411 if (!uaddr) { 413 if (!uaddr) {
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 95b7534e9e3c..12720489e458 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -580,6 +580,7 @@ config SH_TIMER_IRQ
580 CPU_SUBTYPE_SH7763 580 CPU_SUBTYPE_SH7763
581 default "86" if CPU_SUBTYPE_SH7619 581 default "86" if CPU_SUBTYPE_SH7619
582 default "140" if CPU_SUBTYPE_SH7206 582 default "140" if CPU_SUBTYPE_SH7206
583 default "142" if CPU_SUBTYPE_SH7203
583 default "16" 584 default "16"
584 585
585config SH_PCLK_FREQ 586config SH_PCLK_FREQ
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index c510c225144f..cffc92b1bf2e 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -154,7 +154,11 @@ drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/
154 154
155boot := arch/sh/boot 155boot := arch/sh/boot
156 156
157ifneq ($(KBUILD_SRC),)
157incdir-prefix := $(srctree)/include/asm-sh/ 158incdir-prefix := $(srctree)/include/asm-sh/
159else
160incdir-prefix :=
161endif
158 162
159# Update machine arch and proc symlinks if something which affects 163# Update machine arch and proc symlinks if something which affects
160# them changed. We use .arch and .mach to indicate when they were 164# them changed. We use .arch and .mach to indicate when they were
@@ -182,7 +186,7 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \
182 $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi 186 $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
183 $(Q)rm -f include/asm-sh/mach 187 $(Q)rm -f include/asm-sh/mach
184 $(Q)for i in $(incdir-y); do \ 188 $(Q)for i in $(incdir-y); do \
185 if [ -d $(incdir-prefix)$$i ]; then \ 189 if [ -d $(srctree)/include/asm-sh/$$i ]; then \
186 echo -n ' SYMLINK include/asm-sh/mach -> '; \ 190 echo -n ' SYMLINK include/asm-sh/mach -> '; \
187 echo -e "include/asm-sh/$$i"; \ 191 echo -e "include/asm-sh/$$i"; \
188 ln -fsn $(incdir-prefix)$$i \ 192 ln -fsn $(incdir-prefix)$$i \
@@ -191,7 +195,7 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \
191 if [ ! -d include/asm-sh/mach ]; then \ 195 if [ ! -d include/asm-sh/mach ]; then \
192 echo -n ' SYMLINK include/asm-sh/mach -> '; \ 196 echo -n ' SYMLINK include/asm-sh/mach -> '; \
193 echo -e 'include/asm-sh'; \ 197 echo -e 'include/asm-sh'; \
194 ln -fsn $(incdir-prefix) include/asm-sh/mach; \ 198 ln -fsn $(incdir-prefix)../asm-sh include/asm-sh/mach; \
195 fi; \ 199 fi; \
196 fi; \ 200 fi; \
197 done 201 done
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile
index 59f552c13349..3dda24daa0a8 100644
--- a/arch/sh/boot/Makefile
+++ b/arch/sh/boot/Makefile
@@ -32,12 +32,12 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE
32$(obj)/compressed/vmlinux: FORCE 32$(obj)/compressed/vmlinux: FORCE
33 $(Q)$(MAKE) $(build)=$(obj)/compressed $@ 33 $(Q)$(MAKE) $(build)=$(obj)/compressed $@
34 34
35KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%8x" \ 35KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%08x" \
36 $$[$(CONFIG_PAGE_OFFSET) + \ 36 $$[$(CONFIG_PAGE_OFFSET) + \
37 $(CONFIG_MEMORY_START) + \ 37 $(CONFIG_MEMORY_START) + \
38 $(CONFIG_ZERO_PAGE_OFFSET)]') 38 $(CONFIG_ZERO_PAGE_OFFSET)]')
39 39
40KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%8x" \ 40KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%08x" \
41 $$[$(CONFIG_PAGE_OFFSET) + \ 41 $$[$(CONFIG_PAGE_OFFSET) + \
42 $(CONFIG_MEMORY_START) + \ 42 $(CONFIG_MEMORY_START) + \
43 $(CONFIG_ZERO_PAGE_OFFSET)+0x1000]') 43 $(CONFIG_ZERO_PAGE_OFFSET)+0x1000]')
diff --git a/arch/sh/kernel/cpu/sh2/entry.S b/arch/sh/kernel/cpu/sh2/entry.S
index 7a26569e7956..0fc89069d8c7 100644
--- a/arch/sh/kernel/cpu/sh2/entry.S
+++ b/arch/sh/kernel/cpu/sh2/entry.S
@@ -267,7 +267,6 @@ ENTRY(sh_bios_handler)
267 267
268ENTRY(address_error_trap_handler) 268ENTRY(address_error_trap_handler)
269 mov r15,r4 ! regs 269 mov r15,r4 ! regs
270 add #4,r4
271 mov #OFF_PC,r0 270 mov #OFF_PC,r0
272 mov.l @(r0,r15),r6 ! pc 271 mov.l @(r0,r15),r6 ! pc
273 mov.l 1f,r0 272 mov.l 1f,r0
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 94075e1a1e61..5d039d168f57 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -179,7 +179,7 @@ void smp_send_stop(void)
179} 179}
180 180
181struct smp_fn_call_struct smp_fn_call = { 181struct smp_fn_call_struct smp_fn_call = {
182 .lock = SPIN_LOCK_UNLOCKED, 182 .lock = __SPIN_LOCK_UNLOCKED(smp_fn_call.lock),
183 .finished = ATOMIC_INIT(0), 183 .finished = ATOMIC_INIT(0),
184}; 184};
185 185
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c
index 28c187c5d9fd..f5b608bbe8af 100644
--- a/arch/sparc/kernel/sys_sunos.c
+++ b/arch/sparc/kernel/sys_sunos.c
@@ -659,7 +659,7 @@ sunos_nfs_get_server_fd (int fd, struct sockaddr_in *addr)
659 659
660 socket = SOCKET_I(inode); 660 socket = SOCKET_I(inode);
661 local.sin_family = AF_INET; 661 local.sin_family = AF_INET;
662 local.sin_addr.s_addr = INADDR_ANY; 662 local.sin_addr.s_addr = htonl(INADDR_ANY);
663 663
664 /* IPPORT_RESERVED = 1024, can't find the definition in the kernel */ 664 /* IPPORT_RESERVED = 1024, can't find the definition in the kernel */
665 try_port = 1024; 665 try_port = 1024;
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 250958d1e3cb..9d4bd2229493 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc1 3# Linux kernel version: 2.6.25-rc3
4# Sun Feb 17 22:44:12 2008 4# Wed Mar 26 04:33:35 2008
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -55,9 +55,11 @@ CONFIG_POSIX_MQUEUE=y
55# CONFIG_IKCONFIG is not set 55# CONFIG_IKCONFIG is not set
56CONFIG_LOG_BUF_SHIFT=18 56CONFIG_LOG_BUF_SHIFT=18
57# CONFIG_CGROUPS is not set 57# CONFIG_CGROUPS is not set
58CONFIG_GROUP_SCHED=y
58CONFIG_FAIR_GROUP_SCHED=y 59CONFIG_FAIR_GROUP_SCHED=y
59CONFIG_FAIR_USER_SCHED=y 60CONFIG_RT_GROUP_SCHED=y
60# CONFIG_FAIR_CGROUP_SCHED is not set 61CONFIG_USER_SCHED=y
62# CONFIG_CGROUP_SCHED is not set
61CONFIG_SYSFS_DEPRECATED=y 63CONFIG_SYSFS_DEPRECATED=y
62CONFIG_RELAY=y 64CONFIG_RELAY=y
63CONFIG_NAMESPACES=y 65CONFIG_NAMESPACES=y
@@ -482,6 +484,7 @@ CONFIG_SCSI_LOWLEVEL=y
482# CONFIG_SCSI_IPS is not set 484# CONFIG_SCSI_IPS is not set
483# CONFIG_SCSI_INITIO is not set 485# CONFIG_SCSI_INITIO is not set
484# CONFIG_SCSI_INIA100 is not set 486# CONFIG_SCSI_INIA100 is not set
487# CONFIG_SCSI_MVSAS is not set
485# CONFIG_SCSI_STEX is not set 488# CONFIG_SCSI_STEX is not set
486# CONFIG_SCSI_SYM53C8XX_2 is not set 489# CONFIG_SCSI_SYM53C8XX_2 is not set
487# CONFIG_SCSI_QLOGIC_1280 is not set 490# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -810,6 +813,7 @@ CONFIG_HWMON=y
810# CONFIG_SENSORS_ADM1031 is not set 813# CONFIG_SENSORS_ADM1031 is not set
811# CONFIG_SENSORS_ADM9240 is not set 814# CONFIG_SENSORS_ADM9240 is not set
812# CONFIG_SENSORS_ADT7470 is not set 815# CONFIG_SENSORS_ADT7470 is not set
816# CONFIG_SENSORS_ADT7473 is not set
813# CONFIG_SENSORS_ATXP1 is not set 817# CONFIG_SENSORS_ATXP1 is not set
814# CONFIG_SENSORS_DS1621 is not set 818# CONFIG_SENSORS_DS1621 is not set
815# CONFIG_SENSORS_I5K_AMB is not set 819# CONFIG_SENSORS_I5K_AMB is not set
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c
index dd5d28e3d798..0097c08dc600 100644
--- a/arch/sparc64/kernel/cpu.c
+++ b/arch/sparc64/kernel/cpu.c
@@ -15,6 +15,8 @@
15#include <asm/spitfire.h> 15#include <asm/spitfire.h>
16#include <asm/oplib.h> 16#include <asm/oplib.h>
17 17
18#include "entry.h"
19
18DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; 20DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 };
19 21
20struct cpu_iu_info { 22struct cpu_iu_info {
@@ -65,8 +67,6 @@ static struct cpu_iu_info linux_sparc_chips[] = {
65char *sparc_cpu_type; 67char *sparc_cpu_type;
66char *sparc_fpu_type; 68char *sparc_fpu_type;
67 69
68unsigned int fsr_storage;
69
70static void __init sun4v_cpu_probe(void) 70static void __init sun4v_cpu_probe(void)
71{ 71{
72 switch (sun4v_chip_type) { 72 switch (sun4v_chip_type) {
@@ -94,8 +94,10 @@ void __init cpu_probe(void)
94 unsigned long ver, fpu_vers, manuf, impl, fprs; 94 unsigned long ver, fpu_vers, manuf, impl, fprs;
95 int i; 95 int i;
96 96
97 if (tlb_type == hypervisor) 97 if (tlb_type == hypervisor) {
98 return sun4v_cpu_probe(); 98 sun4v_cpu_probe();
99 return;
100 }
99 101
100 fprs = fprs_read(); 102 fprs = fprs_read();
101 fprs_write(FPRS_FEF); 103 fprs_write(FPRS_FEF);
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c
index bd76482077be..edb74f5a1186 100644
--- a/arch/sparc64/kernel/ds.c
+++ b/arch/sparc64/kernel/ds.c
@@ -972,8 +972,7 @@ static void process_ds_work(void)
972 LIST_HEAD(todo); 972 LIST_HEAD(todo);
973 973
974 spin_lock_irqsave(&ds_lock, flags); 974 spin_lock_irqsave(&ds_lock, flags);
975 list_splice(&ds_work_list, &todo); 975 list_splice_init(&ds_work_list, &todo);
976 INIT_LIST_HEAD(&ds_work_list);
977 spin_unlock_irqrestore(&ds_lock, flags); 976 spin_unlock_irqrestore(&ds_lock, flags);
978 977
979 list_for_each_entry_safe(qp, tmp, &todo, list) { 978 list_for_each_entry_safe(qp, tmp, &todo, list) {
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index 6be4d2d2904e..49eca4b1cf25 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -1705,6 +1705,36 @@ __flushw_user:
17052: retl 17052: retl
1706 nop 1706 nop
1707 1707
1708 /* Flush %fp and %i7 to the stack for all register
1709 * windows active inside of the cpu. This allows
1710 * show_stack_trace() to avoid using an expensive
1711 * 'flushw'.
1712 */
1713 .globl stack_trace_flush
1714 .type stack_trace_flush,#function
1715stack_trace_flush:
1716 rdpr %pstate, %o0
1717 wrpr %o0, PSTATE_IE, %pstate
1718
1719 rdpr %cwp, %g1
1720 rdpr %canrestore, %g2
1721 sub %g1, 1, %g3
1722
17231: brz,pn %g2, 2f
1724 sub %g2, 1, %g2
1725 wrpr %g3, %cwp
1726 stx %fp, [%sp + STACK_BIAS + RW_V9_I6]
1727 stx %i7, [%sp + STACK_BIAS + RW_V9_I7]
1728 ba,pt %xcc, 1b
1729 sub %g3, 1, %g3
1730
17312: wrpr %g1, %cwp
1732 wrpr %o0, %pstate
1733
1734 retl
1735 nop
1736 .size stack_trace_flush,.-stack_trace_flush
1737
1708#ifdef CONFIG_SMP 1738#ifdef CONFIG_SMP
1709 .globl hard_smp_processor_id 1739 .globl hard_smp_processor_id
1710hard_smp_processor_id: 1740hard_smp_processor_id:
diff --git a/arch/sparc64/kernel/entry.h b/arch/sparc64/kernel/entry.h
new file mode 100644
index 000000000000..4a91e9c6d31b
--- /dev/null
+++ b/arch/sparc64/kernel/entry.h
@@ -0,0 +1,196 @@
1#ifndef _ENTRY_H
2#define _ENTRY_H
3
4#include <linux/kernel.h>
5#include <linux/types.h>
6#include <linux/init.h>
7
8extern char *sparc_cpu_type;
9extern char *sparc_fpu_type;
10
11extern void __init per_cpu_patch(void);
12extern void __init sun4v_patch(void);
13extern void __init boot_cpu_id_too_large(int cpu);
14extern unsigned int dcache_parity_tl1_occurred;
15extern unsigned int icache_parity_tl1_occurred;
16
17extern asmlinkage void update_perfctrs(void);
18extern asmlinkage void sparc_breakpoint(struct pt_regs *regs);
19extern void timer_interrupt(int irq, struct pt_regs *regs);
20
21extern void do_notify_resume(struct pt_regs *regs,
22 unsigned long orig_i0,
23 int restart_syscall,
24 unsigned long thread_info_flags);
25
26extern asmlinkage void syscall_trace(struct pt_regs *regs,
27 int syscall_exit_p);
28
29extern void bad_trap_tl1(struct pt_regs *regs, long lvl);
30
31extern void do_fpe_common(struct pt_regs *regs);
32extern void do_fpieee(struct pt_regs *regs);
33extern void do_fpother(struct pt_regs *regs);
34extern void do_tof(struct pt_regs *regs);
35extern void do_div0(struct pt_regs *regs);
36extern void do_illegal_instruction(struct pt_regs *regs);
37extern void mem_address_unaligned(struct pt_regs *regs,
38 unsigned long sfar,
39 unsigned long sfsr);
40extern void sun4v_do_mna(struct pt_regs *regs,
41 unsigned long addr,
42 unsigned long type_ctx);
43extern void do_privop(struct pt_regs *regs);
44extern void do_privact(struct pt_regs *regs);
45extern void do_cee(struct pt_regs *regs);
46extern void do_cee_tl1(struct pt_regs *regs);
47extern void do_dae_tl1(struct pt_regs *regs);
48extern void do_iae_tl1(struct pt_regs *regs);
49extern void do_div0_tl1(struct pt_regs *regs);
50extern void do_fpdis_tl1(struct pt_regs *regs);
51extern void do_fpieee_tl1(struct pt_regs *regs);
52extern void do_fpother_tl1(struct pt_regs *regs);
53extern void do_ill_tl1(struct pt_regs *regs);
54extern void do_irq_tl1(struct pt_regs *regs);
55extern void do_lddfmna_tl1(struct pt_regs *regs);
56extern void do_stdfmna_tl1(struct pt_regs *regs);
57extern void do_paw(struct pt_regs *regs);
58extern void do_paw_tl1(struct pt_regs *regs);
59extern void do_vaw(struct pt_regs *regs);
60extern void do_vaw_tl1(struct pt_regs *regs);
61extern void do_tof_tl1(struct pt_regs *regs);
62extern void do_getpsr(struct pt_regs *regs);
63
64extern void spitfire_insn_access_exception(struct pt_regs *regs,
65 unsigned long sfsr,
66 unsigned long sfar);
67extern void spitfire_insn_access_exception_tl1(struct pt_regs *regs,
68 unsigned long sfsr,
69 unsigned long sfar);
70extern void spitfire_data_access_exception(struct pt_regs *regs,
71 unsigned long sfsr,
72 unsigned long sfar);
73extern void spitfire_data_access_exception_tl1(struct pt_regs *regs,
74 unsigned long sfsr,
75 unsigned long sfar);
76extern void spitfire_access_error(struct pt_regs *regs,
77 unsigned long status_encoded,
78 unsigned long afar);
79
80extern void cheetah_fecc_handler(struct pt_regs *regs,
81 unsigned long afsr,
82 unsigned long afar);
83extern void cheetah_cee_handler(struct pt_regs *regs,
84 unsigned long afsr,
85 unsigned long afar);
86extern void cheetah_deferred_handler(struct pt_regs *regs,
87 unsigned long afsr,
88 unsigned long afar);
89extern void cheetah_plus_parity_error(int type, struct pt_regs *regs);
90
91extern void sun4v_insn_access_exception(struct pt_regs *regs,
92 unsigned long addr,
93 unsigned long type_ctx);
94extern void sun4v_insn_access_exception_tl1(struct pt_regs *regs,
95 unsigned long addr,
96 unsigned long type_ctx);
97extern void sun4v_data_access_exception(struct pt_regs *regs,
98 unsigned long addr,
99 unsigned long type_ctx);
100extern void sun4v_data_access_exception_tl1(struct pt_regs *regs,
101 unsigned long addr,
102 unsigned long type_ctx);
103extern void sun4v_resum_error(struct pt_regs *regs,
104 unsigned long offset);
105extern void sun4v_resum_overflow(struct pt_regs *regs);
106extern void sun4v_nonresum_error(struct pt_regs *regs,
107 unsigned long offset);
108extern void sun4v_nonresum_overflow(struct pt_regs *regs);
109
110extern unsigned long sun4v_err_itlb_vaddr;
111extern unsigned long sun4v_err_itlb_ctx;
112extern unsigned long sun4v_err_itlb_pte;
113extern unsigned long sun4v_err_itlb_error;
114
115extern void sun4v_itlb_error_report(struct pt_regs *regs, int tl);
116
117extern unsigned long sun4v_err_dtlb_vaddr;
118extern unsigned long sun4v_err_dtlb_ctx;
119extern unsigned long sun4v_err_dtlb_pte;
120extern unsigned long sun4v_err_dtlb_error;
121
122extern void sun4v_dtlb_error_report(struct pt_regs *regs, int tl);
123extern void hypervisor_tlbop_error(unsigned long err,
124 unsigned long op);
125extern void hypervisor_tlbop_error_xcall(unsigned long err,
126 unsigned long op);
127
128/* WARNING: The error trap handlers in assembly know the precise
129 * layout of the following structure.
130 *
131 * C-level handlers in traps.c use this information to log the
132 * error and then determine how to recover (if possible).
133 */
134struct cheetah_err_info {
135/*0x00*/u64 afsr;
136/*0x08*/u64 afar;
137
138 /* D-cache state */
139/*0x10*/u64 dcache_data[4]; /* The actual data */
140/*0x30*/u64 dcache_index; /* D-cache index */
141/*0x38*/u64 dcache_tag; /* D-cache tag/valid */
142/*0x40*/u64 dcache_utag; /* D-cache microtag */
143/*0x48*/u64 dcache_stag; /* D-cache snooptag */
144
145 /* I-cache state */
146/*0x50*/u64 icache_data[8]; /* The actual insns + predecode */
147/*0x90*/u64 icache_index; /* I-cache index */
148/*0x98*/u64 icache_tag; /* I-cache phys tag */
149/*0xa0*/u64 icache_utag; /* I-cache microtag */
150/*0xa8*/u64 icache_stag; /* I-cache snooptag */
151/*0xb0*/u64 icache_upper; /* I-cache upper-tag */
152/*0xb8*/u64 icache_lower; /* I-cache lower-tag */
153
154 /* E-cache state */
155/*0xc0*/u64 ecache_data[4]; /* 32 bytes from staging registers */
156/*0xe0*/u64 ecache_index; /* E-cache index */
157/*0xe8*/u64 ecache_tag; /* E-cache tag/state */
158
159/*0xf0*/u64 __pad[32 - 30];
160};
161#define CHAFSR_INVALID ((u64)-1L)
162
163/* This is allocated at boot time based upon the largest hardware
164 * cpu ID in the system. We allocate two entries per cpu, one for
165 * TL==0 logging and one for TL >= 1 logging.
166 */
167extern struct cheetah_err_info *cheetah_error_log;
168
169/* UPA nodes send interrupt packet to UltraSparc with first data reg
170 * value low 5 (7 on Starfire) bits holding the IRQ identifier being
171 * delivered. We must translate this into a non-vector IRQ so we can
172 * set the softint on this cpu.
173 *
174 * To make processing these packets efficient and race free we use
175 * an array of irq buckets below. The interrupt vector handler in
176 * entry.S feeds incoming packets into per-cpu pil-indexed lists.
177 *
178 * If you make changes to ino_bucket, please update hand coded assembler
179 * of the vectored interrupt trap handler(s) in entry.S and sun4v_ivec.S
180 */
181struct ino_bucket {
182/*0x00*/unsigned long __irq_chain_pa;
183
184 /* Virtual interrupt number assigned to this INO. */
185/*0x08*/unsigned int __virt_irq;
186/*0x0c*/unsigned int __pad;
187};
188
189extern struct ino_bucket *ivector_table;
190extern unsigned long ivector_table_pa;
191
192extern void handler_irq(int irq, struct pt_regs *regs);
193extern void init_irqwork_curcpu(void);
194extern void __cpuinit sun4v_register_mondo_queues(int this_cpu);
195
196#endif /* _ENTRY_H */
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 44b105c04dd3..34f8ff57c56b 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -288,8 +288,12 @@ sun4v_chip_type:
288 /* Leave arg2 as-is, prom_mmu_ihandle_cache */ 288 /* Leave arg2 as-is, prom_mmu_ihandle_cache */
289 mov -1, %l3 289 mov -1, %l3
290 stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: mode (-1 default) 290 stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: mode (-1 default)
291 sethi %hi(8 * 1024 * 1024), %l3 291 /* 4MB align the kernel image size. */
292 stx %l3, [%sp + 2047 + 128 + 0x30] ! arg4: size (8MB) 292 set (_end - KERNBASE), %l3
293 set ((4 * 1024 * 1024) - 1), %l4
294 add %l3, %l4, %l3
295 andn %l3, %l4, %l3
296 stx %l3, [%sp + 2047 + 128 + 0x30] ! arg4: roundup(ksize, 4MB)
293 sethi %hi(KERNBASE), %l3 297 sethi %hi(KERNBASE), %l3
294 stx %l3, [%sp + 2047 + 128 + 0x38] ! arg5: vaddr (KERNBASE) 298 stx %l3, [%sp + 2047 + 128 + 0x38] ! arg5: vaddr (KERNBASE)
295 stx %g0, [%sp + 2047 + 128 + 0x40] ! arg6: empty 299 stx %g0, [%sp + 2047 + 128 + 0x40] ! arg6: empty
diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c
index fbaab3497bfd..b781d3d54fb8 100644
--- a/arch/sparc64/kernel/iommu.c
+++ b/arch/sparc64/kernel/iommu.c
@@ -626,7 +626,7 @@ static int dma_4u_map_sg(struct device *dev, struct scatterlist *sglist,
626iommu_map_failed: 626iommu_map_failed:
627 for_each_sg(sglist, s, nelems, i) { 627 for_each_sg(sglist, s, nelems, i) {
628 if (s->dma_length != 0) { 628 if (s->dma_length != 0) {
629 unsigned long vaddr, npages, entry, i; 629 unsigned long vaddr, npages, entry, j;
630 iopte_t *base; 630 iopte_t *base;
631 631
632 vaddr = s->dma_address & IO_PAGE_MASK; 632 vaddr = s->dma_address & IO_PAGE_MASK;
@@ -637,8 +637,8 @@ iommu_map_failed:
637 >> IO_PAGE_SHIFT; 637 >> IO_PAGE_SHIFT;
638 base = iommu->page_table + entry; 638 base = iommu->page_table + entry;
639 639
640 for (i = 0; i < npages; i++) 640 for (j = 0; j < npages; j++)
641 iopte_make_dummy(iommu, base + i); 641 iopte_make_dummy(iommu, base + j);
642 642
643 s->dma_address = DMA_ERROR_CODE; 643 s->dma_address = DMA_ERROR_CODE;
644 s->dma_length = 0; 644 s->dma_length = 0;
@@ -803,7 +803,7 @@ static void dma_4u_sync_sg_for_cpu(struct device *dev,
803 spin_unlock_irqrestore(&iommu->lock, flags); 803 spin_unlock_irqrestore(&iommu->lock, flags);
804} 804}
805 805
806const struct dma_ops sun4u_dma_ops = { 806static const struct dma_ops sun4u_dma_ops = {
807 .alloc_coherent = dma_4u_alloc_coherent, 807 .alloc_coherent = dma_4u_alloc_coherent,
808 .free_coherent = dma_4u_free_coherent, 808 .free_coherent = dma_4u_free_coherent,
809 .map_single = dma_4u_map_single, 809 .map_single = dma_4u_map_single,
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 5ec06c8c7fea..eb88bd6e674e 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -44,27 +44,10 @@
44#include <asm/hypervisor.h> 44#include <asm/hypervisor.h>
45#include <asm/cacheflush.h> 45#include <asm/cacheflush.h>
46 46
47/* UPA nodes send interrupt packet to UltraSparc with first data reg 47#include "entry.h"
48 * value low 5 (7 on Starfire) bits holding the IRQ identifier being
49 * delivered. We must translate this into a non-vector IRQ so we can
50 * set the softint on this cpu.
51 *
52 * To make processing these packets efficient and race free we use
53 * an array of irq buckets below. The interrupt vector handler in
54 * entry.S feeds incoming packets into per-cpu pil-indexed lists.
55 *
56 * If you make changes to ino_bucket, please update hand coded assembler
57 * of the vectored interrupt trap handler(s) in entry.S and sun4v_ivec.S
58 */
59struct ino_bucket {
60/*0x00*/unsigned long __irq_chain_pa;
61
62 /* Virtual interrupt number assigned to this INO. */
63/*0x08*/unsigned int __virt_irq;
64/*0x0c*/unsigned int __pad;
65};
66 48
67#define NUM_IVECS (IMAP_INR + 1) 49#define NUM_IVECS (IMAP_INR + 1)
50
68struct ino_bucket *ivector_table; 51struct ino_bucket *ivector_table;
69unsigned long ivector_table_pa; 52unsigned long ivector_table_pa;
70 53
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index e116e38b160e..acf8c5250aa9 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -731,9 +731,6 @@ asmlinkage int sparc_execve(struct pt_regs *regs)
731 current_thread_info()->xfsr[0] = 0; 731 current_thread_info()->xfsr[0] = 0;
732 current_thread_info()->fpsaved[0] = 0; 732 current_thread_info()->fpsaved[0] = 0;
733 regs->tstate &= ~TSTATE_PEF; 733 regs->tstate &= ~TSTATE_PEF;
734 task_lock(current);
735 current->ptrace &= ~PT_DTRACE;
736 task_unlock(current);
737 } 734 }
738out: 735out:
739 return error; 736 return error;
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index 9a1ba1fe859d..aaae865e7932 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -35,6 +35,9 @@
35#include <asm/spitfire.h> 35#include <asm/spitfire.h>
36#include <asm/page.h> 36#include <asm/page.h>
37#include <asm/cpudata.h> 37#include <asm/cpudata.h>
38#include <asm/cacheflush.h>
39
40#include "entry.h"
38 41
39/* #define ALLOW_INIT_TRACING */ 42/* #define ALLOW_INIT_TRACING */
40 43
@@ -67,6 +70,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
67 if (tlb_type == hypervisor) 70 if (tlb_type == hypervisor)
68 return; 71 return;
69 72
73 preempt_disable();
74
70#ifdef DCACHE_ALIASING_POSSIBLE 75#ifdef DCACHE_ALIASING_POSSIBLE
71 /* If bit 13 of the kernel address we used to access the 76 /* If bit 13 of the kernel address we used to access the
72 * user page is the same as the virtual address that page 77 * user page is the same as the virtual address that page
@@ -105,6 +110,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
105 for (; start < end; start += icache_line_size) 110 for (; start < end; start += icache_line_size)
106 flushi(start); 111 flushi(start);
107 } 112 }
113
114 preempt_enable();
108} 115}
109 116
110enum sparc_regset { 117enum sparc_regset {
@@ -382,6 +389,7 @@ static const struct user_regset_view user_sparc64_view = {
382 .regsets = sparc64_regsets, .n = ARRAY_SIZE(sparc64_regsets) 389 .regsets = sparc64_regsets, .n = ARRAY_SIZE(sparc64_regsets)
383}; 390};
384 391
392#ifdef CONFIG_COMPAT
385static int genregs32_get(struct task_struct *target, 393static int genregs32_get(struct task_struct *target,
386 const struct user_regset *regset, 394 const struct user_regset *regset,
387 unsigned int pos, unsigned int count, 395 unsigned int pos, unsigned int count,
@@ -676,14 +684,18 @@ static const struct user_regset_view user_sparc32_view = {
676 .name = "sparc", .e_machine = EM_SPARC, 684 .name = "sparc", .e_machine = EM_SPARC,
677 .regsets = sparc32_regsets, .n = ARRAY_SIZE(sparc32_regsets) 685 .regsets = sparc32_regsets, .n = ARRAY_SIZE(sparc32_regsets)
678}; 686};
687#endif /* CONFIG_COMPAT */
679 688
680const struct user_regset_view *task_user_regset_view(struct task_struct *task) 689const struct user_regset_view *task_user_regset_view(struct task_struct *task)
681{ 690{
691#ifdef CONFIG_COMPAT
682 if (test_tsk_thread_flag(task, TIF_32BIT)) 692 if (test_tsk_thread_flag(task, TIF_32BIT))
683 return &user_sparc32_view; 693 return &user_sparc32_view;
694#endif
684 return &user_sparc64_view; 695 return &user_sparc64_view;
685} 696}
686 697
698#ifdef CONFIG_COMPAT
687struct compat_fps { 699struct compat_fps {
688 unsigned int regs[32]; 700 unsigned int regs[32];
689 unsigned int fsr; 701 unsigned int fsr;
@@ -798,6 +810,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
798 810
799 return ret; 811 return ret;
800} 812}
813#endif /* CONFIG_COMPAT */
801 814
802struct fps { 815struct fps {
803 unsigned int regs[64]; 816 unsigned int regs[64];
@@ -807,11 +820,14 @@ struct fps {
807long arch_ptrace(struct task_struct *child, long request, long addr, long data) 820long arch_ptrace(struct task_struct *child, long request, long addr, long data)
808{ 821{
809 const struct user_regset_view *view = task_user_regset_view(child); 822 const struct user_regset_view *view = task_user_regset_view(child);
810 struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
811 unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4]; 823 unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4];
812 struct fps __user *fps = (struct fps __user *) addr; 824 struct pt_regs __user *pregs;
825 struct fps __user *fps;
813 int ret; 826 int ret;
814 827
828 pregs = (struct pt_regs __user *) (unsigned long) addr;
829 fps = (struct fps __user *) (unsigned long) addr;
830
815 switch (request) { 831 switch (request) {
816 case PTRACE_PEEKUSR: 832 case PTRACE_PEEKUSR:
817 ret = (addr != 0) ? -EIO : 0; 833 ret = (addr != 0) ? -EIO : 0;
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index d036dbe72864..6acb4c51cfe4 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -51,6 +51,8 @@
51#include <net/ipconfig.h> 51#include <net/ipconfig.h>
52#endif 52#endif
53 53
54#include "entry.h"
55
54/* Used to synchronize accesses to NatSemi SUPER I/O chip configure 56/* Used to synchronize accesses to NatSemi SUPER I/O chip configure
55 * operations in asm/ns87303.h 57 * operations in asm/ns87303.h
56 */ 58 */
@@ -335,9 +337,6 @@ void __init setup_arch(char **cmdline_p)
335 337
336/* BUFFER is PAGE_SIZE bytes long. */ 338/* BUFFER is PAGE_SIZE bytes long. */
337 339
338extern char *sparc_cpu_type;
339extern char *sparc_fpu_type;
340
341extern void smp_info(struct seq_file *); 340extern void smp_info(struct seq_file *);
342extern void smp_bogo(struct seq_file *); 341extern void smp_bogo(struct seq_file *);
343extern void mmu_info(struct seq_file *); 342extern void mmu_info(struct seq_file *);
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c
index fb13775b3682..94a9d64208ee 100644
--- a/arch/sparc64/kernel/signal.c
+++ b/arch/sparc64/kernel/signal.c
@@ -32,6 +32,9 @@
32#include <asm/siginfo.h> 32#include <asm/siginfo.h>
33#include <asm/visasm.h> 33#include <asm/visasm.h>
34 34
35#include "entry.h"
36#include "systbls.h"
37
35#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 38#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
36 39
37/* {set, get}context() needed for 64-bit SparcLinux userland. */ 40/* {set, get}context() needed for 64-bit SparcLinux userland. */
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index cc454731d879..59f020d69d4c 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1,6 +1,6 @@
1/* smp.c: Sparc64 SMP support. 1/* smp.c: Sparc64 SMP support.
2 * 2 *
3 * Copyright (C) 1997, 2007 David S. Miller (davem@davemloft.net) 3 * Copyright (C) 1997, 2007, 2008 David S. Miller (davem@davemloft.net)
4 */ 4 */
5 5
6#include <linux/module.h> 6#include <linux/module.h>
@@ -30,6 +30,7 @@
30#include <asm/cpudata.h> 30#include <asm/cpudata.h>
31#include <asm/hvtramp.h> 31#include <asm/hvtramp.h>
32#include <asm/io.h> 32#include <asm/io.h>
33#include <asm/timer.h>
33 34
34#include <asm/irq.h> 35#include <asm/irq.h>
35#include <asm/irq_regs.h> 36#include <asm/irq_regs.h>
@@ -284,14 +285,17 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg)
284{ 285{
285 extern unsigned long sparc64_ttable_tl0; 286 extern unsigned long sparc64_ttable_tl0;
286 extern unsigned long kern_locked_tte_data; 287 extern unsigned long kern_locked_tte_data;
287 extern int bigkernel;
288 struct hvtramp_descr *hdesc; 288 struct hvtramp_descr *hdesc;
289 unsigned long trampoline_ra; 289 unsigned long trampoline_ra;
290 struct trap_per_cpu *tb; 290 struct trap_per_cpu *tb;
291 u64 tte_vaddr, tte_data; 291 u64 tte_vaddr, tte_data;
292 unsigned long hv_err; 292 unsigned long hv_err;
293 int i;
293 294
294 hdesc = kzalloc(sizeof(*hdesc), GFP_KERNEL); 295 hdesc = kzalloc(sizeof(*hdesc) +
296 (sizeof(struct hvtramp_mapping) *
297 num_kernel_image_mappings - 1),
298 GFP_KERNEL);
295 if (!hdesc) { 299 if (!hdesc) {
296 printk(KERN_ERR "ldom_startcpu_cpuid: Cannot allocate " 300 printk(KERN_ERR "ldom_startcpu_cpuid: Cannot allocate "
297 "hvtramp_descr.\n"); 301 "hvtramp_descr.\n");
@@ -299,7 +303,7 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg)
299 } 303 }
300 304
301 hdesc->cpu = cpu; 305 hdesc->cpu = cpu;
302 hdesc->num_mappings = (bigkernel ? 2 : 1); 306 hdesc->num_mappings = num_kernel_image_mappings;
303 307
304 tb = &trap_block[cpu]; 308 tb = &trap_block[cpu];
305 tb->hdesc = hdesc; 309 tb->hdesc = hdesc;
@@ -312,13 +316,11 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg)
312 tte_vaddr = (unsigned long) KERNBASE; 316 tte_vaddr = (unsigned long) KERNBASE;
313 tte_data = kern_locked_tte_data; 317 tte_data = kern_locked_tte_data;
314 318
315 hdesc->maps[0].vaddr = tte_vaddr; 319 for (i = 0; i < hdesc->num_mappings; i++) {
316 hdesc->maps[0].tte = tte_data; 320 hdesc->maps[i].vaddr = tte_vaddr;
317 if (bigkernel) { 321 hdesc->maps[i].tte = tte_data;
318 tte_vaddr += 0x400000; 322 tte_vaddr += 0x400000;
319 tte_data += 0x400000; 323 tte_data += 0x400000;
320 hdesc->maps[1].vaddr = tte_vaddr;
321 hdesc->maps[1].tte = tte_data;
322 } 324 }
323 325
324 trampoline_ra = kimage_addr_to_ra(hv_cpu_startup); 326 trampoline_ra = kimage_addr_to_ra(hv_cpu_startup);
diff --git a/arch/sparc64/kernel/stacktrace.c b/arch/sparc64/kernel/stacktrace.c
index 47f92a59be18..84d39e873e88 100644
--- a/arch/sparc64/kernel/stacktrace.c
+++ b/arch/sparc64/kernel/stacktrace.c
@@ -2,13 +2,15 @@
2#include <linux/stacktrace.h> 2#include <linux/stacktrace.h>
3#include <linux/thread_info.h> 3#include <linux/thread_info.h>
4#include <asm/ptrace.h> 4#include <asm/ptrace.h>
5#include <asm/stacktrace.h>
5 6
6void save_stack_trace(struct stack_trace *trace) 7void save_stack_trace(struct stack_trace *trace)
7{ 8{
8 unsigned long ksp, fp, thread_base; 9 unsigned long ksp, fp, thread_base;
9 struct thread_info *tp = task_thread_info(current); 10 struct thread_info *tp = task_thread_info(current);
10 11
11 flushw_all(); 12 stack_trace_flush();
13
12 __asm__ __volatile__( 14 __asm__ __volatile__(
13 "mov %%fp, %0" 15 "mov %%fp, %0"
14 : "=r" (ksp) 16 : "=r" (ksp)
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c
index 134d801579f9..f952745d0f3d 100644
--- a/arch/sparc64/kernel/sys_sparc.c
+++ b/arch/sparc64/kernel/sys_sparc.c
@@ -1,5 +1,4 @@
1/* $Id: sys_sparc.c,v 1.57 2002/02/09 19:49:30 davem Exp $ 1/* linux/arch/sparc64/kernel/sys_sparc.c
2 * linux/arch/sparc64/kernel/sys_sparc.c
3 * 2 *
4 * This file contains various random system calls that 3 * This file contains various random system calls that
5 * have a non-standard calling sequence on the Linux/sparc 4 * have a non-standard calling sequence on the Linux/sparc
@@ -30,6 +29,9 @@
30#include <asm/perfctr.h> 29#include <asm/perfctr.h>
31#include <asm/unistd.h> 30#include <asm/unistd.h>
32 31
32#include "entry.h"
33#include "systbls.h"
34
33/* #define DEBUG_UNIMP_SYSCALL */ 35/* #define DEBUG_UNIMP_SYSCALL */
34 36
35asmlinkage unsigned long sys_getpagesize(void) 37asmlinkage unsigned long sys_getpagesize(void)
@@ -445,7 +447,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second,
445 goto out; 447 goto out;
446 case SEMTIMEDOP: 448 case SEMTIMEDOP:
447 err = sys_semtimedop(first, ptr, (unsigned)second, 449 err = sys_semtimedop(first, ptr, (unsigned)second,
448 (const struct timespec __user *) fifth); 450 (const struct timespec __user *)
451 (unsigned long) fifth);
449 goto out; 452 goto out;
450 case SEMGET: 453 case SEMGET:
451 err = sys_semget(first, (int)second, (int)third); 454 err = sys_semget(first, (int)second, (int)third);
@@ -788,7 +791,7 @@ asmlinkage long sys_utrap_install(utrap_entry_t type,
788 } else { 791 } else {
789 if ((utrap_handler_t)current_thread_info()->utraps[type] != new_p && 792 if ((utrap_handler_t)current_thread_info()->utraps[type] != new_p &&
790 current_thread_info()->utraps[0] > 1) { 793 current_thread_info()->utraps[0] > 1) {
791 long *p = current_thread_info()->utraps; 794 unsigned long *p = current_thread_info()->utraps;
792 795
793 current_thread_info()->utraps = 796 current_thread_info()->utraps =
794 kmalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long), 797 kmalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long),
@@ -816,7 +819,8 @@ asmlinkage long sys_utrap_install(utrap_entry_t type,
816 return 0; 819 return 0;
817} 820}
818 821
819long sparc_memory_ordering(unsigned long model, struct pt_regs *regs) 822asmlinkage long sparc_memory_ordering(unsigned long model,
823 struct pt_regs *regs)
820{ 824{
821 if (model >= 3) 825 if (model >= 3)
822 return -EINVAL; 826 return -EINVAL;
diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c
index deaba2bd0535..2455fa498876 100644
--- a/arch/sparc64/kernel/sys_sparc32.c
+++ b/arch/sparc64/kernel/sys_sparc32.c
@@ -678,9 +678,6 @@ asmlinkage long sparc32_execve(struct pt_regs *regs)
678 current_thread_info()->xfsr[0] = 0; 678 current_thread_info()->xfsr[0] = 0;
679 current_thread_info()->fpsaved[0] = 0; 679 current_thread_info()->fpsaved[0] = 0;
680 regs->tstate &= ~TSTATE_PEF; 680 regs->tstate &= ~TSTATE_PEF;
681 task_lock(current);
682 current->ptrace &= ~PT_DTRACE;
683 task_unlock(current);
684 } 681 }
685out: 682out:
686 return error; 683 return error;
diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c
index cfc22d3fe54c..e91194fe39d7 100644
--- a/arch/sparc64/kernel/sys_sunos32.c
+++ b/arch/sparc64/kernel/sys_sunos32.c
@@ -618,7 +618,7 @@ sunos_nfs_get_server_fd (int fd, struct sockaddr_in *addr)
618 618
619 socket = SOCKET_I(inode); 619 socket = SOCKET_I(inode);
620 local.sin_family = AF_INET; 620 local.sin_family = AF_INET;
621 local.sin_addr.s_addr = INADDR_ANY; 621 local.sin_addr.s_addr = htonl(INADDR_ANY);
622 622
623 /* IPPORT_RESERVED = 1024, can't find the definition in the kernel */ 623 /* IPPORT_RESERVED = 1024, can't find the definition in the kernel */
624 try_port = 1024; 624 try_port = 1024;
diff --git a/arch/sparc64/kernel/systbls.h b/arch/sparc64/kernel/systbls.h
new file mode 100644
index 000000000000..8a0d20a35d0c
--- /dev/null
+++ b/arch/sparc64/kernel/systbls.h
@@ -0,0 +1,53 @@
1#ifndef _SYSTBLS_H
2#define _SYSTBLS_H
3
4#include <linux/kernel.h>
5#include <linux/types.h>
6#include <linux/utsname.h>
7#include <asm/utrap.h>
8#include <asm/signal.h>
9
10extern asmlinkage unsigned long sys_getpagesize(void);
11extern asmlinkage unsigned long sparc_brk(unsigned long brk);
12extern asmlinkage long sparc_pipe(struct pt_regs *regs);
13extern asmlinkage long sys_ipc(unsigned int call, int first,
14 unsigned long second,
15 unsigned long third,
16 void __user *ptr, long fifth);
17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
18extern asmlinkage long sparc64_personality(unsigned long personality);
19extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
20 unsigned long prot, unsigned long flags,
21 unsigned long fd, unsigned long off);
22extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
23extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
24 unsigned long old_len,
25 unsigned long new_len,
26 unsigned long flags,
27 unsigned long new_addr);
28extern asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs);
29extern asmlinkage long sys_getdomainname(char __user *name, int len);
30extern asmlinkage long solaris_syscall(struct pt_regs *regs);
31extern asmlinkage long sunos_syscall(struct pt_regs *regs);
32extern asmlinkage long sys_utrap_install(utrap_entry_t type,
33 utrap_handler_t new_p,
34 utrap_handler_t new_d,
35 utrap_handler_t __user *old_p,
36 utrap_handler_t __user *old_d);
37extern asmlinkage long sparc_memory_ordering(unsigned long model,
38 struct pt_regs *regs);
39extern asmlinkage long sys_rt_sigaction(int sig,
40 const struct sigaction __user *act,
41 struct sigaction __user *oact,
42 void __user *restorer,
43 size_t sigsetsize);
44extern asmlinkage long sys_perfctr(int opcode, unsigned long arg0,
45 unsigned long arg1, unsigned long arg2);
46
47extern asmlinkage void sparc64_set_context(struct pt_regs *regs);
48extern asmlinkage void sparc64_get_context(struct pt_regs *regs);
49extern asmlinkage long sys_sigpause(unsigned int set);
50extern asmlinkage long sys_sigsuspend(old_sigset_t set);
51extern void do_rt_sigreturn(struct pt_regs *regs);
52
53#endif /* _SYSTBLS_H */
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
index d204f1ab1d4c..e5d238970c7e 100644
--- a/arch/sparc64/kernel/time.c
+++ b/arch/sparc64/kernel/time.c
@@ -1,7 +1,6 @@
1/* $Id: time.c,v 1.42 2002/01/23 14:33:55 davem Exp $ 1/* time.c: UltraSparc timer and TOD clock support.
2 * time.c: UltraSparc timer and TOD clock support.
3 * 2 *
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1997, 2008 David S. Miller (davem@davemloft.net)
5 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 4 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be)
6 * 5 *
7 * Based largely on code which is: 6 * Based largely on code which is:
@@ -48,6 +47,8 @@
48#include <asm/uaccess.h> 47#include <asm/uaccess.h>
49#include <asm/irq_regs.h> 48#include <asm/irq_regs.h>
50 49
50#include "entry.h"
51
51DEFINE_SPINLOCK(mostek_lock); 52DEFINE_SPINLOCK(mostek_lock);
52DEFINE_SPINLOCK(rtc_lock); 53DEFINE_SPINLOCK(rtc_lock);
53void __iomem *mstk48t02_regs = NULL; 54void __iomem *mstk48t02_regs = NULL;
@@ -508,6 +509,37 @@ static int __init has_low_battery(void)
508 return (data1 == data2); /* Was the write blocked? */ 509 return (data1 == data2); /* Was the write blocked? */
509} 510}
510 511
512static void __init mostek_set_system_time(void __iomem *mregs)
513{
514 unsigned int year, mon, day, hour, min, sec;
515 u8 tmp;
516
517 spin_lock_irq(&mostek_lock);
518
519 /* Traditional Mostek chip. */
520 tmp = mostek_read(mregs + MOSTEK_CREG);
521 tmp |= MSTK_CREG_READ;
522 mostek_write(mregs + MOSTEK_CREG, tmp);
523
524 sec = MSTK_REG_SEC(mregs);
525 min = MSTK_REG_MIN(mregs);
526 hour = MSTK_REG_HOUR(mregs);
527 day = MSTK_REG_DOM(mregs);
528 mon = MSTK_REG_MONTH(mregs);
529 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) );
530
531 xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
532 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
533 set_normalized_timespec(&wall_to_monotonic,
534 -xtime.tv_sec, -xtime.tv_nsec);
535
536 tmp = mostek_read(mregs + MOSTEK_CREG);
537 tmp &= ~MSTK_CREG_READ;
538 mostek_write(mregs + MOSTEK_CREG, tmp);
539
540 spin_unlock_irq(&mostek_lock);
541}
542
511/* Probe for the real time clock chip. */ 543/* Probe for the real time clock chip. */
512static void __init set_system_time(void) 544static void __init set_system_time(void)
513{ 545{
@@ -520,7 +552,6 @@ static void __init set_system_time(void)
520 unsigned long dregs = 0UL; 552 unsigned long dregs = 0UL;
521 void __iomem *bregs = 0UL; 553 void __iomem *bregs = 0UL;
522#endif 554#endif
523 u8 tmp;
524 555
525 if (!mregs && !dregs && !bregs) { 556 if (!mregs && !dregs && !bregs) {
526 prom_printf("Something wrong, clock regs not mapped yet.\n"); 557 prom_printf("Something wrong, clock regs not mapped yet.\n");
@@ -528,20 +559,11 @@ static void __init set_system_time(void)
528 } 559 }
529 560
530 if (mregs) { 561 if (mregs) {
531 spin_lock_irq(&mostek_lock); 562 mostek_set_system_time(mregs);
532 563 return;
533 /* Traditional Mostek chip. */ 564 }
534 tmp = mostek_read(mregs + MOSTEK_CREG);
535 tmp |= MSTK_CREG_READ;
536 mostek_write(mregs + MOSTEK_CREG, tmp);
537 565
538 sec = MSTK_REG_SEC(mregs); 566 if (bregs) {
539 min = MSTK_REG_MIN(mregs);
540 hour = MSTK_REG_HOUR(mregs);
541 day = MSTK_REG_DOM(mregs);
542 mon = MSTK_REG_MONTH(mregs);
543 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) );
544 } else if (bregs) {
545 unsigned char val = readb(bregs + 0x0e); 567 unsigned char val = readb(bregs + 0x0e);
546 unsigned int century; 568 unsigned int century;
547 569
@@ -596,14 +618,6 @@ static void __init set_system_time(void)
596 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); 618 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
597 set_normalized_timespec(&wall_to_monotonic, 619 set_normalized_timespec(&wall_to_monotonic,
598 -xtime.tv_sec, -xtime.tv_nsec); 620 -xtime.tv_sec, -xtime.tv_nsec);
599
600 if (mregs) {
601 tmp = mostek_read(mregs + MOSTEK_CREG);
602 tmp &= ~MSTK_CREG_READ;
603 mostek_write(mregs + MOSTEK_CREG, tmp);
604
605 spin_unlock_irq(&mostek_lock);
606 }
607} 621}
608 622
609/* davem suggests we keep this within the 4M locked kernel image */ 623/* davem suggests we keep this within the 4M locked kernel image */
@@ -1027,7 +1041,7 @@ void __init time_init(void)
1027 setup_clockevent_multiplier(clock); 1041 setup_clockevent_multiplier(clock);
1028 1042
1029 sparc64_clockevent.max_delta_ns = 1043 sparc64_clockevent.max_delta_ns =
1030 clockevent_delta2ns(0x7fffffffffffffff, &sparc64_clockevent); 1044 clockevent_delta2ns(0x7fffffffffffffffUL, &sparc64_clockevent);
1031 sparc64_clockevent.min_delta_ns = 1045 sparc64_clockevent.min_delta_ns =
1032 clockevent_delta2ns(0xF, &sparc64_clockevent); 1046 clockevent_delta2ns(0xF, &sparc64_clockevent);
1033 1047
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S
index 4ae2e525d68b..56ff55211341 100644
--- a/arch/sparc64/kernel/trampoline.S
+++ b/arch/sparc64/kernel/trampoline.S
@@ -105,7 +105,7 @@ startup_continue:
105 wr %g2, 0, %tick_cmpr 105 wr %g2, 0, %tick_cmpr
106 106
107 /* Call OBP by hand to lock KERNBASE into i/d tlbs. 107 /* Call OBP by hand to lock KERNBASE into i/d tlbs.
108 * We lock 2 consequetive entries if we are 'bigkernel'. 108 * We lock 'num_kernel_image_mappings' consequetive entries.
109 */ 109 */
110 sethi %hi(prom_entry_lock), %g2 110 sethi %hi(prom_entry_lock), %g2
1111: ldstub [%g2 + %lo(prom_entry_lock)], %g1 1111: ldstub [%g2 + %lo(prom_entry_lock)], %g1
@@ -119,6 +119,29 @@ startup_continue:
119 add %l2, -(192 + 128), %sp 119 add %l2, -(192 + 128), %sp
120 flushw 120 flushw
121 121
122 /* Setup the loop variables:
123 * %l3: VADDR base
124 * %l4: TTE base
125 * %l5: Loop iterator, iterates from 0 to 'num_kernel_image_mappings'
126 * %l6: Number of TTE entries to map
127 * %l7: Highest TTE entry number, we count down
128 */
129 sethi %hi(KERNBASE), %l3
130 sethi %hi(kern_locked_tte_data), %l4
131 ldx [%l4 + %lo(kern_locked_tte_data)], %l4
132 clr %l5
133 sethi %hi(num_kernel_image_mappings), %l6
134 lduw [%l6 + %lo(num_kernel_image_mappings)], %l6
135 add %l6, 1, %l6
136
137 mov 15, %l7
138 BRANCH_IF_ANY_CHEETAH(g1,g5,2f)
139
140 mov 63, %l7
1412:
142
1433:
144 /* Lock into I-MMU */
122 sethi %hi(call_method), %g2 145 sethi %hi(call_method), %g2
123 or %g2, %lo(call_method), %g2 146 or %g2, %lo(call_method), %g2
124 stx %g2, [%sp + 2047 + 128 + 0x00] 147 stx %g2, [%sp + 2047 + 128 + 0x00]
@@ -132,63 +155,26 @@ startup_continue:
132 sethi %hi(prom_mmu_ihandle_cache), %g2 155 sethi %hi(prom_mmu_ihandle_cache), %g2
133 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2 156 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2
134 stx %g2, [%sp + 2047 + 128 + 0x20] 157 stx %g2, [%sp + 2047 + 128 + 0x20]
135 sethi %hi(KERNBASE), %g2
136 stx %g2, [%sp + 2047 + 128 + 0x28]
137 sethi %hi(kern_locked_tte_data), %g2
138 ldx [%g2 + %lo(kern_locked_tte_data)], %g2
139 stx %g2, [%sp + 2047 + 128 + 0x30]
140
141 mov 15, %g2
142 BRANCH_IF_ANY_CHEETAH(g1,g5,1f)
143 158
144 mov 63, %g2 159 /* Each TTE maps 4MB, convert index to offset. */
1451: 160 sllx %l5, 22, %g1
146 stx %g2, [%sp + 2047 + 128 + 0x38]
147 sethi %hi(p1275buf), %g2
148 or %g2, %lo(p1275buf), %g2
149 ldx [%g2 + 0x08], %o1
150 call %o1
151 add %sp, (2047 + 128), %o0
152 161
153 sethi %hi(bigkernel), %g2 162 add %l3, %g1, %g2
154 lduw [%g2 + %lo(bigkernel)], %g2 163 stx %g2, [%sp + 2047 + 128 + 0x28] ! VADDR
155 brz,pt %g2, do_dtlb 164 add %l4, %g1, %g2
156 nop 165 stx %g2, [%sp + 2047 + 128 + 0x30] ! TTE
157 166
158 sethi %hi(call_method), %g2 167 /* TTE index is highest minus loop index. */
159 or %g2, %lo(call_method), %g2 168 sub %l7, %l5, %g2
160 stx %g2, [%sp + 2047 + 128 + 0x00]
161 mov 5, %g2
162 stx %g2, [%sp + 2047 + 128 + 0x08]
163 mov 1, %g2
164 stx %g2, [%sp + 2047 + 128 + 0x10]
165 sethi %hi(itlb_load), %g2
166 or %g2, %lo(itlb_load), %g2
167 stx %g2, [%sp + 2047 + 128 + 0x18]
168 sethi %hi(prom_mmu_ihandle_cache), %g2
169 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2
170 stx %g2, [%sp + 2047 + 128 + 0x20]
171 sethi %hi(KERNBASE + 0x400000), %g2
172 stx %g2, [%sp + 2047 + 128 + 0x28]
173 sethi %hi(kern_locked_tte_data), %g2
174 ldx [%g2 + %lo(kern_locked_tte_data)], %g2
175 sethi %hi(0x400000), %g1
176 add %g2, %g1, %g2
177 stx %g2, [%sp + 2047 + 128 + 0x30]
178
179 mov 14, %g2
180 BRANCH_IF_ANY_CHEETAH(g1,g5,1f)
181
182 mov 62, %g2
1831:
184 stx %g2, [%sp + 2047 + 128 + 0x38] 169 stx %g2, [%sp + 2047 + 128 + 0x38]
170
185 sethi %hi(p1275buf), %g2 171 sethi %hi(p1275buf), %g2
186 or %g2, %lo(p1275buf), %g2 172 or %g2, %lo(p1275buf), %g2
187 ldx [%g2 + 0x08], %o1 173 ldx [%g2 + 0x08], %o1
188 call %o1 174 call %o1
189 add %sp, (2047 + 128), %o0 175 add %sp, (2047 + 128), %o0
190 176
191do_dtlb: 177 /* Lock into D-MMU */
192 sethi %hi(call_method), %g2 178 sethi %hi(call_method), %g2
193 or %g2, %lo(call_method), %g2 179 or %g2, %lo(call_method), %g2
194 stx %g2, [%sp + 2047 + 128 + 0x00] 180 stx %g2, [%sp + 2047 + 128 + 0x00]
@@ -202,65 +188,30 @@ do_dtlb:
202 sethi %hi(prom_mmu_ihandle_cache), %g2 188 sethi %hi(prom_mmu_ihandle_cache), %g2
203 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2 189 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2
204 stx %g2, [%sp + 2047 + 128 + 0x20] 190 stx %g2, [%sp + 2047 + 128 + 0x20]
205 sethi %hi(KERNBASE), %g2
206 stx %g2, [%sp + 2047 + 128 + 0x28]
207 sethi %hi(kern_locked_tte_data), %g2
208 ldx [%g2 + %lo(kern_locked_tte_data)], %g2
209 stx %g2, [%sp + 2047 + 128 + 0x30]
210 191
211 mov 15, %g2 192 /* Each TTE maps 4MB, convert index to offset. */
212 BRANCH_IF_ANY_CHEETAH(g1,g5,1f) 193 sllx %l5, 22, %g1
213 194
214 mov 63, %g2 195 add %l3, %g1, %g2
2151: 196 stx %g2, [%sp + 2047 + 128 + 0x28] ! VADDR
197 add %l4, %g1, %g2
198 stx %g2, [%sp + 2047 + 128 + 0x30] ! TTE
216 199
200 /* TTE index is highest minus loop index. */
201 sub %l7, %l5, %g2
217 stx %g2, [%sp + 2047 + 128 + 0x38] 202 stx %g2, [%sp + 2047 + 128 + 0x38]
203
218 sethi %hi(p1275buf), %g2 204 sethi %hi(p1275buf), %g2
219 or %g2, %lo(p1275buf), %g2 205 or %g2, %lo(p1275buf), %g2
220 ldx [%g2 + 0x08], %o1 206 ldx [%g2 + 0x08], %o1
221 call %o1 207 call %o1
222 add %sp, (2047 + 128), %o0 208 add %sp, (2047 + 128), %o0
223 209
224 sethi %hi(bigkernel), %g2 210 add %l5, 1, %l5
225 lduw [%g2 + %lo(bigkernel)], %g2 211 cmp %l5, %l6
226 brz,pt %g2, do_unlock 212 bne,pt %xcc, 3b
227 nop 213 nop
228 214
229 sethi %hi(call_method), %g2
230 or %g2, %lo(call_method), %g2
231 stx %g2, [%sp + 2047 + 128 + 0x00]
232 mov 5, %g2
233 stx %g2, [%sp + 2047 + 128 + 0x08]
234 mov 1, %g2
235 stx %g2, [%sp + 2047 + 128 + 0x10]
236 sethi %hi(dtlb_load), %g2
237 or %g2, %lo(dtlb_load), %g2
238 stx %g2, [%sp + 2047 + 128 + 0x18]
239 sethi %hi(prom_mmu_ihandle_cache), %g2
240 lduw [%g2 + %lo(prom_mmu_ihandle_cache)], %g2
241 stx %g2, [%sp + 2047 + 128 + 0x20]
242 sethi %hi(KERNBASE + 0x400000), %g2
243 stx %g2, [%sp + 2047 + 128 + 0x28]
244 sethi %hi(kern_locked_tte_data), %g2
245 ldx [%g2 + %lo(kern_locked_tte_data)], %g2
246 sethi %hi(0x400000), %g1
247 add %g2, %g1, %g2
248 stx %g2, [%sp + 2047 + 128 + 0x30]
249
250 mov 14, %g2
251 BRANCH_IF_ANY_CHEETAH(g1,g5,1f)
252
253 mov 62, %g2
2541:
255
256 stx %g2, [%sp + 2047 + 128 + 0x38]
257 sethi %hi(p1275buf), %g2
258 or %g2, %lo(p1275buf), %g2
259 ldx [%g2 + 0x08], %o1
260 call %o1
261 add %sp, (2047 + 128), %o0
262
263do_unlock:
264 sethi %hi(prom_entry_lock), %g2 215 sethi %hi(prom_entry_lock), %g2
265 stb %g0, [%g2 + %lo(prom_entry_lock)] 216 stb %g0, [%g2 + %lo(prom_entry_lock)]
266 membar #StoreStore | #StoreLoad 217 membar #StoreStore | #StoreLoad
@@ -269,47 +220,36 @@ do_unlock:
269 nop 220 nop
270 221
271niagara_lock_tlb: 222niagara_lock_tlb:
223 sethi %hi(KERNBASE), %l3
224 sethi %hi(kern_locked_tte_data), %l4
225 ldx [%l4 + %lo(kern_locked_tte_data)], %l4
226 clr %l5
227 sethi %hi(num_kernel_image_mappings), %l6
228 lduw [%l6 + %lo(num_kernel_image_mappings)], %l6
229 add %l6, 1, %l6
230
2311:
272 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 232 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
273 sethi %hi(KERNBASE), %o0 233 sllx %l5, 22, %g2
234 add %l3, %g2, %o0
274 clr %o1 235 clr %o1
275 sethi %hi(kern_locked_tte_data), %o2 236 add %l4, %g2, %o2
276 ldx [%o2 + %lo(kern_locked_tte_data)], %o2
277 mov HV_MMU_IMMU, %o3 237 mov HV_MMU_IMMU, %o3
278 ta HV_FAST_TRAP 238 ta HV_FAST_TRAP
279 239
280 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 240 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
281 sethi %hi(KERNBASE), %o0 241 sllx %l5, 22, %g2
242 add %l3, %g2, %o0
282 clr %o1 243 clr %o1
283 sethi %hi(kern_locked_tte_data), %o2 244 add %l4, %g2, %o2
284 ldx [%o2 + %lo(kern_locked_tte_data)], %o2
285 mov HV_MMU_DMMU, %o3 245 mov HV_MMU_DMMU, %o3
286 ta HV_FAST_TRAP 246 ta HV_FAST_TRAP
287 247
288 sethi %hi(bigkernel), %g2 248 add %l5, 1, %l5
289 lduw [%g2 + %lo(bigkernel)], %g2 249 cmp %l5, %l6
290 brz,pt %g2, after_lock_tlb 250 bne,pt %xcc, 1b
291 nop 251 nop
292 252
293 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
294 sethi %hi(KERNBASE + 0x400000), %o0
295 clr %o1
296 sethi %hi(kern_locked_tte_data), %o2
297 ldx [%o2 + %lo(kern_locked_tte_data)], %o2
298 sethi %hi(0x400000), %o3
299 add %o2, %o3, %o2
300 mov HV_MMU_IMMU, %o3
301 ta HV_FAST_TRAP
302
303 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
304 sethi %hi(KERNBASE + 0x400000), %o0
305 clr %o1
306 sethi %hi(kern_locked_tte_data), %o2
307 ldx [%o2 + %lo(kern_locked_tte_data)], %o2
308 sethi %hi(0x400000), %o3
309 add %o2, %o3, %o2
310 mov HV_MMU_DMMU, %o3
311 ta HV_FAST_TRAP
312
313after_lock_tlb: 253after_lock_tlb:
314 wrpr %g0, (PSTATE_PRIV | PSTATE_PEF), %pstate 254 wrpr %g0, (PSTATE_PRIV | PSTATE_PEF), %pstate
315 wr %g0, 0, %fprs 255 wr %g0, 0, %fprs
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 007f5317c0de..96da847023f3 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -42,6 +42,7 @@
42#endif 42#endif
43#include <asm/prom.h> 43#include <asm/prom.h>
44 44
45#include "entry.h"
45 46
46/* When an irrecoverable trap occurs at tl > 0, the trap entry 47/* When an irrecoverable trap occurs at tl > 0, the trap entry
47 * code logs the trap state registers at every level in the trap 48 * code logs the trap state registers at every level in the trap
@@ -77,11 +78,6 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
77 } 78 }
78} 79}
79 80
80void do_call_debug(struct pt_regs *regs)
81{
82 notify_die(DIE_CALL, "debug call", regs, 0, 255, SIGINT);
83}
84
85void bad_trap(struct pt_regs *regs, long lvl) 81void bad_trap(struct pt_regs *regs, long lvl)
86{ 82{
87 char buffer[32]; 83 char buffer[32];
@@ -550,41 +546,6 @@ static unsigned long ecache_flush_physbase;
550static unsigned long ecache_flush_linesize; 546static unsigned long ecache_flush_linesize;
551static unsigned long ecache_flush_size; 547static unsigned long ecache_flush_size;
552 548
553/* WARNING: The error trap handlers in assembly know the precise
554 * layout of the following structure.
555 *
556 * C-level handlers below use this information to log the error
557 * and then determine how to recover (if possible).
558 */
559struct cheetah_err_info {
560/*0x00*/u64 afsr;
561/*0x08*/u64 afar;
562
563 /* D-cache state */
564/*0x10*/u64 dcache_data[4]; /* The actual data */
565/*0x30*/u64 dcache_index; /* D-cache index */
566/*0x38*/u64 dcache_tag; /* D-cache tag/valid */
567/*0x40*/u64 dcache_utag; /* D-cache microtag */
568/*0x48*/u64 dcache_stag; /* D-cache snooptag */
569
570 /* I-cache state */
571/*0x50*/u64 icache_data[8]; /* The actual insns + predecode */
572/*0x90*/u64 icache_index; /* I-cache index */
573/*0x98*/u64 icache_tag; /* I-cache phys tag */
574/*0xa0*/u64 icache_utag; /* I-cache microtag */
575/*0xa8*/u64 icache_stag; /* I-cache snooptag */
576/*0xb0*/u64 icache_upper; /* I-cache upper-tag */
577/*0xb8*/u64 icache_lower; /* I-cache lower-tag */
578
579 /* E-cache state */
580/*0xc0*/u64 ecache_data[4]; /* 32 bytes from staging registers */
581/*0xe0*/u64 ecache_index; /* E-cache index */
582/*0xe8*/u64 ecache_tag; /* E-cache tag/state */
583
584/*0xf0*/u64 __pad[32 - 30];
585};
586#define CHAFSR_INVALID ((u64)-1L)
587
588/* This table is ordered in priority of errors and matches the 549/* This table is ordered in priority of errors and matches the
589 * AFAR overwrite policy as well. 550 * AFAR overwrite policy as well.
590 */ 551 */
@@ -758,10 +719,6 @@ static struct afsr_error_table __jalapeno_error_table[] = {
758static struct afsr_error_table *cheetah_error_table; 719static struct afsr_error_table *cheetah_error_table;
759static unsigned long cheetah_afsr_errors; 720static unsigned long cheetah_afsr_errors;
760 721
761/* This is allocated at boot time based upon the largest hardware
762 * cpu ID in the system. We allocate two entries per cpu, one for
763 * TL==0 logging and one for TL >= 1 logging.
764 */
765struct cheetah_err_info *cheetah_error_log; 722struct cheetah_err_info *cheetah_error_log;
766 723
767static inline struct cheetah_err_info *cheetah_get_error_log(unsigned long afsr) 724static inline struct cheetah_err_info *cheetah_get_error_log(unsigned long afsr)
@@ -2102,7 +2059,7 @@ void do_div0(struct pt_regs *regs)
2102 force_sig_info(SIGFPE, &info, current); 2059 force_sig_info(SIGFPE, &info, current);
2103} 2060}
2104 2061
2105void instruction_dump (unsigned int *pc) 2062static void instruction_dump(unsigned int *pc)
2106{ 2063{
2107 int i; 2064 int i;
2108 2065
@@ -2115,7 +2072,7 @@ void instruction_dump (unsigned int *pc)
2115 printk("\n"); 2072 printk("\n");
2116} 2073}
2117 2074
2118static void user_instruction_dump (unsigned int __user *pc) 2075static void user_instruction_dump(unsigned int __user *pc)
2119{ 2076{
2120 int i; 2077 int i;
2121 unsigned int buf[9]; 2078 unsigned int buf[9];
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index b5c30416fdac..f37078d96407 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -46,6 +46,7 @@
46#include <asm/prom.h> 46#include <asm/prom.h>
47#include <asm/sstate.h> 47#include <asm/sstate.h>
48#include <asm/mdesc.h> 48#include <asm/mdesc.h>
49#include <asm/cpudata.h>
49 50
50#define MAX_PHYS_ADDRESS (1UL << 42UL) 51#define MAX_PHYS_ADDRESS (1UL << 42UL)
51#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) 52#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL)
@@ -166,7 +167,7 @@ unsigned long sparc64_kern_pri_context __read_mostly;
166unsigned long sparc64_kern_pri_nuc_bits __read_mostly; 167unsigned long sparc64_kern_pri_nuc_bits __read_mostly;
167unsigned long sparc64_kern_sec_context __read_mostly; 168unsigned long sparc64_kern_sec_context __read_mostly;
168 169
169int bigkernel = 0; 170int num_kernel_image_mappings;
170 171
171#ifdef CONFIG_DEBUG_DCFLUSH 172#ifdef CONFIG_DEBUG_DCFLUSH
172atomic_t dcpage_flushes = ATOMIC_INIT(0); 173atomic_t dcpage_flushes = ATOMIC_INIT(0);
@@ -572,7 +573,7 @@ static unsigned long kern_large_tte(unsigned long paddr);
572static void __init remap_kernel(void) 573static void __init remap_kernel(void)
573{ 574{
574 unsigned long phys_page, tte_vaddr, tte_data; 575 unsigned long phys_page, tte_vaddr, tte_data;
575 int tlb_ent = sparc64_highest_locked_tlbent(); 576 int i, tlb_ent = sparc64_highest_locked_tlbent();
576 577
577 tte_vaddr = (unsigned long) KERNBASE; 578 tte_vaddr = (unsigned long) KERNBASE;
578 phys_page = (prom_boot_mapping_phys_low >> 22UL) << 22UL; 579 phys_page = (prom_boot_mapping_phys_low >> 22UL) << 22UL;
@@ -582,27 +583,20 @@ static void __init remap_kernel(void)
582 583
583 /* Now lock us into the TLBs via Hypervisor or OBP. */ 584 /* Now lock us into the TLBs via Hypervisor or OBP. */
584 if (tlb_type == hypervisor) { 585 if (tlb_type == hypervisor) {
585 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_DMMU); 586 for (i = 0; i < num_kernel_image_mappings; i++) {
586 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_IMMU);
587 if (bigkernel) {
588 tte_vaddr += 0x400000;
589 tte_data += 0x400000;
590 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_DMMU); 587 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_DMMU);
591 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_IMMU); 588 hypervisor_tlb_lock(tte_vaddr, tte_data, HV_MMU_IMMU);
589 tte_vaddr += 0x400000;
590 tte_data += 0x400000;
592 } 591 }
593 } else { 592 } else {
594 prom_dtlb_load(tlb_ent, tte_data, tte_vaddr); 593 for (i = 0; i < num_kernel_image_mappings; i++) {
595 prom_itlb_load(tlb_ent, tte_data, tte_vaddr); 594 prom_dtlb_load(tlb_ent - i, tte_data, tte_vaddr);
596 if (bigkernel) { 595 prom_itlb_load(tlb_ent - i, tte_data, tte_vaddr);
597 tlb_ent -= 1; 596 tte_vaddr += 0x400000;
598 prom_dtlb_load(tlb_ent, 597 tte_data += 0x400000;
599 tte_data + 0x400000,
600 tte_vaddr + 0x400000);
601 prom_itlb_load(tlb_ent,
602 tte_data + 0x400000,
603 tte_vaddr + 0x400000);
604 } 598 }
605 sparc64_highest_unlocked_tlb_ent = tlb_ent - 1; 599 sparc64_highest_unlocked_tlb_ent = tlb_ent - i;
606 } 600 }
607 if (tlb_type == cheetah_plus) { 601 if (tlb_type == cheetah_plus) {
608 sparc64_kern_pri_context = (CTX_CHEETAH_PLUS_CTX0 | 602 sparc64_kern_pri_context = (CTX_CHEETAH_PLUS_CTX0 |
@@ -1280,10 +1274,6 @@ void __cpuinit sun4v_ktsb_register(void)
1280 1274
1281/* paging_init() sets up the page tables */ 1275/* paging_init() sets up the page tables */
1282 1276
1283extern void cheetah_ecache_flush_init(void);
1284extern void sun4v_patch_tlb_handlers(void);
1285
1286extern void cpu_probe(void);
1287extern void central_probe(void); 1277extern void central_probe(void);
1288 1278
1289static unsigned long last_valid_pfn; 1279static unsigned long last_valid_pfn;
@@ -1352,12 +1342,9 @@ void __init paging_init(void)
1352 shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE); 1342 shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE);
1353 1343
1354 real_end = (unsigned long)_end; 1344 real_end = (unsigned long)_end;
1355 if ((real_end > ((unsigned long)KERNBASE + 0x400000))) 1345 num_kernel_image_mappings = DIV_ROUND_UP(real_end - KERNBASE, 1 << 22);
1356 bigkernel = 1; 1346 printk("Kernel: Using %d locked TLB entries for main kernel image.\n",
1357 if ((real_end > ((unsigned long)KERNBASE + 0x800000))) { 1347 num_kernel_image_mappings);
1358 prom_printf("paging_init: Kernel > 8MB, too large.\n");
1359 prom_halt();
1360 }
1361 1348
1362 /* Set kernel pgd to upper alias so physical page computations 1349 /* Set kernel pgd to upper alias so physical page computations
1363 * work. 1350 * work.
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c
index 3f10fc921b00..a0f000b293de 100644
--- a/arch/sparc64/mm/tlb.c
+++ b/arch/sparc64/mm/tlb.c
@@ -23,10 +23,11 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers) = { 0, };
23 23
24void flush_tlb_pending(void) 24void flush_tlb_pending(void)
25{ 25{
26 struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); 26 struct mmu_gather *mp;
27 27
28 preempt_disable(); 28 preempt_disable();
29 29
30 mp = &__get_cpu_var(mmu_gathers);
30 if (mp->tlb_nr) { 31 if (mp->tlb_nr) {
31 flush_tsb_user(mp); 32 flush_tsb_user(mp);
32 33
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
index 1e8f41a99511..1d43bdfc20c4 100644
--- a/arch/um/drivers/net_kern.c
+++ b/arch/um/drivers/net_kern.c
@@ -256,11 +256,7 @@ static struct net_device_stats *uml_net_get_stats(struct net_device *dev)
256 256
257static void uml_net_set_multicast_list(struct net_device *dev) 257static void uml_net_set_multicast_list(struct net_device *dev)
258{ 258{
259 if (dev->flags & IFF_PROMISC) 259 return;
260 return;
261 else if (dev->mc_count)
262 dev->flags |= IFF_ALLMULTI;
263 else dev->flags &= ~IFF_ALLMULTI;
264} 260}
265 261
266static void uml_net_tx_timeout(struct net_device *dev) 262static void uml_net_tx_timeout(struct net_device *dev)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 237fc128143d..6c70fed0f9a0 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1259,7 +1259,7 @@ menuconfig APM
1259 machines with more than one CPU. 1259 machines with more than one CPU.
1260 1260
1261 In order to use APM, you will need supporting software. For location 1261 In order to use APM, you will need supporting software. For location
1262 and more information, read <file:Documentation/pm.txt> and the 1262 and more information, read <file:Documentation/power/pm.txt> and the
1263 Battery Powered Linux mini-HOWTO, available from 1263 Battery Powered Linux mini-HOWTO, available from
1264 <http://www.tldp.org/docs.html#howto>. 1264 <http://www.tldp.org/docs.html#howto>.
1265 1265
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
index 608152a2a05e..00df126169b4 100644
--- a/arch/x86/kernel/aperture_64.c
+++ b/arch/x86/kernel/aperture_64.c
@@ -18,6 +18,7 @@
18#include <linux/pci.h> 18#include <linux/pci.h>
19#include <linux/bitops.h> 19#include <linux/bitops.h>
20#include <linux/ioport.h> 20#include <linux/ioport.h>
21#include <linux/suspend.h>
21#include <asm/e820.h> 22#include <asm/e820.h>
22#include <asm/io.h> 23#include <asm/io.h>
23#include <asm/gart.h> 24#include <asm/gart.h>
@@ -76,6 +77,8 @@ static u32 __init allocate_aperture(void)
76 printk(KERN_INFO "Mapping aperture over %d KB of RAM @ %lx\n", 77 printk(KERN_INFO "Mapping aperture over %d KB of RAM @ %lx\n",
77 aper_size >> 10, __pa(p)); 78 aper_size >> 10, __pa(p));
78 insert_aperture_resource((u32)__pa(p), aper_size); 79 insert_aperture_resource((u32)__pa(p), aper_size);
80 register_nosave_region((u32)__pa(p) >> PAGE_SHIFT,
81 (u32)__pa(p+aper_size) >> PAGE_SHIFT);
79 82
80 return (u32)__pa(p); 83 return (u32)__pa(p);
81} 84}
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c b/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
index f2b5a621d27b..8a85c93bd62a 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
@@ -63,7 +63,7 @@ static struct cpufreq_frequency_table speedstep_freqs[] = {
63 */ 63 */
64static int speedstep_smi_ownership (void) 64static int speedstep_smi_ownership (void)
65{ 65{
66 u32 command, result, magic; 66 u32 command, result, magic, dummy;
67 u32 function = GET_SPEEDSTEP_OWNER; 67 u32 function = GET_SPEEDSTEP_OWNER;
68 unsigned char magic_data[] = "Copyright (c) 1999 Intel Corporation"; 68 unsigned char magic_data[] = "Copyright (c) 1999 Intel Corporation";
69 69
@@ -73,8 +73,11 @@ static int speedstep_smi_ownership (void)
73 dprintk("trying to obtain ownership with command %x at port %x\n", command, smi_port); 73 dprintk("trying to obtain ownership with command %x at port %x\n", command, smi_port);
74 74
75 __asm__ __volatile__( 75 __asm__ __volatile__(
76 "push %%ebp\n"
76 "out %%al, (%%dx)\n" 77 "out %%al, (%%dx)\n"
77 : "=D" (result) 78 "pop %%ebp\n"
79 : "=D" (result), "=a" (dummy), "=b" (dummy), "=c" (dummy), "=d" (dummy),
80 "=S" (dummy)
78 : "a" (command), "b" (function), "c" (0), "d" (smi_port), 81 : "a" (command), "b" (function), "c" (0), "d" (smi_port),
79 "D" (0), "S" (magic) 82 "D" (0), "S" (magic)
80 : "memory" 83 : "memory"
@@ -96,7 +99,7 @@ static int speedstep_smi_ownership (void)
96 */ 99 */
97static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high) 100static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
98{ 101{
99 u32 command, result = 0, edi, high_mhz, low_mhz; 102 u32 command, result = 0, edi, high_mhz, low_mhz, dummy;
100 u32 state=0; 103 u32 state=0;
101 u32 function = GET_SPEEDSTEP_FREQS; 104 u32 function = GET_SPEEDSTEP_FREQS;
102 105
@@ -109,10 +112,12 @@ static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
109 112
110 dprintk("trying to determine frequencies with command %x at port %x\n", command, smi_port); 113 dprintk("trying to determine frequencies with command %x at port %x\n", command, smi_port);
111 114
112 __asm__ __volatile__("movl $0, %%edi\n" 115 __asm__ __volatile__(
116 "push %%ebp\n"
113 "out %%al, (%%dx)\n" 117 "out %%al, (%%dx)\n"
114 : "=a" (result), "=b" (high_mhz), "=c" (low_mhz), "=d" (state), "=D" (edi) 118 "pop %%ebp"
115 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0) 119 : "=a" (result), "=b" (high_mhz), "=c" (low_mhz), "=d" (state), "=D" (edi), "=S" (dummy)
120 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0), "D" (0)
116 ); 121 );
117 122
118 dprintk("result %x, low_freq %u, high_freq %u\n", result, low_mhz, high_mhz); 123 dprintk("result %x, low_freq %u, high_freq %u\n", result, low_mhz, high_mhz);
@@ -135,16 +140,18 @@ static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
135static int speedstep_get_state (void) 140static int speedstep_get_state (void)
136{ 141{
137 u32 function=GET_SPEEDSTEP_STATE; 142 u32 function=GET_SPEEDSTEP_STATE;
138 u32 result, state, edi, command; 143 u32 result, state, edi, command, dummy;
139 144
140 command = (smi_sig & 0xffffff00) | (smi_cmd & 0xff); 145 command = (smi_sig & 0xffffff00) | (smi_cmd & 0xff);
141 146
142 dprintk("trying to determine current setting with command %x at port %x\n", command, smi_port); 147 dprintk("trying to determine current setting with command %x at port %x\n", command, smi_port);
143 148
144 __asm__ __volatile__("movl $0, %%edi\n" 149 __asm__ __volatile__(
150 "push %%ebp\n"
145 "out %%al, (%%dx)\n" 151 "out %%al, (%%dx)\n"
146 : "=a" (result), "=b" (state), "=D" (edi) 152 "pop %%ebp\n"
147 : "a" (command), "b" (function), "c" (0), "d" (smi_port), "S" (0) 153 : "=a" (result), "=b" (state), "=D" (edi), "=c" (dummy), "=d" (dummy), "=S" (dummy)
154 : "a" (command), "b" (function), "c" (0), "d" (smi_port), "S" (0), "D" (0)
148 ); 155 );
149 156
150 dprintk("state is %x, result is %x\n", state, result); 157 dprintk("state is %x, result is %x\n", state, result);
@@ -160,7 +167,7 @@ static int speedstep_get_state (void)
160 */ 167 */
161static void speedstep_set_state (unsigned int state) 168static void speedstep_set_state (unsigned int state)
162{ 169{
163 unsigned int result = 0, command, new_state; 170 unsigned int result = 0, command, new_state, dummy;
164 unsigned long flags; 171 unsigned long flags;
165 unsigned int function=SET_SPEEDSTEP_STATE; 172 unsigned int function=SET_SPEEDSTEP_STATE;
166 unsigned int retry = 0; 173 unsigned int retry = 0;
@@ -182,10 +189,12 @@ static void speedstep_set_state (unsigned int state)
182 } 189 }
183 retry++; 190 retry++;
184 __asm__ __volatile__( 191 __asm__ __volatile__(
185 "movl $0, %%edi\n" 192 "push %%ebp\n"
186 "out %%al, (%%dx)\n" 193 "out %%al, (%%dx)\n"
187 : "=b" (new_state), "=D" (result) 194 "pop %%ebp"
188 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0) 195 : "=b" (new_state), "=D" (result), "=c" (dummy), "=a" (dummy),
196 "=d" (dummy), "=S" (dummy)
197 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0), "D" (0)
189 ); 198 );
190 } while ((new_state != state) && (retry <= SMI_TRIES)); 199 } while ((new_state != state) && (retry <= SMI_TRIES));
191 200
@@ -195,7 +204,7 @@ static void speedstep_set_state (unsigned int state)
195 if (new_state == state) { 204 if (new_state == state) {
196 dprintk("change to %u MHz succeeded after %u tries with result %u\n", (speedstep_freqs[new_state].frequency / 1000), retry, result); 205 dprintk("change to %u MHz succeeded after %u tries with result %u\n", (speedstep_freqs[new_state].frequency / 1000), retry, result);
197 } else { 206 } else {
198 printk(KERN_ERR "cpufreq: change failed with new_state %u and result %u\n", new_state, result); 207 printk(KERN_ERR "cpufreq: change to state %u failed with new_state %u and result %u\n", state, new_state, result);
199 } 208 }
200 209
201 return; 210 return;
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 103d61a59b19..3e18db4cefee 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -176,12 +176,13 @@ static inline void k8_enable_fixed_iorrs(void)
176} 176}
177 177
178/** 178/**
179 * Checks and updates an fixed-range MTRR if it differs from the value it 179 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have
180 * should have. If K8 extentions are wanted, update the K8 SYSCFG MSR also. 180 * @msr: MSR address of the MTTR which should be checked and updated
181 * see AMD publication no. 24593, chapter 7.8.1, page 233 for more information 181 * @changed: pointer which indicates whether the MTRR needed to be changed
182 * \param msr MSR address of the MTTR which should be checked and updated 182 * @msrwords: pointer to the MSR values which the MSR should have
183 * \param changed pointer which indicates whether the MTRR needed to be changed 183 *
184 * \param msrwords pointer to the MSR values which the MSR should have 184 * If K8 extentions are wanted, update the K8 SYSCFG MSR also.
185 * See AMD publication no. 24593, chapter 7.8.1, page 233 for more information.
185 */ 186 */
186static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) 187static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
187{ 188{
@@ -199,12 +200,15 @@ static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
199 } 200 }
200} 201}
201 202
203/**
204 * generic_get_free_region - Get a free MTRR.
205 * @base: The starting (base) address of the region.
206 * @size: The size (in bytes) of the region.
207 * @replace_reg: mtrr index to be replaced; set to invalid value if none.
208 *
209 * Returns: The index of the region on success, else negative on error.
210 */
202int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg) 211int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg)
203/* [SUMMARY] Get a free MTRR.
204 <base> The starting (base) address of the region.
205 <size> The size (in bytes) of the region.
206 [RETURNS] The index of the region on success, else -1 on error.
207*/
208{ 212{
209 int i, max; 213 int i, max;
210 mtrr_type ltype; 214 mtrr_type ltype;
@@ -249,8 +253,8 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
249} 253}
250 254
251/** 255/**
252 * Checks and updates the fixed-range MTRRs if they differ from the saved set 256 * set_fixed_ranges - checks & updates the fixed-range MTRRs if they differ from the saved set
253 * \param frs pointer to fixed-range MTRR values, saved by get_fixed_ranges() 257 * @frs: pointer to fixed-range MTRR values, saved by get_fixed_ranges()
254 */ 258 */
255static int set_fixed_ranges(mtrr_type * frs) 259static int set_fixed_ranges(mtrr_type * frs)
256{ 260{
@@ -294,13 +298,13 @@ static bool set_mtrr_var_ranges(unsigned int index, struct mtrr_var_range *vr)
294 298
295static u32 deftype_lo, deftype_hi; 299static u32 deftype_lo, deftype_hi;
296 300
301/**
302 * set_mtrr_state - Set the MTRR state for this CPU.
303 *
304 * NOTE: The CPU must already be in a safe state for MTRR changes.
305 * RETURNS: 0 if no changes made, else a mask indicating what was changed.
306 */
297static unsigned long set_mtrr_state(void) 307static unsigned long set_mtrr_state(void)
298/* [SUMMARY] Set the MTRR state for this CPU.
299 <state> The MTRR state information to read.
300 <ctxt> Some relevant CPU context.
301 [NOTE] The CPU must already be in a safe state for MTRR changes.
302 [RETURNS] 0 if no changes made, else a mask indication what was changed.
303*/
304{ 308{
305 unsigned int i; 309 unsigned int i;
306 unsigned long change_mask = 0; 310 unsigned long change_mask = 0;
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index be83336fddba..a6450b3ae759 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -711,7 +711,8 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
711 trim_size = end_pfn; 711 trim_size = end_pfn;
712 trim_size <<= PAGE_SHIFT; 712 trim_size <<= PAGE_SHIFT;
713 trim_size -= trim_start; 713 trim_size -= trim_start;
714 add_memory_region(trim_start, trim_size, E820_RESERVED); 714 update_memory_range(trim_start, trim_size, E820_RAM,
715 E820_RESERVED);
715 update_e820(); 716 update_e820();
716 return 1; 717 return 1;
717 } 718 }
diff --git a/arch/x86/kernel/e820_32.c b/arch/x86/kernel/e820_32.c
index 4e16ef4a2659..80444c5c9b14 100644
--- a/arch/x86/kernel/e820_32.c
+++ b/arch/x86/kernel/e820_32.c
@@ -749,6 +749,32 @@ static int __init parse_memmap(char *arg)
749 return 0; 749 return 0;
750} 750}
751early_param("memmap", parse_memmap); 751early_param("memmap", parse_memmap);
752void __init update_memory_range(u64 start, u64 size, unsigned old_type,
753 unsigned new_type)
754{
755 int i;
756
757 BUG_ON(old_type == new_type);
758
759 for (i = 0; i < e820.nr_map; i++) {
760 struct e820entry *ei = &e820.map[i];
761 u64 final_start, final_end;
762 if (ei->type != old_type)
763 continue;
764 /* totally covered? */
765 if (ei->addr >= start && ei->size <= size) {
766 ei->type = new_type;
767 continue;
768 }
769 /* partially covered */
770 final_start = max(start, ei->addr);
771 final_end = min(start + size, ei->addr + ei->size);
772 if (final_start >= final_end)
773 continue;
774 add_memory_region(final_start, final_end - final_start,
775 new_type);
776 }
777}
752void __init update_e820(void) 778void __init update_e820(void)
753{ 779{
754 u8 nr_map; 780 u8 nr_map;
diff --git a/arch/x86/kernel/e820_64.c b/arch/x86/kernel/e820_64.c
index 9f65b4cc323c..9be697126013 100644
--- a/arch/x86/kernel/e820_64.c
+++ b/arch/x86/kernel/e820_64.c
@@ -744,6 +744,33 @@ void __init finish_e820_parsing(void)
744 } 744 }
745} 745}
746 746
747void __init update_memory_range(u64 start, u64 size, unsigned old_type,
748 unsigned new_type)
749{
750 int i;
751
752 BUG_ON(old_type == new_type);
753
754 for (i = 0; i < e820.nr_map; i++) {
755 struct e820entry *ei = &e820.map[i];
756 u64 final_start, final_end;
757 if (ei->type != old_type)
758 continue;
759 /* totally covered? */
760 if (ei->addr >= start && ei->size <= size) {
761 ei->type = new_type;
762 continue;
763 }
764 /* partially covered */
765 final_start = max(start, ei->addr);
766 final_end = min(start + size, ei->addr + ei->size);
767 if (final_start >= final_end)
768 continue;
769 add_memory_region(final_start, final_end - final_start,
770 new_type);
771 }
772}
773
747void __init update_e820(void) 774void __init update_e820(void)
748{ 775{
749 u8 nr_map; 776 u8 nr_map;
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index fd8ca53943a8..74d87ea85b5c 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -657,7 +657,7 @@ int_msg:
657 .asciz "Unknown interrupt or fault at EIP %p %p %p\n" 657 .asciz "Unknown interrupt or fault at EIP %p %p %p\n"
658 658
659fault_msg: 659fault_msg:
660 .ascii \ 660 .asciz \
661/* fault info: */ "BUG: Int %d: CR2 %p\n" \ 661/* fault info: */ "BUG: Int %d: CR2 %p\n" \
662/* pusha regs: */ " EDI %p ESI %p EBP %p ESP %p\n" \ 662/* pusha regs: */ " EDI %p ESI %p EBP %p ESP %p\n" \
663 " EBX %p EDX %p ECX %p EAX %p\n" \ 663 " EBX %p EDX %p ECX %p EAX %p\n" \
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
index c706a3061553..5921e5f0a640 100644
--- a/arch/x86/kernel/io_delay.c
+++ b/arch/x86/kernel/io_delay.c
@@ -78,6 +78,14 @@ static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
78 }, 78 },
79 { 79 {
80 .callback = dmi_io_delay_0xed_port, 80 .callback = dmi_io_delay_0xed_port,
81 .ident = "HP Pavilion dv6000",
82 .matches = {
83 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
84 DMI_MATCH(DMI_BOARD_NAME, "30B8")
85 }
86 },
87 {
88 .callback = dmi_io_delay_0xed_port,
81 .ident = "HP Pavilion tx1000", 89 .ident = "HP Pavilion tx1000",
82 .matches = { 90 .matches = {
83 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), 91 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
diff --git a/arch/x86/kernel/mfgpt_32.c b/arch/x86/kernel/mfgpt_32.c
index 027fc067b399..b402c0f3f192 100644
--- a/arch/x86/kernel/mfgpt_32.c
+++ b/arch/x86/kernel/mfgpt_32.c
@@ -30,6 +30,7 @@
30 30
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/module.h>
33#include <asm/geode.h> 34#include <asm/geode.h>
34 35
35static struct mfgpt_timer_t { 36static struct mfgpt_timer_t {
diff --git a/arch/x86/kernel/pci-dma_64.c b/arch/x86/kernel/pci-dma_64.c
index a82473d192a3..375cb2bc45be 100644
--- a/arch/x86/kernel/pci-dma_64.c
+++ b/arch/x86/kernel/pci-dma_64.c
@@ -53,11 +53,6 @@ dma_alloc_pages(struct device *dev, gfp_t gfp, unsigned order)
53 int node; 53 int node;
54 54
55 node = dev_to_node(dev); 55 node = dev_to_node(dev);
56 if (node == -1)
57 node = numa_node_id();
58
59 if (node < first_node(node_online_map))
60 node = first_node(node_online_map);
61 56
62 page = alloc_pages_node(node, gfp, order); 57 page = alloc_pages_node(node, gfp, order);
63 return page ? page_address(page) : NULL; 58 return page ? page_address(page) : NULL;
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index d5904eef1d31..eb92ccbb3502 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -600,21 +600,6 @@ static int ptrace_bts_read_record(struct task_struct *child,
600 return sizeof(ret); 600 return sizeof(ret);
601} 601}
602 602
603static int ptrace_bts_write_record(struct task_struct *child,
604 const struct bts_struct *in)
605{
606 int retval;
607
608 if (!child->thread.ds_area_msr)
609 return -ENXIO;
610
611 retval = ds_write_bts((void *)child->thread.ds_area_msr, in);
612 if (retval)
613 return retval;
614
615 return sizeof(*in);
616}
617
618static int ptrace_bts_clear(struct task_struct *child) 603static int ptrace_bts_clear(struct task_struct *child)
619{ 604{
620 if (!child->thread.ds_area_msr) 605 if (!child->thread.ds_area_msr)
@@ -657,75 +642,6 @@ static int ptrace_bts_drain(struct task_struct *child,
657 return end; 642 return end;
658} 643}
659 644
660static int ptrace_bts_realloc(struct task_struct *child,
661 int size, int reduce_size)
662{
663 unsigned long rlim, vm;
664 int ret, old_size;
665
666 if (size < 0)
667 return -EINVAL;
668
669 old_size = ds_get_bts_size((void *)child->thread.ds_area_msr);
670 if (old_size < 0)
671 return old_size;
672
673 ret = ds_free((void **)&child->thread.ds_area_msr);
674 if (ret < 0)
675 goto out;
676
677 size >>= PAGE_SHIFT;
678 old_size >>= PAGE_SHIFT;
679
680 current->mm->total_vm -= old_size;
681 current->mm->locked_vm -= old_size;
682
683 if (size == 0)
684 goto out;
685
686 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
687 vm = current->mm->total_vm + size;
688 if (rlim < vm) {
689 ret = -ENOMEM;
690
691 if (!reduce_size)
692 goto out;
693
694 size = rlim - current->mm->total_vm;
695 if (size <= 0)
696 goto out;
697 }
698
699 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
700 vm = current->mm->locked_vm + size;
701 if (rlim < vm) {
702 ret = -ENOMEM;
703
704 if (!reduce_size)
705 goto out;
706
707 size = rlim - current->mm->locked_vm;
708 if (size <= 0)
709 goto out;
710 }
711
712 ret = ds_allocate((void **)&child->thread.ds_area_msr,
713 size << PAGE_SHIFT);
714 if (ret < 0)
715 goto out;
716
717 current->mm->total_vm += size;
718 current->mm->locked_vm += size;
719
720out:
721 if (child->thread.ds_area_msr)
722 set_tsk_thread_flag(child, TIF_DS_AREA_MSR);
723 else
724 clear_tsk_thread_flag(child, TIF_DS_AREA_MSR);
725
726 return ret;
727}
728
729static int ptrace_bts_config(struct task_struct *child, 645static int ptrace_bts_config(struct task_struct *child,
730 long cfg_size, 646 long cfg_size,
731 const struct ptrace_bts_config __user *ucfg) 647 const struct ptrace_bts_config __user *ucfg)
@@ -828,6 +744,91 @@ static int ptrace_bts_status(struct task_struct *child,
828 return sizeof(cfg); 744 return sizeof(cfg);
829} 745}
830 746
747
748static int ptrace_bts_write_record(struct task_struct *child,
749 const struct bts_struct *in)
750{
751 int retval;
752
753 if (!child->thread.ds_area_msr)
754 return -ENXIO;
755
756 retval = ds_write_bts((void *)child->thread.ds_area_msr, in);
757 if (retval)
758 return retval;
759
760 return sizeof(*in);
761}
762
763static int ptrace_bts_realloc(struct task_struct *child,
764 int size, int reduce_size)
765{
766 unsigned long rlim, vm;
767 int ret, old_size;
768
769 if (size < 0)
770 return -EINVAL;
771
772 old_size = ds_get_bts_size((void *)child->thread.ds_area_msr);
773 if (old_size < 0)
774 return old_size;
775
776 ret = ds_free((void **)&child->thread.ds_area_msr);
777 if (ret < 0)
778 goto out;
779
780 size >>= PAGE_SHIFT;
781 old_size >>= PAGE_SHIFT;
782
783 current->mm->total_vm -= old_size;
784 current->mm->locked_vm -= old_size;
785
786 if (size == 0)
787 goto out;
788
789 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
790 vm = current->mm->total_vm + size;
791 if (rlim < vm) {
792 ret = -ENOMEM;
793
794 if (!reduce_size)
795 goto out;
796
797 size = rlim - current->mm->total_vm;
798 if (size <= 0)
799 goto out;
800 }
801
802 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
803 vm = current->mm->locked_vm + size;
804 if (rlim < vm) {
805 ret = -ENOMEM;
806
807 if (!reduce_size)
808 goto out;
809
810 size = rlim - current->mm->locked_vm;
811 if (size <= 0)
812 goto out;
813 }
814
815 ret = ds_allocate((void **)&child->thread.ds_area_msr,
816 size << PAGE_SHIFT);
817 if (ret < 0)
818 goto out;
819
820 current->mm->total_vm += size;
821 current->mm->locked_vm += size;
822
823out:
824 if (child->thread.ds_area_msr)
825 set_tsk_thread_flag(child, TIF_DS_AREA_MSR);
826 else
827 clear_tsk_thread_flag(child, TIF_DS_AREA_MSR);
828
829 return ret;
830}
831
831void ptrace_bts_take_timestamp(struct task_struct *tsk, 832void ptrace_bts_take_timestamp(struct task_struct *tsk,
832 enum bts_qualifier qualifier) 833 enum bts_qualifier qualifier)
833{ 834{
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index c47208fc5932..d89a648fe710 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -363,6 +363,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0051,
363 nvidia_force_enable_hpet); 363 nvidia_force_enable_hpet);
364 364
365/* LPC bridges */ 365/* LPC bridges */
366DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0260,
367 nvidia_force_enable_hpet);
366DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0360, 368DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0360,
367 nvidia_force_enable_hpet); 369 nvidia_force_enable_hpet);
368DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0361, 370DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0361,
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 55ceb8cdef75..484c4a80d38a 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -152,6 +152,24 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
152 DMI_MATCH(DMI_BOARD_NAME, "0WF810"), 152 DMI_MATCH(DMI_BOARD_NAME, "0WF810"),
153 }, 153 },
154 }, 154 },
155 { /* Handle problems with rebooting on Dell Optiplex 745's DFF*/
156 .callback = set_bios_reboot,
157 .ident = "Dell OptiPlex 745",
158 .matches = {
159 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
160 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
161 DMI_MATCH(DMI_BOARD_NAME, "0MM599"),
162 },
163 },
164 { /* Handle problems with rebooting on Dell Optiplex 745 with 0KW626 */
165 .callback = set_bios_reboot,
166 .ident = "Dell OptiPlex 745",
167 .matches = {
168 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
169 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 745"),
170 DMI_MATCH(DMI_BOARD_NAME, "0KW626"),
171 },
172 },
155 { /* Handle problems with rebooting on Dell 2400's */ 173 { /* Handle problems with rebooting on Dell 2400's */
156 .callback = set_bios_reboot, 174 .callback = set_bios_reboot,
157 .ident = "Dell PowerEdge 2400", 175 .ident = "Dell PowerEdge 2400",
diff --git a/arch/x86/kernel/setup64.c b/arch/x86/kernel/setup64.c
index 309366f8f603..e24c45677094 100644
--- a/arch/x86/kernel/setup64.c
+++ b/arch/x86/kernel/setup64.c
@@ -142,14 +142,16 @@ void __init setup_per_cpu_areas(void)
142 printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size); 142 printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size);
143 for_each_cpu_mask (i, cpu_possible_map) { 143 for_each_cpu_mask (i, cpu_possible_map) {
144 char *ptr; 144 char *ptr;
145#ifndef CONFIG_NEED_MULTIPLE_NODES
146 ptr = alloc_bootmem_pages(size);
147#else
148 int node = early_cpu_to_node(i);
145 149
146 if (!NODE_DATA(early_cpu_to_node(i))) { 150 if (!node_online(node) || !NODE_DATA(node))
147 printk("cpu with no node %d, num_online_nodes %d\n",
148 i, num_online_nodes());
149 ptr = alloc_bootmem_pages(size); 151 ptr = alloc_bootmem_pages(size);
150 } else { 152 else
151 ptr = alloc_bootmem_pages_node(NODE_DATA(early_cpu_to_node(i)), size); 153 ptr = alloc_bootmem_pages_node(NODE_DATA(node), size);
152 } 154#endif
153 if (!ptr) 155 if (!ptr)
154 panic("Cannot allocate cpu data for CPU %d\n", i); 156 panic("Cannot allocate cpu data for CPU %d\n", i);
155 cpu_pda(i)->data_offset = ptr - __per_cpu_start; 157 cpu_pda(i)->data_offset = ptr - __per_cpu_start;
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index a1d7071a51c9..2b3e5d45176b 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -406,8 +406,6 @@ static unsigned long __init setup_memory(void)
406 */ 406 */
407 min_low_pfn = PFN_UP(init_pg_tables_end); 407 min_low_pfn = PFN_UP(init_pg_tables_end);
408 408
409 find_max_pfn();
410
411 max_low_pfn = find_max_low_pfn(); 409 max_low_pfn = find_max_low_pfn();
412 410
413#ifdef CONFIG_HIGHMEM 411#ifdef CONFIG_HIGHMEM
@@ -764,12 +762,13 @@ void __init setup_arch(char **cmdline_p)
764 if (efi_enabled) 762 if (efi_enabled)
765 efi_init(); 763 efi_init();
766 764
767 max_low_pfn = setup_memory();
768
769 /* update e820 for memory not covered by WB MTRRs */ 765 /* update e820 for memory not covered by WB MTRRs */
766 find_max_pfn();
770 mtrr_bp_init(); 767 mtrr_bp_init();
771 if (mtrr_trim_uncached_memory(max_pfn)) 768 if (mtrr_trim_uncached_memory(max_pfn))
772 max_low_pfn = setup_memory(); 769 find_max_pfn();
770
771 max_low_pfn = setup_memory();
773 772
774#ifdef CONFIG_VMI 773#ifdef CONFIG_VMI
775 /* 774 /*
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 7637dc91c79b..f4f7ecfb898c 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -801,7 +801,7 @@ static void __cpuinit srat_detect_node(void)
801 /* Don't do the funky fallback heuristics the AMD version employs 801 /* Don't do the funky fallback heuristics the AMD version employs
802 for now. */ 802 for now. */
803 node = apicid_to_node[apicid]; 803 node = apicid_to_node[apicid];
804 if (node == NUMA_NO_NODE) 804 if (node == NUMA_NO_NODE || !node_online(node))
805 node = first_node(node_online_map); 805 node = first_node(node_online_map);
806 numa_set_node(cpu, node); 806 numa_set_node(cpu, node);
807 807
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d8172aabc660..e55af12e11b7 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -222,8 +222,7 @@ static int is_io_pte(unsigned long pte)
222 222
223static int is_rmap_pte(u64 pte) 223static int is_rmap_pte(u64 pte)
224{ 224{
225 return pte != shadow_trap_nonpresent_pte 225 return is_shadow_present_pte(pte);
226 && pte != shadow_notrap_nonpresent_pte;
227} 226}
228 227
229static gfn_t pse36_gfn_delta(u32 gpte) 228static gfn_t pse36_gfn_delta(u32 gpte)
@@ -893,14 +892,25 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
893 int *ptwrite, gfn_t gfn, struct page *page) 892 int *ptwrite, gfn_t gfn, struct page *page)
894{ 893{
895 u64 spte; 894 u64 spte;
896 int was_rmapped = is_rmap_pte(*shadow_pte); 895 int was_rmapped = 0;
897 int was_writeble = is_writeble_pte(*shadow_pte); 896 int was_writeble = is_writeble_pte(*shadow_pte);
897 hfn_t host_pfn = (*shadow_pte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT;
898 898
899 pgprintk("%s: spte %llx access %x write_fault %d" 899 pgprintk("%s: spte %llx access %x write_fault %d"
900 " user_fault %d gfn %lx\n", 900 " user_fault %d gfn %lx\n",
901 __FUNCTION__, *shadow_pte, pt_access, 901 __FUNCTION__, *shadow_pte, pt_access,
902 write_fault, user_fault, gfn); 902 write_fault, user_fault, gfn);
903 903
904 if (is_rmap_pte(*shadow_pte)) {
905 if (host_pfn != page_to_pfn(page)) {
906 pgprintk("hfn old %lx new %lx\n",
907 host_pfn, page_to_pfn(page));
908 rmap_remove(vcpu->kvm, shadow_pte);
909 }
910 else
911 was_rmapped = 1;
912 }
913
904 /* 914 /*
905 * We don't set the accessed bit, since we sometimes want to see 915 * We don't set the accessed bit, since we sometimes want to see
906 * whether the guest actually used the pte (in order to detect 916 * whether the guest actually used the pte (in order to detect
@@ -1402,7 +1412,7 @@ static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
1402 up_read(&current->mm->mmap_sem); 1412 up_read(&current->mm->mmap_sem);
1403 1413
1404 vcpu->arch.update_pte.gfn = gfn; 1414 vcpu->arch.update_pte.gfn = gfn;
1405 vcpu->arch.update_pte.page = gfn_to_page(vcpu->kvm, gfn); 1415 vcpu->arch.update_pte.page = page;
1406} 1416}
1407 1417
1408void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, 1418void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 94ea724638fd..8e1462880d1f 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -349,8 +349,6 @@ static void update_exception_bitmap(struct kvm_vcpu *vcpu)
349 349
350static void reload_tss(void) 350static void reload_tss(void)
351{ 351{
352#ifndef CONFIG_X86_64
353
354 /* 352 /*
355 * VT restores TR but not its size. Useless. 353 * VT restores TR but not its size. Useless.
356 */ 354 */
@@ -361,7 +359,6 @@ static void reload_tss(void)
361 descs = (void *)gdt.base; 359 descs = (void *)gdt.base;
362 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */ 360 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
363 load_TR_desc(); 361 load_TR_desc();
364#endif
365} 362}
366 363
367static void load_transition_efer(struct vcpu_vmx *vmx) 364static void load_transition_efer(struct vcpu_vmx *vmx)
@@ -1436,7 +1433,7 @@ static int init_rmode_tss(struct kvm *kvm)
1436 int ret = 0; 1433 int ret = 0;
1437 int r; 1434 int r;
1438 1435
1439 down_read(&current->mm->mmap_sem); 1436 down_read(&kvm->slots_lock);
1440 r = kvm_clear_guest_page(kvm, fn, 0, PAGE_SIZE); 1437 r = kvm_clear_guest_page(kvm, fn, 0, PAGE_SIZE);
1441 if (r < 0) 1438 if (r < 0)
1442 goto out; 1439 goto out;
@@ -1459,7 +1456,7 @@ static int init_rmode_tss(struct kvm *kvm)
1459 1456
1460 ret = 1; 1457 ret = 1;
1461out: 1458out:
1462 up_read(&current->mm->mmap_sem); 1459 up_read(&kvm->slots_lock);
1463 return ret; 1460 return ret;
1464} 1461}
1465 1462
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index a104c532ff70..3335b4595efd 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -10,21 +10,19 @@
10 * (such as the example in Documentation/lguest/lguest.c) is called the 10 * (such as the example in Documentation/lguest/lguest.c) is called the
11 * Launcher. 11 * Launcher.
12 * 12 *
13 * Secondly, we only run specially modified Guests, not normal kernels. When 13 * Secondly, we only run specially modified Guests, not normal kernels: setting
14 * you set CONFIG_LGUEST to 'y' or 'm', this automatically sets 14 * CONFIG_LGUEST_GUEST to "y" compiles this file into the kernel so it knows
15 * CONFIG_LGUEST_GUEST=y, which compiles this file into the kernel so it knows 15 * how to be a Guest at boot time. This means that you can use the same kernel
16 * how to be a Guest. This means that you can use the same kernel you boot 16 * you boot normally (ie. as a Host) as a Guest.
17 * normally (ie. as a Host) as a Guest.
18 * 17 *
19 * These Guests know that they cannot do privileged operations, such as disable 18 * These Guests know that they cannot do privileged operations, such as disable
20 * interrupts, and that they have to ask the Host to do such things explicitly. 19 * interrupts, and that they have to ask the Host to do such things explicitly.
21 * This file consists of all the replacements for such low-level native 20 * This file consists of all the replacements for such low-level native
22 * hardware operations: these special Guest versions call the Host. 21 * hardware operations: these special Guest versions call the Host.
23 * 22 *
24 * So how does the kernel know it's a Guest? The Guest starts at a special 23 * So how does the kernel know it's a Guest? We'll see that later, but let's
25 * entry point marked with a magic string, which sets up a few things then 24 * just say that we end up here where we replace the native functions various
26 * calls here. We replace the native functions various "paravirt" structures 25 * "paravirt" structures with our Guest versions, then boot like normal. :*/
27 * with our Guest versions, then boot like normal. :*/
28 26
29/* 27/*
30 * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation. 28 * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation.
@@ -134,7 +132,7 @@ static void async_hcall(unsigned long call, unsigned long arg1,
134 * lguest_leave_lazy_mode(). 132 * lguest_leave_lazy_mode().
135 * 133 *
136 * So, when we're in lazy mode, we call async_hcall() to store the call for 134 * So, when we're in lazy mode, we call async_hcall() to store the call for
137 * future processing. */ 135 * future processing: */
138static void lazy_hcall(unsigned long call, 136static void lazy_hcall(unsigned long call,
139 unsigned long arg1, 137 unsigned long arg1,
140 unsigned long arg2, 138 unsigned long arg2,
@@ -147,7 +145,7 @@ static void lazy_hcall(unsigned long call,
147} 145}
148 146
149/* When lazy mode is turned off reset the per-cpu lazy mode variable and then 147/* When lazy mode is turned off reset the per-cpu lazy mode variable and then
150 * issue a hypercall to flush any stored calls. */ 148 * issue the do-nothing hypercall to flush any stored calls. */
151static void lguest_leave_lazy_mode(void) 149static void lguest_leave_lazy_mode(void)
152{ 150{
153 paravirt_leave_lazy(paravirt_get_lazy_mode()); 151 paravirt_leave_lazy(paravirt_get_lazy_mode());
@@ -164,7 +162,7 @@ static void lguest_leave_lazy_mode(void)
164 * 162 *
165 * So instead we keep an "irq_enabled" field inside our "struct lguest_data", 163 * So instead we keep an "irq_enabled" field inside our "struct lguest_data",
166 * which the Guest can update with a single instruction. The Host knows to 164 * which the Guest can update with a single instruction. The Host knows to
167 * check there when it wants to deliver an interrupt. 165 * check there before it tries to deliver an interrupt.
168 */ 166 */
169 167
170/* save_flags() is expected to return the processor state (ie. "flags"). The 168/* save_flags() is expected to return the processor state (ie. "flags"). The
@@ -196,10 +194,15 @@ static void irq_enable(void)
196/*M:003 Note that we don't check for outstanding interrupts when we re-enable 194/*M:003 Note that we don't check for outstanding interrupts when we re-enable
197 * them (or when we unmask an interrupt). This seems to work for the moment, 195 * them (or when we unmask an interrupt). This seems to work for the moment,
198 * since interrupts are rare and we'll just get the interrupt on the next timer 196 * since interrupts are rare and we'll just get the interrupt on the next timer
199 * tick, but when we turn on CONFIG_NO_HZ, we should revisit this. One way 197 * tick, but now we can run with CONFIG_NO_HZ, we should revisit this. One way
200 * would be to put the "irq_enabled" field in a page by itself, and have the 198 * would be to put the "irq_enabled" field in a page by itself, and have the
201 * Host write-protect it when an interrupt comes in when irqs are disabled. 199 * Host write-protect it when an interrupt comes in when irqs are disabled.
202 * There will then be a page fault as soon as interrupts are re-enabled. :*/ 200 * There will then be a page fault as soon as interrupts are re-enabled.
201 *
202 * A better method is to implement soft interrupt disable generally for x86:
203 * instead of disabling interrupts, we set a flag. If an interrupt does come
204 * in, we then disable them for real. This is uncommon, so we could simply use
205 * a hypercall for interrupt control and not worry about efficiency. :*/
203 206
204/*G:034 207/*G:034
205 * The Interrupt Descriptor Table (IDT). 208 * The Interrupt Descriptor Table (IDT).
@@ -212,6 +215,10 @@ static void irq_enable(void)
212static void lguest_write_idt_entry(gate_desc *dt, 215static void lguest_write_idt_entry(gate_desc *dt,
213 int entrynum, const gate_desc *g) 216 int entrynum, const gate_desc *g)
214{ 217{
218 /* The gate_desc structure is 8 bytes long: we hand it to the Host in
219 * two 32-bit chunks. The whole 32-bit kernel used to hand descriptors
220 * around like this; typesafety wasn't a big concern in Linux's early
221 * years. */
215 u32 *desc = (u32 *)g; 222 u32 *desc = (u32 *)g;
216 /* Keep the local copy up to date. */ 223 /* Keep the local copy up to date. */
217 native_write_idt_entry(dt, entrynum, g); 224 native_write_idt_entry(dt, entrynum, g);
@@ -243,7 +250,8 @@ static void lguest_load_idt(const struct desc_ptr *desc)
243 * 250 *
244 * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY 251 * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY
245 * hypercall and use that repeatedly to load a new IDT. I don't think it 252 * hypercall and use that repeatedly to load a new IDT. I don't think it
246 * really matters, but wouldn't it be nice if they were the same? 253 * really matters, but wouldn't it be nice if they were the same? Wouldn't
254 * it be even better if you were the one to send the patch to fix it?
247 */ 255 */
248static void lguest_load_gdt(const struct desc_ptr *desc) 256static void lguest_load_gdt(const struct desc_ptr *desc)
249{ 257{
@@ -298,9 +306,9 @@ static void lguest_load_tr_desc(void)
298 306
299/* The "cpuid" instruction is a way of querying both the CPU identity 307/* The "cpuid" instruction is a way of querying both the CPU identity
300 * (manufacturer, model, etc) and its features. It was introduced before the 308 * (manufacturer, model, etc) and its features. It was introduced before the
301 * Pentium in 1993 and keeps getting extended by both Intel and AMD. As you 309 * Pentium in 1993 and keeps getting extended by both Intel, AMD and others.
302 * might imagine, after a decade and a half this treatment, it is now a giant 310 * As you might imagine, after a decade and a half this treatment, it is now a
303 * ball of hair. Its entry in the current Intel manual runs to 28 pages. 311 * giant ball of hair. Its entry in the current Intel manual runs to 28 pages.
304 * 312 *
305 * This instruction even it has its own Wikipedia entry. The Wikipedia entry 313 * This instruction even it has its own Wikipedia entry. The Wikipedia entry
306 * has been translated into 4 languages. I am not making this up! 314 * has been translated into 4 languages. I am not making this up!
@@ -594,17 +602,17 @@ static unsigned long lguest_get_wallclock(void)
594 return lguest_data.time.tv_sec; 602 return lguest_data.time.tv_sec;
595} 603}
596 604
597/* The TSC is a Time Stamp Counter. The Host tells us what speed it runs at, 605/* The TSC is an Intel thing called the Time Stamp Counter. The Host tells us
598 * or 0 if it's unusable as a reliable clock source. This matches what we want 606 * what speed it runs at, or 0 if it's unusable as a reliable clock source.
599 * here: if we return 0 from this function, the x86 TSC clock will not register 607 * This matches what we want here: if we return 0 from this function, the x86
600 * itself. */ 608 * TSC clock will give up and not register itself. */
601static unsigned long lguest_cpu_khz(void) 609static unsigned long lguest_cpu_khz(void)
602{ 610{
603 return lguest_data.tsc_khz; 611 return lguest_data.tsc_khz;
604} 612}
605 613
606/* If we can't use the TSC, the kernel falls back to our "lguest_clock", where 614/* If we can't use the TSC, the kernel falls back to our lower-priority
607 * we read the time value given to us by the Host. */ 615 * "lguest_clock", where we read the time value given to us by the Host. */
608static cycle_t lguest_clock_read(void) 616static cycle_t lguest_clock_read(void)
609{ 617{
610 unsigned long sec, nsec; 618 unsigned long sec, nsec;
@@ -648,12 +656,16 @@ static struct clocksource lguest_clock = {
648static int lguest_clockevent_set_next_event(unsigned long delta, 656static int lguest_clockevent_set_next_event(unsigned long delta,
649 struct clock_event_device *evt) 657 struct clock_event_device *evt)
650{ 658{
659 /* FIXME: I don't think this can ever happen, but James tells me he had
660 * to put this code in. Maybe we should remove it now. Anyone? */
651 if (delta < LG_CLOCK_MIN_DELTA) { 661 if (delta < LG_CLOCK_MIN_DELTA) {
652 if (printk_ratelimit()) 662 if (printk_ratelimit())
653 printk(KERN_DEBUG "%s: small delta %lu ns\n", 663 printk(KERN_DEBUG "%s: small delta %lu ns\n",
654 __FUNCTION__, delta); 664 __FUNCTION__, delta);
655 return -ETIME; 665 return -ETIME;
656 } 666 }
667
668 /* Please wake us this far in the future. */
657 hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0); 669 hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0);
658 return 0; 670 return 0;
659} 671}
@@ -738,7 +750,7 @@ static void lguest_time_init(void)
738 * will not tolerate us trying to use that), the stack pointer, and the number 750 * will not tolerate us trying to use that), the stack pointer, and the number
739 * of pages in the stack. */ 751 * of pages in the stack. */
740static void lguest_load_sp0(struct tss_struct *tss, 752static void lguest_load_sp0(struct tss_struct *tss,
741 struct thread_struct *thread) 753 struct thread_struct *thread)
742{ 754{
743 lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0, 755 lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0,
744 THREAD_SIZE/PAGE_SIZE); 756 THREAD_SIZE/PAGE_SIZE);
@@ -786,9 +798,8 @@ static void lguest_safe_halt(void)
786 hcall(LHCALL_HALT, 0, 0, 0); 798 hcall(LHCALL_HALT, 0, 0, 0);
787} 799}
788 800
789/* Perhaps CRASH isn't the best name for this hypercall, but we use it to get a 801/* The SHUTDOWN hypercall takes a string to describe what's happening, and
790 * message out when we're crashing as well as elegant termination like powering 802 * an argument which says whether this to restart (reboot) the Guest or not.
791 * off.
792 * 803 *
793 * Note that the Host always prefers that the Guest speak in physical addresses 804 * Note that the Host always prefers that the Guest speak in physical addresses
794 * rather than virtual addresses, so we use __pa() here. */ 805 * rather than virtual addresses, so we use __pa() here. */
@@ -816,8 +827,9 @@ static struct notifier_block paniced = {
816/* Setting up memory is fairly easy. */ 827/* Setting up memory is fairly easy. */
817static __init char *lguest_memory_setup(void) 828static __init char *lguest_memory_setup(void)
818{ 829{
819 /* We do this here and not earlier because lockcheck barfs if we do it 830 /* We do this here and not earlier because lockcheck used to barf if we
820 * before start_kernel() */ 831 * did it before start_kernel(). I think we fixed that, so it'd be
832 * nice to move it back to lguest_init. Patch welcome... */
821 atomic_notifier_chain_register(&panic_notifier_list, &paniced); 833 atomic_notifier_chain_register(&panic_notifier_list, &paniced);
822 834
823 /* The Linux bootloader header contains an "e820" memory map: the 835 /* The Linux bootloader header contains an "e820" memory map: the
@@ -850,12 +862,19 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
850 return len; 862 return len;
851} 863}
852 864
865/* Rebooting also tells the Host we're finished, but the RESTART flag tells the
866 * Launcher to reboot us. */
867static void lguest_restart(char *reason)
868{
869 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0);
870}
871
853/*G:050 872/*G:050
854 * Patching (Powerfully Placating Performance Pedants) 873 * Patching (Powerfully Placating Performance Pedants)
855 * 874 *
856 * We have already seen that pv_ops structures let us replace simple 875 * We have already seen that pv_ops structures let us replace simple native
857 * native instructions with calls to the appropriate back end all throughout 876 * instructions with calls to the appropriate back end all throughout the
858 * the kernel. This allows the same kernel to run as a Guest and as a native 877 * kernel. This allows the same kernel to run as a Guest and as a native
859 * kernel, but it's slow because of all the indirect branches. 878 * kernel, but it's slow because of all the indirect branches.
860 * 879 *
861 * Remember that David Wheeler quote about "Any problem in computer science can 880 * Remember that David Wheeler quote about "Any problem in computer science can
@@ -908,14 +927,9 @@ static unsigned lguest_patch(u8 type, u16 clobber, void *ibuf,
908 return insn_len; 927 return insn_len;
909} 928}
910 929
911static void lguest_restart(char *reason) 930/*G:030 Once we get to lguest_init(), we know we're a Guest. The various
912{ 931 * pv_ops structures in the kernel provide points for (almost) every routine we
913 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0); 932 * have to override to avoid privileged instructions. */
914}
915
916/*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops
917 * structures in the kernel provide points for (almost) every routine we have
918 * to override to avoid privileged instructions. */
919__init void lguest_init(void) 933__init void lguest_init(void)
920{ 934{
921 /* We're under lguest, paravirt is enabled, and we're running at 935 /* We're under lguest, paravirt is enabled, and we're running at
@@ -1003,9 +1017,9 @@ __init void lguest_init(void)
1003 * the normal data segment to get through booting. */ 1017 * the normal data segment to get through booting. */
1004 asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); 1018 asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory");
1005 1019
1006 /* The Host uses the top of the Guest's virtual address space for the 1020 /* The Host<->Guest Switcher lives at the top of our address space, and
1007 * Host<->Guest Switcher, and it tells us how big that is in 1021 * the Host told us how big it is when we made LGUEST_INIT hypercall:
1008 * lguest_data.reserve_mem, set up on the LGUEST_INIT hypercall. */ 1022 * it put the answer in lguest_data.reserve_mem */
1009 reserve_top_address(lguest_data.reserve_mem); 1023 reserve_top_address(lguest_data.reserve_mem);
1010 1024
1011 /* If we don't initialize the lock dependency checker now, it crashes 1025 /* If we don't initialize the lock dependency checker now, it crashes
@@ -1027,6 +1041,7 @@ __init void lguest_init(void)
1027 /* Math is always hard! */ 1041 /* Math is always hard! */
1028 new_cpu_data.hard_math = 1; 1042 new_cpu_data.hard_math = 1;
1029 1043
1044 /* We don't have features. We have puppies! Puppies! */
1030#ifdef CONFIG_X86_MCE 1045#ifdef CONFIG_X86_MCE
1031 mce_disabled = 1; 1046 mce_disabled = 1;
1032#endif 1047#endif
@@ -1044,10 +1059,11 @@ __init void lguest_init(void)
1044 virtio_cons_early_init(early_put_chars); 1059 virtio_cons_early_init(early_put_chars);
1045 1060
1046 /* Last of all, we set the power management poweroff hook to point to 1061 /* Last of all, we set the power management poweroff hook to point to
1047 * the Guest routine to power off. */ 1062 * the Guest routine to power off, and the reboot hook to our restart
1063 * routine. */
1048 pm_power_off = lguest_power_off; 1064 pm_power_off = lguest_power_off;
1049
1050 machine_ops.restart = lguest_restart; 1065 machine_ops.restart = lguest_restart;
1066
1051 /* Now we're set up, call start_kernel() in init/main.c and we proceed 1067 /* Now we're set up, call start_kernel() in init/main.c and we proceed
1052 * to boot as normal. It never returns. */ 1068 * to boot as normal. It never returns. */
1053 start_kernel(); 1069 start_kernel();
diff --git a/arch/x86/lguest/i386_head.S b/arch/x86/lguest/i386_head.S
index 95b6fbcded63..5c7cef34c9e7 100644
--- a/arch/x86/lguest/i386_head.S
+++ b/arch/x86/lguest/i386_head.S
@@ -5,13 +5,20 @@
5#include <asm/thread_info.h> 5#include <asm/thread_info.h>
6#include <asm/processor-flags.h> 6#include <asm/processor-flags.h>
7 7
8/*G:020 This is where we begin: head.S notes that the boot header's platform 8/*G:020 Our story starts with the kernel booting into startup_32 in
9 * type field is "1" (lguest), so calls us here. 9 * arch/x86/kernel/head_32.S. It expects a boot header, which is created by
10 * the bootloader (the Launcher in our case).
11 *
12 * The startup_32 function does very little: it clears the uninitialized global
13 * C variables which we expect to be zero (ie. BSS) and then copies the boot
14 * header and kernel command line somewhere safe. Finally it checks the
15 * 'hardware_subarch' field. This was introduced in 2.6.24 for lguest and Xen:
16 * if it's set to '1' (lguest's assigned number), then it calls us here.
10 * 17 *
11 * WARNING: be very careful here! We're running at addresses equal to physical 18 * WARNING: be very careful here! We're running at addresses equal to physical
12 * addesses (around 0), not above PAGE_OFFSET as most code expectes 19 * addesses (around 0), not above PAGE_OFFSET as most code expectes
13 * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any 20 * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any
14 * data. 21 * data without remembering to subtract __PAGE_OFFSET!
15 * 22 *
16 * The .section line puts this code in .init.text so it will be discarded after 23 * The .section line puts this code in .init.text so it will be discarded after
17 * boot. */ 24 * boot. */
@@ -24,7 +31,7 @@ ENTRY(lguest_entry)
24 int $LGUEST_TRAP_ENTRY 31 int $LGUEST_TRAP_ENTRY
25 32
26 /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl 33 /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl
27 * instruction uses %esi implicitly as the source for the copy we' 34 * instruction uses %esi implicitly as the source for the copy we're
28 * about to do. */ 35 * about to do. */
29 movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi 36 movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi
30 37
diff --git a/arch/x86/mach-rdc321x/gpio.c b/arch/x86/mach-rdc321x/gpio.c
index 031269163bd6..247f33d3a407 100644
--- a/arch/x86/mach-rdc321x/gpio.c
+++ b/arch/x86/mach-rdc321x/gpio.c
@@ -1,91 +1,194 @@
1/* 1/*
2 * Copyright (C) 2007, OpenWrt.org, Florian Fainelli <florian@openwrt.org> 2 * GPIO support for RDC SoC R3210/R8610
3 * RDC321x architecture specific GPIO support 3 *
4 * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
5 * Copyright (C) 2008, Volker Weiss <dev@tintuc.de>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
4 * 20 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */ 21 */
10 22
11#include <linux/autoconf.h> 23
12#include <linux/init.h> 24#include <linux/spinlock.h>
13#include <linux/io.h> 25#include <linux/io.h>
14#include <linux/types.h> 26#include <linux/types.h>
15#include <linux/module.h> 27#include <linux/module.h>
16#include <linux/delay.h>
17 28
29#include <asm/gpio.h>
18#include <asm/mach-rdc321x/rdc321x_defs.h> 30#include <asm/mach-rdc321x/rdc321x_defs.h>
19 31
20static inline int rdc_gpio_is_valid(unsigned gpio) 32
33/* spin lock to protect our private copy of GPIO data register plus
34 the access to PCI conf registers. */
35static DEFINE_SPINLOCK(gpio_lock);
36
37/* copy of GPIO data registers */
38static u32 gpio_data_reg1;
39static u32 gpio_data_reg2;
40
41static u32 gpio_request_data[2];
42
43
44static inline void rdc321x_conf_write(unsigned addr, u32 value)
21{ 45{
22 return (gpio <= RDC_MAX_GPIO); 46 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(value, RDC3210_CFGREG_DATA);
23} 48}
24 49
25static unsigned int rdc_gpio_read(unsigned gpio) 50static inline void rdc321x_conf_or(unsigned addr, u32 value)
26{ 51{
27 unsigned int val; 52 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
28 53 value |= inl(RDC3210_CFGREG_DATA);
29 val = 0x80000000 | (7 << 11) | ((gpio&0x20?0x84:0x48)); 54 outl(value, RDC3210_CFGREG_DATA);
30 outl(val, RDC3210_CFGREG_ADDR);
31 udelay(10);
32 val = inl(RDC3210_CFGREG_DATA);
33 val |= (0x1 << (gpio & 0x1F));
34 outl(val, RDC3210_CFGREG_DATA);
35 udelay(10);
36 val = 0x80000000 | (7 << 11) | ((gpio&0x20?0x88:0x4C));
37 outl(val, RDC3210_CFGREG_ADDR);
38 udelay(10);
39 val = inl(RDC3210_CFGREG_DATA);
40
41 return val;
42} 55}
43 56
44static void rdc_gpio_write(unsigned int val) 57static inline u32 rdc321x_conf_read(unsigned addr)
45{ 58{
46 if (val) { 59 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(val, RDC3210_CFGREG_DATA); 60
48 udelay(10); 61 return inl(RDC3210_CFGREG_DATA);
49 }
50} 62}
51 63
52int rdc_gpio_get_value(unsigned gpio) 64/* configure pin as GPIO */
65static void rdc321x_configure_gpio(unsigned gpio)
66{
67 unsigned long flags;
68
69 spin_lock_irqsave(&gpio_lock, flags);
70 rdc321x_conf_or(gpio < 32
71 ? RDC321X_GPIO_CTRL_REG1 : RDC321X_GPIO_CTRL_REG2,
72 1 << (gpio & 0x1f));
73 spin_unlock_irqrestore(&gpio_lock, flags);
74}
75
76/* initially setup the 2 copies of the gpio data registers.
77 This function must be called by the platform setup code. */
78void __init rdc321x_gpio_setup()
79{
80 /* this might not be, what others (BIOS, bootloader, etc.)
81 wrote to these registers before, but it's a good guess. Still
82 better than just using 0xffffffff. */
83
84 gpio_data_reg1 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG1);
85 gpio_data_reg2 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG2);
86}
87
88/* determine, if gpio number is valid */
89static inline int rdc321x_is_gpio(unsigned gpio)
90{
91 return gpio <= RDC321X_MAX_GPIO;
92}
93
94/* request GPIO */
95int rdc_gpio_request(unsigned gpio, const char *label)
53{ 96{
54 if (rdc_gpio_is_valid(gpio)) 97 unsigned long flags;
55 return (int)rdc_gpio_read(gpio); 98
56 else 99 if (!rdc321x_is_gpio(gpio))
57 return -EINVAL; 100 return -EINVAL;
101
102 spin_lock_irqsave(&gpio_lock, flags);
103 if (gpio_request_data[(gpio & 0x20) ? 1 : 0] & (1 << (gpio & 0x1f)))
104 goto inuse;
105 gpio_request_data[(gpio & 0x20) ? 1 : 0] |= (1 << (gpio & 0x1f));
106 spin_unlock_irqrestore(&gpio_lock, flags);
107
108 return 0;
109inuse:
110 spin_unlock_irqrestore(&gpio_lock, flags);
111 return -EINVAL;
58} 112}
59EXPORT_SYMBOL(rdc_gpio_get_value); 113EXPORT_SYMBOL(rdc_gpio_request);
60 114
61void rdc_gpio_set_value(unsigned gpio, int value) 115/* release previously-claimed GPIO */
116void rdc_gpio_free(unsigned gpio)
62{ 117{
63 unsigned int val; 118 unsigned long flags;
64 119
65 if (!rdc_gpio_is_valid(gpio)) 120 if (!rdc321x_is_gpio(gpio))
66 return; 121 return;
67 122
68 val = rdc_gpio_read(gpio); 123 spin_lock_irqsave(&gpio_lock, flags);
124 gpio_request_data[(gpio & 0x20) ? 1 : 0] &= ~(1 << (gpio & 0x1f));
125 spin_unlock_irqrestore(&gpio_lock, flags);
126}
127EXPORT_SYMBOL(rdc_gpio_free);
128
129/* read GPIO pin */
130int rdc_gpio_get_value(unsigned gpio)
131{
132 u32 reg;
133 unsigned long flags;
134
135 spin_lock_irqsave(&gpio_lock, flags);
136 reg = rdc321x_conf_read(gpio < 32
137 ? RDC321X_GPIO_DATA_REG1 : RDC321X_GPIO_DATA_REG2);
138 spin_unlock_irqrestore(&gpio_lock, flags);
69 139
70 if (value) 140 return (1 << (gpio & 0x1f)) & reg ? 1 : 0;
71 val &= ~(0x1 << (gpio & 0x1F)); 141}
72 else 142EXPORT_SYMBOL(rdc_gpio_get_value);
73 val |= (0x1 << (gpio & 0x1F));
74 143
75 rdc_gpio_write(val); 144/* set GPIO pin to value */
145void rdc_gpio_set_value(unsigned gpio, int value)
146{
147 unsigned long flags;
148 u32 reg;
149
150 reg = 1 << (gpio & 0x1f);
151 if (gpio < 32) {
152 spin_lock_irqsave(&gpio_lock, flags);
153 if (value)
154 gpio_data_reg1 |= reg;
155 else
156 gpio_data_reg1 &= ~reg;
157 rdc321x_conf_write(RDC321X_GPIO_DATA_REG1, gpio_data_reg1);
158 spin_unlock_irqrestore(&gpio_lock, flags);
159 } else {
160 spin_lock_irqsave(&gpio_lock, flags);
161 if (value)
162 gpio_data_reg2 |= reg;
163 else
164 gpio_data_reg2 &= ~reg;
165 rdc321x_conf_write(RDC321X_GPIO_DATA_REG2, gpio_data_reg2);
166 spin_unlock_irqrestore(&gpio_lock, flags);
167 }
76} 168}
77EXPORT_SYMBOL(rdc_gpio_set_value); 169EXPORT_SYMBOL(rdc_gpio_set_value);
78 170
171/* configure GPIO pin as input */
79int rdc_gpio_direction_input(unsigned gpio) 172int rdc_gpio_direction_input(unsigned gpio)
80{ 173{
174 if (!rdc321x_is_gpio(gpio))
175 return -EINVAL;
176
177 rdc321x_configure_gpio(gpio);
178
81 return 0; 179 return 0;
82} 180}
83EXPORT_SYMBOL(rdc_gpio_direction_input); 181EXPORT_SYMBOL(rdc_gpio_direction_input);
84 182
183/* configure GPIO pin as output and set value */
85int rdc_gpio_direction_output(unsigned gpio, int value) 184int rdc_gpio_direction_output(unsigned gpio, int value)
86{ 185{
186 if (!rdc321x_is_gpio(gpio))
187 return -EINVAL;
188
189 gpio_set_value(gpio, value);
190 rdc321x_configure_gpio(gpio);
191
87 return 0; 192 return 0;
88} 193}
89EXPORT_SYMBOL(rdc_gpio_direction_output); 194EXPORT_SYMBOL(rdc_gpio_direction_output);
90
91
diff --git a/arch/x86/mach-rdc321x/platform.c b/arch/x86/mach-rdc321x/platform.c
index dda6024a5862..a037041817c7 100644
--- a/arch/x86/mach-rdc321x/platform.c
+++ b/arch/x86/mach-rdc321x/platform.c
@@ -62,6 +62,8 @@ static struct platform_device *rdc321x_devs[] = {
62 62
63static int __init rdc_board_setup(void) 63static int __init rdc_board_setup(void)
64{ 64{
65 rdc321x_gpio_setup();
66
65 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs)); 67 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
66} 68}
67 69
diff --git a/arch/x86/mach-visws/traps.c b/arch/x86/mach-visws/traps.c
index 843b67acf43b..bfac6ba10f8a 100644
--- a/arch/x86/mach-visws/traps.c
+++ b/arch/x86/mach-visws/traps.c
@@ -46,8 +46,9 @@ static __init void cobalt_init(void)
46 */ 46 */
47 set_fixmap(FIX_APIC_BASE, APIC_DEFAULT_PHYS_BASE); 47 set_fixmap(FIX_APIC_BASE, APIC_DEFAULT_PHYS_BASE);
48 setup_local_APIC(); 48 setup_local_APIC();
49 printk(KERN_INFO "Local APIC Version %#lx, ID %#lx\n", 49 printk(KERN_INFO "Local APIC Version %#x, ID %#x\n",
50 apic_read(APIC_LVR), apic_read(APIC_ID)); 50 (unsigned int)apic_read(APIC_LVR),
51 (unsigned int)apic_read(APIC_ID));
51 52
52 set_fixmap(FIX_CO_CPU, CO_CPU_PHYS); 53 set_fixmap(FIX_CO_CPU, CO_CPU_PHYS);
53 set_fixmap(FIX_CO_APIC, CO_APIC_PHYS); 54 set_fixmap(FIX_CO_APIC, CO_APIC_PHYS);
diff --git a/arch/x86/mm/discontig_32.c b/arch/x86/mm/discontig_32.c
index c394ca0720b8..8e25e06ff730 100644
--- a/arch/x86/mm/discontig_32.c
+++ b/arch/x86/mm/discontig_32.c
@@ -324,7 +324,6 @@ unsigned long __init setup_memory(void)
324 * this space and use it to adjust the boundary between ZONE_NORMAL 324 * this space and use it to adjust the boundary between ZONE_NORMAL
325 * and ZONE_HIGHMEM. 325 * and ZONE_HIGHMEM.
326 */ 326 */
327 find_max_pfn();
328 get_memcfg_numa(); 327 get_memcfg_numa();
329 328
330 kva_pages = calculate_numa_remap_pages(); 329 kva_pages = calculate_numa_remap_pages();
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index fdc667422df9..ec08d8389850 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -91,12 +91,10 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
91 int prefetch = 0; 91 int prefetch = 0;
92 unsigned char *max_instr; 92 unsigned char *max_instr;
93 93
94#ifdef CONFIG_X86_32 94 /*
95 if (!(__supported_pte_mask & _PAGE_NX)) 95 * If it was a exec (instruction fetch) fault on NX page, then
96 return 0; 96 * do not ignore the fault:
97#endif 97 */
98
99 /* If it was a exec fault on NX page, ignore */
100 if (error_code & PF_INSTR) 98 if (error_code & PF_INSTR)
101 return 0; 99 return 0;
102 100
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index 3d936f232704..9cf33d3ee5bc 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -73,15 +73,15 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot)
73{ 73{
74 enum fixed_addresses idx; 74 enum fixed_addresses idx;
75 unsigned long vaddr; 75 unsigned long vaddr;
76 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
77
78 debug_kmap_atomic_prot(type);
79 76
77 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
80 pagefault_disable(); 78 pagefault_disable();
81 79
82 if (!PageHighMem(page)) 80 if (!PageHighMem(page))
83 return page_address(page); 81 return page_address(page);
84 82
83 debug_kmap_atomic_prot(type);
84
85 idx = type + KM_TYPE_NR*smp_processor_id(); 85 idx = type + KM_TYPE_NR*smp_processor_id();
86 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 86 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
87 BUG_ON(!pte_none(*(kmap_pte-idx))); 87 BUG_ON(!pte_none(*(kmap_pte-idx)));
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
index 4fbafb4bc2f0..0b3d567e686d 100644
--- a/arch/x86/mm/hugetlbpage.c
+++ b/arch/x86/mm/hugetlbpage.c
@@ -178,7 +178,7 @@ follow_huge_addr(struct mm_struct *mm, unsigned long address, int write)
178 178
179 page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; 179 page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)];
180 180
181 WARN_ON(!PageCompound(page)); 181 WARN_ON(!PageHead(page));
182 182
183 return page; 183 return page;
184} 184}
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 8fe576baa148..794895c6dcc9 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -106,7 +106,7 @@ static int ioremap_change_attr(unsigned long vaddr, unsigned long size,
106 * have to convert them into an offset in a page-aligned mapping, but the 106 * have to convert them into an offset in a page-aligned mapping, but the
107 * caller shouldn't need to know that small detail. 107 * caller shouldn't need to know that small detail.
108 */ 108 */
109static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, 109static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size,
110 enum ioremap_mode mode) 110 enum ioremap_mode mode)
111{ 111{
112 unsigned long pfn, offset, last_addr, vaddr; 112 unsigned long pfn, offset, last_addr, vaddr;
@@ -137,7 +137,11 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
137 switch (mode) { 137 switch (mode) {
138 case IOR_MODE_UNCACHED: 138 case IOR_MODE_UNCACHED:
139 default: 139 default:
140 prot = PAGE_KERNEL_NOCACHE; 140 /*
141 * FIXME: we will use UC MINUS for now, as video fb drivers
142 * depend on it. Upcoming ioremap_wc() will fix this behavior.
143 */
144 prot = PAGE_KERNEL_UC_MINUS;
141 break; 145 break;
142 case IOR_MODE_CACHED: 146 case IOR_MODE_CACHED:
143 prot = PAGE_KERNEL; 147 prot = PAGE_KERNEL;
@@ -193,13 +197,13 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
193 * 197 *
194 * Must be freed with iounmap. 198 * Must be freed with iounmap.
195 */ 199 */
196void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size) 200void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size)
197{ 201{
198 return __ioremap(phys_addr, size, IOR_MODE_UNCACHED); 202 return __ioremap(phys_addr, size, IOR_MODE_UNCACHED);
199} 203}
200EXPORT_SYMBOL(ioremap_nocache); 204EXPORT_SYMBOL(ioremap_nocache);
201 205
202void __iomem *ioremap_cache(unsigned long phys_addr, unsigned long size) 206void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
203{ 207{
204 return __ioremap(phys_addr, size, IOR_MODE_CACHED); 208 return __ioremap(phys_addr, size, IOR_MODE_CACHED);
205} 209}
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 8ccfee10f5b5..16b82ad34b96 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -221,8 +221,7 @@ void __init setup_node_bootmem(int nodeid, unsigned long start,
221 bootmap_pages<<PAGE_SHIFT, PAGE_SIZE); 221 bootmap_pages<<PAGE_SHIFT, PAGE_SIZE);
222 if (bootmap == NULL) { 222 if (bootmap == NULL) {
223 if (nodedata_phys < start || nodedata_phys >= end) 223 if (nodedata_phys < start || nodedata_phys >= end)
224 free_bootmem((unsigned long)node_data[nodeid], 224 free_bootmem(nodedata_phys, pgdat_size);
225 pgdat_size);
226 node_data[nodeid] = NULL; 225 node_data[nodeid] = NULL;
227 return; 226 return;
228 } 227 }
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 14e48b5a94ba..7b79f6be4e7d 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -771,7 +771,7 @@ static inline int change_page_attr_clear(unsigned long addr, int numpages,
771int set_memory_uc(unsigned long addr, int numpages) 771int set_memory_uc(unsigned long addr, int numpages)
772{ 772{
773 return change_page_attr_set(addr, numpages, 773 return change_page_attr_set(addr, numpages,
774 __pgprot(_PAGE_PCD | _PAGE_PWT)); 774 __pgprot(_PAGE_PCD));
775} 775}
776EXPORT_SYMBOL(set_memory_uc); 776EXPORT_SYMBOL(set_memory_uc);
777 777
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 8b9ee27805fd..de4e6f05840b 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -95,7 +95,7 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&dummy_shared_info;
95 * 95 *
96 * 0: not available, 1: available 96 * 0: not available, 1: available
97 */ 97 */
98static int have_vcpu_info_placement = 0; 98static int have_vcpu_info_placement = 1;
99 99
100static void __init xen_vcpu_setup(int cpu) 100static void __init xen_vcpu_setup(int cpu)
101{ 101{
@@ -103,6 +103,7 @@ static void __init xen_vcpu_setup(int cpu)
103 int err; 103 int err;
104 struct vcpu_info *vcpup; 104 struct vcpu_info *vcpup;
105 105
106 BUG_ON(HYPERVISOR_shared_info == &dummy_shared_info);
106 per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu]; 107 per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu];
107 108
108 if (!have_vcpu_info_placement) 109 if (!have_vcpu_info_placement)
@@ -805,33 +806,43 @@ static __init void xen_pagetable_setup_start(pgd_t *base)
805 PFN_DOWN(__pa(xen_start_info->pt_base))); 806 PFN_DOWN(__pa(xen_start_info->pt_base)));
806} 807}
807 808
808static __init void xen_pagetable_setup_done(pgd_t *base) 809static __init void setup_shared_info(void)
809{ 810{
810 /* This will work as long as patching hasn't happened yet
811 (which it hasn't) */
812 pv_mmu_ops.alloc_pt = xen_alloc_pt;
813 pv_mmu_ops.alloc_pd = xen_alloc_pd;
814 pv_mmu_ops.release_pt = xen_release_pt;
815 pv_mmu_ops.release_pd = xen_release_pt;
816 pv_mmu_ops.set_pte = xen_set_pte;
817
818 if (!xen_feature(XENFEAT_auto_translated_physmap)) { 811 if (!xen_feature(XENFEAT_auto_translated_physmap)) {
812 unsigned long addr = fix_to_virt(FIX_PARAVIRT_BOOTMAP);
813
819 /* 814 /*
820 * Create a mapping for the shared info page. 815 * Create a mapping for the shared info page.
821 * Should be set_fixmap(), but shared_info is a machine 816 * Should be set_fixmap(), but shared_info is a machine
822 * address with no corresponding pseudo-phys address. 817 * address with no corresponding pseudo-phys address.
823 */ 818 */
824 set_pte_mfn(fix_to_virt(FIX_PARAVIRT_BOOTMAP), 819 set_pte_mfn(addr,
825 PFN_DOWN(xen_start_info->shared_info), 820 PFN_DOWN(xen_start_info->shared_info),
826 PAGE_KERNEL); 821 PAGE_KERNEL);
827 822
828 HYPERVISOR_shared_info = 823 HYPERVISOR_shared_info = (struct shared_info *)addr;
829 (struct shared_info *)fix_to_virt(FIX_PARAVIRT_BOOTMAP);
830
831 } else 824 } else
832 HYPERVISOR_shared_info = 825 HYPERVISOR_shared_info =
833 (struct shared_info *)__va(xen_start_info->shared_info); 826 (struct shared_info *)__va(xen_start_info->shared_info);
834 827
828#ifndef CONFIG_SMP
829 /* In UP this is as good a place as any to set up shared info */
830 xen_setup_vcpu_info_placement();
831#endif
832}
833
834static __init void xen_pagetable_setup_done(pgd_t *base)
835{
836 /* This will work as long as patching hasn't happened yet
837 (which it hasn't) */
838 pv_mmu_ops.alloc_pt = xen_alloc_pt;
839 pv_mmu_ops.alloc_pd = xen_alloc_pd;
840 pv_mmu_ops.release_pt = xen_release_pt;
841 pv_mmu_ops.release_pd = xen_release_pt;
842 pv_mmu_ops.set_pte = xen_set_pte;
843
844 setup_shared_info();
845
835 /* Actually pin the pagetable down, but we can't set PG_pinned 846 /* Actually pin the pagetable down, but we can't set PG_pinned
836 yet because the page structures don't exist yet. */ 847 yet because the page structures don't exist yet. */
837 { 848 {
@@ -1182,15 +1193,9 @@ asmlinkage void __init xen_start_kernel(void)
1182 x86_write_percpu(xen_cr3, __pa(pgd)); 1193 x86_write_percpu(xen_cr3, __pa(pgd));
1183 x86_write_percpu(xen_current_cr3, __pa(pgd)); 1194 x86_write_percpu(xen_current_cr3, __pa(pgd));
1184 1195
1185#ifdef CONFIG_SMP
1186 /* Don't do the full vcpu_info placement stuff until we have a 1196 /* Don't do the full vcpu_info placement stuff until we have a
1187 possible map. */ 1197 possible map and a non-dummy shared_info. */
1188 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; 1198 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
1189#else
1190 /* May as well do it now, since there's no good time to call
1191 it later on UP. */
1192 xen_setup_vcpu_info_placement();
1193#endif
1194 1199
1195 pv_info.kernel_rpl = 1; 1200 pv_info.kernel_rpl = 1;
1196 if (xen_feature(XENFEAT_supervisor_mode_kernel)) 1201 if (xen_feature(XENFEAT_supervisor_mode_kernel))
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 1a43b60c0c62..6b7190449d07 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -33,12 +33,17 @@
33 events, then enter the hypervisor to get them handled. 33 events, then enter the hypervisor to get them handled.
34 */ 34 */
35ENTRY(xen_irq_enable_direct) 35ENTRY(xen_irq_enable_direct)
36 /* Clear mask and test pending */ 36 /* Unmask events */
37 andw $0x00ff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending 37 movb $0, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
38
38 /* Preempt here doesn't matter because that will deal with 39 /* Preempt here doesn't matter because that will deal with
39 any pending interrupts. The pending check may end up being 40 any pending interrupts. The pending check may end up being
40 run on the wrong CPU, but that doesn't hurt. */ 41 run on the wrong CPU, but that doesn't hurt. */
42
43 /* Test for pending */
44 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
41 jz 1f 45 jz 1f
46
422: call check_events 472: call check_events
431: 481:
44ENDPATCH(xen_irq_enable_direct) 49ENDPATCH(xen_irq_enable_direct)
diff --git a/block/genhd.c b/block/genhd.c
index c44527d16c52..00da5219ee37 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -360,7 +360,9 @@ static struct kobject *base_probe(dev_t devt, int *part, void *data)
360 360
361static int __init genhd_device_init(void) 361static int __init genhd_device_init(void)
362{ 362{
363 class_register(&block_class); 363 int error = class_register(&block_class);
364 if (unlikely(error))
365 return error;
364 bdev_map = kobj_map_init(base_probe, &block_class_lock); 366 bdev_map = kobj_map_init(base_probe, &block_class_lock);
365 blk_dev_init(); 367 blk_dev_init();
366 368
diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c
index 0f6282207b32..84caa4efc0d4 100644
--- a/crypto/async_tx/async_memcpy.c
+++ b/crypto/async_tx/async_memcpy.c
@@ -66,11 +66,11 @@ async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset,
66 } 66 }
67 67
68 if (tx) { 68 if (tx) {
69 pr_debug("%s: (async) len: %zu\n", __FUNCTION__, len); 69 pr_debug("%s: (async) len: %zu\n", __func__, len);
70 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param); 70 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);
71 } else { 71 } else {
72 void *dest_buf, *src_buf; 72 void *dest_buf, *src_buf;
73 pr_debug("%s: (sync) len: %zu\n", __FUNCTION__, len); 73 pr_debug("%s: (sync) len: %zu\n", __func__, len);
74 74
75 /* wait for any prerequisite operations */ 75 /* wait for any prerequisite operations */
76 if (depend_tx) { 76 if (depend_tx) {
@@ -80,7 +80,7 @@ async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset,
80 BUG_ON(depend_tx->ack); 80 BUG_ON(depend_tx->ack);
81 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR) 81 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR)
82 panic("%s: DMA_ERROR waiting for depend_tx\n", 82 panic("%s: DMA_ERROR waiting for depend_tx\n",
83 __FUNCTION__); 83 __func__);
84 } 84 }
85 85
86 dest_buf = kmap_atomic(dest, KM_USER0) + dest_offset; 86 dest_buf = kmap_atomic(dest, KM_USER0) + dest_offset;
diff --git a/crypto/async_tx/async_memset.c b/crypto/async_tx/async_memset.c
index 09c0e83664bc..f5ff3906b035 100644
--- a/crypto/async_tx/async_memset.c
+++ b/crypto/async_tx/async_memset.c
@@ -63,11 +63,11 @@ async_memset(struct page *dest, int val, unsigned int offset,
63 } 63 }
64 64
65 if (tx) { 65 if (tx) {
66 pr_debug("%s: (async) len: %zu\n", __FUNCTION__, len); 66 pr_debug("%s: (async) len: %zu\n", __func__, len);
67 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param); 67 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);
68 } else { /* run the memset synchronously */ 68 } else { /* run the memset synchronously */
69 void *dest_buf; 69 void *dest_buf;
70 pr_debug("%s: (sync) len: %zu\n", __FUNCTION__, len); 70 pr_debug("%s: (sync) len: %zu\n", __func__, len);
71 71
72 dest_buf = (void *) (((char *) page_address(dest)) + offset); 72 dest_buf = (void *) (((char *) page_address(dest)) + offset);
73 73
@@ -79,7 +79,7 @@ async_memset(struct page *dest, int val, unsigned int offset,
79 BUG_ON(depend_tx->ack); 79 BUG_ON(depend_tx->ack);
80 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR) 80 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR)
81 panic("%s: DMA_ERROR waiting for depend_tx\n", 81 panic("%s: DMA_ERROR waiting for depend_tx\n",
82 __FUNCTION__); 82 __func__);
83 } 83 }
84 84
85 memset(dest_buf, val, len); 85 memset(dest_buf, val, len);
diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c
index 562882189de5..2be3bae89930 100644
--- a/crypto/async_tx/async_tx.c
+++ b/crypto/async_tx/async_tx.c
@@ -472,11 +472,11 @@ async_trigger_callback(enum async_tx_flags flags,
472 tx = NULL; 472 tx = NULL;
473 473
474 if (tx) { 474 if (tx) {
475 pr_debug("%s: (async)\n", __FUNCTION__); 475 pr_debug("%s: (async)\n", __func__);
476 476
477 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param); 477 async_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);
478 } else { 478 } else {
479 pr_debug("%s: (sync)\n", __FUNCTION__); 479 pr_debug("%s: (sync)\n", __func__);
480 480
481 /* wait for any prerequisite operations */ 481 /* wait for any prerequisite operations */
482 if (depend_tx) { 482 if (depend_tx) {
@@ -486,7 +486,7 @@ async_trigger_callback(enum async_tx_flags flags,
486 BUG_ON(depend_tx->ack); 486 BUG_ON(depend_tx->ack);
487 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR) 487 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR)
488 panic("%s: DMA_ERROR waiting for depend_tx\n", 488 panic("%s: DMA_ERROR waiting for depend_tx\n",
489 __FUNCTION__); 489 __func__);
490 } 490 }
491 491
492 async_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param); 492 async_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param);
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c
index 2259a4ff15cb..1c445c7bdab7 100644
--- a/crypto/async_tx/async_xor.c
+++ b/crypto/async_tx/async_xor.c
@@ -47,7 +47,7 @@ do_async_xor(struct dma_device *device,
47 int i; 47 int i;
48 unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0; 48 unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0;
49 49
50 pr_debug("%s: len: %zu\n", __FUNCTION__, len); 50 pr_debug("%s: len: %zu\n", __func__, len);
51 51
52 dma_dest = dma_map_page(device->dev, dest, offset, len, 52 dma_dest = dma_map_page(device->dev, dest, offset, len,
53 DMA_FROM_DEVICE); 53 DMA_FROM_DEVICE);
@@ -86,7 +86,7 @@ do_sync_xor(struct page *dest, struct page **src_list, unsigned int offset,
86 void *_dest; 86 void *_dest;
87 int i; 87 int i;
88 88
89 pr_debug("%s: len: %zu\n", __FUNCTION__, len); 89 pr_debug("%s: len: %zu\n", __func__, len);
90 90
91 /* reuse the 'src_list' array to convert to buffer pointers */ 91 /* reuse the 'src_list' array to convert to buffer pointers */
92 for (i = 0; i < src_cnt; i++) 92 for (i = 0; i < src_cnt; i++)
@@ -196,7 +196,7 @@ async_xor(struct page *dest, struct page **src_list, unsigned int offset,
196 DMA_ERROR) 196 DMA_ERROR)
197 panic("%s: DMA_ERROR waiting for " 197 panic("%s: DMA_ERROR waiting for "
198 "depend_tx\n", 198 "depend_tx\n",
199 __FUNCTION__); 199 __func__);
200 } 200 }
201 201
202 do_sync_xor(dest, &src_list[src_off], offset, 202 do_sync_xor(dest, &src_list[src_off], offset,
@@ -271,12 +271,12 @@ async_xor_zero_sum(struct page *dest, struct page **src_list,
271 271
272 BUG_ON(src_cnt <= 1); 272 BUG_ON(src_cnt <= 1);
273 273
274 if (device) { 274 if (device && src_cnt <= device->max_xor) {
275 dma_addr_t *dma_src = (dma_addr_t *) src_list; 275 dma_addr_t *dma_src = (dma_addr_t *) src_list;
276 unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0; 276 unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0;
277 int i; 277 int i;
278 278
279 pr_debug("%s: (async) len: %zu\n", __FUNCTION__, len); 279 pr_debug("%s: (async) len: %zu\n", __func__, len);
280 280
281 for (i = 0; i < src_cnt; i++) 281 for (i = 0; i < src_cnt; i++)
282 dma_src[i] = dma_map_page(device->dev, src_list[i], 282 dma_src[i] = dma_map_page(device->dev, src_list[i],
@@ -299,7 +299,7 @@ async_xor_zero_sum(struct page *dest, struct page **src_list,
299 } else { 299 } else {
300 unsigned long xor_flags = flags; 300 unsigned long xor_flags = flags;
301 301
302 pr_debug("%s: (sync) len: %zu\n", __FUNCTION__, len); 302 pr_debug("%s: (sync) len: %zu\n", __func__, len);
303 303
304 xor_flags |= ASYNC_TX_XOR_DROP_DST; 304 xor_flags |= ASYNC_TX_XOR_DROP_DST;
305 xor_flags &= ~ASYNC_TX_ACK; 305 xor_flags &= ~ASYNC_TX_ACK;
@@ -310,7 +310,7 @@ async_xor_zero_sum(struct page *dest, struct page **src_list,
310 if (tx) { 310 if (tx) {
311 if (dma_wait_for_async_tx(tx) == DMA_ERROR) 311 if (dma_wait_for_async_tx(tx) == DMA_ERROR)
312 panic("%s: DMA_ERROR waiting for tx\n", 312 panic("%s: DMA_ERROR waiting for tx\n",
313 __FUNCTION__); 313 __func__);
314 async_tx_ack(tx); 314 async_tx_ack(tx);
315 } 315 }
316 316
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index f688c214be0c..b4f5e8542829 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -283,34 +283,22 @@ config ACPI_TOSHIBA
283 If you have a legacy free Toshiba laptop (such as the Libretto L1 283 If you have a legacy free Toshiba laptop (such as the Libretto L1
284 series), say Y. 284 series), say Y.
285 285
286config ACPI_CUSTOM_DSDT 286config ACPI_CUSTOM_DSDT_FILE
287 bool "Include Custom DSDT" 287 string "Custom DSDT Table file to include"
288 default ""
288 depends on !STANDALONE 289 depends on !STANDALONE
289 default n
290 help 290 help
291 This option supports a custom DSDT by linking it into the kernel. 291 This option supports a custom DSDT by linking it into the kernel.
292 See Documentation/acpi/dsdt-override.txt 292 See Documentation/acpi/dsdt-override.txt
293 293
294 If unsure, say N.
295
296config ACPI_CUSTOM_DSDT_FILE
297 string "Custom DSDT Table file to include"
298 depends on ACPI_CUSTOM_DSDT
299 default ""
300 help
301 Enter the full path name to the file which includes the AmlCode 294 Enter the full path name to the file which includes the AmlCode
302 declaration. 295 declaration.
303 296
304config ACPI_CUSTOM_DSDT_INITRD 297 If unsure, don't enter a file name.
305 bool "Read Custom DSDT from initramfs"
306 depends on BLK_DEV_INITRD
307 default n
308 help
309 This option supports a custom DSDT by optionally loading it from initrd.
310 See Documentation/acpi/dsdt-override.txt
311 298
312 If you are not using this feature now, but may use it later, 299config ACPI_CUSTOM_DSDT
313 it is safe to say Y here. 300 bool
301 default ACPI_CUSTOM_DSDT_FILE != ""
314 302
315config ACPI_BLACKLIST_YEAR 303config ACPI_BLACKLIST_YEAR
316 int "Disable ACPI for systems before Jan 1st this year" if X86_32 304 int "Disable ACPI for systems before Jan 1st this year" if X86_32
diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c
index d25ef961415c..44ad90c03c2e 100644
--- a/drivers/acpi/asus_acpi.c
+++ b/drivers/acpi/asus_acpi.c
@@ -610,7 +610,7 @@ write_led(const char __user * buffer, unsigned long count,
610 (led_out) ? (hotk->status | ledmask) : (hotk->status & ~ledmask); 610 (led_out) ? (hotk->status | ledmask) : (hotk->status & ~ledmask);
611 611
612 if (invert) /* invert target value */ 612 if (invert) /* invert target value */
613 led_out = !led_out & 0x1; 613 led_out = !led_out;
614 614
615 if (!write_acpi_int(hotk->handle, ledname, led_out, NULL)) 615 if (!write_acpi_int(hotk->handle, ledname, led_out, NULL))
616 printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", 616 printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n",
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index f6215e809808..d5729d5dc190 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -293,13 +293,12 @@ static int extract_package(struct acpi_battery *battery,
293 strncpy(ptr, (u8 *)&element->integer.value, 293 strncpy(ptr, (u8 *)&element->integer.value,
294 sizeof(acpi_integer)); 294 sizeof(acpi_integer));
295 ptr[sizeof(acpi_integer)] = 0; 295 ptr[sizeof(acpi_integer)] = 0;
296 } else return -EFAULT; 296 } else
297 *ptr = 0; /* don't have value */
297 } else { 298 } else {
298 if (element->type == ACPI_TYPE_INTEGER) { 299 int *x = (int *)((u8 *)battery + offsets[i].offset);
299 int *x = (int *)((u8 *)battery + 300 *x = (element->type == ACPI_TYPE_INTEGER) ?
300 offsets[i].offset); 301 element->integer.value : -1;
301 *x = element->integer.value;
302 } else return -EFAULT;
303 } 302 }
304 } 303 }
305 return 0; 304 return 0;
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index ce3c0a2cbac4..5b6760e0f957 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -776,7 +776,7 @@ static int __init acpi_init(void)
776 776
777 acpi_kobj = kobject_create_and_add("acpi", firmware_kobj); 777 acpi_kobj = kobject_create_and_add("acpi", firmware_kobj);
778 if (!acpi_kobj) { 778 if (!acpi_kobj) {
779 printk(KERN_WARNING "%s: kset create error\n", __FUNCTION__); 779 printk(KERN_WARNING "%s: kset create error\n", __func__);
780 acpi_kobj = NULL; 780 acpi_kobj = NULL;
781 } 781 }
782 782
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index 24a7865a57cb..6c5da83cdb68 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -449,6 +449,7 @@ static int acpi_button_add(struct acpi_device *device)
449 input->phys = button->phys; 449 input->phys = button->phys;
450 input->id.bustype = BUS_HOST; 450 input->id.bustype = BUS_HOST;
451 input->id.product = button->type; 451 input->id.product = button->type;
452 input->dev.parent = &device->dev;
452 453
453 switch (button->type) { 454 switch (button->type) {
454 case ACPI_BUTTON_TYPE_POWER: 455 case ACPI_BUTTON_TYPE_POWER:
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 307cef65c247..fa44fb96fc34 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -710,6 +710,7 @@ static ssize_t write_undock(struct device *dev, struct device_attribute *attr,
710 if (!count) 710 if (!count)
711 return -EINVAL; 711 return -EINVAL;
712 712
713 begin_undock(dock_station);
713 ret = handle_eject_request(dock_station, ACPI_NOTIFY_EJECT_REQUEST); 714 ret = handle_eject_request(dock_station, ACPI_NOTIFY_EJECT_REQUEST);
714 return ret ? ret: count; 715 return ret ? ret: count;
715} 716}
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index caf873c14bfb..7222a18a0319 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -943,11 +943,7 @@ int __init acpi_ec_ecdt_probe(void)
943 boot_ec->command_addr = ecdt_ptr->control.address; 943 boot_ec->command_addr = ecdt_ptr->control.address;
944 boot_ec->data_addr = ecdt_ptr->data.address; 944 boot_ec->data_addr = ecdt_ptr->data.address;
945 boot_ec->gpe = ecdt_ptr->gpe; 945 boot_ec->gpe = ecdt_ptr->gpe;
946 if (ACPI_FAILURE(acpi_get_handle(NULL, ecdt_ptr->id, 946 boot_ec->handle = ACPI_ROOT_OBJECT;
947 &boot_ec->handle))) {
948 pr_info("Failed to locate handle for boot EC\n");
949 boot_ec->handle = ACPI_ROOT_OBJECT;
950 }
951 } else { 947 } else {
952 /* This workaround is needed only on some broken machines, 948 /* This workaround is needed only on some broken machines,
953 * which require early EC, but fail to provide ECDT */ 949 * which require early EC, but fail to provide ECDT */
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 8edba7b678eb..a697fb6cf050 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -91,10 +91,6 @@ static DEFINE_SPINLOCK(acpi_res_lock);
91#define OSI_STRING_LENGTH_MAX 64 /* arbitrary */ 91#define OSI_STRING_LENGTH_MAX 64 /* arbitrary */
92static char osi_additional_string[OSI_STRING_LENGTH_MAX]; 92static char osi_additional_string[OSI_STRING_LENGTH_MAX];
93 93
94#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
95static int acpi_no_initrd_override;
96#endif
97
98/* 94/*
99 * "Ode to _OSI(Linux)" 95 * "Ode to _OSI(Linux)"
100 * 96 *
@@ -324,67 +320,6 @@ acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
324 return AE_OK; 320 return AE_OK;
325} 321}
326 322
327#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
328static struct acpi_table_header *acpi_find_dsdt_initrd(void)
329{
330 struct file *firmware_file;
331 mm_segment_t oldfs;
332 unsigned long len, len2;
333 struct acpi_table_header *dsdt_buffer, *ret = NULL;
334 struct kstat stat;
335 char *ramfs_dsdt_name = "/DSDT.aml";
336
337 printk(KERN_INFO PREFIX "Checking initramfs for custom DSDT\n");
338
339 /*
340 * Never do this at home, only the user-space is allowed to open a file.
341 * The clean way would be to use the firmware loader.
342 * But this code must be run before there is any userspace available.
343 * A static/init firmware infrastructure doesn't exist yet...
344 */
345 if (vfs_stat(ramfs_dsdt_name, &stat) < 0)
346 return ret;
347
348 len = stat.size;
349 /* check especially against empty files */
350 if (len <= 4) {
351 printk(KERN_ERR PREFIX "Failed: DSDT only %lu bytes.\n", len);
352 return ret;
353 }
354
355 firmware_file = filp_open(ramfs_dsdt_name, O_RDONLY, 0);
356 if (IS_ERR(firmware_file)) {
357 printk(KERN_ERR PREFIX "Failed to open %s.\n", ramfs_dsdt_name);
358 return ret;
359 }
360
361 dsdt_buffer = kmalloc(len, GFP_ATOMIC);
362 if (!dsdt_buffer) {
363 printk(KERN_ERR PREFIX "Failed to allocate %lu bytes.\n", len);
364 goto err;
365 }
366
367 oldfs = get_fs();
368 set_fs(KERNEL_DS);
369 len2 = vfs_read(firmware_file, (char __user *)dsdt_buffer, len,
370 &firmware_file->f_pos);
371 set_fs(oldfs);
372 if (len2 < len) {
373 printk(KERN_ERR PREFIX "Failed to read %lu bytes from %s.\n",
374 len, ramfs_dsdt_name);
375 ACPI_FREE(dsdt_buffer);
376 goto err;
377 }
378
379 printk(KERN_INFO PREFIX "Found %lu byte DSDT in %s.\n",
380 len, ramfs_dsdt_name);
381 ret = dsdt_buffer;
382err:
383 filp_close(firmware_file, NULL);
384 return ret;
385}
386#endif
387
388acpi_status 323acpi_status
389acpi_os_table_override(struct acpi_table_header * existing_table, 324acpi_os_table_override(struct acpi_table_header * existing_table,
390 struct acpi_table_header ** new_table) 325 struct acpi_table_header ** new_table)
@@ -398,16 +333,6 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
398 if (strncmp(existing_table->signature, "DSDT", 4) == 0) 333 if (strncmp(existing_table->signature, "DSDT", 4) == 0)
399 *new_table = (struct acpi_table_header *)AmlCode; 334 *new_table = (struct acpi_table_header *)AmlCode;
400#endif 335#endif
401#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
402 if ((strncmp(existing_table->signature, "DSDT", 4) == 0) &&
403 !acpi_no_initrd_override) {
404 struct acpi_table_header *initrd_table;
405
406 initrd_table = acpi_find_dsdt_initrd();
407 if (initrd_table)
408 *new_table = initrd_table;
409 }
410#endif
411 if (*new_table != NULL) { 336 if (*new_table != NULL) {
412 printk(KERN_WARNING PREFIX "Override [%4.4s-%8.8s], " 337 printk(KERN_WARNING PREFIX "Override [%4.4s-%8.8s], "
413 "this is unsafe: tainting kernel\n", 338 "this is unsafe: tainting kernel\n",
@@ -418,15 +343,6 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
418 return AE_OK; 343 return AE_OK;
419} 344}
420 345
421#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
422static int __init acpi_no_initrd_override_setup(char *s)
423{
424 acpi_no_initrd_override = 1;
425 return 1;
426}
427__setup("acpi_no_initrd_override", acpi_no_initrd_override_setup);
428#endif
429
430static irqreturn_t acpi_irq(int irq, void *dev_id) 346static irqreturn_t acpi_irq(int irq, void *dev_id)
431{ 347{
432 u32 handled; 348 u32 handled;
@@ -1237,7 +1153,7 @@ int acpi_check_resource_conflict(struct resource *res)
1237 1153
1238 if (clash) { 1154 if (clash) {
1239 if (acpi_enforce_resources != ENFORCE_RESOURCES_NO) { 1155 if (acpi_enforce_resources != ENFORCE_RESOURCES_NO) {
1240 printk(KERN_INFO "%sACPI: %s resource %s [0x%llx-0x%llx]" 1156 printk("%sACPI: %s resource %s [0x%llx-0x%llx]"
1241 " conflicts with ACPI region %s" 1157 " conflicts with ACPI region %s"
1242 " [0x%llx-0x%llx]\n", 1158 " [0x%llx-0x%llx]\n",
1243 acpi_enforce_resources == ENFORCE_RESOURCES_LAX 1159 acpi_enforce_resources == ENFORCE_RESOURCES_LAX
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 7f19859580c7..89022a74faee 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -25,6 +25,7 @@
25 */ 25 */
26 26
27 27
28#include <linux/dmi.h>
28#include <linux/kernel.h> 29#include <linux/kernel.h>
29#include <linux/module.h> 30#include <linux/module.h>
30#include <linux/init.h> 31#include <linux/init.h>
@@ -76,6 +77,101 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
76 return NULL; 77 return NULL;
77} 78}
78 79
80/* http://bugzilla.kernel.org/show_bug.cgi?id=4773 */
81static struct dmi_system_id medion_md9580[] = {
82 {
83 .ident = "Medion MD9580-F laptop",
84 .matches = {
85 DMI_MATCH(DMI_SYS_VENDOR, "MEDIONNB"),
86 DMI_MATCH(DMI_PRODUCT_NAME, "A555"),
87 },
88 },
89 { }
90};
91
92/* http://bugzilla.kernel.org/show_bug.cgi?id=5044 */
93static struct dmi_system_id dell_optiplex[] = {
94 {
95 .ident = "Dell Optiplex GX1",
96 .matches = {
97 DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
98 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX1 600S+"),
99 },
100 },
101 { }
102};
103
104/* http://bugzilla.kernel.org/show_bug.cgi?id=10138 */
105static struct dmi_system_id hp_t5710[] = {
106 {
107 .ident = "HP t5710",
108 .matches = {
109 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
110 DMI_MATCH(DMI_PRODUCT_NAME, "hp t5000 series"),
111 DMI_MATCH(DMI_BOARD_NAME, "098Ch"),
112 },
113 },
114 { }
115};
116
117struct prt_quirk {
118 struct dmi_system_id *system;
119 unsigned int segment;
120 unsigned int bus;
121 unsigned int device;
122 unsigned char pin;
123 char *source; /* according to BIOS */
124 char *actual_source;
125};
126
127/*
128 * These systems have incorrect _PRT entries. The BIOS claims the PCI
129 * interrupt at the listed segment/bus/device/pin is connected to the first
130 * link device, but it is actually connected to the second.
131 */
132static struct prt_quirk prt_quirks[] = {
133 { medion_md9580, 0, 0, 9, 'A',
134 "\\_SB_.PCI0.ISA_.LNKA",
135 "\\_SB_.PCI0.ISA_.LNKB"},
136 { dell_optiplex, 0, 0, 0xd, 'A',
137 "\\_SB_.LNKB",
138 "\\_SB_.LNKA"},
139 { hp_t5710, 0, 0, 1, 'A',
140 "\\_SB_.PCI0.LNK1",
141 "\\_SB_.PCI0.LNK3"},
142};
143
144static void
145do_prt_fixups(struct acpi_prt_entry *entry, struct acpi_pci_routing_table *prt)
146{
147 int i;
148 struct prt_quirk *quirk;
149
150 for (i = 0; i < ARRAY_SIZE(prt_quirks); i++) {
151 quirk = &prt_quirks[i];
152
153 /* All current quirks involve link devices, not GSIs */
154 if (!prt->source)
155 continue;
156
157 if (dmi_check_system(quirk->system) &&
158 entry->id.segment == quirk->segment &&
159 entry->id.bus == quirk->bus &&
160 entry->id.device == quirk->device &&
161 entry->pin + 'A' == quirk->pin &&
162 !strcmp(prt->source, quirk->source) &&
163 strlen(prt->source) >= strlen(quirk->actual_source)) {
164 printk(KERN_WARNING PREFIX "firmware reports "
165 "%04x:%02x:%02x[%c] connected to %s; "
166 "changing to %s\n",
167 entry->id.segment, entry->id.bus,
168 entry->id.device, 'A' + entry->pin,
169 prt->source, quirk->actual_source);
170 strcpy(prt->source, quirk->actual_source);
171 }
172 }
173}
174
79static int 175static int
80acpi_pci_irq_add_entry(acpi_handle handle, 176acpi_pci_irq_add_entry(acpi_handle handle,
81 int segment, int bus, struct acpi_pci_routing_table *prt) 177 int segment, int bus, struct acpi_pci_routing_table *prt)
@@ -96,6 +192,8 @@ acpi_pci_irq_add_entry(acpi_handle handle,
96 entry->id.function = prt->address & 0xFFFF; 192 entry->id.function = prt->address & 0xFFFF;
97 entry->pin = prt->pin; 193 entry->pin = prt->pin;
98 194
195 do_prt_fixups(entry, prt);
196
99 /* 197 /*
100 * Type 1: Dynamic 198 * Type 1: Dynamic
101 * --------------- 199 * ---------------
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index f14ff1ffab29..c3fed31166b5 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -184,7 +184,7 @@ static void acpi_pci_bridge_scan(struct acpi_device *device)
184 } 184 }
185} 185}
186 186
187static int acpi_pci_root_add(struct acpi_device *device) 187static int __devinit acpi_pci_root_add(struct acpi_device *device)
188{ 188{
189 int result = 0; 189 int result = 0;
190 struct acpi_pci_root *root = NULL; 190 struct acpi_pci_root *root = NULL;
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index a3cc8a98255c..36a68fa114e3 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -840,17 +840,19 @@ static int is_processor_present(acpi_handle handle)
840 840
841 841
842 status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); 842 status = acpi_evaluate_integer(handle, "_STA", NULL, &sta);
843 /*
844 * if a processor object does not have an _STA object,
845 * OSPM assumes that the processor is present.
846 */
847 if (status == AE_NOT_FOUND)
848 return 1;
849 843
850 if (ACPI_SUCCESS(status) && (sta & ACPI_STA_DEVICE_PRESENT)) 844 if (ACPI_SUCCESS(status) && (sta & ACPI_STA_DEVICE_PRESENT))
851 return 1; 845 return 1;
852 846
853 ACPI_EXCEPTION((AE_INFO, status, "Processor Device is not present")); 847 /*
848 * _STA is mandatory for a processor that supports hot plug
849 */
850 if (status == AE_NOT_FOUND)
851 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
852 "Processor does not support hot plug\n"));
853 else
854 ACPI_EXCEPTION((AE_INFO, status,
855 "Processor Device is not present"));
854 return 0; 856 return 0;
855} 857}
856 858
@@ -886,8 +888,8 @@ int acpi_processor_device_add(acpi_handle handle, struct acpi_device **device)
886 return 0; 888 return 0;
887} 889}
888 890
889static void 891static void __ref acpi_processor_hotplug_notify(acpi_handle handle,
890acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data) 892 u32 event, void *data)
891{ 893{
892 struct acpi_processor *pr; 894 struct acpi_processor *pr;
893 struct acpi_device *device = NULL; 895 struct acpi_device *device = NULL;
@@ -897,9 +899,10 @@ acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
897 switch (event) { 899 switch (event) {
898 case ACPI_NOTIFY_BUS_CHECK: 900 case ACPI_NOTIFY_BUS_CHECK:
899 case ACPI_NOTIFY_DEVICE_CHECK: 901 case ACPI_NOTIFY_DEVICE_CHECK:
900 printk("Processor driver received %s event\n", 902 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
903 "Processor driver received %s event\n",
901 (event == ACPI_NOTIFY_BUS_CHECK) ? 904 (event == ACPI_NOTIFY_BUS_CHECK) ?
902 "ACPI_NOTIFY_BUS_CHECK" : "ACPI_NOTIFY_DEVICE_CHECK"); 905 "ACPI_NOTIFY_BUS_CHECK" : "ACPI_NOTIFY_DEVICE_CHECK"));
903 906
904 if (!is_processor_present(handle)) 907 if (!is_processor_present(handle))
905 break; 908 break;
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 6f3b217699e9..788da9781f80 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -216,8 +216,10 @@ static void acpi_safe_halt(void)
216 * test NEED_RESCHED: 216 * test NEED_RESCHED:
217 */ 217 */
218 smp_mb(); 218 smp_mb();
219 if (!need_resched()) 219 if (!need_resched()) {
220 safe_halt(); 220 safe_halt();
221 local_irq_disable();
222 }
221 current_thread_info()->status |= TS_POLLING; 223 current_thread_info()->status |= TS_POLLING;
222} 224}
223 225
@@ -421,7 +423,9 @@ static void acpi_processor_idle(void)
421 else 423 else
422 acpi_safe_halt(); 424 acpi_safe_halt();
423 425
424 local_irq_enable(); 426 if (irqs_disabled())
427 local_irq_enable();
428
425 return; 429 return;
426 } 430 }
427 431
@@ -530,7 +534,9 @@ static void acpi_processor_idle(void)
530 * skew otherwise. 534 * skew otherwise.
531 */ 535 */
532 sleep_ticks = 0xFFFFFFFF; 536 sleep_ticks = 0xFFFFFFFF;
533 local_irq_enable(); 537 if (irqs_disabled())
538 local_irq_enable();
539
534 break; 540 break;
535 541
536 case ACPI_STATE_C2: 542 case ACPI_STATE_C2:
@@ -1481,7 +1487,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
1481 return 0; 1487 return 0;
1482 } 1488 }
1483 1489
1484 acpi_unlazy_tlb(smp_processor_id());
1485 /* 1490 /*
1486 * Must be done before busmaster disable as we might need to 1491 * Must be done before busmaster disable as we might need to
1487 * access HPET ! 1492 * access HPET !
@@ -1571,6 +1576,8 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
1571 return 0; 1576 return 0;
1572 } 1577 }
1573 1578
1579 acpi_unlazy_tlb(smp_processor_id());
1580
1574 /* Tell the scheduler that we are going deep-idle: */ 1581 /* Tell the scheduler that we are going deep-idle: */
1575 sched_clock_idle_sleep_event(); 1582 sched_clock_idle_sleep_event();
1576 /* 1583 /*
@@ -1686,7 +1693,9 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
1686 switch (cx->type) { 1693 switch (cx->type) {
1687 case ACPI_STATE_C1: 1694 case ACPI_STATE_C1:
1688 state->flags |= CPUIDLE_FLAG_SHALLOW; 1695 state->flags |= CPUIDLE_FLAG_SHALLOW;
1689 state->flags |= CPUIDLE_FLAG_TIME_VALID; 1696 if (cx->entry_method == ACPI_CSTATE_FFH)
1697 state->flags |= CPUIDLE_FLAG_TIME_VALID;
1698
1690 state->enter = acpi_idle_enter_c1; 1699 state->enter = acpi_idle_enter_c1;
1691 dev->safe_state = state; 1700 dev->safe_state = state;
1692 break; 1701 break;
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index a2cf3008ce6c..bcf2c70fca87 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -130,7 +130,6 @@ static int acpi_smbus_transaction(struct acpi_smb_hc *hc, u8 protocol,
130 goto end; 130 goto end;
131 } 131 }
132 smb_hc_write(hc, ACPI_SMB_COMMAND, command); 132 smb_hc_write(hc, ACPI_SMB_COMMAND, command);
133 smb_hc_write(hc, ACPI_SMB_COMMAND, command);
134 if (!(protocol & 0x01)) { 133 if (!(protocol & 0x01)) {
135 smb_hc_write(hc, ACPI_SMB_BLOCK_COUNT, length); 134 smb_hc_write(hc, ACPI_SMB_BLOCK_COUNT, length);
136 for (i = 0; i < length; ++i) 135 for (i = 0; i < length; ++i)
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 3fac011f9cf9..e6ce262b5d44 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -39,20 +39,26 @@ static int create_modalias(struct acpi_device *acpi_dev, char *modalias,
39 int size) 39 int size)
40{ 40{
41 int len; 41 int len;
42 int count;
42 43
43 if (!acpi_dev->flags.hardware_id) 44 if (!acpi_dev->flags.hardware_id && !acpi_dev->flags.compatible_ids)
44 return -ENODEV; 45 return -ENODEV;
45 46
46 len = snprintf(modalias, size, "acpi:%s:", 47 len = snprintf(modalias, size, "acpi:");
47 acpi_dev->pnp.hardware_id);
48 if (len < 0 || len >= size)
49 return -EINVAL;
50 size -= len; 48 size -= len;
51 49
50 if (acpi_dev->flags.hardware_id) {
51 count = snprintf(&modalias[len], size, "%s:",
52 acpi_dev->pnp.hardware_id);
53 if (count < 0 || count >= size)
54 return -EINVAL;
55 len += count;
56 size -= count;
57 }
58
52 if (acpi_dev->flags.compatible_ids) { 59 if (acpi_dev->flags.compatible_ids) {
53 struct acpi_compatible_id_list *cid_list; 60 struct acpi_compatible_id_list *cid_list;
54 int i; 61 int i;
55 int count;
56 62
57 cid_list = acpi_dev->pnp.cid_list; 63 cid_list = acpi_dev->pnp.cid_list;
58 for (i = 0; i < cid_list->count; i++) { 64 for (i = 0; i < cid_list->count; i++) {
@@ -609,7 +615,8 @@ acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd)
609 status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer); 615 status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);
610 if (ACPI_SUCCESS(status)) { 616 if (ACPI_SUCCESS(status)) {
611 obj = buffer.pointer; 617 obj = buffer.pointer;
612 status = acpi_get_handle(NULL, obj->string.pointer, ejd); 618 status = acpi_get_handle(ACPI_ROOT_OBJECT, obj->string.pointer,
619 ejd);
613 kfree(buffer.pointer); 620 kfree(buffer.pointer);
614 } 621 }
615 return status; 622 return status;
@@ -966,7 +973,7 @@ static void acpi_device_set_id(struct acpi_device *device,
966 case ACPI_BUS_TYPE_DEVICE: 973 case ACPI_BUS_TYPE_DEVICE:
967 status = acpi_get_object_info(handle, &buffer); 974 status = acpi_get_object_info(handle, &buffer);
968 if (ACPI_FAILURE(status)) { 975 if (ACPI_FAILURE(status)) {
969 printk(KERN_ERR PREFIX "%s: Error reading device info\n", __FUNCTION__); 976 printk(KERN_ERR PREFIX "%s: Error reading device info\n", __func__);
970 return; 977 return;
971 } 978 }
972 979
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c
index 293a1cbb47c0..d2f71a54726c 100644
--- a/drivers/acpi/sleep/main.c
+++ b/drivers/acpi/sleep/main.c
@@ -504,7 +504,7 @@ static void acpi_power_off_prepare(void)
504static void acpi_power_off(void) 504static void acpi_power_off(void)
505{ 505{
506 /* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */ 506 /* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */
507 printk("%s called\n", __FUNCTION__); 507 printk("%s called\n", __func__);
508 local_irq_disable(); 508 local_irq_disable();
509 acpi_enable_wakeup_device(ACPI_STATE_S5); 509 acpi_enable_wakeup_device(ACPI_STATE_S5);
510 acpi_enter_sleep_state(ACPI_STATE_S5); 510 acpi_enter_sleep_state(ACPI_STATE_S5);
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index 55cf4c05bb74..4749f379a915 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -319,7 +319,7 @@ void acpi_irq_stats_init(void)
319 goto fail; 319 goto fail;
320 320
321 for (i = 0; i < num_counters; ++i) { 321 for (i = 0; i < num_counters; ++i) {
322 char buffer[10]; 322 char buffer[12];
323 char *name; 323 char *name;
324 324
325 if (i < num_gpes) 325 if (i < num_gpes)
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 8d4b79b4f933..c4e00ac8ea85 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -879,6 +879,8 @@ static void acpi_thermal_check(void *data)
879} 879}
880 880
881/* sys I/F for generic thermal sysfs support */ 881/* sys I/F for generic thermal sysfs support */
882#define KELVIN_TO_MILLICELSIUS(t) (t * 100 - 273200)
883
882static int thermal_get_temp(struct thermal_zone_device *thermal, char *buf) 884static int thermal_get_temp(struct thermal_zone_device *thermal, char *buf)
883{ 885{
884 struct acpi_thermal *tz = thermal->devdata; 886 struct acpi_thermal *tz = thermal->devdata;
@@ -886,7 +888,7 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, char *buf)
886 if (!tz) 888 if (!tz)
887 return -EINVAL; 889 return -EINVAL;
888 890
889 return sprintf(buf, "%ld\n", KELVIN_TO_CELSIUS(tz->temperature)); 891 return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(tz->temperature));
890} 892}
891 893
892static const char enabled[] = "kernel"; 894static const char enabled[] = "kernel";
@@ -980,21 +982,21 @@ static int thermal_get_trip_temp(struct thermal_zone_device *thermal,
980 982
981 if (tz->trips.critical.flags.valid) { 983 if (tz->trips.critical.flags.valid) {
982 if (!trip) 984 if (!trip)
983 return sprintf(buf, "%ld\n", KELVIN_TO_CELSIUS( 985 return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(
984 tz->trips.critical.temperature)); 986 tz->trips.critical.temperature));
985 trip--; 987 trip--;
986 } 988 }
987 989
988 if (tz->trips.hot.flags.valid) { 990 if (tz->trips.hot.flags.valid) {
989 if (!trip) 991 if (!trip)
990 return sprintf(buf, "%ld\n", KELVIN_TO_CELSIUS( 992 return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(
991 tz->trips.hot.temperature)); 993 tz->trips.hot.temperature));
992 trip--; 994 trip--;
993 } 995 }
994 996
995 if (tz->trips.passive.flags.valid) { 997 if (tz->trips.passive.flags.valid) {
996 if (!trip) 998 if (!trip)
997 return sprintf(buf, "%ld\n", KELVIN_TO_CELSIUS( 999 return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(
998 tz->trips.passive.temperature)); 1000 tz->trips.passive.temperature));
999 trip--; 1001 trip--;
1000 } 1002 }
@@ -1002,7 +1004,7 @@ static int thermal_get_trip_temp(struct thermal_zone_device *thermal,
1002 for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE && 1004 for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE &&
1003 tz->trips.active[i].flags.valid; i++) { 1005 tz->trips.active[i].flags.valid; i++) {
1004 if (!trip) 1006 if (!trip)
1005 return sprintf(buf, "%ld\n", KELVIN_TO_CELSIUS( 1007 return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(
1006 tz->trips.active[i].temperature)); 1008 tz->trips.active[i].temperature));
1007 trip--; 1009 trip--;
1008 } 1010 }
diff --git a/drivers/acpi/toshiba_acpi.c b/drivers/acpi/toshiba_acpi.c
index 9e8c20c6a0b7..0a43c8e0eff3 100644
--- a/drivers/acpi/toshiba_acpi.c
+++ b/drivers/acpi/toshiba_acpi.c
@@ -99,6 +99,13 @@ MODULE_LICENSE("GPL");
99#define HCI_VIDEO_OUT_CRT 0x2 99#define HCI_VIDEO_OUT_CRT 0x2
100#define HCI_VIDEO_OUT_TV 0x4 100#define HCI_VIDEO_OUT_TV 0x4
101 101
102static const struct acpi_device_id toshiba_device_ids[] = {
103 {"TOS6200", 0},
104 {"TOS1900", 0},
105 {"", 0},
106};
107MODULE_DEVICE_TABLE(acpi, toshiba_device_ids);
108
102/* utility 109/* utility
103 */ 110 */
104 111
diff --git a/drivers/acpi/utilities/utdebug.c b/drivers/acpi/utilities/utdebug.c
index c7e128e5369b..7361204b1eef 100644
--- a/drivers/acpi/utilities/utdebug.c
+++ b/drivers/acpi/utilities/utdebug.c
@@ -109,7 +109,7 @@ void acpi_ut_track_stack_ptr(void)
109 * RETURN: Updated pointer to the function name 109 * RETURN: Updated pointer to the function name
110 * 110 *
111 * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present. 111 * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present.
112 * This allows compiler macros such as __FUNCTION__ to be used 112 * This allows compiler macros such as __func__ to be used
113 * with no change to the debug output. 113 * with no change to the debug output.
114 * 114 *
115 ******************************************************************************/ 115 ******************************************************************************/
diff --git a/drivers/acpi/utilities/utobject.c b/drivers/acpi/utilities/utobject.c
index 76ee766c84f9..e08b3fa6639f 100644
--- a/drivers/acpi/utilities/utobject.c
+++ b/drivers/acpi/utilities/utobject.c
@@ -432,7 +432,7 @@ acpi_ut_get_simple_object_size(union acpi_operand_object *internal_object,
432 * element -- which is legal) 432 * element -- which is legal)
433 */ 433 */
434 if (!internal_object) { 434 if (!internal_object) {
435 *obj_length = 0; 435 *obj_length = sizeof(union acpi_object);
436 return_ACPI_STATUS(AE_OK); 436 return_ACPI_STATUS(AE_OK);
437 } 437 }
438 438
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index eba55b7d6c95..44ea60cf21c0 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -407,6 +407,12 @@ acpi_evaluate_reference(acpi_handle handle,
407 break; 407 break;
408 } 408 }
409 409
410 if (!element->reference.handle) {
411 printk(KERN_WARNING PREFIX "Invalid reference in"
412 " package %s\n", pathname);
413 status = AE_NULL_ENTRY;
414 break;
415 }
410 /* Get the acpi_handle. */ 416 /* Get the acpi_handle. */
411 417
412 list->handles[i] = element->reference.handle; 418 list->handles[i] = element->reference.handle;
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 12cce69b5441..12fb44f16766 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -713,7 +713,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
713 713
714 kfree(obj); 714 kfree(obj);
715 715
716 if (device->cap._BCL && device->cap._BCM && device->cap._BQC && max_level > 0){ 716 if (device->cap._BCL && device->cap._BCM && max_level > 0) {
717 int result; 717 int result;
718 static int count = 0; 718 static int count = 0;
719 char *name; 719 char *name;
@@ -807,40 +807,11 @@ static void acpi_video_bus_find_cap(struct acpi_video_bus *video)
807static int acpi_video_bus_check(struct acpi_video_bus *video) 807static int acpi_video_bus_check(struct acpi_video_bus *video)
808{ 808{
809 acpi_status status = -ENOENT; 809 acpi_status status = -ENOENT;
810 long device_id; 810
811 struct device *dev;
812 struct acpi_device *device;
813 811
814 if (!video) 812 if (!video)
815 return -EINVAL; 813 return -EINVAL;
816 814
817 device = video->device;
818
819 status =
820 acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id);
821
822 if (!ACPI_SUCCESS(status))
823 return -ENODEV;
824
825 /* We need to attempt to determine whether the _ADR refers to a
826 PCI device or not. There's no terribly good way to do this,
827 so the best we can hope for is to assume that there'll never
828 be a video device in the host bridge */
829 if (device_id >= 0x10000) {
830 /* It looks like a PCI device. Does it exist? */
831 dev = acpi_get_physical_device(device->handle);
832 } else {
833 /* It doesn't look like a PCI device. Does its parent
834 exist? */
835 acpi_handle phandle;
836 if (acpi_get_parent(device->handle, &phandle))
837 return -ENODEV;
838 dev = acpi_get_physical_device(phandle);
839 }
840 if (!dev)
841 return -ENODEV;
842 put_device(dev);
843
844 /* Since there is no HID, CID and so on for VGA driver, we have 815 /* Since there is no HID, CID and so on for VGA driver, we have
845 * to check well known required nodes. 816 * to check well known required nodes.
846 */ 817 */
@@ -1201,7 +1172,7 @@ static int acpi_video_bus_ROM_seq_show(struct seq_file *seq, void *offset)
1201 if (!video) 1172 if (!video)
1202 goto end; 1173 goto end;
1203 1174
1204 printk(KERN_INFO PREFIX "Please implement %s\n", __FUNCTION__); 1175 printk(KERN_INFO PREFIX "Please implement %s\n", __func__);
1205 seq_printf(seq, "<TODO>\n"); 1176 seq_printf(seq, "<TODO>\n");
1206 1177
1207 end: 1178 end:
@@ -1366,37 +1337,8 @@ acpi_video_bus_write_DOS(struct file *file,
1366 1337
1367static int acpi_video_bus_add_fs(struct acpi_device *device) 1338static int acpi_video_bus_add_fs(struct acpi_device *device)
1368{ 1339{
1369 long device_id;
1370 int status;
1371 struct proc_dir_entry *entry = NULL; 1340 struct proc_dir_entry *entry = NULL;
1372 struct acpi_video_bus *video; 1341 struct acpi_video_bus *video;
1373 struct device *dev;
1374
1375 status =
1376 acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id);
1377
1378 if (!ACPI_SUCCESS(status))
1379 return -ENODEV;
1380
1381 /* We need to attempt to determine whether the _ADR refers to a
1382 PCI device or not. There's no terribly good way to do this,
1383 so the best we can hope for is to assume that there'll never
1384 be a video device in the host bridge */
1385 if (device_id >= 0x10000) {
1386 /* It looks like a PCI device. Does it exist? */
1387 dev = acpi_get_physical_device(device->handle);
1388 } else {
1389 /* It doesn't look like a PCI device. Does its parent
1390 exist? */
1391 acpi_handle phandle;
1392 if (acpi_get_parent(device->handle, &phandle))
1393 return -ENODEV;
1394 dev = acpi_get_physical_device(phandle);
1395 }
1396 if (!dev)
1397 return -ENODEV;
1398 put_device(dev);
1399
1400 1342
1401 1343
1402 video = acpi_driver_data(device); 1344 video = acpi_driver_data(device);
diff --git a/drivers/acpi/wmi.c b/drivers/acpi/wmi.c
index efacc9f8bfe3..c33b1c6e93b1 100644
--- a/drivers/acpi/wmi.c
+++ b/drivers/acpi/wmi.c
@@ -293,7 +293,7 @@ struct acpi_buffer *out)
293{ 293{
294 struct guid_block *block = NULL; 294 struct guid_block *block = NULL;
295 struct wmi_block *wblock = NULL; 295 struct wmi_block *wblock = NULL;
296 acpi_handle handle; 296 acpi_handle handle, wc_handle;
297 acpi_status status, wc_status = AE_ERROR; 297 acpi_status status, wc_status = AE_ERROR;
298 struct acpi_object_list input, wc_input; 298 struct acpi_object_list input, wc_input;
299 union acpi_object wc_params[1], wq_params[1]; 299 union acpi_object wc_params[1], wq_params[1];
@@ -338,8 +338,10 @@ struct acpi_buffer *out)
338 * expensive, but have no corresponding WCxx method. So we 338 * expensive, but have no corresponding WCxx method. So we
339 * should not fail if this happens. 339 * should not fail if this happens.
340 */ 340 */
341 wc_status = acpi_evaluate_object(handle, wc_method, 341 wc_status = acpi_get_handle(handle, wc_method, &wc_handle);
342 &wc_input, NULL); 342 if (ACPI_SUCCESS(wc_status))
343 wc_status = acpi_evaluate_object(handle, wc_method,
344 &wc_input, NULL);
343 } 345 }
344 346
345 strcpy(method, "WQ"); 347 strcpy(method, "WQ");
@@ -351,7 +353,7 @@ struct acpi_buffer *out)
351 * If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if 353 * If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if
352 * the WQxx method failed - we should disable collection anyway. 354 * the WQxx method failed - we should disable collection anyway.
353 */ 355 */
354 if ((block->flags & ACPI_WMI_EXPENSIVE) && wc_status) { 356 if ((block->flags & ACPI_WMI_EXPENSIVE) && ACPI_SUCCESS(wc_status)) {
355 wc_params[0].integer.value = 0; 357 wc_params[0].integer.value = 0;
356 status = acpi_evaluate_object(handle, 358 status = acpi_evaluate_object(handle,
357 wc_method, &wc_input, NULL); 359 wc_method, &wc_input, NULL);
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index e469647330de..25aba69b59b4 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -30,6 +30,7 @@ config ATA_NONSTANDARD
30config ATA_ACPI 30config ATA_ACPI
31 bool 31 bool
32 depends on ACPI && PCI 32 depends on ACPI && PCI
33 select ACPI_DOCK
33 default y 34 default y
34 help 35 help
35 This option adds support for ATA-related ACPI objects. 36 This option adds support for ATA-related ACPI objects.
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 6978469eb16d..b1eb4e24c86a 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -49,6 +49,10 @@
49#define DRV_NAME "ahci" 49#define DRV_NAME "ahci"
50#define DRV_VERSION "3.0" 50#define DRV_VERSION "3.0"
51 51
52static int ahci_skip_host_reset;
53module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444);
54MODULE_PARM_DESC(skip_host_reset, "skip global host reset (0=don't skip, 1=skip)");
55
52static int ahci_enable_alpm(struct ata_port *ap, 56static int ahci_enable_alpm(struct ata_port *ap,
53 enum link_pm policy); 57 enum link_pm policy);
54static void ahci_disable_alpm(struct ata_port *ap); 58static void ahci_disable_alpm(struct ata_port *ap);
@@ -429,6 +433,7 @@ static const struct ata_port_info ahci_port_info[] = {
429 /* board_ahci_sb600 */ 433 /* board_ahci_sb600 */
430 { 434 {
431 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | 435 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL |
436 AHCI_HFLAG_32BIT_ONLY |
432 AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP), 437 AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP),
433 .flags = AHCI_FLAG_COMMON, 438 .flags = AHCI_FLAG_COMMON,
434 .link_flags = AHCI_LFLAG_COMMON, 439 .link_flags = AHCI_LFLAG_COMMON,
@@ -587,6 +592,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
587 592
588 /* Marvell */ 593 /* Marvell */
589 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ 594 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */
595 { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv }, /* 6121 */
590 596
591 /* Generic, PCI class code for AHCI */ 597 /* Generic, PCI class code for AHCI */
592 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 598 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -661,6 +667,7 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
661 void __iomem *mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR]; 667 void __iomem *mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR];
662 u32 cap, port_map; 668 u32 cap, port_map;
663 int i; 669 int i;
670 int mv;
664 671
665 /* make sure AHCI mode is enabled before accessing CAP */ 672 /* make sure AHCI mode is enabled before accessing CAP */
666 ahci_enable_ahci(mmio); 673 ahci_enable_ahci(mmio);
@@ -696,12 +703,16 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
696 * presence register, as bit 4 (counting from 0) 703 * presence register, as bit 4 (counting from 0)
697 */ 704 */
698 if (hpriv->flags & AHCI_HFLAG_MV_PATA) { 705 if (hpriv->flags & AHCI_HFLAG_MV_PATA) {
706 if (pdev->device == 0x6121)
707 mv = 0x3;
708 else
709 mv = 0xf;
699 dev_printk(KERN_ERR, &pdev->dev, 710 dev_printk(KERN_ERR, &pdev->dev,
700 "MV_AHCI HACK: port_map %x -> %x\n", 711 "MV_AHCI HACK: port_map %x -> %x\n",
701 hpriv->port_map, 712 port_map,
702 hpriv->port_map & 0xf); 713 port_map & mv);
703 714
704 port_map &= 0xf; 715 port_map &= mv;
705 } 716 }
706 717
707 /* cross check port_map and cap.n_ports */ 718 /* cross check port_map and cap.n_ports */
@@ -1088,29 +1099,35 @@ static int ahci_reset_controller(struct ata_host *host)
1088 ahci_enable_ahci(mmio); 1099 ahci_enable_ahci(mmio);
1089 1100
1090 /* global controller reset */ 1101 /* global controller reset */
1091 tmp = readl(mmio + HOST_CTL); 1102 if (!ahci_skip_host_reset) {
1092 if ((tmp & HOST_RESET) == 0) { 1103 tmp = readl(mmio + HOST_CTL);
1093 writel(tmp | HOST_RESET, mmio + HOST_CTL); 1104 if ((tmp & HOST_RESET) == 0) {
1094 readl(mmio + HOST_CTL); /* flush */ 1105 writel(tmp | HOST_RESET, mmio + HOST_CTL);
1095 } 1106 readl(mmio + HOST_CTL); /* flush */
1107 }
1096 1108
1097 /* reset must complete within 1 second, or 1109 /* reset must complete within 1 second, or
1098 * the hardware should be considered fried. 1110 * the hardware should be considered fried.
1099 */ 1111 */
1100 ssleep(1); 1112 ssleep(1);
1101 1113
1102 tmp = readl(mmio + HOST_CTL); 1114 tmp = readl(mmio + HOST_CTL);
1103 if (tmp & HOST_RESET) { 1115 if (tmp & HOST_RESET) {
1104 dev_printk(KERN_ERR, host->dev, 1116 dev_printk(KERN_ERR, host->dev,
1105 "controller reset failed (0x%x)\n", tmp); 1117 "controller reset failed (0x%x)\n", tmp);
1106 return -EIO; 1118 return -EIO;
1107 } 1119 }
1108 1120
1109 /* turn on AHCI mode */ 1121 /* turn on AHCI mode */
1110 ahci_enable_ahci(mmio); 1122 ahci_enable_ahci(mmio);
1111 1123
1112 /* some registers might be cleared on reset. restore initial values */ 1124 /* Some registers might be cleared on reset. Restore
1113 ahci_restore_initial_config(host); 1125 * initial values.
1126 */
1127 ahci_restore_initial_config(host);
1128 } else
1129 dev_printk(KERN_INFO, host->dev,
1130 "skipping global host reset\n");
1114 1131
1115 if (pdev->vendor == PCI_VENDOR_ID_INTEL) { 1132 if (pdev->vendor == PCI_VENDOR_ID_INTEL) {
1116 u16 tmp16; 1133 u16 tmp16;
@@ -1162,9 +1179,14 @@ static void ahci_init_controller(struct ata_host *host)
1162 int i; 1179 int i;
1163 void __iomem *port_mmio; 1180 void __iomem *port_mmio;
1164 u32 tmp; 1181 u32 tmp;
1182 int mv;
1165 1183
1166 if (hpriv->flags & AHCI_HFLAG_MV_PATA) { 1184 if (hpriv->flags & AHCI_HFLAG_MV_PATA) {
1167 port_mmio = __ahci_port_base(host, 4); 1185 if (pdev->device == 0x6121)
1186 mv = 2;
1187 else
1188 mv = 4;
1189 port_mmio = __ahci_port_base(host, mv);
1168 1190
1169 writel(0, port_mmio + PORT_IRQ_MASK); 1191 writel(0, port_mmio + PORT_IRQ_MASK);
1170 1192
@@ -1196,8 +1218,11 @@ static void ahci_dev_config(struct ata_device *dev)
1196{ 1218{
1197 struct ahci_host_priv *hpriv = dev->link->ap->host->private_data; 1219 struct ahci_host_priv *hpriv = dev->link->ap->host->private_data;
1198 1220
1199 if (hpriv->flags & AHCI_HFLAG_SECT255) 1221 if (hpriv->flags & AHCI_HFLAG_SECT255) {
1200 dev->max_sectors = 255; 1222 dev->max_sectors = 255;
1223 ata_dev_printk(dev, KERN_INFO,
1224 "SB600 AHCI: limiting to 255 sectors per cmd\n");
1225 }
1201} 1226}
1202 1227
1203static unsigned int ahci_dev_classify(struct ata_port *ap) 1228static unsigned int ahci_dev_classify(struct ata_port *ap)
@@ -2241,7 +2266,10 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2241 if (rc) 2266 if (rc)
2242 return rc; 2267 return rc;
2243 2268
2244 rc = pcim_iomap_regions(pdev, 1 << AHCI_PCI_BAR, DRV_NAME); 2269 /* AHCI controllers often implement SFF compatible interface.
2270 * Grab all PCI BARs just in case.
2271 */
2272 rc = pcim_iomap_regions_request_all(pdev, 1 << AHCI_PCI_BAR, DRV_NAME);
2245 if (rc == -EBUSY) 2273 if (rc == -EBUSY)
2246 pcim_pin_device(pdev); 2274 pcim_pin_device(pdev);
2247 if (rc) 2275 if (rc)
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 0770cb7391a4..bf98a566adac 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -118,45 +118,77 @@ static void ata_acpi_associate_ide_port(struct ata_port *ap)
118 ap->pflags |= ATA_PFLAG_INIT_GTM_VALID; 118 ap->pflags |= ATA_PFLAG_INIT_GTM_VALID;
119} 119}
120 120
121static void ata_acpi_handle_hotplug(struct ata_port *ap, struct kobject *kobj, 121static void ata_acpi_handle_hotplug(struct ata_port *ap, struct ata_device *dev,
122 u32 event) 122 u32 event)
123{ 123{
124 char event_string[12]; 124 char event_string[12];
125 char *envp[] = { event_string, NULL }; 125 char *envp[] = { event_string, NULL };
126 struct ata_eh_info *ehi = &ap->link.eh_info; 126 struct ata_eh_info *ehi;
127 127 struct kobject *kobj = NULL;
128 if (event == 0 || event == 1) { 128 int wait = 0;
129 unsigned long flags; 129 unsigned long flags;
130 spin_lock_irqsave(ap->lock, flags); 130
131 ata_ehi_clear_desc(ehi); 131 if (!ap)
132 ata_ehi_push_desc(ehi, "ACPI event"); 132 ap = dev->link->ap;
133 ata_ehi_hotplugged(ehi); 133 ehi = &ap->link.eh_info;
134 ata_port_freeze(ap); 134
135 spin_unlock_irqrestore(ap->lock, flags); 135 spin_lock_irqsave(ap->lock, flags);
136
137 switch (event) {
138 case ACPI_NOTIFY_BUS_CHECK:
139 case ACPI_NOTIFY_DEVICE_CHECK:
140 ata_ehi_push_desc(ehi, "ACPI event");
141 ata_ehi_hotplugged(ehi);
142 ata_port_freeze(ap);
143 break;
144
145 case ACPI_NOTIFY_EJECT_REQUEST:
146 ata_ehi_push_desc(ehi, "ACPI event");
147 if (dev)
148 dev->flags |= ATA_DFLAG_DETACH;
149 else {
150 struct ata_link *tlink;
151 struct ata_device *tdev;
152
153 ata_port_for_each_link(tlink, ap)
154 ata_link_for_each_dev(tdev, tlink)
155 tdev->flags |= ATA_DFLAG_DETACH;
156 }
157
158 ata_port_schedule_eh(ap);
159 wait = 1;
160 break;
136 } 161 }
137 162
163 if (dev) {
164 if (dev->sdev)
165 kobj = &dev->sdev->sdev_gendev.kobj;
166 } else
167 kobj = &ap->dev->kobj;
168
138 if (kobj) { 169 if (kobj) {
139 sprintf(event_string, "BAY_EVENT=%d", event); 170 sprintf(event_string, "BAY_EVENT=%d", event);
140 kobject_uevent_env(kobj, KOBJ_CHANGE, envp); 171 kobject_uevent_env(kobj, KOBJ_CHANGE, envp);
141 } 172 }
173
174 spin_unlock_irqrestore(ap->lock, flags);
175
176 if (wait)
177 ata_port_wait_eh(ap);
142} 178}
143 179
144static void ata_acpi_dev_notify(acpi_handle handle, u32 event, void *data) 180static void ata_acpi_dev_notify(acpi_handle handle, u32 event, void *data)
145{ 181{
146 struct ata_device *dev = data; 182 struct ata_device *dev = data;
147 struct kobject *kobj = NULL;
148 183
149 if (dev->sdev) 184 ata_acpi_handle_hotplug(NULL, dev, event);
150 kobj = &dev->sdev->sdev_gendev.kobj;
151
152 ata_acpi_handle_hotplug(dev->link->ap, kobj, event);
153} 185}
154 186
155static void ata_acpi_ap_notify(acpi_handle handle, u32 event, void *data) 187static void ata_acpi_ap_notify(acpi_handle handle, u32 event, void *data)
156{ 188{
157 struct ata_port *ap = data; 189 struct ata_port *ap = data;
158 190
159 ata_acpi_handle_hotplug(ap, &ap->dev->kobj, event); 191 ata_acpi_handle_hotplug(ap, NULL, event);
160} 192}
161 193
162/** 194/**
@@ -191,20 +223,30 @@ void ata_acpi_associate(struct ata_host *host)
191 else 223 else
192 ata_acpi_associate_ide_port(ap); 224 ata_acpi_associate_ide_port(ap);
193 225
194 if (ap->acpi_handle) 226 if (ap->acpi_handle) {
195 acpi_install_notify_handler (ap->acpi_handle, 227 acpi_install_notify_handler(ap->acpi_handle,
196 ACPI_SYSTEM_NOTIFY, 228 ACPI_SYSTEM_NOTIFY,
197 ata_acpi_ap_notify, 229 ata_acpi_ap_notify, ap);
198 ap); 230#if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
231 /* we might be on a docking station */
232 register_hotplug_dock_device(ap->acpi_handle,
233 ata_acpi_ap_notify, ap);
234#endif
235 }
199 236
200 for (j = 0; j < ata_link_max_devices(&ap->link); j++) { 237 for (j = 0; j < ata_link_max_devices(&ap->link); j++) {
201 struct ata_device *dev = &ap->link.device[j]; 238 struct ata_device *dev = &ap->link.device[j];
202 239
203 if (dev->acpi_handle) 240 if (dev->acpi_handle) {
204 acpi_install_notify_handler (dev->acpi_handle, 241 acpi_install_notify_handler(dev->acpi_handle,
205 ACPI_SYSTEM_NOTIFY, 242 ACPI_SYSTEM_NOTIFY,
206 ata_acpi_dev_notify, 243 ata_acpi_dev_notify, dev);
207 dev); 244#if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
245 /* we might be on a docking station */
246 register_hotplug_dock_device(dev->acpi_handle,
247 ata_acpi_dev_notify, dev);
248#endif
249 }
208 } 250 }
209 } 251 }
210} 252}
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 4bbe31f98ef8..48519887f94a 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -972,7 +972,7 @@ static void ata_dev_disable_pm(struct ata_device *dev)
972void ata_lpm_schedule(struct ata_port *ap, enum link_pm policy) 972void ata_lpm_schedule(struct ata_port *ap, enum link_pm policy)
973{ 973{
974 ap->pm_policy = policy; 974 ap->pm_policy = policy;
975 ap->link.eh_info.action |= ATA_EHI_LPM; 975 ap->link.eh_info.action |= ATA_EH_LPM;
976 ap->link.eh_info.flags |= ATA_EHI_NO_AUTOPSY; 976 ap->link.eh_info.flags |= ATA_EHI_NO_AUTOPSY;
977 ata_port_schedule_eh(ap); 977 ata_port_schedule_eh(ap);
978} 978}
@@ -1416,12 +1416,12 @@ static int ata_hpa_resize(struct ata_device *dev)
1416 /* read native max address */ 1416 /* read native max address */
1417 rc = ata_read_native_max_address(dev, &native_sectors); 1417 rc = ata_read_native_max_address(dev, &native_sectors);
1418 if (rc) { 1418 if (rc) {
1419 /* If HPA isn't going to be unlocked, skip HPA 1419 /* If device aborted the command or HPA isn't going to
1420 * resizing from the next try. 1420 * be unlocked, skip HPA resizing.
1421 */ 1421 */
1422 if (!ata_ignore_hpa) { 1422 if (rc == -EACCES || !ata_ignore_hpa) {
1423 ata_dev_printk(dev, KERN_WARNING, "HPA support seems " 1423 ata_dev_printk(dev, KERN_WARNING, "HPA support seems "
1424 "broken, will skip HPA handling\n"); 1424 "broken, skipping HPA handling\n");
1425 dev->horkage |= ATA_HORKAGE_BROKEN_HPA; 1425 dev->horkage |= ATA_HORKAGE_BROKEN_HPA;
1426 1426
1427 /* we can continue if device aborted the command */ 1427 /* we can continue if device aborted the command */
@@ -2092,24 +2092,34 @@ int ata_dev_read_id(struct ata_device *dev, unsigned int *p_class,
2092 id, sizeof(id[0]) * ATA_ID_WORDS, 0); 2092 id, sizeof(id[0]) * ATA_ID_WORDS, 0);
2093 if (err_mask) { 2093 if (err_mask) {
2094 if (err_mask & AC_ERR_NODEV_HINT) { 2094 if (err_mask & AC_ERR_NODEV_HINT) {
2095 DPRINTK("ata%u.%d: NODEV after polling detection\n", 2095 ata_dev_printk(dev, KERN_DEBUG,
2096 ap->print_id, dev->devno); 2096 "NODEV after polling detection\n");
2097 return -ENOENT; 2097 return -ENOENT;
2098 } 2098 }
2099 2099
2100 /* Device or controller might have reported the wrong 2100 if ((err_mask == AC_ERR_DEV) && (tf.feature & ATA_ABORTED)) {
2101 * device class. Give a shot at the other IDENTIFY if 2101 /* Device or controller might have reported
2102 * the current one is aborted by the device. 2102 * the wrong device class. Give a shot at the
2103 */ 2103 * other IDENTIFY if the current one is
2104 if (may_fallback && 2104 * aborted by the device.
2105 (err_mask == AC_ERR_DEV) && (tf.feature & ATA_ABORTED)) { 2105 */
2106 may_fallback = 0; 2106 if (may_fallback) {
2107 may_fallback = 0;
2107 2108
2108 if (class == ATA_DEV_ATA) 2109 if (class == ATA_DEV_ATA)
2109 class = ATA_DEV_ATAPI; 2110 class = ATA_DEV_ATAPI;
2110 else 2111 else
2111 class = ATA_DEV_ATA; 2112 class = ATA_DEV_ATA;
2112 goto retry; 2113 goto retry;
2114 }
2115
2116 /* Control reaches here iff the device aborted
2117 * both flavors of IDENTIFYs which happens
2118 * sometimes with phantom devices.
2119 */
2120 ata_dev_printk(dev, KERN_DEBUG,
2121 "both IDENTIFYs aborted, assuming NODEV\n");
2122 return -ENOENT;
2113 } 2123 }
2114 2124
2115 rc = -EIO; 2125 rc = -EIO;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 681252fd8143..a5830329eda4 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2748,7 +2748,7 @@ int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
2748 ehc->i.flags &= ~ATA_EHI_SETMODE; 2748 ehc->i.flags &= ~ATA_EHI_SETMODE;
2749 } 2749 }
2750 2750
2751 if (ehc->i.action & ATA_EHI_LPM) 2751 if (ehc->i.action & ATA_EH_LPM)
2752 ata_link_for_each_dev(dev, link) 2752 ata_link_for_each_dev(dev, link)
2753 ata_dev_enable_pm(dev, ap->pm_policy); 2753 ata_dev_enable_pm(dev, ap->pm_policy);
2754 2754
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 8f0e8f2bc628..15795394b0a8 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -527,6 +527,14 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev,
527 return qc; 527 return qc;
528} 528}
529 529
530static void ata_qc_set_pc_nbytes(struct ata_queued_cmd *qc)
531{
532 struct scsi_cmnd *scmd = qc->scsicmd;
533
534 qc->extrabytes = scmd->request->extra_len;
535 qc->nbytes = scsi_bufflen(scmd) + qc->extrabytes;
536}
537
530/** 538/**
531 * ata_dump_status - user friendly display of error info 539 * ata_dump_status - user friendly display of error info
532 * @id: id of the port in question 540 * @id: id of the port in question
@@ -2539,7 +2547,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
2539 } 2547 }
2540 2548
2541 qc->tf.command = ATA_CMD_PACKET; 2549 qc->tf.command = ATA_CMD_PACKET;
2542 qc->nbytes = scsi_bufflen(scmd) + scmd->request->extra_len; 2550 ata_qc_set_pc_nbytes(qc);
2543 2551
2544 /* check whether ATAPI DMA is safe */ 2552 /* check whether ATAPI DMA is safe */
2545 if (!using_pio && ata_check_atapi_dma(qc)) 2553 if (!using_pio && ata_check_atapi_dma(qc))
@@ -2550,7 +2558,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
2550 * want to set it properly, and for DMA where it is 2558 * want to set it properly, and for DMA where it is
2551 * effectively meaningless. 2559 * effectively meaningless.
2552 */ 2560 */
2553 nbytes = min(scmd->request->data_len, (unsigned int)63 * 1024); 2561 nbytes = min(ata_qc_raw_nbytes(qc), (unsigned int)63 * 1024);
2554 2562
2555 /* Most ATAPI devices which honor transfer chunk size don't 2563 /* Most ATAPI devices which honor transfer chunk size don't
2556 * behave according to the spec when odd chunk size which 2564 * behave according to the spec when odd chunk size which
@@ -2876,7 +2884,7 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
2876 * TODO: find out if we need to do more here to 2884 * TODO: find out if we need to do more here to
2877 * cover scatter/gather case. 2885 * cover scatter/gather case.
2878 */ 2886 */
2879 qc->nbytes = scsi_bufflen(scmd) + scmd->request->extra_len; 2887 ata_qc_set_pc_nbytes(qc);
2880 2888
2881 /* request result TF and be quiet about device error */ 2889 /* request result TF and be quiet about device error */
2882 qc->flags |= ATA_QCFLAG_RESULT_TF | ATA_QCFLAG_QUIET; 2890 qc->flags |= ATA_QCFLAG_RESULT_TF | ATA_QCFLAG_QUIET;
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index 7e68edf3c0f3..8786455c901d 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -295,7 +295,7 @@ static void ali_lock_sectors(struct ata_device *adev)
295static int ali_check_atapi_dma(struct ata_queued_cmd *qc) 295static int ali_check_atapi_dma(struct ata_queued_cmd *qc)
296{ 296{
297 /* If its not a media command, its not worth it */ 297 /* If its not a media command, its not worth it */
298 if (qc->nbytes < 2048) 298 if (atapi_cmd_type(qc->cdb[0]) == ATAPI_MISC)
299 return -EOPNOTSUPP; 299 return -EOPNOTSUPP;
300 return 0; 300 return 0;
301} 301}
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c
index 109ddd42c266..257951d03dbb 100644
--- a/drivers/ata/pata_it821x.c
+++ b/drivers/ata/pata_it821x.c
@@ -564,7 +564,7 @@ static int it821x_check_atapi_dma(struct ata_queued_cmd *qc)
564 struct it821x_dev *itdev = ap->private_data; 564 struct it821x_dev *itdev = ap->private_data;
565 565
566 /* Only use dma for transfers to/from the media. */ 566 /* Only use dma for transfers to/from the media. */
567 if (qc->nbytes < 2048) 567 if (ata_qc_raw_nbytes(qc) < 2048)
568 return -EOPNOTSUPP; 568 return -EOPNOTSUPP;
569 569
570 /* No ATAPI DMA in smart mode */ 570 /* No ATAPI DMA in smart mode */
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 503245a1eafa..3988e44f4934 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -269,7 +269,11 @@ static u8 sil680_init_chip(struct pci_dev *pdev, int *try_mmio)
269 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", 269 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n",
270 tmpbyte & 1, tmpbyte & 0x30); 270 tmpbyte & 1, tmpbyte & 0x30);
271 271
272 *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5); 272 *try_mmio = 0;
273#ifdef CONFIG_PPC
274 if (machine_is(cell))
275 *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5);
276#endif
273 277
274 switch(tmpbyte & 0x30) { 278 switch(tmpbyte & 0x30) {
275 case 0x00: 279 case 0x00:
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index f251a5f569d5..11c1afea2db2 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -46,7 +46,7 @@
46#include "sata_promise.h" 46#include "sata_promise.h"
47 47
48#define DRV_NAME "sata_promise" 48#define DRV_NAME "sata_promise"
49#define DRV_VERSION "2.11" 49#define DRV_VERSION "2.12"
50 50
51enum { 51enum {
52 PDC_MAX_PORTS = 4, 52 PDC_MAX_PORTS = 4,
@@ -145,7 +145,9 @@ static int pdc_old_sata_check_atapi_dma(struct ata_queued_cmd *qc);
145static void pdc_irq_clear(struct ata_port *ap); 145static void pdc_irq_clear(struct ata_port *ap);
146static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc); 146static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc);
147static void pdc_freeze(struct ata_port *ap); 147static void pdc_freeze(struct ata_port *ap);
148static void pdc_sata_freeze(struct ata_port *ap);
148static void pdc_thaw(struct ata_port *ap); 149static void pdc_thaw(struct ata_port *ap);
150static void pdc_sata_thaw(struct ata_port *ap);
149static void pdc_pata_error_handler(struct ata_port *ap); 151static void pdc_pata_error_handler(struct ata_port *ap);
150static void pdc_sata_error_handler(struct ata_port *ap); 152static void pdc_sata_error_handler(struct ata_port *ap);
151static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); 153static void pdc_post_internal_cmd(struct ata_queued_cmd *qc);
@@ -180,8 +182,8 @@ static const struct ata_port_operations pdc_sata_ops = {
180 182
181 .qc_prep = pdc_qc_prep, 183 .qc_prep = pdc_qc_prep,
182 .qc_issue = pdc_qc_issue_prot, 184 .qc_issue = pdc_qc_issue_prot,
183 .freeze = pdc_freeze, 185 .freeze = pdc_sata_freeze,
184 .thaw = pdc_thaw, 186 .thaw = pdc_sata_thaw,
185 .error_handler = pdc_sata_error_handler, 187 .error_handler = pdc_sata_error_handler,
186 .post_internal_cmd = pdc_post_internal_cmd, 188 .post_internal_cmd = pdc_post_internal_cmd,
187 .cable_detect = pdc_sata_cable_detect, 189 .cable_detect = pdc_sata_cable_detect,
@@ -205,8 +207,8 @@ static const struct ata_port_operations pdc_old_sata_ops = {
205 207
206 .qc_prep = pdc_qc_prep, 208 .qc_prep = pdc_qc_prep,
207 .qc_issue = pdc_qc_issue_prot, 209 .qc_issue = pdc_qc_issue_prot,
208 .freeze = pdc_freeze, 210 .freeze = pdc_sata_freeze,
209 .thaw = pdc_thaw, 211 .thaw = pdc_sata_thaw,
210 .error_handler = pdc_sata_error_handler, 212 .error_handler = pdc_sata_error_handler,
211 .post_internal_cmd = pdc_post_internal_cmd, 213 .post_internal_cmd = pdc_post_internal_cmd,
212 .cable_detect = pdc_sata_cable_detect, 214 .cable_detect = pdc_sata_cable_detect,
@@ -631,6 +633,41 @@ static void pdc_qc_prep(struct ata_queued_cmd *qc)
631 } 633 }
632} 634}
633 635
636static int pdc_is_sataii_tx4(unsigned long flags)
637{
638 const unsigned long mask = PDC_FLAG_GEN_II | PDC_FLAG_4_PORTS;
639 return (flags & mask) == mask;
640}
641
642static unsigned int pdc_port_no_to_ata_no(unsigned int port_no,
643 int is_sataii_tx4)
644{
645 static const unsigned char sataii_tx4_port_remap[4] = { 3, 1, 0, 2};
646 return is_sataii_tx4 ? sataii_tx4_port_remap[port_no] : port_no;
647}
648
649static unsigned int pdc_sata_nr_ports(const struct ata_port *ap)
650{
651 return (ap->flags & PDC_FLAG_4_PORTS) ? 4 : 2;
652}
653
654static unsigned int pdc_sata_ata_port_to_ata_no(const struct ata_port *ap)
655{
656 const struct ata_host *host = ap->host;
657 unsigned int nr_ports = pdc_sata_nr_ports(ap);
658 unsigned int i;
659
660 for(i = 0; i < nr_ports && host->ports[i] != ap; ++i)
661 ;
662 BUG_ON(i >= nr_ports);
663 return pdc_port_no_to_ata_no(i, pdc_is_sataii_tx4(ap->flags));
664}
665
666static unsigned int pdc_sata_hotplug_offset(const struct ata_port *ap)
667{
668 return (ap->flags & PDC_FLAG_GEN_II) ? PDC2_SATA_PLUG_CSR : PDC_SATA_PLUG_CSR;
669}
670
634static void pdc_freeze(struct ata_port *ap) 671static void pdc_freeze(struct ata_port *ap)
635{ 672{
636 void __iomem *mmio = ap->ioaddr.cmd_addr; 673 void __iomem *mmio = ap->ioaddr.cmd_addr;
@@ -643,6 +680,29 @@ static void pdc_freeze(struct ata_port *ap)
643 readl(mmio + PDC_CTLSTAT); /* flush */ 680 readl(mmio + PDC_CTLSTAT); /* flush */
644} 681}
645 682
683static void pdc_sata_freeze(struct ata_port *ap)
684{
685 struct ata_host *host = ap->host;
686 void __iomem *host_mmio = host->iomap[PDC_MMIO_BAR];
687 unsigned int hotplug_offset = pdc_sata_hotplug_offset(ap);
688 unsigned int ata_no = pdc_sata_ata_port_to_ata_no(ap);
689 u32 hotplug_status;
690
691 /* Disable hotplug events on this port.
692 *
693 * Locking:
694 * 1) hotplug register accesses must be serialised via host->lock
695 * 2) ap->lock == &ap->host->lock
696 * 3) ->freeze() and ->thaw() are called with ap->lock held
697 */
698 hotplug_status = readl(host_mmio + hotplug_offset);
699 hotplug_status |= 0x11 << (ata_no + 16);
700 writel(hotplug_status, host_mmio + hotplug_offset);
701 readl(host_mmio + hotplug_offset); /* flush */
702
703 pdc_freeze(ap);
704}
705
646static void pdc_thaw(struct ata_port *ap) 706static void pdc_thaw(struct ata_port *ap)
647{ 707{
648 void __iomem *mmio = ap->ioaddr.cmd_addr; 708 void __iomem *mmio = ap->ioaddr.cmd_addr;
@@ -658,6 +718,26 @@ static void pdc_thaw(struct ata_port *ap)
658 readl(mmio + PDC_CTLSTAT); /* flush */ 718 readl(mmio + PDC_CTLSTAT); /* flush */
659} 719}
660 720
721static void pdc_sata_thaw(struct ata_port *ap)
722{
723 struct ata_host *host = ap->host;
724 void __iomem *host_mmio = host->iomap[PDC_MMIO_BAR];
725 unsigned int hotplug_offset = pdc_sata_hotplug_offset(ap);
726 unsigned int ata_no = pdc_sata_ata_port_to_ata_no(ap);
727 u32 hotplug_status;
728
729 pdc_thaw(ap);
730
731 /* Enable hotplug events on this port.
732 * Locking: see pdc_sata_freeze().
733 */
734 hotplug_status = readl(host_mmio + hotplug_offset);
735 hotplug_status |= 0x11 << ata_no;
736 hotplug_status &= ~(0x11 << (ata_no + 16));
737 writel(hotplug_status, host_mmio + hotplug_offset);
738 readl(host_mmio + hotplug_offset); /* flush */
739}
740
661static void pdc_common_error_handler(struct ata_port *ap, ata_reset_fn_t hardreset) 741static void pdc_common_error_handler(struct ata_port *ap, ata_reset_fn_t hardreset)
662{ 742{
663 if (!(ap->pflags & ATA_PFLAG_FROZEN)) 743 if (!(ap->pflags & ATA_PFLAG_FROZEN))
@@ -765,19 +845,6 @@ static void pdc_irq_clear(struct ata_port *ap)
765 readl(mmio + PDC_INT_SEQMASK); 845 readl(mmio + PDC_INT_SEQMASK);
766} 846}
767 847
768static int pdc_is_sataii_tx4(unsigned long flags)
769{
770 const unsigned long mask = PDC_FLAG_GEN_II | PDC_FLAG_4_PORTS;
771 return (flags & mask) == mask;
772}
773
774static unsigned int pdc_port_no_to_ata_no(unsigned int port_no,
775 int is_sataii_tx4)
776{
777 static const unsigned char sataii_tx4_port_remap[4] = { 3, 1, 0, 2};
778 return is_sataii_tx4 ? sataii_tx4_port_remap[port_no] : port_no;
779}
780
781static irqreturn_t pdc_interrupt(int irq, void *dev_instance) 848static irqreturn_t pdc_interrupt(int irq, void *dev_instance)
782{ 849{
783 struct ata_host *host = dev_instance; 850 struct ata_host *host = dev_instance;
@@ -799,6 +866,8 @@ static irqreturn_t pdc_interrupt(int irq, void *dev_instance)
799 866
800 mmio_base = host->iomap[PDC_MMIO_BAR]; 867 mmio_base = host->iomap[PDC_MMIO_BAR];
801 868
869 spin_lock(&host->lock);
870
802 /* read and clear hotplug flags for all ports */ 871 /* read and clear hotplug flags for all ports */
803 if (host->ports[0]->flags & PDC_FLAG_GEN_II) 872 if (host->ports[0]->flags & PDC_FLAG_GEN_II)
804 hotplug_offset = PDC2_SATA_PLUG_CSR; 873 hotplug_offset = PDC2_SATA_PLUG_CSR;
@@ -814,11 +883,9 @@ static irqreturn_t pdc_interrupt(int irq, void *dev_instance)
814 883
815 if (mask == 0xffffffff && hotplug_status == 0) { 884 if (mask == 0xffffffff && hotplug_status == 0) {
816 VPRINTK("QUICK EXIT 2\n"); 885 VPRINTK("QUICK EXIT 2\n");
817 return IRQ_NONE; 886 goto done_irq;
818 } 887 }
819 888
820 spin_lock(&host->lock);
821
822 mask &= 0xffff; /* only 16 tags possible */ 889 mask &= 0xffff; /* only 16 tags possible */
823 if (mask == 0 && hotplug_status == 0) { 890 if (mask == 0 && hotplug_status == 0) {
824 VPRINTK("QUICK EXIT 3\n"); 891 VPRINTK("QUICK EXIT 3\n");
diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
index c662d686154a..47c57a4294b7 100644
--- a/drivers/atm/firestream.c
+++ b/drivers/atm/firestream.c
@@ -331,8 +331,8 @@ module_param(fs_keystream, int, 0);
331#define FS_DEBUG_QSIZE 0x00001000 331#define FS_DEBUG_QSIZE 0x00001000
332 332
333 333
334#define func_enter() fs_dprintk (FS_DEBUG_FLOW, "fs: enter %s\n", __FUNCTION__) 334#define func_enter() fs_dprintk(FS_DEBUG_FLOW, "fs: enter %s\n", __func__)
335#define func_exit() fs_dprintk (FS_DEBUG_FLOW, "fs: exit %s\n", __FUNCTION__) 335#define func_exit() fs_dprintk(FS_DEBUG_FLOW, "fs: exit %s\n", __func__)
336 336
337 337
338static struct fs_dev *fs_boards = NULL; 338static struct fs_dev *fs_boards = NULL;
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index f97e050338f0..432181ed7bb5 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -95,8 +95,8 @@
95#if 1 95#if 1
96#define ASSERT(expr) if (!(expr)) { \ 96#define ASSERT(expr) if (!(expr)) { \
97 printk(FORE200E "assertion failed! %s[%d]: %s\n", \ 97 printk(FORE200E "assertion failed! %s[%d]: %s\n", \
98 __FUNCTION__, __LINE__, #expr); \ 98 __func__, __LINE__, #expr); \
99 panic(FORE200E "%s", __FUNCTION__); \ 99 panic(FORE200E "%s", __func__); \
100 } 100 }
101#else 101#else
102#define ASSERT(expr) do {} while (0) 102#define ASSERT(expr) do {} while (0)
@@ -1988,19 +1988,19 @@ fore200e_fetch_stats(struct fore200e* fore200e, struct sonet_stats __user *arg)
1988 if (fore200e_getstats(fore200e) < 0) 1988 if (fore200e_getstats(fore200e) < 0)
1989 return -EIO; 1989 return -EIO;
1990 1990
1991 tmp.section_bip = cpu_to_be32(fore200e->stats->oc3.section_bip8_errors); 1991 tmp.section_bip = be32_to_cpu(fore200e->stats->oc3.section_bip8_errors);
1992 tmp.line_bip = cpu_to_be32(fore200e->stats->oc3.line_bip24_errors); 1992 tmp.line_bip = be32_to_cpu(fore200e->stats->oc3.line_bip24_errors);
1993 tmp.path_bip = cpu_to_be32(fore200e->stats->oc3.path_bip8_errors); 1993 tmp.path_bip = be32_to_cpu(fore200e->stats->oc3.path_bip8_errors);
1994 tmp.line_febe = cpu_to_be32(fore200e->stats->oc3.line_febe_errors); 1994 tmp.line_febe = be32_to_cpu(fore200e->stats->oc3.line_febe_errors);
1995 tmp.path_febe = cpu_to_be32(fore200e->stats->oc3.path_febe_errors); 1995 tmp.path_febe = be32_to_cpu(fore200e->stats->oc3.path_febe_errors);
1996 tmp.corr_hcs = cpu_to_be32(fore200e->stats->oc3.corr_hcs_errors); 1996 tmp.corr_hcs = be32_to_cpu(fore200e->stats->oc3.corr_hcs_errors);
1997 tmp.uncorr_hcs = cpu_to_be32(fore200e->stats->oc3.ucorr_hcs_errors); 1997 tmp.uncorr_hcs = be32_to_cpu(fore200e->stats->oc3.ucorr_hcs_errors);
1998 tmp.tx_cells = cpu_to_be32(fore200e->stats->aal0.cells_transmitted) + 1998 tmp.tx_cells = be32_to_cpu(fore200e->stats->aal0.cells_transmitted) +
1999 cpu_to_be32(fore200e->stats->aal34.cells_transmitted) + 1999 be32_to_cpu(fore200e->stats->aal34.cells_transmitted) +
2000 cpu_to_be32(fore200e->stats->aal5.cells_transmitted); 2000 be32_to_cpu(fore200e->stats->aal5.cells_transmitted);
2001 tmp.rx_cells = cpu_to_be32(fore200e->stats->aal0.cells_received) + 2001 tmp.rx_cells = be32_to_cpu(fore200e->stats->aal0.cells_received) +
2002 cpu_to_be32(fore200e->stats->aal34.cells_received) + 2002 be32_to_cpu(fore200e->stats->aal34.cells_received) +
2003 cpu_to_be32(fore200e->stats->aal5.cells_received); 2003 be32_to_cpu(fore200e->stats->aal5.cells_received);
2004 2004
2005 if (arg) 2005 if (arg)
2006 return copy_to_user(arg, &tmp, sizeof(struct sonet_stats)) ? -EFAULT : 0; 2006 return copy_to_user(arg, &tmp, sizeof(struct sonet_stats)) ? -EFAULT : 0;
@@ -2587,7 +2587,7 @@ fore200e_start_fw(struct fore200e* fore200e)
2587static int __devinit 2587static int __devinit
2588fore200e_load_fw(struct fore200e* fore200e) 2588fore200e_load_fw(struct fore200e* fore200e)
2589{ 2589{
2590 u32* fw_data = (u32*) fore200e->bus->fw_data; 2590 __le32* fw_data = (__le32*) fore200e->bus->fw_data;
2591 u32 fw_size = (u32) *fore200e->bus->fw_size / sizeof(u32); 2591 u32 fw_size = (u32) *fore200e->bus->fw_size / sizeof(u32);
2592 2592
2593 struct fw_header* fw_header = (struct fw_header*) fw_data; 2593 struct fw_header* fw_header = (struct fw_header*) fw_data;
@@ -2965,8 +2965,8 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
2965 " 4b5b:\n" 2965 " 4b5b:\n"
2966 " crc_header_errors:\t\t%10u\n" 2966 " crc_header_errors:\t\t%10u\n"
2967 " framing_errors:\t\t%10u\n", 2967 " framing_errors:\t\t%10u\n",
2968 cpu_to_be32(fore200e->stats->phy.crc_header_errors), 2968 be32_to_cpu(fore200e->stats->phy.crc_header_errors),
2969 cpu_to_be32(fore200e->stats->phy.framing_errors)); 2969 be32_to_cpu(fore200e->stats->phy.framing_errors));
2970 2970
2971 if (!left--) 2971 if (!left--)
2972 return sprintf(page, "\n" 2972 return sprintf(page, "\n"
@@ -2978,13 +2978,13 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
2978 " path_febe_errors:\t\t%10u\n" 2978 " path_febe_errors:\t\t%10u\n"
2979 " corr_hcs_errors:\t\t%10u\n" 2979 " corr_hcs_errors:\t\t%10u\n"
2980 " ucorr_hcs_errors:\t\t%10u\n", 2980 " ucorr_hcs_errors:\t\t%10u\n",
2981 cpu_to_be32(fore200e->stats->oc3.section_bip8_errors), 2981 be32_to_cpu(fore200e->stats->oc3.section_bip8_errors),
2982 cpu_to_be32(fore200e->stats->oc3.path_bip8_errors), 2982 be32_to_cpu(fore200e->stats->oc3.path_bip8_errors),
2983 cpu_to_be32(fore200e->stats->oc3.line_bip24_errors), 2983 be32_to_cpu(fore200e->stats->oc3.line_bip24_errors),
2984 cpu_to_be32(fore200e->stats->oc3.line_febe_errors), 2984 be32_to_cpu(fore200e->stats->oc3.line_febe_errors),
2985 cpu_to_be32(fore200e->stats->oc3.path_febe_errors), 2985 be32_to_cpu(fore200e->stats->oc3.path_febe_errors),
2986 cpu_to_be32(fore200e->stats->oc3.corr_hcs_errors), 2986 be32_to_cpu(fore200e->stats->oc3.corr_hcs_errors),
2987 cpu_to_be32(fore200e->stats->oc3.ucorr_hcs_errors)); 2987 be32_to_cpu(fore200e->stats->oc3.ucorr_hcs_errors));
2988 2988
2989 if (!left--) 2989 if (!left--)
2990 return sprintf(page,"\n" 2990 return sprintf(page,"\n"
@@ -2995,12 +2995,12 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
2995 " vpi no conn:\t\t%10u\n" 2995 " vpi no conn:\t\t%10u\n"
2996 " vci out of range:\t\t%10u\n" 2996 " vci out of range:\t\t%10u\n"
2997 " vci no conn:\t\t%10u\n", 2997 " vci no conn:\t\t%10u\n",
2998 cpu_to_be32(fore200e->stats->atm.cells_transmitted), 2998 be32_to_cpu(fore200e->stats->atm.cells_transmitted),
2999 cpu_to_be32(fore200e->stats->atm.cells_received), 2999 be32_to_cpu(fore200e->stats->atm.cells_received),
3000 cpu_to_be32(fore200e->stats->atm.vpi_bad_range), 3000 be32_to_cpu(fore200e->stats->atm.vpi_bad_range),
3001 cpu_to_be32(fore200e->stats->atm.vpi_no_conn), 3001 be32_to_cpu(fore200e->stats->atm.vpi_no_conn),
3002 cpu_to_be32(fore200e->stats->atm.vci_bad_range), 3002 be32_to_cpu(fore200e->stats->atm.vci_bad_range),
3003 cpu_to_be32(fore200e->stats->atm.vci_no_conn)); 3003 be32_to_cpu(fore200e->stats->atm.vci_no_conn));
3004 3004
3005 if (!left--) 3005 if (!left--)
3006 return sprintf(page,"\n" 3006 return sprintf(page,"\n"
@@ -3008,9 +3008,9 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
3008 " TX:\t\t\t%10u\n" 3008 " TX:\t\t\t%10u\n"
3009 " RX:\t\t\t%10u\n" 3009 " RX:\t\t\t%10u\n"
3010 " dropped:\t\t\t%10u\n", 3010 " dropped:\t\t\t%10u\n",
3011 cpu_to_be32(fore200e->stats->aal0.cells_transmitted), 3011 be32_to_cpu(fore200e->stats->aal0.cells_transmitted),
3012 cpu_to_be32(fore200e->stats->aal0.cells_received), 3012 be32_to_cpu(fore200e->stats->aal0.cells_received),
3013 cpu_to_be32(fore200e->stats->aal0.cells_dropped)); 3013 be32_to_cpu(fore200e->stats->aal0.cells_dropped));
3014 3014
3015 if (!left--) 3015 if (!left--)
3016 return sprintf(page,"\n" 3016 return sprintf(page,"\n"
@@ -3026,15 +3026,15 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
3026 " RX:\t\t\t%10u\n" 3026 " RX:\t\t\t%10u\n"
3027 " dropped:\t\t\t%10u\n" 3027 " dropped:\t\t\t%10u\n"
3028 " protocol errors:\t\t%10u\n", 3028 " protocol errors:\t\t%10u\n",
3029 cpu_to_be32(fore200e->stats->aal34.cells_transmitted), 3029 be32_to_cpu(fore200e->stats->aal34.cells_transmitted),
3030 cpu_to_be32(fore200e->stats->aal34.cells_received), 3030 be32_to_cpu(fore200e->stats->aal34.cells_received),
3031 cpu_to_be32(fore200e->stats->aal34.cells_dropped), 3031 be32_to_cpu(fore200e->stats->aal34.cells_dropped),
3032 cpu_to_be32(fore200e->stats->aal34.cells_crc_errors), 3032 be32_to_cpu(fore200e->stats->aal34.cells_crc_errors),
3033 cpu_to_be32(fore200e->stats->aal34.cells_protocol_errors), 3033 be32_to_cpu(fore200e->stats->aal34.cells_protocol_errors),
3034 cpu_to_be32(fore200e->stats->aal34.cspdus_transmitted), 3034 be32_to_cpu(fore200e->stats->aal34.cspdus_transmitted),
3035 cpu_to_be32(fore200e->stats->aal34.cspdus_received), 3035 be32_to_cpu(fore200e->stats->aal34.cspdus_received),
3036 cpu_to_be32(fore200e->stats->aal34.cspdus_dropped), 3036 be32_to_cpu(fore200e->stats->aal34.cspdus_dropped),
3037 cpu_to_be32(fore200e->stats->aal34.cspdus_protocol_errors)); 3037 be32_to_cpu(fore200e->stats->aal34.cspdus_protocol_errors));
3038 3038
3039 if (!left--) 3039 if (!left--)
3040 return sprintf(page,"\n" 3040 return sprintf(page,"\n"
@@ -3050,15 +3050,15 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
3050 " dropped:\t\t\t%10u\n" 3050 " dropped:\t\t\t%10u\n"
3051 " CRC errors:\t\t%10u\n" 3051 " CRC errors:\t\t%10u\n"
3052 " protocol errors:\t\t%10u\n", 3052 " protocol errors:\t\t%10u\n",
3053 cpu_to_be32(fore200e->stats->aal5.cells_transmitted), 3053 be32_to_cpu(fore200e->stats->aal5.cells_transmitted),
3054 cpu_to_be32(fore200e->stats->aal5.cells_received), 3054 be32_to_cpu(fore200e->stats->aal5.cells_received),
3055 cpu_to_be32(fore200e->stats->aal5.cells_dropped), 3055 be32_to_cpu(fore200e->stats->aal5.cells_dropped),
3056 cpu_to_be32(fore200e->stats->aal5.congestion_experienced), 3056 be32_to_cpu(fore200e->stats->aal5.congestion_experienced),
3057 cpu_to_be32(fore200e->stats->aal5.cspdus_transmitted), 3057 be32_to_cpu(fore200e->stats->aal5.cspdus_transmitted),
3058 cpu_to_be32(fore200e->stats->aal5.cspdus_received), 3058 be32_to_cpu(fore200e->stats->aal5.cspdus_received),
3059 cpu_to_be32(fore200e->stats->aal5.cspdus_dropped), 3059 be32_to_cpu(fore200e->stats->aal5.cspdus_dropped),
3060 cpu_to_be32(fore200e->stats->aal5.cspdus_crc_errors), 3060 be32_to_cpu(fore200e->stats->aal5.cspdus_crc_errors),
3061 cpu_to_be32(fore200e->stats->aal5.cspdus_protocol_errors)); 3061 be32_to_cpu(fore200e->stats->aal5.cspdus_protocol_errors));
3062 3062
3063 if (!left--) 3063 if (!left--)
3064 return sprintf(page,"\n" 3064 return sprintf(page,"\n"
@@ -3069,11 +3069,11 @@ fore200e_proc_read(struct atm_dev *dev, loff_t* pos, char* page)
3069 " large b2:\t\t\t%10u\n" 3069 " large b2:\t\t\t%10u\n"
3070 " RX PDUs:\t\t\t%10u\n" 3070 " RX PDUs:\t\t\t%10u\n"
3071 " TX PDUs:\t\t\t%10lu\n", 3071 " TX PDUs:\t\t\t%10lu\n",
3072 cpu_to_be32(fore200e->stats->aux.small_b1_failed), 3072 be32_to_cpu(fore200e->stats->aux.small_b1_failed),
3073 cpu_to_be32(fore200e->stats->aux.large_b1_failed), 3073 be32_to_cpu(fore200e->stats->aux.large_b1_failed),
3074 cpu_to_be32(fore200e->stats->aux.small_b2_failed), 3074 be32_to_cpu(fore200e->stats->aux.small_b2_failed),
3075 cpu_to_be32(fore200e->stats->aux.large_b2_failed), 3075 be32_to_cpu(fore200e->stats->aux.large_b2_failed),
3076 cpu_to_be32(fore200e->stats->aux.rpd_alloc_failed), 3076 be32_to_cpu(fore200e->stats->aux.rpd_alloc_failed),
3077 fore200e->tx_sat); 3077 fore200e->tx_sat);
3078 3078
3079 if (!left--) 3079 if (!left--)
diff --git a/drivers/atm/fore200e.h b/drivers/atm/fore200e.h
index b85a54613dea..183841cc8fdf 100644
--- a/drivers/atm/fore200e.h
+++ b/drivers/atm/fore200e.h
@@ -349,90 +349,90 @@ typedef struct oc3_block {
349/* physical encoding statistics */ 349/* physical encoding statistics */
350 350
351typedef struct stats_phy { 351typedef struct stats_phy {
352 u32 crc_header_errors; /* cells received with bad header CRC */ 352 __be32 crc_header_errors; /* cells received with bad header CRC */
353 u32 framing_errors; /* cells received with bad framing */ 353 __be32 framing_errors; /* cells received with bad framing */
354 u32 pad[ 2 ]; /* i960 padding */ 354 __be32 pad[ 2 ]; /* i960 padding */
355} stats_phy_t; 355} stats_phy_t;
356 356
357 357
358/* OC-3 statistics */ 358/* OC-3 statistics */
359 359
360typedef struct stats_oc3 { 360typedef struct stats_oc3 {
361 u32 section_bip8_errors; /* section 8 bit interleaved parity */ 361 __be32 section_bip8_errors; /* section 8 bit interleaved parity */
362 u32 path_bip8_errors; /* path 8 bit interleaved parity */ 362 __be32 path_bip8_errors; /* path 8 bit interleaved parity */
363 u32 line_bip24_errors; /* line 24 bit interleaved parity */ 363 __be32 line_bip24_errors; /* line 24 bit interleaved parity */
364 u32 line_febe_errors; /* line far end block errors */ 364 __be32 line_febe_errors; /* line far end block errors */
365 u32 path_febe_errors; /* path far end block errors */ 365 __be32 path_febe_errors; /* path far end block errors */
366 u32 corr_hcs_errors; /* correctable header check sequence */ 366 __be32 corr_hcs_errors; /* correctable header check sequence */
367 u32 ucorr_hcs_errors; /* uncorrectable header check sequence */ 367 __be32 ucorr_hcs_errors; /* uncorrectable header check sequence */
368 u32 pad[ 1 ]; /* i960 padding */ 368 __be32 pad[ 1 ]; /* i960 padding */
369} stats_oc3_t; 369} stats_oc3_t;
370 370
371 371
372/* ATM statistics */ 372/* ATM statistics */
373 373
374typedef struct stats_atm { 374typedef struct stats_atm {
375 u32 cells_transmitted; /* cells transmitted */ 375 __be32 cells_transmitted; /* cells transmitted */
376 u32 cells_received; /* cells received */ 376 __be32 cells_received; /* cells received */
377 u32 vpi_bad_range; /* cell drops: VPI out of range */ 377 __be32 vpi_bad_range; /* cell drops: VPI out of range */
378 u32 vpi_no_conn; /* cell drops: no connection for VPI */ 378 __be32 vpi_no_conn; /* cell drops: no connection for VPI */
379 u32 vci_bad_range; /* cell drops: VCI out of range */ 379 __be32 vci_bad_range; /* cell drops: VCI out of range */
380 u32 vci_no_conn; /* cell drops: no connection for VCI */ 380 __be32 vci_no_conn; /* cell drops: no connection for VCI */
381 u32 pad[ 2 ]; /* i960 padding */ 381 __be32 pad[ 2 ]; /* i960 padding */
382} stats_atm_t; 382} stats_atm_t;
383 383
384/* AAL0 statistics */ 384/* AAL0 statistics */
385 385
386typedef struct stats_aal0 { 386typedef struct stats_aal0 {
387 u32 cells_transmitted; /* cells transmitted */ 387 __be32 cells_transmitted; /* cells transmitted */
388 u32 cells_received; /* cells received */ 388 __be32 cells_received; /* cells received */
389 u32 cells_dropped; /* cells dropped */ 389 __be32 cells_dropped; /* cells dropped */
390 u32 pad[ 1 ]; /* i960 padding */ 390 __be32 pad[ 1 ]; /* i960 padding */
391} stats_aal0_t; 391} stats_aal0_t;
392 392
393 393
394/* AAL3/4 statistics */ 394/* AAL3/4 statistics */
395 395
396typedef struct stats_aal34 { 396typedef struct stats_aal34 {
397 u32 cells_transmitted; /* cells transmitted from segmented PDUs */ 397 __be32 cells_transmitted; /* cells transmitted from segmented PDUs */
398 u32 cells_received; /* cells reassembled into PDUs */ 398 __be32 cells_received; /* cells reassembled into PDUs */
399 u32 cells_crc_errors; /* payload CRC error count */ 399 __be32 cells_crc_errors; /* payload CRC error count */
400 u32 cells_protocol_errors; /* SAR or CS layer protocol errors */ 400 __be32 cells_protocol_errors; /* SAR or CS layer protocol errors */
401 u32 cells_dropped; /* cells dropped: partial reassembly */ 401 __be32 cells_dropped; /* cells dropped: partial reassembly */
402 u32 cspdus_transmitted; /* CS PDUs transmitted */ 402 __be32 cspdus_transmitted; /* CS PDUs transmitted */
403 u32 cspdus_received; /* CS PDUs received */ 403 __be32 cspdus_received; /* CS PDUs received */
404 u32 cspdus_protocol_errors; /* CS layer protocol errors */ 404 __be32 cspdus_protocol_errors; /* CS layer protocol errors */
405 u32 cspdus_dropped; /* reassembled PDUs drop'd (in cells) */ 405 __be32 cspdus_dropped; /* reassembled PDUs drop'd (in cells) */
406 u32 pad[ 3 ]; /* i960 padding */ 406 __be32 pad[ 3 ]; /* i960 padding */
407} stats_aal34_t; 407} stats_aal34_t;
408 408
409 409
410/* AAL5 statistics */ 410/* AAL5 statistics */
411 411
412typedef struct stats_aal5 { 412typedef struct stats_aal5 {
413 u32 cells_transmitted; /* cells transmitted from segmented SDUs */ 413 __be32 cells_transmitted; /* cells transmitted from segmented SDUs */
414 u32 cells_received; /* cells reassembled into SDUs */ 414 __be32 cells_received; /* cells reassembled into SDUs */
415 u32 cells_dropped; /* reassembled PDUs dropped (in cells) */ 415 __be32 cells_dropped; /* reassembled PDUs dropped (in cells) */
416 u32 congestion_experienced; /* CRC error and length wrong */ 416 __be32 congestion_experienced; /* CRC error and length wrong */
417 u32 cspdus_transmitted; /* CS PDUs transmitted */ 417 __be32 cspdus_transmitted; /* CS PDUs transmitted */
418 u32 cspdus_received; /* CS PDUs received */ 418 __be32 cspdus_received; /* CS PDUs received */
419 u32 cspdus_crc_errors; /* CS PDUs CRC errors */ 419 __be32 cspdus_crc_errors; /* CS PDUs CRC errors */
420 u32 cspdus_protocol_errors; /* CS layer protocol errors */ 420 __be32 cspdus_protocol_errors; /* CS layer protocol errors */
421 u32 cspdus_dropped; /* reassembled PDUs dropped */ 421 __be32 cspdus_dropped; /* reassembled PDUs dropped */
422 u32 pad[ 3 ]; /* i960 padding */ 422 __be32 pad[ 3 ]; /* i960 padding */
423} stats_aal5_t; 423} stats_aal5_t;
424 424
425 425
426/* auxiliary statistics */ 426/* auxiliary statistics */
427 427
428typedef struct stats_aux { 428typedef struct stats_aux {
429 u32 small_b1_failed; /* receive BD allocation failures */ 429 __be32 small_b1_failed; /* receive BD allocation failures */
430 u32 large_b1_failed; /* receive BD allocation failures */ 430 __be32 large_b1_failed; /* receive BD allocation failures */
431 u32 small_b2_failed; /* receive BD allocation failures */ 431 __be32 small_b2_failed; /* receive BD allocation failures */
432 u32 large_b2_failed; /* receive BD allocation failures */ 432 __be32 large_b2_failed; /* receive BD allocation failures */
433 u32 rpd_alloc_failed; /* receive PDU allocation failures */ 433 __be32 rpd_alloc_failed; /* receive PDU allocation failures */
434 u32 receive_carrier; /* no carrier = 0, carrier = 1 */ 434 __be32 receive_carrier; /* no carrier = 0, carrier = 1 */
435 u32 pad[ 2 ]; /* i960 padding */ 435 __be32 pad[ 2 ]; /* i960 padding */
436} stats_aux_t; 436} stats_aux_t;
437 437
438 438
@@ -643,10 +643,10 @@ typedef struct host_bsq {
643/* header of the firmware image */ 643/* header of the firmware image */
644 644
645typedef struct fw_header { 645typedef struct fw_header {
646 u32 magic; /* magic number */ 646 __le32 magic; /* magic number */
647 u32 version; /* firmware version id */ 647 __le32 version; /* firmware version id */
648 u32 load_offset; /* fw load offset in board memory */ 648 __le32 load_offset; /* fw load offset in board memory */
649 u32 start_offset; /* fw execution start address in board memory */ 649 __le32 start_offset; /* fw execution start address in board memory */
650} fw_header_t; 650} fw_header_t;
651 651
652#define FW_HEADER_MAGIC 0x65726f66 /* 'fore' */ 652#define FW_HEADER_MAGIC 0x65726f66 /* 'fore' */
diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
index eee54c0cde68..b967919fb7e2 100644
--- a/drivers/atm/idt77252.c
+++ b/drivers/atm/idt77252.c
@@ -555,7 +555,7 @@ idt77252_tx_dump(struct idt77252_dev *card)
555 struct vc_map *vc; 555 struct vc_map *vc;
556 int i; 556 int i;
557 557
558 printk("%s\n", __FUNCTION__); 558 printk("%s\n", __func__);
559 for (i = 0; i < card->tct_size; i++) { 559 for (i = 0; i < card->tct_size; i++) {
560 vc = card->vcs[i]; 560 vc = card->vcs[i];
561 if (!vc) 561 if (!vc)
@@ -1035,7 +1035,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
1035 skb = sb_pool_skb(card, le32_to_cpu(rsqe->word_2)); 1035 skb = sb_pool_skb(card, le32_to_cpu(rsqe->word_2));
1036 if (skb == NULL) { 1036 if (skb == NULL) {
1037 printk("%s: NULL skb in %s, rsqe: %08x %08x %08x %08x\n", 1037 printk("%s: NULL skb in %s, rsqe: %08x %08x %08x %08x\n",
1038 card->name, __FUNCTION__, 1038 card->name, __func__,
1039 le32_to_cpu(rsqe->word_1), le32_to_cpu(rsqe->word_2), 1039 le32_to_cpu(rsqe->word_1), le32_to_cpu(rsqe->word_2),
1040 le32_to_cpu(rsqe->word_3), le32_to_cpu(rsqe->word_4)); 1040 le32_to_cpu(rsqe->word_3), le32_to_cpu(rsqe->word_4));
1041 return; 1041 return;
@@ -1873,7 +1873,7 @@ add_rx_skb(struct idt77252_dev *card, int queue,
1873 return; 1873 return;
1874 1874
1875 if (sb_pool_add(card, skb, queue)) { 1875 if (sb_pool_add(card, skb, queue)) {
1876 printk("%s: SB POOL full\n", __FUNCTION__); 1876 printk("%s: SB POOL full\n", __func__);
1877 goto outfree; 1877 goto outfree;
1878 } 1878 }
1879 1879
@@ -1883,7 +1883,7 @@ add_rx_skb(struct idt77252_dev *card, int queue,
1883 IDT77252_PRV_PADDR(skb) = paddr; 1883 IDT77252_PRV_PADDR(skb) = paddr;
1884 1884
1885 if (push_rx_skb(card, skb, queue)) { 1885 if (push_rx_skb(card, skb, queue)) {
1886 printk("%s: FB QUEUE full\n", __FUNCTION__); 1886 printk("%s: FB QUEUE full\n", __func__);
1887 goto outunmap; 1887 goto outunmap;
1888 } 1888 }
1889 } 1889 }
@@ -3821,12 +3821,12 @@ static int __init idt77252_init(void)
3821{ 3821{
3822 struct sk_buff *skb; 3822 struct sk_buff *skb;
3823 3823
3824 printk("%s: at %p\n", __FUNCTION__, idt77252_init); 3824 printk("%s: at %p\n", __func__, idt77252_init);
3825 3825
3826 if (sizeof(skb->cb) < sizeof(struct atm_skb_data) + 3826 if (sizeof(skb->cb) < sizeof(struct atm_skb_data) +
3827 sizeof(struct idt77252_skb_prv)) { 3827 sizeof(struct idt77252_skb_prv)) {
3828 printk(KERN_ERR "%s: skb->cb is too small (%lu < %lu)\n", 3828 printk(KERN_ERR "%s: skb->cb is too small (%lu < %lu)\n",
3829 __FUNCTION__, (unsigned long) sizeof(skb->cb), 3829 __func__, (unsigned long) sizeof(skb->cb),
3830 (unsigned long) sizeof(struct atm_skb_data) + 3830 (unsigned long) sizeof(struct atm_skb_data) +
3831 sizeof(struct idt77252_skb_prv)); 3831 sizeof(struct idt77252_skb_prv));
3832 return -EIO; 3832 return -EIO;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 7de543d1d0b4..24198ad01976 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -19,6 +19,7 @@
19#include <linux/kdev_t.h> 19#include <linux/kdev_t.h>
20#include <linux/notifier.h> 20#include <linux/notifier.h>
21#include <linux/genhd.h> 21#include <linux/genhd.h>
22#include <linux/kallsyms.h>
22#include <asm/semaphore.h> 23#include <asm/semaphore.h>
23 24
24#include "base.h" 25#include "base.h"
@@ -68,6 +69,10 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr,
68 69
69 if (dev_attr->show) 70 if (dev_attr->show)
70 ret = dev_attr->show(dev, dev_attr, buf); 71 ret = dev_attr->show(dev, dev_attr, buf);
72 if (ret >= (ssize_t)PAGE_SIZE) {
73 print_symbol("dev_attr_show: %s returned bad count\n",
74 (unsigned long)dev_attr->show);
75 }
71 return ret; 76 return ret;
72} 77}
73 78
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index bf31a0170a48..9a6537f14401 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -133,6 +133,7 @@ int driver_add_kobj(struct device_driver *drv, struct kobject *kobj,
133{ 133{
134 va_list args; 134 va_list args;
135 char *name; 135 char *name;
136 int ret;
136 137
137 va_start(args, fmt); 138 va_start(args, fmt);
138 name = kvasprintf(GFP_KERNEL, fmt, args); 139 name = kvasprintf(GFP_KERNEL, fmt, args);
@@ -141,7 +142,9 @@ int driver_add_kobj(struct device_driver *drv, struct kobject *kobj,
141 if (!name) 142 if (!name)
142 return -ENOMEM; 143 return -ENOMEM;
143 144
144 return kobject_add(kobj, &drv->p->kobj, "%s", name); 145 ret = kobject_add(kobj, &drv->p->kobj, "%s", name);
146 kfree(name);
147 return ret;
145} 148}
146EXPORT_SYMBOL_GPL(driver_add_kobj); 149EXPORT_SYMBOL_GPL(driver_add_kobj);
147 150
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index b6d230b3209f..0d1d2133d9bc 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -44,16 +44,6 @@ config MAC_FLOPPY
44 If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) 44 If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple)
45 floppy controller, say Y here. Most commonly found in PowerMacs. 45 floppy controller, say Y here. Most commonly found in PowerMacs.
46 46
47config BLK_DEV_PS2
48 tristate "PS/2 ESDI hard disk support"
49 depends on MCA && MCA_LEGACY && BROKEN
50 help
51 Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
52 hard disk.
53
54 To compile this driver as a module, choose M here: the
55 module will be called ps2esdi.
56
57config AMIGA_Z2RAM 47config AMIGA_Z2RAM
58 tristate "Amiga Zorro II ramdisk support" 48 tristate "Amiga Zorro II ramdisk support"
59 depends on ZORRO 49 depends on ZORRO
diff --git a/drivers/block/Makefile b/drivers/block/Makefile
index 01c972415cb2..5e584306be99 100644
--- a/drivers/block/Makefile
+++ b/drivers/block/Makefile
@@ -13,7 +13,6 @@ obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o
13obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o 13obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o
14obj-$(CONFIG_BLK_DEV_RAM) += brd.o 14obj-$(CONFIG_BLK_DEV_RAM) += brd.o
15obj-$(CONFIG_BLK_DEV_LOOP) += loop.o 15obj-$(CONFIG_BLK_DEV_LOOP) += loop.o
16obj-$(CONFIG_BLK_DEV_PS2) += ps2esdi.o
17obj-$(CONFIG_BLK_DEV_XD) += xd.o 16obj-$(CONFIG_BLK_DEV_XD) += xd.o
18obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o 17obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o
19obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o 18obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 32c79a55511b..7652e87d60c5 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -217,7 +217,6 @@ static int use_virtual_dma;
217 */ 217 */
218 218
219static DEFINE_SPINLOCK(floppy_lock); 219static DEFINE_SPINLOCK(floppy_lock);
220static struct completion device_release;
221 220
222static unsigned short virtual_dma_port = 0x3f0; 221static unsigned short virtual_dma_port = 0x3f0;
223irqreturn_t floppy_interrupt(int irq, void *dev_id); 222irqreturn_t floppy_interrupt(int irq, void *dev_id);
@@ -4144,7 +4143,6 @@ DEVICE_ATTR(cmos,S_IRUGO,floppy_cmos_show,NULL);
4144 4143
4145static void floppy_device_release(struct device *dev) 4144static void floppy_device_release(struct device *dev)
4146{ 4145{
4147 complete(&device_release);
4148} 4146}
4149 4147
4150static struct platform_device floppy_device[N_DRIVE]; 4148static struct platform_device floppy_device[N_DRIVE];
@@ -4539,7 +4537,6 @@ void cleanup_module(void)
4539{ 4537{
4540 int drive; 4538 int drive;
4541 4539
4542 init_completion(&device_release);
4543 blk_unregister_region(MKDEV(FLOPPY_MAJOR, 0), 256); 4540 blk_unregister_region(MKDEV(FLOPPY_MAJOR, 0), 256);
4544 unregister_blkdev(FLOPPY_MAJOR, "fd"); 4541 unregister_blkdev(FLOPPY_MAJOR, "fd");
4545 4542
@@ -4564,8 +4561,6 @@ void cleanup_module(void)
4564 4561
4565 /* eject disk, if any */ 4562 /* eject disk, if any */
4566 fd_eject(0); 4563 fd_eject(0);
4567
4568 wait_for_completion(&device_release);
4569} 4564}
4570 4565
4571module_param(floppy, charp, 0); 4566module_param(floppy, charp, 0);
diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c
deleted file mode 100644
index 3c796e236253..000000000000
--- a/drivers/block/ps2esdi.c
+++ /dev/null
@@ -1,1079 +0,0 @@
1/* ps2esdi driver based on assembler code by Arindam Banerji,
2 written by Peter De Schrijver */
3/* Reassuring note to IBM : This driver was NOT developed by vice-versa
4 engineering the PS/2's BIOS */
5/* Dedicated to Wannes, Tofke, Ykke, Godot, Killroy and all those
6 other lovely fish out there... */
7/* This code was written during the long and boring WINA
8 elections 1994 */
9/* Thanks to Arindam Banerij for giving me the source of his driver */
10/* This code may be freely distributed and modified in any way,
11 as long as these notes remain intact */
12
13/* Revised: 05/07/94 by Arindam Banerji (axb@cse.nd.edu) */
14/* Revised: 09/08/94 by Peter De Schrijver (stud11@cc4.kuleuven.ac.be)
15 Thanks to Arindam Banerij for sending me the docs of the adapter */
16
17/* BA Modified for ThinkPad 720 by Boris Ashkinazi */
18/* (bash@vnet.ibm.com) 08/08/95 */
19
20/* Modified further for ThinkPad-720C by Uri Blumenthal */
21/* (uri@watson.ibm.com) Sep 11, 1995 */
22
23/* TODO :
24 + Timeouts
25 + Get disk parameters
26 + DMA above 16MB
27 + reset after read/write error
28 */
29
30#define DEVICE_NAME "PS/2 ESDI"
31
32#include <linux/major.h>
33#include <linux/errno.h>
34#include <linux/wait.h>
35#include <linux/interrupt.h>
36#include <linux/fs.h>
37#include <linux/kernel.h>
38#include <linux/genhd.h>
39#include <linux/ps2esdi.h>
40#include <linux/blkdev.h>
41#include <linux/mca-legacy.h>
42#include <linux/init.h>
43#include <linux/ioport.h>
44#include <linux/module.h>
45#include <linux/hdreg.h>
46
47#include <asm/system.h>
48#include <asm/io.h>
49#include <asm/dma.h>
50#include <asm/mca_dma.h>
51#include <asm/uaccess.h>
52
53#define PS2ESDI_IRQ 14
54#define MAX_HD 2
55#define MAX_RETRIES 5
56#define MAX_16BIT 65536
57#define ESDI_TIMEOUT 0xf000
58#define ESDI_STAT_TIMEOUT 4
59
60#define TYPE_0_CMD_BLK_LENGTH 2
61#define TYPE_1_CMD_BLK_LENGTH 4
62
63static void reset_ctrl(void);
64
65static int ps2esdi_geninit(void);
66
67static void do_ps2esdi_request(struct request_queue * q);
68
69static void ps2esdi_readwrite(int cmd, struct request *req);
70
71static void ps2esdi_fill_cmd_block(u_short * cmd_blk, u_short cmd,
72u_short cyl, u_short head, u_short sector, u_short length, u_char drive);
73
74static int ps2esdi_out_cmd_blk(u_short * cmd_blk);
75
76static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode);
77
78static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id);
79static void (*current_int_handler) (u_int) = NULL;
80static void ps2esdi_normal_interrupt_handler(u_int);
81static void ps2esdi_initial_reset_int_handler(u_int);
82static void ps2esdi_geometry_int_handler(u_int);
83static int ps2esdi_getgeo(struct block_device *bdev, struct hd_geometry *geo);
84
85static int ps2esdi_read_status_words(int num_words, int max_words, u_short * buffer);
86
87static void dump_cmd_complete_status(u_int int_ret_code);
88
89static void ps2esdi_get_device_cfg(void);
90
91static void ps2esdi_reset_timer(unsigned long unused);
92
93static u_int dma_arb_level; /* DMA arbitration level */
94
95static DECLARE_WAIT_QUEUE_HEAD(ps2esdi_int);
96
97static int no_int_yet;
98static int ps2esdi_drives;
99static u_short io_base;
100static DEFINE_TIMER(esdi_timer, ps2esdi_reset_timer, 0, 0);
101static int reset_status;
102static int ps2esdi_slot = -1;
103static int tp720esdi = 0; /* Is it Integrated ESDI of ThinkPad-720? */
104static int intg_esdi = 0; /* If integrated adapter */
105struct ps2esdi_i_struct {
106 unsigned int head, sect, cyl, wpcom, lzone, ctl;
107};
108static DEFINE_SPINLOCK(ps2esdi_lock);
109static struct request_queue *ps2esdi_queue;
110static struct request *current_req;
111
112#if 0
113#if 0 /* try both - I don't know which one is better... UB */
114static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] =
115{
116 {4, 48, 1553, 0, 0, 0},
117 {0, 0, 0, 0, 0, 0}};
118#else
119static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] =
120{
121 {64, 32, 161, 0, 0, 0},
122 {0, 0, 0, 0, 0, 0}};
123#endif
124#endif
125static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] =
126{
127 {0, 0, 0, 0, 0, 0},
128 {0, 0, 0, 0, 0, 0}};
129
130static struct block_device_operations ps2esdi_fops =
131{
132 .owner = THIS_MODULE,
133 .getgeo = ps2esdi_getgeo,
134};
135
136static struct gendisk *ps2esdi_gendisk[2];
137
138/* initialization routine called by ll_rw_blk.c */
139static int __init ps2esdi_init(void)
140{
141
142 int error = 0;
143
144 /* register the device - pass the name and major number */
145 if (register_blkdev(PS2ESDI_MAJOR, "ed"))
146 return -EBUSY;
147
148 /* set up some global information - indicating device specific info */
149 ps2esdi_queue = blk_init_queue(do_ps2esdi_request, &ps2esdi_lock);
150 if (!ps2esdi_queue) {
151 unregister_blkdev(PS2ESDI_MAJOR, "ed");
152 return -ENOMEM;
153 }
154
155 /* some minor housekeeping - setup the global gendisk structure */
156 error = ps2esdi_geninit();
157 if (error) {
158 printk(KERN_WARNING "PS2ESDI: error initialising"
159 " device, releasing resources\n");
160 unregister_blkdev(PS2ESDI_MAJOR, "ed");
161 blk_cleanup_queue(ps2esdi_queue);
162 return error;
163 }
164 return 0;
165} /* ps2esdi_init */
166
167#ifndef MODULE
168
169module_init(ps2esdi_init);
170
171#else
172
173static int cyl[MAX_HD] = {-1,-1};
174static int head[MAX_HD] = {-1, -1};
175static int sect[MAX_HD] = {-1, -1};
176
177module_param(tp720esdi, bool, 0);
178module_param_array(cyl, int, NULL, 0);
179module_param_array(head, int, NULL, 0);
180module_param_array(sect, int, NULL, 0);
181MODULE_LICENSE("GPL");
182
183int init_module(void) {
184 int drive;
185
186 for(drive = 0; drive < MAX_HD; drive++) {
187 struct ps2esdi_i_struct *info = &ps2esdi_info[drive];
188
189 if (cyl[drive] != -1) {
190 info->cyl = info->lzone = cyl[drive];
191 info->wpcom = 0;
192 }
193 if (head[drive] != -1) {
194 info->head = head[drive];
195 info->ctl = (head[drive] > 8 ? 8 : 0);
196 }
197 if (sect[drive] != -1) info->sect = sect[drive];
198 }
199 return ps2esdi_init();
200}
201
202void
203cleanup_module(void) {
204 int i;
205 if(ps2esdi_slot) {
206 mca_mark_as_unused(ps2esdi_slot);
207 mca_set_adapter_procfn(ps2esdi_slot, NULL, NULL);
208 }
209 release_region(io_base, 4);
210 free_dma(dma_arb_level);
211 free_irq(PS2ESDI_IRQ, &ps2esdi_gendisk);
212 unregister_blkdev(PS2ESDI_MAJOR, "ed");
213 blk_cleanup_queue(ps2esdi_queue);
214 for (i = 0; i < ps2esdi_drives; i++) {
215 del_gendisk(ps2esdi_gendisk[i]);
216 put_disk(ps2esdi_gendisk[i]);
217 }
218}
219#endif /* MODULE */
220
221/* handles boot time command line parameters */
222void __init tp720_setup(char *str, int *ints)
223{
224 /* no params, just sets the tp720esdi flag if it exists */
225
226 printk("%s: TP 720 ESDI flag set\n", DEVICE_NAME);
227 tp720esdi = 1;
228}
229
230void __init ed_setup(char *str, int *ints)
231{
232 int hdind = 0;
233
234 /* handles 3 parameters only - corresponding to
235 1. Number of cylinders
236 2. Number of heads
237 3. Sectors/track
238 */
239
240 if (ints[0] != 3)
241 return;
242
243 /* print out the information - seen at boot time */
244 printk("%s: ints[0]=%d ints[1]=%d ints[2]=%d ints[3]=%d\n",
245 DEVICE_NAME, ints[0], ints[1], ints[2], ints[3]);
246
247 /* set the index into device specific information table */
248 if (ps2esdi_info[0].head != 0)
249 hdind = 1;
250
251 /* set up all the device information */
252 ps2esdi_info[hdind].head = ints[2];
253 ps2esdi_info[hdind].sect = ints[3];
254 ps2esdi_info[hdind].cyl = ints[1];
255 ps2esdi_info[hdind].wpcom = 0;
256 ps2esdi_info[hdind].lzone = ints[1];
257 ps2esdi_info[hdind].ctl = (ints[2] > 8 ? 8 : 0);
258#if 0 /* this may be needed for PS2/Mod.80, but it hurts ThinkPad! */
259 ps2esdi_drives = hdind + 1; /* increment index for the next time */
260#endif
261} /* ed_setup */
262
263static int ps2esdi_getinfo(char *buf, int slot, void *d)
264{
265 int len = 0;
266
267 len += sprintf(buf + len, "DMA Arbitration Level: %d\n",
268 dma_arb_level);
269 len += sprintf(buf + len, "IO Port: %x\n", io_base);
270 len += sprintf(buf + len, "IRQ: 14\n");
271 len += sprintf(buf + len, "Drives: %d\n", ps2esdi_drives);
272
273 return len;
274}
275
276/* ps2 esdi specific initialization - called thru the gendisk chain */
277static int __init ps2esdi_geninit(void)
278{
279 /*
280 The first part contains the initialization code
281 for the ESDI disk subsystem. All we really do
282 is search for the POS registers of the controller
283 to do some simple setup operations. First, we
284 must ensure that the controller is installed,
285 enabled, and configured as PRIMARY. Then we must
286 determine the DMA arbitration level being used by
287 the controller so we can handle data transfer
288 operations properly. If all of this works, then
289 we will set the INIT_FLAG to a non-zero value.
290 */
291
292 int slot = 0, i, reset_start, reset_end;
293 u_char status;
294 unsigned short adapterID;
295 int error = 0;
296
297 if ((slot = mca_find_adapter(INTG_ESDI_ID, 0)) != MCA_NOTFOUND) {
298 adapterID = INTG_ESDI_ID;
299 printk("%s: integrated ESDI adapter found in slot %d\n",
300 DEVICE_NAME, slot+1);
301#ifndef MODULE
302 mca_set_adapter_name(slot, "PS/2 Integrated ESDI");
303#endif
304 } else if ((slot = mca_find_adapter(NRML_ESDI_ID, 0)) != -1) {
305 adapterID = NRML_ESDI_ID;
306 printk("%s: normal ESDI adapter found in slot %d\n",
307 DEVICE_NAME, slot+1);
308 mca_set_adapter_name(slot, "PS/2 ESDI");
309 } else {
310 return -ENODEV;
311 }
312
313 ps2esdi_slot = slot;
314 mca_mark_as_used(slot);
315 mca_set_adapter_procfn(slot, (MCA_ProcFn) ps2esdi_getinfo, NULL);
316
317 /* Found the slot - read the POS register 2 to get the necessary
318 configuration and status information. POS register 2 has the
319 following information :
320 Bit Function
321 7 reserved = 0
322 6 arbitration method
323 0 - fairness enabled
324 1 - fairness disabled, linear priority assignment
325 5-2 arbitration level
326 1 alternate address
327 1 alternate address
328 0 - use addresses 0x3510 - 0x3517
329 0 adapter enable
330 */
331
332 status = mca_read_stored_pos(slot, 2);
333 /* is it enabled ? */
334 if (!(status & STATUS_ENABLED)) {
335 printk("%s: ESDI adapter disabled\n", DEVICE_NAME);
336 error = -ENODEV;
337 goto err_out1;
338 }
339 /* try to grab IRQ, and try to grab a slow IRQ if it fails, so we can
340 share with the SCSI driver */
341 if (request_irq(PS2ESDI_IRQ, ps2esdi_interrupt_handler,
342 IRQF_DISABLED | IRQF_SHARED, "PS/2 ESDI", &ps2esdi_gendisk)
343 && request_irq(PS2ESDI_IRQ, ps2esdi_interrupt_handler,
344 IRQF_SHARED, "PS/2 ESDI", &ps2esdi_gendisk)
345 ) {
346 printk("%s: Unable to get IRQ %d\n", DEVICE_NAME, PS2ESDI_IRQ);
347 error = -EBUSY;
348 goto err_out1;
349 }
350 if (status & STATUS_ALTERNATE)
351 io_base = ALT_IO_BASE;
352 else
353 io_base = PRIMARY_IO_BASE;
354
355 if (!request_region(io_base, 4, "ed")) {
356 printk(KERN_WARNING"Unable to request region 0x%x\n", io_base);
357 error = -EBUSY;
358 goto err_out2;
359 }
360 /* get the dma arbitration level */
361 dma_arb_level = (status >> 2) & 0xf;
362
363 /* BA */
364 printk("%s: DMA arbitration level : %d\n",
365 DEVICE_NAME, dma_arb_level);
366
367 LITE_ON;
368 current_int_handler = ps2esdi_initial_reset_int_handler;
369 reset_ctrl();
370 reset_status = 0;
371 reset_start = jiffies;
372 while (!reset_status) {
373 init_timer(&esdi_timer);
374 esdi_timer.expires = jiffies + HZ;
375 esdi_timer.data = 0;
376 add_timer(&esdi_timer);
377 sleep_on(&ps2esdi_int);
378 }
379 reset_end = jiffies;
380 LITE_OFF;
381 printk("%s: reset interrupt after %d jiffies, %u.%02u secs\n",
382 DEVICE_NAME, reset_end - reset_start, (reset_end - reset_start) / HZ,
383 (reset_end - reset_start) % HZ);
384
385
386 /* Integrated ESDI Disk and Controller has only one drive! */
387 if (adapterID == INTG_ESDI_ID) {/* if not "normal" PS2 ESDI adapter */
388 ps2esdi_drives = 1; /* then we have only one physical disk! */ intg_esdi = 1;
389 }
390
391
392
393 /* finally this part sets up some global data structures etc. */
394
395 ps2esdi_get_device_cfg();
396
397 /* some annoyance in the above routine returns TWO drives?
398 Is something else happining in the background?
399 Regaurdless we fix the # of drives again. AJK */
400 /* Integrated ESDI Disk and Controller has only one drive! */
401 if (adapterID == INTG_ESDI_ID) /* if not "normal" PS2 ESDI adapter */
402 ps2esdi_drives = 1; /* Not three or two, ONE DAMNIT! */
403
404 current_int_handler = ps2esdi_normal_interrupt_handler;
405
406 if (request_dma(dma_arb_level, "ed") !=0) {
407 printk(KERN_WARNING "PS2ESDI: Can't request dma-channel %d\n"
408 ,(int) dma_arb_level);
409 error = -EBUSY;
410 goto err_out3;
411 }
412 blk_queue_max_sectors(ps2esdi_queue, 128);
413
414 error = -ENOMEM;
415 for (i = 0; i < ps2esdi_drives; i++) {
416 struct gendisk *disk = alloc_disk(64);
417 if (!disk)
418 goto err_out4;
419 disk->major = PS2ESDI_MAJOR;
420 disk->first_minor = i<<6;
421 sprintf(disk->disk_name, "ed%c", 'a'+i);
422 disk->fops = &ps2esdi_fops;
423 ps2esdi_gendisk[i] = disk;
424 }
425
426 for (i = 0; i < ps2esdi_drives; i++) {
427 struct gendisk *disk = ps2esdi_gendisk[i];
428 set_capacity(disk, ps2esdi_info[i].head * ps2esdi_info[i].sect *
429 ps2esdi_info[i].cyl);
430 disk->queue = ps2esdi_queue;
431 disk->private_data = &ps2esdi_info[i];
432 add_disk(disk);
433 }
434 return 0;
435err_out4:
436 while (i--)
437 put_disk(ps2esdi_gendisk[i]);
438err_out3:
439 release_region(io_base, 4);
440err_out2:
441 free_irq(PS2ESDI_IRQ, &ps2esdi_gendisk);
442err_out1:
443 if(ps2esdi_slot) {
444 mca_mark_as_unused(ps2esdi_slot);
445 mca_set_adapter_procfn(ps2esdi_slot, NULL, NULL);
446 }
447 return error;
448}
449
450static void __init ps2esdi_get_device_cfg(void)
451{
452 u_short cmd_blk[TYPE_0_CMD_BLK_LENGTH];
453
454 /*BA */ printk("%s: Drive 0\n", DEVICE_NAME);
455 current_int_handler = ps2esdi_geometry_int_handler;
456 cmd_blk[0] = CMD_GET_DEV_CONFIG | 0x600;
457 cmd_blk[1] = 0;
458 no_int_yet = TRUE;
459 ps2esdi_out_cmd_blk(cmd_blk);
460 if (no_int_yet)
461 sleep_on(&ps2esdi_int);
462
463 if (ps2esdi_drives > 1) {
464 printk("%s: Drive 1\n", DEVICE_NAME); /*BA */
465 cmd_blk[0] = CMD_GET_DEV_CONFIG | (1 << 5) | 0x600;
466 cmd_blk[1] = 0;
467 no_int_yet = TRUE;
468 ps2esdi_out_cmd_blk(cmd_blk);
469 if (no_int_yet)
470 sleep_on(&ps2esdi_int);
471 } /* if second physical drive is present */
472 return;
473}
474
475/* strategy routine that handles most of the IO requests */
476static void do_ps2esdi_request(struct request_queue * q)
477{
478 struct request *req;
479 /* since, this routine is called with interrupts cleared - they
480 must be before it finishes */
481
482 req = elv_next_request(q);
483 if (!req)
484 return;
485
486#if 0
487 printk("%s:got request. device : %s command : %d sector : %ld count : %ld, buffer: %p\n",
488 DEVICE_NAME,
489 req->rq_disk->disk_name,
490 req->cmd, req->sector,
491 req->current_nr_sectors, req->buffer);
492#endif
493
494 /* check for above 16Mb dmas */
495 if (isa_virt_to_bus(req->buffer + req->current_nr_sectors * 512) > 16 * MB) {
496 printk("%s: DMA above 16MB not supported\n", DEVICE_NAME);
497 end_request(req, FAIL);
498 return;
499 }
500
501 if (req->sector+req->current_nr_sectors > get_capacity(req->rq_disk)) {
502 printk("Grrr. error. ps2esdi_drives: %d, %llu %llu\n",
503 ps2esdi_drives, req->sector,
504 (unsigned long long)get_capacity(req->rq_disk));
505 end_request(req, FAIL);
506 return;
507 }
508
509 switch (rq_data_dir(req)) {
510 case READ:
511 ps2esdi_readwrite(READ, req);
512 break;
513 case WRITE:
514 ps2esdi_readwrite(WRITE, req);
515 break;
516 default:
517 printk("%s: Unknown command\n", req->rq_disk->disk_name);
518 end_request(req, FAIL);
519 break;
520 } /* handle different commands */
521} /* main strategy routine */
522
523/* resets the ESDI adapter */
524static void reset_ctrl(void)
525{
526
527 u_long expire;
528 u_short status;
529
530 /* enable interrupts on the controller */
531 status = inb(ESDI_INTRPT);
532 outb((status & 0xe0) | ATT_EOI, ESDI_ATTN); /* to be sure we don't have
533 any interrupt pending... */
534 outb_p(CTRL_ENABLE_INTR, ESDI_CONTROL);
535
536 /* read the ESDI status port - if the controller is not busy,
537 simply do a soft reset (fast) - otherwise we'll have to do a
538 hard (slow) reset. */
539 if (!(inb_p(ESDI_STATUS) & STATUS_BUSY)) {
540 /*BA */ printk("%s: soft reset...\n", DEVICE_NAME);
541 outb_p(CTRL_SOFT_RESET, ESDI_ATTN);
542 }
543 /* soft reset */
544 else {
545 /*BA */
546 printk("%s: hard reset...\n", DEVICE_NAME);
547 outb_p(CTRL_HARD_RESET, ESDI_CONTROL);
548 expire = jiffies + 2*HZ;
549 while (time_before(jiffies, expire));
550 outb_p(1, ESDI_CONTROL);
551 } /* hard reset */
552
553
554} /* reset the controller */
555
556/* called by the strategy routine to handle read and write requests */
557static void ps2esdi_readwrite(int cmd, struct request *req)
558{
559 struct ps2esdi_i_struct *p = req->rq_disk->private_data;
560 unsigned block = req->sector;
561 unsigned count = req->current_nr_sectors;
562 int drive = p - ps2esdi_info;
563 u_short track, head, cylinder, sector;
564 u_short cmd_blk[TYPE_1_CMD_BLK_LENGTH];
565
566 /* do some relevant arithmatic */
567 track = block / p->sect;
568 head = track % p->head;
569 cylinder = track / p->head;
570 sector = block % p->sect;
571
572#if 0
573 printk("%s: cyl=%d head=%d sect=%d\n", DEVICE_NAME, cylinder, head, sector);
574#endif
575 /* call the routine that actually fills out a command block */
576 ps2esdi_fill_cmd_block
577 (cmd_blk,
578 (cmd == READ) ? CMD_READ : CMD_WRITE,
579 cylinder, head, sector, count, drive);
580
581 /* send the command block to the controller */
582 current_req = req;
583 spin_unlock_irq(&ps2esdi_lock);
584 if (ps2esdi_out_cmd_blk(cmd_blk)) {
585 spin_lock_irq(&ps2esdi_lock);
586 printk("%s: Controller failed\n", DEVICE_NAME);
587 if ((++req->errors) >= MAX_RETRIES)
588 end_request(req, FAIL);
589 }
590 /* check for failure to put out the command block */
591 else {
592 spin_lock_irq(&ps2esdi_lock);
593#if 0
594 printk("%s: waiting for xfer\n", DEVICE_NAME);
595#endif
596 /* turn disk lights on */
597 LITE_ON;
598 }
599
600} /* ps2esdi_readwrite */
601
602/* fill out the command block */
603static void ps2esdi_fill_cmd_block(u_short * cmd_blk, u_short cmd,
604 u_short cyl, u_short head, u_short sector, u_short length, u_char drive)
605{
606
607 cmd_blk[0] = (drive << 5) | cmd;
608 cmd_blk[1] = length;
609 cmd_blk[2] = ((cyl & 0x1f) << 11) | (head << 5) | sector;
610 cmd_blk[3] = (cyl & 0x3E0) >> 5;
611
612} /* fill out the command block */
613
614/* write a command block to the controller */
615static int ps2esdi_out_cmd_blk(u_short * cmd_blk)
616{
617
618 int i;
619 unsigned long jif;
620 u_char status;
621
622 /* enable interrupts */
623 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
624
625 /* do not write to the controller, if it is busy */
626 for (jif = jiffies + ESDI_STAT_TIMEOUT;
627 time_after(jif, jiffies) &&
628 (inb(ESDI_STATUS) & STATUS_BUSY); )
629 ;
630
631#if 0
632 printk("%s: i(1)=%ld\n", DEVICE_NAME, jif);
633#endif
634
635 /* if device is still busy - then just time out */
636 if (inb(ESDI_STATUS) & STATUS_BUSY) {
637 printk("%s: ps2esdi_out_cmd timed out (1)\n", DEVICE_NAME);
638 return ERROR;
639 } /* timeout ??? */
640 /* Set up the attention register in the controller */
641 outb(((*cmd_blk) & 0xE0) | 1, ESDI_ATTN);
642
643#if 0
644 printk("%s: sending %d words to controller\n", DEVICE_NAME, (((*cmd_blk) >> 14) + 1) << 1);
645#endif
646
647 /* one by one send each word out */
648 for (i = (((*cmd_blk) >> 14) + 1) << 1; i; i--) {
649 status = inb(ESDI_STATUS);
650 for (jif = jiffies + ESDI_STAT_TIMEOUT;
651 time_after(jif, jiffies) && (status & STATUS_BUSY) &&
652 (status & STATUS_CMD_INF); status = inb(ESDI_STATUS));
653 if ((status & (STATUS_BUSY | STATUS_CMD_INF)) == STATUS_BUSY) {
654#if 0
655 printk("%s: sending %04X\n", DEVICE_NAME, *cmd_blk);
656#endif
657 outw(*cmd_blk++, ESDI_CMD_INT);
658 } else {
659 printk("%s: ps2esdi_out_cmd timed out while sending command (status=%02X)\n",
660 DEVICE_NAME, status);
661 return ERROR;
662 }
663 } /* send all words out */
664 return OK;
665} /* send out the commands */
666
667
668/* prepare for dma - do all the necessary setup */
669static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode)
670{
671 unsigned long flags = claim_dma_lock();
672
673 mca_disable_dma(dma_arb_level);
674
675 mca_set_dma_addr(dma_arb_level, isa_virt_to_bus(buffer));
676
677 mca_set_dma_count(dma_arb_level, length * 512 / 2);
678
679 mca_set_dma_mode(dma_arb_level, dma_xmode);
680
681 mca_enable_dma(dma_arb_level);
682
683 release_dma_lock(flags);
684
685} /* prepare for dma */
686
687
688
689static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id)
690{
691 u_int int_ret_code;
692
693 if (inb(ESDI_STATUS) & STATUS_INTR) {
694 int_ret_code = inb(ESDI_INTRPT);
695 if (current_int_handler) {
696 /* Disable adapter interrupts till processing is finished */
697 outb(CTRL_DISABLE_INTR, ESDI_CONTROL);
698 current_int_handler(int_ret_code);
699 } else
700 printk("%s: help ! No interrupt handler.\n", DEVICE_NAME);
701 } else {
702 return IRQ_NONE;
703 }
704 return IRQ_HANDLED;
705}
706
707static void ps2esdi_initial_reset_int_handler(u_int int_ret_code)
708{
709
710 switch (int_ret_code & 0xf) {
711 case INT_RESET:
712 /*BA */
713 printk("%s: initial reset completed.\n", DEVICE_NAME);
714 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
715 wake_up(&ps2esdi_int);
716 break;
717 case INT_ATTN_ERROR:
718 printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME,
719 int_ret_code);
720 printk("%s: status: %02x\n", DEVICE_NAME, inb(ESDI_STATUS));
721 break;
722 default:
723 printk("%s: initial reset handler received interrupt: %02X\n",
724 DEVICE_NAME, int_ret_code);
725 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
726 break;
727 }
728 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
729}
730
731
732static void ps2esdi_geometry_int_handler(u_int int_ret_code)
733{
734 u_int status, drive_num;
735 unsigned long rba;
736 int i;
737
738 drive_num = int_ret_code >> 5;
739 switch (int_ret_code & 0xf) {
740 case INT_CMD_COMPLETE:
741 for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--);
742 if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) {
743 printk("%s: timeout reading status word\n", DEVICE_NAME);
744 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
745 break;
746 }
747 status = inw(ESDI_STT_INT);
748 if ((status & 0x1F) == CMD_GET_DEV_CONFIG) {
749#define REPLY_WORDS 5 /* we already read word 0 */
750 u_short reply[REPLY_WORDS];
751
752 if (ps2esdi_read_status_words((status >> 8) - 1, REPLY_WORDS, reply)) {
753 /*BA */
754 printk("%s: Device Configuration Status for drive %u\n",
755 DEVICE_NAME, drive_num);
756
757 printk("%s: Spares/cyls: %u", DEVICE_NAME, reply[0] >> 8);
758
759 printk
760 ("Config bits: %s%s%s%s%s\n",
761 (reply[0] & CONFIG_IS) ? "Invalid Secondary, " : "",
762 ((reply[0] & CONFIG_ZD) && !(reply[0] & CONFIG_IS))
763 ? "Zero Defect, " : "Defects Present, ",
764 (reply[0] & CONFIG_SF) ? "Skewed Format, " : "",
765 (reply[0] & CONFIG_FR) ? "Removable, " : "Non-Removable, ",
766 (reply[0] & CONFIG_RT) ? "No Retries" : "Retries");
767
768 rba = reply[1] | ((unsigned long) reply[2] << 16);
769 printk("%s: Number of RBA's: %lu\n", DEVICE_NAME, rba);
770
771 printk("%s: Physical number of cylinders: %u, Sectors/Track: %u, Heads: %u\n",
772 DEVICE_NAME, reply[3], reply[4] >> 8, reply[4] & 0xff);
773
774 if (!ps2esdi_info[drive_num].head) {
775 ps2esdi_info[drive_num].head = 64;
776 ps2esdi_info[drive_num].sect = 32;
777 ps2esdi_info[drive_num].cyl = rba / (64 * 32);
778 ps2esdi_info[drive_num].wpcom = 0;
779 ps2esdi_info[drive_num].lzone = ps2esdi_info[drive_num].cyl;
780 ps2esdi_info[drive_num].ctl = 8;
781 if (tp720esdi) { /* store the retrieved parameters */
782 ps2esdi_info[0].head = reply[4] & 0Xff;
783 ps2esdi_info[0].sect = reply[4] >> 8;
784 ps2esdi_info[0].cyl = reply[3];
785 ps2esdi_info[0].wpcom = 0;
786 ps2esdi_info[0].lzone = reply[3];
787 } else {
788 if (!intg_esdi)
789 ps2esdi_drives++;
790 }
791 }
792#ifdef OBSOLETE
793 if (!ps2esdi_info[drive_num].head) {
794 ps2esdi_info[drive_num].head = reply[4] & 0Xff;
795 ps2esdi_info[drive_num].sect = reply[4] >> 8;
796 ps2esdi_info[drive_num].cyl = reply[3];
797 ps2esdi_info[drive_num].wpcom = 0;
798 ps2esdi_info[drive_num].lzone = reply[3];
799 if (tp720esdi) { /* store the retrieved parameters */
800 ps2esdi_info[0].head = reply[4] & 0Xff;
801 ps2esdi_info[0].sect = reply[4] >> 8;
802 ps2esdi_info[0].cyl = reply[3];
803 ps2esdi_info[0].wpcom = 0;
804 ps2esdi_info[0].lzone = reply[3];
805 } else {
806 ps2esdi_drives++;
807 }
808 }
809#endif
810
811 } else
812 printk("%s: failed while getting device config\n", DEVICE_NAME);
813#undef REPLY_WORDS
814 } else
815 printk("%s: command %02X unknown by geometry handler\n",
816 DEVICE_NAME, status & 0x1f);
817
818 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
819 break;
820
821 case INT_ATTN_ERROR:
822 printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME,
823 int_ret_code);
824 printk("%s: Device not available\n", DEVICE_NAME);
825 break;
826 case INT_CMD_ECC:
827 case INT_CMD_RETRY:
828 case INT_CMD_ECC_RETRY:
829 case INT_CMD_WARNING:
830 case INT_CMD_ABORT:
831 case INT_CMD_FAILED:
832 case INT_DMA_ERR:
833 case INT_CMD_BLK_ERR:
834 /*BA */ printk("%s: Whaa. Error occurred...\n", DEVICE_NAME);
835 dump_cmd_complete_status(int_ret_code);
836 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
837 break;
838 default:
839 printk("%s: Unknown interrupt reason: %02X\n",
840 DEVICE_NAME, int_ret_code & 0xf);
841 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
842 break;
843 }
844
845 wake_up(&ps2esdi_int);
846 no_int_yet = FALSE;
847 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
848
849}
850
851static void ps2esdi_normal_interrupt_handler(u_int int_ret_code)
852{
853 unsigned long flags;
854 u_int status;
855 u_int ending;
856 int i;
857
858 switch (int_ret_code & 0x0f) {
859 case INT_TRANSFER_REQ:
860 ps2esdi_prep_dma(current_req->buffer,
861 current_req->current_nr_sectors,
862 (rq_data_dir(current_req) == READ)
863 ? MCA_DMA_MODE_16 | MCA_DMA_MODE_WRITE | MCA_DMA_MODE_XFER
864 : MCA_DMA_MODE_16 | MCA_DMA_MODE_READ);
865 outb(CTRL_ENABLE_DMA | CTRL_ENABLE_INTR, ESDI_CONTROL);
866 ending = -1;
867 break;
868
869 case INT_ATTN_ERROR:
870 printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME,
871 int_ret_code);
872 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
873 ending = FAIL;
874 break;
875
876 case INT_CMD_COMPLETE:
877 for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--);
878 if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) {
879 printk("%s: timeout reading status word\n", DEVICE_NAME);
880 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
881 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
882 if ((++current_req->errors) >= MAX_RETRIES)
883 ending = FAIL;
884 else
885 ending = -1;
886 break;
887 }
888 status = inw(ESDI_STT_INT);
889 switch (status & 0x1F) {
890 case (CMD_READ & 0xff):
891 case (CMD_WRITE & 0xff):
892 LITE_OFF;
893 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
894 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
895 ending = SUCCES;
896 break;
897 default:
898 printk("%s: interrupt for unknown command %02X\n",
899 DEVICE_NAME, status & 0x1f);
900 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
901 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
902 ending = -1;
903 break;
904 }
905 break;
906 case INT_CMD_ECC:
907 case INT_CMD_RETRY:
908 case INT_CMD_ECC_RETRY:
909 LITE_OFF;
910 dump_cmd_complete_status(int_ret_code);
911 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
912 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
913 ending = SUCCES;
914 break;
915 case INT_CMD_WARNING:
916 case INT_CMD_ABORT:
917 case INT_CMD_FAILED:
918 case INT_DMA_ERR:
919 LITE_OFF;
920 dump_cmd_complete_status(int_ret_code);
921 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
922 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
923 if ((++current_req->errors) >= MAX_RETRIES)
924 ending = FAIL;
925 else
926 ending = -1;
927 break;
928
929 case INT_CMD_BLK_ERR:
930 dump_cmd_complete_status(int_ret_code);
931 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
932 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
933 ending = FAIL;
934 break;
935
936 case INT_CMD_FORMAT:
937 printk("%s: huh ? Who issued this format command ?\n"
938 ,DEVICE_NAME);
939 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
940 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
941 ending = -1;
942 break;
943
944 case INT_RESET:
945 /* BA printk("%s: reset completed.\n", DEVICE_NAME) */ ;
946 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
947 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
948 ending = -1;
949 break;
950
951 default:
952 printk("%s: Unknown interrupt reason: %02X\n",
953 DEVICE_NAME, int_ret_code & 0xf);
954 outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN);
955 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
956 ending = -1;
957 break;
958 }
959 if(ending != -1) {
960 spin_lock_irqsave(&ps2esdi_lock, flags);
961 end_request(current_req, ending);
962 current_req = NULL;
963 do_ps2esdi_request(ps2esdi_queue);
964 spin_unlock_irqrestore(&ps2esdi_lock, flags);
965 }
966} /* handle interrupts */
967
968
969
970static int ps2esdi_read_status_words(int num_words,
971 int max_words,
972 u_short * buffer)
973{
974 int i;
975
976 for (; max_words && num_words; max_words--, num_words--, buffer++) {
977 for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--);
978 if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) {
979 printk("%s: timeout reading status word\n", DEVICE_NAME);
980 return FAIL;
981 }
982 *buffer = inw(ESDI_STT_INT);
983 }
984 return SUCCES;
985}
986
987
988
989
990static void dump_cmd_complete_status(u_int int_ret_code)
991{
992#define WAIT_FOR_STATUS \
993 for(i=ESDI_TIMEOUT;i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL);i--); \
994 if(!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) { \
995 printk("%s: timeout reading status word\n",DEVICE_NAME); \
996 return; \
997 }
998
999 int i, word_count;
1000 u_short stat_word;
1001 u_long rba;
1002
1003 printk("%s: Device: %u, interrupt ID: %02X\n",
1004 DEVICE_NAME, int_ret_code >> 5,
1005 int_ret_code & 0xf);
1006
1007 WAIT_FOR_STATUS;
1008 stat_word = inw(ESDI_STT_INT);
1009 word_count = (stat_word >> 8) - 1;
1010 printk("%s: %u status words, command: %02X\n", DEVICE_NAME, word_count,
1011 stat_word & 0xff);
1012
1013 if (word_count--) {
1014 WAIT_FOR_STATUS;
1015 stat_word = inw(ESDI_STT_INT);
1016 printk("%s: command status code: %02X, command error code: %02X\n",
1017 DEVICE_NAME, stat_word >> 8, stat_word & 0xff);
1018 }
1019 if (word_count--) {
1020 WAIT_FOR_STATUS;
1021 stat_word = inw(ESDI_STT_INT);
1022 printk("%s: device error code: %s%s%s%s%s,%02X\n", DEVICE_NAME,
1023 (stat_word & 0x1000) ? "Ready, " : "Not Ready, ",
1024 (stat_word & 0x0800) ? "Selected, " : "Not Selected, ",
1025 (stat_word & 0x0400) ? "Write Fault, " : "",
1026 (stat_word & 0x0200) ? "Track 0, " : "",
1027 (stat_word & 0x0100) ? "Seek or command complete, " : "",
1028 stat_word >> 8);
1029 }
1030 if (word_count--) {
1031 WAIT_FOR_STATUS;
1032 stat_word = inw(ESDI_STT_INT);
1033 printk("%s: Blocks to do: %u", DEVICE_NAME, stat_word);
1034 }
1035 if (word_count -= 2) {
1036 WAIT_FOR_STATUS;
1037 rba = inw(ESDI_STT_INT);
1038 WAIT_FOR_STATUS;
1039 rba |= inw(ESDI_STT_INT) << 16;
1040 printk(", Last Cyl: %u Head: %u Sector: %u\n",
1041 (u_short) ((rba & 0x1ff80000) >> 11),
1042 (u_short) ((rba & 0x7E0) >> 5), (u_short) (rba & 0x1f));
1043 } else
1044 printk("\n");
1045
1046 if (word_count--) {
1047 WAIT_FOR_STATUS;
1048 stat_word = inw(ESDI_STT_INT);
1049 printk("%s: Blocks required ECC: %u", DEVICE_NAME, stat_word);
1050 }
1051 printk("\n");
1052
1053#undef WAIT_FOR_STATUS
1054
1055}
1056
1057static int ps2esdi_getgeo(struct block_device *bdev, struct hd_geometry *geo)
1058{
1059 struct ps2esdi_i_struct *p = bdev->bd_disk->private_data;
1060
1061 geo->heads = p->head;
1062 geo->sectors = p->sect;
1063 geo->cylinders = p->cyl;
1064 return 0;
1065}
1066
1067static void ps2esdi_reset_timer(unsigned long unused)
1068{
1069
1070 int status;
1071
1072 status = inb(ESDI_INTRPT);
1073 if ((status & 0xf) == INT_RESET) {
1074 outb((status & 0xe0) | ATT_EOI, ESDI_ATTN);
1075 outb(CTRL_ENABLE_INTR, ESDI_CONTROL);
1076 reset_status = 1;
1077 }
1078 wake_up(&ps2esdi_int);
1079}
diff --git a/drivers/block/viodasd.c b/drivers/block/viodasd.c
index 9e61fca46117..41ca721d2523 100644
--- a/drivers/block/viodasd.c
+++ b/drivers/block/viodasd.c
@@ -528,8 +528,7 @@ static int block_event_to_scatterlist(const struct vioblocklpevent *bevent,
528 numsg = VIOMAXBLOCKDMA; 528 numsg = VIOMAXBLOCKDMA;
529 529
530 *total_len = 0; 530 *total_len = 0;
531 memset(sg, 0, sizeof(sg[0]) * VIOMAXBLOCKDMA); 531 sg_init_table(sg, VIOMAXBLOCKDMA);
532
533 for (i = 0; (i < numsg) && (rw_data->dma_info[i].len > 0); ++i) { 532 for (i = 0; (i < numsg) && (rw_data->dma_info[i].len > 0); ++i) {
534 sg_dma_address(&sg[i]) = rw_data->dma_info[i].token; 533 sg_dma_address(&sg[i]) = rw_data->dma_info[i].token;
535 sg_dma_len(&sg[i]) = rw_data->dma_info[i].len; 534 sg_dma_len(&sg[i]) = rw_data->dma_info[i].len;
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 3b1a68d6eddb..0cfbe8c594a5 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -238,6 +238,7 @@ static int virtblk_probe(struct virtio_device *vdev)
238 vblk->disk->first_minor = index_to_minor(index); 238 vblk->disk->first_minor = index_to_minor(index);
239 vblk->disk->private_data = vblk; 239 vblk->disk->private_data = vblk;
240 vblk->disk->fops = &virtblk_fops; 240 vblk->disk->fops = &virtblk_fops;
241 vblk->disk->driverfs_dev = &vdev->dev;
241 index++; 242 index++;
242 243
243 /* If barriers are supported, tell block layer that queue is ordered */ 244 /* If barriers are supported, tell block layer that queue is ordered */
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
index f16c94cbf488..8b884f87d8b7 100644
--- a/drivers/bluetooth/hci_usb.c
+++ b/drivers/bluetooth/hci_usb.c
@@ -149,6 +149,9 @@ static struct usb_device_id blacklist_ids[] = {
149 { USB_DEVICE(0x0400, 0x0807), .driver_info = HCI_BROKEN_ISOC }, 149 { USB_DEVICE(0x0400, 0x0807), .driver_info = HCI_BROKEN_ISOC },
150 { USB_DEVICE(0x0400, 0x080a), .driver_info = HCI_BROKEN_ISOC }, 150 { USB_DEVICE(0x0400, 0x080a), .driver_info = HCI_BROKEN_ISOC },
151 151
152 /* CONWISE Technology based adapters with buggy SCO support */
153 { USB_DEVICE(0x0e5e, 0x6622), .driver_info = HCI_BROKEN_ISOC },
154
152 /* Belkin F8T012 and F8T013 devices */ 155 /* Belkin F8T012 and F8T013 devices */
153 { USB_DEVICE(0x050d, 0x0012), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU }, 156 { USB_DEVICE(0x050d, 0x0012), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
154 { USB_DEVICE(0x050d, 0x0013), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU }, 157 { USB_DEVICE(0x050d, 0x0013), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
index d352dbb4ccf7..141f4dfa0a11 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
@@ -35,42 +35,23 @@
35 35
36# define ATI_PCIGART_PAGE_SIZE 4096 /**< PCI GART page size */ 36# define ATI_PCIGART_PAGE_SIZE 4096 /**< PCI GART page size */
37 37
38static void *drm_ati_alloc_pcigart_table(int order) 38static int drm_ati_alloc_pcigart_table(struct drm_device *dev,
39 struct drm_ati_pcigart_info *gart_info)
39{ 40{
40 unsigned long address; 41 gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size,
41 struct page *page; 42 PAGE_SIZE,
42 int i; 43 gart_info->table_mask);
43 44 if (gart_info->table_handle == NULL)
44 DRM_DEBUG("%d order\n", order); 45 return -ENOMEM;
45
46 address = __get_free_pages(GFP_KERNEL | __GFP_COMP,
47 order);
48 if (address == 0UL) {
49 return NULL;
50 }
51
52 page = virt_to_page(address);
53
54 for (i = 0; i < order; i++, page++)
55 SetPageReserved(page);
56 46
57 DRM_DEBUG("returning 0x%08lx\n", address); 47 return 0;
58 return (void *)address;
59} 48}
60 49
61static void drm_ati_free_pcigart_table(void *address, int order) 50static void drm_ati_free_pcigart_table(struct drm_device *dev,
51 struct drm_ati_pcigart_info *gart_info)
62{ 52{
63 struct page *page; 53 drm_pci_free(dev, gart_info->table_handle);
64 int i; 54 gart_info->table_handle = NULL;
65 int num_pages = 1 << order;
66 DRM_DEBUG("\n");
67
68 page = virt_to_page((unsigned long)address);
69
70 for (i = 0; i < num_pages; i++, page++)
71 ClearPageReserved(page);
72
73 free_pages((unsigned long)address, order);
74} 55}
75 56
76int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) 57int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info)
@@ -78,8 +59,7 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
78 struct drm_sg_mem *entry = dev->sg; 59 struct drm_sg_mem *entry = dev->sg;
79 unsigned long pages; 60 unsigned long pages;
80 int i; 61 int i;
81 int order; 62 int max_pages;
82 int num_pages, max_pages;
83 63
84 /* we need to support large memory configurations */ 64 /* we need to support large memory configurations */
85 if (!entry) { 65 if (!entry) {
@@ -87,15 +67,7 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
87 return 0; 67 return 0;
88 } 68 }
89 69
90 order = drm_order((gart_info->table_size + (PAGE_SIZE-1)) / PAGE_SIZE);
91 num_pages = 1 << order;
92
93 if (gart_info->bus_addr) { 70 if (gart_info->bus_addr) {
94 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) {
95 pci_unmap_single(dev->pdev, gart_info->bus_addr,
96 num_pages * PAGE_SIZE,
97 PCI_DMA_TODEVICE);
98 }
99 71
100 max_pages = (gart_info->table_size / sizeof(u32)); 72 max_pages = (gart_info->table_size / sizeof(u32));
101 pages = (entry->pages <= max_pages) 73 pages = (entry->pages <= max_pages)
@@ -112,10 +84,9 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
112 gart_info->bus_addr = 0; 84 gart_info->bus_addr = 0;
113 } 85 }
114 86
115 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN 87 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN &&
116 && gart_info->addr) { 88 gart_info->table_handle) {
117 drm_ati_free_pcigart_table(gart_info->addr, order); 89 drm_ati_free_pcigart_table(dev, gart_info);
118 gart_info->addr = NULL;
119 } 90 }
120 91
121 return 1; 92 return 1;
@@ -127,11 +98,10 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
127 struct drm_sg_mem *entry = dev->sg; 98 struct drm_sg_mem *entry = dev->sg;
128 void *address = NULL; 99 void *address = NULL;
129 unsigned long pages; 100 unsigned long pages;
130 u32 *pci_gart, page_base, bus_address = 0; 101 u32 *pci_gart, page_base;
102 dma_addr_t bus_address = 0;
131 int i, j, ret = 0; 103 int i, j, ret = 0;
132 int order;
133 int max_pages; 104 int max_pages;
134 int num_pages;
135 105
136 if (!entry) { 106 if (!entry) {
137 DRM_ERROR("no scatter/gather memory!\n"); 107 DRM_ERROR("no scatter/gather memory!\n");
@@ -141,36 +111,20 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
141 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { 111 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) {
142 DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); 112 DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n");
143 113
144 order = drm_order((gart_info->table_size + 114 ret = drm_ati_alloc_pcigart_table(dev, gart_info);
145 (PAGE_SIZE-1)) / PAGE_SIZE); 115 if (ret) {
146 num_pages = 1 << order;
147 address = drm_ati_alloc_pcigart_table(order);
148 if (!address) {
149 DRM_ERROR("cannot allocate PCI GART page!\n"); 116 DRM_ERROR("cannot allocate PCI GART page!\n");
150 goto done; 117 goto done;
151 } 118 }
152 119
153 if (!dev->pdev) { 120 address = gart_info->table_handle->vaddr;
154 DRM_ERROR("PCI device unknown!\n"); 121 bus_address = gart_info->table_handle->busaddr;
155 goto done;
156 }
157
158 bus_address = pci_map_single(dev->pdev, address,
159 num_pages * PAGE_SIZE,
160 PCI_DMA_TODEVICE);
161 if (bus_address == 0) {
162 DRM_ERROR("unable to map PCIGART pages!\n");
163 order = drm_order((gart_info->table_size +
164 (PAGE_SIZE-1)) / PAGE_SIZE);
165 drm_ati_free_pcigart_table(address, order);
166 address = NULL;
167 goto done;
168 }
169 } else { 122 } else {
170 address = gart_info->addr; 123 address = gart_info->addr;
171 bus_address = gart_info->bus_addr; 124 bus_address = gart_info->bus_addr;
172 DRM_DEBUG("PCI: Gart Table: VRAM %08X mapped at %08lX\n", 125 DRM_DEBUG("PCI: Gart Table: VRAM %08LX mapped at %08lX\n",
173 bus_address, (unsigned long)address); 126 (unsigned long long)bus_address,
127 (unsigned long)address);
174 } 128 }
175 129
176 pci_gart = (u32 *) address; 130 pci_gart = (u32 *) address;
@@ -214,6 +168,12 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
214 } 168 }
215 } 169 }
216 170
171 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN)
172 dma_sync_single_for_device(&dev->pdev->dev,
173 bus_address,
174 max_pages * sizeof(u32),
175 PCI_DMA_TODEVICE);
176
217 ret = 1; 177 ret = 1;
218 178
219#if defined(__i386__) || defined(__x86_64__) 179#if defined(__i386__) || defined(__x86_64__)
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
index a6789f25009b..8ea9dd1717a9 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
@@ -54,6 +54,7 @@
54#include <linux/pci.h> 54#include <linux/pci.h>
55#include <linux/jiffies.h> 55#include <linux/jiffies.h>
56#include <linux/smp_lock.h> /* For (un)lock_kernel */ 56#include <linux/smp_lock.h> /* For (un)lock_kernel */
57#include <linux/dma-mapping.h>
57#include <linux/mm.h> 58#include <linux/mm.h>
58#include <linux/cdev.h> 59#include <linux/cdev.h>
59#include <linux/mutex.h> 60#include <linux/mutex.h>
@@ -551,6 +552,8 @@ struct drm_ati_pcigart_info {
551 int gart_reg_if; 552 int gart_reg_if;
552 void *addr; 553 void *addr;
553 dma_addr_t bus_addr; 554 dma_addr_t bus_addr;
555 dma_addr_t table_mask;
556 struct drm_dma_handle *table_handle;
554 drm_local_map_t mapping; 557 drm_local_map_t mapping;
555 int table_size; 558 int table_size;
556}; 559};
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c
index 3992f73299cc..f09d4b5002b0 100644
--- a/drivers/char/drm/drm_fops.c
+++ b/drivers/char/drm/drm_fops.c
@@ -326,6 +326,7 @@ int drm_release(struct inode *inode, struct file *filp)
326 struct drm_file *file_priv = filp->private_data; 326 struct drm_file *file_priv = filp->private_data;
327 struct drm_device *dev = file_priv->head->dev; 327 struct drm_device *dev = file_priv->head->dev;
328 int retcode = 0; 328 int retcode = 0;
329 unsigned long irqflags;
329 330
330 lock_kernel(); 331 lock_kernel();
331 332
@@ -357,9 +358,11 @@ int drm_release(struct inode *inode, struct file *filp)
357 */ 358 */
358 359
359 do{ 360 do{
360 spin_lock(&dev->lock.spinlock); 361 spin_lock_irqsave(&dev->lock.spinlock,
362 irqflags);
361 locked = dev->lock.idle_has_lock; 363 locked = dev->lock.idle_has_lock;
362 spin_unlock(&dev->lock.spinlock); 364 spin_unlock_irqrestore(&dev->lock.spinlock,
365 irqflags);
363 if (locked) 366 if (locked)
364 break; 367 break;
365 schedule(); 368 schedule();
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
index bea2a7d5b2b2..12dcdd1832f0 100644
--- a/drivers/char/drm/drm_lock.c
+++ b/drivers/char/drm/drm_lock.c
@@ -53,6 +53,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
53 DECLARE_WAITQUEUE(entry, current); 53 DECLARE_WAITQUEUE(entry, current);
54 struct drm_lock *lock = data; 54 struct drm_lock *lock = data;
55 int ret = 0; 55 int ret = 0;
56 unsigned long irqflags;
56 57
57 ++file_priv->lock_count; 58 ++file_priv->lock_count;
58 59
@@ -71,9 +72,9 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
71 return -EINVAL; 72 return -EINVAL;
72 73
73 add_wait_queue(&dev->lock.lock_queue, &entry); 74 add_wait_queue(&dev->lock.lock_queue, &entry);
74 spin_lock(&dev->lock.spinlock); 75 spin_lock_irqsave(&dev->lock.spinlock, irqflags);
75 dev->lock.user_waiters++; 76 dev->lock.user_waiters++;
76 spin_unlock(&dev->lock.spinlock); 77 spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
77 for (;;) { 78 for (;;) {
78 __set_current_state(TASK_INTERRUPTIBLE); 79 __set_current_state(TASK_INTERRUPTIBLE);
79 if (!dev->lock.hw_lock) { 80 if (!dev->lock.hw_lock) {
@@ -95,9 +96,9 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
95 break; 96 break;
96 } 97 }
97 } 98 }
98 spin_lock(&dev->lock.spinlock); 99 spin_lock_irqsave(&dev->lock.spinlock, irqflags);
99 dev->lock.user_waiters--; 100 dev->lock.user_waiters--;
100 spin_unlock(&dev->lock.spinlock); 101 spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
101 __set_current_state(TASK_RUNNING); 102 __set_current_state(TASK_RUNNING);
102 remove_wait_queue(&dev->lock.lock_queue, &entry); 103 remove_wait_queue(&dev->lock.lock_queue, &entry);
103 104
@@ -198,8 +199,9 @@ int drm_lock_take(struct drm_lock_data *lock_data,
198{ 199{
199 unsigned int old, new, prev; 200 unsigned int old, new, prev;
200 volatile unsigned int *lock = &lock_data->hw_lock->lock; 201 volatile unsigned int *lock = &lock_data->hw_lock->lock;
202 unsigned long irqflags;
201 203
202 spin_lock(&lock_data->spinlock); 204 spin_lock_irqsave(&lock_data->spinlock, irqflags);
203 do { 205 do {
204 old = *lock; 206 old = *lock;
205 if (old & _DRM_LOCK_HELD) 207 if (old & _DRM_LOCK_HELD)
@@ -211,7 +213,7 @@ int drm_lock_take(struct drm_lock_data *lock_data,
211 } 213 }
212 prev = cmpxchg(lock, old, new); 214 prev = cmpxchg(lock, old, new);
213 } while (prev != old); 215 } while (prev != old);
214 spin_unlock(&lock_data->spinlock); 216 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
215 217
216 if (_DRM_LOCKING_CONTEXT(old) == context) { 218 if (_DRM_LOCKING_CONTEXT(old) == context) {
217 if (old & _DRM_LOCK_HELD) { 219 if (old & _DRM_LOCK_HELD) {
@@ -272,15 +274,16 @@ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context)
272{ 274{
273 unsigned int old, new, prev; 275 unsigned int old, new, prev;
274 volatile unsigned int *lock = &lock_data->hw_lock->lock; 276 volatile unsigned int *lock = &lock_data->hw_lock->lock;
277 unsigned long irqflags;
275 278
276 spin_lock(&lock_data->spinlock); 279 spin_lock_irqsave(&lock_data->spinlock, irqflags);
277 if (lock_data->kernel_waiters != 0) { 280 if (lock_data->kernel_waiters != 0) {
278 drm_lock_transfer(lock_data, 0); 281 drm_lock_transfer(lock_data, 0);
279 lock_data->idle_has_lock = 1; 282 lock_data->idle_has_lock = 1;
280 spin_unlock(&lock_data->spinlock); 283 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
281 return 1; 284 return 1;
282 } 285 }
283 spin_unlock(&lock_data->spinlock); 286 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
284 287
285 do { 288 do {
286 old = *lock; 289 old = *lock;
@@ -344,19 +347,20 @@ static int drm_notifier(void *priv)
344void drm_idlelock_take(struct drm_lock_data *lock_data) 347void drm_idlelock_take(struct drm_lock_data *lock_data)
345{ 348{
346 int ret = 0; 349 int ret = 0;
350 unsigned long irqflags;
347 351
348 spin_lock(&lock_data->spinlock); 352 spin_lock_irqsave(&lock_data->spinlock, irqflags);
349 lock_data->kernel_waiters++; 353 lock_data->kernel_waiters++;
350 if (!lock_data->idle_has_lock) { 354 if (!lock_data->idle_has_lock) {
351 355
352 spin_unlock(&lock_data->spinlock); 356 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
353 ret = drm_lock_take(lock_data, DRM_KERNEL_CONTEXT); 357 ret = drm_lock_take(lock_data, DRM_KERNEL_CONTEXT);
354 spin_lock(&lock_data->spinlock); 358 spin_lock_irqsave(&lock_data->spinlock, irqflags);
355 359
356 if (ret == 1) 360 if (ret == 1)
357 lock_data->idle_has_lock = 1; 361 lock_data->idle_has_lock = 1;
358 } 362 }
359 spin_unlock(&lock_data->spinlock); 363 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
360} 364}
361EXPORT_SYMBOL(drm_idlelock_take); 365EXPORT_SYMBOL(drm_idlelock_take);
362 366
@@ -364,8 +368,9 @@ void drm_idlelock_release(struct drm_lock_data *lock_data)
364{ 368{
365 unsigned int old, prev; 369 unsigned int old, prev;
366 volatile unsigned int *lock = &lock_data->hw_lock->lock; 370 volatile unsigned int *lock = &lock_data->hw_lock->lock;
371 unsigned long irqflags;
367 372
368 spin_lock(&lock_data->spinlock); 373 spin_lock_irqsave(&lock_data->spinlock, irqflags);
369 if (--lock_data->kernel_waiters == 0) { 374 if (--lock_data->kernel_waiters == 0) {
370 if (lock_data->idle_has_lock) { 375 if (lock_data->idle_has_lock) {
371 do { 376 do {
@@ -376,7 +381,7 @@ void drm_idlelock_release(struct drm_lock_data *lock_data)
376 lock_data->idle_has_lock = 0; 381 lock_data->idle_has_lock = 0;
377 } 382 }
378 } 383 }
379 spin_unlock(&lock_data->spinlock); 384 spin_unlock_irqrestore(&lock_data->spinlock, irqflags);
380} 385}
381EXPORT_SYMBOL(drm_idlelock_release); 386EXPORT_SYMBOL(drm_idlelock_release);
382 387
diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h
index 715b361f0c2b..a6a499f97e22 100644
--- a/drivers/char/drm/drm_pciids.h
+++ b/drivers/char/drm/drm_pciids.h
@@ -205,9 +205,9 @@
205 {0x1002, 0x71D6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 205 {0x1002, 0x71D6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
206 {0x1002, 0x71DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \ 206 {0x1002, 0x71DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
207 {0x1002, 0x71DE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 207 {0x1002, 0x71DE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
208 {0x1002, 0x7200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \ 208 {0x1002, 0x7200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
209 {0x1002, 0x7210, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 209 {0x1002, 0x7210, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
210 {0x1002, 0x7211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 210 {0x1002, 0x7211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
211 {0x1002, 0x7240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ 211 {0x1002, 0x7240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
212 {0x1002, 0x7243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ 212 {0x1002, 0x7243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
213 {0x1002, 0x7244, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ 213 {0x1002, 0x7244, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
@@ -238,6 +238,7 @@
238 {0x1002, 0x7834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \ 238 {0x1002, 0x7834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \
239 {0x1002, 0x7835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 239 {0x1002, 0x7835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
240 {0x1002, 0x791e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ 240 {0x1002, 0x791e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
241 {0x1002, 0x791f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
241 {0, 0, 0} 242 {0, 0, 0}
242 243
243#define r128_PCI_IDS \ 244#define r128_PCI_IDS \
diff --git a/drivers/char/drm/drm_scatter.c b/drivers/char/drm/drm_scatter.c
index 26d8f675ed5d..b2b0f3d41714 100644
--- a/drivers/char/drm/drm_scatter.c
+++ b/drivers/char/drm/drm_scatter.c
@@ -36,6 +36,15 @@
36 36
37#define DEBUG_SCATTER 0 37#define DEBUG_SCATTER 0
38 38
39static inline void *drm_vmalloc_dma(unsigned long size)
40{
41#if defined(__powerpc__) && defined(CONFIG_NOT_COHERENT_CACHE)
42 return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL | _PAGE_NO_CACHE);
43#else
44 return vmalloc_32(size);
45#endif
46}
47
39void drm_sg_cleanup(struct drm_sg_mem * entry) 48void drm_sg_cleanup(struct drm_sg_mem * entry)
40{ 49{
41 struct page *page; 50 struct page *page;
@@ -104,7 +113,7 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
104 } 113 }
105 memset((void *)entry->busaddr, 0, pages * sizeof(*entry->busaddr)); 114 memset((void *)entry->busaddr, 0, pages * sizeof(*entry->busaddr));
106 115
107 entry->virtual = vmalloc_32(pages << PAGE_SHIFT); 116 entry->virtual = drm_vmalloc_dma(pages << PAGE_SHIFT);
108 if (!entry->virtual) { 117 if (!entry->virtual) {
109 drm_free(entry->busaddr, 118 drm_free(entry->busaddr,
110 entry->pages * sizeof(*entry->busaddr), DRM_MEM_PAGES); 119 entry->pages * sizeof(*entry->busaddr), DRM_MEM_PAGES);
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c
index 3d65c4dcd0c6..945df72a51a9 100644
--- a/drivers/char/drm/drm_vm.c
+++ b/drivers/char/drm/drm_vm.c
@@ -54,13 +54,24 @@ static pgprot_t drm_io_prot(uint32_t map_type, struct vm_area_struct *vma)
54 pgprot_val(tmp) |= _PAGE_NO_CACHE; 54 pgprot_val(tmp) |= _PAGE_NO_CACHE;
55 if (map_type == _DRM_REGISTERS) 55 if (map_type == _DRM_REGISTERS)
56 pgprot_val(tmp) |= _PAGE_GUARDED; 56 pgprot_val(tmp) |= _PAGE_GUARDED;
57#endif 57#elif defined(__ia64__)
58#if defined(__ia64__)
59 if (efi_range_is_wc(vma->vm_start, vma->vm_end - 58 if (efi_range_is_wc(vma->vm_start, vma->vm_end -
60 vma->vm_start)) 59 vma->vm_start))
61 tmp = pgprot_writecombine(tmp); 60 tmp = pgprot_writecombine(tmp);
62 else 61 else
63 tmp = pgprot_noncached(tmp); 62 tmp = pgprot_noncached(tmp);
63#elif defined(__sparc__)
64 tmp = pgprot_noncached(tmp);
65#endif
66 return tmp;
67}
68
69static pgprot_t drm_dma_prot(uint32_t map_type, struct vm_area_struct *vma)
70{
71 pgprot_t tmp = vm_get_page_prot(vma->vm_flags);
72
73#if defined(__powerpc__) && defined(CONFIG_NOT_COHERENT_CACHE)
74 tmp |= _PAGE_NO_CACHE;
64#endif 75#endif
65 return tmp; 76 return tmp;
66} 77}
@@ -603,9 +614,6 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
603 offset = dev->driver->get_reg_ofs(dev); 614 offset = dev->driver->get_reg_ofs(dev);
604 vma->vm_flags |= VM_IO; /* not in core dump */ 615 vma->vm_flags |= VM_IO; /* not in core dump */
605 vma->vm_page_prot = drm_io_prot(map->type, vma); 616 vma->vm_page_prot = drm_io_prot(map->type, vma);
606#ifdef __sparc__
607 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
608#endif
609 if (io_remap_pfn_range(vma, vma->vm_start, 617 if (io_remap_pfn_range(vma, vma->vm_start,
610 (map->offset + offset) >> PAGE_SHIFT, 618 (map->offset + offset) >> PAGE_SHIFT,
611 vma->vm_end - vma->vm_start, 619 vma->vm_end - vma->vm_start,
@@ -624,6 +632,7 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
624 page_to_pfn(virt_to_page(map->handle)), 632 page_to_pfn(virt_to_page(map->handle)),
625 vma->vm_end - vma->vm_start, vma->vm_page_prot)) 633 vma->vm_end - vma->vm_start, vma->vm_page_prot))
626 return -EAGAIN; 634 return -EAGAIN;
635 vma->vm_page_prot = drm_dma_prot(map->type, vma);
627 /* fall through to _DRM_SHM */ 636 /* fall through to _DRM_SHM */
628 case _DRM_SHM: 637 case _DRM_SHM:
629 vma->vm_ops = &drm_vm_shm_ops; 638 vma->vm_ops = &drm_vm_shm_ops;
@@ -631,6 +640,7 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
631 /* Don't let this area swap. Change when 640 /* Don't let this area swap. Change when
632 DRM_KERNEL advisory is supported. */ 641 DRM_KERNEL advisory is supported. */
633 vma->vm_flags |= VM_RESERVED; 642 vma->vm_flags |= VM_RESERVED;
643 vma->vm_page_prot = drm_dma_prot(map->type, vma);
634 break; 644 break;
635 case _DRM_SCATTER_GATHER: 645 case _DRM_SCATTER_GATHER:
636 vma->vm_ops = &drm_vm_sg_ops; 646 vma->vm_ops = &drm_vm_sg_ops;
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
index e9d6663bec73..a043bb12301a 100644
--- a/drivers/char/drm/i915_dma.c
+++ b/drivers/char/drm/i915_dma.c
@@ -804,6 +804,9 @@ void i915_driver_lastclose(struct drm_device * dev)
804{ 804{
805 drm_i915_private_t *dev_priv = dev->dev_private; 805 drm_i915_private_t *dev_priv = dev->dev_private;
806 806
807 if (!dev_priv)
808 return;
809
807 if (dev_priv->agp_heap) 810 if (dev_priv->agp_heap)
808 i915_mem_takedown(&(dev_priv->agp_heap)); 811 i915_mem_takedown(&(dev_priv->agp_heap));
809 812
diff --git a/drivers/char/drm/r128_cce.c b/drivers/char/drm/r128_cce.c
index 892e0a589846..f36adbd3aaf5 100644
--- a/drivers/char/drm/r128_cce.c
+++ b/drivers/char/drm/r128_cce.c
@@ -558,6 +558,7 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init)
558#if __OS_HAS_AGP 558#if __OS_HAS_AGP
559 if (dev_priv->is_pci) { 559 if (dev_priv->is_pci) {
560#endif 560#endif
561 dev_priv->gart_info.table_mask = DMA_BIT_MASK(32);
561 dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN; 562 dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN;
562 dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE; 563 dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE;
563 dev_priv->gart_info.addr = NULL; 564 dev_priv->gart_info.addr = NULL;
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c
index 0f4afc44245c..f535812e4057 100644
--- a/drivers/char/drm/r300_cmdbuf.c
+++ b/drivers/char/drm/r300_cmdbuf.c
@@ -729,6 +729,47 @@ static void r300_discard_buffer(struct drm_device * dev, struct drm_buf * buf)
729 buf->used = 0; 729 buf->used = 0;
730} 730}
731 731
732static void r300_cmd_wait(drm_radeon_private_t * dev_priv,
733 drm_r300_cmd_header_t header)
734{
735 u32 wait_until;
736 RING_LOCALS;
737
738 if (!header.wait.flags)
739 return;
740
741 wait_until = 0;
742
743 switch(header.wait.flags) {
744 case R300_WAIT_2D:
745 wait_until = RADEON_WAIT_2D_IDLE;
746 break;
747 case R300_WAIT_3D:
748 wait_until = RADEON_WAIT_3D_IDLE;
749 break;
750 case R300_NEW_WAIT_2D_3D:
751 wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_3D_IDLE;
752 break;
753 case R300_NEW_WAIT_2D_2D_CLEAN:
754 wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_2D_IDLECLEAN;
755 break;
756 case R300_NEW_WAIT_3D_3D_CLEAN:
757 wait_until = RADEON_WAIT_3D_IDLE|RADEON_WAIT_3D_IDLECLEAN;
758 break;
759 case R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN:
760 wait_until = RADEON_WAIT_2D_IDLE|RADEON_WAIT_2D_IDLECLEAN;
761 wait_until |= RADEON_WAIT_3D_IDLE|RADEON_WAIT_3D_IDLECLEAN;
762 break;
763 default:
764 return;
765 }
766
767 BEGIN_RING(2);
768 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
769 OUT_RING(wait_until);
770 ADVANCE_RING();
771}
772
732static int r300_scratch(drm_radeon_private_t *dev_priv, 773static int r300_scratch(drm_radeon_private_t *dev_priv,
733 drm_radeon_kcmd_buffer_t *cmdbuf, 774 drm_radeon_kcmd_buffer_t *cmdbuf,
734 drm_r300_cmd_header_t header) 775 drm_r300_cmd_header_t header)
@@ -909,19 +950,8 @@ int r300_do_cp_cmdbuf(struct drm_device *dev,
909 break; 950 break;
910 951
911 case R300_CMD_WAIT: 952 case R300_CMD_WAIT:
912 /* simple enough, we can do it here */
913 DRM_DEBUG("R300_CMD_WAIT\n"); 953 DRM_DEBUG("R300_CMD_WAIT\n");
914 if (header.wait.flags == 0) 954 r300_cmd_wait(dev_priv, header);
915 break; /* nothing to do */
916
917 {
918 RING_LOCALS;
919
920 BEGIN_RING(2);
921 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
922 OUT_RING((header.wait.flags & 0xf) << 14);
923 ADVANCE_RING();
924 }
925 break; 955 break;
926 956
927 case R300_CMD_SCRATCH: 957 case R300_CMD_SCRATCH:
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c
index 833abc7e55fb..9072e4a1894e 100644
--- a/drivers/char/drm/radeon_cp.c
+++ b/drivers/char/drm/radeon_cp.c
@@ -1807,6 +1807,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init)
1807 } else 1807 } else
1808#endif 1808#endif
1809 { 1809 {
1810 dev_priv->gart_info.table_mask = DMA_BIT_MASK(32);
1810 /* if we have an offset set from userspace */ 1811 /* if we have an offset set from userspace */
1811 if (dev_priv->pcigart_offset_set) { 1812 if (dev_priv->pcigart_offset_set) {
1812 dev_priv->gart_info.bus_addr = 1813 dev_priv->gart_info.bus_addr =
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h
index 71e5b21fad2c..aab82e121e07 100644
--- a/drivers/char/drm/radeon_drm.h
+++ b/drivers/char/drm/radeon_drm.h
@@ -225,8 +225,20 @@ typedef union {
225#define R300_CMD_WAIT 7 225#define R300_CMD_WAIT 7
226# define R300_WAIT_2D 0x1 226# define R300_WAIT_2D 0x1
227# define R300_WAIT_3D 0x2 227# define R300_WAIT_3D 0x2
228/* these two defines are DOING IT WRONG - however
229 * we have userspace which relies on using these.
230 * The wait interface is backwards compat new
231 * code should use the NEW_WAIT defines below
232 * THESE ARE NOT BIT FIELDS
233 */
228# define R300_WAIT_2D_CLEAN 0x3 234# define R300_WAIT_2D_CLEAN 0x3
229# define R300_WAIT_3D_CLEAN 0x4 235# define R300_WAIT_3D_CLEAN 0x4
236
237# define R300_NEW_WAIT_2D_3D 0x3
238# define R300_NEW_WAIT_2D_2D_CLEAN 0x4
239# define R300_NEW_WAIT_3D_3D_CLEAN 0x6
240# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
241
230#define R300_CMD_SCRATCH 8 242#define R300_CMD_SCRATCH 8
231 243
232typedef union { 244typedef union {
diff --git a/drivers/char/drm/radeon_mem.c b/drivers/char/drm/radeon_mem.c
index 78b34fa7c89a..4af5286a36fb 100644
--- a/drivers/char/drm/radeon_mem.c
+++ b/drivers/char/drm/radeon_mem.c
@@ -88,7 +88,7 @@ static struct mem_block *alloc_block(struct mem_block *heap, int size,
88 88
89 list_for_each(p, heap) { 89 list_for_each(p, heap) {
90 int start = (p->start + mask) & ~mask; 90 int start = (p->start + mask) & ~mask;
91 if (p->file_priv == 0 && start + size <= p->start + p->size) 91 if (p->file_priv == NULL && start + size <= p->start + p->size)
92 return split_block(p, start, size, file_priv); 92 return split_block(p, start, size, file_priv);
93 } 93 }
94 94
@@ -113,7 +113,7 @@ static void free_block(struct mem_block *p)
113 /* Assumes a single contiguous range. Needs a special file_priv in 113 /* Assumes a single contiguous range. Needs a special file_priv in
114 * 'heap' to stop it being subsumed. 114 * 'heap' to stop it being subsumed.
115 */ 115 */
116 if (p->next->file_priv == 0) { 116 if (p->next->file_priv == NULL) {
117 struct mem_block *q = p->next; 117 struct mem_block *q = p->next;
118 p->size += q->size; 118 p->size += q->size;
119 p->next = q->next; 119 p->next = q->next;
@@ -121,7 +121,7 @@ static void free_block(struct mem_block *p)
121 drm_free(q, sizeof(*q), DRM_MEM_BUFS); 121 drm_free(q, sizeof(*q), DRM_MEM_BUFS);
122 } 122 }
123 123
124 if (p->prev->file_priv == 0) { 124 if (p->prev->file_priv == NULL) {
125 struct mem_block *q = p->prev; 125 struct mem_block *q = p->prev;
126 q->size += p->size; 126 q->size += p->size;
127 q->next = p->next; 127 q->next = p->next;
@@ -174,7 +174,7 @@ void radeon_mem_release(struct drm_file *file_priv, struct mem_block *heap)
174 * 'heap' to stop it being subsumed. 174 * 'heap' to stop it being subsumed.
175 */ 175 */
176 list_for_each(p, heap) { 176 list_for_each(p, heap) {
177 while (p->file_priv == 0 && p->next->file_priv == 0) { 177 while (p->file_priv == NULL && p->next->file_priv == NULL) {
178 struct mem_block *q = p->next; 178 struct mem_block *q = p->next;
179 p->size += q->size; 179 p->size += q->size;
180 p->next = q->next; 180 p->next = q->next;
diff --git a/drivers/char/drm/via_dma.c b/drivers/char/drm/via_dma.c
index 94baec692b57..7a339dba6a69 100644
--- a/drivers/char/drm/via_dma.c
+++ b/drivers/char/drm/via_dma.c
@@ -126,6 +126,8 @@ via_cmdbuf_wait(drm_via_private_t * dev_priv, unsigned int size)
126 hw_addr, cur_addr, next_addr); 126 hw_addr, cur_addr, next_addr);
127 return -1; 127 return -1;
128 } 128 }
129 if ((cur_addr < hw_addr) && (next_addr >= hw_addr))
130 msleep(1);
129 } while ((cur_addr < hw_addr) && (next_addr >= hw_addr)); 131 } while ((cur_addr < hw_addr) && (next_addr >= hw_addr));
130 return 0; 132 return 0;
131} 133}
@@ -416,27 +418,50 @@ static int via_hook_segment(drm_via_private_t * dev_priv,
416 int paused, count; 418 int paused, count;
417 volatile uint32_t *paused_at = dev_priv->last_pause_ptr; 419 volatile uint32_t *paused_at = dev_priv->last_pause_ptr;
418 uint32_t reader,ptr; 420 uint32_t reader,ptr;
421 uint32_t diff;
419 422
420 paused = 0; 423 paused = 0;
421 via_flush_write_combine(); 424 via_flush_write_combine();
422 (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1); 425 (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1);
426
423 *paused_at = pause_addr_lo; 427 *paused_at = pause_addr_lo;
424 via_flush_write_combine(); 428 via_flush_write_combine();
425 (void) *paused_at; 429 (void) *paused_at;
430
426 reader = *(dev_priv->hw_addr_ptr); 431 reader = *(dev_priv->hw_addr_ptr);
427 ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + 432 ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) +
428 dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4; 433 dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4;
434
429 dev_priv->last_pause_ptr = via_get_dma(dev_priv) - 1; 435 dev_priv->last_pause_ptr = via_get_dma(dev_priv) - 1;
430 436
431 if ((ptr - reader) <= dev_priv->dma_diff ) { 437 /*
432 count = 10000000; 438 * If there is a possibility that the command reader will
433 while (!(paused = (VIA_READ(0x41c) & 0x80000000)) && count--); 439 * miss the new pause address and pause on the old one,
440 * In that case we need to program the new start address
441 * using PCI.
442 */
443
444 diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff;
445 count = 10000000;
446 while(diff == 0 && count--) {
447 paused = (VIA_READ(0x41c) & 0x80000000);
448 if (paused)
449 break;
450 reader = *(dev_priv->hw_addr_ptr);
451 diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff;
434 } 452 }
435 453
454 paused = VIA_READ(0x41c) & 0x80000000;
455
436 if (paused && !no_pci_fire) { 456 if (paused && !no_pci_fire) {
437 reader = *(dev_priv->hw_addr_ptr); 457 reader = *(dev_priv->hw_addr_ptr);
438 if ((ptr - reader) == dev_priv->dma_diff) { 458 diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff;
439 459 diff &= (dev_priv->dma_high - 1);
460 if (diff != 0 && diff < (dev_priv->dma_high >> 1)) {
461 DRM_ERROR("Paused at incorrect address. "
462 "0x%08x, 0x%08x 0x%08x\n",
463 ptr, reader, dev_priv->dma_diff);
464 } else if (diff == 0) {
440 /* 465 /*
441 * There is a concern that these writes may stall the PCI bus 466 * There is a concern that these writes may stall the PCI bus
442 * if the GPU is not idle. However, idling the GPU first 467 * if the GPU is not idle. However, idling the GPU first
@@ -577,6 +602,7 @@ static void via_cmdbuf_jump(drm_via_private_t * dev_priv)
577 uint32_t pause_addr_lo, pause_addr_hi; 602 uint32_t pause_addr_lo, pause_addr_hi;
578 uint32_t jump_addr_lo, jump_addr_hi; 603 uint32_t jump_addr_lo, jump_addr_hi;
579 volatile uint32_t *last_pause_ptr; 604 volatile uint32_t *last_pause_ptr;
605 uint32_t dma_low_save1, dma_low_save2;
580 606
581 agp_base = dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr; 607 agp_base = dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr;
582 via_align_cmd(dev_priv, HC_HAGPBpID_JUMP, 0, &jump_addr_hi, 608 via_align_cmd(dev_priv, HC_HAGPBpID_JUMP, 0, &jump_addr_hi,
@@ -603,8 +629,29 @@ static void via_cmdbuf_jump(drm_via_private_t * dev_priv)
603 &pause_addr_lo, 0); 629 &pause_addr_lo, 0);
604 630
605 *last_pause_ptr = pause_addr_lo; 631 *last_pause_ptr = pause_addr_lo;
632 dma_low_save1 = dev_priv->dma_low;
606 633
607 via_hook_segment( dev_priv, jump_addr_hi, jump_addr_lo, 0); 634 /*
635 * Now, set a trap that will pause the regulator if it tries to rerun the old
636 * command buffer. (Which may happen if via_hook_segment detecs a command regulator pause
637 * and reissues the jump command over PCI, while the regulator has already taken the jump
638 * and actually paused at the current buffer end).
639 * There appears to be no other way to detect this condition, since the hw_addr_pointer
640 * does not seem to get updated immediately when a jump occurs.
641 */
642
643 last_pause_ptr =
644 via_align_cmd(dev_priv, HC_HAGPBpID_PAUSE, 0, &pause_addr_hi,
645 &pause_addr_lo, 0) - 1;
646 via_align_cmd(dev_priv, HC_HAGPBpID_PAUSE, 0, &pause_addr_hi,
647 &pause_addr_lo, 0);
648 *last_pause_ptr = pause_addr_lo;
649
650 dma_low_save2 = dev_priv->dma_low;
651 dev_priv->dma_low = dma_low_save1;
652 via_hook_segment(dev_priv, jump_addr_hi, jump_addr_lo, 0);
653 dev_priv->dma_low = dma_low_save2;
654 via_hook_segment(dev_priv, pause_addr_hi, pause_addr_lo, 0);
608} 655}
609 656
610 657
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/char/drm/via_dmablit.c
index 33c5197b73c4..409e00afdd07 100644
--- a/drivers/char/drm/via_dmablit.c
+++ b/drivers/char/drm/via_dmablit.c
@@ -603,7 +603,7 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli
603 * (Not a big limitation anyway.) 603 * (Not a big limitation anyway.)
604 */ 604 */
605 605
606 if ((xfer->mem_stride - xfer->line_length) >= PAGE_SIZE) { 606 if ((xfer->mem_stride - xfer->line_length) > 2*PAGE_SIZE) {
607 DRM_ERROR("Too large system memory stride. Stride: %d, " 607 DRM_ERROR("Too large system memory stride. Stride: %d, "
608 "Length: %d\n", xfer->mem_stride, xfer->line_length); 608 "Length: %d\n", xfer->mem_stride, xfer->line_length);
609 return -EINVAL; 609 return -EINVAL;
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
index 6bbd4fa50f3b..8d6c2089d2a8 100644
--- a/drivers/char/hw_random/Kconfig
+++ b/drivers/char/hw_random/Kconfig
@@ -9,7 +9,14 @@ config HW_RANDOM
9 Hardware Random Number Generator Core infrastructure. 9 Hardware Random Number Generator Core infrastructure.
10 10
11 To compile this driver as a module, choose M here: the 11 To compile this driver as a module, choose M here: the
12 module will be called rng-core. 12 module will be called rng-core. This provides a device
13 that's usually called /dev/hw_random, and which exposes one
14 of possibly several hardware random number generators.
15
16 These hardware random number generators do not feed directly
17 into the kernel's random number generator. That is usually
18 handled by the "rngd" daemon. Documentation/hw_random.txt
19 has more information.
13 20
14 If unsure, say Y. 21 If unsure, say Y.
15 22
diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c
index 46b2a1cc8b54..0c09409fa45d 100644
--- a/drivers/char/n_tty.c
+++ b/drivers/char/n_tty.c
@@ -1183,7 +1183,7 @@ static int copy_from_read_buf(struct tty_struct *tty,
1183 return retval; 1183 return retval;
1184} 1184}
1185 1185
1186extern ssize_t redirected_tty_write(struct file *, const char *, 1186extern ssize_t redirected_tty_write(struct file *, const char __user *,
1187 size_t, loff_t *); 1187 size_t, loff_t *);
1188 1188
1189/** 1189/**
diff --git a/drivers/char/nozomi.c b/drivers/char/nozomi.c
index 6d0dc5f9b6bb..6a6843a0a674 100644
--- a/drivers/char/nozomi.c
+++ b/drivers/char/nozomi.c
@@ -438,7 +438,7 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
438 u32 size_bytes) 438 u32 size_bytes)
439{ 439{
440 u32 i = 0; 440 u32 i = 0;
441 const u32 *ptr = (__force u32 *) mem_addr_start; 441 const u32 __iomem *ptr = mem_addr_start;
442 u16 *buf16; 442 u16 *buf16;
443 443
444 if (unlikely(!ptr || !buf)) 444 if (unlikely(!ptr || !buf))
@@ -448,11 +448,11 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
448 switch (size_bytes) { 448 switch (size_bytes) {
449 case 2: /* 2 bytes */ 449 case 2: /* 2 bytes */
450 buf16 = (u16 *) buf; 450 buf16 = (u16 *) buf;
451 *buf16 = __le16_to_cpu(readw((void __iomem *)ptr)); 451 *buf16 = __le16_to_cpu(readw(ptr));
452 goto out; 452 goto out;
453 break; 453 break;
454 case 4: /* 4 bytes */ 454 case 4: /* 4 bytes */
455 *(buf) = __le32_to_cpu(readl((void __iomem *)ptr)); 455 *(buf) = __le32_to_cpu(readl(ptr));
456 goto out; 456 goto out;
457 break; 457 break;
458 } 458 }
@@ -461,11 +461,11 @@ static void read_mem32(u32 *buf, const void __iomem *mem_addr_start,
461 if (size_bytes - i == 2) { 461 if (size_bytes - i == 2) {
462 /* Handle 2 bytes in the end */ 462 /* Handle 2 bytes in the end */
463 buf16 = (u16 *) buf; 463 buf16 = (u16 *) buf;
464 *(buf16) = __le16_to_cpu(readw((void __iomem *)ptr)); 464 *(buf16) = __le16_to_cpu(readw(ptr));
465 i += 2; 465 i += 2;
466 } else { 466 } else {
467 /* Read 4 bytes */ 467 /* Read 4 bytes */
468 *(buf) = __le32_to_cpu(readl((void __iomem *)ptr)); 468 *(buf) = __le32_to_cpu(readl(ptr));
469 i += 4; 469 i += 4;
470 } 470 }
471 buf++; 471 buf++;
@@ -484,7 +484,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
484 u32 size_bytes) 484 u32 size_bytes)
485{ 485{
486 u32 i = 0; 486 u32 i = 0;
487 u32 *ptr = (__force u32 *) mem_addr_start; 487 u32 __iomem *ptr = mem_addr_start;
488 const u16 *buf16; 488 const u16 *buf16;
489 489
490 if (unlikely(!ptr || !buf)) 490 if (unlikely(!ptr || !buf))
@@ -494,7 +494,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
494 switch (size_bytes) { 494 switch (size_bytes) {
495 case 2: /* 2 bytes */ 495 case 2: /* 2 bytes */
496 buf16 = (const u16 *)buf; 496 buf16 = (const u16 *)buf;
497 writew(__cpu_to_le16(*buf16), (void __iomem *)ptr); 497 writew(__cpu_to_le16(*buf16), ptr);
498 return 2; 498 return 2;
499 break; 499 break;
500 case 1: /* 500 case 1: /*
@@ -502,7 +502,7 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
502 * so falling through.. 502 * so falling through..
503 */ 503 */
504 case 4: /* 4 bytes */ 504 case 4: /* 4 bytes */
505 writel(__cpu_to_le32(*buf), (void __iomem *)ptr); 505 writel(__cpu_to_le32(*buf), ptr);
506 return 4; 506 return 4;
507 break; 507 break;
508 } 508 }
@@ -511,11 +511,11 @@ static u32 write_mem32(void __iomem *mem_addr_start, const u32 *buf,
511 if (size_bytes - i == 2) { 511 if (size_bytes - i == 2) {
512 /* 2 bytes */ 512 /* 2 bytes */
513 buf16 = (const u16 *)buf; 513 buf16 = (const u16 *)buf;
514 writew(__cpu_to_le16(*buf16), (void __iomem *)ptr); 514 writew(__cpu_to_le16(*buf16), ptr);
515 i += 2; 515 i += 2;
516 } else { 516 } else {
517 /* 4 bytes */ 517 /* 4 bytes */
518 writel(__cpu_to_le32(*buf), (void __iomem *)ptr); 518 writel(__cpu_to_le32(*buf), ptr);
519 i += 4; 519 i += 4;
520 } 520 }
521 buf++; 521 buf++;
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index 589ac6f65b9a..3f9d0a9ac36d 100644
--- a/drivers/char/riscom8.c
+++ b/drivers/char/riscom8.c
@@ -1709,7 +1709,7 @@ static int __init riscom8_init_module (void)
1709 1709
1710 if (iobase || iobase1 || iobase2 || iobase3) { 1710 if (iobase || iobase1 || iobase2 || iobase3) {
1711 for(i = 0; i < RC_NBOARD; i++) 1711 for(i = 0; i < RC_NBOARD; i++)
1712 rc_board[0].base = 0; 1712 rc_board[i].base = 0;
1713 } 1713 }
1714 1714
1715 if (iobase) 1715 if (iobase)
diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c
index 72f289279d8f..f585bc8579e9 100644
--- a/drivers/char/rocket.c
+++ b/drivers/char/rocket.c
@@ -83,6 +83,7 @@
83#include <linux/pci.h> 83#include <linux/pci.h>
84#include <asm/uaccess.h> 84#include <asm/uaccess.h>
85#include <asm/atomic.h> 85#include <asm/atomic.h>
86#include <asm/unaligned.h>
86#include <linux/bitops.h> 87#include <linux/bitops.h>
87#include <linux/spinlock.h> 88#include <linux/spinlock.h>
88#include <linux/init.h> 89#include <linux/init.h>
@@ -1312,7 +1313,7 @@ static int rp_tiocmset(struct tty_struct *tty, struct file *file,
1312 if (clear & TIOCM_DTR) 1313 if (clear & TIOCM_DTR)
1313 info->channel.TxControl[3] &= ~SET_DTR; 1314 info->channel.TxControl[3] &= ~SET_DTR;
1314 1315
1315 sOutDW(info->channel.IndexAddr, *(DWord_t *) & (info->channel.TxControl[0])); 1316 out32(info->channel.IndexAddr, info->channel.TxControl);
1316 return 0; 1317 return 0;
1317} 1318}
1318 1319
@@ -1748,7 +1749,7 @@ static int rp_write(struct tty_struct *tty,
1748 1749
1749 /* Write remaining data into the port's xmit_buf */ 1750 /* Write remaining data into the port's xmit_buf */
1750 while (1) { 1751 while (1) {
1751 if (info->tty == 0) /* Seemingly obligatory check... */ 1752 if (!info->tty) /* Seemingly obligatory check... */
1752 goto end; 1753 goto end;
1753 1754
1754 c = min(count, min(XMIT_BUF_SIZE - info->xmit_cnt - 1, XMIT_BUF_SIZE - info->xmit_head)); 1755 c = min(count, min(XMIT_BUF_SIZE - info->xmit_cnt - 1, XMIT_BUF_SIZE - info->xmit_head));
@@ -2798,7 +2799,7 @@ static int sReadAiopNumChan(WordIO_t io)
2798 static Byte_t R[4] = { 0x00, 0x00, 0x34, 0x12 }; 2799 static Byte_t R[4] = { 0x00, 0x00, 0x34, 0x12 };
2799 2800
2800 /* write to chan 0 SRAM */ 2801 /* write to chan 0 SRAM */
2801 sOutDW((DWordIO_t) io + _INDX_ADDR, *((DWord_t *) & R[0])); 2802 out32((DWordIO_t) io + _INDX_ADDR, R);
2802 sOutW(io + _INDX_ADDR, 0); /* read from SRAM, chan 0 */ 2803 sOutW(io + _INDX_ADDR, 0); /* read from SRAM, chan 0 */
2803 x = sInW(io + _INDX_DATA); 2804 x = sInW(io + _INDX_DATA);
2804 sOutW(io + _INDX_ADDR, 0x4000); /* read from SRAM, chan 4 */ 2805 sOutW(io + _INDX_ADDR, 0x4000); /* read from SRAM, chan 4 */
@@ -2864,7 +2865,7 @@ static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum,
2864 R[1] = RData[i + 1] + 0x10 * ChanNum; 2865 R[1] = RData[i + 1] + 0x10 * ChanNum;
2865 R[2] = RData[i + 2]; 2866 R[2] = RData[i + 2];
2866 R[3] = RData[i + 3]; 2867 R[3] = RData[i + 3];
2867 sOutDW(ChP->IndexAddr, *((DWord_t *) & R[0])); 2868 out32(ChP->IndexAddr, R);
2868 } 2869 }
2869 2870
2870 ChR = ChP->R; 2871 ChR = ChP->R;
@@ -2887,43 +2888,43 @@ static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum,
2887 ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8); 2888 ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8);
2888 ChP->BaudDiv[2] = (Byte_t) brd9600; 2889 ChP->BaudDiv[2] = (Byte_t) brd9600;
2889 ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8); 2890 ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8);
2890 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->BaudDiv[0]); 2891 out32(ChP->IndexAddr, ChP->BaudDiv);
2891 2892
2892 ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL); 2893 ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL);
2893 ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8); 2894 ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8);
2894 ChP->TxControl[2] = 0; 2895 ChP->TxControl[2] = 0;
2895 ChP->TxControl[3] = 0; 2896 ChP->TxControl[3] = 0;
2896 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); 2897 out32(ChP->IndexAddr, ChP->TxControl);
2897 2898
2898 ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL); 2899 ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL);
2899 ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8); 2900 ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8);
2900 ChP->RxControl[2] = 0; 2901 ChP->RxControl[2] = 0;
2901 ChP->RxControl[3] = 0; 2902 ChP->RxControl[3] = 0;
2902 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); 2903 out32(ChP->IndexAddr, ChP->RxControl);
2903 2904
2904 ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS); 2905 ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS);
2905 ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8); 2906 ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8);
2906 ChP->TxEnables[2] = 0; 2907 ChP->TxEnables[2] = 0;
2907 ChP->TxEnables[3] = 0; 2908 ChP->TxEnables[3] = 0;
2908 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxEnables[0]); 2909 out32(ChP->IndexAddr, ChP->TxEnables);
2909 2910
2910 ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1); 2911 ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1);
2911 ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8); 2912 ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8);
2912 ChP->TxCompare[2] = 0; 2913 ChP->TxCompare[2] = 0;
2913 ChP->TxCompare[3] = 0; 2914 ChP->TxCompare[3] = 0;
2914 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxCompare[0]); 2915 out32(ChP->IndexAddr, ChP->TxCompare);
2915 2916
2916 ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1); 2917 ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1);
2917 ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8); 2918 ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8);
2918 ChP->TxReplace1[2] = 0; 2919 ChP->TxReplace1[2] = 0;
2919 ChP->TxReplace1[3] = 0; 2920 ChP->TxReplace1[3] = 0;
2920 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxReplace1[0]); 2921 out32(ChP->IndexAddr, ChP->TxReplace1);
2921 2922
2922 ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2); 2923 ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2);
2923 ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8); 2924 ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8);
2924 ChP->TxReplace2[2] = 0; 2925 ChP->TxReplace2[2] = 0;
2925 ChP->TxReplace2[3] = 0; 2926 ChP->TxReplace2[3] = 0;
2926 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxReplace2[0]); 2927 out32(ChP->IndexAddr, ChP->TxReplace2);
2927 2928
2928 ChP->TxFIFOPtrs = ChOff + _TXF_OUTP; 2929 ChP->TxFIFOPtrs = ChOff + _TXF_OUTP;
2929 ChP->TxFIFO = ChOff + _TX_FIFO; 2930 ChP->TxFIFO = ChOff + _TX_FIFO;
@@ -2979,7 +2980,7 @@ static void sStopRxProcessor(CHANNEL_T * ChP)
2979 R[1] = ChP->R[1]; 2980 R[1] = ChP->R[1];
2980 R[2] = 0x0a; 2981 R[2] = 0x0a;
2981 R[3] = ChP->R[3]; 2982 R[3] = ChP->R[3];
2982 sOutDW(ChP->IndexAddr, *(DWord_t *) & R[0]); 2983 out32(ChP->IndexAddr, R);
2983} 2984}
2984 2985
2985/*************************************************************************** 2986/***************************************************************************
@@ -3094,13 +3095,13 @@ static int sWriteTxPrioByte(CHANNEL_T * ChP, Byte_t Data)
3094 *WordPtr = ChP->TxPrioBuf; /* data byte address */ 3095 *WordPtr = ChP->TxPrioBuf; /* data byte address */
3095 3096
3096 DWBuf[2] = Data; /* data byte value */ 3097 DWBuf[2] = Data; /* data byte value */
3097 sOutDW(IndexAddr, *((DWord_t *) (&DWBuf[0]))); /* write it out */ 3098 out32(IndexAddr, DWBuf); /* write it out */
3098 3099
3099 *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */ 3100 *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */
3100 3101
3101 DWBuf[2] = PRI_PEND + 1; /* indicate 1 byte pending */ 3102 DWBuf[2] = PRI_PEND + 1; /* indicate 1 byte pending */
3102 DWBuf[3] = 0; /* priority buffer pointer */ 3103 DWBuf[3] = 0; /* priority buffer pointer */
3103 sOutDW(IndexAddr, *((DWord_t *) (&DWBuf[0]))); /* write it out */ 3104 out32(IndexAddr, DWBuf); /* write it out */
3104 } else { /* write it to Tx FIFO */ 3105 } else { /* write it to Tx FIFO */
3105 3106
3106 sWriteTxByte(sGetTxRxDataIO(ChP), Data); 3107 sWriteTxByte(sGetTxRxDataIO(ChP), Data);
@@ -3147,11 +3148,11 @@ static void sEnInterrupts(CHANNEL_T * ChP, Word_t Flags)
3147 ChP->RxControl[2] |= 3148 ChP->RxControl[2] |=
3148 ((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); 3149 ((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN));
3149 3150
3150 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); 3151 out32(ChP->IndexAddr, ChP->RxControl);
3151 3152
3152 ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN); 3153 ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN);
3153 3154
3154 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); 3155 out32(ChP->IndexAddr, ChP->TxControl);
3155 3156
3156 if (Flags & CHANINT_EN) { 3157 if (Flags & CHANINT_EN) {
3157 Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum]; 3158 Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum];
@@ -3190,9 +3191,9 @@ static void sDisInterrupts(CHANNEL_T * ChP, Word_t Flags)
3190 3191
3191 ChP->RxControl[2] &= 3192 ChP->RxControl[2] &=
3192 ~((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); 3193 ~((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN));
3193 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); 3194 out32(ChP->IndexAddr, ChP->RxControl);
3194 ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN); 3195 ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN);
3195 sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); 3196 out32(ChP->IndexAddr, ChP->TxControl);
3196 3197
3197 if (Flags & CHANINT_EN) { 3198 if (Flags & CHANINT_EN) {
3198 Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum]; 3199 Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum];
diff --git a/drivers/char/rocket_int.h b/drivers/char/rocket_int.h
index f3a75791b811..b01d38125a8f 100644
--- a/drivers/char/rocket_int.h
+++ b/drivers/char/rocket_int.h
@@ -26,7 +26,6 @@ typedef unsigned int ByteIO_t;
26typedef unsigned int Word_t; 26typedef unsigned int Word_t;
27typedef unsigned int WordIO_t; 27typedef unsigned int WordIO_t;
28 28
29typedef unsigned long DWord_t;
30typedef unsigned int DWordIO_t; 29typedef unsigned int DWordIO_t;
31 30
32/* 31/*
@@ -38,7 +37,6 @@ typedef unsigned int DWordIO_t;
38 * instruction. 37 * instruction.
39 */ 38 */
40 39
41#ifdef ROCKET_DEBUG_IO
42static inline void sOutB(unsigned short port, unsigned char value) 40static inline void sOutB(unsigned short port, unsigned char value)
43{ 41{
44#ifdef ROCKET_DEBUG_IO 42#ifdef ROCKET_DEBUG_IO
@@ -55,12 +53,13 @@ static inline void sOutW(unsigned short port, unsigned short value)
55 outw_p(value, port); 53 outw_p(value, port);
56} 54}
57 55
58static inline void sOutDW(unsigned short port, unsigned long value) 56static inline void out32(unsigned short port, Byte_t *p)
59{ 57{
58 u32 value = le32_to_cpu(get_unaligned((__le32 *)p));
60#ifdef ROCKET_DEBUG_IO 59#ifdef ROCKET_DEBUG_IO
61 printk(KERN_DEBUG "sOutDW(%x, %lx)...\n", port, value); 60 printk(KERN_DEBUG "out32(%x, %lx)...\n", port, value);
62#endif 61#endif
63 outl_p(cpu_to_le32(value), port); 62 outl_p(value, port);
64} 63}
65 64
66static inline unsigned char sInB(unsigned short port) 65static inline unsigned char sInB(unsigned short port)
@@ -73,14 +72,6 @@ static inline unsigned short sInW(unsigned short port)
73 return inw_p(port); 72 return inw_p(port);
74} 73}
75 74
76#else /* !ROCKET_DEBUG_IO */
77#define sOutB(a, b) outb_p(b, a)
78#define sOutW(a, b) outw_p(b, a)
79#define sOutDW(port, value) outl_p(cpu_to_le32(value), port)
80#define sInB(a) (inb_p(a))
81#define sInW(a) (inw_p(a))
82#endif /* ROCKET_DEBUG_IO */
83
84/* This is used to move arrays of bytes so byte swapping isn't appropriate. */ 75/* This is used to move arrays of bytes so byte swapping isn't appropriate. */
85#define sOutStrW(port, addr, count) if (count) outsw(port, addr, count) 76#define sOutStrW(port, addr, count) if (count) outsw(port, addr, count)
86#define sInStrW(port, addr, count) if (count) insw(port, addr, count) 77#define sInStrW(port, addr, count) if (count) insw(port, addr, count)
@@ -390,7 +381,7 @@ Call: sClrBreak(ChP)
390#define sClrBreak(ChP) \ 381#define sClrBreak(ChP) \
391do { \ 382do { \
392 (ChP)->TxControl[3] &= ~SETBREAK; \ 383 (ChP)->TxControl[3] &= ~SETBREAK; \
393 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 384 out32((ChP)->IndexAddr,(ChP)->TxControl); \
394} while (0) 385} while (0)
395 386
396/*************************************************************************** 387/***************************************************************************
@@ -402,7 +393,7 @@ Call: sClrDTR(ChP)
402#define sClrDTR(ChP) \ 393#define sClrDTR(ChP) \
403do { \ 394do { \
404 (ChP)->TxControl[3] &= ~SET_DTR; \ 395 (ChP)->TxControl[3] &= ~SET_DTR; \
405 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 396 out32((ChP)->IndexAddr,(ChP)->TxControl); \
406} while (0) 397} while (0)
407 398
408/*************************************************************************** 399/***************************************************************************
@@ -415,7 +406,7 @@ Call: sClrRTS(ChP)
415do { \ 406do { \
416 if ((ChP)->rtsToggle) break; \ 407 if ((ChP)->rtsToggle) break; \
417 (ChP)->TxControl[3] &= ~SET_RTS; \ 408 (ChP)->TxControl[3] &= ~SET_RTS; \
418 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 409 out32((ChP)->IndexAddr,(ChP)->TxControl); \
419} while (0) 410} while (0)
420 411
421/*************************************************************************** 412/***************************************************************************
@@ -489,7 +480,7 @@ Call: sDisCTSFlowCtl(ChP)
489#define sDisCTSFlowCtl(ChP) \ 480#define sDisCTSFlowCtl(ChP) \
490do { \ 481do { \
491 (ChP)->TxControl[2] &= ~CTSFC_EN; \ 482 (ChP)->TxControl[2] &= ~CTSFC_EN; \
492 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 483 out32((ChP)->IndexAddr,(ChP)->TxControl); \
493} while (0) 484} while (0)
494 485
495/*************************************************************************** 486/***************************************************************************
@@ -501,7 +492,7 @@ Call: sDisIXANY(ChP)
501#define sDisIXANY(ChP) \ 492#define sDisIXANY(ChP) \
502do { \ 493do { \
503 (ChP)->R[0x0e] = 0x86; \ 494 (ChP)->R[0x0e] = 0x86; \
504 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x0c]); \ 495 out32((ChP)->IndexAddr,&(ChP)->R[0x0c]); \
505} while (0) 496} while (0)
506 497
507/*************************************************************************** 498/***************************************************************************
@@ -515,7 +506,7 @@ Comments: Function sSetParity() can be used in place of functions sEnParity(),
515#define sDisParity(ChP) \ 506#define sDisParity(ChP) \
516do { \ 507do { \
517 (ChP)->TxControl[2] &= ~PARITY_EN; \ 508 (ChP)->TxControl[2] &= ~PARITY_EN; \
518 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 509 out32((ChP)->IndexAddr,(ChP)->TxControl); \
519} while (0) 510} while (0)
520 511
521/*************************************************************************** 512/***************************************************************************
@@ -527,7 +518,7 @@ Call: sDisRTSToggle(ChP)
527#define sDisRTSToggle(ChP) \ 518#define sDisRTSToggle(ChP) \
528do { \ 519do { \
529 (ChP)->TxControl[2] &= ~RTSTOG_EN; \ 520 (ChP)->TxControl[2] &= ~RTSTOG_EN; \
530 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 521 out32((ChP)->IndexAddr,(ChP)->TxControl); \
531 (ChP)->rtsToggle = 0; \ 522 (ChP)->rtsToggle = 0; \
532} while (0) 523} while (0)
533 524
@@ -540,7 +531,7 @@ Call: sDisRxFIFO(ChP)
540#define sDisRxFIFO(ChP) \ 531#define sDisRxFIFO(ChP) \
541do { \ 532do { \
542 (ChP)->R[0x32] = 0x0a; \ 533 (ChP)->R[0x32] = 0x0a; \
543 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x30]); \ 534 out32((ChP)->IndexAddr,&(ChP)->R[0x30]); \
544} while (0) 535} while (0)
545 536
546/*************************************************************************** 537/***************************************************************************
@@ -567,7 +558,7 @@ Call: sDisTransmit(ChP)
567#define sDisTransmit(ChP) \ 558#define sDisTransmit(ChP) \
568do { \ 559do { \
569 (ChP)->TxControl[3] &= ~TX_ENABLE; \ 560 (ChP)->TxControl[3] &= ~TX_ENABLE; \
570 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 561 out32((ChP)->IndexAddr,(ChP)->TxControl); \
571} while (0) 562} while (0)
572 563
573/*************************************************************************** 564/***************************************************************************
@@ -579,7 +570,7 @@ Call: sDisTxSoftFlowCtl(ChP)
579#define sDisTxSoftFlowCtl(ChP) \ 570#define sDisTxSoftFlowCtl(ChP) \
580do { \ 571do { \
581 (ChP)->R[0x06] = 0x8a; \ 572 (ChP)->R[0x06] = 0x8a; \
582 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ 573 out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \
583} while (0) 574} while (0)
584 575
585/*************************************************************************** 576/***************************************************************************
@@ -604,7 +595,7 @@ Call: sEnCTSFlowCtl(ChP)
604#define sEnCTSFlowCtl(ChP) \ 595#define sEnCTSFlowCtl(ChP) \
605do { \ 596do { \
606 (ChP)->TxControl[2] |= CTSFC_EN; \ 597 (ChP)->TxControl[2] |= CTSFC_EN; \
607 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 598 out32((ChP)->IndexAddr,(ChP)->TxControl); \
608} while (0) 599} while (0)
609 600
610/*************************************************************************** 601/***************************************************************************
@@ -616,7 +607,7 @@ Call: sEnIXANY(ChP)
616#define sEnIXANY(ChP) \ 607#define sEnIXANY(ChP) \
617do { \ 608do { \
618 (ChP)->R[0x0e] = 0x21; \ 609 (ChP)->R[0x0e] = 0x21; \
619 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x0c]); \ 610 out32((ChP)->IndexAddr,&(ChP)->R[0x0c]); \
620} while (0) 611} while (0)
621 612
622/*************************************************************************** 613/***************************************************************************
@@ -633,7 +624,7 @@ Warnings: Before enabling parity odd or even parity should be chosen using
633#define sEnParity(ChP) \ 624#define sEnParity(ChP) \
634do { \ 625do { \
635 (ChP)->TxControl[2] |= PARITY_EN; \ 626 (ChP)->TxControl[2] |= PARITY_EN; \
636 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 627 out32((ChP)->IndexAddr,(ChP)->TxControl); \
637} while (0) 628} while (0)
638 629
639/*************************************************************************** 630/***************************************************************************
@@ -647,10 +638,10 @@ Comments: This function will disable RTS flow control and clear the RTS
647#define sEnRTSToggle(ChP) \ 638#define sEnRTSToggle(ChP) \
648do { \ 639do { \
649 (ChP)->RxControl[2] &= ~RTSFC_EN; \ 640 (ChP)->RxControl[2] &= ~RTSFC_EN; \
650 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ 641 out32((ChP)->IndexAddr,(ChP)->RxControl); \
651 (ChP)->TxControl[2] |= RTSTOG_EN; \ 642 (ChP)->TxControl[2] |= RTSTOG_EN; \
652 (ChP)->TxControl[3] &= ~SET_RTS; \ 643 (ChP)->TxControl[3] &= ~SET_RTS; \
653 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 644 out32((ChP)->IndexAddr,(ChP)->TxControl); \
654 (ChP)->rtsToggle = 1; \ 645 (ChP)->rtsToggle = 1; \
655} while (0) 646} while (0)
656 647
@@ -663,7 +654,7 @@ Call: sEnRxFIFO(ChP)
663#define sEnRxFIFO(ChP) \ 654#define sEnRxFIFO(ChP) \
664do { \ 655do { \
665 (ChP)->R[0x32] = 0x08; \ 656 (ChP)->R[0x32] = 0x08; \
666 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x30]); \ 657 out32((ChP)->IndexAddr,&(ChP)->R[0x30]); \
667} while (0) 658} while (0)
668 659
669/*************************************************************************** 660/***************************************************************************
@@ -684,7 +675,7 @@ Warnings: This function must be called after valid microcode has been
684#define sEnRxProcessor(ChP) \ 675#define sEnRxProcessor(ChP) \
685do { \ 676do { \
686 (ChP)->RxControl[2] |= RXPROC_EN; \ 677 (ChP)->RxControl[2] |= RXPROC_EN; \
687 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ 678 out32((ChP)->IndexAddr,(ChP)->RxControl); \
688} while (0) 679} while (0)
689 680
690/*************************************************************************** 681/***************************************************************************
@@ -708,7 +699,7 @@ Call: sEnTransmit(ChP)
708#define sEnTransmit(ChP) \ 699#define sEnTransmit(ChP) \
709do { \ 700do { \
710 (ChP)->TxControl[3] |= TX_ENABLE; \ 701 (ChP)->TxControl[3] |= TX_ENABLE; \
711 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 702 out32((ChP)->IndexAddr,(ChP)->TxControl); \
712} while (0) 703} while (0)
713 704
714/*************************************************************************** 705/***************************************************************************
@@ -720,7 +711,7 @@ Call: sEnTxSoftFlowCtl(ChP)
720#define sEnTxSoftFlowCtl(ChP) \ 711#define sEnTxSoftFlowCtl(ChP) \
721do { \ 712do { \
722 (ChP)->R[0x06] = 0xc5; \ 713 (ChP)->R[0x06] = 0xc5; \
723 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ 714 out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \
724} while (0) 715} while (0)
725 716
726/*************************************************************************** 717/***************************************************************************
@@ -927,7 +918,7 @@ Call: sSendBreak(ChP)
927#define sSendBreak(ChP) \ 918#define sSendBreak(ChP) \
928do { \ 919do { \
929 (ChP)->TxControl[3] |= SETBREAK; \ 920 (ChP)->TxControl[3] |= SETBREAK; \
930 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 921 out32((ChP)->IndexAddr,(ChP)->TxControl); \
931} while (0) 922} while (0)
932 923
933/*************************************************************************** 924/***************************************************************************
@@ -941,7 +932,7 @@ Call: sSetBaud(ChP,Divisor)
941do { \ 932do { \
942 (ChP)->BaudDiv[2] = (Byte_t)(DIVISOR); \ 933 (ChP)->BaudDiv[2] = (Byte_t)(DIVISOR); \
943 (ChP)->BaudDiv[3] = (Byte_t)((DIVISOR) >> 8); \ 934 (ChP)->BaudDiv[3] = (Byte_t)((DIVISOR) >> 8); \
944 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->BaudDiv[0]); \ 935 out32((ChP)->IndexAddr,(ChP)->BaudDiv); \
945} while (0) 936} while (0)
946 937
947/*************************************************************************** 938/***************************************************************************
@@ -953,7 +944,7 @@ Call: sSetData7(ChP)
953#define sSetData7(ChP) \ 944#define sSetData7(ChP) \
954do { \ 945do { \
955 (ChP)->TxControl[2] &= ~DATA8BIT; \ 946 (ChP)->TxControl[2] &= ~DATA8BIT; \
956 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 947 out32((ChP)->IndexAddr,(ChP)->TxControl); \
957} while (0) 948} while (0)
958 949
959/*************************************************************************** 950/***************************************************************************
@@ -965,7 +956,7 @@ Call: sSetData8(ChP)
965#define sSetData8(ChP) \ 956#define sSetData8(ChP) \
966do { \ 957do { \
967 (ChP)->TxControl[2] |= DATA8BIT; \ 958 (ChP)->TxControl[2] |= DATA8BIT; \
968 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 959 out32((ChP)->IndexAddr,(ChP)->TxControl); \
969} while (0) 960} while (0)
970 961
971/*************************************************************************** 962/***************************************************************************
@@ -977,7 +968,7 @@ Call: sSetDTR(ChP)
977#define sSetDTR(ChP) \ 968#define sSetDTR(ChP) \
978do { \ 969do { \
979 (ChP)->TxControl[3] |= SET_DTR; \ 970 (ChP)->TxControl[3] |= SET_DTR; \
980 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 971 out32((ChP)->IndexAddr,(ChP)->TxControl); \
981} while (0) 972} while (0)
982 973
983/*************************************************************************** 974/***************************************************************************
@@ -994,7 +985,7 @@ Warnings: This function has no effect unless parity is enabled with function
994#define sSetEvenParity(ChP) \ 985#define sSetEvenParity(ChP) \
995do { \ 986do { \
996 (ChP)->TxControl[2] |= EVEN_PAR; \ 987 (ChP)->TxControl[2] |= EVEN_PAR; \
997 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 988 out32((ChP)->IndexAddr,(ChP)->TxControl); \
998} while (0) 989} while (0)
999 990
1000/*************************************************************************** 991/***************************************************************************
@@ -1011,7 +1002,7 @@ Warnings: This function has no effect unless parity is enabled with function
1011#define sSetOddParity(ChP) \ 1002#define sSetOddParity(ChP) \
1012do { \ 1003do { \
1013 (ChP)->TxControl[2] &= ~EVEN_PAR; \ 1004 (ChP)->TxControl[2] &= ~EVEN_PAR; \
1014 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 1005 out32((ChP)->IndexAddr,(ChP)->TxControl); \
1015} while (0) 1006} while (0)
1016 1007
1017/*************************************************************************** 1008/***************************************************************************
@@ -1024,7 +1015,7 @@ Call: sSetRTS(ChP)
1024do { \ 1015do { \
1025 if ((ChP)->rtsToggle) break; \ 1016 if ((ChP)->rtsToggle) break; \
1026 (ChP)->TxControl[3] |= SET_RTS; \ 1017 (ChP)->TxControl[3] |= SET_RTS; \
1027 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 1018 out32((ChP)->IndexAddr,(ChP)->TxControl); \
1028} while (0) 1019} while (0)
1029 1020
1030/*************************************************************************** 1021/***************************************************************************
@@ -1050,7 +1041,7 @@ Comments: An interrupt will be generated when the trigger level is reached
1050do { \ 1041do { \
1051 (ChP)->RxControl[2] &= ~TRIG_MASK; \ 1042 (ChP)->RxControl[2] &= ~TRIG_MASK; \
1052 (ChP)->RxControl[2] |= LEVEL; \ 1043 (ChP)->RxControl[2] |= LEVEL; \
1053 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ 1044 out32((ChP)->IndexAddr,(ChP)->RxControl); \
1054} while (0) 1045} while (0)
1055 1046
1056/*************************************************************************** 1047/***************************************************************************
@@ -1062,7 +1053,7 @@ Call: sSetStop1(ChP)
1062#define sSetStop1(ChP) \ 1053#define sSetStop1(ChP) \
1063do { \ 1054do { \
1064 (ChP)->TxControl[2] &= ~STOP2; \ 1055 (ChP)->TxControl[2] &= ~STOP2; \
1065 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 1056 out32((ChP)->IndexAddr,(ChP)->TxControl); \
1066} while (0) 1057} while (0)
1067 1058
1068/*************************************************************************** 1059/***************************************************************************
@@ -1074,7 +1065,7 @@ Call: sSetStop2(ChP)
1074#define sSetStop2(ChP) \ 1065#define sSetStop2(ChP) \
1075do { \ 1066do { \
1076 (ChP)->TxControl[2] |= STOP2; \ 1067 (ChP)->TxControl[2] |= STOP2; \
1077 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ 1068 out32((ChP)->IndexAddr,(ChP)->TxControl); \
1078} while (0) 1069} while (0)
1079 1070
1080/*************************************************************************** 1071/***************************************************************************
@@ -1087,7 +1078,7 @@ Call: sSetTxXOFFChar(ChP,Ch)
1087#define sSetTxXOFFChar(ChP,CH) \ 1078#define sSetTxXOFFChar(ChP,CH) \
1088do { \ 1079do { \
1089 (ChP)->R[0x07] = (CH); \ 1080 (ChP)->R[0x07] = (CH); \
1090 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ 1081 out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \
1091} while (0) 1082} while (0)
1092 1083
1093/*************************************************************************** 1084/***************************************************************************
@@ -1100,7 +1091,7 @@ Call: sSetTxXONChar(ChP,Ch)
1100#define sSetTxXONChar(ChP,CH) \ 1091#define sSetTxXONChar(ChP,CH) \
1101do { \ 1092do { \
1102 (ChP)->R[0x0b] = (CH); \ 1093 (ChP)->R[0x0b] = (CH); \
1103 sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x08]); \ 1094 out32((ChP)->IndexAddr,&(ChP)->R[0x08]); \
1104} while (0) 1095} while (0)
1105 1096
1106/*************************************************************************** 1097/***************************************************************************
@@ -1113,7 +1104,7 @@ Comments: This function is used to start a Rx processor after it was
1113 will restart both the Rx processor and software input flow control. 1104 will restart both the Rx processor and software input flow control.
1114 1105
1115*/ 1106*/
1116#define sStartRxProcessor(ChP) sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0]) 1107#define sStartRxProcessor(ChP) out32((ChP)->IndexAddr,&(ChP)->R[0])
1117 1108
1118/*************************************************************************** 1109/***************************************************************************
1119Function: sWriteTxByte 1110Function: sWriteTxByte
diff --git a/drivers/connector/cn_queue.c b/drivers/connector/cn_queue.c
index 5732ca3259f9..b6fe7e7a2c2f 100644
--- a/drivers/connector/cn_queue.c
+++ b/drivers/connector/cn_queue.c
@@ -146,7 +146,7 @@ struct cn_queue_dev *cn_queue_alloc_dev(char *name, struct sock *nls)
146 146
147 dev->nls = nls; 147 dev->nls = nls;
148 148
149 dev->cn_queue = create_workqueue(dev->name); 149 dev->cn_queue = create_singlethread_workqueue(dev->name);
150 if (!dev->cn_queue) { 150 if (!dev->cn_queue) {
151 kfree(dev); 151 kfree(dev);
152 return NULL; 152 return NULL;
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index d73663a52324..fc555a90bb21 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -67,7 +67,7 @@ static void cpuidle_idle_call(void)
67 /* enter the state and update stats */ 67 /* enter the state and update stats */
68 dev->last_residency = target_state->enter(dev, target_state); 68 dev->last_residency = target_state->enter(dev, target_state);
69 dev->last_state = target_state; 69 dev->last_state = target_state;
70 target_state->time += dev->last_residency; 70 target_state->time += (unsigned long long)dev->last_residency;
71 target_state->usage++; 71 target_state->usage++;
72 72
73 /* give the governor an opportunity to reflect on the outcome */ 73 /* give the governor an opportunity to reflect on the outcome */
@@ -224,7 +224,7 @@ static void poll_idle_init(struct cpuidle_device *dev)
224 state->exit_latency = 0; 224 state->exit_latency = 0;
225 state->target_residency = 0; 225 state->target_residency = 0;
226 state->power_usage = -1; 226 state->power_usage = -1;
227 state->flags = CPUIDLE_FLAG_POLL | CPUIDLE_FLAG_TIME_VALID; 227 state->flags = CPUIDLE_FLAG_POLL;
228 state->enter = poll_idle; 228 state->enter = poll_idle;
229} 229}
230#else 230#else
diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
index 69102ca05685..e949618b9be0 100644
--- a/drivers/cpuidle/sysfs.c
+++ b/drivers/cpuidle/sysfs.c
@@ -218,6 +218,12 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
218 return sprintf(buf, "%u\n", state->_name);\ 218 return sprintf(buf, "%u\n", state->_name);\
219} 219}
220 220
221#define define_show_state_ull_function(_name) \
222static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
223{ \
224 return sprintf(buf, "%llu\n", state->_name);\
225}
226
221#define define_show_state_str_function(_name) \ 227#define define_show_state_str_function(_name) \
222static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \ 228static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
223{ \ 229{ \
@@ -228,8 +234,8 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, char *buf) \
228 234
229define_show_state_function(exit_latency) 235define_show_state_function(exit_latency)
230define_show_state_function(power_usage) 236define_show_state_function(power_usage)
231define_show_state_function(usage) 237define_show_state_ull_function(usage)
232define_show_state_function(time) 238define_show_state_ull_function(time)
233define_show_state_str_function(name) 239define_show_state_str_function(name)
234define_show_state_str_function(desc) 240define_show_state_str_function(desc)
235 241
diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index 3110bf7014f7..81f3f950cd7d 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -392,8 +392,8 @@ static atomic_t hifn_dev_number;
392 392
393struct hifn_desc 393struct hifn_desc
394{ 394{
395 volatile u32 l; 395 volatile __le32 l;
396 volatile u32 p; 396 volatile __le32 p;
397}; 397};
398 398
399struct hifn_dma { 399struct hifn_dma {
@@ -481,10 +481,10 @@ struct hifn_device
481 481
482struct hifn_base_command 482struct hifn_base_command
483{ 483{
484 volatile u16 masks; 484 volatile __le16 masks;
485 volatile u16 session_num; 485 volatile __le16 session_num;
486 volatile u16 total_source_count; 486 volatile __le16 total_source_count;
487 volatile u16 total_dest_count; 487 volatile __le16 total_dest_count;
488}; 488};
489 489
490#define HIFN_BASE_CMD_COMP 0x0100 /* enable compression engine */ 490#define HIFN_BASE_CMD_COMP 0x0100 /* enable compression engine */
@@ -504,10 +504,10 @@ struct hifn_base_command
504 */ 504 */
505struct hifn_crypt_command 505struct hifn_crypt_command
506{ 506{
507 volatile u16 masks; 507 volatile __le16 masks;
508 volatile u16 header_skip; 508 volatile __le16 header_skip;
509 volatile u16 source_count; 509 volatile __le16 source_count;
510 volatile u16 reserved; 510 volatile __le16 reserved;
511}; 511};
512 512
513#define HIFN_CRYPT_CMD_ALG_MASK 0x0003 /* algorithm: */ 513#define HIFN_CRYPT_CMD_ALG_MASK 0x0003 /* algorithm: */
@@ -670,7 +670,7 @@ static inline u32 hifn_read_0(struct hifn_device *dev, u32 reg)
670{ 670{
671 u32 ret; 671 u32 ret;
672 672
673 ret = readl((char *)(dev->bar[0]) + reg); 673 ret = readl(dev->bar[0] + reg);
674 674
675 return ret; 675 return ret;
676} 676}
@@ -679,19 +679,19 @@ static inline u32 hifn_read_1(struct hifn_device *dev, u32 reg)
679{ 679{
680 u32 ret; 680 u32 ret;
681 681
682 ret = readl((char *)(dev->bar[1]) + reg); 682 ret = readl(dev->bar[1] + reg);
683 683
684 return ret; 684 return ret;
685} 685}
686 686
687static inline void hifn_write_0(struct hifn_device *dev, u32 reg, u32 val) 687static inline void hifn_write_0(struct hifn_device *dev, u32 reg, u32 val)
688{ 688{
689 writel(val, (char *)(dev->bar[0]) + reg); 689 writel(val, dev->bar[0] + reg);
690} 690}
691 691
692static inline void hifn_write_1(struct hifn_device *dev, u32 reg, u32 val) 692static inline void hifn_write_1(struct hifn_device *dev, u32 reg, u32 val)
693{ 693{
694 writel(val, (char *)(dev->bar[1]) + reg); 694 writel(val, dev->bar[1] + reg);
695} 695}
696 696
697static void hifn_wait_puc(struct hifn_device *dev) 697static void hifn_wait_puc(struct hifn_device *dev)
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 29965231b912..8db0e7f9d3f4 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -357,7 +357,7 @@ int dma_async_device_register(struct dma_device *device)
357 !device->device_prep_dma_zero_sum); 357 !device->device_prep_dma_zero_sum);
358 BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) && 358 BUG_ON(dma_has_cap(DMA_MEMSET, device->cap_mask) &&
359 !device->device_prep_dma_memset); 359 !device->device_prep_dma_memset);
360 BUG_ON(dma_has_cap(DMA_ZERO_SUM, device->cap_mask) && 360 BUG_ON(dma_has_cap(DMA_INTERRUPT, device->cap_mask) &&
361 !device->device_prep_dma_interrupt); 361 !device->device_prep_dma_interrupt);
362 362
363 BUG_ON(!device->device_alloc_chan_resources); 363 BUG_ON(!device->device_alloc_chan_resources);
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index cc9a68158d99..72692309398a 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -57,12 +57,12 @@ static void dma_init(struct fsl_dma_chan *fsl_chan)
57 57
58} 58}
59 59
60static void set_sr(struct fsl_dma_chan *fsl_chan, dma_addr_t val) 60static void set_sr(struct fsl_dma_chan *fsl_chan, u32 val)
61{ 61{
62 DMA_OUT(fsl_chan, &fsl_chan->reg_base->sr, val, 32); 62 DMA_OUT(fsl_chan, &fsl_chan->reg_base->sr, val, 32);
63} 63}
64 64
65static dma_addr_t get_sr(struct fsl_dma_chan *fsl_chan) 65static u32 get_sr(struct fsl_dma_chan *fsl_chan)
66{ 66{
67 return DMA_IN(fsl_chan, &fsl_chan->reg_base->sr, 32); 67 return DMA_IN(fsl_chan, &fsl_chan->reg_base->sr, 32);
68} 68}
@@ -123,6 +123,11 @@ static dma_addr_t get_ndar(struct fsl_dma_chan *fsl_chan)
123 return DMA_IN(fsl_chan, &fsl_chan->reg_base->ndar, 64); 123 return DMA_IN(fsl_chan, &fsl_chan->reg_base->ndar, 64);
124} 124}
125 125
126static u32 get_bcr(struct fsl_dma_chan *fsl_chan)
127{
128 return DMA_IN(fsl_chan, &fsl_chan->reg_base->bcr, 32);
129}
130
126static int dma_is_idle(struct fsl_dma_chan *fsl_chan) 131static int dma_is_idle(struct fsl_dma_chan *fsl_chan)
127{ 132{
128 u32 sr = get_sr(fsl_chan); 133 u32 sr = get_sr(fsl_chan);
@@ -406,6 +411,35 @@ static void fsl_dma_free_chan_resources(struct dma_chan *chan)
406 dma_pool_destroy(fsl_chan->desc_pool); 411 dma_pool_destroy(fsl_chan->desc_pool);
407} 412}
408 413
414static struct dma_async_tx_descriptor *
415fsl_dma_prep_interrupt(struct dma_chan *chan)
416{
417 struct fsl_dma_chan *fsl_chan;
418 struct fsl_desc_sw *new;
419
420 if (!chan)
421 return NULL;
422
423 fsl_chan = to_fsl_chan(chan);
424
425 new = fsl_dma_alloc_descriptor(fsl_chan);
426 if (!new) {
427 dev_err(fsl_chan->dev, "No free memory for link descriptor\n");
428 return NULL;
429 }
430
431 new->async_tx.cookie = -EBUSY;
432 new->async_tx.ack = 0;
433
434 /* Insert the link descriptor to the LD ring */
435 list_add_tail(&new->node, &new->async_tx.tx_list);
436
437 /* Set End-of-link to the last link descriptor of new list*/
438 set_ld_eol(fsl_chan, new);
439
440 return &new->async_tx;
441}
442
409static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy( 443static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
410 struct dma_chan *chan, dma_addr_t dma_dest, dma_addr_t dma_src, 444 struct dma_chan *chan, dma_addr_t dma_dest, dma_addr_t dma_src,
411 size_t len, unsigned long flags) 445 size_t len, unsigned long flags)
@@ -436,7 +470,7 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
436 dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new); 470 dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new);
437#endif 471#endif
438 472
439 copy = min(len, FSL_DMA_BCR_MAX_CNT); 473 copy = min(len, (size_t)FSL_DMA_BCR_MAX_CNT);
440 474
441 set_desc_cnt(fsl_chan, &new->hw, copy); 475 set_desc_cnt(fsl_chan, &new->hw, copy);
442 set_desc_src(fsl_chan, &new->hw, dma_src); 476 set_desc_src(fsl_chan, &new->hw, dma_src);
@@ -513,7 +547,6 @@ static void fsl_chan_ld_cleanup(struct fsl_dma_chan *fsl_chan)
513 547
514 spin_lock_irqsave(&fsl_chan->desc_lock, flags); 548 spin_lock_irqsave(&fsl_chan->desc_lock, flags);
515 549
516 fsl_dma_update_completed_cookie(fsl_chan);
517 dev_dbg(fsl_chan->dev, "chan completed_cookie = %d\n", 550 dev_dbg(fsl_chan->dev, "chan completed_cookie = %d\n",
518 fsl_chan->completed_cookie); 551 fsl_chan->completed_cookie);
519 list_for_each_entry_safe(desc, _desc, &fsl_chan->ld_queue, node) { 552 list_for_each_entry_safe(desc, _desc, &fsl_chan->ld_queue, node) {
@@ -581,8 +614,8 @@ static void fsl_chan_xfer_ld_queue(struct fsl_dma_chan *fsl_chan)
581 if (ld_node != &fsl_chan->ld_queue) { 614 if (ld_node != &fsl_chan->ld_queue) {
582 /* Get the ld start address from ld_queue */ 615 /* Get the ld start address from ld_queue */
583 next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys; 616 next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys;
584 dev_dbg(fsl_chan->dev, "xfer LDs staring from 0x%016llx\n", 617 dev_dbg(fsl_chan->dev, "xfer LDs staring from %p\n",
585 (u64)next_dest_addr); 618 (void *)next_dest_addr);
586 set_cdar(fsl_chan, next_dest_addr); 619 set_cdar(fsl_chan, next_dest_addr);
587 dma_start(fsl_chan); 620 dma_start(fsl_chan);
588 } else { 621 } else {
@@ -662,7 +695,7 @@ static enum dma_status fsl_dma_is_complete(struct dma_chan *chan,
662static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data) 695static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data)
663{ 696{
664 struct fsl_dma_chan *fsl_chan = (struct fsl_dma_chan *)data; 697 struct fsl_dma_chan *fsl_chan = (struct fsl_dma_chan *)data;
665 dma_addr_t stat; 698 u32 stat;
666 699
667 stat = get_sr(fsl_chan); 700 stat = get_sr(fsl_chan);
668 dev_dbg(fsl_chan->dev, "event: channel %d, stat = 0x%x\n", 701 dev_dbg(fsl_chan->dev, "event: channel %d, stat = 0x%x\n",
@@ -676,15 +709,32 @@ static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data)
676 if (stat & FSL_DMA_SR_TE) 709 if (stat & FSL_DMA_SR_TE)
677 dev_err(fsl_chan->dev, "Transfer Error!\n"); 710 dev_err(fsl_chan->dev, "Transfer Error!\n");
678 711
712 /* Programming Error
713 * The DMA_INTERRUPT async_tx is a NULL transfer, which will
714 * triger a PE interrupt.
715 */
716 if (stat & FSL_DMA_SR_PE) {
717 dev_dbg(fsl_chan->dev, "event: Programming Error INT\n");
718 if (get_bcr(fsl_chan) == 0) {
719 /* BCR register is 0, this is a DMA_INTERRUPT async_tx.
720 * Now, update the completed cookie, and continue the
721 * next uncompleted transfer.
722 */
723 fsl_dma_update_completed_cookie(fsl_chan);
724 fsl_chan_xfer_ld_queue(fsl_chan);
725 }
726 stat &= ~FSL_DMA_SR_PE;
727 }
728
679 /* If the link descriptor segment transfer finishes, 729 /* If the link descriptor segment transfer finishes,
680 * we will recycle the used descriptor. 730 * we will recycle the used descriptor.
681 */ 731 */
682 if (stat & FSL_DMA_SR_EOSI) { 732 if (stat & FSL_DMA_SR_EOSI) {
683 dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n"); 733 dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n");
684 dev_dbg(fsl_chan->dev, "event: clndar 0x%016llx, " 734 dev_dbg(fsl_chan->dev, "event: clndar %p, nlndar %p\n",
685 "nlndar 0x%016llx\n", (u64)get_cdar(fsl_chan), 735 (void *)get_cdar(fsl_chan), (void *)get_ndar(fsl_chan));
686 (u64)get_ndar(fsl_chan));
687 stat &= ~FSL_DMA_SR_EOSI; 736 stat &= ~FSL_DMA_SR_EOSI;
737 fsl_dma_update_completed_cookie(fsl_chan);
688 } 738 }
689 739
690 /* If it current transfer is the end-of-transfer, 740 /* If it current transfer is the end-of-transfer,
@@ -726,12 +776,15 @@ static void dma_do_tasklet(unsigned long data)
726 fsl_chan_ld_cleanup(fsl_chan); 776 fsl_chan_ld_cleanup(fsl_chan);
727} 777}
728 778
779#ifdef FSL_DMA_CALLBACKTEST
729static void fsl_dma_callback_test(struct fsl_dma_chan *fsl_chan) 780static void fsl_dma_callback_test(struct fsl_dma_chan *fsl_chan)
730{ 781{
731 if (fsl_chan) 782 if (fsl_chan)
732 dev_info(fsl_chan->dev, "selftest: callback is ok!\n"); 783 dev_info(fsl_chan->dev, "selftest: callback is ok!\n");
733} 784}
785#endif
734 786
787#ifdef CONFIG_FSL_DMA_SELFTEST
735static int fsl_dma_self_test(struct fsl_dma_chan *fsl_chan) 788static int fsl_dma_self_test(struct fsl_dma_chan *fsl_chan)
736{ 789{
737 struct dma_chan *chan; 790 struct dma_chan *chan;
@@ -813,6 +866,11 @@ static int fsl_dma_self_test(struct fsl_dma_chan *fsl_chan)
813 tx3 = fsl_dma_prep_memcpy(chan, dma_dest, dma_src, test_size / 4, 0); 866 tx3 = fsl_dma_prep_memcpy(chan, dma_dest, dma_src, test_size / 4, 0);
814 async_tx_ack(tx3); 867 async_tx_ack(tx3);
815 868
869 /* Interrupt tx test */
870 tx1 = fsl_dma_prep_interrupt(chan);
871 async_tx_ack(tx1);
872 cookie = fsl_dma_tx_submit(tx1);
873
816 /* Test exchanging the prepared tx sort */ 874 /* Test exchanging the prepared tx sort */
817 cookie = fsl_dma_tx_submit(tx3); 875 cookie = fsl_dma_tx_submit(tx3);
818 cookie = fsl_dma_tx_submit(tx2); 876 cookie = fsl_dma_tx_submit(tx2);
@@ -837,9 +895,9 @@ static int fsl_dma_self_test(struct fsl_dma_chan *fsl_chan)
837 if (err) { 895 if (err) {
838 for (i = 0; (*(src + i) == *(dest + i)) && (i < test_size); 896 for (i = 0; (*(src + i) == *(dest + i)) && (i < test_size);
839 i++); 897 i++);
840 dev_err(fsl_chan->dev, "selftest: Test failed, data %d/%d is " 898 dev_err(fsl_chan->dev, "selftest: Test failed, data %d/%ld is "
841 "error! src 0x%x, dest 0x%x\n", 899 "error! src 0x%x, dest 0x%x\n",
842 i, test_size, *(src + i), *(dest + i)); 900 i, (long)test_size, *(src + i), *(dest + i));
843 } 901 }
844 902
845free_resources: 903free_resources:
@@ -848,6 +906,7 @@ out:
848 kfree(src); 906 kfree(src);
849 return err; 907 return err;
850} 908}
909#endif
851 910
852static int __devinit of_fsl_dma_chan_probe(struct of_device *dev, 911static int __devinit of_fsl_dma_chan_probe(struct of_device *dev,
853 const struct of_device_id *match) 912 const struct of_device_id *match)
@@ -1008,8 +1067,8 @@ static int __devinit of_fsl_dma_probe(struct of_device *dev,
1008 } 1067 }
1009 1068
1010 dev_info(&dev->dev, "Probe the Freescale DMA driver for %s " 1069 dev_info(&dev->dev, "Probe the Freescale DMA driver for %s "
1011 "controller at 0x%08x...\n", 1070 "controller at %p...\n",
1012 match->compatible, fdev->reg.start); 1071 match->compatible, (void *)fdev->reg.start);
1013 fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end 1072 fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end
1014 - fdev->reg.start + 1); 1073 - fdev->reg.start + 1);
1015 1074
@@ -1017,6 +1076,7 @@ static int __devinit of_fsl_dma_probe(struct of_device *dev,
1017 dma_cap_set(DMA_INTERRUPT, fdev->common.cap_mask); 1076 dma_cap_set(DMA_INTERRUPT, fdev->common.cap_mask);
1018 fdev->common.device_alloc_chan_resources = fsl_dma_alloc_chan_resources; 1077 fdev->common.device_alloc_chan_resources = fsl_dma_alloc_chan_resources;
1019 fdev->common.device_free_chan_resources = fsl_dma_free_chan_resources; 1078 fdev->common.device_free_chan_resources = fsl_dma_free_chan_resources;
1079 fdev->common.device_prep_dma_interrupt = fsl_dma_prep_interrupt;
1020 fdev->common.device_prep_dma_memcpy = fsl_dma_prep_memcpy; 1080 fdev->common.device_prep_dma_memcpy = fsl_dma_prep_memcpy;
1021 fdev->common.device_is_tx_complete = fsl_dma_is_complete; 1081 fdev->common.device_is_tx_complete = fsl_dma_is_complete;
1022 fdev->common.device_issue_pending = fsl_dma_memcpy_issue_pending; 1082 fdev->common.device_issue_pending = fsl_dma_memcpy_issue_pending;
diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h
index ba78c42121ba..6faf07ba0d0e 100644
--- a/drivers/dma/fsldma.h
+++ b/drivers/dma/fsldma.h
@@ -40,6 +40,7 @@
40#define FSL_DMA_MR_EOTIE 0x00000080 40#define FSL_DMA_MR_EOTIE 0x00000080
41 41
42#define FSL_DMA_SR_CH 0x00000020 42#define FSL_DMA_SR_CH 0x00000020
43#define FSL_DMA_SR_PE 0x00000010
43#define FSL_DMA_SR_CB 0x00000004 44#define FSL_DMA_SR_CB 0x00000004
44#define FSL_DMA_SR_TE 0x00000080 45#define FSL_DMA_SR_TE 0x00000080
45#define FSL_DMA_SR_EOSI 0x00000002 46#define FSL_DMA_SR_EOSI 0x00000002
@@ -74,12 +75,15 @@
74#define FSL_DMA_DGSR_EOSI 0x02 75#define FSL_DMA_DGSR_EOSI 0x02
75#define FSL_DMA_DGSR_EOLSI 0x01 76#define FSL_DMA_DGSR_EOLSI 0x01
76 77
78typedef u64 __bitwise v64;
79typedef u32 __bitwise v32;
80
77struct fsl_dma_ld_hw { 81struct fsl_dma_ld_hw {
78 u64 __bitwise src_addr; 82 v64 src_addr;
79 u64 __bitwise dst_addr; 83 v64 dst_addr;
80 u64 __bitwise next_ln_addr; 84 v64 next_ln_addr;
81 u32 __bitwise count; 85 v32 count;
82 u32 __bitwise reserve; 86 v32 reserve;
83} __attribute__((aligned(32))); 87} __attribute__((aligned(32)));
84 88
85struct fsl_desc_sw { 89struct fsl_desc_sw {
@@ -91,13 +95,13 @@ struct fsl_desc_sw {
91} __attribute__((aligned(32))); 95} __attribute__((aligned(32)));
92 96
93struct fsl_dma_chan_regs { 97struct fsl_dma_chan_regs {
94 u32 __bitwise mr; /* 0x00 - Mode Register */ 98 u32 mr; /* 0x00 - Mode Register */
95 u32 __bitwise sr; /* 0x04 - Status Register */ 99 u32 sr; /* 0x04 - Status Register */
96 u64 __bitwise cdar; /* 0x08 - Current descriptor address register */ 100 u64 cdar; /* 0x08 - Current descriptor address register */
97 u64 __bitwise sar; /* 0x10 - Source Address Register */ 101 u64 sar; /* 0x10 - Source Address Register */
98 u64 __bitwise dar; /* 0x18 - Destination Address Register */ 102 u64 dar; /* 0x18 - Destination Address Register */
99 u32 __bitwise bcr; /* 0x20 - Byte Count Register */ 103 u32 bcr; /* 0x20 - Byte Count Register */
100 u64 __bitwise ndar; /* 0x24 - Next Descriptor Address Register */ 104 u64 ndar; /* 0x24 - Next Descriptor Address Register */
101}; 105};
102 106
103struct fsl_dma_chan; 107struct fsl_dma_chan;
@@ -150,25 +154,27 @@ struct fsl_dma_chan {
150#ifndef __powerpc64__ 154#ifndef __powerpc64__
151static u64 in_be64(const u64 __iomem *addr) 155static u64 in_be64(const u64 __iomem *addr)
152{ 156{
153 return ((u64)in_be32((u32 *)addr) << 32) | (in_be32((u32 *)addr + 1)); 157 return ((u64)in_be32((u32 __iomem *)addr) << 32) |
158 (in_be32((u32 __iomem *)addr + 1));
154} 159}
155 160
156static void out_be64(u64 __iomem *addr, u64 val) 161static void out_be64(u64 __iomem *addr, u64 val)
157{ 162{
158 out_be32((u32 *)addr, val >> 32); 163 out_be32((u32 __iomem *)addr, val >> 32);
159 out_be32((u32 *)addr + 1, (u32)val); 164 out_be32((u32 __iomem *)addr + 1, (u32)val);
160} 165}
161 166
162/* There is no asm instructions for 64 bits reverse loads and stores */ 167/* There is no asm instructions for 64 bits reverse loads and stores */
163static u64 in_le64(const u64 __iomem *addr) 168static u64 in_le64(const u64 __iomem *addr)
164{ 169{
165 return ((u64)in_le32((u32 *)addr + 1) << 32) | (in_le32((u32 *)addr)); 170 return ((u64)in_le32((u32 __iomem *)addr + 1) << 32) |
171 (in_le32((u32 __iomem *)addr));
166} 172}
167 173
168static void out_le64(u64 __iomem *addr, u64 val) 174static void out_le64(u64 __iomem *addr, u64 val)
169{ 175{
170 out_le32((u32 *)addr + 1, val >> 32); 176 out_le32((u32 __iomem *)addr + 1, val >> 32);
171 out_le32((u32 *)addr, (u32)val); 177 out_le32((u32 __iomem *)addr, (u32)val);
172} 178}
173#endif 179#endif
174 180
@@ -181,9 +187,11 @@ static void out_le64(u64 __iomem *addr, u64 val)
181 187
182#define DMA_TO_CPU(fsl_chan, d, width) \ 188#define DMA_TO_CPU(fsl_chan, d, width) \
183 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \ 189 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
184 be##width##_to_cpu(d) : le##width##_to_cpu(d)) 190 be##width##_to_cpu((__force __be##width)(v##width)d) : \
191 le##width##_to_cpu((__force __le##width)(v##width)d))
185#define CPU_TO_DMA(fsl_chan, c, width) \ 192#define CPU_TO_DMA(fsl_chan, c, width) \
186 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \ 193 (((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ? \
187 cpu_to_be##width(c) : cpu_to_le##width(c)) 194 (__force v##width)cpu_to_be##width(c) : \
195 (__force v##width)cpu_to_le##width(c))
188 196
189#endif /* __DMA_FSLDMA_H */ 197#endif /* __DMA_FSLDMA_H */
diff --git a/drivers/dma/ioat_dca.c b/drivers/dma/ioat_dca.c
index 0fa8a98051a8..9e922760b7ff 100644
--- a/drivers/dma/ioat_dca.c
+++ b/drivers/dma/ioat_dca.c
@@ -98,7 +98,7 @@ struct ioat_dca_slot {
98 98
99struct ioat_dca_priv { 99struct ioat_dca_priv {
100 void __iomem *iobase; 100 void __iomem *iobase;
101 void *dca_base; 101 void __iomem *dca_base;
102 int max_requesters; 102 int max_requesters;
103 int requester_count; 103 int requester_count;
104 u8 tag_map[IOAT_TAG_MAP_LEN]; 104 u8 tag_map[IOAT_TAG_MAP_LEN];
@@ -338,7 +338,7 @@ static struct dca_ops ioat2_dca_ops = {
338 .get_tag = ioat2_dca_get_tag, 338 .get_tag = ioat2_dca_get_tag,
339}; 339};
340 340
341static int ioat2_dca_count_dca_slots(void *iobase, u16 dca_offset) 341static int ioat2_dca_count_dca_slots(void __iomem *iobase, u16 dca_offset)
342{ 342{
343 int slots = 0; 343 int slots = 0;
344 u32 req; 344 u32 req;
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index 3986d54492bd..f82b0906d466 100644
--- a/drivers/dma/iop-adma.c
+++ b/drivers/dma/iop-adma.c
@@ -140,7 +140,7 @@ static void __iop_adma_slot_cleanup(struct iop_adma_chan *iop_chan)
140 int busy = iop_chan_is_busy(iop_chan); 140 int busy = iop_chan_is_busy(iop_chan);
141 int seen_current = 0, slot_cnt = 0, slots_per_op = 0; 141 int seen_current = 0, slot_cnt = 0, slots_per_op = 0;
142 142
143 dev_dbg(iop_chan->device->common.dev, "%s\n", __FUNCTION__); 143 dev_dbg(iop_chan->device->common.dev, "%s\n", __func__);
144 /* free completed slots from the chain starting with 144 /* free completed slots from the chain starting with
145 * the oldest descriptor 145 * the oldest descriptor
146 */ 146 */
@@ -438,7 +438,7 @@ iop_adma_tx_submit(struct dma_async_tx_descriptor *tx)
438 spin_unlock_bh(&iop_chan->lock); 438 spin_unlock_bh(&iop_chan->lock);
439 439
440 dev_dbg(iop_chan->device->common.dev, "%s cookie: %d slot: %d\n", 440 dev_dbg(iop_chan->device->common.dev, "%s cookie: %d slot: %d\n",
441 __FUNCTION__, sw_desc->async_tx.cookie, sw_desc->idx); 441 __func__, sw_desc->async_tx.cookie, sw_desc->idx);
442 442
443 return cookie; 443 return cookie;
444} 444}
@@ -520,7 +520,7 @@ iop_adma_prep_dma_interrupt(struct dma_chan *chan)
520 struct iop_adma_desc_slot *sw_desc, *grp_start; 520 struct iop_adma_desc_slot *sw_desc, *grp_start;
521 int slot_cnt, slots_per_op; 521 int slot_cnt, slots_per_op;
522 522
523 dev_dbg(iop_chan->device->common.dev, "%s\n", __FUNCTION__); 523 dev_dbg(iop_chan->device->common.dev, "%s\n", __func__);
524 524
525 spin_lock_bh(&iop_chan->lock); 525 spin_lock_bh(&iop_chan->lock);
526 slot_cnt = iop_chan_interrupt_slot_count(&slots_per_op, iop_chan); 526 slot_cnt = iop_chan_interrupt_slot_count(&slots_per_op, iop_chan);
@@ -548,7 +548,7 @@ iop_adma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dma_dest,
548 BUG_ON(unlikely(len > IOP_ADMA_MAX_BYTE_COUNT)); 548 BUG_ON(unlikely(len > IOP_ADMA_MAX_BYTE_COUNT));
549 549
550 dev_dbg(iop_chan->device->common.dev, "%s len: %u\n", 550 dev_dbg(iop_chan->device->common.dev, "%s len: %u\n",
551 __FUNCTION__, len); 551 __func__, len);
552 552
553 spin_lock_bh(&iop_chan->lock); 553 spin_lock_bh(&iop_chan->lock);
554 slot_cnt = iop_chan_memcpy_slot_count(len, &slots_per_op); 554 slot_cnt = iop_chan_memcpy_slot_count(len, &slots_per_op);
@@ -580,7 +580,7 @@ iop_adma_prep_dma_memset(struct dma_chan *chan, dma_addr_t dma_dest,
580 BUG_ON(unlikely(len > IOP_ADMA_MAX_BYTE_COUNT)); 580 BUG_ON(unlikely(len > IOP_ADMA_MAX_BYTE_COUNT));
581 581
582 dev_dbg(iop_chan->device->common.dev, "%s len: %u\n", 582 dev_dbg(iop_chan->device->common.dev, "%s len: %u\n",
583 __FUNCTION__, len); 583 __func__, len);
584 584
585 spin_lock_bh(&iop_chan->lock); 585 spin_lock_bh(&iop_chan->lock);
586 slot_cnt = iop_chan_memset_slot_count(len, &slots_per_op); 586 slot_cnt = iop_chan_memset_slot_count(len, &slots_per_op);
@@ -614,7 +614,7 @@ iop_adma_prep_dma_xor(struct dma_chan *chan, dma_addr_t dma_dest,
614 614
615 dev_dbg(iop_chan->device->common.dev, 615 dev_dbg(iop_chan->device->common.dev,
616 "%s src_cnt: %d len: %u flags: %lx\n", 616 "%s src_cnt: %d len: %u flags: %lx\n",
617 __FUNCTION__, src_cnt, len, flags); 617 __func__, src_cnt, len, flags);
618 618
619 spin_lock_bh(&iop_chan->lock); 619 spin_lock_bh(&iop_chan->lock);
620 slot_cnt = iop_chan_xor_slot_count(len, src_cnt, &slots_per_op); 620 slot_cnt = iop_chan_xor_slot_count(len, src_cnt, &slots_per_op);
@@ -648,7 +648,7 @@ iop_adma_prep_dma_zero_sum(struct dma_chan *chan, dma_addr_t *dma_src,
648 return NULL; 648 return NULL;
649 649
650 dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %u\n", 650 dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %u\n",
651 __FUNCTION__, src_cnt, len); 651 __func__, src_cnt, len);
652 652
653 spin_lock_bh(&iop_chan->lock); 653 spin_lock_bh(&iop_chan->lock);
654 slot_cnt = iop_chan_zero_sum_slot_count(len, src_cnt, &slots_per_op); 654 slot_cnt = iop_chan_zero_sum_slot_count(len, src_cnt, &slots_per_op);
@@ -659,7 +659,7 @@ iop_adma_prep_dma_zero_sum(struct dma_chan *chan, dma_addr_t *dma_src,
659 iop_desc_set_zero_sum_byte_count(grp_start, len); 659 iop_desc_set_zero_sum_byte_count(grp_start, len);
660 grp_start->xor_check_result = result; 660 grp_start->xor_check_result = result;
661 pr_debug("\t%s: grp_start->xor_check_result: %p\n", 661 pr_debug("\t%s: grp_start->xor_check_result: %p\n",
662 __FUNCTION__, grp_start->xor_check_result); 662 __func__, grp_start->xor_check_result);
663 sw_desc->unmap_src_cnt = src_cnt; 663 sw_desc->unmap_src_cnt = src_cnt;
664 sw_desc->unmap_len = len; 664 sw_desc->unmap_len = len;
665 while (src_cnt--) 665 while (src_cnt--)
@@ -700,7 +700,7 @@ static void iop_adma_free_chan_resources(struct dma_chan *chan)
700 iop_chan->last_used = NULL; 700 iop_chan->last_used = NULL;
701 701
702 dev_dbg(iop_chan->device->common.dev, "%s slots_allocated %d\n", 702 dev_dbg(iop_chan->device->common.dev, "%s slots_allocated %d\n",
703 __FUNCTION__, iop_chan->slots_allocated); 703 __func__, iop_chan->slots_allocated);
704 spin_unlock_bh(&iop_chan->lock); 704 spin_unlock_bh(&iop_chan->lock);
705 705
706 /* one is ok since we left it on there on purpose */ 706 /* one is ok since we left it on there on purpose */
@@ -753,7 +753,7 @@ static irqreturn_t iop_adma_eot_handler(int irq, void *data)
753{ 753{
754 struct iop_adma_chan *chan = data; 754 struct iop_adma_chan *chan = data;
755 755
756 dev_dbg(chan->device->common.dev, "%s\n", __FUNCTION__); 756 dev_dbg(chan->device->common.dev, "%s\n", __func__);
757 757
758 tasklet_schedule(&chan->irq_tasklet); 758 tasklet_schedule(&chan->irq_tasklet);
759 759
@@ -766,7 +766,7 @@ static irqreturn_t iop_adma_eoc_handler(int irq, void *data)
766{ 766{
767 struct iop_adma_chan *chan = data; 767 struct iop_adma_chan *chan = data;
768 768
769 dev_dbg(chan->device->common.dev, "%s\n", __FUNCTION__); 769 dev_dbg(chan->device->common.dev, "%s\n", __func__);
770 770
771 tasklet_schedule(&chan->irq_tasklet); 771 tasklet_schedule(&chan->irq_tasklet);
772 772
@@ -823,7 +823,7 @@ static int __devinit iop_adma_memcpy_self_test(struct iop_adma_device *device)
823 int err = 0; 823 int err = 0;
824 struct iop_adma_chan *iop_chan; 824 struct iop_adma_chan *iop_chan;
825 825
826 dev_dbg(device->common.dev, "%s\n", __FUNCTION__); 826 dev_dbg(device->common.dev, "%s\n", __func__);
827 827
828 src = kzalloc(sizeof(u8) * IOP_ADMA_TEST_SIZE, GFP_KERNEL); 828 src = kzalloc(sizeof(u8) * IOP_ADMA_TEST_SIZE, GFP_KERNEL);
829 if (!src) 829 if (!src)
@@ -906,7 +906,7 @@ iop_adma_xor_zero_sum_self_test(struct iop_adma_device *device)
906 int err = 0; 906 int err = 0;
907 struct iop_adma_chan *iop_chan; 907 struct iop_adma_chan *iop_chan;
908 908
909 dev_dbg(device->common.dev, "%s\n", __FUNCTION__); 909 dev_dbg(device->common.dev, "%s\n", __func__);
910 910
911 for (src_idx = 0; src_idx < IOP_ADMA_NUM_SRC_TEST; src_idx++) { 911 for (src_idx = 0; src_idx < IOP_ADMA_NUM_SRC_TEST; src_idx++) {
912 xor_srcs[src_idx] = alloc_page(GFP_KERNEL); 912 xor_srcs[src_idx] = alloc_page(GFP_KERNEL);
@@ -1159,7 +1159,7 @@ static int __devinit iop_adma_probe(struct platform_device *pdev)
1159 } 1159 }
1160 1160
1161 dev_dbg(&pdev->dev, "%s: allocted descriptor pool virt %p phys %p\n", 1161 dev_dbg(&pdev->dev, "%s: allocted descriptor pool virt %p phys %p\n",
1162 __FUNCTION__, adev->dma_desc_pool_virt, 1162 __func__, adev->dma_desc_pool_virt,
1163 (void *) adev->dma_desc_pool); 1163 (void *) adev->dma_desc_pool);
1164 1164
1165 adev->id = plat_data->hw_id; 1165 adev->id = plat_data->hw_id;
@@ -1289,7 +1289,7 @@ static void iop_chan_start_null_memcpy(struct iop_adma_chan *iop_chan)
1289 dma_cookie_t cookie; 1289 dma_cookie_t cookie;
1290 int slot_cnt, slots_per_op; 1290 int slot_cnt, slots_per_op;
1291 1291
1292 dev_dbg(iop_chan->device->common.dev, "%s\n", __FUNCTION__); 1292 dev_dbg(iop_chan->device->common.dev, "%s\n", __func__);
1293 1293
1294 spin_lock_bh(&iop_chan->lock); 1294 spin_lock_bh(&iop_chan->lock);
1295 slot_cnt = iop_chan_memcpy_slot_count(0, &slots_per_op); 1295 slot_cnt = iop_chan_memcpy_slot_count(0, &slots_per_op);
@@ -1346,7 +1346,7 @@ static void iop_chan_start_null_xor(struct iop_adma_chan *iop_chan)
1346 dma_cookie_t cookie; 1346 dma_cookie_t cookie;
1347 int slot_cnt, slots_per_op; 1347 int slot_cnt, slots_per_op;
1348 1348
1349 dev_dbg(iop_chan->device->common.dev, "%s\n", __FUNCTION__); 1349 dev_dbg(iop_chan->device->common.dev, "%s\n", __func__);
1350 1350
1351 spin_lock_bh(&iop_chan->lock); 1351 spin_lock_bh(&iop_chan->lock);
1352 slot_cnt = iop_chan_xor_slot_count(0, 2, &slots_per_op); 1352 slot_cnt = iop_chan_xor_slot_count(0, 2, &slots_per_op);
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig
index fe9e768cfbc4..25bdc2dd9ce1 100644
--- a/drivers/firewire/Kconfig
+++ b/drivers/firewire/Kconfig
@@ -1,5 +1,3 @@
1# -*- shell-script -*-
2
3comment "An alternative FireWire stack is available with EXPERIMENTAL=y" 1comment "An alternative FireWire stack is available with EXPERIMENTAL=y"
4 depends on EXPERIMENTAL=n 2 depends on EXPERIMENTAL=n
5 3
@@ -21,27 +19,7 @@ config FIREWIRE
21 NOTE: 19 NOTE:
22 20
23 You should only build ONE of the stacks, unless you REALLY know what 21 You should only build ONE of the stacks, unless you REALLY know what
24 you are doing. If you install both, you should configure them only as 22 you are doing.
25 modules rather than link them statically, and you should blacklist one
26 of the concurrent low-level drivers in /etc/modprobe.conf. Add either
27
28 blacklist firewire-ohci
29 or
30 blacklist ohci1394
31
32 there depending on which driver you DON'T want to have auto-loaded.
33 You can optionally do the same with the other IEEE 1394/ FireWire
34 drivers.
35
36 If you have an old modprobe which doesn't implement the blacklist
37 directive, use either
38
39 install firewire-ohci /bin/true
40 or
41 install ohci1394 /bin/true
42
43 and so on, depending on which modules you DON't want to have
44 auto-loaded.
45 23
46config FIREWIRE_OHCI 24config FIREWIRE_OHCI
47 tristate "Support for OHCI FireWire host controllers" 25 tristate "Support for OHCI FireWire host controllers"
@@ -57,8 +35,24 @@ config FIREWIRE_OHCI
57 35
58 NOTE: 36 NOTE:
59 37
60 If you also build ohci1394 of the classic stack, blacklist either 38 You should only build ohci1394 or firewire-ohci, but not both.
61 ohci1394 or firewire-ohci to let hotplug load only the desired driver. 39 If you nevertheless want to install both, you should configure them
40 only as modules and blacklist the driver(s) which you don't want to
41 have auto-loaded. Add either
42
43 blacklist firewire-ohci
44 or
45 blacklist ohci1394
46 blacklist video1394
47 blacklist dv1394
48
49 to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf
50 depending on your distribution. The latter two modules should be
51 blacklisted together with ohci1394 because they depend on ohci1394.
52
53 If you have an old modprobe which doesn't implement the blacklist
54 directive, use "install modulename /bin/true" for the modules to be
55 blacklisted.
62 56
63config FIREWIRE_SBP2 57config FIREWIRE_SBP2
64 tristate "Support for storage devices (SBP-2 protocol driver)" 58 tristate "Support for storage devices (SBP-2 protocol driver)"
@@ -75,9 +69,3 @@ config FIREWIRE_SBP2
75 69
76 You should also enable support for disks, CD-ROMs, etc. in the SCSI 70 You should also enable support for disks, CD-ROMs, etc. in the SCSI
77 configuration section. 71 configuration section.
78
79 NOTE:
80
81 If you also build sbp2 of the classic stack, blacklist either sbp2
82 or firewire-sbp2 to let hotplug load only the desired driver.
83
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 7ebad3c14cb8..996d61f0d460 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -33,6 +33,10 @@
33#include <asm/page.h> 33#include <asm/page.h>
34#include <asm/system.h> 34#include <asm/system.h>
35 35
36#ifdef CONFIG_PPC_PMAC
37#include <asm/pmac_feature.h>
38#endif
39
36#include "fw-ohci.h" 40#include "fw-ohci.h"
37#include "fw-transaction.h" 41#include "fw-transaction.h"
38 42
@@ -175,6 +179,7 @@ struct fw_ohci {
175 int generation; 179 int generation;
176 int request_generation; 180 int request_generation;
177 u32 bus_seconds; 181 u32 bus_seconds;
182 bool old_uninorth;
178 183
179 /* 184 /*
180 * Spinlock for accessing fw_ohci data. Never call out of 185 * Spinlock for accessing fw_ohci data. Never call out of
@@ -276,19 +281,13 @@ static int ar_context_add_page(struct ar_context *ctx)
276{ 281{
277 struct device *dev = ctx->ohci->card.device; 282 struct device *dev = ctx->ohci->card.device;
278 struct ar_buffer *ab; 283 struct ar_buffer *ab;
279 dma_addr_t ab_bus; 284 dma_addr_t uninitialized_var(ab_bus);
280 size_t offset; 285 size_t offset;
281 286
282 ab = (struct ar_buffer *) __get_free_page(GFP_ATOMIC); 287 ab = dma_alloc_coherent(dev, PAGE_SIZE, &ab_bus, GFP_ATOMIC);
283 if (ab == NULL) 288 if (ab == NULL)
284 return -ENOMEM; 289 return -ENOMEM;
285 290
286 ab_bus = dma_map_single(dev, ab, PAGE_SIZE, DMA_BIDIRECTIONAL);
287 if (dma_mapping_error(ab_bus)) {
288 free_page((unsigned long) ab);
289 return -ENOMEM;
290 }
291
292 memset(&ab->descriptor, 0, sizeof(ab->descriptor)); 291 memset(&ab->descriptor, 0, sizeof(ab->descriptor));
293 ab->descriptor.control = cpu_to_le16(DESCRIPTOR_INPUT_MORE | 292 ab->descriptor.control = cpu_to_le16(DESCRIPTOR_INPUT_MORE |
294 DESCRIPTOR_STATUS | 293 DESCRIPTOR_STATUS |
@@ -299,8 +298,6 @@ static int ar_context_add_page(struct ar_context *ctx)
299 ab->descriptor.res_count = cpu_to_le16(PAGE_SIZE - offset); 298 ab->descriptor.res_count = cpu_to_le16(PAGE_SIZE - offset);
300 ab->descriptor.branch_address = 0; 299 ab->descriptor.branch_address = 0;
301 300
302 dma_sync_single_for_device(dev, ab_bus, PAGE_SIZE, DMA_BIDIRECTIONAL);
303
304 ctx->last_buffer->descriptor.branch_address = cpu_to_le32(ab_bus | 1); 301 ctx->last_buffer->descriptor.branch_address = cpu_to_le32(ab_bus | 1);
305 ctx->last_buffer->next = ab; 302 ctx->last_buffer->next = ab;
306 ctx->last_buffer = ab; 303 ctx->last_buffer = ab;
@@ -311,15 +308,22 @@ static int ar_context_add_page(struct ar_context *ctx)
311 return 0; 308 return 0;
312} 309}
313 310
311#if defined(CONFIG_PPC_PMAC) && defined(CONFIG_PPC32)
312#define cond_le32_to_cpu(v) \
313 (ohci->old_uninorth ? (__force __u32)(v) : le32_to_cpu(v))
314#else
315#define cond_le32_to_cpu(v) le32_to_cpu(v)
316#endif
317
314static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer) 318static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
315{ 319{
316 struct fw_ohci *ohci = ctx->ohci; 320 struct fw_ohci *ohci = ctx->ohci;
317 struct fw_packet p; 321 struct fw_packet p;
318 u32 status, length, tcode; 322 u32 status, length, tcode;
319 323
320 p.header[0] = le32_to_cpu(buffer[0]); 324 p.header[0] = cond_le32_to_cpu(buffer[0]);
321 p.header[1] = le32_to_cpu(buffer[1]); 325 p.header[1] = cond_le32_to_cpu(buffer[1]);
322 p.header[2] = le32_to_cpu(buffer[2]); 326 p.header[2] = cond_le32_to_cpu(buffer[2]);
323 327
324 tcode = (p.header[0] >> 4) & 0x0f; 328 tcode = (p.header[0] >> 4) & 0x0f;
325 switch (tcode) { 329 switch (tcode) {
@@ -331,7 +335,7 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
331 break; 335 break;
332 336
333 case TCODE_READ_BLOCK_REQUEST : 337 case TCODE_READ_BLOCK_REQUEST :
334 p.header[3] = le32_to_cpu(buffer[3]); 338 p.header[3] = cond_le32_to_cpu(buffer[3]);
335 p.header_length = 16; 339 p.header_length = 16;
336 p.payload_length = 0; 340 p.payload_length = 0;
337 break; 341 break;
@@ -340,7 +344,7 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
340 case TCODE_READ_BLOCK_RESPONSE: 344 case TCODE_READ_BLOCK_RESPONSE:
341 case TCODE_LOCK_REQUEST: 345 case TCODE_LOCK_REQUEST:
342 case TCODE_LOCK_RESPONSE: 346 case TCODE_LOCK_RESPONSE:
343 p.header[3] = le32_to_cpu(buffer[3]); 347 p.header[3] = cond_le32_to_cpu(buffer[3]);
344 p.header_length = 16; 348 p.header_length = 16;
345 p.payload_length = p.header[3] >> 16; 349 p.payload_length = p.header[3] >> 16;
346 break; 350 break;
@@ -357,7 +361,7 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
357 361
358 /* FIXME: What to do about evt_* errors? */ 362 /* FIXME: What to do about evt_* errors? */
359 length = (p.header_length + p.payload_length + 3) / 4; 363 length = (p.header_length + p.payload_length + 3) / 4;
360 status = le32_to_cpu(buffer[length]); 364 status = cond_le32_to_cpu(buffer[length]);
361 365
362 p.ack = ((status >> 16) & 0x1f) - 16; 366 p.ack = ((status >> 16) & 0x1f) - 16;
363 p.speed = (status >> 21) & 0x7; 367 p.speed = (status >> 21) & 0x7;
@@ -375,7 +379,7 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
375 */ 379 */
376 380
377 if (p.ack + 16 == 0x09) 381 if (p.ack + 16 == 0x09)
378 ohci->request_generation = (buffer[2] >> 16) & 0xff; 382 ohci->request_generation = (p.header[2] >> 16) & 0xff;
379 else if (ctx == &ohci->ar_request_ctx) 383 else if (ctx == &ohci->ar_request_ctx)
380 fw_core_handle_request(&ohci->card, &p); 384 fw_core_handle_request(&ohci->card, &p);
381 else 385 else
@@ -397,6 +401,7 @@ static void ar_context_tasklet(unsigned long data)
397 401
398 if (d->res_count == 0) { 402 if (d->res_count == 0) {
399 size_t size, rest, offset; 403 size_t size, rest, offset;
404 dma_addr_t buffer_bus;
400 405
401 /* 406 /*
402 * This descriptor is finished and we may have a 407 * This descriptor is finished and we may have a
@@ -405,9 +410,7 @@ static void ar_context_tasklet(unsigned long data)
405 */ 410 */
406 411
407 offset = offsetof(struct ar_buffer, data); 412 offset = offsetof(struct ar_buffer, data);
408 dma_unmap_single(ohci->card.device, 413 buffer_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
409 le32_to_cpu(ab->descriptor.data_address) - offset,
410 PAGE_SIZE, DMA_BIDIRECTIONAL);
411 414
412 buffer = ab; 415 buffer = ab;
413 ab = ab->next; 416 ab = ab->next;
@@ -423,7 +426,8 @@ static void ar_context_tasklet(unsigned long data)
423 while (buffer < end) 426 while (buffer < end)
424 buffer = handle_ar_packet(ctx, buffer); 427 buffer = handle_ar_packet(ctx, buffer);
425 428
426 free_page((unsigned long)buffer); 429 dma_free_coherent(ohci->card.device, PAGE_SIZE,
430 buffer, buffer_bus);
427 ar_context_add_page(ctx); 431 ar_context_add_page(ctx);
428 } else { 432 } else {
429 buffer = ctx->pointer; 433 buffer = ctx->pointer;
@@ -532,7 +536,7 @@ static int
532context_add_buffer(struct context *ctx) 536context_add_buffer(struct context *ctx)
533{ 537{
534 struct descriptor_buffer *desc; 538 struct descriptor_buffer *desc;
535 dma_addr_t bus_addr; 539 dma_addr_t uninitialized_var(bus_addr);
536 int offset; 540 int offset;
537 541
538 /* 542 /*
@@ -1022,13 +1026,14 @@ static void bus_reset_tasklet(unsigned long data)
1022 */ 1026 */
1023 1027
1024 self_id_count = (reg_read(ohci, OHCI1394_SelfIDCount) >> 3) & 0x3ff; 1028 self_id_count = (reg_read(ohci, OHCI1394_SelfIDCount) >> 3) & 0x3ff;
1025 generation = (le32_to_cpu(ohci->self_id_cpu[0]) >> 16) & 0xff; 1029 generation = (cond_le32_to_cpu(ohci->self_id_cpu[0]) >> 16) & 0xff;
1026 rmb(); 1030 rmb();
1027 1031
1028 for (i = 1, j = 0; j < self_id_count; i += 2, j++) { 1032 for (i = 1, j = 0; j < self_id_count; i += 2, j++) {
1029 if (ohci->self_id_cpu[i] != ~ohci->self_id_cpu[i + 1]) 1033 if (ohci->self_id_cpu[i] != ~ohci->self_id_cpu[i + 1])
1030 fw_error("inconsistent self IDs\n"); 1034 fw_error("inconsistent self IDs\n");
1031 ohci->self_id_buffer[j] = le32_to_cpu(ohci->self_id_cpu[i]); 1035 ohci->self_id_buffer[j] =
1036 cond_le32_to_cpu(ohci->self_id_cpu[i]);
1032 } 1037 }
1033 rmb(); 1038 rmb();
1034 1039
@@ -1316,7 +1321,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
1316 unsigned long flags; 1321 unsigned long flags;
1317 int retval = -EBUSY; 1322 int retval = -EBUSY;
1318 __be32 *next_config_rom; 1323 __be32 *next_config_rom;
1319 dma_addr_t next_config_rom_bus; 1324 dma_addr_t uninitialized_var(next_config_rom_bus);
1320 1325
1321 ohci = fw_ohci(card); 1326 ohci = fw_ohci(card);
1322 1327
@@ -1487,7 +1492,7 @@ static int handle_ir_dualbuffer_packet(struct context *context,
1487 void *p, *end; 1492 void *p, *end;
1488 int i; 1493 int i;
1489 1494
1490 if (db->first_res_count > 0 && db->second_res_count > 0) { 1495 if (db->first_res_count != 0 && db->second_res_count != 0) {
1491 if (ctx->excess_bytes <= le16_to_cpu(db->second_req_count)) { 1496 if (ctx->excess_bytes <= le16_to_cpu(db->second_req_count)) {
1492 /* This descriptor isn't done yet, stop iteration. */ 1497 /* This descriptor isn't done yet, stop iteration. */
1493 return 0; 1498 return 0;
@@ -1513,7 +1518,7 @@ static int handle_ir_dualbuffer_packet(struct context *context,
1513 memcpy(ctx->header + i + 4, p + 8, ctx->base.header_size - 4); 1518 memcpy(ctx->header + i + 4, p + 8, ctx->base.header_size - 4);
1514 i += ctx->base.header_size; 1519 i += ctx->base.header_size;
1515 ctx->excess_bytes += 1520 ctx->excess_bytes +=
1516 (le32_to_cpu(*(u32 *)(p + 4)) >> 16) & 0xffff; 1521 (le32_to_cpu(*(__le32 *)(p + 4)) >> 16) & 0xffff;
1517 p += ctx->base.header_size + 4; 1522 p += ctx->base.header_size + 4;
1518 } 1523 }
1519 ctx->header_length = i; 1524 ctx->header_length = i;
@@ -2048,6 +2053,18 @@ pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
2048 int err; 2053 int err;
2049 size_t size; 2054 size_t size;
2050 2055
2056#ifdef CONFIG_PPC_PMAC
2057 /* Necessary on some machines if fw-ohci was loaded/ unloaded before */
2058 if (machine_is(powermac)) {
2059 struct device_node *ofn = pci_device_to_OF_node(dev);
2060
2061 if (ofn) {
2062 pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 1);
2063 pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
2064 }
2065 }
2066#endif /* CONFIG_PPC_PMAC */
2067
2051 ohci = kzalloc(sizeof(*ohci), GFP_KERNEL); 2068 ohci = kzalloc(sizeof(*ohci), GFP_KERNEL);
2052 if (ohci == NULL) { 2069 if (ohci == NULL) {
2053 fw_error("Could not malloc fw_ohci data.\n"); 2070 fw_error("Could not malloc fw_ohci data.\n");
@@ -2066,6 +2083,10 @@ pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
2066 pci_write_config_dword(dev, OHCI1394_PCI_HCI_Control, 0); 2083 pci_write_config_dword(dev, OHCI1394_PCI_HCI_Control, 0);
2067 pci_set_drvdata(dev, ohci); 2084 pci_set_drvdata(dev, ohci);
2068 2085
2086#if defined(CONFIG_PPC_PMAC) && defined(CONFIG_PPC32)
2087 ohci->old_uninorth = dev->vendor == PCI_VENDOR_ID_APPLE &&
2088 dev->device == PCI_DEVICE_ID_APPLE_UNI_N_FW;
2089#endif
2069 spin_lock_init(&ohci->lock); 2090 spin_lock_init(&ohci->lock);
2070 2091
2071 tasklet_init(&ohci->bus_reset_tasklet, 2092 tasklet_init(&ohci->bus_reset_tasklet,
@@ -2182,6 +2203,19 @@ static void pci_remove(struct pci_dev *dev)
2182 pci_disable_device(dev); 2203 pci_disable_device(dev);
2183 fw_card_put(&ohci->card); 2204 fw_card_put(&ohci->card);
2184 2205
2206#ifdef CONFIG_PPC_PMAC
2207 /* On UniNorth, power down the cable and turn off the chip clock
2208 * to save power on laptops */
2209 if (machine_is(powermac)) {
2210 struct device_node *ofn = pci_device_to_OF_node(dev);
2211
2212 if (ofn) {
2213 pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
2214 pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
2215 }
2216 }
2217#endif /* CONFIG_PPC_PMAC */
2218
2185 fw_notify("Removed fw-ohci device.\n"); 2219 fw_notify("Removed fw-ohci device.\n");
2186} 2220}
2187 2221
@@ -2202,6 +2236,16 @@ static int pci_suspend(struct pci_dev *pdev, pm_message_t state)
2202 if (err) 2236 if (err)
2203 fw_error("pci_set_power_state failed with %d\n", err); 2237 fw_error("pci_set_power_state failed with %d\n", err);
2204 2238
2239/* PowerMac suspend code comes last */
2240#ifdef CONFIG_PPC_PMAC
2241 if (machine_is(powermac)) {
2242 struct device_node *ofn = pci_device_to_OF_node(pdev);
2243
2244 if (ofn)
2245 pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
2246 }
2247#endif /* CONFIG_PPC_PMAC */
2248
2205 return 0; 2249 return 0;
2206} 2250}
2207 2251
@@ -2210,6 +2254,16 @@ static int pci_resume(struct pci_dev *pdev)
2210 struct fw_ohci *ohci = pci_get_drvdata(pdev); 2254 struct fw_ohci *ohci = pci_get_drvdata(pdev);
2211 int err; 2255 int err;
2212 2256
2257/* PowerMac resume code comes first */
2258#ifdef CONFIG_PPC_PMAC
2259 if (machine_is(powermac)) {
2260 struct device_node *ofn = pci_device_to_OF_node(pdev);
2261
2262 if (ofn)
2263 pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
2264 }
2265#endif /* CONFIG_PPC_PMAC */
2266
2213 pci_set_power_state(pdev, PCI_D0); 2267 pci_set_power_state(pdev, PCI_D0);
2214 pci_restore_state(pdev); 2268 pci_restore_state(pdev);
2215 err = pci_enable_device(pdev); 2269 err = pci_enable_device(pdev);
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index 03069a454c07..62b4e47d0cc0 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -173,6 +173,7 @@ struct sbp2_target {
173#define SBP2_ORB_TIMEOUT 2000U /* Timeout in ms */ 173#define SBP2_ORB_TIMEOUT 2000U /* Timeout in ms */
174#define SBP2_ORB_NULL 0x80000000 174#define SBP2_ORB_NULL 0x80000000
175#define SBP2_MAX_SG_ELEMENT_LENGTH 0xf000 175#define SBP2_MAX_SG_ELEMENT_LENGTH 0xf000
176#define SBP2_RETRY_LIMIT 0xf /* 15 retries */
176 177
177#define SBP2_DIRECTION_TO_MEDIA 0x0 178#define SBP2_DIRECTION_TO_MEDIA 0x0
178#define SBP2_DIRECTION_FROM_MEDIA 0x1 179#define SBP2_DIRECTION_FROM_MEDIA 0x1
@@ -330,6 +331,11 @@ static const struct {
330 .model = ~0, 331 .model = ~0,
331 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS, 332 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
332 }, 333 },
334 /* Datafab MD2-FW2 with Symbios/LSILogic SYM13FW500 bridge */ {
335 .firmware_revision = 0x002600,
336 .model = ~0,
337 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
338 },
333 339
334 /* 340 /*
335 * There are iPods (2nd gen, 3rd gen) with model_id == 0, but 341 * There are iPods (2nd gen, 3rd gen) with model_id == 0, but
@@ -812,6 +818,30 @@ static void sbp2_target_put(struct sbp2_target *tgt)
812 kref_put(&tgt->kref, sbp2_release_target); 818 kref_put(&tgt->kref, sbp2_release_target);
813} 819}
814 820
821static void
822complete_set_busy_timeout(struct fw_card *card, int rcode,
823 void *payload, size_t length, void *done)
824{
825 complete(done);
826}
827
828static void sbp2_set_busy_timeout(struct sbp2_logical_unit *lu)
829{
830 struct fw_device *device = fw_device(lu->tgt->unit->device.parent);
831 DECLARE_COMPLETION_ONSTACK(done);
832 struct fw_transaction t;
833 static __be32 busy_timeout;
834
835 /* FIXME: we should try to set dual-phase cycle_limit too */
836 busy_timeout = cpu_to_be32(SBP2_RETRY_LIMIT);
837
838 fw_send_request(device->card, &t, TCODE_WRITE_QUADLET_REQUEST,
839 lu->tgt->node_id, lu->generation, device->max_speed,
840 CSR_REGISTER_BASE + CSR_BUSY_TIMEOUT, &busy_timeout,
841 sizeof(busy_timeout), complete_set_busy_timeout, &done);
842 wait_for_completion(&done);
843}
844
815static void sbp2_reconnect(struct work_struct *work); 845static void sbp2_reconnect(struct work_struct *work);
816 846
817static void sbp2_login(struct work_struct *work) 847static void sbp2_login(struct work_struct *work)
@@ -864,10 +894,8 @@ static void sbp2_login(struct work_struct *work)
864 fw_notify("%s: logged in to LUN %04x (%d retries)\n", 894 fw_notify("%s: logged in to LUN %04x (%d retries)\n",
865 tgt->bus_id, lu->lun, lu->retries); 895 tgt->bus_id, lu->lun, lu->retries);
866 896
867#if 0 897 /* set appropriate retry limit(s) in BUSY_TIMEOUT register */
868 /* FIXME: The linux1394 sbp2 does this last step. */ 898 sbp2_set_busy_timeout(lu);
869 sbp2_set_busy_timeout(scsi_id);
870#endif
871 899
872 PREPARE_DELAYED_WORK(&lu->work, sbp2_reconnect); 900 PREPARE_DELAYED_WORK(&lu->work, sbp2_reconnect);
873 sbp2_agent_reset(lu); 901 sbp2_agent_reset(lu);
diff --git a/drivers/firewire/fw-topology.c b/drivers/firewire/fw-topology.c
index e47bb040197a..d2c7a3d7e1cb 100644
--- a/drivers/firewire/fw-topology.c
+++ b/drivers/firewire/fw-topology.c
@@ -21,6 +21,7 @@
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/wait.h> 22#include <linux/wait.h>
23#include <linux/errno.h> 23#include <linux/errno.h>
24#include <asm/bug.h>
24#include <asm/system.h> 25#include <asm/system.h>
25#include "fw-transaction.h" 26#include "fw-transaction.h"
26#include "fw-topology.h" 27#include "fw-topology.h"
@@ -424,8 +425,8 @@ update_tree(struct fw_card *card, struct fw_node *root)
424 node1 = fw_node(list1.next); 425 node1 = fw_node(list1.next);
425 426
426 while (&node0->link != &list0) { 427 while (&node0->link != &list0) {
428 WARN_ON(node0->port_count != node1->port_count);
427 429
428 /* assert(node0->port_count == node1->port_count); */
429 if (node0->link_on && !node1->link_on) 430 if (node0->link_on && !node1->link_on)
430 event = FW_NODE_LINK_OFF; 431 event = FW_NODE_LINK_OFF;
431 else if (!node0->link_on && node1->link_on) 432 else if (!node0->link_on && node1->link_on)
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 7fcc59dedf08..e6f1bda38940 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -736,6 +736,12 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p)
736 break; 736 break;
737 } 737 }
738 738
739 /*
740 * The response handler may be executed while the request handler
741 * is still pending. Cancel the request handler.
742 */
743 card->driver->cancel_packet(card, &t->packet);
744
739 t->callback(card, rcode, data, data_length, t->callback_data); 745 t->callback(card, rcode, data, data_length, t->callback_data);
740} 746}
741EXPORT_SYMBOL(fw_core_handle_response); 747EXPORT_SYMBOL(fw_core_handle_response);
@@ -751,7 +757,7 @@ handle_topology_map(struct fw_card *card, struct fw_request *request,
751 void *payload, size_t length, void *callback_data) 757 void *payload, size_t length, void *callback_data)
752{ 758{
753 int i, start, end; 759 int i, start, end;
754 u32 *map; 760 __be32 *map;
755 761
756 if (!TCODE_IS_READ_REQUEST(tcode)) { 762 if (!TCODE_IS_READ_REQUEST(tcode)) {
757 fw_send_response(card, request, RCODE_TYPE_ERROR); 763 fw_send_response(card, request, RCODE_TYPE_ERROR);
diff --git a/drivers/firewire/fw-transaction.h b/drivers/firewire/fw-transaction.h
index 09cb72870454..a43bb22912f9 100644
--- a/drivers/firewire/fw-transaction.h
+++ b/drivers/firewire/fw-transaction.h
@@ -86,12 +86,12 @@
86static inline void 86static inline void
87fw_memcpy_from_be32(void *_dst, void *_src, size_t size) 87fw_memcpy_from_be32(void *_dst, void *_src, size_t size)
88{ 88{
89 u32 *dst = _dst; 89 u32 *dst = _dst;
90 u32 *src = _src; 90 __be32 *src = _src;
91 int i; 91 int i;
92 92
93 for (i = 0; i < size / 4; i++) 93 for (i = 0; i < size / 4; i++)
94 dst[i] = cpu_to_be32(src[i]); 94 dst[i] = be32_to_cpu(src[i]);
95} 95}
96 96
97static inline void 97static inline void
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index d73a768e176e..f0b00ec1e47e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -968,7 +968,7 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
968 size--; 968 size--;
969 } 969 }
970 970
971 /* dump the report descriptor */ 971 /* dump the report */
972 dbg_hid("report %d (size %u) = ", n, size); 972 dbg_hid("report %d (size %u) = ", n, size);
973 for (i = 0; i < size; i++) 973 for (i = 0; i < size; i++)
974 dbg_hid_line(" %02x", data[i]); 974 dbg_hid_line(" %02x", data[i]);
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 5a38fb27d69f..c3eb3f13e2ca 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -98,18 +98,16 @@ struct hidinput_key_translation {
98 98
99static struct hidinput_key_translation apple_fn_keys[] = { 99static struct hidinput_key_translation apple_fn_keys[] = {
100 { KEY_BACKSPACE, KEY_DELETE }, 100 { KEY_BACKSPACE, KEY_DELETE },
101 { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, 101 { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
102 { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY }, 102 { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
103 { KEY_F3, KEY_CYCLEWINDOWS, APPLE_FLAG_FKEY }, /* Exposé */ 103 { KEY_F3, KEY_FN_F5, APPLE_FLAG_FKEY }, /* Exposé */
104 { KEY_F4, KEY_FN_F4, APPLE_FLAG_FKEY }, /* Dashboard */ 104 { KEY_F4, KEY_FN_F4, APPLE_FLAG_FKEY }, /* Dashboard */
105 { KEY_F5, KEY_FN_F5 }, 105 { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
106 { KEY_F6, KEY_FN_F6 }, 106 { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY },
107 { KEY_F7, KEY_BACK, APPLE_FLAG_FKEY }, 107 { KEY_F9, KEY_NEXTSONG, APPLE_FLAG_FKEY },
108 { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY }, 108 { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY },
109 { KEY_F9, KEY_FORWARD, APPLE_FLAG_FKEY }, 109 { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
110 { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY }, 110 { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
111 { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
112 { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
113 { KEY_UP, KEY_PAGEUP }, 111 { KEY_UP, KEY_PAGEUP },
114 { KEY_DOWN, KEY_PAGEDOWN }, 112 { KEY_DOWN, KEY_PAGEDOWN },
115 { KEY_LEFT, KEY_HOME }, 113 { KEY_LEFT, KEY_HOME },
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index b38e559b7a46..d95979f0e028 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -278,7 +278,7 @@ static int hid_submit_ctrl(struct hid_device *hid)
278 usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0); 278 usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0);
279 maxpacket = usb_maxpacket(hid_to_usb_dev(hid), usbhid->urbctrl->pipe, 0); 279 maxpacket = usb_maxpacket(hid_to_usb_dev(hid), usbhid->urbctrl->pipe, 0);
280 if (maxpacket > 0) { 280 if (maxpacket > 0) {
281 padlen = (len + maxpacket - 1) / maxpacket; 281 padlen = DIV_ROUND_UP(len, maxpacket);
282 padlen *= maxpacket; 282 padlen *= maxpacket;
283 if (padlen > usbhid->bufsize) 283 if (padlen > usbhid->bufsize)
284 padlen = usbhid->bufsize; 284 padlen = usbhid->bufsize;
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index e6d05f6b1c1c..e29a057cbea2 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -345,6 +345,9 @@
345#define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 345#define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400
346#define USB_DEVICE_ID_N_S_HARMONY 0xc359 346#define USB_DEVICE_ID_N_S_HARMONY 0xc359
347 347
348#define USB_VENDOR_ID_NATSU 0x08b7
349#define USB_DEVICE_ID_NATSU_GAMEPAD 0x0001
350
348#define USB_VENDOR_ID_NEC 0x073e 351#define USB_VENDOR_ID_NEC 0x073e
349#define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301 352#define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301
350 353
@@ -426,6 +429,7 @@ static const struct hid_blacklist {
426 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, 429 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
427 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, 430 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
428 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, 431 { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
432 { USB_VENDOR_ID_NATSU, USB_DEVICE_ID_NATSU_GAMEPAD, HID_QUIRK_BADPAD },
429 { USB_VENDOR_ID_NEC, USB_DEVICE_ID_NEC_USB_GAME_PAD, HID_QUIRK_BADPAD }, 433 { USB_VENDOR_ID_NEC, USB_DEVICE_ID_NEC_USB_GAME_PAD, HID_QUIRK_BADPAD },
430 { USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD, HID_QUIRK_BADPAD }, 434 { USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD, HID_QUIRK_BADPAD },
431 { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD }, 435 { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD },
@@ -624,7 +628,7 @@ static const struct hid_blacklist {
624 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, 628 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD },
625 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_JIS, HID_QUIRK_APPLE_HAS_FN }, 629 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_JIS, HID_QUIRK_APPLE_HAS_FN },
626 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, 630 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE },
627 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE | HID_QUIRK_APPLE_ISO_KEYBOARD }, 631 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE },
628 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, 632 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE },
629 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI, HID_QUIRK_APPLE_HAS_FN }, 633 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI, HID_QUIRK_APPLE_HAS_FN },
630 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, 634 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD },
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 368879ff5d8c..4dc76bc45c9d 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -337,8 +337,9 @@ config SENSORS_IBMPEX
337 help 337 help
338 If you say yes here you get support for the temperature and 338 If you say yes here you get support for the temperature and
339 power sensors in various IBM System X servers that support 339 power sensors in various IBM System X servers that support
340 PowerExecutive. So far this includes the x3550, x3650, x3655, 340 PowerExecutive. So far this includes the x3350, x3550, x3650,
341 x3755, and certain HS20 blades. 341 x3655, and x3755; the x3800, x3850, and x3950 models that have
342 PCI Express; and some of the HS2x, LS2x, and QS2x blades.
342 343
343 This driver can also be built as a module. If so, the module 344 This driver can also be built as a module. If so, the module
344 will be called ibmpex. 345 will be called ibmpex.
diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c
index 9c9cdb0685e4..4e9b19c6732f 100644
--- a/drivers/hwmon/ibmpex.c
+++ b/drivers/hwmon/ibmpex.c
@@ -327,10 +327,14 @@ static int is_temp_sensor(const char *sensor_id, int len)
327 return 0; 327 return 0;
328} 328}
329 329
330static int power_sensor_multiplier(const char *sensor_id, int len) 330static int power_sensor_multiplier(struct ibmpex_bmc_data *data,
331 const char *sensor_id, int len)
331{ 332{
332 int i; 333 int i;
333 334
335 if (data->sensor_major == 2)
336 return 1000000;
337
334 for (i = PEX_SENSOR_TYPE_LEN; i < len - 1; i++) 338 for (i = PEX_SENSOR_TYPE_LEN; i < len - 1; i++)
335 if (!memcmp(&sensor_id[i], watt_sensor_sig, PEX_MULT_LEN)) 339 if (!memcmp(&sensor_id[i], watt_sensor_sig, PEX_MULT_LEN))
336 return 1000000; 340 return 1000000;
@@ -398,14 +402,15 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data)
398 num_power++; 402 num_power++;
399 sensor_counter = num_power; 403 sensor_counter = num_power;
400 data->sensors[i].multiplier = 404 data->sensors[i].multiplier =
401 power_sensor_multiplier(data->rx_msg_data, 405 power_sensor_multiplier(data,
402 data->rx_msg_len); 406 data->rx_msg_data,
407 data->rx_msg_len);
403 } else if (is_temp_sensor(data->rx_msg_data, 408 } else if (is_temp_sensor(data->rx_msg_data,
404 data->rx_msg_len)) { 409 data->rx_msg_len)) {
405 sensor_type = TEMP_SENSOR; 410 sensor_type = TEMP_SENSOR;
406 num_temp++; 411 num_temp++;
407 sensor_counter = num_temp; 412 sensor_counter = num_temp;
408 data->sensors[i].multiplier = 1; 413 data->sensors[i].multiplier = 1000;
409 } else 414 } else
410 continue; 415 continue;
411 416
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 476b0bb72d6c..5fa9c3c67e0c 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -100,7 +100,7 @@ config I2C_AU1550
100 100
101config I2C_BLACKFIN_TWI 101config I2C_BLACKFIN_TWI
102 tristate "Blackfin TWI I2C support" 102 tristate "Blackfin TWI I2C support"
103 depends on BF534 || BF536 || BF537 || BF54x 103 depends on BF534 || BF536 || BF537
104 help 104 help
105 This is the TWI I2C device driver for Blackfin 534/536/537/54x. 105 This is the TWI I2C device driver for Blackfin 534/536/537/54x.
106 This driver can also be built as a module. If so, the module 106 This driver can also be built as a module. If so, the module
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c
index 573abe440842..2fa43183d375 100644
--- a/drivers/i2c/busses/i2c-amd756.c
+++ b/drivers/i2c/busses/i2c-amd756.c
@@ -335,7 +335,7 @@ static int __devinit amd756_probe(struct pci_dev *pdev,
335 u8 temp; 335 u8 temp;
336 336
337 /* driver_data might come from user-space, so check it */ 337 /* driver_data might come from user-space, so check it */
338 if (id->driver_data > ARRAY_SIZE(chipname)) 338 if (id->driver_data >= ARRAY_SIZE(chipname))
339 return -EINVAL; 339 return -EINVAL;
340 340
341 if (amd756_ioport) { 341 if (amd756_ioport) {
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index da6639707ea3..7ba31770d773 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -128,6 +128,8 @@ struct omap_i2c_dev {
128 size_t buf_len; 128 size_t buf_len;
129 struct i2c_adapter adapter; 129 struct i2c_adapter adapter;
130 unsigned rev1:1; 130 unsigned rev1:1;
131 unsigned idle:1;
132 u16 iestate; /* Saved interrupt register */
131}; 133};
132 134
133static inline void omap_i2c_write_reg(struct omap_i2c_dev *i2c_dev, 135static inline void omap_i2c_write_reg(struct omap_i2c_dev *i2c_dev,
@@ -174,18 +176,30 @@ static void omap_i2c_put_clocks(struct omap_i2c_dev *dev)
174 } 176 }
175} 177}
176 178
177static void omap_i2c_enable_clocks(struct omap_i2c_dev *dev) 179static void omap_i2c_unidle(struct omap_i2c_dev *dev)
178{ 180{
179 if (dev->iclk != NULL) 181 if (dev->iclk != NULL)
180 clk_enable(dev->iclk); 182 clk_enable(dev->iclk);
181 clk_enable(dev->fclk); 183 clk_enable(dev->fclk);
184 if (dev->iestate)
185 omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
186 dev->idle = 0;
182} 187}
183 188
184static void omap_i2c_disable_clocks(struct omap_i2c_dev *dev) 189static void omap_i2c_idle(struct omap_i2c_dev *dev)
185{ 190{
191 u16 iv;
192
193 dev->idle = 1;
194 dev->iestate = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG);
195 omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, 0);
196 if (dev->rev1)
197 iv = omap_i2c_read_reg(dev, OMAP_I2C_IV_REG); /* Read clears */
198 else
199 omap_i2c_write_reg(dev, OMAP_I2C_STAT_REG, dev->iestate);
200 clk_disable(dev->fclk);
186 if (dev->iclk != NULL) 201 if (dev->iclk != NULL)
187 clk_disable(dev->iclk); 202 clk_disable(dev->iclk);
188 clk_disable(dev->fclk);
189} 203}
190 204
191static int omap_i2c_init(struct omap_i2c_dev *dev) 205static int omap_i2c_init(struct omap_i2c_dev *dev)
@@ -360,7 +374,7 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
360 int i; 374 int i;
361 int r; 375 int r;
362 376
363 omap_i2c_enable_clocks(dev); 377 omap_i2c_unidle(dev);
364 378
365 if ((r = omap_i2c_wait_for_bb(dev)) < 0) 379 if ((r = omap_i2c_wait_for_bb(dev)) < 0)
366 goto out; 380 goto out;
@@ -374,7 +388,7 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
374 if (r == 0) 388 if (r == 0)
375 r = num; 389 r = num;
376out: 390out:
377 omap_i2c_disable_clocks(dev); 391 omap_i2c_idle(dev);
378 return r; 392 return r;
379} 393}
380 394
@@ -403,6 +417,9 @@ omap_i2c_rev1_isr(int this_irq, void *dev_id)
403 struct omap_i2c_dev *dev = dev_id; 417 struct omap_i2c_dev *dev = dev_id;
404 u16 iv, w; 418 u16 iv, w;
405 419
420 if (dev->idle)
421 return IRQ_NONE;
422
406 iv = omap_i2c_read_reg(dev, OMAP_I2C_IV_REG); 423 iv = omap_i2c_read_reg(dev, OMAP_I2C_IV_REG);
407 switch (iv) { 424 switch (iv) {
408 case 0x00: /* None */ 425 case 0x00: /* None */
@@ -457,6 +474,9 @@ omap_i2c_isr(int this_irq, void *dev_id)
457 u16 stat, w; 474 u16 stat, w;
458 int count = 0; 475 int count = 0;
459 476
477 if (dev->idle)
478 return IRQ_NONE;
479
460 bits = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG); 480 bits = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG);
461 while ((stat = (omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG))) & bits) { 481 while ((stat = (omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG))) & bits) {
462 dev_dbg(dev->dev, "IRQ (ISR = 0x%04x)\n", stat); 482 dev_dbg(dev->dev, "IRQ (ISR = 0x%04x)\n", stat);
@@ -575,7 +595,7 @@ omap_i2c_probe(struct platform_device *pdev)
575 if ((r = omap_i2c_get_clocks(dev)) != 0) 595 if ((r = omap_i2c_get_clocks(dev)) != 0)
576 goto err_free_mem; 596 goto err_free_mem;
577 597
578 omap_i2c_enable_clocks(dev); 598 omap_i2c_unidle(dev);
579 599
580 if (cpu_is_omap15xx()) 600 if (cpu_is_omap15xx())
581 dev->rev1 = omap_i2c_read_reg(dev, OMAP_I2C_REV_REG) < 0x20; 601 dev->rev1 = omap_i2c_read_reg(dev, OMAP_I2C_REV_REG) < 0x20;
@@ -610,7 +630,7 @@ omap_i2c_probe(struct platform_device *pdev)
610 goto err_free_irq; 630 goto err_free_irq;
611 } 631 }
612 632
613 omap_i2c_disable_clocks(dev); 633 omap_i2c_idle(dev);
614 634
615 return 0; 635 return 0;
616 636
@@ -618,7 +638,7 @@ err_free_irq:
618 free_irq(dev->irq, dev); 638 free_irq(dev->irq, dev);
619err_unuse_clocks: 639err_unuse_clocks:
620 omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); 640 omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
621 omap_i2c_disable_clocks(dev); 641 omap_i2c_idle(dev);
622 omap_i2c_put_clocks(dev); 642 omap_i2c_put_clocks(dev);
623err_free_mem: 643err_free_mem:
624 platform_set_drvdata(pdev, NULL); 644 platform_set_drvdata(pdev, NULL);
diff --git a/drivers/i2c/chips/Makefile b/drivers/i2c/chips/Makefile
index 501f00cea782..e47aca0ca5ae 100644
--- a/drivers/i2c/chips/Makefile
+++ b/drivers/i2c/chips/Makefile
@@ -1,6 +1,13 @@
1# 1#
2# Makefile for miscellaneous I2C chip drivers. 2# Makefile for miscellaneous I2C chip drivers.
3# 3#
4# Think twice before you add a new driver to this directory.
5# Device drivers are better grouped according to the functionality they
6# implement rather than to the bus they are connected to. In particular:
7# * Hardware monitoring chip drivers go to drivers/hwmon
8# * RTC chip drivers go to drivers/rtc
9# * I/O expander drivers go to drivers/gpio
10#
4 11
5obj-$(CONFIG_DS1682) += ds1682.o 12obj-$(CONFIG_DS1682) += ds1682.o
6obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o 13obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 96da22e9a5a4..8b645c6b2cb5 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -90,12 +90,16 @@ static int i2c_device_probe(struct device *dev)
90{ 90{
91 struct i2c_client *client = to_i2c_client(dev); 91 struct i2c_client *client = to_i2c_client(dev);
92 struct i2c_driver *driver = to_i2c_driver(dev->driver); 92 struct i2c_driver *driver = to_i2c_driver(dev->driver);
93 int status;
93 94
94 if (!driver->probe) 95 if (!driver->probe)
95 return -ENODEV; 96 return -ENODEV;
96 client->driver = driver; 97 client->driver = driver;
97 dev_dbg(dev, "probe\n"); 98 dev_dbg(dev, "probe\n");
98 return driver->probe(client); 99 status = driver->probe(client);
100 if (status)
101 client->driver = NULL;
102 return status;
99} 103}
100 104
101static int i2c_device_remove(struct device *dev) 105static int i2c_device_remove(struct device *dev)
@@ -485,8 +489,8 @@ EXPORT_SYMBOL(i2c_add_adapter);
485 * Context: can sleep 489 * Context: can sleep
486 * 490 *
487 * This routine is used to declare an I2C adapter when its bus number 491 * This routine is used to declare an I2C adapter when its bus number
488 * matters. Example: for I2C adapters from system-on-chip CPUs, or 492 * matters. For example, use it for I2C adapters from system-on-chip CPUs,
489 * otherwise built in to the system's mainboard, and where i2c_board_info 493 * or otherwise built in to the system's mainboard, and where i2c_board_info
490 * is used to properly configure I2C devices. 494 * is used to properly configure I2C devices.
491 * 495 *
492 * If no devices have pre-been declared for this bus, then be sure to 496 * If no devices have pre-been declared for this bus, then be sure to
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index c419266234a7..01b92208f09d 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -595,6 +595,7 @@ u8 eighty_ninty_three (ide_drive_t *drive)
595 595
596 /* 596 /*
597 * FIXME: 597 * FIXME:
598 * - change master/slave IDENTIFY order
598 * - force bit13 (80c cable present) check also for !ivb devices 599 * - force bit13 (80c cable present) check also for !ivb devices
599 * (unless the slave device is pre-ATA3) 600 * (unless the slave device is pre-ATA3)
600 */ 601 */
diff --git a/drivers/ide/ide-lib.c b/drivers/ide/ide-lib.c
index 29e2c9719c30..7031a8dcf692 100644
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
@@ -122,7 +122,6 @@ static struct ide_pio_info {
122 const char *name; 122 const char *name;
123 int pio; 123 int pio;
124} ide_pio_blacklist [] = { 124} ide_pio_blacklist [] = {
125/* { "Conner Peripherals 1275MB - CFS1275A", 4 }, */
126 { "Conner Peripherals 540MB - CFS540A", 3 }, 125 { "Conner Peripherals 540MB - CFS540A", 3 },
127 126
128 { "WDC AC2700", 3 }, 127 { "WDC AC2700", 3 },
@@ -138,10 +137,8 @@ static struct ide_pio_info {
138 { "WDC AC1170", 1 }, 137 { "WDC AC1170", 1 },
139 { "WDC AC1210", 1 }, 138 { "WDC AC1210", 1 },
140 { "WDC AC280", 0 }, 139 { "WDC AC280", 0 },
141/* { "WDC AC21000", 4 }, */
142 { "WDC AC31000", 3 }, 140 { "WDC AC31000", 3 },
143 { "WDC AC31200", 3 }, 141 { "WDC AC31200", 3 },
144/* { "WDC AC31600", 4 }, */
145 142
146 { "Maxtor 7131 AT", 1 }, 143 { "Maxtor 7131 AT", 1 },
147 { "Maxtor 7171 AT", 1 }, 144 { "Maxtor 7171 AT", 1 },
@@ -155,13 +152,6 @@ static struct ide_pio_info {
155 { "SAMSUNG SHD-3122A", 1 }, 152 { "SAMSUNG SHD-3122A", 1 },
156 { "SAMSUNG SHD-3172A", 1 }, 153 { "SAMSUNG SHD-3172A", 1 },
157 154
158/* { "ST51080A", 4 },
159 * { "ST51270A", 4 },
160 * { "ST31220A", 4 },
161 * { "ST31640A", 4 },
162 * { "ST32140A", 4 },
163 * { "ST3780A", 4 },
164 */
165 { "ST5660A", 3 }, 155 { "ST5660A", 3 },
166 { "ST3660A", 3 }, 156 { "ST3660A", 3 },
167 { "ST3630A", 3 }, 157 { "ST3630A", 3 },
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 194ecb0049eb..47a114927c31 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -774,9 +774,10 @@ static int ide_probe_port(ide_hwif_t *hwif)
774 printk(KERN_DEBUG "%s: Wait for ready failed before probe !\n", hwif->name); 774 printk(KERN_DEBUG "%s: Wait for ready failed before probe !\n", hwif->name);
775 775
776 /* 776 /*
777 * Need to probe slave device first to make it release PDIAG-. 777 * Second drive should only exist if first drive was found,
778 * but a lot of cdrom drives are configured as single slaves.
778 */ 779 */
779 for (unit = MAX_DRIVES - 1; unit >= 0; unit--) { 780 for (unit = 0; unit < MAX_DRIVES; ++unit) {
780 ide_drive_t *drive = &hwif->drives[unit]; 781 ide_drive_t *drive = &hwif->drives[unit];
781 drive->dn = (hwif->channel ? 2 : 0) + unit; 782 drive->dn = (hwif->channel ? 2 : 0) + unit;
782 (void) probe_for_drive(drive); 783 (void) probe_for_drive(drive);
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 43e0e0557776..0598ecfd5f37 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -3765,11 +3765,6 @@ static int ide_tape_probe(ide_drive_t *drive)
3765 g->fops = &idetape_block_ops; 3765 g->fops = &idetape_block_ops;
3766 ide_register_region(g); 3766 ide_register_region(g);
3767 3767
3768 printk(KERN_WARNING "It is possible that this driver does not have any"
3769 " users anymore and, as a result, it will be REMOVED soon."
3770 " Please notify Bart <bzolnier@gmail.com> or Boris"
3771 " <petkovbb@gmail.com> in case you still need it.\n");
3772
3773 return 0; 3768 return 0;
3774 3769
3775out_free_tape: 3770out_free_tape:
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 0518a2e948cf..4c86a8d84b4c 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -423,6 +423,25 @@ void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat)
423} 423}
424 424
425/* 425/*
426 * We got an interrupt on a task_in case, but no errors and no DRQ.
427 *
428 * It might be a spurious irq (shared irq), but it might be a
429 * command that had no output.
430 */
431static ide_startstop_t task_in_unexpected(ide_drive_t *drive, struct request *rq, u8 stat)
432{
433 /* Command all done? */
434 if (OK_STAT(stat, READY_STAT, BUSY_STAT)) {
435 task_end_request(drive, rq, stat);
436 return ide_stopped;
437 }
438
439 /* Assume it was a spurious irq */
440 ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL);
441 return ide_started;
442}
443
444/*
426 * Handler for command with PIO data-in phase (Read/Read Multiple). 445 * Handler for command with PIO data-in phase (Read/Read Multiple).
427 */ 446 */
428static ide_startstop_t task_in_intr(ide_drive_t *drive) 447static ide_startstop_t task_in_intr(ide_drive_t *drive)
@@ -431,18 +450,17 @@ static ide_startstop_t task_in_intr(ide_drive_t *drive)
431 struct request *rq = HWGROUP(drive)->rq; 450 struct request *rq = HWGROUP(drive)->rq;
432 u8 stat = ide_read_status(drive); 451 u8 stat = ide_read_status(drive);
433 452
434 /* new way for dealing with premature shared PCI interrupts */ 453 /* Error? */
435 if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) { 454 if (stat & ERR_STAT)
436 if (stat & (ERR_STAT | DRQ_STAT)) 455 return task_error(drive, rq, __FUNCTION__, stat);
437 return task_error(drive, rq, __FUNCTION__, stat); 456
438 /* No data yet, so wait for another IRQ. */ 457 /* Didn't want any data? Odd. */
439 ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL); 458 if (!(stat & DRQ_STAT))
440 return ide_started; 459 return task_in_unexpected(drive, rq, stat);
441 }
442 460
443 ide_pio_datablock(drive, rq, 0); 461 ide_pio_datablock(drive, rq, 0);
444 462
445 /* If it was the last datablock check status and finish transfer. */ 463 /* Are we done? Check status and finish transfer. */
446 if (!hwif->nleft) { 464 if (!hwif->nleft) {
447 stat = wait_drive_not_busy(drive); 465 stat = wait_drive_not_busy(drive);
448 if (!OK_STAT(stat, 0, BAD_STAT)) 466 if (!OK_STAT(stat, 0, BAD_STAT))
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 9976f9d627d4..fc69fe2e3ec0 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1258,7 +1258,7 @@ static int __init ide_setup(char *s)
1258 drive = &hwif->drives[unit]; 1258 drive = &hwif->drives[unit];
1259 if (strncmp(s + 4, "ide-", 4) == 0) { 1259 if (strncmp(s + 4, "ide-", 4) == 0) {
1260 strlcpy(drive->driver_req, s + 4, sizeof(drive->driver_req)); 1260 strlcpy(drive->driver_req, s + 4, sizeof(drive->driver_req));
1261 goto done; 1261 goto obsolete_option;
1262 } 1262 }
1263 switch (match_parm(&s[3], hd_words, vals, 3)) { 1263 switch (match_parm(&s[3], hd_words, vals, 3)) {
1264 case -1: /* "none" */ 1264 case -1: /* "none" */
@@ -1290,13 +1290,13 @@ static int __init ide_setup(char *s)
1290 goto done; 1290 goto done;
1291 case -12: /* "remap" */ 1291 case -12: /* "remap" */
1292 drive->remap_0_to_1 = 1; 1292 drive->remap_0_to_1 = 1;
1293 goto done; 1293 goto obsolete_option;
1294 case -13: /* "remap63" */ 1294 case -13: /* "remap63" */
1295 drive->sect0 = 63; 1295 drive->sect0 = 63;
1296 goto done; 1296 goto obsolete_option;
1297 case -14: /* "scsi" */ 1297 case -14: /* "scsi" */
1298 drive->scsi = 1; 1298 drive->scsi = 1;
1299 goto done; 1299 goto obsolete_option;
1300 case 3: /* cyl,head,sect */ 1300 case 3: /* cyl,head,sect */
1301 drive->media = ide_disk; 1301 drive->media = ide_disk;
1302 drive->ready_stat = READY_STAT; 1302 drive->ready_stat = READY_STAT;
@@ -1370,32 +1370,32 @@ static int __init ide_setup(char *s)
1370#ifdef CONFIG_BLK_DEV_ALI14XX 1370#ifdef CONFIG_BLK_DEV_ALI14XX
1371 case -17: /* "ali14xx" */ 1371 case -17: /* "ali14xx" */
1372 probe_ali14xx = 1; 1372 probe_ali14xx = 1;
1373 goto done; 1373 goto obsolete_option;
1374#endif 1374#endif
1375#ifdef CONFIG_BLK_DEV_UMC8672 1375#ifdef CONFIG_BLK_DEV_UMC8672
1376 case -16: /* "umc8672" */ 1376 case -16: /* "umc8672" */
1377 probe_umc8672 = 1; 1377 probe_umc8672 = 1;
1378 goto done; 1378 goto obsolete_option;
1379#endif 1379#endif
1380#ifdef CONFIG_BLK_DEV_DTC2278 1380#ifdef CONFIG_BLK_DEV_DTC2278
1381 case -15: /* "dtc2278" */ 1381 case -15: /* "dtc2278" */
1382 probe_dtc2278 = 1; 1382 probe_dtc2278 = 1;
1383 goto done; 1383 goto obsolete_option;
1384#endif 1384#endif
1385#ifdef CONFIG_BLK_DEV_CMD640 1385#ifdef CONFIG_BLK_DEV_CMD640
1386 case -14: /* "cmd640_vlb" */ 1386 case -14: /* "cmd640_vlb" */
1387 cmd640_vlb = 1; 1387 cmd640_vlb = 1;
1388 goto done; 1388 goto obsolete_option;
1389#endif 1389#endif
1390#ifdef CONFIG_BLK_DEV_HT6560B 1390#ifdef CONFIG_BLK_DEV_HT6560B
1391 case -13: /* "ht6560b" */ 1391 case -13: /* "ht6560b" */
1392 probe_ht6560b = 1; 1392 probe_ht6560b = 1;
1393 goto done; 1393 goto obsolete_option;
1394#endif 1394#endif
1395#ifdef CONFIG_BLK_DEV_QD65XX 1395#ifdef CONFIG_BLK_DEV_QD65XX
1396 case -12: /* "qd65xx" */ 1396 case -12: /* "qd65xx" */
1397 probe_qd65xx = 1; 1397 probe_qd65xx = 1;
1398 goto done; 1398 goto obsolete_option;
1399#endif 1399#endif
1400#ifdef CONFIG_BLK_DEV_4DRIVES 1400#ifdef CONFIG_BLK_DEV_4DRIVES
1401 case -11: /* "four" drives on one set of ports */ 1401 case -11: /* "four" drives on one set of ports */
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index 9e2b1964d71a..f53f72daae34 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -376,6 +376,11 @@ static const struct {
376 .model_id = SBP2_ROM_VALUE_WILDCARD, 376 .model_id = SBP2_ROM_VALUE_WILDCARD,
377 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS, 377 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
378 }, 378 },
379 /* Datafab MD2-FW2 with Symbios/LSILogic SYM13FW500 bridge */ {
380 .firmware_revision = 0x002600,
381 .model_id = SBP2_ROM_VALUE_WILDCARD,
382 .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
383 },
379 /* iPod 4th generation */ { 384 /* iPod 4th generation */ {
380 .firmware_revision = 0x0a2700, 385 .firmware_revision = 0x0a2700,
381 .model_id = 0x000021, 386 .model_id = 0x000021,
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index a58ad8a470f9..781ea5950373 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -154,7 +154,7 @@ static void addr_send_arp(struct sockaddr_in *dst_in)
154{ 154{
155 struct rtable *rt; 155 struct rtable *rt;
156 struct flowi fl; 156 struct flowi fl;
157 u32 dst_ip = dst_in->sin_addr.s_addr; 157 __be32 dst_ip = dst_in->sin_addr.s_addr;
158 158
159 memset(&fl, 0, sizeof fl); 159 memset(&fl, 0, sizeof fl);
160 fl.nl_u.ip4_u.daddr = dst_ip; 160 fl.nl_u.ip4_u.daddr = dst_ip;
@@ -169,8 +169,8 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,
169 struct sockaddr_in *dst_in, 169 struct sockaddr_in *dst_in,
170 struct rdma_dev_addr *addr) 170 struct rdma_dev_addr *addr)
171{ 171{
172 u32 src_ip = src_in->sin_addr.s_addr; 172 __be32 src_ip = src_in->sin_addr.s_addr;
173 u32 dst_ip = dst_in->sin_addr.s_addr; 173 __be32 dst_ip = dst_in->sin_addr.s_addr;
174 struct flowi fl; 174 struct flowi fl;
175 struct rtable *rt; 175 struct rtable *rt;
176 struct neighbour *neigh; 176 struct neighbour *neigh;
@@ -257,7 +257,7 @@ static int addr_resolve_local(struct sockaddr_in *src_in,
257 struct rdma_dev_addr *addr) 257 struct rdma_dev_addr *addr)
258{ 258{
259 struct net_device *dev; 259 struct net_device *dev;
260 u32 src_ip = src_in->sin_addr.s_addr; 260 __be32 src_ip = src_in->sin_addr.s_addr;
261 __be32 dst_ip = dst_in->sin_addr.s_addr; 261 __be32 dst_ip = dst_in->sin_addr.s_addr;
262 int ret; 262 int ret;
263 263
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 4df405157086..faa7ce318a6d 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -393,7 +393,7 @@ static int cm_alloc_id(struct cm_id_private *cm_id_priv)
393 spin_unlock_irqrestore(&cm.lock, flags); 393 spin_unlock_irqrestore(&cm.lock, flags);
394 } while( (ret == -EAGAIN) && idr_pre_get(&cm.local_id_table, GFP_KERNEL) ); 394 } while( (ret == -EAGAIN) && idr_pre_get(&cm.local_id_table, GFP_KERNEL) );
395 395
396 cm_id_priv->id.local_id = (__force __be32) (id ^ cm.random_id_operand); 396 cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
397 return ret; 397 return ret;
398} 398}
399 399
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 34507daaf9b6..d81c156a22b4 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -168,15 +168,15 @@ struct cma_work {
168union cma_ip_addr { 168union cma_ip_addr {
169 struct in6_addr ip6; 169 struct in6_addr ip6;
170 struct { 170 struct {
171 __u32 pad[3]; 171 __be32 pad[3];
172 __u32 addr; 172 __be32 addr;
173 } ip4; 173 } ip4;
174}; 174};
175 175
176struct cma_hdr { 176struct cma_hdr {
177 u8 cma_version; 177 u8 cma_version;
178 u8 ip_version; /* IP version: 7:4 */ 178 u8 ip_version; /* IP version: 7:4 */
179 __u16 port; 179 __be16 port;
180 union cma_ip_addr src_addr; 180 union cma_ip_addr src_addr;
181 union cma_ip_addr dst_addr; 181 union cma_ip_addr dst_addr;
182}; 182};
@@ -186,8 +186,8 @@ struct sdp_hh {
186 u8 sdp_version; /* Major version: 7:4 */ 186 u8 sdp_version; /* Major version: 7:4 */
187 u8 ip_version; /* IP version: 7:4 */ 187 u8 ip_version; /* IP version: 7:4 */
188 u8 sdp_specific1[10]; 188 u8 sdp_specific1[10];
189 __u16 port; 189 __be16 port;
190 __u16 sdp_specific2; 190 __be16 sdp_specific2;
191 union cma_ip_addr src_addr; 191 union cma_ip_addr src_addr;
192 union cma_ip_addr dst_addr; 192 union cma_ip_addr dst_addr;
193}; 193};
@@ -663,7 +663,7 @@ static inline int cma_any_port(struct sockaddr *addr)
663} 663}
664 664
665static int cma_get_net_info(void *hdr, enum rdma_port_space ps, 665static int cma_get_net_info(void *hdr, enum rdma_port_space ps,
666 u8 *ip_ver, __u16 *port, 666 u8 *ip_ver, __be16 *port,
667 union cma_ip_addr **src, union cma_ip_addr **dst) 667 union cma_ip_addr **src, union cma_ip_addr **dst)
668{ 668{
669 switch (ps) { 669 switch (ps) {
@@ -695,7 +695,7 @@ static int cma_get_net_info(void *hdr, enum rdma_port_space ps,
695 695
696static void cma_save_net_info(struct rdma_addr *addr, 696static void cma_save_net_info(struct rdma_addr *addr,
697 struct rdma_addr *listen_addr, 697 struct rdma_addr *listen_addr,
698 u8 ip_ver, __u16 port, 698 u8 ip_ver, __be16 port,
699 union cma_ip_addr *src, union cma_ip_addr *dst) 699 union cma_ip_addr *src, union cma_ip_addr *dst)
700{ 700{
701 struct sockaddr_in *listen4, *ip4; 701 struct sockaddr_in *listen4, *ip4;
@@ -996,7 +996,7 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
996 struct rdma_cm_id *id; 996 struct rdma_cm_id *id;
997 struct rdma_route *rt; 997 struct rdma_route *rt;
998 union cma_ip_addr *src, *dst; 998 union cma_ip_addr *src, *dst;
999 __u16 port; 999 __be16 port;
1000 u8 ip_ver; 1000 u8 ip_ver;
1001 1001
1002 if (cma_get_net_info(ib_event->private_data, listen_id->ps, 1002 if (cma_get_net_info(ib_event->private_data, listen_id->ps,
@@ -1043,7 +1043,7 @@ static struct rdma_id_private *cma_new_udp_id(struct rdma_cm_id *listen_id,
1043 struct rdma_id_private *id_priv; 1043 struct rdma_id_private *id_priv;
1044 struct rdma_cm_id *id; 1044 struct rdma_cm_id *id;
1045 union cma_ip_addr *src, *dst; 1045 union cma_ip_addr *src, *dst;
1046 __u16 port; 1046 __be16 port;
1047 u8 ip_ver; 1047 u8 ip_ver;
1048 int ret; 1048 int ret;
1049 1049
@@ -1165,7 +1165,7 @@ static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
1165{ 1165{
1166 struct cma_hdr *cma_data, *cma_mask; 1166 struct cma_hdr *cma_data, *cma_mask;
1167 struct sdp_hh *sdp_data, *sdp_mask; 1167 struct sdp_hh *sdp_data, *sdp_mask;
1168 __u32 ip4_addr; 1168 __be32 ip4_addr;
1169 struct in6_addr ip6_addr; 1169 struct in6_addr ip6_addr;
1170 1170
1171 memset(compare, 0, sizeof *compare); 1171 memset(compare, 0, sizeof *compare);
@@ -1181,12 +1181,12 @@ static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
1181 sdp_set_ip_ver(sdp_data, 4); 1181 sdp_set_ip_ver(sdp_data, 4);
1182 sdp_set_ip_ver(sdp_mask, 0xF); 1182 sdp_set_ip_ver(sdp_mask, 0xF);
1183 sdp_data->dst_addr.ip4.addr = ip4_addr; 1183 sdp_data->dst_addr.ip4.addr = ip4_addr;
1184 sdp_mask->dst_addr.ip4.addr = ~0; 1184 sdp_mask->dst_addr.ip4.addr = htonl(~0);
1185 } else { 1185 } else {
1186 cma_set_ip_ver(cma_data, 4); 1186 cma_set_ip_ver(cma_data, 4);
1187 cma_set_ip_ver(cma_mask, 0xF); 1187 cma_set_ip_ver(cma_mask, 0xF);
1188 cma_data->dst_addr.ip4.addr = ip4_addr; 1188 cma_data->dst_addr.ip4.addr = ip4_addr;
1189 cma_mask->dst_addr.ip4.addr = ~0; 1189 cma_mask->dst_addr.ip4.addr = htonl(~0);
1190 } 1190 }
1191 break; 1191 break;
1192 case AF_INET6: 1192 case AF_INET6:
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index 320f2b6ddee6..99f2f2a46bf7 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -1745,7 +1745,7 @@ int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
1745 1745
1746 /* bind QP to EP and move to RTS */ 1746 /* bind QP to EP and move to RTS */
1747 attrs.mpa_attr = ep->mpa_attr; 1747 attrs.mpa_attr = ep->mpa_attr;
1748 attrs.max_ird = ep->ord; 1748 attrs.max_ird = ep->ird;
1749 attrs.max_ord = ep->ord; 1749 attrs.max_ord = ep->ord;
1750 attrs.llp_stream_handle = ep; 1750 attrs.llp_stream_handle = ep;
1751 attrs.next_state = IWCH_QP_STATE_RTS; 1751 attrs.next_state = IWCH_QP_STATE_RTS;
diff --git a/drivers/infiniband/hw/ipath/ipath_common.h b/drivers/infiniband/hw/ipath/ipath_common.h
index 414621095540..591901aab6b7 100644
--- a/drivers/infiniband/hw/ipath/ipath_common.h
+++ b/drivers/infiniband/hw/ipath/ipath_common.h
@@ -75,7 +75,7 @@
75#define IPATH_IB_LINKDOWN 0 75#define IPATH_IB_LINKDOWN 0
76#define IPATH_IB_LINKARM 1 76#define IPATH_IB_LINKARM 1
77#define IPATH_IB_LINKACTIVE 2 77#define IPATH_IB_LINKACTIVE 2
78#define IPATH_IB_LINKINIT 3 78#define IPATH_IB_LINKDOWN_ONLY 3
79#define IPATH_IB_LINKDOWN_SLEEP 4 79#define IPATH_IB_LINKDOWN_SLEEP 4
80#define IPATH_IB_LINKDOWN_DISABLE 5 80#define IPATH_IB_LINKDOWN_DISABLE 5
81#define IPATH_IB_LINK_LOOPBACK 6 /* enable local loopback */ 81#define IPATH_IB_LINK_LOOPBACK 6 /* enable local loopback */
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index d5ff6ca2db30..ca4d0acc6786 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -851,8 +851,7 @@ void ipath_disarm_piobufs(struct ipath_devdata *dd, unsigned first,
851 * -ETIMEDOUT state can have multiple states set, for any of several 851 * -ETIMEDOUT state can have multiple states set, for any of several
852 * transitions. 852 * transitions.
853 */ 853 */
854static int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state, 854int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state, int msecs)
855 int msecs)
856{ 855{
857 dd->ipath_state_wanted = state; 856 dd->ipath_state_wanted = state;
858 wait_event_interruptible_timeout(ipath_state_wait, 857 wait_event_interruptible_timeout(ipath_state_wait,
@@ -1656,8 +1655,8 @@ void ipath_cancel_sends(struct ipath_devdata *dd, int restore_sendctrl)
1656static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which) 1655static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
1657{ 1656{
1658 static const char *what[4] = { 1657 static const char *what[4] = {
1659 [0] = "DOWN", 1658 [0] = "NOP",
1660 [INFINIPATH_IBCC_LINKCMD_INIT] = "INIT", 1659 [INFINIPATH_IBCC_LINKCMD_DOWN] = "DOWN",
1661 [INFINIPATH_IBCC_LINKCMD_ARMED] = "ARMED", 1660 [INFINIPATH_IBCC_LINKCMD_ARMED] = "ARMED",
1662 [INFINIPATH_IBCC_LINKCMD_ACTIVE] = "ACTIVE" 1661 [INFINIPATH_IBCC_LINKCMD_ACTIVE] = "ACTIVE"
1663 }; 1662 };
@@ -1672,9 +1671,9 @@ static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
1672 (dd, dd->ipath_kregs->kr_ibcstatus) >> 1671 (dd, dd->ipath_kregs->kr_ibcstatus) >>
1673 INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) & 1672 INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) &
1674 INFINIPATH_IBCS_LINKTRAININGSTATE_MASK]); 1673 INFINIPATH_IBCS_LINKTRAININGSTATE_MASK]);
1675 /* flush all queued sends when going to DOWN or INIT, to be sure that 1674 /* flush all queued sends when going to DOWN to be sure that
1676 * they don't block MAD packets */ 1675 * they don't block MAD packets */
1677 if (!linkcmd || linkcmd == INFINIPATH_IBCC_LINKCMD_INIT) 1676 if (linkcmd == INFINIPATH_IBCC_LINKCMD_DOWN)
1678 ipath_cancel_sends(dd, 1); 1677 ipath_cancel_sends(dd, 1);
1679 1678
1680 ipath_write_kreg(dd, dd->ipath_kregs->kr_ibcctrl, 1679 ipath_write_kreg(dd, dd->ipath_kregs->kr_ibcctrl,
@@ -1687,6 +1686,13 @@ int ipath_set_linkstate(struct ipath_devdata *dd, u8 newstate)
1687 int ret; 1686 int ret;
1688 1687
1689 switch (newstate) { 1688 switch (newstate) {
1689 case IPATH_IB_LINKDOWN_ONLY:
1690 ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKCMD_DOWN <<
1691 INFINIPATH_IBCC_LINKCMD_SHIFT);
1692 /* don't wait */
1693 ret = 0;
1694 goto bail;
1695
1690 case IPATH_IB_LINKDOWN: 1696 case IPATH_IB_LINKDOWN:
1691 ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKINITCMD_POLL << 1697 ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKINITCMD_POLL <<
1692 INFINIPATH_IBCC_LINKINITCMD_SHIFT); 1698 INFINIPATH_IBCC_LINKINITCMD_SHIFT);
@@ -1709,16 +1715,6 @@ int ipath_set_linkstate(struct ipath_devdata *dd, u8 newstate)
1709 ret = 0; 1715 ret = 0;
1710 goto bail; 1716 goto bail;
1711 1717
1712 case IPATH_IB_LINKINIT:
1713 if (dd->ipath_flags & IPATH_LINKINIT) {
1714 ret = 0;
1715 goto bail;
1716 }
1717 ipath_set_ib_lstate(dd, INFINIPATH_IBCC_LINKCMD_INIT <<
1718 INFINIPATH_IBCC_LINKCMD_SHIFT);
1719 lstate = IPATH_LINKINIT;
1720 break;
1721
1722 case IPATH_IB_LINKARM: 1718 case IPATH_IB_LINKARM:
1723 if (dd->ipath_flags & IPATH_LINKARMED) { 1719 if (dd->ipath_flags & IPATH_LINKARMED) {
1724 ret = 0; 1720 ret = 0;
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index 4cc0f95ea877..ecf3f7ff7717 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -767,6 +767,7 @@ void ipath_kreceive(struct ipath_portdata *);
767int ipath_setrcvhdrsize(struct ipath_devdata *, unsigned); 767int ipath_setrcvhdrsize(struct ipath_devdata *, unsigned);
768int ipath_reset_device(int); 768int ipath_reset_device(int);
769void ipath_get_faststats(unsigned long); 769void ipath_get_faststats(unsigned long);
770int ipath_wait_linkstate(struct ipath_devdata *, u32, int);
770int ipath_set_linkstate(struct ipath_devdata *, u8); 771int ipath_set_linkstate(struct ipath_devdata *, u8);
771int ipath_set_mtu(struct ipath_devdata *, u16); 772int ipath_set_mtu(struct ipath_devdata *, u16);
772int ipath_set_lid(struct ipath_devdata *, u32, u8); 773int ipath_set_lid(struct ipath_devdata *, u32, u8);
diff --git a/drivers/infiniband/hw/ipath/ipath_mad.c b/drivers/infiniband/hw/ipath/ipath_mad.c
index d98d5f103700..b34b91d3723a 100644
--- a/drivers/infiniband/hw/ipath/ipath_mad.c
+++ b/drivers/infiniband/hw/ipath/ipath_mad.c
@@ -555,10 +555,7 @@ static int recv_subn_set_portinfo(struct ib_smp *smp,
555 /* FALLTHROUGH */ 555 /* FALLTHROUGH */
556 case IB_PORT_DOWN: 556 case IB_PORT_DOWN:
557 if (lstate == 0) 557 if (lstate == 0)
558 if (get_linkdowndefaultstate(dd)) 558 lstate = IPATH_IB_LINKDOWN_ONLY;
559 lstate = IPATH_IB_LINKDOWN_SLEEP;
560 else
561 lstate = IPATH_IB_LINKDOWN;
562 else if (lstate == 1) 559 else if (lstate == 1)
563 lstate = IPATH_IB_LINKDOWN_SLEEP; 560 lstate = IPATH_IB_LINKDOWN_SLEEP;
564 else if (lstate == 2) 561 else if (lstate == 2)
@@ -568,6 +565,8 @@ static int recv_subn_set_portinfo(struct ib_smp *smp,
568 else 565 else
569 goto err; 566 goto err;
570 ipath_set_linkstate(dd, lstate); 567 ipath_set_linkstate(dd, lstate);
568 ipath_wait_linkstate(dd, IPATH_LINKINIT | IPATH_LINKARMED |
569 IPATH_LINKACTIVE, 1000);
571 break; 570 break;
572 case IB_PORT_ARMED: 571 case IB_PORT_ARMED:
573 ipath_set_linkstate(dd, IPATH_IB_LINKARM); 572 ipath_set_linkstate(dd, IPATH_IB_LINKARM);
diff --git a/drivers/infiniband/hw/ipath/ipath_qp.c b/drivers/infiniband/hw/ipath/ipath_qp.c
index 80dc623cee40..087ed3166479 100644
--- a/drivers/infiniband/hw/ipath/ipath_qp.c
+++ b/drivers/infiniband/hw/ipath/ipath_qp.c
@@ -329,8 +329,9 @@ struct ipath_qp *ipath_lookup_qpn(struct ipath_qp_table *qpt, u32 qpn)
329/** 329/**
330 * ipath_reset_qp - initialize the QP state to the reset state 330 * ipath_reset_qp - initialize the QP state to the reset state
331 * @qp: the QP to reset 331 * @qp: the QP to reset
332 * @type: the QP type
332 */ 333 */
333static void ipath_reset_qp(struct ipath_qp *qp) 334static void ipath_reset_qp(struct ipath_qp *qp, enum ib_qp_type type)
334{ 335{
335 qp->remote_qpn = 0; 336 qp->remote_qpn = 0;
336 qp->qkey = 0; 337 qp->qkey = 0;
@@ -342,7 +343,7 @@ static void ipath_reset_qp(struct ipath_qp *qp)
342 qp->s_psn = 0; 343 qp->s_psn = 0;
343 qp->r_psn = 0; 344 qp->r_psn = 0;
344 qp->r_msn = 0; 345 qp->r_msn = 0;
345 if (qp->ibqp.qp_type == IB_QPT_RC) { 346 if (type == IB_QPT_RC) {
346 qp->s_state = IB_OPCODE_RC_SEND_LAST; 347 qp->s_state = IB_OPCODE_RC_SEND_LAST;
347 qp->r_state = IB_OPCODE_RC_SEND_LAST; 348 qp->r_state = IB_OPCODE_RC_SEND_LAST;
348 } else { 349 } else {
@@ -414,7 +415,7 @@ int ipath_error_qp(struct ipath_qp *qp, enum ib_wc_status err)
414 wc.wr_id = qp->r_wr_id; 415 wc.wr_id = qp->r_wr_id;
415 wc.opcode = IB_WC_RECV; 416 wc.opcode = IB_WC_RECV;
416 wc.status = err; 417 wc.status = err;
417 ipath_cq_enter(to_icq(qp->ibqp.send_cq), &wc, 1); 418 ipath_cq_enter(to_icq(qp->ibqp.recv_cq), &wc, 1);
418 } 419 }
419 wc.status = IB_WC_WR_FLUSH_ERR; 420 wc.status = IB_WC_WR_FLUSH_ERR;
420 421
@@ -534,7 +535,7 @@ int ipath_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
534 535
535 switch (new_state) { 536 switch (new_state) {
536 case IB_QPS_RESET: 537 case IB_QPS_RESET:
537 ipath_reset_qp(qp); 538 ipath_reset_qp(qp, ibqp->qp_type);
538 break; 539 break;
539 540
540 case IB_QPS_ERR: 541 case IB_QPS_ERR:
@@ -647,7 +648,7 @@ int ipath_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
647 attr->port_num = 1; 648 attr->port_num = 1;
648 attr->timeout = qp->timeout; 649 attr->timeout = qp->timeout;
649 attr->retry_cnt = qp->s_retry_cnt; 650 attr->retry_cnt = qp->s_retry_cnt;
650 attr->rnr_retry = qp->s_rnr_retry; 651 attr->rnr_retry = qp->s_rnr_retry_cnt;
651 attr->alt_port_num = 0; 652 attr->alt_port_num = 0;
652 attr->alt_timeout = 0; 653 attr->alt_timeout = 0;
653 654
@@ -839,7 +840,7 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
839 goto bail_qp; 840 goto bail_qp;
840 } 841 }
841 qp->ip = NULL; 842 qp->ip = NULL;
842 ipath_reset_qp(qp); 843 ipath_reset_qp(qp, init_attr->qp_type);
843 break; 844 break;
844 845
845 default: 846 default:
diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
index 459e46e2c016..40f3e37d7adc 100644
--- a/drivers/infiniband/hw/ipath/ipath_rc.c
+++ b/drivers/infiniband/hw/ipath/ipath_rc.c
@@ -1196,6 +1196,10 @@ static inline void ipath_rc_rcv_resp(struct ipath_ibdev *dev,
1196 list_move_tail(&qp->timerwait, 1196 list_move_tail(&qp->timerwait,
1197 &dev->pending[dev->pending_index]); 1197 &dev->pending[dev->pending_index]);
1198 spin_unlock(&dev->pending_lock); 1198 spin_unlock(&dev->pending_lock);
1199
1200 if (opcode == OP(RDMA_READ_RESPONSE_MIDDLE))
1201 qp->s_retry = qp->s_retry_cnt;
1202
1199 /* 1203 /*
1200 * Update the RDMA receive state but do the copy w/o 1204 * Update the RDMA receive state but do the copy w/o
1201 * holding the locks and blocking interrupts. 1205 * holding the locks and blocking interrupts.
diff --git a/drivers/infiniband/hw/ipath/ipath_registers.h b/drivers/infiniband/hw/ipath/ipath_registers.h
index 6d2a17f9c1da..92ad73a7fff0 100644
--- a/drivers/infiniband/hw/ipath/ipath_registers.h
+++ b/drivers/infiniband/hw/ipath/ipath_registers.h
@@ -185,7 +185,7 @@
185#define INFINIPATH_IBCC_LINKINITCMD_SLEEP 3 185#define INFINIPATH_IBCC_LINKINITCMD_SLEEP 3
186#define INFINIPATH_IBCC_LINKINITCMD_SHIFT 16 186#define INFINIPATH_IBCC_LINKINITCMD_SHIFT 16
187#define INFINIPATH_IBCC_LINKCMD_MASK 0x3ULL 187#define INFINIPATH_IBCC_LINKCMD_MASK 0x3ULL
188#define INFINIPATH_IBCC_LINKCMD_INIT 1 /* move to 0x11 */ 188#define INFINIPATH_IBCC_LINKCMD_DOWN 1 /* move to 0x11 */
189#define INFINIPATH_IBCC_LINKCMD_ARMED 2 /* move to 0x21 */ 189#define INFINIPATH_IBCC_LINKCMD_ARMED 2 /* move to 0x21 */
190#define INFINIPATH_IBCC_LINKCMD_ACTIVE 3 /* move to 0x31 */ 190#define INFINIPATH_IBCC_LINKCMD_ACTIVE 3 /* move to 0x31 */
191#define INFINIPATH_IBCC_LINKCMD_SHIFT 18 191#define INFINIPATH_IBCC_LINKCMD_SHIFT 18
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 39adb267fb15..0bef878e0f65 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -40,6 +40,7 @@
40#include <linux/tcp.h> 40#include <linux/tcp.h>
41#include <linux/init.h> 41#include <linux/init.h>
42#include <linux/if_arp.h> 42#include <linux/if_arp.h>
43#include <linux/if_vlan.h>
43#include <linux/notifier.h> 44#include <linux/notifier.h>
44#include <linux/net.h> 45#include <linux/net.h>
45#include <linux/types.h> 46#include <linux/types.h>
@@ -1072,7 +1073,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
1072 ts = current_kernel_time(); 1073 ts = current_kernel_time();
1073 cm_node->tcp_cntxt.loc_seq_num = htonl(ts.tv_nsec); 1074 cm_node->tcp_cntxt.loc_seq_num = htonl(ts.tv_nsec);
1074 cm_node->tcp_cntxt.mss = nesvnic->max_frame_size - sizeof(struct iphdr) - 1075 cm_node->tcp_cntxt.mss = nesvnic->max_frame_size - sizeof(struct iphdr) -
1075 sizeof(struct tcphdr) - ETH_HLEN; 1076 sizeof(struct tcphdr) - ETH_HLEN - VLAN_HLEN;
1076 cm_node->tcp_cntxt.rcv_nxt = 0; 1077 cm_node->tcp_cntxt.rcv_nxt = 0;
1077 /* get a unique session ID , add thread_id to an upcounter to handle race */ 1078 /* get a unique session ID , add thread_id to an upcounter to handle race */
1078 atomic_inc(&cm_core->node_cnt); 1079 atomic_inc(&cm_core->node_cnt);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 52b1bebfa744..2490b2d79dbb 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -38,6 +38,7 @@
38#include <net/icmp.h> 38#include <net/icmp.h>
39#include <linux/icmpv6.h> 39#include <linux/icmpv6.h>
40#include <linux/delay.h> 40#include <linux/delay.h>
41#include <linux/vmalloc.h>
41 42
42#include "ipoib.h" 43#include "ipoib.h"
43 44
@@ -637,6 +638,7 @@ static inline int post_send(struct ipoib_dev_priv *priv,
637 priv->tx_sge[0].addr = addr; 638 priv->tx_sge[0].addr = addr;
638 priv->tx_sge[0].length = len; 639 priv->tx_sge[0].length = len;
639 640
641 priv->tx_wr.num_sge = 1;
640 priv->tx_wr.wr_id = wr_id | IPOIB_OP_CM; 642 priv->tx_wr.wr_id = wr_id | IPOIB_OP_CM;
641 643
642 return ib_post_send(tx->qp, &priv->tx_wr, &bad_wr); 644 return ib_post_send(tx->qp, &priv->tx_wr, &bad_wr);
@@ -1030,13 +1032,13 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
1030 struct ipoib_dev_priv *priv = netdev_priv(p->dev); 1032 struct ipoib_dev_priv *priv = netdev_priv(p->dev);
1031 int ret; 1033 int ret;
1032 1034
1033 p->tx_ring = kzalloc(ipoib_sendq_size * sizeof *p->tx_ring, 1035 p->tx_ring = vmalloc(ipoib_sendq_size * sizeof *p->tx_ring);
1034 GFP_KERNEL);
1035 if (!p->tx_ring) { 1036 if (!p->tx_ring) {
1036 ipoib_warn(priv, "failed to allocate tx ring\n"); 1037 ipoib_warn(priv, "failed to allocate tx ring\n");
1037 ret = -ENOMEM; 1038 ret = -ENOMEM;
1038 goto err_tx; 1039 goto err_tx;
1039 } 1040 }
1041 memset(p->tx_ring, 0, ipoib_sendq_size * sizeof *p->tx_ring);
1040 1042
1041 p->qp = ipoib_cm_create_tx_qp(p->dev, p); 1043 p->qp = ipoib_cm_create_tx_qp(p->dev, p);
1042 if (IS_ERR(p->qp)) { 1044 if (IS_ERR(p->qp)) {
@@ -1077,6 +1079,7 @@ err_id:
1077 ib_destroy_qp(p->qp); 1079 ib_destroy_qp(p->qp);
1078err_qp: 1080err_qp:
1079 p->qp = NULL; 1081 p->qp = NULL;
1082 vfree(p->tx_ring);
1080err_tx: 1083err_tx:
1081 return ret; 1084 return ret;
1082} 1085}
@@ -1127,7 +1130,7 @@ timeout:
1127 if (p->qp) 1130 if (p->qp)
1128 ib_destroy_qp(p->qp); 1131 ib_destroy_qp(p->qp);
1129 1132
1130 kfree(p->tx_ring); 1133 vfree(p->tx_ring);
1131 kfree(p); 1134 kfree(p);
1132} 1135}
1133 1136
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index f96477a8ca5a..57282048865c 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -41,6 +41,7 @@
41#include <linux/init.h> 41#include <linux/init.h>
42#include <linux/slab.h> 42#include <linux/slab.h>
43#include <linux/kernel.h> 43#include <linux/kernel.h>
44#include <linux/vmalloc.h>
44 45
45#include <linux/if_arp.h> /* For ARPHRD_xxx */ 46#include <linux/if_arp.h> /* For ARPHRD_xxx */
46 47
@@ -887,13 +888,13 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port)
887 goto out; 888 goto out;
888 } 889 }
889 890
890 priv->tx_ring = kzalloc(ipoib_sendq_size * sizeof *priv->tx_ring, 891 priv->tx_ring = vmalloc(ipoib_sendq_size * sizeof *priv->tx_ring);
891 GFP_KERNEL);
892 if (!priv->tx_ring) { 892 if (!priv->tx_ring) {
893 printk(KERN_WARNING "%s: failed to allocate TX ring (%d entries)\n", 893 printk(KERN_WARNING "%s: failed to allocate TX ring (%d entries)\n",
894 ca->name, ipoib_sendq_size); 894 ca->name, ipoib_sendq_size);
895 goto out_rx_ring_cleanup; 895 goto out_rx_ring_cleanup;
896 } 896 }
897 memset(priv->tx_ring, 0, ipoib_sendq_size * sizeof *priv->tx_ring);
897 898
898 /* priv->tx_head, tx_tail & tx_outstanding are already 0 */ 899 /* priv->tx_head, tx_tail & tx_outstanding are already 0 */
899 900
@@ -903,7 +904,7 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port)
903 return 0; 904 return 0;
904 905
905out_tx_ring_cleanup: 906out_tx_ring_cleanup:
906 kfree(priv->tx_ring); 907 vfree(priv->tx_ring);
907 908
908out_rx_ring_cleanup: 909out_rx_ring_cleanup:
909 kfree(priv->rx_ring); 910 kfree(priv->rx_ring);
@@ -928,7 +929,7 @@ void ipoib_dev_cleanup(struct net_device *dev)
928 ipoib_ib_dev_cleanup(dev); 929 ipoib_ib_dev_cleanup(dev);
929 930
930 kfree(priv->rx_ring); 931 kfree(priv->rx_ring);
931 kfree(priv->tx_ring); 932 vfree(priv->tx_ring);
932 933
933 priv->rx_ring = NULL; 934 priv->rx_ring = NULL;
934 priv->tx_ring = NULL; 935 priv->tx_ring = NULL;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 2628339e3a99..31a53c5bcb13 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -650,7 +650,7 @@ void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
650 */ 650 */
651 spin_lock(&priv->lock); 651 spin_lock(&priv->lock);
652 652
653 if (!test_bit(IPOIB_MCAST_STARTED, &priv->flags) || 653 if (!test_bit(IPOIB_FLAG_OPER_UP, &priv->flags) ||
654 !priv->broadcast || 654 !priv->broadcast ||
655 !test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) { 655 !test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) {
656 ++dev->stats.tx_dropped; 656 ++dev->stats.tx_dropped;
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 0727b0a12557..99562cee827e 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -853,6 +853,9 @@ static void evdev_cleanup(struct evdev *evdev)
853 evdev_hangup(evdev); 853 evdev_hangup(evdev);
854 evdev_remove_chrdev(evdev); 854 evdev_remove_chrdev(evdev);
855 855
856 if (evdev->grab)
857 evdev_ungrab(evdev, evdev->grab);
858
856 /* evdev is marked dead so no one else accesses evdev->open */ 859 /* evdev is marked dead so no one else accesses evdev->open */
857 if (evdev->open) { 860 if (evdev->open) {
858 input_flush_device(handle, NULL); 861 input_flush_device(handle, NULL);
diff --git a/drivers/input/misc/ixp4xx-beeper.c b/drivers/input/misc/ixp4xx-beeper.c
index d2ade7443b7d..798d84c44d03 100644
--- a/drivers/input/misc/ixp4xx-beeper.c
+++ b/drivers/input/misc/ixp4xx-beeper.c
@@ -25,6 +25,7 @@
25MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); 25MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
26MODULE_DESCRIPTION("ixp4xx beeper driver"); 26MODULE_DESCRIPTION("ixp4xx beeper driver");
27MODULE_LICENSE("GPL"); 27MODULE_LICENSE("GPL");
28MODULE_ALIAS("platform:ixp4xx-beeper");
28 29
29static DEFINE_SPINLOCK(beep_lock); 30static DEFINE_SPINLOCK(beep_lock);
30 31
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 9cef6fcf587b..d4ad6992f776 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -981,13 +981,13 @@ isdn_readbchan_tty(int di, int channel, struct tty_struct *tty, int cisco_hack)
981} 981}
982 982
983 983
984static __inline int 984static inline int
985isdn_minor2drv(int minor) 985isdn_minor2drv(int minor)
986{ 986{
987 return (dev->drvmap[minor]); 987 return (dev->drvmap[minor]);
988} 988}
989 989
990static __inline int 990static inline int
991isdn_minor2chan(int minor) 991isdn_minor2chan(int minor)
992{ 992{
993 return (dev->chanmap[minor]); 993 return (dev->chanmap[minor]);
diff --git a/drivers/isdn/i4l/isdn_v110.c b/drivers/isdn/i4l/isdn_v110.c
index 5484d3c38a57..c5d02b6aafab 100644
--- a/drivers/isdn/i4l/isdn_v110.c
+++ b/drivers/isdn/i4l/isdn_v110.c
@@ -62,7 +62,7 @@ static unsigned char V110_OffMatrix_38400[] =
62 * and to 67452301 when keylen = 2. This is necessary because ordering on 62 * and to 67452301 when keylen = 2. This is necessary because ordering on
63 * the isdn line is the other way. 63 * the isdn line is the other way.
64 */ 64 */
65static __inline unsigned char 65static inline unsigned char
66FlipBits(unsigned char c, int keylen) 66FlipBits(unsigned char c, int keylen)
67{ 67{
68 unsigned char b = c; 68 unsigned char b = c;
diff --git a/drivers/lguest/Makefile b/drivers/lguest/Makefile
index 5e8272d296d8..7d463c26124f 100644
--- a/drivers/lguest/Makefile
+++ b/drivers/lguest/Makefile
@@ -19,3 +19,11 @@ Beer:
19 @for f in Preparation Guest Drivers Launcher Host Switcher Mastery; do echo "{==- $$f -==}"; make -s $$f; done; echo "{==-==}" 19 @for f in Preparation Guest Drivers Launcher Host Switcher Mastery; do echo "{==- $$f -==}"; make -s $$f; done; echo "{==-==}"
20Preparation Preparation! Guest Drivers Launcher Host Switcher Mastery: 20Preparation Preparation! Guest Drivers Launcher Host Switcher Mastery:
21 @sh ../../Documentation/lguest/extract $(PREFIX) `find ../../* -name '*.[chS]' -wholename '*lguest*'` 21 @sh ../../Documentation/lguest/extract $(PREFIX) `find ../../* -name '*.[chS]' -wholename '*lguest*'`
22Puppy:
23 @clear
24 @printf " __ \n (___()'\`;\n /, /\`\n \\\\\\\"--\\\\\\ \n"
25 @sleep 2; clear; printf "\n\n Sit!\n\n"; sleep 1; clear
26 @printf " __ \n ()'\`; \n /\\|\` \n / | \n(/_)_|_ \n"
27 @sleep 2; clear; printf "\n\n Stand!\n\n"; sleep 1; clear
28 @printf " __ \n ()'\`; \n /\\|\` \n /._.= \n /| / \n(_\_)_ \n"
29 @sleep 2; clear; printf "\n\n Good puppy!\n\n"; sleep 1; clear
diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
index c632c08cbbdc..5eea4356d703 100644
--- a/drivers/lguest/core.c
+++ b/drivers/lguest/core.c
@@ -1,8 +1,6 @@
1/*P:400 This contains run_guest() which actually calls into the Host<->Guest 1/*P:400 This contains run_guest() which actually calls into the Host<->Guest
2 * Switcher and analyzes the return, such as determining if the Guest wants the 2 * Switcher and analyzes the return, such as determining if the Guest wants the
3 * Host to do something. This file also contains useful helper routines, and a 3 * Host to do something. This file also contains useful helper routines. :*/
4 * couple of non-obvious setup and teardown pieces which were implemented after
5 * days of debugging pain. :*/
6#include <linux/module.h> 4#include <linux/module.h>
7#include <linux/stringify.h> 5#include <linux/stringify.h>
8#include <linux/stddef.h> 6#include <linux/stddef.h>
@@ -49,8 +47,8 @@ static __init int map_switcher(void)
49 * easy. 47 * easy.
50 */ 48 */
51 49
52 /* We allocate an array of "struct page"s. map_vm_area() wants the 50 /* We allocate an array of struct page pointers. map_vm_area() wants
53 * pages in this form, rather than just an array of pointers. */ 51 * this, rather than just an array of pages. */
54 switcher_page = kmalloc(sizeof(switcher_page[0])*TOTAL_SWITCHER_PAGES, 52 switcher_page = kmalloc(sizeof(switcher_page[0])*TOTAL_SWITCHER_PAGES,
55 GFP_KERNEL); 53 GFP_KERNEL);
56 if (!switcher_page) { 54 if (!switcher_page) {
@@ -172,7 +170,7 @@ void __lgread(struct lg_cpu *cpu, void *b, unsigned long addr, unsigned bytes)
172 } 170 }
173} 171}
174 172
175/* This is the write (copy into guest) version. */ 173/* This is the write (copy into Guest) version. */
176void __lgwrite(struct lg_cpu *cpu, unsigned long addr, const void *b, 174void __lgwrite(struct lg_cpu *cpu, unsigned long addr, const void *b,
177 unsigned bytes) 175 unsigned bytes)
178{ 176{
@@ -209,9 +207,9 @@ int run_guest(struct lg_cpu *cpu, unsigned long __user *user)
209 if (cpu->break_out) 207 if (cpu->break_out)
210 return -EAGAIN; 208 return -EAGAIN;
211 209
212 /* Check if there are any interrupts which can be delivered 210 /* Check if there are any interrupts which can be delivered now:
213 * now: if so, this sets up the hander to be executed when we 211 * if so, this sets up the hander to be executed when we next
214 * next run the Guest. */ 212 * run the Guest. */
215 maybe_do_interrupt(cpu); 213 maybe_do_interrupt(cpu);
216 214
217 /* All long-lived kernel loops need to check with this horrible 215 /* All long-lived kernel loops need to check with this horrible
@@ -246,8 +244,10 @@ int run_guest(struct lg_cpu *cpu, unsigned long __user *user)
246 lguest_arch_handle_trap(cpu); 244 lguest_arch_handle_trap(cpu);
247 } 245 }
248 246
247 /* Special case: Guest is 'dead' but wants a reboot. */
249 if (cpu->lg->dead == ERR_PTR(-ERESTART)) 248 if (cpu->lg->dead == ERR_PTR(-ERESTART))
250 return -ERESTART; 249 return -ERESTART;
250
251 /* The Guest is dead => "No such file or directory" */ 251 /* The Guest is dead => "No such file or directory" */
252 return -ENOENT; 252 return -ENOENT;
253} 253}
diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c
index 0f2cb4fd7c69..54d66f05fefa 100644
--- a/drivers/lguest/hypercalls.c
+++ b/drivers/lguest/hypercalls.c
@@ -29,7 +29,7 @@
29#include "lg.h" 29#include "lg.h"
30 30
31/*H:120 This is the core hypercall routine: where the Guest gets what it wants. 31/*H:120 This is the core hypercall routine: where the Guest gets what it wants.
32 * Or gets killed. Or, in the case of LHCALL_CRASH, both. */ 32 * Or gets killed. Or, in the case of LHCALL_SHUTDOWN, both. */
33static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) 33static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args)
34{ 34{
35 switch (args->arg0) { 35 switch (args->arg0) {
@@ -190,6 +190,13 @@ static void initialize(struct lg_cpu *cpu)
190 * pagetable. */ 190 * pagetable. */
191 guest_pagetable_clear_all(cpu); 191 guest_pagetable_clear_all(cpu);
192} 192}
193/*:*/
194
195/*M:013 If a Guest reads from a page (so creates a mapping) that it has never
196 * written to, and then the Launcher writes to it (ie. the output of a virtual
197 * device), the Guest will still see the old page. In practice, this never
198 * happens: why would the Guest read a page which it has never written to? But
199 * a similar scenario might one day bite us, so it's worth mentioning. :*/
193 200
194/*H:100 201/*H:100
195 * Hypercalls 202 * Hypercalls
@@ -227,7 +234,7 @@ void do_hypercalls(struct lg_cpu *cpu)
227 * However, if we are signalled or the Guest sends I/O to the 234 * However, if we are signalled or the Guest sends I/O to the
228 * Launcher, the run_guest() loop will exit without running the 235 * Launcher, the run_guest() loop will exit without running the
229 * Guest. When it comes back it would try to re-run the 236 * Guest. When it comes back it would try to re-run the
230 * hypercall. */ 237 * hypercall. Finding that bug sucked. */
231 cpu->hcall = NULL; 238 cpu->hcall = NULL;
232 } 239 }
233} 240}
diff --git a/drivers/lguest/interrupts_and_traps.c b/drivers/lguest/interrupts_and_traps.c
index 32e97c1858e5..0414ddf87587 100644
--- a/drivers/lguest/interrupts_and_traps.c
+++ b/drivers/lguest/interrupts_and_traps.c
@@ -144,7 +144,6 @@ void maybe_do_interrupt(struct lg_cpu *cpu)
144 if (copy_from_user(&blk, cpu->lg->lguest_data->blocked_interrupts, 144 if (copy_from_user(&blk, cpu->lg->lguest_data->blocked_interrupts,
145 sizeof(blk))) 145 sizeof(blk)))
146 return; 146 return;
147
148 bitmap_andnot(blk, cpu->irqs_pending, blk, LGUEST_IRQS); 147 bitmap_andnot(blk, cpu->irqs_pending, blk, LGUEST_IRQS);
149 148
150 /* Find the first interrupt. */ 149 /* Find the first interrupt. */
@@ -237,9 +236,9 @@ void free_interrupts(void)
237 clear_bit(syscall_vector, used_vectors); 236 clear_bit(syscall_vector, used_vectors);
238} 237}
239 238
240/*H:220 Now we've got the routines to deliver interrupts, delivering traps 239/*H:220 Now we've got the routines to deliver interrupts, delivering traps like
241 * like page fault is easy. The only trick is that Intel decided that some 240 * page fault is easy. The only trick is that Intel decided that some traps
242 * traps should have error codes: */ 241 * should have error codes: */
243static int has_err(unsigned int trap) 242static int has_err(unsigned int trap)
244{ 243{
245 return (trap == 8 || (trap >= 10 && trap <= 14) || trap == 17); 244 return (trap == 8 || (trap >= 10 && trap <= 14) || trap == 17);
diff --git a/drivers/lguest/lguest_device.c b/drivers/lguest/lguest_device.c
index 1b2ec0bf5eb1..2bc9bf7e88e5 100644
--- a/drivers/lguest/lguest_device.c
+++ b/drivers/lguest/lguest_device.c
@@ -1,10 +1,10 @@
1/*P:050 Lguest guests use a very simple method to describe devices. It's a 1/*P:050 Lguest guests use a very simple method to describe devices. It's a
2 * series of device descriptors contained just above the top of normal 2 * series of device descriptors contained just above the top of normal Guest
3 * memory. 3 * memory.
4 * 4 *
5 * We use the standard "virtio" device infrastructure, which provides us with a 5 * We use the standard "virtio" device infrastructure, which provides us with a
6 * console, a network and a block driver. Each one expects some configuration 6 * console, a network and a block driver. Each one expects some configuration
7 * information and a "virtqueue" mechanism to send and receive data. :*/ 7 * information and a "virtqueue" or two to send and receive data. :*/
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/bootmem.h> 9#include <linux/bootmem.h>
10#include <linux/lguest_launcher.h> 10#include <linux/lguest_launcher.h>
@@ -53,7 +53,7 @@ struct lguest_device {
53 * Device configurations 53 * Device configurations
54 * 54 *
55 * The configuration information for a device consists of one or more 55 * The configuration information for a device consists of one or more
56 * virtqueues, a feature bitmaks, and some configuration bytes. The 56 * virtqueues, a feature bitmap, and some configuration bytes. The
57 * configuration bytes don't really matter to us: the Launcher sets them up, and 57 * configuration bytes don't really matter to us: the Launcher sets them up, and
58 * the driver will look at them during setup. 58 * the driver will look at them during setup.
59 * 59 *
@@ -179,7 +179,7 @@ struct lguest_vq_info
179}; 179};
180 180
181/* When the virtio_ring code wants to prod the Host, it calls us here and we 181/* When the virtio_ring code wants to prod the Host, it calls us here and we
182 * make a hypercall. We hand the page number of the virtqueue so the Host 182 * make a hypercall. We hand the physical address of the virtqueue so the Host
183 * knows which virtqueue we're talking about. */ 183 * knows which virtqueue we're talking about. */
184static void lg_notify(struct virtqueue *vq) 184static void lg_notify(struct virtqueue *vq)
185{ 185{
@@ -199,7 +199,8 @@ static void lg_notify(struct virtqueue *vq)
199 * allocate its own pages and tell the Host where they are, but for lguest it's 199 * allocate its own pages and tell the Host where they are, but for lguest it's
200 * simpler for the Host to simply tell us where the pages are. 200 * simpler for the Host to simply tell us where the pages are.
201 * 201 *
202 * So we provide devices with a "find virtqueue and set it up" function. */ 202 * So we provide drivers with a "find the Nth virtqueue and set it up"
203 * function. */
203static struct virtqueue *lg_find_vq(struct virtio_device *vdev, 204static struct virtqueue *lg_find_vq(struct virtio_device *vdev,
204 unsigned index, 205 unsigned index,
205 void (*callback)(struct virtqueue *vq)) 206 void (*callback)(struct virtqueue *vq))
diff --git a/drivers/lguest/lguest_user.c b/drivers/lguest/lguest_user.c
index 2221485b0773..645e6e040bfb 100644
--- a/drivers/lguest/lguest_user.c
+++ b/drivers/lguest/lguest_user.c
@@ -73,7 +73,7 @@ static ssize_t read(struct file *file, char __user *user, size_t size,loff_t*o)
73 if (current != cpu->tsk) 73 if (current != cpu->tsk)
74 return -EPERM; 74 return -EPERM;
75 75
76 /* If the guest is already dead, we indicate why */ 76 /* If the Guest is already dead, we indicate why */
77 if (lg->dead) { 77 if (lg->dead) {
78 size_t len; 78 size_t len;
79 79
@@ -88,7 +88,7 @@ static ssize_t read(struct file *file, char __user *user, size_t size,loff_t*o)
88 return len; 88 return len;
89 } 89 }
90 90
91 /* If we returned from read() last time because the Guest notified, 91 /* If we returned from read() last time because the Guest sent I/O,
92 * clear the flag. */ 92 * clear the flag. */
93 if (cpu->pending_notify) 93 if (cpu->pending_notify)
94 cpu->pending_notify = 0; 94 cpu->pending_notify = 0;
@@ -97,14 +97,20 @@ static ssize_t read(struct file *file, char __user *user, size_t size,loff_t*o)
97 return run_guest(cpu, (unsigned long __user *)user); 97 return run_guest(cpu, (unsigned long __user *)user);
98} 98}
99 99
100/*L:025 This actually initializes a CPU. For the moment, a Guest is only
101 * uniprocessor, so "id" is always 0. */
100static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip) 102static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip)
101{ 103{
104 /* We have a limited number the number of CPUs in the lguest struct. */
102 if (id >= NR_CPUS) 105 if (id >= NR_CPUS)
103 return -EINVAL; 106 return -EINVAL;
104 107
108 /* Set up this CPU's id, and pointer back to the lguest struct. */
105 cpu->id = id; 109 cpu->id = id;
106 cpu->lg = container_of((cpu - id), struct lguest, cpus[0]); 110 cpu->lg = container_of((cpu - id), struct lguest, cpus[0]);
107 cpu->lg->nr_cpus++; 111 cpu->lg->nr_cpus++;
112
113 /* Each CPU has a timer it can set. */
108 init_clockdev(cpu); 114 init_clockdev(cpu);
109 115
110 /* We need a complete page for the Guest registers: they are accessible 116 /* We need a complete page for the Guest registers: they are accessible
@@ -120,11 +126,11 @@ static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip)
120 * address. */ 126 * address. */
121 lguest_arch_setup_regs(cpu, start_ip); 127 lguest_arch_setup_regs(cpu, start_ip);
122 128
123 /* Initialize the queue for the waker to wait on */ 129 /* Initialize the queue for the Waker to wait on */
124 init_waitqueue_head(&cpu->break_wq); 130 init_waitqueue_head(&cpu->break_wq);
125 131
126 /* We keep a pointer to the Launcher task (ie. current task) for when 132 /* We keep a pointer to the Launcher task (ie. current task) for when
127 * other Guests want to wake this one (inter-Guest I/O). */ 133 * other Guests want to wake this one (eg. console input). */
128 cpu->tsk = current; 134 cpu->tsk = current;
129 135
130 /* We need to keep a pointer to the Launcher's memory map, because if 136 /* We need to keep a pointer to the Launcher's memory map, because if
@@ -136,6 +142,7 @@ static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip)
136 * when the same Guest runs on the same CPU twice. */ 142 * when the same Guest runs on the same CPU twice. */
137 cpu->last_pages = NULL; 143 cpu->last_pages = NULL;
138 144
145 /* No error == success. */
139 return 0; 146 return 0;
140} 147}
141 148
@@ -182,17 +189,16 @@ static int initialize(struct file *file, const unsigned long __user *input)
182 } 189 }
183 190
184 /* Populate the easy fields of our "struct lguest" */ 191 /* Populate the easy fields of our "struct lguest" */
185 lg->mem_base = (void __user *)(long)args[0]; 192 lg->mem_base = (void __user *)args[0];
186 lg->pfn_limit = args[1]; 193 lg->pfn_limit = args[1];
187 194
188 /* This is the first cpu */ 195 /* This is the first cpu (cpu 0) and it will start booting at args[3] */
189 err = lg_cpu_start(&lg->cpus[0], 0, args[3]); 196 err = lg_cpu_start(&lg->cpus[0], 0, args[3]);
190 if (err) 197 if (err)
191 goto release_guest; 198 goto release_guest;
192 199
193 /* Initialize the Guest's shadow page tables, using the toplevel 200 /* Initialize the Guest's shadow page tables, using the toplevel
194 * address the Launcher gave us. This allocates memory, so can 201 * address the Launcher gave us. This allocates memory, so can fail. */
195 * fail. */
196 err = init_guest_pagetable(lg, args[2]); 202 err = init_guest_pagetable(lg, args[2]);
197 if (err) 203 if (err)
198 goto free_regs; 204 goto free_regs;
@@ -218,11 +224,16 @@ unlock:
218/*L:010 The first operation the Launcher does must be a write. All writes 224/*L:010 The first operation the Launcher does must be a write. All writes
219 * start with an unsigned long number: for the first write this must be 225 * start with an unsigned long number: for the first write this must be
220 * LHREQ_INITIALIZE to set up the Guest. After that the Launcher can use 226 * LHREQ_INITIALIZE to set up the Guest. After that the Launcher can use
221 * writes of other values to send interrupts. */ 227 * writes of other values to send interrupts.
228 *
229 * Note that we overload the "offset" in the /dev/lguest file to indicate what
230 * CPU number we're dealing with. Currently this is always 0, since we only
231 * support uniprocessor Guests, but you can see the beginnings of SMP support
232 * here. */
222static ssize_t write(struct file *file, const char __user *in, 233static ssize_t write(struct file *file, const char __user *in,
223 size_t size, loff_t *off) 234 size_t size, loff_t *off)
224{ 235{
225 /* Once the guest is initialized, we hold the "struct lguest" in the 236 /* Once the Guest is initialized, we hold the "struct lguest" in the
226 * file private data. */ 237 * file private data. */
227 struct lguest *lg = file->private_data; 238 struct lguest *lg = file->private_data;
228 const unsigned long __user *input = (const unsigned long __user *)in; 239 const unsigned long __user *input = (const unsigned long __user *)in;
@@ -230,6 +241,7 @@ static ssize_t write(struct file *file, const char __user *in,
230 struct lg_cpu *uninitialized_var(cpu); 241 struct lg_cpu *uninitialized_var(cpu);
231 unsigned int cpu_id = *off; 242 unsigned int cpu_id = *off;
232 243
244 /* The first value tells us what this request is. */
233 if (get_user(req, input) != 0) 245 if (get_user(req, input) != 0)
234 return -EFAULT; 246 return -EFAULT;
235 input++; 247 input++;
diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
index a7f64a9d67e0..d93500f24fbb 100644
--- a/drivers/lguest/page_tables.c
+++ b/drivers/lguest/page_tables.c
@@ -2,8 +2,8 @@
2 * previous encounters. It's functional, and as neat as it can be in the 2 * previous encounters. It's functional, and as neat as it can be in the
3 * circumstances, but be wary, for these things are subtle and break easily. 3 * circumstances, but be wary, for these things are subtle and break easily.
4 * The Guest provides a virtual to physical mapping, but we can neither trust 4 * The Guest provides a virtual to physical mapping, but we can neither trust
5 * it nor use it: we verify and convert it here to point the hardware to the 5 * it nor use it: we verify and convert it here then point the CPU to the
6 * actual Guest pages when running the Guest. :*/ 6 * converted Guest pages when running the Guest. :*/
7 7
8/* Copyright (C) Rusty Russell IBM Corporation 2006. 8/* Copyright (C) Rusty Russell IBM Corporation 2006.
9 * GPL v2 and any later version */ 9 * GPL v2 and any later version */
@@ -106,6 +106,11 @@ static unsigned long gpte_addr(pgd_t gpgd, unsigned long vaddr)
106 BUG_ON(!(pgd_flags(gpgd) & _PAGE_PRESENT)); 106 BUG_ON(!(pgd_flags(gpgd) & _PAGE_PRESENT));
107 return gpage + ((vaddr>>PAGE_SHIFT) % PTRS_PER_PTE) * sizeof(pte_t); 107 return gpage + ((vaddr>>PAGE_SHIFT) % PTRS_PER_PTE) * sizeof(pte_t);
108} 108}
109/*:*/
110
111/*M:014 get_pfn is slow; it takes the mmap sem and calls get_user_pages. We
112 * could probably try to grab batches of pages here as an optimization
113 * (ie. pre-faulting). :*/
109 114
110/*H:350 This routine takes a page number given by the Guest and converts it to 115/*H:350 This routine takes a page number given by the Guest and converts it to
111 * an actual, physical page number. It can fail for several reasons: the 116 * an actual, physical page number. It can fail for several reasons: the
@@ -113,8 +118,8 @@ static unsigned long gpte_addr(pgd_t gpgd, unsigned long vaddr)
113 * and the page is read-only, or the write flag was set and the page was 118 * and the page is read-only, or the write flag was set and the page was
114 * shared so had to be copied, but we ran out of memory. 119 * shared so had to be copied, but we ran out of memory.
115 * 120 *
116 * This holds a reference to the page, so release_pte() is careful to 121 * This holds a reference to the page, so release_pte() is careful to put that
117 * put that back. */ 122 * back. */
118static unsigned long get_pfn(unsigned long virtpfn, int write) 123static unsigned long get_pfn(unsigned long virtpfn, int write)
119{ 124{
120 struct page *page; 125 struct page *page;
@@ -532,13 +537,13 @@ static void do_set_pte(struct lg_cpu *cpu, int idx,
532 * all processes. So when the page table above that address changes, we update 537 * all processes. So when the page table above that address changes, we update
533 * all the page tables, not just the current one. This is rare. 538 * all the page tables, not just the current one. This is rare.
534 * 539 *
535 * The benefit is that when we have to track a new page table, we can copy keep 540 * The benefit is that when we have to track a new page table, we can keep all
536 * all the kernel mappings. This speeds up context switch immensely. */ 541 * the kernel mappings. This speeds up context switch immensely. */
537void guest_set_pte(struct lg_cpu *cpu, 542void guest_set_pte(struct lg_cpu *cpu,
538 unsigned long gpgdir, unsigned long vaddr, pte_t gpte) 543 unsigned long gpgdir, unsigned long vaddr, pte_t gpte)
539{ 544{
540 /* Kernel mappings must be changed on all top levels. Slow, but 545 /* Kernel mappings must be changed on all top levels. Slow, but doesn't
541 * doesn't happen often. */ 546 * happen often. */
542 if (vaddr >= cpu->lg->kernel_address) { 547 if (vaddr >= cpu->lg->kernel_address) {
543 unsigned int i; 548 unsigned int i;
544 for (i = 0; i < ARRAY_SIZE(cpu->lg->pgdirs); i++) 549 for (i = 0; i < ARRAY_SIZE(cpu->lg->pgdirs); i++)
@@ -704,12 +709,11 @@ static __init void populate_switcher_pte_page(unsigned int cpu,
704/* We've made it through the page table code. Perhaps our tired brains are 709/* We've made it through the page table code. Perhaps our tired brains are
705 * still processing the details, or perhaps we're simply glad it's over. 710 * still processing the details, or perhaps we're simply glad it's over.
706 * 711 *
707 * If nothing else, note that all this complexity in juggling shadow page 712 * If nothing else, note that all this complexity in juggling shadow page tables
708 * tables in sync with the Guest's page tables is for one reason: for most 713 * in sync with the Guest's page tables is for one reason: for most Guests this
709 * Guests this page table dance determines how bad performance will be. This 714 * page table dance determines how bad performance will be. This is why Xen
710 * is why Xen uses exotic direct Guest pagetable manipulation, and why both 715 * uses exotic direct Guest pagetable manipulation, and why both Intel and AMD
711 * Intel and AMD have implemented shadow page table support directly into 716 * have implemented shadow page table support directly into hardware.
712 * hardware.
713 * 717 *
714 * There is just one file remaining in the Host. */ 718 * There is just one file remaining in the Host. */
715 719
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index 635187812d52..5126d5d9ea0e 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -17,6 +17,13 @@
17 * along with this program; if not, write to the Free Software 17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */ 19 */
20/*P:450 This file contains the x86-specific lguest code. It used to be all
21 * mixed in with drivers/lguest/core.c but several foolhardy code slashers
22 * wrestled most of the dependencies out to here in preparation for porting
23 * lguest to other architectures (see what I mean by foolhardy?).
24 *
25 * This also contains a couple of non-obvious setup and teardown pieces which
26 * were implemented after days of debugging pain. :*/
20#include <linux/kernel.h> 27#include <linux/kernel.h>
21#include <linux/start_kernel.h> 28#include <linux/start_kernel.h>
22#include <linux/string.h> 29#include <linux/string.h>
@@ -157,6 +164,8 @@ static void run_guest_once(struct lg_cpu *cpu, struct lguest_pages *pages)
157 * also simplify copy_in_guest_info(). Note that we'd still need to restore 164 * also simplify copy_in_guest_info(). Note that we'd still need to restore
158 * things when we exit to Launcher userspace, but that's fairly easy. 165 * things when we exit to Launcher userspace, but that's fairly easy.
159 * 166 *
167 * We could also try using this hooks for PGE, but that might be too expensive.
168 *
160 * The hooks were designed for KVM, but we can also put them to good use. :*/ 169 * The hooks were designed for KVM, but we can also put them to good use. :*/
161 170
162/*H:040 This is the i386-specific code to setup and run the Guest. Interrupts 171/*H:040 This is the i386-specific code to setup and run the Guest. Interrupts
@@ -182,7 +191,7 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
182 * was doing. */ 191 * was doing. */
183 run_guest_once(cpu, lguest_pages(raw_smp_processor_id())); 192 run_guest_once(cpu, lguest_pages(raw_smp_processor_id()));
184 193
185 /* Note that the "regs" pointer contains two extra entries which are 194 /* Note that the "regs" structure contains two extra entries which are
186 * not really registers: a trap number which says what interrupt or 195 * not really registers: a trap number which says what interrupt or
187 * trap made the switcher code come back, and an error code which some 196 * trap made the switcher code come back, and an error code which some
188 * traps set. */ 197 * traps set. */
@@ -293,11 +302,10 @@ void lguest_arch_handle_trap(struct lg_cpu *cpu)
293 break; 302 break;
294 case 14: /* We've intercepted a Page Fault. */ 303 case 14: /* We've intercepted a Page Fault. */
295 /* The Guest accessed a virtual address that wasn't mapped. 304 /* The Guest accessed a virtual address that wasn't mapped.
296 * This happens a lot: we don't actually set up most of the 305 * This happens a lot: we don't actually set up most of the page
297 * page tables for the Guest at all when we start: as it runs 306 * tables for the Guest at all when we start: as it runs it asks
298 * it asks for more and more, and we set them up as 307 * for more and more, and we set them up as required. In this
299 * required. In this case, we don't even tell the Guest that 308 * case, we don't even tell the Guest that the fault happened.
300 * the fault happened.
301 * 309 *
302 * The errcode tells whether this was a read or a write, and 310 * The errcode tells whether this was a read or a write, and
303 * whether kernel or userspace code. */ 311 * whether kernel or userspace code. */
@@ -342,7 +350,7 @@ void lguest_arch_handle_trap(struct lg_cpu *cpu)
342 if (!deliver_trap(cpu, cpu->regs->trapnum)) 350 if (!deliver_trap(cpu, cpu->regs->trapnum))
343 /* If the Guest doesn't have a handler (either it hasn't 351 /* If the Guest doesn't have a handler (either it hasn't
344 * registered any yet, or it's one of the faults we don't let 352 * registered any yet, or it's one of the faults we don't let
345 * it handle), it dies with a cryptic error message. */ 353 * it handle), it dies with this cryptic error message. */
346 kill_guest(cpu, "unhandled trap %li at %#lx (%#lx)", 354 kill_guest(cpu, "unhandled trap %li at %#lx (%#lx)",
347 cpu->regs->trapnum, cpu->regs->eip, 355 cpu->regs->trapnum, cpu->regs->eip,
348 cpu->regs->trapnum == 14 ? cpu->arch.last_pagefault 356 cpu->regs->trapnum == 14 ? cpu->arch.last_pagefault
@@ -375,8 +383,8 @@ void __init lguest_arch_host_init(void)
375 * The only exception is the interrupt handlers in switcher.S: their 383 * The only exception is the interrupt handlers in switcher.S: their
376 * addresses are placed in a table (default_idt_entries), so we need to 384 * addresses are placed in a table (default_idt_entries), so we need to
377 * update the table with the new addresses. switcher_offset() is a 385 * update the table with the new addresses. switcher_offset() is a
378 * convenience function which returns the distance between the builtin 386 * convenience function which returns the distance between the
379 * switcher code and the high-mapped copy we just made. */ 387 * compiled-in switcher code and the high-mapped copy we just made. */
380 for (i = 0; i < IDT_ENTRIES; i++) 388 for (i = 0; i < IDT_ENTRIES; i++)
381 default_idt_entries[i] += switcher_offset(); 389 default_idt_entries[i] += switcher_offset();
382 390
@@ -416,7 +424,7 @@ void __init lguest_arch_host_init(void)
416 state->guest_gdt_desc.address = (long)&state->guest_gdt; 424 state->guest_gdt_desc.address = (long)&state->guest_gdt;
417 425
418 /* We know where we want the stack to be when the Guest enters 426 /* We know where we want the stack to be when the Guest enters
419 * the switcher: in pages->regs. The stack grows upwards, so 427 * the Switcher: in pages->regs. The stack grows upwards, so
420 * we start it at the end of that structure. */ 428 * we start it at the end of that structure. */
421 state->guest_tss.sp0 = (long)(&pages->regs + 1); 429 state->guest_tss.sp0 = (long)(&pages->regs + 1);
422 /* And this is the GDT entry to use for the stack: we keep a 430 /* And this is the GDT entry to use for the stack: we keep a
@@ -513,8 +521,8 @@ int lguest_arch_init_hypercalls(struct lg_cpu *cpu)
513{ 521{
514 u32 tsc_speed; 522 u32 tsc_speed;
515 523
516 /* The pointer to the Guest's "struct lguest_data" is the only 524 /* The pointer to the Guest's "struct lguest_data" is the only argument.
517 * argument. We check that address now. */ 525 * We check that address now. */
518 if (!lguest_address_ok(cpu->lg, cpu->hcall->arg1, 526 if (!lguest_address_ok(cpu->lg, cpu->hcall->arg1,
519 sizeof(*cpu->lg->lguest_data))) 527 sizeof(*cpu->lg->lguest_data)))
520 return -EFAULT; 528 return -EFAULT;
@@ -546,6 +554,7 @@ int lguest_arch_init_hypercalls(struct lg_cpu *cpu)
546 554
547 return 0; 555 return 0;
548} 556}
557/*:*/
549 558
550/*L:030 lguest_arch_setup_regs() 559/*L:030 lguest_arch_setup_regs()
551 * 560 *
diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
index 0af8baaa0d4a..3fc15318a80f 100644
--- a/drivers/lguest/x86/switcher_32.S
+++ b/drivers/lguest/x86/switcher_32.S
@@ -1,6 +1,6 @@
1/*P:900 This is the Switcher: code which sits at 0xFFC00000 to do the low-level 1/*P:900 This is the Switcher: code which sits at 0xFFC00000 astride both the
2 * Guest<->Host switch. It is as simple as it can be made, but it's naturally 2 * Host and Guest to do the low-level Guest<->Host switch. It is as simple as
3 * very specific to x86. 3 * it can be made, but it's naturally very specific to x86.
4 * 4 *
5 * You have now completed Preparation. If this has whet your appetite; if you 5 * You have now completed Preparation. If this has whet your appetite; if you
6 * are feeling invigorated and refreshed then the next, more challenging stage 6 * are feeling invigorated and refreshed then the next, more challenging stage
@@ -189,7 +189,7 @@ ENTRY(switch_to_guest)
189 // Interrupts are turned back on: we are Guest. 189 // Interrupts are turned back on: we are Guest.
190 iret 190 iret
191 191
192// We treat two paths to switch back to the Host 192// We tread two paths to switch back to the Host
193// Yet both must save Guest state and restore Host 193// Yet both must save Guest state and restore Host
194// So we put the routine in a macro. 194// So we put the routine in a macro.
195#define SWITCH_TO_HOST \ 195#define SWITCH_TO_HOST \
diff --git a/drivers/macintosh/via-pmu-backlight.c b/drivers/macintosh/via-pmu-backlight.c
index 741a2e3f4fc6..a348bb0791d3 100644
--- a/drivers/macintosh/via-pmu-backlight.c
+++ b/drivers/macintosh/via-pmu-backlight.c
@@ -17,7 +17,7 @@
17 17
18static struct backlight_ops pmu_backlight_data; 18static struct backlight_ops pmu_backlight_data;
19static DEFINE_SPINLOCK(pmu_backlight_lock); 19static DEFINE_SPINLOCK(pmu_backlight_lock);
20static int sleeping; 20static int sleeping, uses_pmu_bl;
21static u8 bl_curve[FB_BACKLIGHT_LEVELS]; 21static u8 bl_curve[FB_BACKLIGHT_LEVELS];
22 22
23static void pmu_backlight_init_curve(u8 off, u8 min, u8 max) 23static void pmu_backlight_init_curve(u8 off, u8 min, u8 max)
@@ -128,7 +128,7 @@ void pmu_backlight_set_sleep(int sleep)
128 128
129 spin_lock_irqsave(&pmu_backlight_lock, flags); 129 spin_lock_irqsave(&pmu_backlight_lock, flags);
130 sleeping = sleep; 130 sleeping = sleep;
131 if (pmac_backlight) { 131 if (pmac_backlight && uses_pmu_bl) {
132 if (sleep) { 132 if (sleep) {
133 struct adb_request req; 133 struct adb_request req;
134 134
@@ -166,6 +166,7 @@ void __init pmu_backlight_init()
166 printk(KERN_ERR "PMU Backlight registration failed\n"); 166 printk(KERN_ERR "PMU Backlight registration failed\n");
167 return; 167 return;
168 } 168 }
169 uses_pmu_bl = 1;
169 bd->props.max_brightness = FB_BACKLIGHT_LEVELS - 1; 170 bd->props.max_brightness = FB_BACKLIGHT_LEVELS - 1;
170 pmu_backlight_init_curve(0x7F, 0x46, 0x0E); 171 pmu_backlight_init_curve(0x7F, 0x46, 0x0E);
171 172
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index ebec663d5d37..d6365a9f0637 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -2528,7 +2528,7 @@ EXPORT_SYMBOL(pmu_wait_complete);
2528EXPORT_SYMBOL(pmu_suspend); 2528EXPORT_SYMBOL(pmu_suspend);
2529EXPORT_SYMBOL(pmu_resume); 2529EXPORT_SYMBOL(pmu_resume);
2530EXPORT_SYMBOL(pmu_unlock); 2530EXPORT_SYMBOL(pmu_unlock);
2531#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32) 2531#if defined(CONFIG_PPC32)
2532EXPORT_SYMBOL(pmu_enable_irled); 2532EXPORT_SYMBOL(pmu_enable_irled);
2533EXPORT_SYMBOL(pmu_battery_count); 2533EXPORT_SYMBOL(pmu_battery_count);
2534EXPORT_SYMBOL(pmu_batteries); 2534EXPORT_SYMBOL(pmu_batteries);
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index b04f98df94ea..835def11419d 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Copyright (C) 2003 Christophe Saout <christophe@saout.de> 2 * Copyright (C) 2003 Christophe Saout <christophe@saout.de>
3 * Copyright (C) 2004 Clemens Fruhwirth <clemens@endorphin.org> 3 * Copyright (C) 2004 Clemens Fruhwirth <clemens@endorphin.org>
4 * Copyright (C) 2006-2007 Red Hat, Inc. All rights reserved. 4 * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved.
5 * 5 *
6 * This file is released under the GPL. 6 * This file is released under the GPL.
7 */ 7 */
@@ -93,6 +93,8 @@ struct crypt_config {
93 93
94 struct workqueue_struct *io_queue; 94 struct workqueue_struct *io_queue;
95 struct workqueue_struct *crypt_queue; 95 struct workqueue_struct *crypt_queue;
96 wait_queue_head_t writeq;
97
96 /* 98 /*
97 * crypto related data 99 * crypto related data
98 */ 100 */
@@ -331,14 +333,7 @@ static void crypt_convert_init(struct crypt_config *cc,
331 ctx->idx_out = bio_out ? bio_out->bi_idx : 0; 333 ctx->idx_out = bio_out ? bio_out->bi_idx : 0;
332 ctx->sector = sector + cc->iv_offset; 334 ctx->sector = sector + cc->iv_offset;
333 init_completion(&ctx->restart); 335 init_completion(&ctx->restart);
334 /* 336 atomic_set(&ctx->pending, 1);
335 * Crypto operation can be asynchronous,
336 * ctx->pending is increased after request submission.
337 * We need to ensure that we don't call the crypt finish
338 * operation before pending got incremented
339 * (dependent on crypt submission return code).
340 */
341 atomic_set(&ctx->pending, 2);
342} 337}
343 338
344static int crypt_convert_block(struct crypt_config *cc, 339static int crypt_convert_block(struct crypt_config *cc,
@@ -411,43 +406,42 @@ static void crypt_alloc_req(struct crypt_config *cc,
411static int crypt_convert(struct crypt_config *cc, 406static int crypt_convert(struct crypt_config *cc,
412 struct convert_context *ctx) 407 struct convert_context *ctx)
413{ 408{
414 int r = 0; 409 int r;
415 410
416 while(ctx->idx_in < ctx->bio_in->bi_vcnt && 411 while(ctx->idx_in < ctx->bio_in->bi_vcnt &&
417 ctx->idx_out < ctx->bio_out->bi_vcnt) { 412 ctx->idx_out < ctx->bio_out->bi_vcnt) {
418 413
419 crypt_alloc_req(cc, ctx); 414 crypt_alloc_req(cc, ctx);
420 415
416 atomic_inc(&ctx->pending);
417
421 r = crypt_convert_block(cc, ctx, cc->req); 418 r = crypt_convert_block(cc, ctx, cc->req);
422 419
423 switch (r) { 420 switch (r) {
421 /* async */
424 case -EBUSY: 422 case -EBUSY:
425 wait_for_completion(&ctx->restart); 423 wait_for_completion(&ctx->restart);
426 INIT_COMPLETION(ctx->restart); 424 INIT_COMPLETION(ctx->restart);
427 /* fall through*/ 425 /* fall through*/
428 case -EINPROGRESS: 426 case -EINPROGRESS:
429 atomic_inc(&ctx->pending);
430 cc->req = NULL; 427 cc->req = NULL;
431 r = 0; 428 ctx->sector++;
432 /* fall through*/ 429 continue;
430
431 /* sync */
433 case 0: 432 case 0:
433 atomic_dec(&ctx->pending);
434 ctx->sector++; 434 ctx->sector++;
435 continue; 435 continue;
436 }
437 436
438 break; 437 /* error */
438 default:
439 atomic_dec(&ctx->pending);
440 return r;
441 }
439 } 442 }
440 443
441 /* 444 return 0;
442 * If there are pending crypto operation run async
443 * code. Otherwise process return code synchronously.
444 * The step of 2 ensures that async finish doesn't
445 * call crypto finish too early.
446 */
447 if (atomic_sub_return(2, &ctx->pending))
448 return -EINPROGRESS;
449
450 return r;
451} 445}
452 446
453static void dm_crypt_bio_destructor(struct bio *bio) 447static void dm_crypt_bio_destructor(struct bio *bio)
@@ -624,8 +618,10 @@ static void kcryptd_io_read(struct dm_crypt_io *io)
624static void kcryptd_io_write(struct dm_crypt_io *io) 618static void kcryptd_io_write(struct dm_crypt_io *io)
625{ 619{
626 struct bio *clone = io->ctx.bio_out; 620 struct bio *clone = io->ctx.bio_out;
621 struct crypt_config *cc = io->target->private;
627 622
628 generic_make_request(clone); 623 generic_make_request(clone);
624 wake_up(&cc->writeq);
629} 625}
630 626
631static void kcryptd_io(struct work_struct *work) 627static void kcryptd_io(struct work_struct *work)
@@ -698,7 +694,8 @@ static void kcryptd_crypt_write_convert_loop(struct dm_crypt_io *io)
698 694
699 r = crypt_convert(cc, &io->ctx); 695 r = crypt_convert(cc, &io->ctx);
700 696
701 if (r != -EINPROGRESS) { 697 if (atomic_dec_and_test(&io->ctx.pending)) {
698 /* processed, no running async crypto */
702 kcryptd_crypt_write_io_submit(io, r, 0); 699 kcryptd_crypt_write_io_submit(io, r, 0);
703 if (unlikely(r < 0)) 700 if (unlikely(r < 0))
704 return; 701 return;
@@ -706,8 +703,12 @@ static void kcryptd_crypt_write_convert_loop(struct dm_crypt_io *io)
706 atomic_inc(&io->pending); 703 atomic_inc(&io->pending);
707 704
708 /* out of memory -> run queues */ 705 /* out of memory -> run queues */
709 if (unlikely(remaining)) 706 if (unlikely(remaining)) {
707 /* wait for async crypto then reinitialize pending */
708 wait_event(cc->writeq, !atomic_read(&io->ctx.pending));
709 atomic_set(&io->ctx.pending, 1);
710 congestion_wait(WRITE, HZ/100); 710 congestion_wait(WRITE, HZ/100);
711 }
711 } 712 }
712} 713}
713 714
@@ -746,7 +747,7 @@ static void kcryptd_crypt_read_convert(struct dm_crypt_io *io)
746 747
747 r = crypt_convert(cc, &io->ctx); 748 r = crypt_convert(cc, &io->ctx);
748 749
749 if (r != -EINPROGRESS) 750 if (atomic_dec_and_test(&io->ctx.pending))
750 kcryptd_crypt_read_done(io, r); 751 kcryptd_crypt_read_done(io, r);
751 752
752 crypt_dec_pending(io); 753 crypt_dec_pending(io);
@@ -1047,6 +1048,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)
1047 goto bad_crypt_queue; 1048 goto bad_crypt_queue;
1048 } 1049 }
1049 1050
1051 init_waitqueue_head(&cc->writeq);
1050 ti->private = cc; 1052 ti->private = cc;
1051 return 0; 1053 return 0;
1052 1054
diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
index b8e342fe7586..8f25f628ef16 100644
--- a/drivers/md/dm-io.c
+++ b/drivers/md/dm-io.c
@@ -114,7 +114,7 @@ static void dec_count(struct io *io, unsigned int region, int error)
114 wake_up_process(io->sleeper); 114 wake_up_process(io->sleeper);
115 115
116 else { 116 else {
117 int r = io->error; 117 unsigned long r = io->error;
118 io_notify_fn fn = io->callback; 118 io_notify_fn fn = io->callback;
119 void *context = io->context; 119 void *context = io->context;
120 120
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 51605870f898..762cb086bb7f 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -753,7 +753,7 @@ out:
753 * are in the no-sync state. We have to recover these by 753 * are in the no-sync state. We have to recover these by
754 * recopying from the default mirror to all the others. 754 * recopying from the default mirror to all the others.
755 *---------------------------------------------------------------*/ 755 *---------------------------------------------------------------*/
756static void recovery_complete(int read_err, unsigned int write_err, 756static void recovery_complete(int read_err, unsigned long write_err,
757 void *context) 757 void *context)
758{ 758{
759 struct region *reg = (struct region *)context; 759 struct region *reg = (struct region *)context;
@@ -767,7 +767,7 @@ static void recovery_complete(int read_err, unsigned int write_err,
767 } 767 }
768 768
769 if (write_err) { 769 if (write_err) {
770 DMERR_LIMIT("Write error during recovery (error = 0x%x)", 770 DMERR_LIMIT("Write error during recovery (error = 0x%lx)",
771 write_err); 771 write_err);
772 /* 772 /*
773 * Bits correspond to devices (excluding default mirror). 773 * Bits correspond to devices (excluding default mirror).
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index ae24eab8cd81..4dc8a43c034b 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -804,7 +804,7 @@ static void commit_callback(void *context, int success)
804 * Called when the copy I/O has finished. kcopyd actually runs 804 * Called when the copy I/O has finished. kcopyd actually runs
805 * this code so don't block. 805 * this code so don't block.
806 */ 806 */
807static void copy_callback(int read_err, unsigned int write_err, void *context) 807static void copy_callback(int read_err, unsigned long write_err, void *context)
808{ 808{
809 struct dm_snap_pending_exception *pe = context; 809 struct dm_snap_pending_exception *pe = context;
810 struct dm_snapshot *s = pe->snap; 810 struct dm_snapshot *s = pe->snap;
diff --git a/drivers/md/kcopyd.c b/drivers/md/kcopyd.c
index f3831f31223e..e76b52ade690 100644
--- a/drivers/md/kcopyd.c
+++ b/drivers/md/kcopyd.c
@@ -169,7 +169,7 @@ struct kcopyd_job {
169 * Error state of the job. 169 * Error state of the job.
170 */ 170 */
171 int read_err; 171 int read_err;
172 unsigned int write_err; 172 unsigned long write_err;
173 173
174 /* 174 /*
175 * Either READ or WRITE 175 * Either READ or WRITE
@@ -293,7 +293,7 @@ static int run_complete_job(struct kcopyd_job *job)
293{ 293{
294 void *context = job->context; 294 void *context = job->context;
295 int read_err = job->read_err; 295 int read_err = job->read_err;
296 unsigned int write_err = job->write_err; 296 unsigned long write_err = job->write_err;
297 kcopyd_notify_fn fn = job->fn; 297 kcopyd_notify_fn fn = job->fn;
298 struct kcopyd_client *kc = job->kc; 298 struct kcopyd_client *kc = job->kc;
299 299
@@ -396,7 +396,7 @@ static int process_jobs(struct list_head *jobs, int (*fn) (struct kcopyd_job *))
396 if (r < 0) { 396 if (r < 0) {
397 /* error this rogue job */ 397 /* error this rogue job */
398 if (job->rw == WRITE) 398 if (job->rw == WRITE)
399 job->write_err = (unsigned int) -1; 399 job->write_err = (unsigned long) -1L;
400 else 400 else
401 job->read_err = 1; 401 job->read_err = 1;
402 push(&_complete_jobs, job); 402 push(&_complete_jobs, job);
@@ -448,8 +448,8 @@ static void dispatch_job(struct kcopyd_job *job)
448} 448}
449 449
450#define SUB_JOB_SIZE 128 450#define SUB_JOB_SIZE 128
451static void segment_complete(int read_err, 451static void segment_complete(int read_err, unsigned long write_err,
452 unsigned int write_err, void *context) 452 void *context)
453{ 453{
454 /* FIXME: tidy this function */ 454 /* FIXME: tidy this function */
455 sector_t progress = 0; 455 sector_t progress = 0;
diff --git a/drivers/md/kcopyd.h b/drivers/md/kcopyd.h
index 4621ea055c0e..4845f2a0c676 100644
--- a/drivers/md/kcopyd.h
+++ b/drivers/md/kcopyd.h
@@ -32,8 +32,8 @@ void kcopyd_client_destroy(struct kcopyd_client *kc);
32 * read_err is a boolean, 32 * read_err is a boolean,
33 * write_err is a bitset, with 1 bit for each destination region 33 * write_err is a bitset, with 1 bit for each destination region
34 */ 34 */
35typedef void (*kcopyd_notify_fn)(int read_err, 35typedef void (*kcopyd_notify_fn)(int read_err, unsigned long write_err,
36 unsigned int write_err, void *context); 36 void *context);
37 37
38int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, 38int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from,
39 unsigned int num_dests, struct io_region *dests, 39 unsigned int num_dests, struct io_region *dests,
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ccbbf63727cc..61ccbd2683fa 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1864,17 +1864,6 @@ static struct rdev_sysfs_entry rdev_state =
1864__ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store); 1864__ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
1865 1865
1866static ssize_t 1866static ssize_t
1867super_show(mdk_rdev_t *rdev, char *page)
1868{
1869 if (rdev->sb_loaded && rdev->sb_size) {
1870 memcpy(page, page_address(rdev->sb_page), rdev->sb_size);
1871 return rdev->sb_size;
1872 } else
1873 return 0;
1874}
1875static struct rdev_sysfs_entry rdev_super = __ATTR_RO(super);
1876
1877static ssize_t
1878errors_show(mdk_rdev_t *rdev, char *page) 1867errors_show(mdk_rdev_t *rdev, char *page)
1879{ 1868{
1880 return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors)); 1869 return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
@@ -2060,7 +2049,6 @@ __ATTR(size, S_IRUGO|S_IWUSR, rdev_size_show, rdev_size_store);
2060 2049
2061static struct attribute *rdev_default_attrs[] = { 2050static struct attribute *rdev_default_attrs[] = {
2062 &rdev_state.attr, 2051 &rdev_state.attr,
2063 &rdev_super.attr,
2064 &rdev_errors.attr, 2052 &rdev_errors.attr,
2065 &rdev_slot.attr, 2053 &rdev_slot.attr,
2066 &rdev_offset.attr, 2054 &rdev_offset.attr,
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 2d6f1a51359c..c574cf5efb5c 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -1143,7 +1143,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
1143 rdev = conf->disks[i].rdev; 1143 rdev = conf->disks[i].rdev;
1144 printk(KERN_INFO "raid5:%s: read error corrected (%lu sectors at %llu on %s)\n", 1144 printk(KERN_INFO "raid5:%s: read error corrected (%lu sectors at %llu on %s)\n",
1145 mdname(conf->mddev), STRIPE_SECTORS, 1145 mdname(conf->mddev), STRIPE_SECTORS,
1146 (unsigned long long)sh->sector + rdev->data_offset, 1146 (unsigned long long)(sh->sector + rdev->data_offset),
1147 bdevname(rdev->bdev, b)); 1147 bdevname(rdev->bdev, b));
1148 clear_bit(R5_ReadError, &sh->dev[i].flags); 1148 clear_bit(R5_ReadError, &sh->dev[i].flags);
1149 clear_bit(R5_ReWrite, &sh->dev[i].flags); 1149 clear_bit(R5_ReWrite, &sh->dev[i].flags);
@@ -1160,13 +1160,13 @@ static void raid5_end_read_request(struct bio * bi, int error)
1160 if (conf->mddev->degraded) 1160 if (conf->mddev->degraded)
1161 printk(KERN_WARNING "raid5:%s: read error not correctable (sector %llu on %s).\n", 1161 printk(KERN_WARNING "raid5:%s: read error not correctable (sector %llu on %s).\n",
1162 mdname(conf->mddev), 1162 mdname(conf->mddev),
1163 (unsigned long long)sh->sector + rdev->data_offset, 1163 (unsigned long long)(sh->sector + rdev->data_offset),
1164 bdn); 1164 bdn);
1165 else if (test_bit(R5_ReWrite, &sh->dev[i].flags)) 1165 else if (test_bit(R5_ReWrite, &sh->dev[i].flags))
1166 /* Oh, no!!! */ 1166 /* Oh, no!!! */
1167 printk(KERN_WARNING "raid5:%s: read error NOT corrected!! (sector %llu on %s).\n", 1167 printk(KERN_WARNING "raid5:%s: read error NOT corrected!! (sector %llu on %s).\n",
1168 mdname(conf->mddev), 1168 mdname(conf->mddev),
1169 (unsigned long long)sh->sector + rdev->data_offset, 1169 (unsigned long long)(sh->sector + rdev->data_offset),
1170 bdn); 1170 bdn);
1171 else if (atomic_read(&rdev->read_errors) 1171 else if (atomic_read(&rdev->read_errors)
1172 > conf->max_nr_stripes) 1172 > conf->max_nr_stripes)
diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c
index 168a8d3a5e55..7707b8c7394b 100644
--- a/drivers/media/common/saa7146_core.c
+++ b/drivers/media/common/saa7146_core.c
@@ -306,25 +306,22 @@ static irqreturn_t interrupt_hw(int irq, void *dev_id)
306 return IRQ_NONE; 306 return IRQ_NONE;
307 } 307 }
308 308
309 if( 0 != (dev->ext)) { 309 if (dev->ext) {
310 if( 0 != (dev->ext->irq_mask & isr )) { 310 if (dev->ext->irq_mask & isr) {
311 if( 0 != dev->ext->irq_func ) { 311 if (dev->ext->irq_func)
312 dev->ext->irq_func(dev, &isr); 312 dev->ext->irq_func(dev, &isr);
313 }
314 isr &= ~dev->ext->irq_mask; 313 isr &= ~dev->ext->irq_mask;
315 } 314 }
316 } 315 }
317 if (0 != (isr & (MASK_27))) { 316 if (0 != (isr & (MASK_27))) {
318 DEB_INT(("irq: RPS0 (0x%08x).\n",isr)); 317 DEB_INT(("irq: RPS0 (0x%08x).\n",isr));
319 if( 0 != dev->vv_data && 0 != dev->vv_callback) { 318 if (dev->vv_data && dev->vv_callback)
320 dev->vv_callback(dev,isr); 319 dev->vv_callback(dev,isr);
321 }
322 isr &= ~MASK_27; 320 isr &= ~MASK_27;
323 } 321 }
324 if (0 != (isr & (MASK_28))) { 322 if (0 != (isr & (MASK_28))) {
325 if( 0 != dev->vv_data && 0 != dev->vv_callback) { 323 if (dev->vv_data && dev->vv_callback)
326 dev->vv_callback(dev,isr); 324 dev->vv_callback(dev,isr);
327 }
328 isr &= ~MASK_28; 325 isr &= ~MASK_28;
329 } 326 }
330 if (0 != (isr & (MASK_16|MASK_17))) { 327 if (0 != (isr & (MASK_16|MASK_17))) {
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index f0703d8bc3e8..171afe7da6b6 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/drivers/media/common/saa7146_fops.c
@@ -272,7 +272,7 @@ static int fops_open(struct inode *inode, struct file *file)
272 272
273 result = 0; 273 result = 0;
274out: 274out:
275 if( fh != 0 && result != 0 ) { 275 if (fh && result != 0) {
276 kfree(fh); 276 kfree(fh);
277 file->private_data = NULL; 277 file->private_data = NULL;
278 } 278 }
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c
index ed3f8268ed11..4c8b62e2c035 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -784,8 +784,8 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len,
784{ 784{
785 struct net_device *dev = feed->priv; 785 struct net_device *dev = feed->priv;
786 786
787 if (buffer2 != 0) 787 if (buffer2)
788 printk(KERN_WARNING "buffer2 not 0: %p.\n", buffer2); 788 printk(KERN_WARNING "buffer2 not NULL: %p.\n", buffer2);
789 if (buffer1_len > 32768) 789 if (buffer1_len > 32768)
790 printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len); 790 printk(KERN_WARNING "length > 32k: %zu.\n", buffer1_len);
791 /* printk("TS callback: %u bytes, %u TS cells @ %p.\n", 791 /* printk("TS callback: %u bytes, %u TS cells @ %p.\n",
diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c
index 21935bf7059e..302cc67407c3 100644
--- a/drivers/media/dvb/dvb-usb/opera1.c
+++ b/drivers/media/dvb/dvb-usb/opera1.c
@@ -478,9 +478,9 @@ static int opera1_xilinx_load_firmware(struct usb_device *dev,
478 err("could not restart the USB controller CPU."); 478 err("could not restart the USB controller CPU.");
479 ret = -EINVAL; 479 ret = -EINVAL;
480 } 480 }
481 kfree(p);
482 } 481 }
483 } 482 }
483 kfree(p);
484 if (fw) { 484 if (fw) {
485 release_firmware(fw); 485 release_firmware(fw);
486 } 486 }
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 37072a21d8c9..1832966f53f3 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -305,7 +305,7 @@ comment "MPEG video encoders"
305 305
306config VIDEO_CX2341X 306config VIDEO_CX2341X
307 tristate "Conexant CX2341x MPEG encoders" 307 tristate "Conexant CX2341x MPEG encoders"
308 depends on VIDEO_V4L2 && EXPERIMENTAL 308 depends on VIDEO_V4L2 && EXPERIMENTAL && VIDEO_V4L2_COMMON
309 ---help--- 309 ---help---
310 Support for the Conexant CX23416 MPEG encoders 310 Support for the Conexant CX23416 MPEG encoders
311 and CX23415 MPEG encoder/decoders. 311 and CX23415 MPEG encoder/decoders.
@@ -382,7 +382,7 @@ endmenu # encoder / decoder chips
382 382
383config VIDEO_VIVI 383config VIDEO_VIVI
384 tristate "Virtual Video Driver" 384 tristate "Virtual Video Driver"
385 depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 385 depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64
386 select VIDEOBUF_VMALLOC 386 select VIDEOBUF_VMALLOC
387 default n 387 default n
388 ---help--- 388 ---help---
diff --git a/drivers/media/video/adv7170.c b/drivers/media/video/adv7170.c
index cbab53fc6243..fea2e723e34b 100644
--- a/drivers/media/video/adv7170.c
+++ b/drivers/media/video/adv7170.c
@@ -408,7 +408,7 @@ adv7170_detect_client (struct i2c_adapter *adapter,
408 return 0; 408 return 0;
409 409
410 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 410 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
411 if (client == 0) 411 if (!client)
412 return -ENOMEM; 412 return -ENOMEM;
413 client->addr = address; 413 client->addr = address;
414 client->adapter = adapter; 414 client->adapter = adapter;
diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c
index 0d0c554bfdf7..10d4d89623f1 100644
--- a/drivers/media/video/adv7175.c
+++ b/drivers/media/video/adv7175.c
@@ -426,7 +426,7 @@ adv7175_detect_client (struct i2c_adapter *adapter,
426 return 0; 426 return 0;
427 427
428 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 428 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
429 if (client == 0) 429 if (!client)
430 return -ENOMEM; 430 return -ENOMEM;
431 client->addr = address; 431 client->addr = address;
432 client->adapter = adapter; 432 client->adapter = adapter;
diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c
index 12d1b9248be5..e663cc045c41 100644
--- a/drivers/media/video/bt819.c
+++ b/drivers/media/video/bt819.c
@@ -524,7 +524,7 @@ bt819_detect_client (struct i2c_adapter *adapter,
524 return 0; 524 return 0;
525 525
526 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 526 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
527 if (client == 0) 527 if (!client)
528 return -ENOMEM; 528 return -ENOMEM;
529 client->addr = address; 529 client->addr = address;
530 client->adapter = adapter; 530 client->adapter = adapter;
diff --git a/drivers/media/video/bt856.c b/drivers/media/video/bt856.c
index e1028a76c042..7dee2e3235ad 100644
--- a/drivers/media/video/bt856.c
+++ b/drivers/media/video/bt856.c
@@ -311,7 +311,7 @@ bt856_detect_client (struct i2c_adapter *adapter,
311 return 0; 311 return 0;
312 312
313 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 313 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
314 if (client == 0) 314 if (!client)
315 return -ENOMEM; 315 return -ENOMEM;
316 client->addr = address; 316 client->addr = address;
317 client->adapter = adapter; 317 client->adapter = adapter;
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 5404fcc5276d..a080c149cc6c 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3389,7 +3389,6 @@ static struct video_device bttv_video_template =
3389 .vidiocgmbuf = vidiocgmbuf, 3389 .vidiocgmbuf = vidiocgmbuf,
3390#endif 3390#endif
3391 .vidioc_g_crop = bttv_g_crop, 3391 .vidioc_g_crop = bttv_g_crop,
3392 .vidioc_g_crop = bttv_g_crop,
3393 .vidioc_s_crop = bttv_s_crop, 3392 .vidioc_s_crop = bttv_s_crop,
3394 .vidioc_g_fbuf = bttv_g_fbuf, 3393 .vidioc_g_fbuf = bttv_g_fbuf,
3395 .vidioc_s_fbuf = bttv_s_fbuf, 3394 .vidioc_s_fbuf = bttv_s_fbuf,
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index e6b7f518c56e..8c9a8adf52de 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -2196,6 +2196,11 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
2196 cx88_reset(core); 2196 cx88_reset(core);
2197 cx88_card_setup_pre_i2c(core); 2197 cx88_card_setup_pre_i2c(core);
2198 cx88_i2c_init(core, pci); 2198 cx88_i2c_init(core, pci);
2199
2200 /* load tuner module, if needed */
2201 if (TUNER_ABSENT != core->board.tuner_type)
2202 request_module("tuner");
2203
2199 cx88_call_i2c_clients (core, TUNER_SET_STANDBY, NULL); 2204 cx88_call_i2c_clients (core, TUNER_SET_STANDBY, NULL);
2200 cx88_card_setup(core); 2205 cx88_card_setup(core);
2201 cx88_ir_init(core, pci); 2206 cx88_ir_init(core, pci);
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 7f1931aed207..227179620d13 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1826,8 +1826,6 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
1826 cx_set(MO_PCI_INTMSK, core->pci_irqmask); 1826 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
1827 1827
1828 /* load and configure helper modules */ 1828 /* load and configure helper modules */
1829 if (TUNER_ABSENT != core->board.tuner_type)
1830 request_module("tuner");
1831 1829
1832 if (core->board.audio_chip == AUDIO_CHIP_WM8775) 1830 if (core->board.audio_chip == AUDIO_CHIP_WM8775)
1833 request_module("wm8775"); 1831 request_module("wm8775");
diff --git a/drivers/media/video/dpc7146.c b/drivers/media/video/dpc7146.c
index 566e479e2629..9ceb6b2f3949 100644
--- a/drivers/media/video/dpc7146.c
+++ b/drivers/media/video/dpc7146.c
@@ -131,7 +131,7 @@ static int dpc_probe(struct saa7146_dev* dev)
131 device_for_each_child(&dpc->i2c_adapter.dev, dpc, dpc_check_clients); 131 device_for_each_child(&dpc->i2c_adapter.dev, dpc, dpc_check_clients);
132 132
133 /* check if all devices are present */ 133 /* check if all devices are present */
134 if( 0 == dpc->saa7111a ) { 134 if (!dpc->saa7111a) {
135 DEB_D(("dpc_v4l2.o: dpc_attach failed for this device.\n")); 135 DEB_D(("dpc_v4l2.o: dpc_attach failed for this device.\n"));
136 i2c_del_adapter(&dpc->i2c_adapter); 136 i2c_del_adapter(&dpc->i2c_adapter);
137 kfree(dpc); 137 kfree(dpc);
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 7d1537cab867..c1caaa855b99 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -267,7 +267,7 @@ static int em28xx_write_ac97(struct em28xx *dev, u8 reg, u8 *val)
267 for (i = 0; i < 10; i++) { 267 for (i = 0; i < 10; i++) {
268 if ((ret = em28xx_read_reg(dev, AC97BUSY_REG)) < 0) 268 if ((ret = em28xx_read_reg(dev, AC97BUSY_REG)) < 0)
269 return ret; 269 return ret;
270 if (!((u8) ret) & 0x01) 270 if (!(ret & 0x01))
271 return 0; 271 return 0;
272 msleep(5); 272 msleep(5);
273 } 273 }
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index d42f120354e5..948ca35e7ee8 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -54,7 +54,6 @@
54#include "ivtv-vbi.h" 54#include "ivtv-vbi.h"
55#include "ivtv-routing.h" 55#include "ivtv-routing.h"
56#include "ivtv-gpio.h" 56#include "ivtv-gpio.h"
57#include "ivtv-yuv.h"
58 57
59#include <media/tveeprom.h> 58#include <media/tveeprom.h>
60#include <media/saa7115.h> 59#include <media/saa7115.h>
@@ -700,6 +699,9 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv)
700 itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; 699 itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE;
701 itv->vbi.sliced_in = &itv->vbi.in.fmt.sliced; 700 itv->vbi.sliced_in = &itv->vbi.in.fmt.sliced;
702 701
702 /* Init the sg table for osd/yuv output */
703 sg_init_table(itv->udma.SGlist, IVTV_DMA_SG_OSD_ENT);
704
703 /* OSD */ 705 /* OSD */
704 itv->osd_global_alpha_state = 1; 706 itv->osd_global_alpha_state = 1;
705 itv->osd_global_alpha = 255; 707 itv->osd_global_alpha = 255;
@@ -1053,9 +1055,6 @@ static int __devinit ivtv_probe(struct pci_dev *dev,
1053 goto free_io; 1055 goto free_io;
1054 } 1056 }
1055 1057
1056 /* Check yuv output filter table */
1057 if (itv->has_cx23415) ivtv_yuv_filter_check(itv);
1058
1059 ivtv_gpio_init(itv); 1058 ivtv_gpio_init(itv);
1060 1059
1061 /* active i2c */ 1060 /* active i2c */
diff --git a/drivers/media/video/ivtv/ivtv-firmware.c b/drivers/media/video/ivtv/ivtv-firmware.c
index 425eb1063904..6dba55b7e25a 100644
--- a/drivers/media/video/ivtv/ivtv-firmware.c
+++ b/drivers/media/video/ivtv/ivtv-firmware.c
@@ -22,6 +22,7 @@
22#include "ivtv-driver.h" 22#include "ivtv-driver.h"
23#include "ivtv-mailbox.h" 23#include "ivtv-mailbox.h"
24#include "ivtv-firmware.h" 24#include "ivtv-firmware.h"
25#include "ivtv-yuv.h"
25#include <linux/firmware.h> 26#include <linux/firmware.h>
26 27
27#define IVTV_MASK_SPU_ENABLE 0xFFFFFFFE 28#define IVTV_MASK_SPU_ENABLE 0xFFFFFFFE
@@ -225,11 +226,14 @@ int ivtv_firmware_init(struct ivtv *itv)
225 return 0; 226 return 0;
226 227
227 itv->dec_mbox.mbox = ivtv_search_mailbox(itv->dec_mem, IVTV_DECODER_SIZE); 228 itv->dec_mbox.mbox = ivtv_search_mailbox(itv->dec_mem, IVTV_DECODER_SIZE);
228 if (itv->dec_mbox.mbox == NULL) 229 if (itv->dec_mbox.mbox == NULL) {
229 IVTV_ERR("Decoder mailbox not found\n"); 230 IVTV_ERR("Decoder mailbox not found\n");
230 else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) { 231 } else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) {
231 IVTV_ERR("Decoder firmware dead!\n"); 232 IVTV_ERR("Decoder firmware dead!\n");
232 itv->dec_mbox.mbox = NULL; 233 itv->dec_mbox.mbox = NULL;
234 } else {
235 /* Firmware okay, so check yuv output filter table */
236 ivtv_yuv_filter_check(itv);
233 } 237 }
234 return itv->dec_mbox.mbox ? 0 : -ENODEV; 238 return itv->dec_mbox.mbox ? 0 : -ENODEV;
235} 239}
diff --git a/drivers/media/video/mt20xx.c b/drivers/media/video/mt20xx.c
index 58bab653330f..74fd6a01d4c4 100644
--- a/drivers/media/video/mt20xx.c
+++ b/drivers/media/video/mt20xx.c
@@ -647,7 +647,7 @@ struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
647 default: 647 default:
648 tuner_info("microtune %s found, not (yet?) supported, sorry :-/\n", 648 tuner_info("microtune %s found, not (yet?) supported, sorry :-/\n",
649 name); 649 name);
650 return 0; 650 return NULL;
651 } 651 }
652 652
653 strlcpy(fe->ops.tuner_ops.info.name, name, 653 strlcpy(fe->ops.tuner_ops.info.name, name,
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index add6d0d680be..cb5a510f9251 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -221,9 +221,8 @@ static int mxb_probe(struct saa7146_dev* dev)
221 device_for_each_child(&mxb->i2c_adapter.dev, mxb, mxb_check_clients); 221 device_for_each_child(&mxb->i2c_adapter.dev, mxb, mxb_check_clients);
222 222
223 /* check if all devices are present */ 223 /* check if all devices are present */
224 if( 0 == mxb->tea6420_1 || 0 == mxb->tea6420_2 || 0 == mxb->tea6415c 224 if (!mxb->tea6420_1 || !mxb->tea6420_2 || !mxb->tea6415c ||
225 || 0 == mxb->tda9840 || 0 == mxb->saa7111a || 0 == mxb->tuner ) { 225 !mxb->tda9840 || !mxb->saa7111a || !mxb->tuner) {
226
227 printk("mxb: did not find all i2c devices. aborting\n"); 226 printk("mxb: did not find all i2c devices. aborting\n");
228 i2c_del_adapter(&mxb->i2c_adapter); 227 i2c_del_adapter(&mxb->i2c_adapter);
229 kfree(mxb); 228 kfree(mxb);
diff --git a/drivers/media/video/pvrusb2/pvrusb2-ctrl.c b/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
index 46f156fb108c..5a3e8d21a38a 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-ctrl.c
@@ -60,7 +60,7 @@ int pvr2_ctrl_set_mask_value(struct pvr2_ctrl *cptr,int mask,int val)
60 int ret = 0; 60 int ret = 0;
61 if (!cptr) return -EINVAL; 61 if (!cptr) return -EINVAL;
62 LOCK_TAKE(cptr->hdw->big_lock); do { 62 LOCK_TAKE(cptr->hdw->big_lock); do {
63 if (cptr->info->set_value != 0) { 63 if (cptr->info->set_value) {
64 if (cptr->info->type == pvr2_ctl_bitmask) { 64 if (cptr->info->type == pvr2_ctl_bitmask) {
65 mask &= cptr->info->def.type_bitmask.valid_bits; 65 mask &= cptr->info->def.type_bitmask.valid_bits;
66 } else if (cptr->info->type == pvr2_ctl_int) { 66 } else if (cptr->info->type == pvr2_ctl_int) {
@@ -265,7 +265,7 @@ unsigned int pvr2_ctrl_get_v4lflags(struct pvr2_ctrl *cptr)
265int pvr2_ctrl_is_writable(struct pvr2_ctrl *cptr) 265int pvr2_ctrl_is_writable(struct pvr2_ctrl *cptr)
266{ 266{
267 if (!cptr) return 0; 267 if (!cptr) return 0;
268 return cptr->info->set_value != 0; 268 return cptr->info->set_value != NULL;
269} 269}
270 270
271 271
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index 41ae980405ed..d6955fa39598 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -2291,7 +2291,7 @@ static int pvr2_hdw_commit_setup(struct pvr2_hdw *hdw)
2291 2291
2292 for (idx = 0; idx < hdw->control_cnt; idx++) { 2292 for (idx = 0; idx < hdw->control_cnt; idx++) {
2293 cptr = hdw->controls + idx; 2293 cptr = hdw->controls + idx;
2294 if (cptr->info->is_dirty == 0) continue; 2294 if (!cptr->info->is_dirty) continue;
2295 if (!cptr->info->is_dirty(cptr)) continue; 2295 if (!cptr->info->is_dirty(cptr)) continue;
2296 commit_flag = !0; 2296 commit_flag = !0;
2297 2297
@@ -2646,7 +2646,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
2646 u16 address; 2646 u16 address;
2647 unsigned int pipe; 2647 unsigned int pipe;
2648 LOCK_TAKE(hdw->big_lock); do { 2648 LOCK_TAKE(hdw->big_lock); do {
2649 if ((hdw->fw_buffer == 0) == !enable_flag) break; 2649 if ((hdw->fw_buffer == NULL) == !enable_flag) break;
2650 2650
2651 if (!enable_flag) { 2651 if (!enable_flag) {
2652 pvr2_trace(PVR2_TRACE_FIRMWARE, 2652 pvr2_trace(PVR2_TRACE_FIRMWARE,
@@ -2715,7 +2715,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
2715/* Return true if we're in a mode for retrieval CPU firmware */ 2715/* Return true if we're in a mode for retrieval CPU firmware */
2716int pvr2_hdw_cpufw_get_enabled(struct pvr2_hdw *hdw) 2716int pvr2_hdw_cpufw_get_enabled(struct pvr2_hdw *hdw)
2717{ 2717{
2718 return hdw->fw_buffer != 0; 2718 return hdw->fw_buffer != NULL;
2719} 2719}
2720 2720
2721 2721
diff --git a/drivers/media/video/pvrusb2/pvrusb2-io.c b/drivers/media/video/pvrusb2/pvrusb2-io.c
index ce3c8982ffe0..a9889ff96ecc 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-io.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-io.c
@@ -563,7 +563,7 @@ void pvr2_stream_kill(struct pvr2_stream *sp)
563 struct pvr2_buffer *bp; 563 struct pvr2_buffer *bp;
564 mutex_lock(&sp->mutex); do { 564 mutex_lock(&sp->mutex); do {
565 pvr2_stream_internal_flush(sp); 565 pvr2_stream_internal_flush(sp);
566 while ((bp = pvr2_stream_get_ready_buffer(sp)) != 0) { 566 while ((bp = pvr2_stream_get_ready_buffer(sp)) != NULL) {
567 pvr2_buffer_set_idle(bp); 567 pvr2_buffer_set_idle(bp);
568 } 568 }
569 if (sp->buffer_total_count != sp->buffer_target_count) { 569 if (sp->buffer_total_count != sp->buffer_target_count) {
diff --git a/drivers/media/video/pvrusb2/pvrusb2-ioread.c b/drivers/media/video/pvrusb2/pvrusb2-ioread.c
index f782418afa45..c572212c9f15 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-ioread.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-ioread.c
@@ -165,7 +165,7 @@ static int pvr2_ioread_start(struct pvr2_ioread *cp)
165 if (!(cp->stream)) return 0; 165 if (!(cp->stream)) return 0;
166 pvr2_trace(PVR2_TRACE_START_STOP, 166 pvr2_trace(PVR2_TRACE_START_STOP,
167 "/*---TRACE_READ---*/ pvr2_ioread_start id=%p",cp); 167 "/*---TRACE_READ---*/ pvr2_ioread_start id=%p",cp);
168 while ((bp = pvr2_stream_get_idle_buffer(cp->stream)) != 0) { 168 while ((bp = pvr2_stream_get_idle_buffer(cp->stream)) != NULL) {
169 stat = pvr2_buffer_queue(bp); 169 stat = pvr2_buffer_queue(bp);
170 if (stat < 0) { 170 if (stat < 0) {
171 pvr2_trace(PVR2_TRACE_DATA_FLOW, 171 pvr2_trace(PVR2_TRACE_DATA_FLOW,
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index f991d72fe108..e0a453a6543d 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -915,7 +915,7 @@ static void pwc_iso_stop(struct pwc_device *pdev)
915 struct urb *urb; 915 struct urb *urb;
916 916
917 urb = pdev->sbuf[i].urb; 917 urb = pdev->sbuf[i].urb;
918 if (urb != 0) { 918 if (urb) {
919 PWC_DEBUG_MEMORY("Unlinking URB %p\n", urb); 919 PWC_DEBUG_MEMORY("Unlinking URB %p\n", urb);
920 usb_kill_urb(urb); 920 usb_kill_urb(urb);
921 } 921 }
@@ -931,7 +931,7 @@ static void pwc_iso_free(struct pwc_device *pdev)
931 struct urb *urb; 931 struct urb *urb;
932 932
933 urb = pdev->sbuf[i].urb; 933 urb = pdev->sbuf[i].urb;
934 if (urb != 0) { 934 if (urb) {
935 PWC_DEBUG_MEMORY("Freeing URB\n"); 935 PWC_DEBUG_MEMORY("Freeing URB\n");
936 usb_free_urb(urb); 936 usb_free_urb(urb);
937 pdev->sbuf[i].urb = NULL; 937 pdev->sbuf[i].urb = NULL;
@@ -1759,8 +1759,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
1759 1759
1760 /* Allocate video_device structure */ 1760 /* Allocate video_device structure */
1761 pdev->vdev = video_device_alloc(); 1761 pdev->vdev = video_device_alloc();
1762 if (pdev->vdev == 0) 1762 if (!pdev->vdev) {
1763 {
1764 PWC_ERROR("Err, cannot allocate video_device struture. Failing probe."); 1763 PWC_ERROR("Err, cannot allocate video_device struture. Failing probe.");
1765 kfree(pdev); 1764 kfree(pdev);
1766 return -ENOMEM; 1765 return -ENOMEM;
diff --git a/drivers/media/video/saa7110.c b/drivers/media/video/saa7110.c
index 061134a7ba9f..1df2602cd184 100644
--- a/drivers/media/video/saa7110.c
+++ b/drivers/media/video/saa7110.c
@@ -488,7 +488,7 @@ saa7110_detect_client (struct i2c_adapter *adapter,
488 return 0; 488 return 0;
489 489
490 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 490 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
491 if (client == 0) 491 if (!client)
492 return -ENOMEM; 492 return -ENOMEM;
493 client->addr = address; 493 client->addr = address;
494 client->adapter = adapter; 494 client->adapter = adapter;
@@ -496,7 +496,7 @@ saa7110_detect_client (struct i2c_adapter *adapter,
496 strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client))); 496 strlcpy(I2C_NAME(client), "saa7110", sizeof(I2C_NAME(client)));
497 497
498 decoder = kzalloc(sizeof(struct saa7110), GFP_KERNEL); 498 decoder = kzalloc(sizeof(struct saa7110), GFP_KERNEL);
499 if (decoder == 0) { 499 if (!decoder) {
500 kfree(client); 500 kfree(client);
501 return -ENOMEM; 501 return -ENOMEM;
502 } 502 }
diff --git a/drivers/media/video/saa7111.c b/drivers/media/video/saa7111.c
index 7ae2d646d000..a0772c53bb1f 100644
--- a/drivers/media/video/saa7111.c
+++ b/drivers/media/video/saa7111.c
@@ -502,7 +502,7 @@ saa7111_detect_client (struct i2c_adapter *adapter,
502 return 0; 502 return 0;
503 503
504 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 504 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
505 if (client == 0) 505 if (!client)
506 return -ENOMEM; 506 return -ENOMEM;
507 client->addr = address; 507 client->addr = address;
508 client->adapter = adapter; 508 client->adapter = adapter;
diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c
index 677df51de1a9..bf91a4faa706 100644
--- a/drivers/media/video/saa7114.c
+++ b/drivers/media/video/saa7114.c
@@ -841,7 +841,7 @@ saa7114_detect_client (struct i2c_adapter *adapter,
841 return 0; 841 return 0;
842 842
843 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 843 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
844 if (client == 0) 844 if (!client)
845 return -ENOMEM; 845 return -ENOMEM;
846 client->addr = address; 846 client->addr = address;
847 client->adapter = adapter; 847 client->adapter = adapter;
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 262830da08c8..6f5744286e8c 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -2484,27 +2484,28 @@ struct saa7134_board saa7134_boards[] = {
2484 .tuner_addr = ADDR_UNSET, 2484 .tuner_addr = ADDR_UNSET,
2485 .radio_addr = ADDR_UNSET, 2485 .radio_addr = ADDR_UNSET,
2486 .gpiomask = 0x080200000, 2486 .gpiomask = 0x080200000,
2487 .inputs = {{ 2487 .inputs = { {
2488 .name = name_tv, 2488 .name = name_tv,
2489 .vmux = 4, 2489 .vmux = 4,
2490 .amux = TV, 2490 .amux = TV,
2491 .tv = 1, 2491 .tv = 1,
2492 },{ 2492 }, {
2493 .name = name_comp1, 2493 .name = name_comp1,
2494 .vmux = 1, 2494 .vmux = 1,
2495 .amux = LINE2, 2495 .amux = LINE2,
2496 },{ 2496 }, {
2497 .name = name_comp2, 2497 .name = name_comp2,
2498 .vmux = 0, 2498 .vmux = 0,
2499 .amux = LINE2, 2499 .amux = LINE2,
2500 },{ 2500 }, {
2501 .name = name_svideo, 2501 .name = name_svideo,
2502 .vmux = 8, 2502 .vmux = 8,
2503 .amux = LINE2, 2503 .amux = LINE2,
2504 }}, 2504 } },
2505 .radio = { 2505 .radio = {
2506 .name = name_radio, 2506 .name = name_radio,
2507 .amux = LINE1, 2507 .amux = TV,
2508 .gpio = 0x0200000,
2508 }, 2509 },
2509 }, 2510 },
2510 [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = { 2511 [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 52baa4f7f7dd..58ab163fdbd7 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -1022,12 +1022,13 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
1022 saa7134_i2c_register(dev); 1022 saa7134_i2c_register(dev);
1023 1023
1024 /* initialize hardware #2 */ 1024 /* initialize hardware #2 */
1025 if (TUNER_ABSENT != dev->tuner_type)
1026 request_module("tuner");
1025 saa7134_board_init2(dev); 1027 saa7134_board_init2(dev);
1028
1026 saa7134_hwinit2(dev); 1029 saa7134_hwinit2(dev);
1027 1030
1028 /* load i2c helpers */ 1031 /* load i2c helpers */
1029 if (TUNER_ABSENT != dev->tuner_type)
1030 request_module("tuner");
1031 if (card_is_empress(dev)) { 1032 if (card_is_empress(dev)) {
1032 request_module("saa6752hs"); 1033 request_module("saa6752hs");
1033 } 1034 }
diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c
index 66cc92c0ea66..41f70440fd3b 100644
--- a/drivers/media/video/saa7185.c
+++ b/drivers/media/video/saa7185.c
@@ -403,7 +403,7 @@ saa7185_detect_client (struct i2c_adapter *adapter,
403 return 0; 403 return 0;
404 404
405 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 405 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
406 if (client == 0) 406 if (!client)
407 return -ENOMEM; 407 return -ENOMEM;
408 client->addr = address; 408 client->addr = address;
409 client->adapter = adapter; 409 client->adapter = adapter;
diff --git a/drivers/media/video/tda9840.c b/drivers/media/video/tda9840.c
index ef494febb5e4..bdca5d278978 100644
--- a/drivers/media/video/tda9840.c
+++ b/drivers/media/video/tda9840.c
@@ -172,7 +172,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
172 172
173 /* allocate memory for client structure */ 173 /* allocate memory for client structure */
174 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL); 174 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
175 if (0 == client) { 175 if (!client) {
176 printk("not enough kernel memory\n"); 176 printk("not enough kernel memory\n");
177 return -ENOMEM; 177 return -ENOMEM;
178 } 178 }
diff --git a/drivers/media/video/tea6415c.c b/drivers/media/video/tea6415c.c
index 523df0b8cc63..df2fad9f391e 100644
--- a/drivers/media/video/tea6415c.c
+++ b/drivers/media/video/tea6415c.c
@@ -64,7 +64,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
64 64
65 /* allocate memory for client structure */ 65 /* allocate memory for client structure */
66 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL); 66 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
67 if (0 == client) { 67 if (!client) {
68 return -ENOMEM; 68 return -ENOMEM;
69 } 69 }
70 70
diff --git a/drivers/media/video/tea6420.c b/drivers/media/video/tea6420.c
index ca05cd655087..4ff6c63f7237 100644
--- a/drivers/media/video/tea6420.c
+++ b/drivers/media/video/tea6420.c
@@ -101,7 +101,7 @@ static int tea6420_detect(struct i2c_adapter *adapter, int address, int kind)
101 101
102 /* allocate memory for client structure */ 102 /* allocate memory for client structure */
103 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 103 client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
104 if (0 == client) { 104 if (!client) {
105 return -ENOMEM; 105 return -ENOMEM;
106 } 106 }
107 107
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
index 445eba4174d7..b6e24e714a23 100644
--- a/drivers/media/video/tvp5150.c
+++ b/drivers/media/video/tvp5150.c
@@ -672,7 +672,7 @@ static int tvp5150_set_vbi(struct i2c_client *c,
672 if (std == V4L2_STD_ALL) { 672 if (std == V4L2_STD_ALL) {
673 tvp5150_err("VBI can't be configured without knowing number of lines\n"); 673 tvp5150_err("VBI can't be configured without knowing number of lines\n");
674 return 0; 674 return 0;
675 } else if (std && V4L2_STD_625_50) { 675 } else if (std & V4L2_STD_625_50) {
676 /* Don't follow NTSC Line number convension */ 676 /* Don't follow NTSC Line number convension */
677 line += 3; 677 line += 3;
678 } 678 }
@@ -719,7 +719,7 @@ static int tvp5150_get_vbi(struct i2c_client *c,
719 if (std == V4L2_STD_ALL) { 719 if (std == V4L2_STD_ALL) {
720 tvp5150_err("VBI can't be configured without knowing number of lines\n"); 720 tvp5150_err("VBI can't be configured without knowing number of lines\n");
721 return 0; 721 return 0;
722 } else if (std && V4L2_STD_625_50) { 722 } else if (std & V4L2_STD_625_50) {
723 /* Don't follow NTSC Line number convension */ 723 /* Don't follow NTSC Line number convension */
724 line += 3; 724 line += 3;
725 } 725 }
@@ -1072,12 +1072,12 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter,
1072 return 0; 1072 return 0;
1073 1073
1074 c = kmalloc(sizeof(struct i2c_client), GFP_KERNEL); 1074 c = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
1075 if (c == 0) 1075 if (!c)
1076 return -ENOMEM; 1076 return -ENOMEM;
1077 memcpy(c, &client_template, sizeof(struct i2c_client)); 1077 memcpy(c, &client_template, sizeof(struct i2c_client));
1078 1078
1079 core = kzalloc(sizeof(struct tvp5150), GFP_KERNEL); 1079 core = kzalloc(sizeof(struct tvp5150), GFP_KERNEL);
1080 if (core == 0) { 1080 if (!core) {
1081 kfree(c); 1081 kfree(c);
1082 return -ENOMEM; 1082 return -ENOMEM;
1083 } 1083 }
diff --git a/drivers/media/video/usbvideo/usbvideo.c b/drivers/media/video/usbvideo/usbvideo.c
index fb434b5602a3..5d363be7bc73 100644
--- a/drivers/media/video/usbvideo/usbvideo.c
+++ b/drivers/media/video/usbvideo/usbvideo.c
@@ -1034,6 +1034,11 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
1034 info("%s: iface=%d. endpoint=$%02x paletteBits=$%08lx", 1034 info("%s: iface=%d. endpoint=$%02x paletteBits=$%08lx",
1035 __FUNCTION__, uvd->iface, uvd->video_endp, uvd->paletteBits); 1035 __FUNCTION__, uvd->iface, uvd->video_endp, uvd->paletteBits);
1036 } 1036 }
1037 if (uvd->dev == NULL) {
1038 err("%s: uvd->dev == NULL", __FUNCTION__);
1039 return -EINVAL;
1040 }
1041 uvd->vdev.dev=&(uvd->dev->dev);
1037 if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 1042 if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) == -1) {
1038 err("%s: video_register_device failed", __FUNCTION__); 1043 err("%s: video_register_device failed", __FUNCTION__);
1039 return -EPIPE; 1044 return -EPIPE;
@@ -1041,10 +1046,6 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd)
1041 if (uvd->debug > 1) { 1046 if (uvd->debug > 1) {
1042 info("%s: video_register_device() successful", __FUNCTION__); 1047 info("%s: video_register_device() successful", __FUNCTION__);
1043 } 1048 }
1044 if (uvd->dev == NULL) {
1045 err("%s: uvd->dev == NULL", __FUNCTION__);
1046 return -EINVAL;
1047 }
1048 1049
1049 info("%s on /dev/video%d: canvas=%s videosize=%s", 1050 info("%s on /dev/video%d: canvas=%s videosize=%s",
1050 (uvd->handle != NULL) ? uvd->handle->drvName : "???", 1051 (uvd->handle != NULL) ? uvd->handle->drvName : "???",
diff --git a/drivers/media/video/v4l1-compat.c b/drivers/media/video/v4l1-compat.c
index dcf22a3b672a..50e1ff9f2be5 100644
--- a/drivers/media/video/v4l1-compat.c
+++ b/drivers/media/video/v4l1-compat.c
@@ -303,7 +303,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
303 { 303 {
304 struct video_capability *cap = arg; 304 struct video_capability *cap = arg;
305 305
306 cap2 = kzalloc(sizeof(*cap2),GFP_KERNEL); 306 cap2 = kzalloc(sizeof(*cap2), GFP_KERNEL);
307 if (!cap2) {
308 err = -ENOMEM;
309 break;
310 }
307 memset(cap, 0, sizeof(*cap)); 311 memset(cap, 0, sizeof(*cap));
308 memset(&fbuf2, 0, sizeof(fbuf2)); 312 memset(&fbuf2, 0, sizeof(fbuf2));
309 313
@@ -426,7 +430,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
426 { 430 {
427 struct video_window *win = arg; 431 struct video_window *win = arg;
428 432
429 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); 433 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
434 if (!fmt2) {
435 err = -ENOMEM;
436 break;
437 }
430 memset(win,0,sizeof(*win)); 438 memset(win,0,sizeof(*win));
431 439
432 fmt2->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; 440 fmt2->type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
@@ -464,7 +472,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
464 struct video_window *win = arg; 472 struct video_window *win = arg;
465 int err1,err2; 473 int err1,err2;
466 474
467 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); 475 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
476 if (!fmt2) {
477 err = -ENOMEM;
478 break;
479 }
468 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 480 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
469 drv(inode, file, VIDIOC_STREAMOFF, &fmt2->type); 481 drv(inode, file, VIDIOC_STREAMOFF, &fmt2->type);
470 err1 = drv(inode, file, VIDIOC_G_FMT, fmt2); 482 err1 = drv(inode, file, VIDIOC_G_FMT, fmt2);
@@ -586,6 +598,12 @@ v4l_compat_translate_ioctl(struct inode *inode,
586 { 598 {
587 struct video_picture *pict = arg; 599 struct video_picture *pict = arg;
588 600
601 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
602 if (!fmt2) {
603 err = -ENOMEM;
604 break;
605 }
606
589 pict->brightness = get_v4l_control(inode, file, 607 pict->brightness = get_v4l_control(inode, file,
590 V4L2_CID_BRIGHTNESS,drv); 608 V4L2_CID_BRIGHTNESS,drv);
591 pict->hue = get_v4l_control(inode, file, 609 pict->hue = get_v4l_control(inode, file,
@@ -597,7 +615,6 @@ v4l_compat_translate_ioctl(struct inode *inode,
597 pict->whiteness = get_v4l_control(inode, file, 615 pict->whiteness = get_v4l_control(inode, file,
598 V4L2_CID_WHITENESS, drv); 616 V4L2_CID_WHITENESS, drv);
599 617
600 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
601 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 618 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
602 err = drv(inode, file, VIDIOC_G_FMT, fmt2); 619 err = drv(inode, file, VIDIOC_G_FMT, fmt2);
603 if (err < 0) { 620 if (err < 0) {
@@ -617,6 +634,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
617 struct video_picture *pict = arg; 634 struct video_picture *pict = arg;
618 int mem_err = 0, ovl_err = 0; 635 int mem_err = 0, ovl_err = 0;
619 636
637 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
638 if (!fmt2) {
639 err = -ENOMEM;
640 break;
641 }
620 memset(&fbuf2, 0, sizeof(fbuf2)); 642 memset(&fbuf2, 0, sizeof(fbuf2));
621 643
622 set_v4l_control(inode, file, 644 set_v4l_control(inode, file,
@@ -636,7 +658,6 @@ v4l_compat_translate_ioctl(struct inode *inode,
636 * different pixel formats for memory vs overlay. 658 * different pixel formats for memory vs overlay.
637 */ 659 */
638 660
639 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL);
640 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 661 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
641 err = drv(inode, file, VIDIOC_G_FMT, fmt2); 662 err = drv(inode, file, VIDIOC_G_FMT, fmt2);
642 /* If VIDIOC_G_FMT failed, then the driver likely doesn't 663 /* If VIDIOC_G_FMT failed, then the driver likely doesn't
@@ -890,7 +911,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
890 { 911 {
891 struct video_mmap *mm = arg; 912 struct video_mmap *mm = arg;
892 913
893 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); 914 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
915 if (!fmt2) {
916 err = -ENOMEM;
917 break;
918 }
894 memset(&buf2,0,sizeof(buf2)); 919 memset(&buf2,0,sizeof(buf2));
895 920
896 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 921 fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
@@ -986,7 +1011,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
986 { 1011 {
987 struct vbi_format *fmt = arg; 1012 struct vbi_format *fmt = arg;
988 1013
989 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); 1014 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
1015 if (!fmt2) {
1016 err = -ENOMEM;
1017 break;
1018 }
990 fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; 1019 fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE;
991 1020
992 err = drv(inode, file, VIDIOC_G_FMT, fmt2); 1021 err = drv(inode, file, VIDIOC_G_FMT, fmt2);
@@ -1018,8 +1047,11 @@ v4l_compat_translate_ioctl(struct inode *inode,
1018 break; 1047 break;
1019 } 1048 }
1020 1049
1021 fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); 1050 fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL);
1022 1051 if (!fmt2) {
1052 err = -ENOMEM;
1053 break;
1054 }
1023 fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; 1055 fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE;
1024 fmt2->fmt.vbi.samples_per_line = fmt->samples_per_line; 1056 fmt2->fmt.vbi.samples_per_line = fmt->samples_per_line;
1025 fmt2->fmt.vbi.sampling_rate = fmt->sampling_rate; 1057 fmt2->fmt.vbi.sampling_rate = fmt->sampling_rate;
diff --git a/drivers/media/video/zoran_driver.c b/drivers/media/video/zoran_driver.c
index dd3d7d2c8b0e..fea4946ee713 100644
--- a/drivers/media/video/zoran_driver.c
+++ b/drivers/media/video/zoran_driver.c
@@ -339,7 +339,7 @@ v4l_fbuffer_alloc (struct file *file)
339 /* Use kmalloc */ 339 /* Use kmalloc */
340 340
341 mem = kmalloc(fh->v4l_buffers.buffer_size, GFP_KERNEL); 341 mem = kmalloc(fh->v4l_buffers.buffer_size, GFP_KERNEL);
342 if (mem == 0) { 342 if (!mem) {
343 dprintk(1, 343 dprintk(1,
344 KERN_ERR 344 KERN_ERR
345 "%s: v4l_fbuffer_alloc() - kmalloc for V4L buf %d failed\n", 345 "%s: v4l_fbuffer_alloc() - kmalloc for V4L buf %d failed\n",
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c
index 1b44784d0efb..04949c823654 100644
--- a/drivers/media/video/zr364xx.c
+++ b/drivers/media/video/zr364xx.c
@@ -390,7 +390,7 @@ static int read_frame(struct zr364xx_camera *cam, int framenum)
390} 390}
391 391
392 392
393static ssize_t zr364xx_read(struct file *file, char *buf, size_t cnt, 393static ssize_t zr364xx_read(struct file *file, char __user *buf, size_t cnt,
394 loff_t * ppos) 394 loff_t * ppos)
395{ 395{
396 unsigned long count = cnt; 396 unsigned long count = cnt;
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
index de80dba12f9b..946e3d3506ac 100644
--- a/drivers/memstick/core/memstick.c
+++ b/drivers/memstick/core/memstick.c
@@ -276,8 +276,6 @@ void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
276 mrq->need_card_int = 1; 276 mrq->need_card_int = 1;
277 else 277 else
278 mrq->need_card_int = 0; 278 mrq->need_card_int = 0;
279
280 mrq->get_int_reg = 0;
281} 279}
282EXPORT_SYMBOL(memstick_init_req_sg); 280EXPORT_SYMBOL(memstick_init_req_sg);
283 281
@@ -311,8 +309,6 @@ void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
311 mrq->need_card_int = 1; 309 mrq->need_card_int = 1;
312 else 310 else
313 mrq->need_card_int = 0; 311 mrq->need_card_int = 0;
314
315 mrq->get_int_reg = 0;
316} 312}
317EXPORT_SYMBOL(memstick_init_req); 313EXPORT_SYMBOL(memstick_init_req);
318 314
@@ -342,6 +338,7 @@ static int h_memstick_read_dev_id(struct memstick_dev *card,
342 card->id.class = id_reg.class; 338 card->id.class = id_reg.class;
343 } 339 }
344 complete(&card->mrq_complete); 340 complete(&card->mrq_complete);
341 dev_dbg(&card->dev, "if_mode = %02x\n", id_reg.if_mode);
345 return -EAGAIN; 342 return -EAGAIN;
346 } 343 }
347} 344}
@@ -422,7 +419,6 @@ static void memstick_power_on(struct memstick_host *host)
422{ 419{
423 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); 420 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON);
424 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); 421 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL);
425 msleep(1);
426} 422}
427 423
428static void memstick_check(struct work_struct *work) 424static void memstick_check(struct work_struct *work)
@@ -579,7 +575,8 @@ EXPORT_SYMBOL(memstick_suspend_host);
579void memstick_resume_host(struct memstick_host *host) 575void memstick_resume_host(struct memstick_host *host)
580{ 576{
581 mutex_lock(&host->lock); 577 mutex_lock(&host->lock);
582 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); 578 if (host->card)
579 memstick_power_on(host);
583 mutex_unlock(&host->lock); 580 mutex_unlock(&host->lock);
584 memstick_detect_change(host); 581 memstick_detect_change(host);
585} 582}
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index 1d637e4561d3..557dbbba5cb2 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -133,6 +133,7 @@ struct mspro_devinfo {
133struct mspro_block_data { 133struct mspro_block_data {
134 struct memstick_dev *card; 134 struct memstick_dev *card;
135 unsigned int usage_count; 135 unsigned int usage_count;
136 unsigned int caps;
136 struct gendisk *disk; 137 struct gendisk *disk;
137 struct request_queue *queue; 138 struct request_queue *queue;
138 spinlock_t q_lock; 139 spinlock_t q_lock;
@@ -577,7 +578,6 @@ static int h_mspro_block_wait_for_ced(struct memstick_dev *card,
577static int h_mspro_block_transfer_data(struct memstick_dev *card, 578static int h_mspro_block_transfer_data(struct memstick_dev *card,
578 struct memstick_request **mrq) 579 struct memstick_request **mrq)
579{ 580{
580 struct memstick_host *host = card->host;
581 struct mspro_block_data *msb = memstick_get_drvdata(card); 581 struct mspro_block_data *msb = memstick_get_drvdata(card);
582 unsigned char t_val = 0; 582 unsigned char t_val = 0;
583 struct scatterlist t_sg = { 0 }; 583 struct scatterlist t_sg = { 0 };
@@ -591,12 +591,12 @@ static int h_mspro_block_transfer_data(struct memstick_dev *card,
591 switch ((*mrq)->tpc) { 591 switch ((*mrq)->tpc) {
592 case MS_TPC_WRITE_REG: 592 case MS_TPC_WRITE_REG:
593 memstick_init_req(*mrq, MS_TPC_SET_CMD, &msb->transfer_cmd, 1); 593 memstick_init_req(*mrq, MS_TPC_SET_CMD, &msb->transfer_cmd, 1);
594 (*mrq)->get_int_reg = 1; 594 (*mrq)->need_card_int = 1;
595 return 0; 595 return 0;
596 case MS_TPC_SET_CMD: 596 case MS_TPC_SET_CMD:
597 t_val = (*mrq)->int_reg; 597 t_val = (*mrq)->int_reg;
598 memstick_init_req(*mrq, MS_TPC_GET_INT, NULL, 1); 598 memstick_init_req(*mrq, MS_TPC_GET_INT, NULL, 1);
599 if (host->caps & MEMSTICK_CAP_AUTO_GET_INT) 599 if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT)
600 goto has_int_reg; 600 goto has_int_reg;
601 return 0; 601 return 0;
602 case MS_TPC_GET_INT: 602 case MS_TPC_GET_INT:
@@ -646,12 +646,12 @@ has_int_reg:
646 ? MS_TPC_READ_LONG_DATA 646 ? MS_TPC_READ_LONG_DATA
647 : MS_TPC_WRITE_LONG_DATA, 647 : MS_TPC_WRITE_LONG_DATA,
648 &t_sg); 648 &t_sg);
649 (*mrq)->get_int_reg = 1; 649 (*mrq)->need_card_int = 1;
650 return 0; 650 return 0;
651 case MS_TPC_READ_LONG_DATA: 651 case MS_TPC_READ_LONG_DATA:
652 case MS_TPC_WRITE_LONG_DATA: 652 case MS_TPC_WRITE_LONG_DATA:
653 msb->current_page++; 653 msb->current_page++;
654 if (host->caps & MEMSTICK_CAP_AUTO_GET_INT) { 654 if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT) {
655 t_val = (*mrq)->int_reg; 655 t_val = (*mrq)->int_reg;
656 goto has_int_reg; 656 goto has_int_reg;
657 } else { 657 } else {
@@ -816,12 +816,13 @@ static int mspro_block_wait_for_ced(struct memstick_dev *card)
816 return card->current_mrq.error; 816 return card->current_mrq.error;
817} 817}
818 818
819static int mspro_block_switch_to_parallel(struct memstick_dev *card) 819static int mspro_block_set_interface(struct memstick_dev *card,
820 unsigned char sys_reg)
820{ 821{
821 struct memstick_host *host = card->host; 822 struct memstick_host *host = card->host;
822 struct mspro_block_data *msb = memstick_get_drvdata(card); 823 struct mspro_block_data *msb = memstick_get_drvdata(card);
823 struct mspro_param_register param = { 824 struct mspro_param_register param = {
824 .system = MEMSTICK_SYS_PAR4, 825 .system = sys_reg,
825 .data_count = 0, 826 .data_count = 0,
826 .data_address = 0, 827 .data_address = 0,
827 .tpc_param = 0 828 .tpc_param = 0
@@ -833,41 +834,70 @@ static int mspro_block_switch_to_parallel(struct memstick_dev *card)
833 sizeof(param)); 834 sizeof(param));
834 memstick_new_req(host); 835 memstick_new_req(host);
835 wait_for_completion(&card->mrq_complete); 836 wait_for_completion(&card->mrq_complete);
836 if (card->current_mrq.error) 837 return card->current_mrq.error;
837 return card->current_mrq.error; 838}
839
840static int mspro_block_switch_interface(struct memstick_dev *card)
841{
842 struct memstick_host *host = card->host;
843 struct mspro_block_data *msb = memstick_get_drvdata(card);
844 int rc = 0;
845
846 if (msb->caps & MEMSTICK_CAP_PAR4)
847 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4);
848 else
849 return 0;
850
851 if (rc) {
852 printk(KERN_WARNING
853 "%s: could not switch to 4-bit mode, error %d\n",
854 card->dev.bus_id, rc);
855 return 0;
856 }
838 857
839 msb->system = MEMSTICK_SYS_PAR4; 858 msb->system = MEMSTICK_SYS_PAR4;
840 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); 859 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4);
860 printk(KERN_INFO "%s: switching to 4-bit parallel mode\n",
861 card->dev.bus_id);
862
863 if (msb->caps & MEMSTICK_CAP_PAR8) {
864 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR8);
865
866 if (!rc) {
867 msb->system = MEMSTICK_SYS_PAR8;
868 host->set_param(host, MEMSTICK_INTERFACE,
869 MEMSTICK_PAR8);
870 printk(KERN_INFO
871 "%s: switching to 8-bit parallel mode\n",
872 card->dev.bus_id);
873 } else
874 printk(KERN_WARNING
875 "%s: could not switch to 8-bit mode, error %d\n",
876 card->dev.bus_id, rc);
877 }
841 878
842 card->next_request = h_mspro_block_req_init; 879 card->next_request = h_mspro_block_req_init;
843 msb->mrq_handler = h_mspro_block_default; 880 msb->mrq_handler = h_mspro_block_default;
844 memstick_init_req(&card->current_mrq, MS_TPC_GET_INT, NULL, 1); 881 memstick_init_req(&card->current_mrq, MS_TPC_GET_INT, NULL, 1);
845 memstick_new_req(card->host); 882 memstick_new_req(card->host);
846 wait_for_completion(&card->mrq_complete); 883 wait_for_completion(&card->mrq_complete);
884 rc = card->current_mrq.error;
847 885
848 if (card->current_mrq.error) { 886 if (rc) {
887 printk(KERN_WARNING
888 "%s: interface error, trying to fall back to serial\n",
889 card->dev.bus_id);
849 msb->system = MEMSTICK_SYS_SERIAL; 890 msb->system = MEMSTICK_SYS_SERIAL;
850 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); 891 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF);
851 msleep(1000); 892 msleep(10);
852 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); 893 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON);
853 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); 894 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL);
854 895
855 if (memstick_set_rw_addr(card)) 896 rc = memstick_set_rw_addr(card);
856 return card->current_mrq.error; 897 if (!rc)
857 898 rc = mspro_block_set_interface(card, msb->system);
858 param.system = msb->system;
859
860 card->next_request = h_mspro_block_req_init;
861 msb->mrq_handler = h_mspro_block_default;
862 memstick_init_req(&card->current_mrq, MS_TPC_WRITE_REG, &param,
863 sizeof(param));
864 memstick_new_req(host);
865 wait_for_completion(&card->mrq_complete);
866
867 return -EFAULT;
868 } 899 }
869 900 return rc;
870 return 0;
871} 901}
872 902
873/* Memory allocated for attributes by this function should be freed by 903/* Memory allocated for attributes by this function should be freed by
@@ -1052,16 +1082,18 @@ static int mspro_block_init_card(struct memstick_dev *card)
1052 if (memstick_set_rw_addr(card)) 1082 if (memstick_set_rw_addr(card))
1053 return -EIO; 1083 return -EIO;
1054 1084
1055 if (host->caps & MEMSTICK_CAP_PAR4) { 1085 msb->caps = host->caps;
1056 if (mspro_block_switch_to_parallel(card)) 1086 rc = mspro_block_switch_interface(card);
1057 printk(KERN_WARNING "%s: could not switch to " 1087 if (rc)
1058 "parallel interface\n", card->dev.bus_id); 1088 return rc;
1059 }
1060 1089
1090 msleep(200);
1061 rc = mspro_block_wait_for_ced(card); 1091 rc = mspro_block_wait_for_ced(card);
1062 if (rc) 1092 if (rc)
1063 return rc; 1093 return rc;
1064 dev_dbg(&card->dev, "card activated\n"); 1094 dev_dbg(&card->dev, "card activated\n");
1095 if (msb->system != MEMSTICK_SYS_SERIAL)
1096 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT;
1065 1097
1066 card->next_request = h_mspro_block_req_init; 1098 card->next_request = h_mspro_block_req_init;
1067 msb->mrq_handler = h_mspro_block_get_ro; 1099 msb->mrq_handler = h_mspro_block_get_ro;
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index 03fe8783b1ee..8770a5fac3b6 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -12,6 +12,7 @@
12#include <linux/spinlock.h> 12#include <linux/spinlock.h>
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/pci.h> 14#include <linux/pci.h>
15#include <linux/dma-mapping.h>
15#include <linux/delay.h> 16#include <linux/delay.h>
16#include <linux/highmem.h> 17#include <linux/highmem.h>
17#include <linux/memstick.h> 18#include <linux/memstick.h>
@@ -56,8 +57,6 @@ struct jmb38x_ms_host {
56 unsigned long timeout_jiffies; 57 unsigned long timeout_jiffies;
57 struct timer_list timer; 58 struct timer_list timer;
58 struct memstick_request *req; 59 struct memstick_request *req;
59 unsigned char eject:1,
60 use_dma:1;
61 unsigned char cmd_flags; 60 unsigned char cmd_flags;
62 unsigned char io_pos; 61 unsigned char io_pos;
63 unsigned int io_word[2]; 62 unsigned int io_word[2];
@@ -94,9 +93,22 @@ struct jmb38x_ms {
94#define HOST_CONTROL_IF_PAR4 0x1 93#define HOST_CONTROL_IF_PAR4 0x1
95#define HOST_CONTROL_IF_PAR8 0x3 94#define HOST_CONTROL_IF_PAR8 0x3
96 95
96#define STATUS_BUSY 0x00080000
97#define STATUS_MS_DAT7 0x00040000
98#define STATUS_MS_DAT6 0x00020000
99#define STATUS_MS_DAT5 0x00010000
100#define STATUS_MS_DAT4 0x00008000
101#define STATUS_MS_DAT3 0x00004000
102#define STATUS_MS_DAT2 0x00002000
103#define STATUS_MS_DAT1 0x00001000
104#define STATUS_MS_DAT0 0x00000800
97#define STATUS_HAS_MEDIA 0x00000400 105#define STATUS_HAS_MEDIA 0x00000400
98#define STATUS_FIFO_EMPTY 0x00000200 106#define STATUS_FIFO_EMPTY 0x00000200
99#define STATUS_FIFO_FULL 0x00000100 107#define STATUS_FIFO_FULL 0x00000100
108#define STATUS_MS_CED 0x00000080
109#define STATUS_MS_ERR 0x00000040
110#define STATUS_MS_BRQ 0x00000020
111#define STATUS_MS_CNK 0x00000001
100 112
101#define INT_STATUS_TPC_ERR 0x00080000 113#define INT_STATUS_TPC_ERR 0x00080000
102#define INT_STATUS_CRC_ERR 0x00040000 114#define INT_STATUS_CRC_ERR 0x00040000
@@ -119,11 +131,17 @@ struct jmb38x_ms {
119#define PAD_PU_PD_ON_MS_SOCK0 0x5f8f0000 131#define PAD_PU_PD_ON_MS_SOCK0 0x5f8f0000
120#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 132#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000
121 133
134#define CLOCK_CONTROL_40MHZ 0x00000001
135#define CLOCK_CONTROL_50MHZ 0x00000002
136#define CLOCK_CONTROL_60MHZ 0x00000008
137#define CLOCK_CONTROL_62_5MHZ 0x0000000c
138#define CLOCK_CONTROL_OFF 0x00000000
139
122enum { 140enum {
123 CMD_READY = 0x01, 141 CMD_READY = 0x01,
124 FIFO_READY = 0x02, 142 FIFO_READY = 0x02,
125 REG_DATA = 0x04, 143 REG_DATA = 0x04,
126 AUTO_GET_INT = 0x08 144 DMA_DATA = 0x08
127}; 145};
128 146
129static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, 147static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host,
@@ -273,7 +291,7 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host)
273{ 291{
274 unsigned int length; 292 unsigned int length;
275 unsigned int off; 293 unsigned int off;
276 unsigned int t_size, p_off, p_cnt; 294 unsigned int t_size, p_cnt;
277 unsigned char *buf; 295 unsigned char *buf;
278 struct page *pg; 296 struct page *pg;
279 unsigned long flags = 0; 297 unsigned long flags = 0;
@@ -287,6 +305,8 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host)
287 } 305 }
288 306
289 while (length) { 307 while (length) {
308 unsigned int uninitialized_var(p_off);
309
290 if (host->req->long_data) { 310 if (host->req->long_data) {
291 pg = nth_page(sg_page(&host->req->sg), 311 pg = nth_page(sg_page(&host->req->sg),
292 off >> PAGE_SHIFT); 312 off >> PAGE_SHIFT);
@@ -364,28 +384,27 @@ static int jmb38x_ms_issue_cmd(struct memstick_host *msh)
364 cmd |= TPC_DIR; 384 cmd |= TPC_DIR;
365 if (host->req->need_card_int) 385 if (host->req->need_card_int)
366 cmd |= TPC_WAIT_INT; 386 cmd |= TPC_WAIT_INT;
367 if (host->req->get_int_reg)
368 cmd |= TPC_GET_INT;
369 387
370 data = host->req->data; 388 data = host->req->data;
371 389
372 host->use_dma = !no_dma; 390 if (!no_dma)
391 host->cmd_flags |= DMA_DATA;
373 392
374 if (host->req->long_data) { 393 if (host->req->long_data) {
375 data_len = host->req->sg.length; 394 data_len = host->req->sg.length;
376 } else { 395 } else {
377 data_len = host->req->data_len; 396 data_len = host->req->data_len;
378 host->use_dma = 0; 397 host->cmd_flags &= ~DMA_DATA;
379 } 398 }
380 399
381 if (data_len <= 8) { 400 if (data_len <= 8) {
382 cmd &= ~(TPC_DATA_SEL | 0xf); 401 cmd &= ~(TPC_DATA_SEL | 0xf);
383 host->cmd_flags |= REG_DATA; 402 host->cmd_flags |= REG_DATA;
384 cmd |= data_len & 0xf; 403 cmd |= data_len & 0xf;
385 host->use_dma = 0; 404 host->cmd_flags &= ~DMA_DATA;
386 } 405 }
387 406
388 if (host->use_dma) { 407 if (host->cmd_flags & DMA_DATA) {
389 if (1 != pci_map_sg(host->chip->pdev, &host->req->sg, 1, 408 if (1 != pci_map_sg(host->chip->pdev, &host->req->sg, 1,
390 host->req->data_dir == READ 409 host->req->data_dir == READ
391 ? PCI_DMA_FROMDEVICE 410 ? PCI_DMA_FROMDEVICE
@@ -448,13 +467,12 @@ static void jmb38x_ms_complete_cmd(struct memstick_host *msh, int last)
448 readl(host->addr + INT_STATUS)); 467 readl(host->addr + INT_STATUS));
449 dev_dbg(msh->cdev.dev, "c hstatus %08x\n", readl(host->addr + STATUS)); 468 dev_dbg(msh->cdev.dev, "c hstatus %08x\n", readl(host->addr + STATUS));
450 469
451 if (host->req->get_int_reg) { 470 host->req->int_reg = readl(host->addr + STATUS) & 0xff;
452 t_val = readl(host->addr + TPC_P0); 471
453 host->req->int_reg = (t_val & 0xff); 472 writel(0, host->addr + BLOCK);
454 } 473 writel(0, host->addr + DMA_CONTROL);
455 474
456 if (host->use_dma) { 475 if (host->cmd_flags & DMA_DATA) {
457 writel(0, host->addr + DMA_CONTROL);
458 pci_unmap_sg(host->chip->pdev, &host->req->sg, 1, 476 pci_unmap_sg(host->chip->pdev, &host->req->sg, 1,
459 host->req->data_dir == READ 477 host->req->data_dir == READ
460 ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); 478 ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE);
@@ -506,7 +524,7 @@ static irqreturn_t jmb38x_ms_isr(int irq, void *dev_id)
506 else 524 else
507 host->req->error = -ETIME; 525 host->req->error = -ETIME;
508 } else { 526 } else {
509 if (host->use_dma) { 527 if (host->cmd_flags & DMA_DATA) {
510 if (irq_status & INT_STATUS_EOTRAN) 528 if (irq_status & INT_STATUS_EOTRAN)
511 host->cmd_flags |= FIFO_READY; 529 host->cmd_flags |= FIFO_READY;
512 } else { 530 } else {
@@ -595,19 +613,18 @@ static void jmb38x_ms_reset(struct jmb38x_ms_host *host)
595{ 613{
596 unsigned int host_ctl = readl(host->addr + HOST_CONTROL); 614 unsigned int host_ctl = readl(host->addr + HOST_CONTROL);
597 615
598 writel(host_ctl | HOST_CONTROL_RESET_REQ | HOST_CONTROL_RESET, 616 writel(HOST_CONTROL_RESET_REQ, host->addr + HOST_CONTROL);
599 host->addr + HOST_CONTROL);
600 617
601 while (HOST_CONTROL_RESET_REQ 618 while (HOST_CONTROL_RESET_REQ
602 & (host_ctl = readl(host->addr + HOST_CONTROL))) { 619 & (host_ctl = readl(host->addr + HOST_CONTROL))) {
603 ndelay(100); 620 ndelay(20);
604 dev_dbg(&host->chip->pdev->dev, "reset\n"); 621 dev_dbg(&host->chip->pdev->dev, "reset %08x\n", host_ctl);
605 } 622 }
606 623
607 writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE); 624 writel(HOST_CONTROL_RESET, host->addr + HOST_CONTROL);
625 mmiowb();
608 writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE); 626 writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE);
609 627 writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE);
610 dev_dbg(&host->chip->pdev->dev, "reset\n");
611} 628}
612 629
613static void jmb38x_ms_set_param(struct memstick_host *msh, 630static void jmb38x_ms_set_param(struct memstick_host *msh,
@@ -615,10 +632,8 @@ static void jmb38x_ms_set_param(struct memstick_host *msh,
615 int value) 632 int value)
616{ 633{
617 struct jmb38x_ms_host *host = memstick_priv(msh); 634 struct jmb38x_ms_host *host = memstick_priv(msh);
618 unsigned int host_ctl; 635 unsigned int host_ctl = readl(host->addr + HOST_CONTROL);
619 unsigned long flags; 636 unsigned int clock_ctl = CLOCK_CONTROL_40MHZ, clock_delay = 0;
620
621 spin_lock_irqsave(&host->lock, flags);
622 637
623 switch (param) { 638 switch (param) {
624 case MEMSTICK_POWER: 639 case MEMSTICK_POWER:
@@ -626,60 +641,57 @@ static void jmb38x_ms_set_param(struct memstick_host *msh,
626 jmb38x_ms_reset(host); 641 jmb38x_ms_reset(host);
627 642
628 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 643 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1
629 : PAD_PU_PD_ON_MS_SOCK0, 644 : PAD_PU_PD_ON_MS_SOCK0,
630 host->addr + PAD_PU_PD); 645 host->addr + PAD_PU_PD);
631 646
632 writel(PAD_OUTPUT_ENABLE_MS, 647 writel(PAD_OUTPUT_ENABLE_MS,
633 host->addr + PAD_OUTPUT_ENABLE); 648 host->addr + PAD_OUTPUT_ENABLE);
634 649
635 host_ctl = readl(host->addr + HOST_CONTROL); 650 host_ctl = 7;
636 host_ctl |= 7; 651 host_ctl |= HOST_CONTROL_POWER_EN
637 writel(host_ctl | (HOST_CONTROL_POWER_EN 652 | HOST_CONTROL_CLOCK_EN;
638 | HOST_CONTROL_CLOCK_EN), 653 writel(host_ctl, host->addr + HOST_CONTROL);
639 host->addr + HOST_CONTROL);
640 654
641 dev_dbg(&host->chip->pdev->dev, "power on\n"); 655 dev_dbg(&host->chip->pdev->dev, "power on\n");
642 } else if (value == MEMSTICK_POWER_OFF) { 656 } else if (value == MEMSTICK_POWER_OFF) {
643 writel(readl(host->addr + HOST_CONTROL) 657 host_ctl &= ~(HOST_CONTROL_POWER_EN
644 & ~(HOST_CONTROL_POWER_EN 658 | HOST_CONTROL_CLOCK_EN);
645 | HOST_CONTROL_CLOCK_EN), 659 writel(host_ctl, host->addr + HOST_CONTROL);
646 host->addr + HOST_CONTROL);
647 writel(0, host->addr + PAD_OUTPUT_ENABLE); 660 writel(0, host->addr + PAD_OUTPUT_ENABLE);
648 writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD); 661 writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD);
649 dev_dbg(&host->chip->pdev->dev, "power off\n"); 662 dev_dbg(&host->chip->pdev->dev, "power off\n");
650 } 663 }
651 break; 664 break;
652 case MEMSTICK_INTERFACE: 665 case MEMSTICK_INTERFACE:
653 /* jmb38x_ms_reset(host); */
654
655 host_ctl = readl(host->addr + HOST_CONTROL);
656 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); 666 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT);
657 /* host_ctl |= 7; */
658 667
659 if (value == MEMSTICK_SERIAL) { 668 if (value == MEMSTICK_SERIAL) {
660 host_ctl &= ~HOST_CONTROL_FAST_CLK; 669 host_ctl &= ~HOST_CONTROL_FAST_CLK;
661 host_ctl |= HOST_CONTROL_IF_SERIAL 670 host_ctl |= HOST_CONTROL_IF_SERIAL
662 << HOST_CONTROL_IF_SHIFT; 671 << HOST_CONTROL_IF_SHIFT;
663 host_ctl |= HOST_CONTROL_REI; 672 host_ctl |= HOST_CONTROL_REI;
664 writel(0, host->addr + CLOCK_DELAY); 673 clock_ctl = CLOCK_CONTROL_40MHZ;
674 clock_delay = 0;
665 } else if (value == MEMSTICK_PAR4) { 675 } else if (value == MEMSTICK_PAR4) {
666 host_ctl |= HOST_CONTROL_FAST_CLK; 676 host_ctl |= HOST_CONTROL_FAST_CLK;
667 host_ctl |= HOST_CONTROL_IF_PAR4 677 host_ctl |= HOST_CONTROL_IF_PAR4
668 << HOST_CONTROL_IF_SHIFT; 678 << HOST_CONTROL_IF_SHIFT;
669 host_ctl &= ~HOST_CONTROL_REI; 679 host_ctl &= ~HOST_CONTROL_REI;
670 writel(4, host->addr + CLOCK_DELAY); 680 clock_ctl = CLOCK_CONTROL_40MHZ;
681 clock_delay = 4;
671 } else if (value == MEMSTICK_PAR8) { 682 } else if (value == MEMSTICK_PAR8) {
672 host_ctl |= HOST_CONTROL_FAST_CLK; 683 host_ctl |= HOST_CONTROL_FAST_CLK;
673 host_ctl |= HOST_CONTROL_IF_PAR8 684 host_ctl |= HOST_CONTROL_IF_PAR8
674 << HOST_CONTROL_IF_SHIFT; 685 << HOST_CONTROL_IF_SHIFT;
675 host_ctl &= ~HOST_CONTROL_REI; 686 host_ctl &= ~HOST_CONTROL_REI;
676 writel(4, host->addr + CLOCK_DELAY); 687 clock_ctl = CLOCK_CONTROL_60MHZ;
688 clock_delay = 0;
677 } 689 }
678 writel(host_ctl, host->addr + HOST_CONTROL); 690 writel(host_ctl, host->addr + HOST_CONTROL);
691 writel(clock_ctl, host->addr + CLOCK_CONTROL);
692 writel(clock_delay, host->addr + CLOCK_DELAY);
679 break; 693 break;
680 }; 694 };
681
682 spin_unlock_irqrestore(&host->lock, flags);
683} 695}
684 696
685#ifdef CONFIG_PM 697#ifdef CONFIG_PM
@@ -772,13 +784,10 @@ static struct memstick_host *jmb38x_ms_alloc_host(struct jmb38x_ms *jm, int cnt)
772 snprintf(host->host_id, DEVICE_ID_SIZE, DRIVER_NAME ":slot%d", 784 snprintf(host->host_id, DEVICE_ID_SIZE, DRIVER_NAME ":slot%d",
773 host->id); 785 host->id);
774 host->irq = jm->pdev->irq; 786 host->irq = jm->pdev->irq;
775 host->timeout_jiffies = msecs_to_jiffies(4000); 787 host->timeout_jiffies = msecs_to_jiffies(1000);
776 msh->request = jmb38x_ms_request; 788 msh->request = jmb38x_ms_request;
777 msh->set_param = jmb38x_ms_set_param; 789 msh->set_param = jmb38x_ms_set_param;
778 /* 790
779 msh->caps = MEMSTICK_CAP_AUTO_GET_INT | MEMSTICK_CAP_PAR4
780 | MEMSTICK_CAP_PAR8;
781 */
782 msh->caps = MEMSTICK_CAP_PAR4 | MEMSTICK_CAP_PAR8; 791 msh->caps = MEMSTICK_CAP_PAR4 | MEMSTICK_CAP_PAR8;
783 792
784 setup_timer(&host->timer, jmb38x_ms_abort, (unsigned long)msh); 793 setup_timer(&host->timer, jmb38x_ms_abort, (unsigned long)msh);
diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c
index 2b5bf52a8302..8577de4ebb0e 100644
--- a/drivers/memstick/host/tifm_ms.c
+++ b/drivers/memstick/host/tifm_ms.c
@@ -182,7 +182,7 @@ static unsigned int tifm_ms_transfer_data(struct tifm_ms *host)
182 struct tifm_dev *sock = host->dev; 182 struct tifm_dev *sock = host->dev;
183 unsigned int length; 183 unsigned int length;
184 unsigned int off; 184 unsigned int off;
185 unsigned int t_size, p_off, p_cnt; 185 unsigned int t_size, p_cnt;
186 unsigned char *buf; 186 unsigned char *buf;
187 struct page *pg; 187 struct page *pg;
188 unsigned long flags = 0; 188 unsigned long flags = 0;
@@ -198,6 +198,8 @@ static unsigned int tifm_ms_transfer_data(struct tifm_ms *host)
198 host->block_pos); 198 host->block_pos);
199 199
200 while (length) { 200 while (length) {
201 unsigned int uninitialized_var(p_off);
202
201 if (host->req->long_data) { 203 if (host->req->long_data) {
202 pg = nth_page(sg_page(&host->req->sg), 204 pg = nth_page(sg_page(&host->req->sg),
203 off >> PAGE_SHIFT); 205 off >> PAGE_SHIFT);
@@ -340,11 +342,20 @@ static void tifm_ms_complete_cmd(struct tifm_ms *host)
340 342
341 del_timer(&host->timer); 343 del_timer(&host->timer);
342 344
343 if (host->use_dma) 345 host->req->int_reg = readl(sock->addr + SOCK_MS_STATUS) & 0xff;
346 host->req->int_reg = (host->req->int_reg & 1)
347 | ((host->req->int_reg << 4) & 0xe0);
348
349 writel(TIFM_FIFO_INT_SETALL,
350 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR);
351 writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL);
352
353 if (host->use_dma) {
344 tifm_unmap_sg(sock, &host->req->sg, 1, 354 tifm_unmap_sg(sock, &host->req->sg, 1,
345 host->req->data_dir == READ 355 host->req->data_dir == READ
346 ? PCI_DMA_FROMDEVICE 356 ? PCI_DMA_FROMDEVICE
347 : PCI_DMA_TODEVICE); 357 : PCI_DMA_TODEVICE);
358 }
348 359
349 writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), 360 writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL),
350 sock->addr + SOCK_CONTROL); 361 sock->addr + SOCK_CONTROL);
@@ -424,12 +435,6 @@ static void tifm_ms_card_event(struct tifm_dev *sock)
424 else if (host_status & TIFM_MS_STAT_CRC) 435 else if (host_status & TIFM_MS_STAT_CRC)
425 host->req->error = -EILSEQ; 436 host->req->error = -EILSEQ;
426 437
427 if (host->req->error) {
428 writel(TIFM_FIFO_INT_SETALL,
429 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR);
430 writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL);
431 }
432
433 if (host_status & TIFM_MS_STAT_RDY) 438 if (host_status & TIFM_MS_STAT_RDY)
434 host->cmd_flags |= CMD_READY; 439 host->cmd_flags |= CMD_READY;
435 440
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 6b6df8679585..c6be6eba7dc3 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -1430,6 +1430,98 @@ mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name)
1430 sprintf(prod_name, "%s", product_str); 1430 sprintf(prod_name, "%s", product_str);
1431} 1431}
1432 1432
1433/**
1434 * mpt_mapresources - map in memory mapped io
1435 * @ioc: Pointer to pointer to IOC adapter
1436 *
1437 **/
1438static int
1439mpt_mapresources(MPT_ADAPTER *ioc)
1440{
1441 u8 __iomem *mem;
1442 int ii;
1443 unsigned long mem_phys;
1444 unsigned long port;
1445 u32 msize;
1446 u32 psize;
1447 u8 revision;
1448 int r = -ENODEV;
1449 struct pci_dev *pdev;
1450
1451 pdev = ioc->pcidev;
1452 ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM);
1453 if (pci_enable_device_mem(pdev)) {
1454 printk(MYIOC_s_ERR_FMT "pci_enable_device_mem() "
1455 "failed\n", ioc->name);
1456 return r;
1457 }
1458 if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) {
1459 printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with "
1460 "MEM failed\n", ioc->name);
1461 return r;
1462 }
1463
1464 pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision);
1465
1466 if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)
1467 && !pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) {
1468 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
1469 ": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
1470 ioc->name));
1471 } else if (!pci_set_dma_mask(pdev, DMA_32BIT_MASK)
1472 && !pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) {
1473 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
1474 ": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
1475 ioc->name));
1476 } else {
1477 printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n",
1478 ioc->name, pci_name(pdev));
1479 pci_release_selected_regions(pdev, ioc->bars);
1480 return r;
1481 }
1482
1483 mem_phys = msize = 0;
1484 port = psize = 0;
1485 for (ii = 0; ii < DEVICE_COUNT_RESOURCE; ii++) {
1486 if (pci_resource_flags(pdev, ii) & PCI_BASE_ADDRESS_SPACE_IO) {
1487 if (psize)
1488 continue;
1489 /* Get I/O space! */
1490 port = pci_resource_start(pdev, ii);
1491 psize = pci_resource_len(pdev, ii);
1492 } else {
1493 if (msize)
1494 continue;
1495 /* Get memmap */
1496 mem_phys = pci_resource_start(pdev, ii);
1497 msize = pci_resource_len(pdev, ii);
1498 }
1499 }
1500 ioc->mem_size = msize;
1501
1502 mem = NULL;
1503 /* Get logical ptr for PciMem0 space */
1504 /*mem = ioremap(mem_phys, msize);*/
1505 mem = ioremap(mem_phys, msize);
1506 if (mem == NULL) {
1507 printk(MYIOC_s_ERR_FMT ": ERROR - Unable to map adapter"
1508 " memory!\n", ioc->name);
1509 return -EINVAL;
1510 }
1511 ioc->memmap = mem;
1512 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %lx\n",
1513 ioc->name, mem, mem_phys));
1514
1515 ioc->mem_phys = mem_phys;
1516 ioc->chip = (SYSIF_REGS __iomem *)mem;
1517
1518 /* Save Port IO values in case we need to do downloadboot */
1519 ioc->pio_mem_phys = port;
1520 ioc->pio_chip = (SYSIF_REGS __iomem *)port;
1521
1522 return 0;
1523}
1524
1433/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 1525/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
1434/** 1526/**
1435 * mpt_attach - Install a PCI intelligent MPT adapter. 1527 * mpt_attach - Install a PCI intelligent MPT adapter.
@@ -1452,13 +1544,6 @@ int
1452mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) 1544mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1453{ 1545{
1454 MPT_ADAPTER *ioc; 1546 MPT_ADAPTER *ioc;
1455 u8 __iomem *mem;
1456 u8 __iomem *pmem;
1457 unsigned long mem_phys;
1458 unsigned long port;
1459 u32 msize;
1460 u32 psize;
1461 int ii;
1462 u8 cb_idx; 1547 u8 cb_idx;
1463 int r = -ENODEV; 1548 int r = -ENODEV;
1464 u8 revision; 1549 u8 revision;
@@ -1468,52 +1553,32 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1468 struct proc_dir_entry *dent, *ent; 1553 struct proc_dir_entry *dent, *ent;
1469#endif 1554#endif
1470 1555
1471 if (mpt_debug_level)
1472 printk(KERN_INFO MYNAM ": mpt_debug_level=%xh\n", mpt_debug_level);
1473
1474 ioc = kzalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC); 1556 ioc = kzalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC);
1475 if (ioc == NULL) { 1557 if (ioc == NULL) {
1476 printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n"); 1558 printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n");
1477 return -ENOMEM; 1559 return -ENOMEM;
1478 } 1560 }
1479 ioc->debug_level = mpt_debug_level; 1561
1480 ioc->id = mpt_ids++; 1562 ioc->id = mpt_ids++;
1481 sprintf(ioc->name, "ioc%d", ioc->id); 1563 sprintf(ioc->name, "ioc%d", ioc->id);
1482 1564
1483 ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM); 1565 /*
1484 if (pci_enable_device_mem(pdev)) { 1566 * set initial debug level
1485 printk(MYIOC_s_ERR_FMT "pci_enable_device_mem() " 1567 * (refer to mptdebug.h)
1486 "failed\n", ioc->name); 1568 *
1487 kfree(ioc); 1569 */
1488 return r; 1570 ioc->debug_level = mpt_debug_level;
1489 } 1571 if (mpt_debug_level)
1490 if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) { 1572 printk(KERN_INFO "mpt_debug_level=%xh\n", mpt_debug_level);
1491 printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with "
1492 "MEM failed\n", ioc->name);
1493 kfree(ioc);
1494 return r;
1495 }
1496 1573
1497 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": mpt_adapter_install\n", ioc->name)); 1574 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": mpt_adapter_install\n", ioc->name));
1498 1575
1499 if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)) { 1576 ioc->pcidev = pdev;
1500 dprintk(ioc, printk(MYIOC_s_INFO_FMT 1577 if (mpt_mapresources(ioc)) {
1501 ": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n", ioc->name));
1502 } else if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
1503 printk(MYIOC_s_WARN_FMT ": 32 BIT PCI BUS DMA ADDRESSING NOT SUPPORTED\n",
1504 ioc->name);
1505 kfree(ioc); 1578 kfree(ioc);
1506 return r; 1579 return r;
1507 } 1580 }
1508 1581
1509 if (!pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) {
1510 dprintk(ioc, printk(MYIOC_s_INFO_FMT
1511 ": Using 64 bit consistent mask\n", ioc->name));
1512 } else {
1513 dprintk(ioc, printk(MYIOC_s_INFO_FMT
1514 ": Not using 64 bit consistent mask\n", ioc->name));
1515 }
1516
1517 ioc->alloc_total = sizeof(MPT_ADAPTER); 1582 ioc->alloc_total = sizeof(MPT_ADAPTER);
1518 ioc->req_sz = MPT_DEFAULT_FRAME_SIZE; /* avoid div by zero! */ 1583 ioc->req_sz = MPT_DEFAULT_FRAME_SIZE; /* avoid div by zero! */
1519 ioc->reply_sz = MPT_REPLY_FRAME_SIZE; 1584 ioc->reply_sz = MPT_REPLY_FRAME_SIZE;
@@ -1551,48 +1616,9 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1551 /* Find lookup slot. */ 1616 /* Find lookup slot. */
1552 INIT_LIST_HEAD(&ioc->list); 1617 INIT_LIST_HEAD(&ioc->list);
1553 1618
1554 mem_phys = msize = 0;
1555 port = psize = 0;
1556 for (ii=0; ii < DEVICE_COUNT_RESOURCE; ii++) {
1557 if (pci_resource_flags(pdev, ii) & PCI_BASE_ADDRESS_SPACE_IO) {
1558 if (psize)
1559 continue;
1560 /* Get I/O space! */
1561 port = pci_resource_start(pdev, ii);
1562 psize = pci_resource_len(pdev,ii);
1563 } else {
1564 if (msize)
1565 continue;
1566 /* Get memmap */
1567 mem_phys = pci_resource_start(pdev, ii);
1568 msize = pci_resource_len(pdev,ii);
1569 }
1570 }
1571 ioc->mem_size = msize;
1572
1573 mem = NULL;
1574 /* Get logical ptr for PciMem0 space */
1575 /*mem = ioremap(mem_phys, msize);*/
1576 mem = ioremap(mem_phys, msize);
1577 if (mem == NULL) {
1578 printk(MYIOC_s_ERR_FMT "Unable to map adapter memory!\n", ioc->name);
1579 kfree(ioc);
1580 return -EINVAL;
1581 }
1582 ioc->memmap = mem;
1583 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %lx\n", ioc->name, mem, mem_phys));
1584
1585 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n", 1619 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n",
1586 ioc->name, &ioc->facts, &ioc->pfacts[0])); 1620 ioc->name, &ioc->facts, &ioc->pfacts[0]));
1587 1621
1588 ioc->mem_phys = mem_phys;
1589 ioc->chip = (SYSIF_REGS __iomem *)mem;
1590
1591 /* Save Port IO values in case we need to do downloadboot */
1592 ioc->pio_mem_phys = port;
1593 pmem = (u8 __iomem *)port;
1594 ioc->pio_chip = (SYSIF_REGS __iomem *)pmem;
1595
1596 pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision); 1622 pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision);
1597 mpt_get_product_name(pdev->vendor, pdev->device, revision, ioc->prod_name); 1623 mpt_get_product_name(pdev->vendor, pdev->device, revision, ioc->prod_name);
1598 1624
@@ -1688,7 +1714,9 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1688 list_del(&ioc->list); 1714 list_del(&ioc->list);
1689 if (ioc->alt_ioc) 1715 if (ioc->alt_ioc)
1690 ioc->alt_ioc->alt_ioc = NULL; 1716 ioc->alt_ioc->alt_ioc = NULL;
1691 iounmap(mem); 1717 iounmap(ioc->memmap);
1718 if (r != -5)
1719 pci_release_selected_regions(pdev, ioc->bars);
1692 kfree(ioc); 1720 kfree(ioc);
1693 pci_set_drvdata(pdev, NULL); 1721 pci_set_drvdata(pdev, NULL);
1694 return r; 1722 return r;
@@ -1784,13 +1812,10 @@ mpt_suspend(struct pci_dev *pdev, pm_message_t state)
1784 u32 device_state; 1812 u32 device_state;
1785 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); 1813 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1786 1814
1787 device_state=pci_choose_state(pdev, state); 1815 device_state = pci_choose_state(pdev, state);
1788 1816 printk(MYIOC_s_INFO_FMT "pci-suspend: pdev=0x%p, slot=%s, Entering "
1789 printk(MYIOC_s_INFO_FMT 1817 "operating state [D%d]\n", ioc->name, pdev, pci_name(pdev),
1790 "pci-suspend: pdev=0x%p, slot=%s, Entering operating state [D%d]\n", 1818 device_state);
1791 ioc->name, pdev, pci_name(pdev), device_state);
1792
1793 pci_save_state(pdev);
1794 1819
1795 /* put ioc into READY_STATE */ 1820 /* put ioc into READY_STATE */
1796 if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) { 1821 if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) {
@@ -1805,10 +1830,14 @@ mpt_suspend(struct pci_dev *pdev, pm_message_t state)
1805 /* Clear any lingering interrupt */ 1830 /* Clear any lingering interrupt */
1806 CHIPREG_WRITE32(&ioc->chip->IntStatus, 0); 1831 CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
1807 1832
1833 free_irq(ioc->pci_irq, ioc);
1834 if (mpt_msi_enable)
1835 pci_disable_msi(ioc->pcidev);
1836 ioc->pci_irq = -1;
1837 pci_save_state(pdev);
1808 pci_disable_device(pdev); 1838 pci_disable_device(pdev);
1809 pci_release_selected_regions(pdev, ioc->bars); 1839 pci_release_selected_regions(pdev, ioc->bars);
1810 pci_set_power_state(pdev, device_state); 1840 pci_set_power_state(pdev, device_state);
1811
1812 return 0; 1841 return 0;
1813} 1842}
1814 1843
@@ -1823,48 +1852,54 @@ mpt_resume(struct pci_dev *pdev)
1823 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); 1852 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1824 u32 device_state = pdev->current_state; 1853 u32 device_state = pdev->current_state;
1825 int recovery_state; 1854 int recovery_state;
1855 int err;
1826 1856
1827 printk(MYIOC_s_INFO_FMT 1857 printk(MYIOC_s_INFO_FMT "pci-resume: pdev=0x%p, slot=%s, Previous "
1828 "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n", 1858 "operating state [D%d]\n", ioc->name, pdev, pci_name(pdev),
1829 ioc->name, pdev, pci_name(pdev), device_state); 1859 device_state);
1830 1860
1831 pci_set_power_state(pdev, 0); 1861 pci_set_power_state(pdev, PCI_D0);
1862 pci_enable_wake(pdev, PCI_D0, 0);
1832 pci_restore_state(pdev); 1863 pci_restore_state(pdev);
1833 if (ioc->facts.Flags & MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT) { 1864 ioc->pcidev = pdev;
1834 ioc->bars = pci_select_bars(ioc->pcidev, IORESOURCE_MEM | 1865 err = mpt_mapresources(ioc);
1835 IORESOURCE_IO); 1866 if (err)
1836 if (pci_enable_device(pdev)) 1867 return err;
1837 return 0;
1838 } else {
1839 ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM);
1840 if (pci_enable_device_mem(pdev))
1841 return 0;
1842 }
1843 if (pci_request_selected_regions(pdev, ioc->bars, "mpt"))
1844 return 0;
1845 1868
1846 /* enable interrupts */ 1869 printk(MYIOC_s_INFO_FMT "pci-resume: ioc-state=0x%x,doorbell=0x%x\n",
1847 CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); 1870 ioc->name, (mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT),
1848 ioc->active = 1; 1871 CHIPREG_READ32(&ioc->chip->Doorbell));
1849 1872
1850 printk(MYIOC_s_INFO_FMT 1873 /*
1851 "pci-resume: ioc-state=0x%x,doorbell=0x%x\n", 1874 * Errata workaround for SAS pci express:
1852 ioc->name, 1875 * Upon returning to the D0 state, the contents of the doorbell will be
1853 (mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT), 1876 * stale data, and this will incorrectly signal to the host driver that
1854 CHIPREG_READ32(&ioc->chip->Doorbell)); 1877 * the firmware is ready to process mpt commands. The workaround is
1878 * to issue a diagnostic reset.
1879 */
1880 if (ioc->bus_type == SAS && (pdev->device ==
1881 MPI_MANUFACTPAGE_DEVID_SAS1068E || pdev->device ==
1882 MPI_MANUFACTPAGE_DEVID_SAS1064E)) {
1883 if (KickStart(ioc, 1, CAN_SLEEP) < 0) {
1884 printk(MYIOC_s_WARN_FMT "pci-resume: Cannot recover\n",
1885 ioc->name);
1886 goto out;
1887 }
1888 }
1855 1889
1856 /* bring ioc to operational state */ 1890 /* bring ioc to operational state */
1857 if ((recovery_state = mpt_do_ioc_recovery(ioc, 1891 printk(MYIOC_s_INFO_FMT "Sending mpt_do_ioc_recovery\n", ioc->name);
1858 MPT_HOSTEVENT_IOC_RECOVER, CAN_SLEEP)) != 0) { 1892 recovery_state = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP,
1859 printk(MYIOC_s_INFO_FMT 1893 CAN_SLEEP);
1860 "pci-resume: Cannot recover, error:[%x]\n", 1894 if (recovery_state != 0)
1861 ioc->name, recovery_state); 1895 printk(MYIOC_s_WARN_FMT "pci-resume: Cannot recover, "
1862 } else { 1896 "error:[%x]\n", ioc->name, recovery_state);
1897 else
1863 printk(MYIOC_s_INFO_FMT 1898 printk(MYIOC_s_INFO_FMT
1864 "pci-resume: success\n", ioc->name); 1899 "pci-resume: success\n", ioc->name);
1865 } 1900 out:
1866
1867 return 0; 1901 return 0;
1902
1868} 1903}
1869#endif 1904#endif
1870 1905
@@ -1903,6 +1938,7 @@ mpt_signal_reset(u8 index, MPT_ADAPTER *ioc, int reset_phase)
1903 * -3 if READY but PrimeIOCFifos Failed 1938 * -3 if READY but PrimeIOCFifos Failed
1904 * -4 if READY but IOCInit Failed 1939 * -4 if READY but IOCInit Failed
1905 * -5 if failed to enable_device and/or request_selected_regions 1940 * -5 if failed to enable_device and/or request_selected_regions
1941 * -6 if failed to upload firmware
1906 */ 1942 */
1907static int 1943static int
1908mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) 1944mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag)
@@ -2097,7 +2133,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag)
2097 } else { 2133 } else {
2098 printk(MYIOC_s_WARN_FMT 2134 printk(MYIOC_s_WARN_FMT
2099 "firmware upload failure!\n", ioc->name); 2135 "firmware upload failure!\n", ioc->name);
2100 ret = -5; 2136 ret = -6;
2101 } 2137 }
2102 } 2138 }
2103 } 2139 }
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 0c252f60c4c1..c207bda6723b 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -1170,6 +1170,10 @@ mptscsih_shutdown(struct pci_dev *pdev)
1170int 1170int
1171mptscsih_suspend(struct pci_dev *pdev, pm_message_t state) 1171mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
1172{ 1172{
1173 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1174
1175 scsi_block_requests(ioc->sh);
1176 flush_scheduled_work();
1173 mptscsih_shutdown(pdev); 1177 mptscsih_shutdown(pdev);
1174 return mpt_suspend(pdev,state); 1178 return mpt_suspend(pdev,state);
1175} 1179}
@@ -1183,7 +1187,12 @@ mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
1183int 1187int
1184mptscsih_resume(struct pci_dev *pdev) 1188mptscsih_resume(struct pci_dev *pdev)
1185{ 1189{
1186 return mpt_resume(pdev); 1190 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1191 int rc;
1192
1193 rc = mpt_resume(pdev);
1194 scsi_unblock_requests(ioc->sh);
1195 return rc;
1187} 1196}
1188 1197
1189#endif 1198#endif
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 63fb1ff3ad10..f6f2d960cadb 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -28,14 +28,14 @@
28static inline void asic3_write_register(struct asic3 *asic, 28static inline void asic3_write_register(struct asic3 *asic,
29 unsigned int reg, u32 value) 29 unsigned int reg, u32 value)
30{ 30{
31 iowrite16(value, (unsigned long)asic->mapping + 31 iowrite16(value, asic->mapping +
32 (reg >> asic->bus_shift)); 32 (reg >> asic->bus_shift));
33} 33}
34 34
35static inline u32 asic3_read_register(struct asic3 *asic, 35static inline u32 asic3_read_register(struct asic3 *asic,
36 unsigned int reg) 36 unsigned int reg)
37{ 37{
38 return ioread16((unsigned long)asic->mapping + 38 return ioread16(asic->mapping +
39 (reg >> asic->bus_shift)); 39 (reg >> asic->bus_shift));
40} 40}
41 41
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 982e27b86d10..962817e49fba 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -108,6 +108,7 @@ config ACER_WMI
108 depends on ACPI 108 depends on ACPI
109 depends on LEDS_CLASS 109 depends on LEDS_CLASS
110 depends on BACKLIGHT_CLASS_DEVICE 110 depends on BACKLIGHT_CLASS_DEVICE
111 depends on SERIO_I8042
111 select ACPI_WMI 112 select ACPI_WMI
112 ---help--- 113 ---help---
113 This is a driver for newer Acer (and Wistron) laptops. It adds 114 This is a driver for newer Acer (and Wistron) laptops. It adds
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index 74d12b4a3abd..dd13a3749927 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -219,6 +219,15 @@ static struct dmi_system_id acer_quirks[] = {
219 }, 219 },
220 { 220 {
221 .callback = dmi_matched, 221 .callback = dmi_matched,
222 .ident = "Acer Aspire 3610",
223 .matches = {
224 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
225 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3610"),
226 },
227 .driver_data = &quirk_acer_travelmate_2490,
228 },
229 {
230 .callback = dmi_matched,
222 .ident = "Acer Aspire 5100", 231 .ident = "Acer Aspire 5100",
223 .matches = { 232 .matches = {
224 DMI_MATCH(DMI_SYS_VENDOR, "Acer"), 233 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
@@ -228,6 +237,15 @@ static struct dmi_system_id acer_quirks[] = {
228 }, 237 },
229 { 238 {
230 .callback = dmi_matched, 239 .callback = dmi_matched,
240 .ident = "Acer Aspire 5610",
241 .matches = {
242 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
243 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"),
244 },
245 .driver_data = &quirk_acer_travelmate_2490,
246 },
247 {
248 .callback = dmi_matched,
231 .ident = "Acer Aspire 5630", 249 .ident = "Acer Aspire 5630",
232 .matches = { 250 .matches = {
233 DMI_MATCH(DMI_SYS_VENDOR, "Acer"), 251 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
@@ -761,11 +779,11 @@ enum led_brightness value)
761} 779}
762 780
763static struct led_classdev mail_led = { 781static struct led_classdev mail_led = {
764 .name = "acer-mail:green", 782 .name = "acer-wmi::mail",
765 .brightness_set = mail_led_set, 783 .brightness_set = mail_led_set,
766}; 784};
767 785
768static int __init acer_led_init(struct device *dev) 786static int __devinit acer_led_init(struct device *dev)
769{ 787{
770 return led_classdev_register(dev, &mail_led); 788 return led_classdev_register(dev, &mail_led);
771} 789}
@@ -798,7 +816,7 @@ static struct backlight_ops acer_bl_ops = {
798 .update_status = update_bl_status, 816 .update_status = update_bl_status,
799}; 817};
800 818
801static int __init acer_backlight_init(struct device *dev) 819static int __devinit acer_backlight_init(struct device *dev)
802{ 820{
803 struct backlight_device *bd; 821 struct backlight_device *bd;
804 822
@@ -817,7 +835,7 @@ static int __init acer_backlight_init(struct device *dev)
817 return 0; 835 return 0;
818} 836}
819 837
820static void __exit acer_backlight_exit(void) 838static void acer_backlight_exit(void)
821{ 839{
822 backlight_device_unregister(acer_backlight_device); 840 backlight_device_unregister(acer_backlight_device);
823} 841}
@@ -1052,11 +1070,12 @@ static int __init acer_wmi_init(void)
1052 1070
1053 if (wmi_has_guid(WMID_GUID2) && interface) { 1071 if (wmi_has_guid(WMID_GUID2) && interface) {
1054 if (ACPI_FAILURE(WMID_set_capabilities())) { 1072 if (ACPI_FAILURE(WMID_set_capabilities())) {
1055 printk(ACER_ERR "Unable to detect available devices\n"); 1073 printk(ACER_ERR "Unable to detect available WMID "
1074 "devices\n");
1056 return -ENODEV; 1075 return -ENODEV;
1057 } 1076 }
1058 } else if (!wmi_has_guid(WMID_GUID2) && interface) { 1077 } else if (!wmi_has_guid(WMID_GUID2) && interface) {
1059 printk(ACER_ERR "Unable to detect available devices\n"); 1078 printk(ACER_ERR "No WMID device detection method found\n");
1060 return -ENODEV; 1079 return -ENODEV;
1061 } 1080 }
1062 1081
@@ -1064,21 +1083,20 @@ static int __init acer_wmi_init(void)
1064 interface = &AMW0_interface; 1083 interface = &AMW0_interface;
1065 1084
1066 if (ACPI_FAILURE(AMW0_set_capabilities())) { 1085 if (ACPI_FAILURE(AMW0_set_capabilities())) {
1067 printk(ACER_ERR "Unable to detect available devices\n"); 1086 printk(ACER_ERR "Unable to detect available AMW0 "
1087 "devices\n");
1068 return -ENODEV; 1088 return -ENODEV;
1069 } 1089 }
1070 } 1090 }
1071 1091
1072 if (wmi_has_guid(AMW0_GUID1)) { 1092 if (wmi_has_guid(AMW0_GUID1))
1073 if (ACPI_FAILURE(AMW0_find_mailled())) 1093 AMW0_find_mailled();
1074 printk(ACER_ERR "Unable to detect mail LED\n");
1075 }
1076 1094
1077 find_quirks(); 1095 find_quirks();
1078 1096
1079 if (!interface) { 1097 if (!interface) {
1080 printk(ACER_ERR "No or unsupported WMI interface, unable to "); 1098 printk(ACER_ERR "No or unsupported WMI interface, unable to "
1081 printk(KERN_CONT "load.\n"); 1099 "load\n");
1082 return -ENODEV; 1100 return -ENODEV;
1083 } 1101 }
1084 1102
diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c
index 1cfd7f3f1294..e2e7c05a147b 100644
--- a/drivers/misc/fujitsu-laptop.c
+++ b/drivers/misc/fujitsu-laptop.c
@@ -231,7 +231,7 @@ static int acpi_fujitsu_remove(struct acpi_device *device, int type)
231 231
232 if (!device || !acpi_driver_data(device)) 232 if (!device || !acpi_driver_data(device))
233 return -EINVAL; 233 return -EINVAL;
234 fujitsu->acpi_handle = 0; 234 fujitsu->acpi_handle = NULL;
235 235
236 return 0; 236 return 0;
237} 237}
diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
index 4f9d4a9da983..b5f6add34b0b 100644
--- a/drivers/misc/ibmasm/module.c
+++ b/drivers/misc/ibmasm/module.c
@@ -106,7 +106,7 @@ static int __devinit ibmasm_init_one(struct pci_dev *pdev, const struct pci_devi
106 sp->irq = pdev->irq; 106 sp->irq = pdev->irq;
107 sp->base_address = ioremap(pci_resource_start(pdev, 0), 107 sp->base_address = ioremap(pci_resource_start(pdev, 0),
108 pci_resource_len(pdev, 0)); 108 pci_resource_len(pdev, 0));
109 if (sp->base_address == 0) { 109 if (!sp->base_address) {
110 dev_err(sp->dev, "Failed to ioremap pci memory\n"); 110 dev_err(sp->dev, "Failed to ioremap pci memory\n");
111 result = -ENODEV; 111 result = -ENODEV;
112 goto error_ioremap; 112 goto error_ioremap;
diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c
index c884730c5eaf..1bfe5d16963b 100644
--- a/drivers/misc/lkdtm.c
+++ b/drivers/misc/lkdtm.c
@@ -197,7 +197,7 @@ static int lkdtm_parse_commandline(void)
197{ 197{
198 int i; 198 int i;
199 199
200 if (cpoint_name == INVALID || cpoint_type == NONE || 200 if (cpoint_name == NULL || cpoint_type == NULL ||
201 cpoint_count < 1 || recur_count < 1) 201 cpoint_count < 1 || recur_count < 1)
202 return -EINVAL; 202 return -EINVAL;
203 203
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c
index 899e3f75f288..02ff3d19b1cc 100644
--- a/drivers/misc/sony-laptop.c
+++ b/drivers/misc/sony-laptop.c
@@ -315,7 +315,7 @@ static void sony_laptop_report_input_event(u8 event)
315 break; 315 break;
316 316
317 default: 317 default:
318 if (event > ARRAY_SIZE(sony_laptop_input_index)) { 318 if (event >= ARRAY_SIZE(sony_laptop_input_index)) {
319 dprintk("sony_laptop_report_input_event, event not known: %d\n", event); 319 dprintk("sony_laptop_report_input_event, event not known: %d\n", event);
320 break; 320 break;
321 } 321 }
diff --git a/drivers/mmc/core/Makefile b/drivers/mmc/core/Makefile
index 4985807257a8..19a1a254a0c5 100644
--- a/drivers/mmc/core/Makefile
+++ b/drivers/mmc/core/Makefile
@@ -7,7 +7,7 @@ ifeq ($(CONFIG_MMC_DEBUG),y)
7endif 7endif
8 8
9obj-$(CONFIG_MMC) += mmc_core.o 9obj-$(CONFIG_MMC) += mmc_core.o
10mmc_core-y := core.o sysfs.o bus.o host.o \ 10mmc_core-y := core.o bus.o host.o \
11 mmc.o mmc_ops.o sd.o sd_ops.o \ 11 mmc.o mmc_ops.o sd.o sd_ops.o \
12 sdio.o sdio_ops.o sdio_bus.o \ 12 sdio.o sdio_ops.o sdio_bus.o \
13 sdio_cis.o sdio_io.o sdio_irq.o 13 sdio_cis.o sdio_io.o sdio_irq.o
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index b0c22cad9423..fd95b18e988b 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -17,7 +17,6 @@
17#include <linux/mmc/card.h> 17#include <linux/mmc/card.h>
18#include <linux/mmc/host.h> 18#include <linux/mmc/host.h>
19 19
20#include "sysfs.h"
21#include "core.h" 20#include "core.h"
22#include "sdio_cis.h" 21#include "sdio_cis.h"
23#include "bus.h" 22#include "bus.h"
@@ -43,7 +42,7 @@ static ssize_t mmc_type_show(struct device *dev,
43} 42}
44 43
45static struct device_attribute mmc_dev_attrs[] = { 44static struct device_attribute mmc_dev_attrs[] = {
46 MMC_ATTR_RO(type), 45 __ATTR(type, S_IRUGO, mmc_type_show, NULL),
47 __ATTR_NULL, 46 __ATTR_NULL,
48}; 47};
49 48
@@ -189,7 +188,7 @@ static void mmc_release_card(struct device *dev)
189/* 188/*
190 * Allocate and initialise a new MMC card structure. 189 * Allocate and initialise a new MMC card structure.
191 */ 190 */
192struct mmc_card *mmc_alloc_card(struct mmc_host *host) 191struct mmc_card *mmc_alloc_card(struct mmc_host *host, struct device_type *type)
193{ 192{
194 struct mmc_card *card; 193 struct mmc_card *card;
195 194
@@ -204,6 +203,7 @@ struct mmc_card *mmc_alloc_card(struct mmc_host *host)
204 card->dev.parent = mmc_classdev(host); 203 card->dev.parent = mmc_classdev(host);
205 card->dev.bus = &mmc_bus_type; 204 card->dev.bus = &mmc_bus_type;
206 card->dev.release = mmc_release_card; 205 card->dev.release = mmc_release_card;
206 card->dev.type = type;
207 207
208 return card; 208 return card;
209} 209}
@@ -248,24 +248,10 @@ int mmc_add_card(struct mmc_card *card)
248 type, card->rca); 248 type, card->rca);
249 } 249 }
250 250
251 card->dev.uevent_suppress = 1;
252
253 ret = device_add(&card->dev); 251 ret = device_add(&card->dev);
254 if (ret) 252 if (ret)
255 return ret; 253 return ret;
256 254
257 if (card->host->bus_ops->sysfs_add) {
258 ret = card->host->bus_ops->sysfs_add(card->host, card);
259 if (ret) {
260 device_del(&card->dev);
261 return ret;
262 }
263 }
264
265 card->dev.uevent_suppress = 0;
266
267 kobject_uevent(&card->dev.kobj, KOBJ_ADD);
268
269 mmc_card_set_present(card); 255 mmc_card_set_present(card);
270 256
271 return 0; 257 return 0;
@@ -285,9 +271,6 @@ void mmc_remove_card(struct mmc_card *card)
285 printk(KERN_INFO "%s: card %04x removed\n", 271 printk(KERN_INFO "%s: card %04x removed\n",
286 mmc_hostname(card->host), card->rca); 272 mmc_hostname(card->host), card->rca);
287 } 273 }
288
289 if (card->host->bus_ops->sysfs_remove)
290 card->host->bus_ops->sysfs_remove(card->host, card);
291 device_del(&card->dev); 274 device_del(&card->dev);
292 } 275 }
293 276
diff --git a/drivers/mmc/core/bus.h b/drivers/mmc/core/bus.h
index 4f35431116a8..18178766ab46 100644
--- a/drivers/mmc/core/bus.h
+++ b/drivers/mmc/core/bus.h
@@ -11,7 +11,16 @@
11#ifndef _MMC_CORE_BUS_H 11#ifndef _MMC_CORE_BUS_H
12#define _MMC_CORE_BUS_H 12#define _MMC_CORE_BUS_H
13 13
14struct mmc_card *mmc_alloc_card(struct mmc_host *host); 14#define MMC_DEV_ATTR(name, fmt, args...) \
15static ssize_t mmc_##name##_show (struct device *dev, struct device_attribute *attr, char *buf) \
16{ \
17 struct mmc_card *card = container_of(dev, struct mmc_card, dev); \
18 return sprintf(buf, fmt, args); \
19} \
20static DEVICE_ATTR(name, S_IRUGO, mmc_##name##_show, NULL)
21
22struct mmc_card *mmc_alloc_card(struct mmc_host *host,
23 struct device_type *type);
15int mmc_add_card(struct mmc_card *card); 24int mmc_add_card(struct mmc_card *card);
16void mmc_remove_card(struct mmc_card *card); 25void mmc_remove_card(struct mmc_card *card);
17 26
diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h
index 39daf2fb5dc4..cfa8e15b5923 100644
--- a/drivers/mmc/core/core.h
+++ b/drivers/mmc/core/core.h
@@ -18,8 +18,6 @@
18struct mmc_bus_ops { 18struct mmc_bus_ops {
19 void (*remove)(struct mmc_host *); 19 void (*remove)(struct mmc_host *);
20 void (*detect)(struct mmc_host *); 20 void (*detect)(struct mmc_host *);
21 int (*sysfs_add)(struct mmc_host *, struct mmc_card *card);
22 void (*sysfs_remove)(struct mmc_host *, struct mmc_card *card);
23 void (*suspend)(struct mmc_host *); 21 void (*suspend)(struct mmc_host *);
24 void (*resume)(struct mmc_host *); 22 void (*resume)(struct mmc_host *);
25}; 23};
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 68c0e3b2f0e8..3da29eef8f7d 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -17,7 +17,6 @@
17#include <linux/mmc/mmc.h> 17#include <linux/mmc/mmc.h>
18 18
19#include "core.h" 19#include "core.h"
20#include "sysfs.h"
21#include "bus.h" 20#include "bus.h"
22#include "mmc_ops.h" 21#include "mmc_ops.h"
23 22
@@ -248,6 +247,44 @@ out:
248 return err; 247 return err;
249} 248}
250 249
250MMC_DEV_ATTR(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1],
251 card->raw_cid[2], card->raw_cid[3]);
252MMC_DEV_ATTR(csd, "%08x%08x%08x%08x\n", card->raw_csd[0], card->raw_csd[1],
253 card->raw_csd[2], card->raw_csd[3]);
254MMC_DEV_ATTR(date, "%02d/%04d\n", card->cid.month, card->cid.year);
255MMC_DEV_ATTR(fwrev, "0x%x\n", card->cid.fwrev);
256MMC_DEV_ATTR(hwrev, "0x%x\n", card->cid.hwrev);
257MMC_DEV_ATTR(manfid, "0x%06x\n", card->cid.manfid);
258MMC_DEV_ATTR(name, "%s\n", card->cid.prod_name);
259MMC_DEV_ATTR(oemid, "0x%04x\n", card->cid.oemid);
260MMC_DEV_ATTR(serial, "0x%08x\n", card->cid.serial);
261
262static struct attribute *mmc_std_attrs[] = {
263 &dev_attr_cid.attr,
264 &dev_attr_csd.attr,
265 &dev_attr_date.attr,
266 &dev_attr_fwrev.attr,
267 &dev_attr_hwrev.attr,
268 &dev_attr_manfid.attr,
269 &dev_attr_name.attr,
270 &dev_attr_oemid.attr,
271 &dev_attr_serial.attr,
272 NULL,
273};
274
275static struct attribute_group mmc_std_attr_group = {
276 .attrs = mmc_std_attrs,
277};
278
279static struct attribute_group *mmc_attr_groups[] = {
280 &mmc_std_attr_group,
281 NULL,
282};
283
284static struct device_type mmc_type = {
285 .groups = mmc_attr_groups,
286};
287
251/* 288/*
252 * Handle the detection and initialisation of a card. 289 * Handle the detection and initialisation of a card.
253 * 290 *
@@ -308,7 +345,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
308 /* 345 /*
309 * Allocate card structure. 346 * Allocate card structure.
310 */ 347 */
311 card = mmc_alloc_card(host); 348 card = mmc_alloc_card(host, &mmc_type);
312 if (IS_ERR(card)) { 349 if (IS_ERR(card)) {
313 err = PTR_ERR(card); 350 err = PTR_ERR(card);
314 goto err; 351 goto err;
@@ -459,53 +496,6 @@ static void mmc_detect(struct mmc_host *host)
459 } 496 }
460} 497}
461 498
462MMC_ATTR_FN(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1],
463 card->raw_cid[2], card->raw_cid[3]);
464MMC_ATTR_FN(csd, "%08x%08x%08x%08x\n", card->raw_csd[0], card->raw_csd[1],
465 card->raw_csd[2], card->raw_csd[3]);
466MMC_ATTR_FN(date, "%02d/%04d\n", card->cid.month, card->cid.year);
467MMC_ATTR_FN(fwrev, "0x%x\n", card->cid.fwrev);
468MMC_ATTR_FN(hwrev, "0x%x\n", card->cid.hwrev);
469MMC_ATTR_FN(manfid, "0x%06x\n", card->cid.manfid);
470MMC_ATTR_FN(name, "%s\n", card->cid.prod_name);
471MMC_ATTR_FN(oemid, "0x%04x\n", card->cid.oemid);
472MMC_ATTR_FN(serial, "0x%08x\n", card->cid.serial);
473
474static struct device_attribute mmc_dev_attrs[] = {
475 MMC_ATTR_RO(cid),
476 MMC_ATTR_RO(csd),
477 MMC_ATTR_RO(date),
478 MMC_ATTR_RO(fwrev),
479 MMC_ATTR_RO(hwrev),
480 MMC_ATTR_RO(manfid),
481 MMC_ATTR_RO(name),
482 MMC_ATTR_RO(oemid),
483 MMC_ATTR_RO(serial),
484 __ATTR_NULL,
485};
486
487/*
488 * Adds sysfs entries as relevant.
489 */
490static int mmc_sysfs_add(struct mmc_host *host, struct mmc_card *card)
491{
492 int ret;
493
494 ret = mmc_add_attrs(card, mmc_dev_attrs);
495 if (ret < 0)
496 return ret;
497
498 return 0;
499}
500
501/*
502 * Removes the sysfs entries added by mmc_sysfs_add().
503 */
504static void mmc_sysfs_remove(struct mmc_host *host, struct mmc_card *card)
505{
506 mmc_remove_attrs(card, mmc_dev_attrs);
507}
508
509#ifdef CONFIG_MMC_UNSAFE_RESUME 499#ifdef CONFIG_MMC_UNSAFE_RESUME
510 500
511/* 501/*
@@ -560,8 +550,6 @@ static void mmc_resume(struct mmc_host *host)
560static const struct mmc_bus_ops mmc_ops = { 550static const struct mmc_bus_ops mmc_ops = {
561 .remove = mmc_remove, 551 .remove = mmc_remove,
562 .detect = mmc_detect, 552 .detect = mmc_detect,
563 .sysfs_add = mmc_sysfs_add,
564 .sysfs_remove = mmc_sysfs_remove,
565 .suspend = mmc_suspend, 553 .suspend = mmc_suspend,
566 .resume = mmc_resume, 554 .resume = mmc_resume,
567}; 555};
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index d1c1e0f592f1..7ef3b15c5e3d 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -18,7 +18,6 @@
18#include <linux/mmc/sd.h> 18#include <linux/mmc/sd.h>
19 19
20#include "core.h" 20#include "core.h"
21#include "sysfs.h"
22#include "bus.h" 21#include "bus.h"
23#include "mmc_ops.h" 22#include "mmc_ops.h"
24#include "sd_ops.h" 23#include "sd_ops.h"
@@ -283,6 +282,47 @@ out:
283 return err; 282 return err;
284} 283}
285 284
285MMC_DEV_ATTR(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1],
286 card->raw_cid[2], card->raw_cid[3]);
287MMC_DEV_ATTR(csd, "%08x%08x%08x%08x\n", card->raw_csd[0], card->raw_csd[1],
288 card->raw_csd[2], card->raw_csd[3]);
289MMC_DEV_ATTR(scr, "%08x%08x\n", card->raw_scr[0], card->raw_scr[1]);
290MMC_DEV_ATTR(date, "%02d/%04d\n", card->cid.month, card->cid.year);
291MMC_DEV_ATTR(fwrev, "0x%x\n", card->cid.fwrev);
292MMC_DEV_ATTR(hwrev, "0x%x\n", card->cid.hwrev);
293MMC_DEV_ATTR(manfid, "0x%06x\n", card->cid.manfid);
294MMC_DEV_ATTR(name, "%s\n", card->cid.prod_name);
295MMC_DEV_ATTR(oemid, "0x%04x\n", card->cid.oemid);
296MMC_DEV_ATTR(serial, "0x%08x\n", card->cid.serial);
297
298
299static struct attribute *sd_std_attrs[] = {
300 &dev_attr_cid.attr,
301 &dev_attr_csd.attr,
302 &dev_attr_scr.attr,
303 &dev_attr_date.attr,
304 &dev_attr_fwrev.attr,
305 &dev_attr_hwrev.attr,
306 &dev_attr_manfid.attr,
307 &dev_attr_name.attr,
308 &dev_attr_oemid.attr,
309 &dev_attr_serial.attr,
310 NULL,
311};
312
313static struct attribute_group sd_std_attr_group = {
314 .attrs = sd_std_attrs,
315};
316
317static struct attribute_group *sd_attr_groups[] = {
318 &sd_std_attr_group,
319 NULL,
320};
321
322static struct device_type sd_type = {
323 .groups = sd_attr_groups,
324};
325
286/* 326/*
287 * Handle the detection and initialisation of a card. 327 * Handle the detection and initialisation of a card.
288 * 328 *
@@ -352,7 +392,7 @@ static int mmc_sd_init_card(struct mmc_host *host, u32 ocr,
352 /* 392 /*
353 * Allocate card structure. 393 * Allocate card structure.
354 */ 394 */
355 card = mmc_alloc_card(host); 395 card = mmc_alloc_card(host, &sd_type);
356 if (IS_ERR(card)) { 396 if (IS_ERR(card)) {
357 err = PTR_ERR(card); 397 err = PTR_ERR(card);
358 goto err; 398 goto err;
@@ -518,55 +558,6 @@ static void mmc_sd_detect(struct mmc_host *host)
518 } 558 }
519} 559}
520 560
521MMC_ATTR_FN(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1],
522 card->raw_cid[2], card->raw_cid[3]);
523MMC_ATTR_FN(csd, "%08x%08x%08x%08x\n", card->raw_csd[0], card->raw_csd[1],
524 card->raw_csd[2], card->raw_csd[3]);
525MMC_ATTR_FN(scr, "%08x%08x\n", card->raw_scr[0], card->raw_scr[1]);
526MMC_ATTR_FN(date, "%02d/%04d\n", card->cid.month, card->cid.year);
527MMC_ATTR_FN(fwrev, "0x%x\n", card->cid.fwrev);
528MMC_ATTR_FN(hwrev, "0x%x\n", card->cid.hwrev);
529MMC_ATTR_FN(manfid, "0x%06x\n", card->cid.manfid);
530MMC_ATTR_FN(name, "%s\n", card->cid.prod_name);
531MMC_ATTR_FN(oemid, "0x%04x\n", card->cid.oemid);
532MMC_ATTR_FN(serial, "0x%08x\n", card->cid.serial);
533
534static struct device_attribute mmc_sd_dev_attrs[] = {
535 MMC_ATTR_RO(cid),
536 MMC_ATTR_RO(csd),
537 MMC_ATTR_RO(scr),
538 MMC_ATTR_RO(date),
539 MMC_ATTR_RO(fwrev),
540 MMC_ATTR_RO(hwrev),
541 MMC_ATTR_RO(manfid),
542 MMC_ATTR_RO(name),
543 MMC_ATTR_RO(oemid),
544 MMC_ATTR_RO(serial),
545 __ATTR_NULL,
546};
547
548/*
549 * Adds sysfs entries as relevant.
550 */
551static int mmc_sd_sysfs_add(struct mmc_host *host, struct mmc_card *card)
552{
553 int ret;
554
555 ret = mmc_add_attrs(card, mmc_sd_dev_attrs);
556 if (ret < 0)
557 return ret;
558
559 return 0;
560}
561
562/*
563 * Removes the sysfs entries added by mmc_sysfs_add().
564 */
565static void mmc_sd_sysfs_remove(struct mmc_host *host, struct mmc_card *card)
566{
567 mmc_remove_attrs(card, mmc_sd_dev_attrs);
568}
569
570#ifdef CONFIG_MMC_UNSAFE_RESUME 561#ifdef CONFIG_MMC_UNSAFE_RESUME
571 562
572/* 563/*
@@ -621,8 +612,6 @@ static void mmc_sd_resume(struct mmc_host *host)
621static const struct mmc_bus_ops mmc_sd_ops = { 612static const struct mmc_bus_ops mmc_sd_ops = {
622 .remove = mmc_sd_remove, 613 .remove = mmc_sd_remove,
623 .detect = mmc_sd_detect, 614 .detect = mmc_sd_detect,
624 .sysfs_add = mmc_sd_sysfs_add,
625 .sysfs_remove = mmc_sd_sysfs_remove,
626 .suspend = mmc_sd_suspend, 615 .suspend = mmc_sd_suspend,
627 .resume = mmc_sd_resume, 616 .resume = mmc_sd_resume,
628}; 617};
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 87a50f456efc..4eab79e09ccc 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -287,7 +287,7 @@ int mmc_attach_sdio(struct mmc_host *host, u32 ocr)
287 /* 287 /*
288 * Allocate card structure. 288 * Allocate card structure.
289 */ 289 */
290 card = mmc_alloc_card(host); 290 card = mmc_alloc_card(host, NULL);
291 if (IS_ERR(card)) { 291 if (IS_ERR(card)) {
292 err = PTR_ERR(card); 292 err = PTR_ERR(card);
293 goto err; 293 goto err;
diff --git a/drivers/mmc/core/sysfs.c b/drivers/mmc/core/sysfs.c
deleted file mode 100644
index 00a97e70f914..000000000000
--- a/drivers/mmc/core/sysfs.c
+++ /dev/null
@@ -1,43 +0,0 @@
1/*
2 * linux/drivers/mmc/core/sysfs.c
3 *
4 * Copyright (C) 2003 Russell King, All Rights Reserved.
5 * Copyright 2007 Pierre Ossman
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * MMC sysfs/driver model support.
12 */
13#include <linux/device.h>
14
15#include <linux/mmc/card.h>
16
17#include "sysfs.h"
18
19int mmc_add_attrs(struct mmc_card *card, struct device_attribute *attrs)
20{
21 int error = 0;
22 int i;
23
24 for (i = 0; attr_name(attrs[i]); i++) {
25 error = device_create_file(&card->dev, &attrs[i]);
26 if (error) {
27 while (--i >= 0)
28 device_remove_file(&card->dev, &attrs[i]);
29 break;
30 }
31 }
32
33 return error;
34}
35
36void mmc_remove_attrs(struct mmc_card *card, struct device_attribute *attrs)
37{
38 int i;
39
40 for (i = 0; attr_name(attrs[i]); i++)
41 device_remove_file(&card->dev, &attrs[i]);
42}
43
diff --git a/drivers/mmc/core/sysfs.h b/drivers/mmc/core/sysfs.h
deleted file mode 100644
index 4b8f670bd10f..000000000000
--- a/drivers/mmc/core/sysfs.h
+++ /dev/null
@@ -1,26 +0,0 @@
1/*
2 * linux/drivers/mmc/core/sysfs.h
3 *
4 * Copyright (C) 2003 Russell King, All Rights Reserved.
5 * Copyright 2007 Pierre Ossman
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11#ifndef _MMC_CORE_SYSFS_H
12#define _MMC_CORE_SYSFS_H
13
14#define MMC_ATTR_FN(name, fmt, args...) \
15static ssize_t mmc_##name##_show (struct device *dev, struct device_attribute *attr, char *buf) \
16{ \
17 struct mmc_card *card = container_of(dev, struct mmc_card, dev);\
18 return sprintf(buf, fmt, args); \
19}
20
21#define MMC_ATTR_RO(name) __ATTR(name, S_IRUGO, mmc_##name##_show, NULL)
22
23int mmc_add_attrs(struct mmc_card *card, struct device_attribute *attrs);
24void mmc_remove_attrs(struct mmc_card *card, struct device_attribute *attrs);
25
26#endif
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c
index 20d5c7bd940a..1c14a186f000 100644
--- a/drivers/mmc/host/tifm_sd.c
+++ b/drivers/mmc/host/tifm_sd.c
@@ -180,7 +180,7 @@ static void tifm_sd_transfer_data(struct tifm_sd *host)
180 host->sg_pos++; 180 host->sg_pos++;
181 if (host->sg_pos == host->sg_len) { 181 if (host->sg_pos == host->sg_len) {
182 if ((r_data->flags & MMC_DATA_WRITE) 182 if ((r_data->flags & MMC_DATA_WRITE)
183 && DATA_CARRY) 183 && (host->cmd_flags & DATA_CARRY))
184 writel(host->bounce_buf_data[0], 184 writel(host->bounce_buf_data[0],
185 host->dev->addr 185 host->dev->addr
186 + SOCK_MMCSD_DATA); 186 + SOCK_MMCSD_DATA);
diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index eeaaa9dce6ef..ad1880c67518 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -408,7 +408,6 @@ static int block2mtd_setup2(const char *val)
408 if (token[1]) { 408 if (token[1]) {
409 ret = parse_num(&erase_size, token[1]); 409 ret = parse_num(&erase_size, token[1]);
410 if (ret) { 410 if (ret) {
411 kfree(name);
412 parse_err("illegal erase size"); 411 parse_err("illegal erase size");
413 } 412 }
414 } 413 }
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
index f00e04efbe28..bc4649a17b9d 100644
--- a/drivers/mtd/maps/physmap.c
+++ b/drivers/mtd/maps/physmap.c
@@ -202,9 +202,8 @@ static int physmap_flash_suspend(struct platform_device *dev, pm_message_t state
202 int ret = 0; 202 int ret = 0;
203 int i; 203 int i;
204 204
205 if (info) 205 for (i = 0; i < MAX_RESOURCES && info->mtd[i]; i++)
206 for (i = 0; i < MAX_RESOURCES; i++) 206 ret |= info->mtd[i]->suspend(info->mtd[i]);
207 ret |= info->mtd[i]->suspend(info->mtd[i]);
208 207
209 return ret; 208 return ret;
210} 209}
@@ -214,9 +213,9 @@ static int physmap_flash_resume(struct platform_device *dev)
214 struct physmap_flash_info *info = platform_get_drvdata(dev); 213 struct physmap_flash_info *info = platform_get_drvdata(dev);
215 int i; 214 int i;
216 215
217 if (info) 216 for (i = 0; i < MAX_RESOURCES && info->mtd[i]; i++)
218 for (i = 0; i < MAX_RESOURCES; i++) 217 info->mtd[i]->resume(info->mtd[i]);
219 info->mtd[i]->resume(info->mtd[i]); 218
220 return 0; 219 return 0;
221} 220}
222 221
@@ -225,8 +224,8 @@ static void physmap_flash_shutdown(struct platform_device *dev)
225 struct physmap_flash_info *info = platform_get_drvdata(dev); 224 struct physmap_flash_info *info = platform_get_drvdata(dev);
226 int i; 225 int i;
227 226
228 for (i = 0; i < MAX_RESOURCES; i++) 227 for (i = 0; i < MAX_RESOURCES && info->mtd[i]; i++)
229 if (info && info->mtd[i]->suspend(info->mtd[i]) == 0) 228 if (info->mtd[i]->suspend(info->mtd[i]) == 0)
230 info->mtd[i]->resume(info->mtd[i]); 229 info->mtd[i]->resume(info->mtd[i]);
231} 230}
232#else 231#else
diff --git a/drivers/mtd/nand/rtc_from4.c b/drivers/mtd/nand/rtc_from4.c
index 9189ec8f243e..0f6ac250f434 100644
--- a/drivers/mtd/nand/rtc_from4.c
+++ b/drivers/mtd/nand/rtc_from4.c
@@ -460,7 +460,7 @@ static int rtc_from4_errstat(struct mtd_info *mtd, struct nand_chip *this,
460 er_stat |= 1 << 1; 460 er_stat |= 1 << 1;
461 kfree(buf); 461 kfree(buf);
462 } 462 }
463 463out:
464 rtn = status; 464 rtn = status;
465 if (er_stat == 0) { /* if ECC is available */ 465 if (er_stat == 0) { /* if ECC is available */
466 rtn = (status & ~NAND_STATUS_FAIL); /* clear the error bit */ 466 rtn = (status & ~NAND_STATUS_FAIL); /* clear the error bit */
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 7d253686ed0d..5ba4bab6d43e 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -485,9 +485,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
485 printk(KERN_DEBUG "%s: burped during tx load.\n", 485 printk(KERN_DEBUG "%s: burped during tx load.\n",
486 dev->name); 486 dev->name);
487 spin_lock_irqsave(&lp->lock, flags); 487 spin_lock_irqsave(&lp->lock, flags);
488 } 488 } while (1);
489 while (1);
490
491} 489}
492 490
493/** 491/**
@@ -612,7 +610,8 @@ static irqreturn_t el_interrupt(int irq, void *dev_id)
612 dev->stats.tx_packets++; 610 dev->stats.tx_packets++;
613 if (el_debug > 6) 611 if (el_debug > 6)
614 printk(KERN_DEBUG " Tx succeeded %s\n", 612 printk(KERN_DEBUG " Tx succeeded %s\n",
615 (txsr & TX_RDY) ? "." : "but tx is busy!"); 613 (txsr & TX_RDY) ? "." :
614 "but tx is busy!");
616 /* 615 /*
617 * This is safe the interrupt is atomic WRT itself. 616 * This is safe the interrupt is atomic WRT itself.
618 */ 617 */
@@ -693,7 +692,8 @@ static void el_receive(struct net_device *dev)
693 692
694 if (pkt_len < 60 || pkt_len > 1536) { 693 if (pkt_len < 60 || pkt_len > 1536) {
695 if (el_debug) 694 if (el_debug)
696 printk(KERN_DEBUG "%s: bogus packet, length=%d\n", dev->name, pkt_len); 695 printk(KERN_DEBUG "%s: bogus packet, length=%d\n",
696 dev->name, pkt_len);
697 dev->stats.rx_over_errors++; 697 dev->stats.rx_over_errors++;
698 return; 698 return;
699 } 699 }
@@ -711,7 +711,8 @@ static void el_receive(struct net_device *dev)
711 711
712 outw(0x00, GP_LOW); 712 outw(0x00, GP_LOW);
713 if (skb == NULL) { 713 if (skb == NULL) {
714 printk(KERN_INFO "%s: Memory squeeze, dropping packet.\n", dev->name); 714 printk(KERN_INFO "%s: Memory squeeze, dropping packet.\n",
715 dev->name);
715 dev->stats.rx_dropped++; 716 dev->stats.rx_dropped++;
716 return; 717 return;
717 } else { 718 } else {
@@ -748,7 +749,8 @@ static void el_reset(struct net_device *dev)
748 if (el_debug > 2) 749 if (el_debug > 2)
749 printk(KERN_INFO "3c501 reset..."); 750 printk(KERN_INFO "3c501 reset...");
750 outb(AX_RESET, AX_CMD); /* Reset the chip */ 751 outb(AX_RESET, AX_CMD); /* Reset the chip */
751 outb(AX_LOOP, AX_CMD); /* Aux control, irq and loopback enabled */ 752 /* Aux control, irq and loopback enabled */
753 outb(AX_LOOP, AX_CMD);
752 { 754 {
753 int i; 755 int i;
754 for (i = 0; i < 6; i++) /* Set the station address. */ 756 for (i = 0; i < 6; i++) /* Set the station address. */
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index a0f0e605d630..fe7b5ec09708 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2366,15 +2366,15 @@ config GELIC_NET
2366 module will be called ps3_gelic. 2366 module will be called ps3_gelic.
2367 2367
2368config GELIC_WIRELESS 2368config GELIC_WIRELESS
2369 bool "PS3 Wireless support" 2369 bool "PS3 Wireless support"
2370 depends on GELIC_NET 2370 depends on GELIC_NET
2371 select WIRELESS_EXT 2371 select WIRELESS_EXT
2372 help 2372 help
2373 This option adds the support for the wireless feature of PS3. 2373 This option adds the support for the wireless feature of PS3.
2374 If you have the wireless-less model of PS3 or have no plan to 2374 If you have the wireless-less model of PS3 or have no plan to
2375 use wireless feature, disabling this option saves memory. As 2375 use wireless feature, disabling this option saves memory. As
2376 the driver automatically distinguishes the models, you can 2376 the driver automatically distinguishes the models, you can
2377 safely enable this option even if you have a wireless-less model. 2377 safely enable this option even if you have a wireless-less model.
2378 2378
2379config GIANFAR 2379config GIANFAR
2380 tristate "Gianfar Ethernet" 2380 tristate "Gianfar Ethernet"
@@ -2519,7 +2519,7 @@ config CHELSIO_T3
2519 2519
2520config EHEA 2520config EHEA
2521 tristate "eHEA Ethernet support" 2521 tristate "eHEA Ethernet support"
2522 depends on IBMEBUS && INET 2522 depends on IBMEBUS && INET && SPARSEMEM
2523 select INET_LRO 2523 select INET_LRO
2524 ---help--- 2524 ---help---
2525 This driver supports the IBM pSeries eHEA ethernet adapter. 2525 This driver supports the IBM pSeries eHEA ethernet adapter.
diff --git a/drivers/net/ac3200.c b/drivers/net/ac3200.c
index 5136d94923aa..b1448637107f 100644
--- a/drivers/net/ac3200.c
+++ b/drivers/net/ac3200.c
@@ -369,7 +369,7 @@ MODULE_PARM_DESC(mem, "Memory base address(es)");
369MODULE_DESCRIPTION("Ansel AC3200 EISA ethernet driver"); 369MODULE_DESCRIPTION("Ansel AC3200 EISA ethernet driver");
370MODULE_LICENSE("GPL"); 370MODULE_LICENSE("GPL");
371 371
372int __init init_module(void) 372static int __init ac3200_module_init(void)
373{ 373{
374 struct net_device *dev; 374 struct net_device *dev;
375 int this_dev, found = 0; 375 int this_dev, found = 0;
@@ -404,8 +404,7 @@ static void cleanup_card(struct net_device *dev)
404 iounmap(ei_status.mem); 404 iounmap(ei_status.mem);
405} 405}
406 406
407void __exit 407static void __exit ac3200_module_exit(void)
408cleanup_module(void)
409{ 408{
410 int this_dev; 409 int this_dev;
411 410
@@ -418,4 +417,6 @@ cleanup_module(void)
418 } 417 }
419 } 418 }
420} 419}
420module_init(ac3200_module_init);
421module_exit(ac3200_module_exit);
421#endif /* MODULE */ 422#endif /* MODULE */
diff --git a/drivers/net/apne.c b/drivers/net/apne.c
index c12cbdf368b1..47a8275d3962 100644
--- a/drivers/net/apne.c
+++ b/drivers/net/apne.c
@@ -569,7 +569,7 @@ static irqreturn_t apne_interrupt(int irq, void *dev_id)
569#ifdef MODULE 569#ifdef MODULE
570static struct net_device *apne_dev; 570static struct net_device *apne_dev;
571 571
572int __init init_module(void) 572static int __init apne_module_init(void)
573{ 573{
574 apne_dev = apne_probe(-1); 574 apne_dev = apne_probe(-1);
575 if (IS_ERR(apne_dev)) 575 if (IS_ERR(apne_dev))
@@ -577,7 +577,7 @@ int __init init_module(void)
577 return 0; 577 return 0;
578} 578}
579 579
580void __exit cleanup_module(void) 580static void __exit apne_module_exit(void)
581{ 581{
582 unregister_netdev(apne_dev); 582 unregister_netdev(apne_dev);
583 583
@@ -591,7 +591,8 @@ void __exit cleanup_module(void)
591 591
592 free_netdev(apne_dev); 592 free_netdev(apne_dev);
593} 593}
594 594module_init(apne_module_init);
595module_exit(apne_module_exit);
595#endif 596#endif
596 597
597static int init_pcmcia(void) 598static int init_pcmcia(void)
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index 6ab2c2d4d673..fef5560bc7a2 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -1252,7 +1252,7 @@ module_param(irq, int, 0);
1252module_param(dma, int, 0); 1252module_param(dma, int, 0);
1253 1253
1254 1254
1255int __init init_module(void) 1255static int __init ltpc_module_init(void)
1256{ 1256{
1257 if(io == 0) 1257 if(io == 0)
1258 printk(KERN_NOTICE 1258 printk(KERN_NOTICE
@@ -1263,6 +1263,7 @@ int __init init_module(void)
1263 return PTR_ERR(dev_ltpc); 1263 return PTR_ERR(dev_ltpc);
1264 return 0; 1264 return 0;
1265} 1265}
1266module_init(ltpc_module_init);
1266#endif 1267#endif
1267 1268
1268static void __exit ltpc_cleanup(void) 1269static void __exit ltpc_cleanup(void)
diff --git a/drivers/net/arcnet/capmode.c b/drivers/net/arcnet/capmode.c
index cc4610db6395..02cb8f1c1148 100644
--- a/drivers/net/arcnet/capmode.c
+++ b/drivers/net/arcnet/capmode.c
@@ -80,17 +80,19 @@ void arcnet_cap_init(void)
80 80
81#ifdef MODULE 81#ifdef MODULE
82 82
83int __init init_module(void) 83static int __init capmode_module_init(void)
84{ 84{
85 printk(VERSION); 85 printk(VERSION);
86 arcnet_cap_init(); 86 arcnet_cap_init();
87 return 0; 87 return 0;
88} 88}
89 89
90void cleanup_module(void) 90static void __exit capmode_module_exit(void)
91{ 91{
92 arcnet_unregister_proto(&capmode_proto); 92 arcnet_unregister_proto(&capmode_proto);
93} 93}
94module_init(capmode_module_init);
95module_exit(capmode_module_exit);
94 96
95MODULE_LICENSE("GPL"); 97MODULE_LICENSE("GPL");
96#endif /* MODULE */ 98#endif /* MODULE */
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index b74dbeef8050..13c293b286de 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -336,8 +336,6 @@ struct lance_addr {
336 336
337/***************************** Prototypes *****************************/ 337/***************************** Prototypes *****************************/
338 338
339static int addr_accessible( volatile void *regp, int wordflag, int
340 writeflag );
341static unsigned long lance_probe1( struct net_device *dev, struct lance_addr 339static unsigned long lance_probe1( struct net_device *dev, struct lance_addr
342 *init_rec ); 340 *init_rec );
343static int lance_open( struct net_device *dev ); 341static int lance_open( struct net_device *dev );
@@ -406,7 +404,8 @@ struct net_device * __init atarilance_probe(int unit)
406 404
407/* Derived from hwreg_present() in atari/config.c: */ 405/* Derived from hwreg_present() in atari/config.c: */
408 406
409static int __init addr_accessible( volatile void *regp, int wordflag, int writeflag ) 407static noinline int __init addr_accessible(volatile void *regp, int wordflag,
408 int writeflag)
410{ 409{
411 int ret; 410 int ret;
412 long flags; 411 long flags;
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index 9200ee59d854..129b8b3aa773 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -1765,15 +1765,12 @@ static irqreturn_t atl1_intr(int irq, void *data)
1765{ 1765{
1766 struct atl1_adapter *adapter = netdev_priv(data); 1766 struct atl1_adapter *adapter = netdev_priv(data);
1767 u32 status; 1767 u32 status;
1768 u8 update_rx;
1769 int max_ints = 10; 1768 int max_ints = 10;
1770 1769
1771 status = adapter->cmb.cmb->int_stats; 1770 status = adapter->cmb.cmb->int_stats;
1772 if (!status) 1771 if (!status)
1773 return IRQ_NONE; 1772 return IRQ_NONE;
1774 1773
1775 update_rx = 0;
1776
1777 do { 1774 do {
1778 /* clear CMB interrupt status at once */ 1775 /* clear CMB interrupt status at once */
1779 adapter->cmb.cmb->int_stats = 0; 1776 adapter->cmb.cmb->int_stats = 0;
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index ea2a2b548e3c..25f1337cd02c 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2082,6 +2082,11 @@ static int __devinit b44_get_invariants(struct b44 *bp)
2082 addr = sdev->bus->sprom.et0mac; 2082 addr = sdev->bus->sprom.et0mac;
2083 bp->phy_addr = sdev->bus->sprom.et0phyaddr; 2083 bp->phy_addr = sdev->bus->sprom.et0phyaddr;
2084 } 2084 }
2085 /* Some ROMs have buggy PHY addresses with the high
2086 * bits set (sign extension?). Truncate them to a
2087 * valid PHY address. */
2088 bp->phy_addr &= 0x1F;
2089
2085 memcpy(bp->dev->dev_addr, addr, 6); 2090 memcpy(bp->dev->dev_addr, addr, 6);
2086 2091
2087 if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){ 2092 if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){
diff --git a/drivers/net/bnx2x.c b/drivers/net/bnx2x.c
index 8af142ccf373..de32b3fba322 100644
--- a/drivers/net/bnx2x.c
+++ b/drivers/net/bnx2x.c
@@ -63,8 +63,8 @@
63#include "bnx2x.h" 63#include "bnx2x.h"
64#include "bnx2x_init.h" 64#include "bnx2x_init.h"
65 65
66#define DRV_MODULE_VERSION "1.40.22" 66#define DRV_MODULE_VERSION "1.42.3"
67#define DRV_MODULE_RELDATE "2007/11/27" 67#define DRV_MODULE_RELDATE "2008/3/9"
68#define BNX2X_BC_VER 0x040200 68#define BNX2X_BC_VER 0x040200
69 69
70/* Time in jiffies before concluding the transmitter is hung. */ 70/* Time in jiffies before concluding the transmitter is hung. */
@@ -8008,38 +8008,6 @@ static int bnx2x_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
8008 cmd->duplex, cmd->port, cmd->phy_address, cmd->transceiver, 8008 cmd->duplex, cmd->port, cmd->phy_address, cmd->transceiver,
8009 cmd->autoneg, cmd->maxtxpkt, cmd->maxrxpkt); 8009 cmd->autoneg, cmd->maxtxpkt, cmd->maxrxpkt);
8010 8010
8011 switch (cmd->port) {
8012 case PORT_TP:
8013 if (!(bp->supported & SUPPORTED_TP)) {
8014 DP(NETIF_MSG_LINK, "TP not supported\n");
8015 return -EINVAL;
8016 }
8017
8018 if (bp->phy_flags & PHY_XGXS_FLAG) {
8019 bnx2x_link_reset(bp);
8020 bnx2x_link_settings_supported(bp, SWITCH_CFG_1G);
8021 bnx2x_phy_deassert(bp);
8022 }
8023 break;
8024
8025 case PORT_FIBRE:
8026 if (!(bp->supported & SUPPORTED_FIBRE)) {
8027 DP(NETIF_MSG_LINK, "FIBRE not supported\n");
8028 return -EINVAL;
8029 }
8030
8031 if (!(bp->phy_flags & PHY_XGXS_FLAG)) {
8032 bnx2x_link_reset(bp);
8033 bnx2x_link_settings_supported(bp, SWITCH_CFG_10G);
8034 bnx2x_phy_deassert(bp);
8035 }
8036 break;
8037
8038 default:
8039 DP(NETIF_MSG_LINK, "Unknown port type\n");
8040 return -EINVAL;
8041 }
8042
8043 if (cmd->autoneg == AUTONEG_ENABLE) { 8011 if (cmd->autoneg == AUTONEG_ENABLE) {
8044 if (!(bp->supported & SUPPORTED_Autoneg)) { 8012 if (!(bp->supported & SUPPORTED_Autoneg)) {
8045 DP(NETIF_MSG_LINK, "Aotoneg not supported\n"); 8013 DP(NETIF_MSG_LINK, "Aotoneg not supported\n");
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index cb3c6faa7888..d16e0e1d2b30 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -310,7 +310,7 @@ static inline int __check_agg_selection_timer(struct port *port)
310 */ 310 */
311static inline void __get_rx_machine_lock(struct port *port) 311static inline void __get_rx_machine_lock(struct port *port)
312{ 312{
313 spin_lock(&(SLAVE_AD_INFO(port->slave).rx_machine_lock)); 313 spin_lock_bh(&(SLAVE_AD_INFO(port->slave).rx_machine_lock));
314} 314}
315 315
316/** 316/**
@@ -320,7 +320,7 @@ static inline void __get_rx_machine_lock(struct port *port)
320 */ 320 */
321static inline void __release_rx_machine_lock(struct port *port) 321static inline void __release_rx_machine_lock(struct port *port)
322{ 322{
323 spin_unlock(&(SLAVE_AD_INFO(port->slave).rx_machine_lock)); 323 spin_unlock_bh(&(SLAVE_AD_INFO(port->slave).rx_machine_lock));
324} 324}
325 325
326/** 326/**
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index b57bc9467dbe..3f58c3d0b710 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -678,12 +678,8 @@ static struct slave *rlb_choose_channel(struct sk_buff *skb, struct bonding *bon
678 } 678 }
679 679
680 if (!list_empty(&bond->vlan_list)) { 680 if (!list_empty(&bond->vlan_list)) {
681 unsigned short vlan_id; 681 if (!vlan_get_tag(skb, &client_info->vlan_id))
682 int res = vlan_get_tag(skb, &vlan_id);
683 if (!res) {
684 client_info->tag = 1; 682 client_info->tag = 1;
685 client_info->vlan_id = vlan_id;
686 }
687 } 683 }
688 684
689 if (!client_info->assigned) { 685 if (!client_info->assigned) {
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 0942d82f7cbf..0f0675319e9c 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -383,7 +383,7 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
383 */ 383 */
384int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev) 384int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev)
385{ 385{
386 unsigned short vlan_id; 386 unsigned short uninitialized_var(vlan_id);
387 387
388 if (!list_empty(&bond->vlan_list) && 388 if (!list_empty(&bond->vlan_list) &&
389 !(slave_dev->features & NETIF_F_HW_VLAN_TX) && 389 !(slave_dev->features & NETIF_F_HW_VLAN_TX) &&
@@ -4528,8 +4528,7 @@ static void bond_free_all(void)
4528 netif_tx_unlock_bh(bond_dev); 4528 netif_tx_unlock_bh(bond_dev);
4529 /* Release the bonded slaves */ 4529 /* Release the bonded slaves */
4530 bond_release_all(bond_dev); 4530 bond_release_all(bond_dev);
4531 bond_deinit(bond_dev); 4531 bond_destroy(bond);
4532 unregister_netdevice(bond_dev);
4533 } 4532 }
4534 4533
4535#ifdef CONFIG_PROC_FS 4534#ifdef CONFIG_PROC_FS
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index 67ccad69d445..a3c74e20aa53 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -22,8 +22,8 @@
22#include "bond_3ad.h" 22#include "bond_3ad.h"
23#include "bond_alb.h" 23#include "bond_alb.h"
24 24
25#define DRV_VERSION "3.2.4" 25#define DRV_VERSION "3.2.5"
26#define DRV_RELDATE "January 28, 2008" 26#define DRV_RELDATE "March 21, 2008"
27#define DRV_NAME "bonding" 27#define DRV_NAME "bonding"
28#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver" 28#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
29 29
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 979f3fc5e765..98a6bbd11d4c 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -557,9 +557,9 @@ static void t3_free_qset(struct adapter *adapter, struct sge_qset *q)
557 557
558 for (i = 0; i < SGE_RXQ_PER_SET; ++i) 558 for (i = 0; i < SGE_RXQ_PER_SET; ++i)
559 if (q->fl[i].desc) { 559 if (q->fl[i].desc) {
560 spin_lock(&adapter->sge.reg_lock); 560 spin_lock_irq(&adapter->sge.reg_lock);
561 t3_sge_disable_fl(adapter, q->fl[i].cntxt_id); 561 t3_sge_disable_fl(adapter, q->fl[i].cntxt_id);
562 spin_unlock(&adapter->sge.reg_lock); 562 spin_unlock_irq(&adapter->sge.reg_lock);
563 free_rx_bufs(pdev, &q->fl[i]); 563 free_rx_bufs(pdev, &q->fl[i]);
564 kfree(q->fl[i].sdesc); 564 kfree(q->fl[i].sdesc);
565 dma_free_coherent(&pdev->dev, 565 dma_free_coherent(&pdev->dev,
@@ -570,9 +570,9 @@ static void t3_free_qset(struct adapter *adapter, struct sge_qset *q)
570 570
571 for (i = 0; i < SGE_TXQ_PER_SET; ++i) 571 for (i = 0; i < SGE_TXQ_PER_SET; ++i)
572 if (q->txq[i].desc) { 572 if (q->txq[i].desc) {
573 spin_lock(&adapter->sge.reg_lock); 573 spin_lock_irq(&adapter->sge.reg_lock);
574 t3_sge_enable_ecntxt(adapter, q->txq[i].cntxt_id, 0); 574 t3_sge_enable_ecntxt(adapter, q->txq[i].cntxt_id, 0);
575 spin_unlock(&adapter->sge.reg_lock); 575 spin_unlock_irq(&adapter->sge.reg_lock);
576 if (q->txq[i].sdesc) { 576 if (q->txq[i].sdesc) {
577 free_tx_desc(adapter, &q->txq[i], 577 free_tx_desc(adapter, &q->txq[i],
578 q->txq[i].in_use); 578 q->txq[i].in_use);
@@ -586,9 +586,9 @@ static void t3_free_qset(struct adapter *adapter, struct sge_qset *q)
586 } 586 }
587 587
588 if (q->rspq.desc) { 588 if (q->rspq.desc) {
589 spin_lock(&adapter->sge.reg_lock); 589 spin_lock_irq(&adapter->sge.reg_lock);
590 t3_sge_disable_rspcntxt(adapter, q->rspq.cntxt_id); 590 t3_sge_disable_rspcntxt(adapter, q->rspq.cntxt_id);
591 spin_unlock(&adapter->sge.reg_lock); 591 spin_unlock_irq(&adapter->sge.reg_lock);
592 dma_free_coherent(&pdev->dev, 592 dma_free_coherent(&pdev->dev,
593 q->rspq.size * sizeof(struct rsp_desc), 593 q->rspq.size * sizeof(struct rsp_desc),
594 q->rspq.desc, q->rspq.phys_addr); 594 q->rspq.desc, q->rspq.phys_addr);
@@ -1107,9 +1107,15 @@ int t3_eth_xmit(struct sk_buff *skb, struct net_device *dev)
1107 } 1107 }
1108 1108
1109 q->in_use += ndesc; 1109 q->in_use += ndesc;
1110 if (unlikely(credits - ndesc < q->stop_thres)) 1110 if (unlikely(credits - ndesc < q->stop_thres)) {
1111 if (USE_GTS || !should_restart_tx(q)) 1111 t3_stop_queue(dev, qs, q);
1112 t3_stop_queue(dev, qs, q); 1112
1113 if (should_restart_tx(q) &&
1114 test_and_clear_bit(TXQ_ETH, &qs->txq_stopped)) {
1115 q->restarts++;
1116 netif_wake_queue(dev);
1117 }
1118 }
1113 1119
1114 gen = q->gen; 1120 gen = q->gen;
1115 q->unacked += ndesc; 1121 q->unacked += ndesc;
@@ -2661,7 +2667,7 @@ int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
2661 (16 * 1024) - SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) : 2667 (16 * 1024) - SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) :
2662 MAX_FRAME_SIZE + 2 + sizeof(struct cpl_rx_pkt); 2668 MAX_FRAME_SIZE + 2 + sizeof(struct cpl_rx_pkt);
2663 2669
2664 spin_lock(&adapter->sge.reg_lock); 2670 spin_lock_irq(&adapter->sge.reg_lock);
2665 2671
2666 /* FL threshold comparison uses < */ 2672 /* FL threshold comparison uses < */
2667 ret = t3_sge_init_rspcntxt(adapter, q->rspq.cntxt_id, irq_vec_idx, 2673 ret = t3_sge_init_rspcntxt(adapter, q->rspq.cntxt_id, irq_vec_idx,
@@ -2705,7 +2711,7 @@ int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
2705 goto err_unlock; 2711 goto err_unlock;
2706 } 2712 }
2707 2713
2708 spin_unlock(&adapter->sge.reg_lock); 2714 spin_unlock_irq(&adapter->sge.reg_lock);
2709 2715
2710 q->adap = adapter; 2716 q->adap = adapter;
2711 q->netdev = dev; 2717 q->netdev = dev;
@@ -2722,7 +2728,7 @@ int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
2722 return 0; 2728 return 0;
2723 2729
2724 err_unlock: 2730 err_unlock:
2725 spin_unlock(&adapter->sge.reg_lock); 2731 spin_unlock_irq(&adapter->sge.reg_lock);
2726 err: 2732 err:
2727 t3_free_qset(adapter, q); 2733 t3_free_qset(adapter, q);
2728 return ret; 2734 return ret;
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 1fe305ca2cf0..d63cc93f055d 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -798,8 +798,6 @@ dm9000_init_dm9000(struct net_device *dev)
798 /* Set address filter table */ 798 /* Set address filter table */
799 dm9000_hash_table(dev); 799 dm9000_hash_table(dev);
800 800
801 /* Activate DM9000 */
802 iow(db, DM9000_RCR, RCR_DIS_LONG | RCR_DIS_CRC | RCR_RXEN);
803 /* Enable TX/RX interrupt mask */ 801 /* Enable TX/RX interrupt mask */
804 iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM); 802 iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM);
805 803
@@ -970,7 +968,7 @@ dm9000_interrupt(int irq, void *dev_id)
970struct dm9000_rxhdr { 968struct dm9000_rxhdr {
971 u8 RxPktReady; 969 u8 RxPktReady;
972 u8 RxStatus; 970 u8 RxStatus;
973 u16 RxLen; 971 __le16 RxLen;
974} __attribute__((__packed__)); 972} __attribute__((__packed__));
975 973
976/* 974/*
@@ -1197,6 +1195,7 @@ dm9000_hash_table(struct net_device *dev)
1197 int i, oft; 1195 int i, oft;
1198 u32 hash_val; 1196 u32 hash_val;
1199 u16 hash_table[4]; 1197 u16 hash_table[4];
1198 u8 rcr = RCR_DIS_LONG | RCR_DIS_CRC | RCR_RXEN;
1200 unsigned long flags; 1199 unsigned long flags;
1201 1200
1202 dm9000_dbg(db, 1, "entering %s\n", __func__); 1201 dm9000_dbg(db, 1, "entering %s\n", __func__);
@@ -1213,6 +1212,12 @@ dm9000_hash_table(struct net_device *dev)
1213 /* broadcast address */ 1212 /* broadcast address */
1214 hash_table[3] = 0x8000; 1213 hash_table[3] = 0x8000;
1215 1214
1215 if (dev->flags & IFF_PROMISC)
1216 rcr |= RCR_PRMSC;
1217
1218 if (dev->flags & IFF_ALLMULTI)
1219 rcr |= RCR_ALL;
1220
1216 /* the multicast address in Hash Table : 64 bits */ 1221 /* the multicast address in Hash Table : 64 bits */
1217 for (i = 0; i < mc_cnt; i++, mcptr = mcptr->next) { 1222 for (i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
1218 hash_val = ether_crc_le(6, mcptr->dmi_addr) & 0x3f; 1223 hash_val = ether_crc_le(6, mcptr->dmi_addr) & 0x3f;
@@ -1225,6 +1230,7 @@ dm9000_hash_table(struct net_device *dev)
1225 iow(db, oft++, hash_table[i] >> 8); 1230 iow(db, oft++, hash_table[i] >> 8);
1226 } 1231 }
1227 1232
1233 iow(db, DM9000_RCR, rcr);
1228 spin_unlock_irqrestore(&db->lock, flags); 1234 spin_unlock_irqrestore(&db->lock, flags);
1229} 1235}
1230 1236
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 36ba6dc96acc..2d139ec79777 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -960,7 +960,7 @@ static void e100_get_defaults(struct nic *nic)
960 960
961 /* Template for a freshly allocated RFD */ 961 /* Template for a freshly allocated RFD */
962 nic->blank_rfd.command = 0; 962 nic->blank_rfd.command = 0;
963 nic->blank_rfd.rbd = 0xFFFFFFFF; 963 nic->blank_rfd.rbd = cpu_to_le32(0xFFFFFFFF);
964 nic->blank_rfd.size = cpu_to_le16(VLAN_ETH_FRAME_LEN); 964 nic->blank_rfd.size = cpu_to_le16(VLAN_ETH_FRAME_LEN);
965 965
966 /* MII setup */ 966 /* MII setup */
@@ -2782,16 +2782,13 @@ static void __devexit e100_remove(struct pci_dev *pdev)
2782 } 2782 }
2783} 2783}
2784 2784
2785#ifdef CONFIG_PM
2786static int e100_suspend(struct pci_dev *pdev, pm_message_t state) 2785static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
2787{ 2786{
2788 struct net_device *netdev = pci_get_drvdata(pdev); 2787 struct net_device *netdev = pci_get_drvdata(pdev);
2789 struct nic *nic = netdev_priv(netdev); 2788 struct nic *nic = netdev_priv(netdev);
2790 2789
2791 if (netif_running(netdev)) 2790 if (netif_running(netdev))
2792 napi_disable(&nic->napi); 2791 e100_down(nic);
2793 del_timer_sync(&nic->watchdog);
2794 netif_carrier_off(nic->netdev);
2795 netif_device_detach(netdev); 2792 netif_device_detach(netdev);
2796 2793
2797 pci_save_state(pdev); 2794 pci_save_state(pdev);
@@ -2804,14 +2801,13 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
2804 pci_enable_wake(pdev, PCI_D3cold, 0); 2801 pci_enable_wake(pdev, PCI_D3cold, 0);
2805 } 2802 }
2806 2803
2807 free_irq(pdev->irq, netdev);
2808
2809 pci_disable_device(pdev); 2804 pci_disable_device(pdev);
2810 pci_set_power_state(pdev, PCI_D3hot); 2805 pci_set_power_state(pdev, PCI_D3hot);
2811 2806
2812 return 0; 2807 return 0;
2813} 2808}
2814 2809
2810#ifdef CONFIG_PM
2815static int e100_resume(struct pci_dev *pdev) 2811static int e100_resume(struct pci_dev *pdev)
2816{ 2812{
2817 struct net_device *netdev = pci_get_drvdata(pdev); 2813 struct net_device *netdev = pci_get_drvdata(pdev);
@@ -2832,26 +2828,7 @@ static int e100_resume(struct pci_dev *pdev)
2832 2828
2833static void e100_shutdown(struct pci_dev *pdev) 2829static void e100_shutdown(struct pci_dev *pdev)
2834{ 2830{
2835 struct net_device *netdev = pci_get_drvdata(pdev); 2831 e100_suspend(pdev, PMSG_SUSPEND);
2836 struct nic *nic = netdev_priv(netdev);
2837
2838 if (netif_running(netdev))
2839 napi_disable(&nic->napi);
2840 del_timer_sync(&nic->watchdog);
2841 netif_carrier_off(nic->netdev);
2842
2843 if ((nic->flags & wol_magic) | e100_asf(nic)) {
2844 pci_enable_wake(pdev, PCI_D3hot, 1);
2845 pci_enable_wake(pdev, PCI_D3cold, 1);
2846 } else {
2847 pci_enable_wake(pdev, PCI_D3hot, 0);
2848 pci_enable_wake(pdev, PCI_D3cold, 0);
2849 }
2850
2851 free_irq(pdev->irq, netdev);
2852
2853 pci_disable_device(pdev);
2854 pci_set_power_state(pdev, PCI_D3hot);
2855} 2832}
2856 2833
2857/* ------------------ PCI Error Recovery infrastructure -------------- */ 2834/* ------------------ PCI Error Recovery infrastructure -------------- */
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 7c4ead35cfa2..93b7fb246960 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -40,7 +40,7 @@
40#include <asm/io.h> 40#include <asm/io.h>
41 41
42#define DRV_NAME "ehea" 42#define DRV_NAME "ehea"
43#define DRV_VERSION "EHEA_0087" 43#define DRV_VERSION "EHEA_0089"
44 44
45/* eHEA capability flags */ 45/* eHEA capability flags */
46#define DLPAR_PORT_ADD_REM 1 46#define DLPAR_PORT_ADD_REM 1
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 21af674b764e..07c742dd3f09 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -3108,7 +3108,7 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
3108 dev->vlan_rx_add_vid = ehea_vlan_rx_add_vid; 3108 dev->vlan_rx_add_vid = ehea_vlan_rx_add_vid;
3109 dev->vlan_rx_kill_vid = ehea_vlan_rx_kill_vid; 3109 dev->vlan_rx_kill_vid = ehea_vlan_rx_kill_vid;
3110 dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO 3110 dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO
3111 | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | NETIF_F_HW_VLAN_TX 3111 | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX
3112 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER 3112 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER
3113 | NETIF_F_LLTX; 3113 | NETIF_F_LLTX;
3114 dev->tx_timeout = &ehea_tx_watchdog; 3114 dev->tx_timeout = &ehea_tx_watchdog;
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index 0809a6a5a286..46a90e9ec563 100644
--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -900,7 +900,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
900 if (RSV_GETBIT(rxstat, RSV_LENCHECKERR)) 900 if (RSV_GETBIT(rxstat, RSV_LENCHECKERR))
901 ndev->stats.rx_frame_errors++; 901 ndev->stats.rx_frame_errors++;
902 } else { 902 } else {
903 skb = dev_alloc_skb(len); 903 skb = dev_alloc_skb(len + NET_IP_ALIGN);
904 if (!skb) { 904 if (!skb) {
905 if (netif_msg_rx_err(priv)) 905 if (netif_msg_rx_err(priv))
906 dev_err(&ndev->dev, 906 dev_err(&ndev->dev,
@@ -908,6 +908,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
908 ndev->stats.rx_dropped++; 908 ndev->stats.rx_dropped++;
909 } else { 909 } else {
910 skb->dev = ndev; 910 skb->dev = ndev;
911 skb_reserve(skb, NET_IP_ALIGN);
911 /* copy the packet from the receive buffer */ 912 /* copy the packet from the receive buffer */
912 enc28j60_mem_read(priv, priv->next_pk_ptr + sizeof(rsv), 913 enc28j60_mem_read(priv, priv->next_pk_ptr + sizeof(rsv),
913 len, skb_put(skb, len)); 914 len, skb_put(skb, len));
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index 0b365b8d947b..76118ddd1042 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -131,8 +131,8 @@ IIIa. Ring buffers
131 131
132IVb. References 132IVb. References
133 133
134http://www.smsc.com/main/datasheets/83c171.pdf 134http://www.smsc.com/main/tools/discontinued/83c171.pdf
135http://www.smsc.com/main/datasheets/83c175.pdf 135http://www.smsc.com/main/tools/discontinued/83c175.pdf
136http://scyld.com/expert/NWay.html 136http://scyld.com/expert/NWay.html
137http://www.national.com/pf/DP/DP83840A.html 137http://www.national.com/pf/DP/DP83840A.html
138 138
@@ -227,7 +227,12 @@ static const u16 media2miictl[16] = {
227 0, 0x0C00, 0x0C00, 0x2000, 0x0100, 0x2100, 0, 0, 227 0, 0x0C00, 0x0C00, 0x2000, 0x0100, 0x2100, 0, 0,
228 0, 0, 0, 0, 0, 0, 0, 0 }; 228 0, 0, 0, 0, 0, 0, 0, 0 };
229 229
230/* The EPIC100 Rx and Tx buffer descriptors. */ 230/*
231 * The EPIC100 Rx and Tx buffer descriptors. Note that these
232 * really ARE host-endian; it's not a misannotation. We tell
233 * the card to byteswap them internally on big-endian hosts -
234 * look for #ifdef CONFIG_BIG_ENDIAN in epic_open().
235 */
231 236
232struct epic_tx_desc { 237struct epic_tx_desc {
233 u32 txstatus; 238 u32 txstatus;
@@ -418,7 +423,7 @@ static int __devinit epic_init_one (struct pci_dev *pdev,
418 423
419 /* Note: the '175 does not have a serial EEPROM. */ 424 /* Note: the '175 does not have a serial EEPROM. */
420 for (i = 0; i < 3; i++) 425 for (i = 0; i < 3; i++)
421 ((u16 *)dev->dev_addr)[i] = le16_to_cpu(inw(ioaddr + LAN0 + i*4)); 426 ((__le16 *)dev->dev_addr)[i] = cpu_to_le16(inw(ioaddr + LAN0 + i*4));
422 427
423 if (debug > 2) { 428 if (debug > 2) {
424 dev_printk(KERN_DEBUG, &pdev->dev, "EEPROM contents:\n"); 429 dev_printk(KERN_DEBUG, &pdev->dev, "EEPROM contents:\n");
@@ -682,7 +687,8 @@ static int epic_open(struct net_device *dev)
682 if (ep->chip_flags & MII_PWRDWN) 687 if (ep->chip_flags & MII_PWRDWN)
683 outl((inl(ioaddr + NVCTL) & ~0x003C) | 0x4800, ioaddr + NVCTL); 688 outl((inl(ioaddr + NVCTL) & ~0x003C) | 0x4800, ioaddr + NVCTL);
684 689
685#if defined(__powerpc__) || defined(__sparc__) /* Big endian */ 690 /* Tell the chip to byteswap descriptors on big-endian hosts */
691#ifdef CONFIG_BIG_ENDIAN
686 outl(0x4432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); 692 outl(0x4432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL);
687 inl(ioaddr + GENCTL); 693 inl(ioaddr + GENCTL);
688 outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); 694 outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL);
@@ -695,7 +701,7 @@ static int epic_open(struct net_device *dev)
695 udelay(20); /* Looks like EPII needs that if you want reliable RX init. FIXME: pci posting bug? */ 701 udelay(20); /* Looks like EPII needs that if you want reliable RX init. FIXME: pci posting bug? */
696 702
697 for (i = 0; i < 3; i++) 703 for (i = 0; i < 3; i++)
698 outl(cpu_to_le16(((u16*)dev->dev_addr)[i]), ioaddr + LAN0 + i*4); 704 outl(le16_to_cpu(((__le16*)dev->dev_addr)[i]), ioaddr + LAN0 + i*4);
699 705
700 ep->tx_threshold = TX_FIFO_THRESH; 706 ep->tx_threshold = TX_FIFO_THRESH;
701 outl(ep->tx_threshold, ioaddr + TxThresh); 707 outl(ep->tx_threshold, ioaddr + TxThresh);
@@ -798,7 +804,7 @@ static void epic_restart(struct net_device *dev)
798 for (i = 16; i > 0; i--) 804 for (i = 16; i > 0; i--)
799 outl(0x0008, ioaddr + TEST1); 805 outl(0x0008, ioaddr + TEST1);
800 806
801#if defined(__powerpc__) || defined(__sparc__) /* Big endian */ 807#ifdef CONFIG_BIG_ENDIAN
802 outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); 808 outl(0x0432 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL);
803#else 809#else
804 outl(0x0412 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL); 810 outl(0x0412 | (RX_FIFO_THRESH<<8), ioaddr + GENCTL);
@@ -808,7 +814,7 @@ static void epic_restart(struct net_device *dev)
808 outl((inl(ioaddr + NVCTL) & ~0x003C) | 0x4800, ioaddr + NVCTL); 814 outl((inl(ioaddr + NVCTL) & ~0x003C) | 0x4800, ioaddr + NVCTL);
809 815
810 for (i = 0; i < 3; i++) 816 for (i = 0; i < 3; i++)
811 outl(cpu_to_le16(((u16*)dev->dev_addr)[i]), ioaddr + LAN0 + i*4); 817 outl(le16_to_cpu(((__le16*)dev->dev_addr)[i]), ioaddr + LAN0 + i*4);
812 818
813 ep->tx_threshold = TX_FIFO_THRESH; 819 ep->tx_threshold = TX_FIFO_THRESH;
814 outl(ep->tx_threshold, ioaddr + TxThresh); 820 outl(ep->tx_threshold, ioaddr + TxThresh);
@@ -919,7 +925,7 @@ static void epic_init_ring(struct net_device *dev)
919 /* Initialize all Rx descriptors. */ 925 /* Initialize all Rx descriptors. */
920 for (i = 0; i < RX_RING_SIZE; i++) { 926 for (i = 0; i < RX_RING_SIZE; i++) {
921 ep->rx_ring[i].rxstatus = 0; 927 ep->rx_ring[i].rxstatus = 0;
922 ep->rx_ring[i].buflength = cpu_to_le32(ep->rx_buf_sz); 928 ep->rx_ring[i].buflength = ep->rx_buf_sz;
923 ep->rx_ring[i].next = ep->rx_ring_dma + 929 ep->rx_ring[i].next = ep->rx_ring_dma +
924 (i+1)*sizeof(struct epic_rx_desc); 930 (i+1)*sizeof(struct epic_rx_desc);
925 ep->rx_skbuff[i] = NULL; 931 ep->rx_skbuff[i] = NULL;
@@ -936,7 +942,7 @@ static void epic_init_ring(struct net_device *dev)
936 skb_reserve(skb, 2); /* 16 byte align the IP header. */ 942 skb_reserve(skb, 2); /* 16 byte align the IP header. */
937 ep->rx_ring[i].bufaddr = pci_map_single(ep->pci_dev, 943 ep->rx_ring[i].bufaddr = pci_map_single(ep->pci_dev,
938 skb->data, ep->rx_buf_sz, PCI_DMA_FROMDEVICE); 944 skb->data, ep->rx_buf_sz, PCI_DMA_FROMDEVICE);
939 ep->rx_ring[i].rxstatus = cpu_to_le32(DescOwn); 945 ep->rx_ring[i].rxstatus = DescOwn;
940 } 946 }
941 ep->dirty_rx = (unsigned int)(i - RX_RING_SIZE); 947 ep->dirty_rx = (unsigned int)(i - RX_RING_SIZE);
942 948
@@ -974,20 +980,20 @@ static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev)
974 ep->tx_ring[entry].bufaddr = pci_map_single(ep->pci_dev, skb->data, 980 ep->tx_ring[entry].bufaddr = pci_map_single(ep->pci_dev, skb->data,
975 skb->len, PCI_DMA_TODEVICE); 981 skb->len, PCI_DMA_TODEVICE);
976 if (free_count < TX_QUEUE_LEN/2) {/* Typical path */ 982 if (free_count < TX_QUEUE_LEN/2) {/* Typical path */
977 ctrl_word = cpu_to_le32(0x100000); /* No interrupt */ 983 ctrl_word = 0x100000; /* No interrupt */
978 } else if (free_count == TX_QUEUE_LEN/2) { 984 } else if (free_count == TX_QUEUE_LEN/2) {
979 ctrl_word = cpu_to_le32(0x140000); /* Tx-done intr. */ 985 ctrl_word = 0x140000; /* Tx-done intr. */
980 } else if (free_count < TX_QUEUE_LEN - 1) { 986 } else if (free_count < TX_QUEUE_LEN - 1) {
981 ctrl_word = cpu_to_le32(0x100000); /* No Tx-done intr. */ 987 ctrl_word = 0x100000; /* No Tx-done intr. */
982 } else { 988 } else {
983 /* Leave room for an additional entry. */ 989 /* Leave room for an additional entry. */
984 ctrl_word = cpu_to_le32(0x140000); /* Tx-done intr. */ 990 ctrl_word = 0x140000; /* Tx-done intr. */
985 ep->tx_full = 1; 991 ep->tx_full = 1;
986 } 992 }
987 ep->tx_ring[entry].buflength = ctrl_word | cpu_to_le32(skb->len); 993 ep->tx_ring[entry].buflength = ctrl_word | skb->len;
988 ep->tx_ring[entry].txstatus = 994 ep->tx_ring[entry].txstatus =
989 ((skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN) << 16) 995 ((skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN) << 16)
990 | cpu_to_le32(DescOwn); 996 | DescOwn;
991 997
992 ep->cur_tx++; 998 ep->cur_tx++;
993 if (ep->tx_full) 999 if (ep->tx_full)
@@ -1041,7 +1047,7 @@ static void epic_tx(struct net_device *dev, struct epic_private *ep)
1041 for (dirty_tx = ep->dirty_tx; cur_tx - dirty_tx > 0; dirty_tx++) { 1047 for (dirty_tx = ep->dirty_tx; cur_tx - dirty_tx > 0; dirty_tx++) {
1042 struct sk_buff *skb; 1048 struct sk_buff *skb;
1043 int entry = dirty_tx % TX_RING_SIZE; 1049 int entry = dirty_tx % TX_RING_SIZE;
1044 int txstatus = le32_to_cpu(ep->tx_ring[entry].txstatus); 1050 int txstatus = ep->tx_ring[entry].txstatus;
1045 1051
1046 if (txstatus & DescOwn) 1052 if (txstatus & DescOwn)
1047 break; /* It still hasn't been Txed */ 1053 break; /* It still hasn't been Txed */
@@ -1163,8 +1169,8 @@ static int epic_rx(struct net_device *dev, int budget)
1163 rx_work_limit = budget; 1169 rx_work_limit = budget;
1164 1170
1165 /* If we own the next entry, it's a new packet. Send it up. */ 1171 /* If we own the next entry, it's a new packet. Send it up. */
1166 while ((ep->rx_ring[entry].rxstatus & cpu_to_le32(DescOwn)) == 0) { 1172 while ((ep->rx_ring[entry].rxstatus & DescOwn) == 0) {
1167 int status = le32_to_cpu(ep->rx_ring[entry].rxstatus); 1173 int status = ep->rx_ring[entry].rxstatus;
1168 1174
1169 if (debug > 4) 1175 if (debug > 4)
1170 printk(KERN_DEBUG " epic_rx() status was %8.8x.\n", status); 1176 printk(KERN_DEBUG " epic_rx() status was %8.8x.\n", status);
@@ -1238,7 +1244,8 @@ static int epic_rx(struct net_device *dev, int budget)
1238 skb->data, ep->rx_buf_sz, PCI_DMA_FROMDEVICE); 1244 skb->data, ep->rx_buf_sz, PCI_DMA_FROMDEVICE);
1239 work_done++; 1245 work_done++;
1240 } 1246 }
1241 ep->rx_ring[entry].rxstatus = cpu_to_le32(DescOwn); 1247 /* AV: shouldn't we add a barrier here? */
1248 ep->rx_ring[entry].rxstatus = DescOwn;
1242 } 1249 }
1243 return work_done; 1250 return work_done;
1244} 1251}
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c
index 1837584c4504..6a3ac4ea97e9 100644
--- a/drivers/net/fec_mpc52xx_phy.c
+++ b/drivers/net/fec_mpc52xx_phy.c
@@ -109,7 +109,8 @@ static int mpc52xx_fec_mdio_probe(struct of_device *of, const struct of_device_i
109 int irq = irq_of_parse_and_map(child, 0); 109 int irq = irq_of_parse_and_map(child, 0);
110 if (irq != NO_IRQ) { 110 if (irq != NO_IRQ) {
111 const u32 *id = of_get_property(child, "reg", NULL); 111 const u32 *id = of_get_property(child, "reg", NULL);
112 bus->irq[*id] = irq; 112 if (id)
113 bus->irq[*id] = irq;
113 } 114 }
114 } 115 }
115 116
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 801b4d9cd972..6f7e3fde9e7c 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -184,6 +184,7 @@
184#define DEV_HAS_PAUSEFRAME_TX_V1 0x08000 /* device supports tx pause frames version 1 */ 184#define DEV_HAS_PAUSEFRAME_TX_V1 0x08000 /* device supports tx pause frames version 1 */
185#define DEV_HAS_PAUSEFRAME_TX_V2 0x10000 /* device supports tx pause frames version 2 */ 185#define DEV_HAS_PAUSEFRAME_TX_V2 0x10000 /* device supports tx pause frames version 2 */
186#define DEV_HAS_PAUSEFRAME_TX_V3 0x20000 /* device supports tx pause frames version 3 */ 186#define DEV_HAS_PAUSEFRAME_TX_V3 0x20000 /* device supports tx pause frames version 3 */
187#define DEV_NEED_TX_LIMIT 0x40000 /* device needs to limit tx */
187 188
188enum { 189enum {
189 NvRegIrqStatus = 0x000, 190 NvRegIrqStatus = 0x000,
@@ -635,6 +636,8 @@ union ring_type {
635#define NV_RESTART_TX 0x1 636#define NV_RESTART_TX 0x1
636#define NV_RESTART_RX 0x2 637#define NV_RESTART_RX 0x2
637 638
639#define NV_TX_LIMIT_COUNT 16
640
638/* statistics */ 641/* statistics */
639struct nv_ethtool_str { 642struct nv_ethtool_str {
640 char name[ETH_GSTRING_LEN]; 643 char name[ETH_GSTRING_LEN];
@@ -743,6 +746,8 @@ struct nv_skb_map {
743 struct sk_buff *skb; 746 struct sk_buff *skb;
744 dma_addr_t dma; 747 dma_addr_t dma;
745 unsigned int dma_len; 748 unsigned int dma_len;
749 struct ring_desc_ex *first_tx_desc;
750 struct nv_skb_map *next_tx_ctx;
746}; 751};
747 752
748/* 753/*
@@ -827,6 +832,10 @@ struct fe_priv {
827 union ring_type tx_ring; 832 union ring_type tx_ring;
828 u32 tx_flags; 833 u32 tx_flags;
829 int tx_ring_size; 834 int tx_ring_size;
835 int tx_limit;
836 u32 tx_pkts_in_progress;
837 struct nv_skb_map *tx_change_owner;
838 struct nv_skb_map *tx_end_flip;
830 int tx_stop; 839 int tx_stop;
831 840
832 /* vlan fields */ 841 /* vlan fields */
@@ -1707,6 +1716,9 @@ static void nv_init_tx(struct net_device *dev)
1707 np->last_tx.ex = &np->tx_ring.ex[np->tx_ring_size-1]; 1716 np->last_tx.ex = &np->tx_ring.ex[np->tx_ring_size-1];
1708 np->get_tx_ctx = np->put_tx_ctx = np->first_tx_ctx = np->tx_skb; 1717 np->get_tx_ctx = np->put_tx_ctx = np->first_tx_ctx = np->tx_skb;
1709 np->last_tx_ctx = &np->tx_skb[np->tx_ring_size-1]; 1718 np->last_tx_ctx = &np->tx_skb[np->tx_ring_size-1];
1719 np->tx_pkts_in_progress = 0;
1720 np->tx_change_owner = NULL;
1721 np->tx_end_flip = NULL;
1710 1722
1711 for (i = 0; i < np->tx_ring_size; i++) { 1723 for (i = 0; i < np->tx_ring_size; i++) {
1712 if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { 1724 if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) {
@@ -1720,6 +1732,9 @@ static void nv_init_tx(struct net_device *dev)
1720 } 1732 }
1721 np->tx_skb[i].skb = NULL; 1733 np->tx_skb[i].skb = NULL;
1722 np->tx_skb[i].dma = 0; 1734 np->tx_skb[i].dma = 0;
1735 np->tx_skb[i].dma_len = 0;
1736 np->tx_skb[i].first_tx_desc = NULL;
1737 np->tx_skb[i].next_tx_ctx = NULL;
1723 } 1738 }
1724} 1739}
1725 1740
@@ -1771,7 +1786,14 @@ static void nv_drain_tx(struct net_device *dev)
1771 } 1786 }
1772 if (nv_release_txskb(dev, &np->tx_skb[i])) 1787 if (nv_release_txskb(dev, &np->tx_skb[i]))
1773 dev->stats.tx_dropped++; 1788 dev->stats.tx_dropped++;
1789 np->tx_skb[i].dma = 0;
1790 np->tx_skb[i].dma_len = 0;
1791 np->tx_skb[i].first_tx_desc = NULL;
1792 np->tx_skb[i].next_tx_ctx = NULL;
1774 } 1793 }
1794 np->tx_pkts_in_progress = 0;
1795 np->tx_change_owner = NULL;
1796 np->tx_end_flip = NULL;
1775} 1797}
1776 1798
1777static void nv_drain_rx(struct net_device *dev) 1799static void nv_drain_rx(struct net_device *dev)
@@ -1948,6 +1970,7 @@ static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev)
1948 struct ring_desc_ex* start_tx; 1970 struct ring_desc_ex* start_tx;
1949 struct ring_desc_ex* prev_tx; 1971 struct ring_desc_ex* prev_tx;
1950 struct nv_skb_map* prev_tx_ctx; 1972 struct nv_skb_map* prev_tx_ctx;
1973 struct nv_skb_map* start_tx_ctx;
1951 1974
1952 /* add fragments to entries count */ 1975 /* add fragments to entries count */
1953 for (i = 0; i < fragments; i++) { 1976 for (i = 0; i < fragments; i++) {
@@ -1965,6 +1988,7 @@ static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev)
1965 } 1988 }
1966 1989
1967 start_tx = put_tx = np->put_tx.ex; 1990 start_tx = put_tx = np->put_tx.ex;
1991 start_tx_ctx = np->put_tx_ctx;
1968 1992
1969 /* setup the header buffer */ 1993 /* setup the header buffer */
1970 do { 1994 do {
@@ -2037,6 +2061,26 @@ static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev)
2037 2061
2038 spin_lock_irq(&np->lock); 2062 spin_lock_irq(&np->lock);
2039 2063
2064 if (np->tx_limit) {
2065 /* Limit the number of outstanding tx. Setup all fragments, but
2066 * do not set the VALID bit on the first descriptor. Save a pointer
2067 * to that descriptor and also for next skb_map element.
2068 */
2069
2070 if (np->tx_pkts_in_progress == NV_TX_LIMIT_COUNT) {
2071 if (!np->tx_change_owner)
2072 np->tx_change_owner = start_tx_ctx;
2073
2074 /* remove VALID bit */
2075 tx_flags &= ~NV_TX2_VALID;
2076 start_tx_ctx->first_tx_desc = start_tx;
2077 start_tx_ctx->next_tx_ctx = np->put_tx_ctx;
2078 np->tx_end_flip = np->put_tx_ctx;
2079 } else {
2080 np->tx_pkts_in_progress++;
2081 }
2082 }
2083
2040 /* set tx flags */ 2084 /* set tx flags */
2041 start_tx->flaglen |= cpu_to_le32(tx_flags | tx_flags_extra); 2085 start_tx->flaglen |= cpu_to_le32(tx_flags | tx_flags_extra);
2042 np->put_tx.ex = put_tx; 2086 np->put_tx.ex = put_tx;
@@ -2060,6 +2104,25 @@ static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev)
2060 return NETDEV_TX_OK; 2104 return NETDEV_TX_OK;
2061} 2105}
2062 2106
2107static inline void nv_tx_flip_ownership(struct net_device *dev)
2108{
2109 struct fe_priv *np = netdev_priv(dev);
2110
2111 np->tx_pkts_in_progress--;
2112 if (np->tx_change_owner) {
2113 __le32 flaglen = le32_to_cpu(np->tx_change_owner->first_tx_desc->flaglen);
2114 flaglen |= NV_TX2_VALID;
2115 np->tx_change_owner->first_tx_desc->flaglen = cpu_to_le32(flaglen);
2116 np->tx_pkts_in_progress++;
2117
2118 np->tx_change_owner = np->tx_change_owner->next_tx_ctx;
2119 if (np->tx_change_owner == np->tx_end_flip)
2120 np->tx_change_owner = NULL;
2121
2122 writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
2123 }
2124}
2125
2063/* 2126/*
2064 * nv_tx_done: check for completed packets, release the skbs. 2127 * nv_tx_done: check for completed packets, release the skbs.
2065 * 2128 *
@@ -2147,6 +2210,10 @@ static void nv_tx_done_optimized(struct net_device *dev, int limit)
2147 dev->stats.tx_packets++; 2210 dev->stats.tx_packets++;
2148 dev_kfree_skb_any(np->get_tx_ctx->skb); 2211 dev_kfree_skb_any(np->get_tx_ctx->skb);
2149 np->get_tx_ctx->skb = NULL; 2212 np->get_tx_ctx->skb = NULL;
2213
2214 if (np->tx_limit) {
2215 nv_tx_flip_ownership(dev);
2216 }
2150 } 2217 }
2151 if (unlikely(np->get_tx.ex++ == np->last_tx.ex)) 2218 if (unlikely(np->get_tx.ex++ == np->last_tx.ex))
2152 np->get_tx.ex = np->first_tx.ex; 2219 np->get_tx.ex = np->first_tx.ex;
@@ -5333,6 +5400,21 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5333 np->need_linktimer = 0; 5400 np->need_linktimer = 0;
5334 } 5401 }
5335 5402
5403 /* Limit the number of tx's outstanding for hw bug */
5404 if (id->driver_data & DEV_NEED_TX_LIMIT) {
5405 np->tx_limit = 1;
5406 if ((id->device == PCI_DEVICE_ID_NVIDIA_NVENET_32 ||
5407 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_33 ||
5408 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_34 ||
5409 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_35 ||
5410 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_36 ||
5411 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_37 ||
5412 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_38 ||
5413 id->device == PCI_DEVICE_ID_NVIDIA_NVENET_39) &&
5414 pci_dev->revision >= 0xA2)
5415 np->tx_limit = 0;
5416 }
5417
5336 /* clear phy state and temporarily halt phy interrupts */ 5418 /* clear phy state and temporarily halt phy interrupts */
5337 writel(0, base + NvRegMIIMask); 5419 writel(0, base + NvRegMIIMask);
5338 phystate = readl(base + NvRegAdapterControl); 5420 phystate = readl(base + NvRegAdapterControl);
@@ -5563,19 +5645,19 @@ static struct pci_device_id pci_tbl[] = {
5563 }, 5645 },
5564 { /* CK804 Ethernet Controller */ 5646 { /* CK804 Ethernet Controller */
5565 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_8), 5647 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_8),
5566 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1, 5648 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1|DEV_NEED_TX_LIMIT,
5567 }, 5649 },
5568 { /* CK804 Ethernet Controller */ 5650 { /* CK804 Ethernet Controller */
5569 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_9), 5651 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_9),
5570 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1, 5652 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1|DEV_NEED_TX_LIMIT,
5571 }, 5653 },
5572 { /* MCP04 Ethernet Controller */ 5654 { /* MCP04 Ethernet Controller */
5573 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_10), 5655 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_10),
5574 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1, 5656 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1|DEV_NEED_TX_LIMIT,
5575 }, 5657 },
5576 { /* MCP04 Ethernet Controller */ 5658 { /* MCP04 Ethernet Controller */
5577 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_11), 5659 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_11),
5578 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1, 5660 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_STATISTICS_V1|DEV_NEED_TX_LIMIT,
5579 }, 5661 },
5580 { /* MCP51 Ethernet Controller */ 5662 { /* MCP51 Ethernet Controller */
5581 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_12), 5663 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_12),
@@ -5587,11 +5669,11 @@ static struct pci_device_id pci_tbl[] = {
5587 }, 5669 },
5588 { /* MCP55 Ethernet Controller */ 5670 { /* MCP55 Ethernet Controller */
5589 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_14), 5671 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_14),
5590 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, 5672 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_NEED_TX_LIMIT,
5591 }, 5673 },
5592 { /* MCP55 Ethernet Controller */ 5674 { /* MCP55 Ethernet Controller */
5593 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15), 5675 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15),
5594 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, 5676 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_NEED_TX_LIMIT,
5595 }, 5677 },
5596 { /* MCP61 Ethernet Controller */ 5678 { /* MCP61 Ethernet Controller */
5597 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_16), 5679 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_16),
@@ -5611,19 +5693,19 @@ static struct pci_device_id pci_tbl[] = {
5611 }, 5693 },
5612 { /* MCP65 Ethernet Controller */ 5694 { /* MCP65 Ethernet Controller */
5613 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_20), 5695 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_20),
5614 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR, 5696 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_NEED_TX_LIMIT|DEV_NEED_TX_LIMIT,
5615 }, 5697 },
5616 { /* MCP65 Ethernet Controller */ 5698 { /* MCP65 Ethernet Controller */
5617 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_21), 5699 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_21),
5618 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR, 5700 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_NEED_TX_LIMIT,
5619 }, 5701 },
5620 { /* MCP65 Ethernet Controller */ 5702 { /* MCP65 Ethernet Controller */
5621 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_22), 5703 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_22),
5622 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR, 5704 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_NEED_TX_LIMIT,
5623 }, 5705 },
5624 { /* MCP65 Ethernet Controller */ 5706 { /* MCP65 Ethernet Controller */
5625 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_23), 5707 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_23),
5626 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR, 5708 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX_V1|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_NEED_TX_LIMIT,
5627 }, 5709 },
5628 { /* MCP67 Ethernet Controller */ 5710 { /* MCP67 Ethernet Controller */
5629 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_24), 5711 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_24),
@@ -5659,35 +5741,35 @@ static struct pci_device_id pci_tbl[] = {
5659 }, 5741 },
5660 { /* MCP77 Ethernet Controller */ 5742 { /* MCP77 Ethernet Controller */
5661 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_32), 5743 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_32),
5662 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5744 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5663 }, 5745 },
5664 { /* MCP77 Ethernet Controller */ 5746 { /* MCP77 Ethernet Controller */
5665 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_33), 5747 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_33),
5666 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5748 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5667 }, 5749 },
5668 { /* MCP77 Ethernet Controller */ 5750 { /* MCP77 Ethernet Controller */
5669 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_34), 5751 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_34),
5670 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5752 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5671 }, 5753 },
5672 { /* MCP77 Ethernet Controller */ 5754 { /* MCP77 Ethernet Controller */
5673 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_35), 5755 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_35),
5674 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5756 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V2|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5675 }, 5757 },
5676 { /* MCP79 Ethernet Controller */ 5758 { /* MCP79 Ethernet Controller */
5677 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_36), 5759 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_36),
5678 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5760 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5679 }, 5761 },
5680 { /* MCP79 Ethernet Controller */ 5762 { /* MCP79 Ethernet Controller */
5681 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_37), 5763 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_37),
5682 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5764 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5683 }, 5765 },
5684 { /* MCP79 Ethernet Controller */ 5766 { /* MCP79 Ethernet Controller */
5685 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_38), 5767 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_38),
5686 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5768 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5687 }, 5769 },
5688 { /* MCP79 Ethernet Controller */ 5770 { /* MCP79 Ethernet Controller */
5689 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_39), 5771 PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_39),
5690 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX, 5772 .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX_V3|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR|DEV_HAS_COLLISION_FIX|DEV_NEED_TX_LIMIT,
5691 }, 5773 },
5692 {0,}, 5774 {0,},
5693}; 5775};
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index e6c69f77259b..0789802d59ed 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -143,6 +143,10 @@ static inline void emac_report_timeout_error(struct emac_instance *dev,
143#define STOP_TIMEOUT_1000 13 143#define STOP_TIMEOUT_1000 13
144#define STOP_TIMEOUT_1000_JUMBO 73 144#define STOP_TIMEOUT_1000_JUMBO 73
145 145
146static unsigned char default_mcast_addr[] = {
147 0x01, 0x80, 0xC2, 0x00, 0x00, 0x01
148};
149
146/* Please, keep in sync with struct ibm_emac_stats/ibm_emac_error_stats */ 150/* Please, keep in sync with struct ibm_emac_stats/ibm_emac_error_stats */
147static const char emac_stats_keys[EMAC_ETHTOOL_STATS_COUNT][ETH_GSTRING_LEN] = { 151static const char emac_stats_keys[EMAC_ETHTOOL_STATS_COUNT][ETH_GSTRING_LEN] = {
148 "rx_packets", "rx_bytes", "tx_packets", "tx_bytes", "rx_packets_csum", 152 "rx_packets", "rx_bytes", "tx_packets", "tx_bytes", "rx_packets_csum",
@@ -618,6 +622,9 @@ static int emac_configure(struct emac_instance *dev)
618 if (emac_phy_gpcs(dev->phy.mode)) 622 if (emac_phy_gpcs(dev->phy.mode))
619 emac_mii_reset_phy(&dev->phy); 623 emac_mii_reset_phy(&dev->phy);
620 624
625 /* Required for Pause packet support in EMAC */
626 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1);
627
621 return 0; 628 return 0;
622} 629}
623 630
diff --git a/drivers/net/ibm_newemac/tah.c b/drivers/net/ibm_newemac/tah.c
index 96417adec326..b023d10d7e1c 100644
--- a/drivers/net/ibm_newemac/tah.c
+++ b/drivers/net/ibm_newemac/tah.c
@@ -155,6 +155,10 @@ static int __devexit tah_remove(struct of_device *ofdev)
155static struct of_device_id tah_match[] = 155static struct of_device_id tah_match[] =
156{ 156{
157 { 157 {
158 .compatible = "ibm,tah",
159 },
160 /* For backward compat with old DT */
161 {
158 .type = "tah", 162 .type = "tah",
159 }, 163 },
160 {}, 164 {},
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index 15949d3df17e..af233b591534 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -35,6 +35,7 @@
35#include <linux/moduleparam.h> 35#include <linux/moduleparam.h>
36#include <net/pkt_sched.h> 36#include <net/pkt_sched.h>
37#include <net/net_namespace.h> 37#include <net/net_namespace.h>
38#include <linux/lockdep.h>
38 39
39#define TX_TIMEOUT (2*HZ) 40#define TX_TIMEOUT (2*HZ)
40 41
@@ -227,6 +228,16 @@ static struct rtnl_link_ops ifb_link_ops __read_mostly = {
227module_param(numifbs, int, 0); 228module_param(numifbs, int, 0);
228MODULE_PARM_DESC(numifbs, "Number of ifb devices"); 229MODULE_PARM_DESC(numifbs, "Number of ifb devices");
229 230
231/*
232 * dev_ifb->queue_lock is usually taken after dev->ingress_lock,
233 * reversely to e.g. qdisc_lock_tree(). It should be safe until
234 * ifb doesn't take dev->queue_lock with dev_ifb->ingress_lock.
235 * But lockdep should know that ifb has different locks from dev.
236 */
237static struct lock_class_key ifb_queue_lock_key;
238static struct lock_class_key ifb_ingress_lock_key;
239
240
230static int __init ifb_init_one(int index) 241static int __init ifb_init_one(int index)
231{ 242{
232 struct net_device *dev_ifb; 243 struct net_device *dev_ifb;
@@ -246,6 +257,10 @@ static int __init ifb_init_one(int index)
246 err = register_netdevice(dev_ifb); 257 err = register_netdevice(dev_ifb);
247 if (err < 0) 258 if (err < 0)
248 goto err; 259 goto err;
260
261 lockdep_set_class(&dev_ifb->queue_lock, &ifb_queue_lock_key);
262 lockdep_set_class(&dev_ifb->ingress_lock, &ifb_ingress_lock_key);
263
249 return 0; 264 return 0;
250 265
251err: 266err:
diff --git a/drivers/net/igb/e1000_82575.h b/drivers/net/igb/e1000_82575.h
index 6604d96bd567..76ea846663db 100644
--- a/drivers/net/igb/e1000_82575.h
+++ b/drivers/net/igb/e1000_82575.h
@@ -61,28 +61,28 @@
61/* Receive Descriptor - Advanced */ 61/* Receive Descriptor - Advanced */
62union e1000_adv_rx_desc { 62union e1000_adv_rx_desc {
63 struct { 63 struct {
64 u64 pkt_addr; /* Packet buffer address */ 64 __le64 pkt_addr; /* Packet buffer address */
65 u64 hdr_addr; /* Header buffer address */ 65 __le64 hdr_addr; /* Header buffer address */
66 } read; 66 } read;
67 struct { 67 struct {
68 struct { 68 struct {
69 struct { 69 struct {
70 u16 pkt_info; /* RSS type, Packet type */ 70 __le16 pkt_info; /* RSS type, Packet type */
71 u16 hdr_info; /* Split Header, 71 __le16 hdr_info; /* Split Header,
72 * header buffer length */ 72 * header buffer length */
73 } lo_dword; 73 } lo_dword;
74 union { 74 union {
75 u32 rss; /* RSS Hash */ 75 __le32 rss; /* RSS Hash */
76 struct { 76 struct {
77 u16 ip_id; /* IP id */ 77 __le16 ip_id; /* IP id */
78 u16 csum; /* Packet Checksum */ 78 __le16 csum; /* Packet Checksum */
79 } csum_ip; 79 } csum_ip;
80 } hi_dword; 80 } hi_dword;
81 } lower; 81 } lower;
82 struct { 82 struct {
83 u32 status_error; /* ext status/error */ 83 __le32 status_error; /* ext status/error */
84 u16 length; /* Packet length */ 84 __le16 length; /* Packet length */
85 u16 vlan; /* VLAN tag */ 85 __le16 vlan; /* VLAN tag */
86 } upper; 86 } upper;
87 } wb; /* writeback */ 87 } wb; /* writeback */
88}; 88};
@@ -97,14 +97,14 @@ union e1000_adv_rx_desc {
97/* Transmit Descriptor - Advanced */ 97/* Transmit Descriptor - Advanced */
98union e1000_adv_tx_desc { 98union e1000_adv_tx_desc {
99 struct { 99 struct {
100 u64 buffer_addr; /* Address of descriptor's data buf */ 100 __le64 buffer_addr; /* Address of descriptor's data buf */
101 u32 cmd_type_len; 101 __le32 cmd_type_len;
102 u32 olinfo_status; 102 __le32 olinfo_status;
103 } read; 103 } read;
104 struct { 104 struct {
105 u64 rsvd; /* Reserved */ 105 __le64 rsvd; /* Reserved */
106 u32 nxtseq_seed; 106 __le32 nxtseq_seed;
107 u32 status; 107 __le32 status;
108 } wb; 108 } wb;
109}; 109};
110 110
@@ -119,10 +119,10 @@ union e1000_adv_tx_desc {
119 119
120/* Context descriptors */ 120/* Context descriptors */
121struct e1000_adv_tx_context_desc { 121struct e1000_adv_tx_context_desc {
122 u32 vlan_macip_lens; 122 __le32 vlan_macip_lens;
123 u32 seqnum_seed; 123 __le32 seqnum_seed;
124 u32 type_tucmd_mlhl; 124 __le32 type_tucmd_mlhl;
125 u32 mss_l4len_idx; 125 __le32 mss_l4len_idx;
126}; 126};
127 127
128#define E1000_ADVTXD_MACLEN_SHIFT 9 /* Adv ctxt desc mac len shift */ 128#define E1000_ADVTXD_MACLEN_SHIFT 9 /* Adv ctxt desc mac len shift */
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index 161fb68764af..7b2c70a3b8cc 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -143,35 +143,35 @@ enum e1000_fc_type {
143 143
144/* Receive Descriptor */ 144/* Receive Descriptor */
145struct e1000_rx_desc { 145struct e1000_rx_desc {
146 u64 buffer_addr; /* Address of the descriptor's data buffer */ 146 __le64 buffer_addr; /* Address of the descriptor's data buffer */
147 u16 length; /* Length of data DMAed into data buffer */ 147 __le16 length; /* Length of data DMAed into data buffer */
148 u16 csum; /* Packet checksum */ 148 __le16 csum; /* Packet checksum */
149 u8 status; /* Descriptor status */ 149 u8 status; /* Descriptor status */
150 u8 errors; /* Descriptor Errors */ 150 u8 errors; /* Descriptor Errors */
151 u16 special; 151 __le16 special;
152}; 152};
153 153
154/* Receive Descriptor - Extended */ 154/* Receive Descriptor - Extended */
155union e1000_rx_desc_extended { 155union e1000_rx_desc_extended {
156 struct { 156 struct {
157 u64 buffer_addr; 157 __le64 buffer_addr;
158 u64 reserved; 158 __le64 reserved;
159 } read; 159 } read;
160 struct { 160 struct {
161 struct { 161 struct {
162 u32 mrq; /* Multiple Rx Queues */ 162 __le32 mrq; /* Multiple Rx Queues */
163 union { 163 union {
164 u32 rss; /* RSS Hash */ 164 __le32 rss; /* RSS Hash */
165 struct { 165 struct {
166 u16 ip_id; /* IP id */ 166 __le16 ip_id; /* IP id */
167 u16 csum; /* Packet Checksum */ 167 __le16 csum; /* Packet Checksum */
168 } csum_ip; 168 } csum_ip;
169 } hi_dword; 169 } hi_dword;
170 } lower; 170 } lower;
171 struct { 171 struct {
172 u32 status_error; /* ext status/error */ 172 __le32 status_error; /* ext status/error */
173 u16 length; 173 __le16 length;
174 u16 vlan; /* VLAN tag */ 174 __le16 vlan; /* VLAN tag */
175 } upper; 175 } upper;
176 } wb; /* writeback */ 176 } wb; /* writeback */
177}; 177};
@@ -181,49 +181,49 @@ union e1000_rx_desc_extended {
181union e1000_rx_desc_packet_split { 181union e1000_rx_desc_packet_split {
182 struct { 182 struct {
183 /* one buffer for protocol header(s), three data buffers */ 183 /* one buffer for protocol header(s), three data buffers */
184 u64 buffer_addr[MAX_PS_BUFFERS]; 184 __le64 buffer_addr[MAX_PS_BUFFERS];
185 } read; 185 } read;
186 struct { 186 struct {
187 struct { 187 struct {
188 u32 mrq; /* Multiple Rx Queues */ 188 __le32 mrq; /* Multiple Rx Queues */
189 union { 189 union {
190 u32 rss; /* RSS Hash */ 190 __le32 rss; /* RSS Hash */
191 struct { 191 struct {
192 u16 ip_id; /* IP id */ 192 __le16 ip_id; /* IP id */
193 u16 csum; /* Packet Checksum */ 193 __le16 csum; /* Packet Checksum */
194 } csum_ip; 194 } csum_ip;
195 } hi_dword; 195 } hi_dword;
196 } lower; 196 } lower;
197 struct { 197 struct {
198 u32 status_error; /* ext status/error */ 198 __le32 status_error; /* ext status/error */
199 u16 length0; /* length of buffer 0 */ 199 __le16 length0; /* length of buffer 0 */
200 u16 vlan; /* VLAN tag */ 200 __le16 vlan; /* VLAN tag */
201 } middle; 201 } middle;
202 struct { 202 struct {
203 u16 header_status; 203 __le16 header_status;
204 u16 length[3]; /* length of buffers 1-3 */ 204 __le16 length[3]; /* length of buffers 1-3 */
205 } upper; 205 } upper;
206 u64 reserved; 206 __le64 reserved;
207 } wb; /* writeback */ 207 } wb; /* writeback */
208}; 208};
209 209
210/* Transmit Descriptor */ 210/* Transmit Descriptor */
211struct e1000_tx_desc { 211struct e1000_tx_desc {
212 u64 buffer_addr; /* Address of the descriptor's data buffer */ 212 __le64 buffer_addr; /* Address of the descriptor's data buffer */
213 union { 213 union {
214 u32 data; 214 __le32 data;
215 struct { 215 struct {
216 u16 length; /* Data buffer length */ 216 __le16 length; /* Data buffer length */
217 u8 cso; /* Checksum offset */ 217 u8 cso; /* Checksum offset */
218 u8 cmd; /* Descriptor control */ 218 u8 cmd; /* Descriptor control */
219 } flags; 219 } flags;
220 } lower; 220 } lower;
221 union { 221 union {
222 u32 data; 222 __le32 data;
223 struct { 223 struct {
224 u8 status; /* Descriptor status */ 224 u8 status; /* Descriptor status */
225 u8 css; /* Checksum start */ 225 u8 css; /* Checksum start */
226 u16 special; 226 __le16 special;
227 } fields; 227 } fields;
228 } upper; 228 } upper;
229}; 229};
@@ -231,49 +231,49 @@ struct e1000_tx_desc {
231/* Offload Context Descriptor */ 231/* Offload Context Descriptor */
232struct e1000_context_desc { 232struct e1000_context_desc {
233 union { 233 union {
234 u32 ip_config; 234 __le32 ip_config;
235 struct { 235 struct {
236 u8 ipcss; /* IP checksum start */ 236 u8 ipcss; /* IP checksum start */
237 u8 ipcso; /* IP checksum offset */ 237 u8 ipcso; /* IP checksum offset */
238 u16 ipcse; /* IP checksum end */ 238 __le16 ipcse; /* IP checksum end */
239 } ip_fields; 239 } ip_fields;
240 } lower_setup; 240 } lower_setup;
241 union { 241 union {
242 u32 tcp_config; 242 __le32 tcp_config;
243 struct { 243 struct {
244 u8 tucss; /* TCP checksum start */ 244 u8 tucss; /* TCP checksum start */
245 u8 tucso; /* TCP checksum offset */ 245 u8 tucso; /* TCP checksum offset */
246 u16 tucse; /* TCP checksum end */ 246 __le16 tucse; /* TCP checksum end */
247 } tcp_fields; 247 } tcp_fields;
248 } upper_setup; 248 } upper_setup;
249 u32 cmd_and_length; 249 __le32 cmd_and_length;
250 union { 250 union {
251 u32 data; 251 __le32 data;
252 struct { 252 struct {
253 u8 status; /* Descriptor status */ 253 u8 status; /* Descriptor status */
254 u8 hdr_len; /* Header length */ 254 u8 hdr_len; /* Header length */
255 u16 mss; /* Maximum segment size */ 255 __le16 mss; /* Maximum segment size */
256 } fields; 256 } fields;
257 } tcp_seg_setup; 257 } tcp_seg_setup;
258}; 258};
259 259
260/* Offload data descriptor */ 260/* Offload data descriptor */
261struct e1000_data_desc { 261struct e1000_data_desc {
262 u64 buffer_addr; /* Address of the descriptor's buffer address */ 262 __le64 buffer_addr; /* Address of the descriptor's buffer address */
263 union { 263 union {
264 u32 data; 264 __le32 data;
265 struct { 265 struct {
266 u16 length; /* Data buffer length */ 266 __le16 length; /* Data buffer length */
267 u8 typ_len_ext; 267 u8 typ_len_ext;
268 u8 cmd; 268 u8 cmd;
269 } flags; 269 } flags;
270 } lower; 270 } lower;
271 union { 271 union {
272 u32 data; 272 __le32 data;
273 struct { 273 struct {
274 u8 status; /* Descriptor status */ 274 u8 status; /* Descriptor status */
275 u8 popts; /* Packet Options */ 275 u8 popts; /* Packet Options */
276 u16 special; 276 __le16 special;
277 } fields; 277 } fields;
278 } upper; 278 } upper;
279}; 279};
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 6a1f23092099..aaee02e9e3f0 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -31,7 +31,6 @@
31#include <linux/vmalloc.h> 31#include <linux/vmalloc.h>
32#include <linux/pagemap.h> 32#include <linux/pagemap.h>
33#include <linux/netdevice.h> 33#include <linux/netdevice.h>
34#include <linux/tcp.h>
35#include <linux/ipv6.h> 34#include <linux/ipv6.h>
36#include <net/checksum.h> 35#include <net/checksum.h>
37#include <net/ip6_checksum.h> 36#include <net/ip6_checksum.h>
@@ -2484,10 +2483,24 @@ static inline bool igb_tx_csum_adv(struct igb_adapter *adapter,
2484 tu_cmd |= (E1000_TXD_CMD_DEXT | E1000_ADVTXD_DTYP_CTXT); 2483 tu_cmd |= (E1000_TXD_CMD_DEXT | E1000_ADVTXD_DTYP_CTXT);
2485 2484
2486 if (skb->ip_summed == CHECKSUM_PARTIAL) { 2485 if (skb->ip_summed == CHECKSUM_PARTIAL) {
2487 if (skb->protocol == htons(ETH_P_IP)) 2486 switch (skb->protocol) {
2487 case __constant_htons(ETH_P_IP):
2488 tu_cmd |= E1000_ADVTXD_TUCMD_IPV4; 2488 tu_cmd |= E1000_ADVTXD_TUCMD_IPV4;
2489 if (skb->sk && (skb->sk->sk_protocol == IPPROTO_TCP)) 2489 if (ip_hdr(skb)->protocol == IPPROTO_TCP)
2490 tu_cmd |= E1000_ADVTXD_TUCMD_L4T_TCP; 2490 tu_cmd |= E1000_ADVTXD_TUCMD_L4T_TCP;
2491 break;
2492 case __constant_htons(ETH_P_IPV6):
2493 /* XXX what about other V6 headers?? */
2494 if (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP)
2495 tu_cmd |= E1000_ADVTXD_TUCMD_L4T_TCP;
2496 break;
2497 default:
2498 if (unlikely(net_ratelimit()))
2499 dev_warn(&adapter->pdev->dev,
2500 "partial checksum but proto=%x!\n",
2501 skb->protocol);
2502 break;
2503 }
2491 } 2504 }
2492 2505
2493 context_desc->type_tucmd_mlhl = cpu_to_le32(tu_cmd); 2506 context_desc->type_tucmd_mlhl = cpu_to_le32(tu_cmd);
@@ -3241,6 +3254,13 @@ quit_polling:
3241 3254
3242 return 1; 3255 return 1;
3243} 3256}
3257
3258static inline u32 get_head(struct igb_ring *tx_ring)
3259{
3260 void *end = (struct e1000_tx_desc *)tx_ring->desc + tx_ring->count;
3261 return le32_to_cpu(*(volatile __le32 *)end);
3262}
3263
3244/** 3264/**
3245 * igb_clean_tx_irq - Reclaim resources after transmit completes 3265 * igb_clean_tx_irq - Reclaim resources after transmit completes
3246 * @adapter: board private structure 3266 * @adapter: board private structure
@@ -3262,9 +3282,7 @@ static bool igb_clean_tx_irq(struct igb_adapter *adapter,
3262 unsigned int total_bytes = 0, total_packets = 0; 3282 unsigned int total_bytes = 0, total_packets = 0;
3263 3283
3264 rmb(); 3284 rmb();
3265 head = *(volatile u32 *)((struct e1000_tx_desc *)tx_ring->desc 3285 head = get_head(tx_ring);
3266 + tx_ring->count);
3267 head = le32_to_cpu(head);
3268 i = tx_ring->next_to_clean; 3286 i = tx_ring->next_to_clean;
3269 while (1) { 3287 while (1) {
3270 while (i != head) { 3288 while (i != head) {
@@ -3299,9 +3317,7 @@ static bool igb_clean_tx_irq(struct igb_adapter *adapter,
3299 } 3317 }
3300 oldhead = head; 3318 oldhead = head;
3301 rmb(); 3319 rmb();
3302 head = *(volatile u32 *)((struct e1000_tx_desc *)tx_ring->desc 3320 head = get_head(tx_ring);
3303 + tx_ring->count);
3304 head = le32_to_cpu(head);
3305 if (head == oldhead) 3321 if (head == oldhead)
3306 goto done_cleaning; 3322 goto done_cleaning;
3307 } /* while (1) */ 3323 } /* while (1) */
@@ -3375,7 +3391,7 @@ done_cleaning:
3375 * @vlan: descriptor vlan field as written by hardware (no le/be conversion) 3391 * @vlan: descriptor vlan field as written by hardware (no le/be conversion)
3376 * @skb: pointer to sk_buff to be indicated to stack 3392 * @skb: pointer to sk_buff to be indicated to stack
3377 **/ 3393 **/
3378static void igb_receive_skb(struct igb_adapter *adapter, u8 status, u16 vlan, 3394static void igb_receive_skb(struct igb_adapter *adapter, u8 status, __le16 vlan,
3379 struct sk_buff *skb) 3395 struct sk_buff *skb)
3380{ 3396{
3381 if (adapter->vlgrp && (status & E1000_RXD_STAT_VP)) 3397 if (adapter->vlgrp && (status & E1000_RXD_STAT_VP))
@@ -3439,8 +3455,8 @@ static bool igb_clean_rx_irq_adv(struct igb_adapter *adapter,
3439 * that case, it fills the header buffer and spills the rest 3455 * that case, it fills the header buffer and spills the rest
3440 * into the page. 3456 * into the page.
3441 */ 3457 */
3442 hlen = le16_to_cpu((rx_desc->wb.lower.lo_dword.hdr_info & 3458 hlen = (le16_to_cpu(rx_desc->wb.lower.lo_dword.hdr_info) &
3443 E1000_RXDADV_HDRBUFLEN_MASK) >> E1000_RXDADV_HDRBUFLEN_SHIFT); 3459 E1000_RXDADV_HDRBUFLEN_MASK) >> E1000_RXDADV_HDRBUFLEN_SHIFT;
3444 if (hlen > adapter->rx_ps_hdr_size) 3460 if (hlen > adapter->rx_ps_hdr_size)
3445 hlen = adapter->rx_ps_hdr_size; 3461 hlen = adapter->rx_ps_hdr_size;
3446 3462
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index 373f72cdbe8e..1f25263dc7eb 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -1221,7 +1221,8 @@ static void __devinit ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3)
1221} 1221}
1222#endif 1222#endif
1223 1223
1224static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 1224static int __devinit ioc3_probe(struct pci_dev *pdev,
1225 const struct pci_device_id *ent)
1225{ 1226{
1226 unsigned int sw_physid1, sw_physid2; 1227 unsigned int sw_physid1, sw_physid2;
1227 struct net_device *dev = NULL; 1228 struct net_device *dev = NULL;
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 5e5d9b527ed1..9b358f61ed7f 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -472,7 +472,6 @@ static int ipg_config_autoneg(struct net_device *dev)
472 unsigned int txflowcontrol; 472 unsigned int txflowcontrol;
473 unsigned int rxflowcontrol; 473 unsigned int rxflowcontrol;
474 unsigned int fullduplex; 474 unsigned int fullduplex;
475 unsigned int gig;
476 u32 mac_ctrl_val; 475 u32 mac_ctrl_val;
477 u32 asicctrl; 476 u32 asicctrl;
478 u8 phyctrl; 477 u8 phyctrl;
@@ -489,7 +488,6 @@ static int ipg_config_autoneg(struct net_device *dev)
489 fullduplex = 0; 488 fullduplex = 0;
490 txflowcontrol = 0; 489 txflowcontrol = 0;
491 rxflowcontrol = 0; 490 rxflowcontrol = 0;
492 gig = 0;
493 491
494 /* To accomodate a problem in 10Mbps operation, 492 /* To accomodate a problem in 10Mbps operation,
495 * set a global flag if PHY running in 10Mbps mode. 493 * set a global flag if PHY running in 10Mbps mode.
@@ -511,7 +509,6 @@ static int ipg_config_autoneg(struct net_device *dev)
511 break; 509 break;
512 case IPG_PC_LINK_SPEED_1000MBPS: 510 case IPG_PC_LINK_SPEED_1000MBPS:
513 printk("1000Mbps.\n"); 511 printk("1000Mbps.\n");
514 gig = 1;
515 break; 512 break;
516 default: 513 default:
517 printk("undefined!\n"); 514 printk("undefined!\n");
@@ -1900,8 +1897,13 @@ static int ipg_nic_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
1900 1897
1901 /* Specify the TFC field within the TFD. */ 1898 /* Specify the TFC field within the TFD. */
1902 txfd->tfc |= cpu_to_le64(IPG_TFC_WORDALIGNDISABLED | 1899 txfd->tfc |= cpu_to_le64(IPG_TFC_WORDALIGNDISABLED |
1903 (IPG_TFC_FRAMEID & cpu_to_le64(sp->tx_current)) | 1900 (IPG_TFC_FRAMEID & sp->tx_current) |
1904 (IPG_TFC_FRAGCOUNT & (1 << 24))); 1901 (IPG_TFC_FRAGCOUNT & (1 << 24)));
1902 /*
1903 * 16--17 (WordAlign) <- 3 (disable),
1904 * 0--15 (FrameId) <- sp->tx_current,
1905 * 24--27 (FragCount) <- 1
1906 */
1905 1907
1906 /* Request TxComplete interrupts at an interval defined 1908 /* Request TxComplete interrupts at an interval defined
1907 * by the constant IPG_FRAMESBETWEENTXCOMPLETES. 1909 * by the constant IPG_FRAMESBETWEENTXCOMPLETES.
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 269e6f805f47..6738b4d097fe 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -2088,14 +2088,12 @@ ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter)
2088 struct ixgb_buffer *buffer_info; 2088 struct ixgb_buffer *buffer_info;
2089 struct sk_buff *skb; 2089 struct sk_buff *skb;
2090 unsigned int i; 2090 unsigned int i;
2091 int num_group_tail_writes;
2092 long cleancount; 2091 long cleancount;
2093 2092
2094 i = rx_ring->next_to_use; 2093 i = rx_ring->next_to_use;
2095 buffer_info = &rx_ring->buffer_info[i]; 2094 buffer_info = &rx_ring->buffer_info[i];
2096 cleancount = IXGB_DESC_UNUSED(rx_ring); 2095 cleancount = IXGB_DESC_UNUSED(rx_ring);
2097 2096
2098 num_group_tail_writes = IXGB_RX_BUFFER_WRITE;
2099 2097
2100 /* leave three descriptors unused */ 2098 /* leave three descriptors unused */
2101 while(--cleancount > 2) { 2099 while(--cleancount > 2) {
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 23d0a4afe0e1..c2095ce531c9 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2133,7 +2133,7 @@ static void ixgbe_watchdog(unsigned long data)
2133 (link_speed == IXGBE_LINK_SPEED_10GB_FULL ? 2133 (link_speed == IXGBE_LINK_SPEED_10GB_FULL ?
2134 "10 Gbps" : 2134 "10 Gbps" :
2135 (link_speed == IXGBE_LINK_SPEED_1GB_FULL ? 2135 (link_speed == IXGBE_LINK_SPEED_1GB_FULL ?
2136 "1 Gpbs" : "unknown speed")), 2136 "1 Gbps" : "unknown speed")),
2137 ((FLOW_RX && FLOW_TX) ? "RX/TX" : 2137 ((FLOW_RX && FLOW_TX) ? "RX/TX" :
2138 (FLOW_RX ? "RX" : 2138 (FLOW_RX ? "RX" :
2139 (FLOW_TX ? "TX" : "None")))); 2139 (FLOW_TX ? "TX" : "None"))));
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index b528ce77c406..771139e283af 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -2104,6 +2104,7 @@ MODULE_LICENSE("GPL");
2104MODULE_AUTHOR( "Rabeeh Khoury, Assaf Hoffman, Matthew Dharm, Manish Lachwani" 2104MODULE_AUTHOR( "Rabeeh Khoury, Assaf Hoffman, Matthew Dharm, Manish Lachwani"
2105 " and Dale Farnsworth"); 2105 " and Dale Farnsworth");
2106MODULE_DESCRIPTION("Ethernet driver for Marvell MV643XX"); 2106MODULE_DESCRIPTION("Ethernet driver for Marvell MV643XX");
2107MODULE_ALIAS("platform:mv643xx_eth");
2107 2108
2108/* 2109/*
2109 * The second part is the low level driver of the gigE ethernet ports. 2110 * The second part is the low level driver of the gigE ethernet ports.
diff --git a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c
index b569c90da4ba..de0de744a8fa 100644
--- a/drivers/net/ne2k-pci.c
+++ b/drivers/net/ne2k-pci.c
@@ -535,9 +535,9 @@ static void ne2k_pci_block_input(struct net_device *dev, int count,
535 if (count & 3) { 535 if (count & 3) {
536 buf += count & ~3; 536 buf += count & ~3;
537 if (count & 2) { 537 if (count & 2) {
538 u16 *b = (u16 *)buf; 538 __le16 *b = (__le16 *)buf;
539 539
540 *b++ = le16_to_cpu(inw(NE_BASE + NE_DATAPORT)); 540 *b++ = cpu_to_le16(inw(NE_BASE + NE_DATAPORT));
541 buf = (char *)b; 541 buf = (char *)b;
542 } 542 }
543 if (count & 1) 543 if (count & 1)
@@ -600,9 +600,9 @@ static void ne2k_pci_block_output(struct net_device *dev, int count,
600 if (count & 3) { 600 if (count & 3) {
601 buf += count & ~3; 601 buf += count & ~3;
602 if (count & 2) { 602 if (count & 2) {
603 u16 *b = (u16 *)buf; 603 __le16 *b = (__le16 *)buf;
604 604
605 outw(cpu_to_le16(*b++), NE_BASE + NE_DATAPORT); 605 outw(le16_to_cpu(*b++), NE_BASE + NE_DATAPORT);
606 buf = (char *)b; 606 buf = (char *)b;
607 } 607 }
608 } 608 }
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 2bc5eaae141f..7f20a03623a0 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -85,7 +85,7 @@
85 (sizeof(struct netxen_cmd_buffer) * adapter->max_tx_desc_count) 85 (sizeof(struct netxen_cmd_buffer) * adapter->max_tx_desc_count)
86#define RCV_BUFFSIZE \ 86#define RCV_BUFFSIZE \
87 (sizeof(struct netxen_rx_buffer) * rcv_desc->max_rx_desc_count) 87 (sizeof(struct netxen_rx_buffer) * rcv_desc->max_rx_desc_count)
88#define find_diff_among(a,b,range) ((a)<=(b)?((b)-(a)):((b)+(range)-(a))) 88#define find_diff_among(a,b,range) ((a)<(b)?((b)-(a)):((b)+(range)-(a)))
89 89
90#define NETXEN_NETDEV_STATUS 0x1 90#define NETXEN_NETDEV_STATUS 0x1
91#define NETXEN_RCV_PRODUCER_OFFSET 0 91#define NETXEN_RCV_PRODUCER_OFFSET 0
@@ -204,7 +204,7 @@ enum {
204 ? RCV_DESC_LRO : \ 204 ? RCV_DESC_LRO : \
205 (RCV_DESC_NORMAL))) 205 (RCV_DESC_NORMAL)))
206 206
207#define MAX_CMD_DESCRIPTORS 1024 207#define MAX_CMD_DESCRIPTORS 4096
208#define MAX_RCV_DESCRIPTORS 16384 208#define MAX_RCV_DESCRIPTORS 16384
209#define MAX_CMD_DESCRIPTORS_HOST (MAX_CMD_DESCRIPTORS / 4) 209#define MAX_CMD_DESCRIPTORS_HOST (MAX_CMD_DESCRIPTORS / 4)
210#define MAX_RCV_DESCRIPTORS_1G (MAX_RCV_DESCRIPTORS / 4) 210#define MAX_RCV_DESCRIPTORS_1G (MAX_RCV_DESCRIPTORS / 4)
@@ -818,15 +818,8 @@ struct netxen_adapter_stats {
818 u64 badskblen; 818 u64 badskblen;
819 u64 nocmddescriptor; 819 u64 nocmddescriptor;
820 u64 polled; 820 u64 polled;
821 u64 uphappy; 821 u64 rxdropped;
822 u64 updropped;
823 u64 uplcong;
824 u64 uphcong;
825 u64 upmcong;
826 u64 updunno;
827 u64 skbfreed;
828 u64 txdropped; 822 u64 txdropped;
829 u64 txnullskb;
830 u64 csummed; 823 u64 csummed;
831 u64 no_rcv; 824 u64 no_rcv;
832 u64 rxbytes; 825 u64 rxbytes;
@@ -842,7 +835,6 @@ struct netxen_rcv_desc_ctx {
842 u32 flags; 835 u32 flags;
843 u32 producer; 836 u32 producer;
844 u32 rcv_pending; /* Num of bufs posted in phantom */ 837 u32 rcv_pending; /* Num of bufs posted in phantom */
845 u32 rcv_free; /* Num of bufs in free list */
846 dma_addr_t phys_addr; 838 dma_addr_t phys_addr;
847 struct pci_dev *phys_pdev; 839 struct pci_dev *phys_pdev;
848 struct rcv_desc *desc_head; /* address of rx ring in Phantom */ 840 struct rcv_desc *desc_head; /* address of rx ring in Phantom */
@@ -889,8 +881,6 @@ struct netxen_adapter {
889 int mtu; 881 int mtu;
890 int portnum; 882 int portnum;
891 883
892 spinlock_t tx_lock;
893 spinlock_t lock;
894 struct work_struct watchdog_task; 884 struct work_struct watchdog_task;
895 struct timer_list watchdog_timer; 885 struct timer_list watchdog_timer;
896 struct work_struct tx_timeout_task; 886 struct work_struct tx_timeout_task;
@@ -899,16 +889,12 @@ struct netxen_adapter {
899 889
900 u32 cmd_producer; 890 u32 cmd_producer;
901 __le32 *cmd_consumer; 891 __le32 *cmd_consumer;
902
903 u32 last_cmd_consumer; 892 u32 last_cmd_consumer;
893
904 u32 max_tx_desc_count; 894 u32 max_tx_desc_count;
905 u32 max_rx_desc_count; 895 u32 max_rx_desc_count;
906 u32 max_jumbo_rx_desc_count; 896 u32 max_jumbo_rx_desc_count;
907 u32 max_lro_rx_desc_count; 897 u32 max_lro_rx_desc_count;
908 /* Num of instances active on cmd buffer ring */
909 u32 proc_cmd_buf_counter;
910
911 u32 num_threads, total_threads; /*Use to keep track of xmit threads */
912 898
913 u32 flags; 899 u32 flags;
914 u32 irq; 900 u32 irq;
@@ -942,6 +928,7 @@ struct netxen_adapter {
942 struct pci_dev *ctx_desc_pdev; 928 struct pci_dev *ctx_desc_pdev;
943 dma_addr_t ctx_desc_phys_addr; 929 dma_addr_t ctx_desc_phys_addr;
944 int intr_scheme; 930 int intr_scheme;
931 int msi_mode;
945 int (*enable_phy_interrupts) (struct netxen_adapter *); 932 int (*enable_phy_interrupts) (struct netxen_adapter *);
946 int (*disable_phy_interrupts) (struct netxen_adapter *); 933 int (*disable_phy_interrupts) (struct netxen_adapter *);
947 void (*handle_phy_intr) (struct netxen_adapter *); 934 void (*handle_phy_intr) (struct netxen_adapter *);
@@ -1075,12 +1062,10 @@ void netxen_tso_check(struct netxen_adapter *adapter,
1075 struct cmd_desc_type0 *desc, struct sk_buff *skb); 1062 struct cmd_desc_type0 *desc, struct sk_buff *skb);
1076int netxen_nic_hw_resources(struct netxen_adapter *adapter); 1063int netxen_nic_hw_resources(struct netxen_adapter *adapter);
1077void netxen_nic_clear_stats(struct netxen_adapter *adapter); 1064void netxen_nic_clear_stats(struct netxen_adapter *adapter);
1078int netxen_nic_rx_has_work(struct netxen_adapter *adapter);
1079int netxen_nic_tx_has_work(struct netxen_adapter *adapter);
1080void netxen_watchdog_task(struct work_struct *work); 1065void netxen_watchdog_task(struct work_struct *work);
1081void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, 1066void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx,
1082 u32 ringid); 1067 u32 ringid);
1083int netxen_process_cmd_ring(unsigned long data); 1068int netxen_process_cmd_ring(struct netxen_adapter *adapter);
1084u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); 1069u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max);
1085void netxen_nic_set_multi(struct net_device *netdev); 1070void netxen_nic_set_multi(struct net_device *netdev);
1086int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); 1071int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu);
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c
index 7a876f4b8db2..6e98d830eefb 100644
--- a/drivers/net/netxen/netxen_nic_ethtool.c
+++ b/drivers/net/netxen/netxen_nic_ethtool.c
@@ -64,15 +64,7 @@ static const struct netxen_nic_stats netxen_nic_gstrings_stats[] = {
64 {"bad_skb_len", NETXEN_NIC_STAT(stats.badskblen)}, 64 {"bad_skb_len", NETXEN_NIC_STAT(stats.badskblen)},
65 {"no_cmd_desc", NETXEN_NIC_STAT(stats.nocmddescriptor)}, 65 {"no_cmd_desc", NETXEN_NIC_STAT(stats.nocmddescriptor)},
66 {"polled", NETXEN_NIC_STAT(stats.polled)}, 66 {"polled", NETXEN_NIC_STAT(stats.polled)},
67 {"uphappy", NETXEN_NIC_STAT(stats.uphappy)},
68 {"updropped", NETXEN_NIC_STAT(stats.updropped)},
69 {"uplcong", NETXEN_NIC_STAT(stats.uplcong)},
70 {"uphcong", NETXEN_NIC_STAT(stats.uphcong)},
71 {"upmcong", NETXEN_NIC_STAT(stats.upmcong)},
72 {"updunno", NETXEN_NIC_STAT(stats.updunno)},
73 {"skb_freed", NETXEN_NIC_STAT(stats.skbfreed)},
74 {"tx_dropped", NETXEN_NIC_STAT(stats.txdropped)}, 67 {"tx_dropped", NETXEN_NIC_STAT(stats.txdropped)},
75 {"tx_null_skb", NETXEN_NIC_STAT(stats.txnullskb)},
76 {"csummed", NETXEN_NIC_STAT(stats.csummed)}, 68 {"csummed", NETXEN_NIC_STAT(stats.csummed)},
77 {"no_rcv", NETXEN_NIC_STAT(stats.no_rcv)}, 69 {"no_rcv", NETXEN_NIC_STAT(stats.no_rcv)},
78 {"rx_bytes", NETXEN_NIC_STAT(stats.rxbytes)}, 70 {"rx_bytes", NETXEN_NIC_STAT(stats.rxbytes)},
diff --git a/drivers/net/netxen/netxen_nic_hdr.h b/drivers/net/netxen/netxen_nic_hdr.h
index d72f8f8fcb50..160f605e58db 100644
--- a/drivers/net/netxen/netxen_nic_hdr.h
+++ b/drivers/net/netxen/netxen_nic_hdr.h
@@ -456,6 +456,12 @@ enum {
456#define ISR_INT_MASK_SLOW (NETXEN_PCIX_PS_REG(PCIX_INT_MASK)) 456#define ISR_INT_MASK_SLOW (NETXEN_PCIX_PS_REG(PCIX_INT_MASK))
457#define ISR_INT_TARGET_STATUS (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS)) 457#define ISR_INT_TARGET_STATUS (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS))
458#define ISR_INT_TARGET_MASK (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK)) 458#define ISR_INT_TARGET_MASK (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK))
459#define ISR_INT_TARGET_STATUS_F1 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F1))
460#define ISR_INT_TARGET_MASK_F1 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F1))
461#define ISR_INT_TARGET_STATUS_F2 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F2))
462#define ISR_INT_TARGET_MASK_F2 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F2))
463#define ISR_INT_TARGET_STATUS_F3 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F3))
464#define ISR_INT_TARGET_MASK_F3 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F3))
459 465
460#define NETXEN_PCI_MAPSIZE 128 466#define NETXEN_PCI_MAPSIZE 128
461#define NETXEN_PCI_DDR_NET (0x00000000UL) 467#define NETXEN_PCI_DDR_NET (0x00000000UL)
@@ -662,6 +668,12 @@ enum {
662 668
663#define PCIX_TARGET_STATUS (0x10118) 669#define PCIX_TARGET_STATUS (0x10118)
664#define PCIX_TARGET_MASK (0x10128) 670#define PCIX_TARGET_MASK (0x10128)
671#define PCIX_TARGET_STATUS_F1 (0x10160)
672#define PCIX_TARGET_MASK_F1 (0x10170)
673#define PCIX_TARGET_STATUS_F2 (0x10164)
674#define PCIX_TARGET_MASK_F2 (0x10174)
675#define PCIX_TARGET_STATUS_F3 (0x10168)
676#define PCIX_TARGET_MASK_F3 (0x10178)
665 677
666#define PCIX_MSI_F0 (0x13000) 678#define PCIX_MSI_F0 (0x13000)
667#define PCIX_MSI_F1 (0x13004) 679#define PCIX_MSI_F1 (0x13004)
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c
index 01355701bf8e..05748ca6f216 100644
--- a/drivers/net/netxen/netxen_nic_hw.c
+++ b/drivers/net/netxen/netxen_nic_hw.c
@@ -398,6 +398,8 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter)
398 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_FW)); 398 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_FW));
399 printk(KERN_NOTICE "%s: FW capabilities:0x%x\n", netxen_nic_driver_name, 399 printk(KERN_NOTICE "%s: FW capabilities:0x%x\n", netxen_nic_driver_name,
400 adapter->intr_scheme); 400 adapter->intr_scheme);
401 adapter->msi_mode = readl(
402 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_FW));
401 DPRINTK(INFO, "Receive Peg ready too. starting stuff\n"); 403 DPRINTK(INFO, "Receive Peg ready too. starting stuff\n");
402 404
403 addr = netxen_alloc(adapter->ahw.pdev, 405 addr = netxen_alloc(adapter->ahw.pdev,
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index 9e38bcb3fba9..45fa33e0cb90 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -145,6 +145,8 @@ int netxen_init_firmware(struct netxen_adapter *adapter)
145 /* Window 1 call */ 145 /* Window 1 call */
146 writel(INTR_SCHEME_PERPORT, 146 writel(INTR_SCHEME_PERPORT,
147 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_HOST)); 147 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_HOST));
148 writel(MSI_MODE_MULTIFUNC,
149 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_HOST));
148 writel(MPORT_MULTI_FUNCTION_MODE, 150 writel(MPORT_MULTI_FUNCTION_MODE,
149 NETXEN_CRB_NORMALIZE(adapter, CRB_MPORT_MODE)); 151 NETXEN_CRB_NORMALIZE(adapter, CRB_MPORT_MODE));
150 writel(PHAN_INITIALIZE_ACK, 152 writel(PHAN_INITIALIZE_ACK,
@@ -183,7 +185,6 @@ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter)
183 for (ring = 0; ring < NUM_RCV_DESC_RINGS; ring++) { 185 for (ring = 0; ring < NUM_RCV_DESC_RINGS; ring++) {
184 struct netxen_rx_buffer *rx_buf; 186 struct netxen_rx_buffer *rx_buf;
185 rcv_desc = &adapter->recv_ctx[ctxid].rcv_desc[ring]; 187 rcv_desc = &adapter->recv_ctx[ctxid].rcv_desc[ring];
186 rcv_desc->rcv_free = rcv_desc->max_rx_desc_count;
187 rcv_desc->begin_alloc = 0; 188 rcv_desc->begin_alloc = 0;
188 rx_buf = rcv_desc->rx_buf_arr; 189 rx_buf = rcv_desc->rx_buf_arr;
189 num_rx_bufs = rcv_desc->max_rx_desc_count; 190 num_rx_bufs = rcv_desc->max_rx_desc_count;
@@ -974,28 +975,6 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val)
974 return 0; 975 return 0;
975} 976}
976 977
977int netxen_nic_rx_has_work(struct netxen_adapter *adapter)
978{
979 int ctx;
980
981 for (ctx = 0; ctx < MAX_RCV_CTX; ++ctx) {
982 struct netxen_recv_context *recv_ctx =
983 &(adapter->recv_ctx[ctx]);
984 u32 consumer;
985 struct status_desc *desc_head;
986 struct status_desc *desc;
987
988 consumer = recv_ctx->status_rx_consumer;
989 desc_head = recv_ctx->rcv_status_desc_head;
990 desc = &desc_head[consumer];
991
992 if (netxen_get_sts_owner(desc) & STATUS_OWNER_HOST)
993 return 1;
994 }
995
996 return 0;
997}
998
999static int netxen_nic_check_temp(struct netxen_adapter *adapter) 978static int netxen_nic_check_temp(struct netxen_adapter *adapter)
1000{ 979{
1001 struct net_device *netdev = adapter->netdev; 980 struct net_device *netdev = adapter->netdev;
@@ -1038,7 +1017,6 @@ static int netxen_nic_check_temp(struct netxen_adapter *adapter)
1038 1017
1039void netxen_watchdog_task(struct work_struct *work) 1018void netxen_watchdog_task(struct work_struct *work)
1040{ 1019{
1041 struct net_device *netdev;
1042 struct netxen_adapter *adapter = 1020 struct netxen_adapter *adapter =
1043 container_of(work, struct netxen_adapter, watchdog_task); 1021 container_of(work, struct netxen_adapter, watchdog_task);
1044 1022
@@ -1048,20 +1026,6 @@ void netxen_watchdog_task(struct work_struct *work)
1048 if (adapter->handle_phy_intr) 1026 if (adapter->handle_phy_intr)
1049 adapter->handle_phy_intr(adapter); 1027 adapter->handle_phy_intr(adapter);
1050 1028
1051 netdev = adapter->netdev;
1052 if ((netif_running(netdev)) && !netif_carrier_ok(netdev) &&
1053 netxen_nic_link_ok(adapter) ) {
1054 printk(KERN_INFO "%s %s (port %d), Link is up\n",
1055 netxen_nic_driver_name, netdev->name, adapter->portnum);
1056 netif_carrier_on(netdev);
1057 netif_wake_queue(netdev);
1058 } else if(!(netif_running(netdev)) && netif_carrier_ok(netdev)) {
1059 printk(KERN_ERR "%s %s Link is Down\n",
1060 netxen_nic_driver_name, netdev->name);
1061 netif_carrier_off(netdev);
1062 netif_stop_queue(netdev);
1063 }
1064
1065 mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ); 1029 mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ);
1066} 1030}
1067 1031
@@ -1125,7 +1089,7 @@ static void netxen_process_rcv(struct netxen_adapter *adapter, int ctxid,
1125 skb = (struct sk_buff *)buffer->skb; 1089 skb = (struct sk_buff *)buffer->skb;
1126 1090
1127 if (likely(adapter->rx_csum && 1091 if (likely(adapter->rx_csum &&
1128 netxen_get_sts_status(sts_data) == STATUS_CKSUM_OK)) { 1092 netxen_get_sts_status(sts_data) == STATUS_CKSUM_OK)) {
1129 adapter->stats.csummed++; 1093 adapter->stats.csummed++;
1130 skb->ip_summed = CHECKSUM_UNNECESSARY; 1094 skb->ip_summed = CHECKSUM_UNNECESSARY;
1131 } else 1095 } else
@@ -1142,40 +1106,8 @@ static void netxen_process_rcv(struct netxen_adapter *adapter, int ctxid,
1142 skb->protocol = eth_type_trans(skb, netdev); 1106 skb->protocol = eth_type_trans(skb, netdev);
1143 1107
1144 ret = netif_receive_skb(skb); 1108 ret = netif_receive_skb(skb);
1145
1146 /*
1147 * RH: Do we need these stats on a regular basis. Can we get it from
1148 * Linux stats.
1149 */
1150 switch (ret) {
1151 case NET_RX_SUCCESS:
1152 adapter->stats.uphappy++;
1153 break;
1154
1155 case NET_RX_CN_LOW:
1156 adapter->stats.uplcong++;
1157 break;
1158
1159 case NET_RX_CN_MOD:
1160 adapter->stats.upmcong++;
1161 break;
1162
1163 case NET_RX_CN_HIGH:
1164 adapter->stats.uphcong++;
1165 break;
1166
1167 case NET_RX_DROP:
1168 adapter->stats.updropped++;
1169 break;
1170
1171 default:
1172 adapter->stats.updunno++;
1173 break;
1174 }
1175
1176 netdev->last_rx = jiffies; 1109 netdev->last_rx = jiffies;
1177 1110
1178 rcv_desc->rcv_free++;
1179 rcv_desc->rcv_pending--; 1111 rcv_desc->rcv_pending--;
1180 1112
1181 /* 1113 /*
@@ -1200,13 +1132,6 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max)
1200 u32 producer = 0; 1132 u32 producer = 0;
1201 int count = 0, ring; 1133 int count = 0, ring;
1202 1134
1203 DPRINTK(INFO, "procesing receive\n");
1204 /*
1205 * we assume in this case that there is only one port and that is
1206 * port #1...changes need to be done in firmware to indicate port
1207 * number as part of the descriptor. This way we will be able to get
1208 * the netdev which is associated with that device.
1209 */
1210 while (count < max) { 1135 while (count < max) {
1211 desc = &desc_head[consumer]; 1136 desc = &desc_head[consumer];
1212 if (!(netxen_get_sts_owner(desc) & STATUS_OWNER_HOST)) { 1137 if (!(netxen_get_sts_owner(desc) & STATUS_OWNER_HOST)) {
@@ -1219,11 +1144,8 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max)
1219 consumer = (consumer + 1) & (adapter->max_rx_desc_count - 1); 1144 consumer = (consumer + 1) & (adapter->max_rx_desc_count - 1);
1220 count++; 1145 count++;
1221 } 1146 }
1222 if (count) { 1147 for (ring = 0; ring < NUM_RCV_DESC_RINGS; ring++)
1223 for (ring = 0; ring < NUM_RCV_DESC_RINGS; ring++) { 1148 netxen_post_rx_buffers_nodb(adapter, ctxid, ring);
1224 netxen_post_rx_buffers_nodb(adapter, ctxid, ring);
1225 }
1226 }
1227 1149
1228 /* update the consumer index in phantom */ 1150 /* update the consumer index in phantom */
1229 if (count) { 1151 if (count) {
@@ -1233,108 +1155,60 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max)
1233 /* Window = 1 */ 1155 /* Window = 1 */
1234 writel(consumer, 1156 writel(consumer,
1235 NETXEN_CRB_NORMALIZE(adapter, 1157 NETXEN_CRB_NORMALIZE(adapter,
1236 recv_crb_registers[adapter->portnum]. 1158 recv_crb_registers[adapter->portnum].
1237 crb_rcv_status_consumer)); 1159 crb_rcv_status_consumer));
1238 wmb();
1239 } 1160 }
1240 1161
1241 return count; 1162 return count;
1242} 1163}
1243 1164
1244/* Process Command status ring */ 1165/* Process Command status ring */
1245int netxen_process_cmd_ring(unsigned long data) 1166int netxen_process_cmd_ring(struct netxen_adapter *adapter)
1246{ 1167{
1247 u32 last_consumer; 1168 u32 last_consumer, consumer;
1248 u32 consumer; 1169 int count = 0, i;
1249 struct netxen_adapter *adapter = (struct netxen_adapter *)data;
1250 int count1 = 0;
1251 int count2 = 0;
1252 struct netxen_cmd_buffer *buffer; 1170 struct netxen_cmd_buffer *buffer;
1253 struct pci_dev *pdev; 1171 struct pci_dev *pdev = adapter->pdev;
1172 struct net_device *netdev = adapter->netdev;
1254 struct netxen_skb_frag *frag; 1173 struct netxen_skb_frag *frag;
1255 u32 i; 1174 int done = 0;
1256 int done;
1257 1175
1258 spin_lock(&adapter->tx_lock);
1259 last_consumer = adapter->last_cmd_consumer; 1176 last_consumer = adapter->last_cmd_consumer;
1260 DPRINTK(INFO, "procesing xmit complete\n");
1261 /* we assume in this case that there is only one port and that is
1262 * port #1...changes need to be done in firmware to indicate port
1263 * number as part of the descriptor. This way we will be able to get
1264 * the netdev which is associated with that device.
1265 */
1266
1267 consumer = le32_to_cpu(*(adapter->cmd_consumer)); 1177 consumer = le32_to_cpu(*(adapter->cmd_consumer));
1268 if (last_consumer == consumer) { /* Ring is empty */
1269 DPRINTK(INFO, "last_consumer %d == consumer %d\n",
1270 last_consumer, consumer);
1271 spin_unlock(&adapter->tx_lock);
1272 return 1;
1273 }
1274
1275 adapter->proc_cmd_buf_counter++;
1276 /*
1277 * Not needed - does not seem to be used anywhere.
1278 * adapter->cmd_consumer = consumer;
1279 */
1280 spin_unlock(&adapter->tx_lock);
1281 1178
1282 while ((last_consumer != consumer) && (count1 < MAX_STATUS_HANDLE)) { 1179 while (last_consumer != consumer) {
1283 buffer = &adapter->cmd_buf_arr[last_consumer]; 1180 buffer = &adapter->cmd_buf_arr[last_consumer];
1284 pdev = adapter->pdev;
1285 if (buffer->skb) { 1181 if (buffer->skb) {
1286 frag = &buffer->frag_array[0]; 1182 frag = &buffer->frag_array[0];
1287 pci_unmap_single(pdev, frag->dma, frag->length, 1183 pci_unmap_single(pdev, frag->dma, frag->length,
1288 PCI_DMA_TODEVICE); 1184 PCI_DMA_TODEVICE);
1289 frag->dma = 0ULL; 1185 frag->dma = 0ULL;
1290 for (i = 1; i < buffer->frag_count; i++) { 1186 for (i = 1; i < buffer->frag_count; i++) {
1291 DPRINTK(INFO, "getting fragment no %d\n", i);
1292 frag++; /* Get the next frag */ 1187 frag++; /* Get the next frag */
1293 pci_unmap_page(pdev, frag->dma, frag->length, 1188 pci_unmap_page(pdev, frag->dma, frag->length,
1294 PCI_DMA_TODEVICE); 1189 PCI_DMA_TODEVICE);
1295 frag->dma = 0ULL; 1190 frag->dma = 0ULL;
1296 } 1191 }
1297 1192
1298 adapter->stats.skbfreed++; 1193 adapter->stats.xmitfinished++;
1299 dev_kfree_skb_any(buffer->skb); 1194 dev_kfree_skb_any(buffer->skb);
1300 buffer->skb = NULL; 1195 buffer->skb = NULL;
1301 } else if (adapter->proc_cmd_buf_counter == 1) {
1302 adapter->stats.txnullskb++;
1303 }
1304 if (unlikely(netif_queue_stopped(adapter->netdev)
1305 && netif_carrier_ok(adapter->netdev))
1306 && ((jiffies - adapter->netdev->trans_start) >
1307 adapter->netdev->watchdog_timeo)) {
1308 SCHEDULE_WORK(&adapter->tx_timeout_task);
1309 } 1196 }
1310 1197
1311 last_consumer = get_next_index(last_consumer, 1198 last_consumer = get_next_index(last_consumer,
1312 adapter->max_tx_desc_count); 1199 adapter->max_tx_desc_count);
1313 count1++; 1200 if (++count >= MAX_STATUS_HANDLE)
1201 break;
1314 } 1202 }
1315 1203
1316 count2 = 0; 1204 if (count) {
1317 spin_lock(&adapter->tx_lock);
1318 if ((--adapter->proc_cmd_buf_counter) == 0) {
1319 adapter->last_cmd_consumer = last_consumer; 1205 adapter->last_cmd_consumer = last_consumer;
1320 while ((adapter->last_cmd_consumer != consumer) 1206 smp_mb();
1321 && (count2 < MAX_STATUS_HANDLE)) { 1207 if (netif_queue_stopped(netdev) && netif_running(netdev)) {
1322 buffer = 1208 netif_tx_lock(netdev);
1323 &adapter->cmd_buf_arr[adapter->last_cmd_consumer]; 1209 netif_wake_queue(netdev);
1324 count2++; 1210 smp_mb();
1325 if (buffer->skb) 1211 netif_tx_unlock(netdev);
1326 break;
1327 else
1328 adapter->last_cmd_consumer =
1329 get_next_index(adapter->last_cmd_consumer,
1330 adapter->max_tx_desc_count);
1331 }
1332 }
1333 if (count1 || count2) {
1334 if (netif_queue_stopped(adapter->netdev)
1335 && (adapter->flags & NETXEN_NETDEV_STATUS)) {
1336 netif_wake_queue(adapter->netdev);
1337 adapter->flags &= ~NETXEN_NETDEV_STATUS;
1338 } 1212 }
1339 } 1213 }
1340 /* 1214 /*
@@ -1350,16 +1224,9 @@ int netxen_process_cmd_ring(unsigned long data)
1350 * There is still a possible race condition and the host could miss an 1224 * There is still a possible race condition and the host could miss an
1351 * interrupt. The card has to take care of this. 1225 * interrupt. The card has to take care of this.
1352 */ 1226 */
1353 if (adapter->last_cmd_consumer == consumer && 1227 consumer = le32_to_cpu(*(adapter->cmd_consumer));
1354 (((adapter->cmd_producer + 1) % 1228 done = (last_consumer == consumer);
1355 adapter->max_tx_desc_count) == adapter->last_cmd_consumer)) {
1356 consumer = le32_to_cpu(*(adapter->cmd_consumer));
1357 }
1358 done = (adapter->last_cmd_consumer == consumer);
1359 1229
1360 spin_unlock(&adapter->tx_lock);
1361 DPRINTK(INFO, "last consumer is %d in %s\n", last_consumer,
1362 __FUNCTION__);
1363 return (done); 1230 return (done);
1364} 1231}
1365 1232
@@ -1433,8 +1300,6 @@ void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, u32 ringid)
1433 rcv_desc->begin_alloc = index; 1300 rcv_desc->begin_alloc = index;
1434 rcv_desc->rcv_pending += count; 1301 rcv_desc->rcv_pending += count;
1435 rcv_desc->producer = producer; 1302 rcv_desc->producer = producer;
1436 if (rcv_desc->rcv_free >= 32) {
1437 rcv_desc->rcv_free = 0;
1438 /* Window = 1 */ 1303 /* Window = 1 */
1439 writel((producer - 1) & 1304 writel((producer - 1) &
1440 (rcv_desc->max_rx_desc_count - 1), 1305 (rcv_desc->max_rx_desc_count - 1),
@@ -1458,8 +1323,6 @@ void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, u32 ringid)
1458 writel(msg, 1323 writel(msg,
1459 DB_NORMALIZE(adapter, 1324 DB_NORMALIZE(adapter,
1460 NETXEN_RCV_PRODUCER_OFFSET)); 1325 NETXEN_RCV_PRODUCER_OFFSET));
1461 wmb();
1462 }
1463 } 1326 }
1464} 1327}
1465 1328
@@ -1523,8 +1386,6 @@ static void netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
1523 rcv_desc->begin_alloc = index; 1386 rcv_desc->begin_alloc = index;
1524 rcv_desc->rcv_pending += count; 1387 rcv_desc->rcv_pending += count;
1525 rcv_desc->producer = producer; 1388 rcv_desc->producer = producer;
1526 if (rcv_desc->rcv_free >= 32) {
1527 rcv_desc->rcv_free = 0;
1528 /* Window = 1 */ 1389 /* Window = 1 */
1529 writel((producer - 1) & 1390 writel((producer - 1) &
1530 (rcv_desc->max_rx_desc_count - 1), 1391 (rcv_desc->max_rx_desc_count - 1),
@@ -1534,21 +1395,9 @@ static void netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
1534 rcv_desc_crb[ringid]. 1395 rcv_desc_crb[ringid].
1535 crb_rcv_producer_offset)); 1396 crb_rcv_producer_offset));
1536 wmb(); 1397 wmb();
1537 }
1538 } 1398 }
1539} 1399}
1540 1400
1541int netxen_nic_tx_has_work(struct netxen_adapter *adapter)
1542{
1543 if (find_diff_among(adapter->last_cmd_consumer,
1544 adapter->cmd_producer,
1545 adapter->max_tx_desc_count) > 0)
1546 return 1;
1547
1548 return 0;
1549}
1550
1551
1552void netxen_nic_clear_stats(struct netxen_adapter *adapter) 1401void netxen_nic_clear_stats(struct netxen_adapter *adapter)
1553{ 1402{
1554 memset(&adapter->stats, 0, sizeof(adapter->stats)); 1403 memset(&adapter->stats, 0, sizeof(adapter->stats));
diff --git a/drivers/net/netxen/netxen_nic_isr.c b/drivers/net/netxen/netxen_nic_isr.c
index 48a404aa66ce..c81313b717bd 100644
--- a/drivers/net/netxen/netxen_nic_isr.c
+++ b/drivers/net/netxen/netxen_nic_isr.c
@@ -59,7 +59,7 @@ struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev)
59 /* packet transmit problems */ 59 /* packet transmit problems */
60 stats->tx_errors = adapter->stats.nocmddescriptor; 60 stats->tx_errors = adapter->stats.nocmddescriptor;
61 /* no space in linux buffers */ 61 /* no space in linux buffers */
62 stats->rx_dropped = adapter->stats.updropped; 62 stats->rx_dropped = adapter->stats.rxdropped;
63 /* no space available in linux */ 63 /* no space available in linux */
64 stats->tx_dropped = adapter->stats.txdropped; 64 stats->tx_dropped = adapter->stats.txdropped;
65 65
@@ -193,14 +193,14 @@ int netxen_nic_link_ok(struct netxen_adapter *adapter)
193void netxen_nic_xgbe_handle_phy_intr(struct netxen_adapter *adapter) 193void netxen_nic_xgbe_handle_phy_intr(struct netxen_adapter *adapter)
194{ 194{
195 struct net_device *netdev = adapter->netdev; 195 struct net_device *netdev = adapter->netdev;
196 u32 val, val1; 196 u32 val;
197 197
198 /* WINDOW = 1 */ 198 /* WINDOW = 1 */
199 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE)); 199 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE));
200 val >>= (physical_port[adapter->portnum] * 8); 200 val >>= (physical_port[adapter->portnum] * 8);
201 val1 = val & 0xff; 201 val &= 0xff;
202 202
203 if (adapter->ahw.xg_linkup == 1 && val1 != XG_LINK_UP) { 203 if (adapter->ahw.xg_linkup == 1 && val != XG_LINK_UP) {
204 printk(KERN_INFO "%s: %s NIC Link is down\n", 204 printk(KERN_INFO "%s: %s NIC Link is down\n",
205 netxen_nic_driver_name, netdev->name); 205 netxen_nic_driver_name, netdev->name);
206 adapter->ahw.xg_linkup = 0; 206 adapter->ahw.xg_linkup = 0;
@@ -208,16 +208,7 @@ void netxen_nic_xgbe_handle_phy_intr(struct netxen_adapter *adapter)
208 netif_carrier_off(netdev); 208 netif_carrier_off(netdev);
209 netif_stop_queue(netdev); 209 netif_stop_queue(netdev);
210 } 210 }
211 /* read twice to clear sticky bits */ 211 } else if (adapter->ahw.xg_linkup == 0 && val == XG_LINK_UP) {
212 /* WINDOW = 0 */
213 netxen_nic_read_w0(adapter, NETXEN_NIU_XG_STATUS, &val1);
214 netxen_nic_read_w0(adapter, NETXEN_NIU_XG_STATUS, &val1);
215
216 if ((val & 0xffb) != 0xffb) {
217 printk(KERN_INFO "%s ISR: Sync/Align BAD: 0x%08x\n",
218 netxen_nic_driver_name, val1);
219 }
220 } else if (adapter->ahw.xg_linkup == 0 && val1 == XG_LINK_UP) {
221 printk(KERN_INFO "%s: %s NIC Link is up\n", 212 printk(KERN_INFO "%s: %s NIC Link is up\n",
222 netxen_nic_driver_name, netdev->name); 213 netxen_nic_driver_name, netdev->name);
223 adapter->ahw.xg_linkup = 1; 214 adapter->ahw.xg_linkup = 1;
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 9737eae5ef11..a8fb439a4d03 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -63,12 +63,12 @@ static int netxen_nic_xmit_frame(struct sk_buff *, struct net_device *);
63static void netxen_tx_timeout(struct net_device *netdev); 63static void netxen_tx_timeout(struct net_device *netdev);
64static void netxen_tx_timeout_task(struct work_struct *work); 64static void netxen_tx_timeout_task(struct work_struct *work);
65static void netxen_watchdog(unsigned long); 65static void netxen_watchdog(unsigned long);
66static int netxen_handle_int(struct netxen_adapter *, struct net_device *);
67static int netxen_nic_poll(struct napi_struct *napi, int budget); 66static int netxen_nic_poll(struct napi_struct *napi, int budget);
68#ifdef CONFIG_NET_POLL_CONTROLLER 67#ifdef CONFIG_NET_POLL_CONTROLLER
69static void netxen_nic_poll_controller(struct net_device *netdev); 68static void netxen_nic_poll_controller(struct net_device *netdev);
70#endif 69#endif
71static irqreturn_t netxen_intr(int irq, void *data); 70static irqreturn_t netxen_intr(int irq, void *data);
71static irqreturn_t netxen_msi_intr(int irq, void *data);
72 72
73int physical_port[] = {0, 1, 2, 3}; 73int physical_port[] = {0, 1, 2, 3};
74 74
@@ -149,33 +149,30 @@ static void netxen_nic_update_cmd_consumer(struct netxen_adapter *adapter,
149 149
150#define ADAPTER_LIST_SIZE 12 150#define ADAPTER_LIST_SIZE 12
151 151
152static uint32_t msi_tgt_status[4] = {
153 ISR_INT_TARGET_STATUS, ISR_INT_TARGET_STATUS_F1,
154 ISR_INT_TARGET_STATUS_F2, ISR_INT_TARGET_STATUS_F3
155};
156
157static uint32_t sw_int_mask[4] = {
158 CRB_SW_INT_MASK_0, CRB_SW_INT_MASK_1,
159 CRB_SW_INT_MASK_2, CRB_SW_INT_MASK_3
160};
161
152static void netxen_nic_disable_int(struct netxen_adapter *adapter) 162static void netxen_nic_disable_int(struct netxen_adapter *adapter)
153{ 163{
154 uint32_t mask = 0x7ff; 164 u32 mask = 0x7ff;
155 int retries = 32; 165 int retries = 32;
166 int port = adapter->portnum;
167 int pci_fn = adapter->ahw.pci_func;
156 168
157 DPRINTK(1, INFO, "Entered ISR Disable \n"); 169 if (adapter->msi_mode != MSI_MODE_MULTIFUNC)
158 170 writel(0x0, NETXEN_CRB_NORMALIZE(adapter, sw_int_mask[port]));
159 switch (adapter->portnum) {
160 case 0:
161 writel(0x0, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_0));
162 break;
163 case 1:
164 writel(0x0, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_1));
165 break;
166 case 2:
167 writel(0x0, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_2));
168 break;
169 case 3:
170 writel(0x0, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_3));
171 break;
172 }
173 171
174 if (adapter->intr_scheme != -1 && 172 if (adapter->intr_scheme != -1 &&
175 adapter->intr_scheme != INTR_SCHEME_PERPORT) 173 adapter->intr_scheme != INTR_SCHEME_PERPORT)
176 writel(mask,PCI_OFFSET_SECOND_RANGE(adapter, ISR_INT_MASK)); 174 writel(mask,PCI_OFFSET_SECOND_RANGE(adapter, ISR_INT_MASK));
177 175
178 /* Window = 0 or 1 */
179 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 176 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) {
180 do { 177 do {
181 writel(0xffffffff, 178 writel(0xffffffff,
@@ -190,14 +187,18 @@ static void netxen_nic_disable_int(struct netxen_adapter *adapter)
190 printk(KERN_NOTICE "%s: Failed to disable interrupt completely\n", 187 printk(KERN_NOTICE "%s: Failed to disable interrupt completely\n",
191 netxen_nic_driver_name); 188 netxen_nic_driver_name);
192 } 189 }
190 } else {
191 if (adapter->msi_mode == MSI_MODE_MULTIFUNC) {
192 writel(0xffffffff, PCI_OFFSET_SECOND_RANGE(adapter,
193 msi_tgt_status[pci_fn]));
194 }
193 } 195 }
194
195 DPRINTK(1, INFO, "Done with Disable Int\n");
196} 196}
197 197
198static void netxen_nic_enable_int(struct netxen_adapter *adapter) 198static void netxen_nic_enable_int(struct netxen_adapter *adapter)
199{ 199{
200 u32 mask; 200 u32 mask;
201 int port = adapter->portnum;
201 202
202 DPRINTK(1, INFO, "Entered ISR Enable \n"); 203 DPRINTK(1, INFO, "Entered ISR Enable \n");
203 204
@@ -218,20 +219,7 @@ static void netxen_nic_enable_int(struct netxen_adapter *adapter)
218 writel(mask, PCI_OFFSET_SECOND_RANGE(adapter, ISR_INT_MASK)); 219 writel(mask, PCI_OFFSET_SECOND_RANGE(adapter, ISR_INT_MASK));
219 } 220 }
220 221
221 switch (adapter->portnum) { 222 writel(0x1, NETXEN_CRB_NORMALIZE(adapter, sw_int_mask[port]));
222 case 0:
223 writel(0x1, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_0));
224 break;
225 case 1:
226 writel(0x1, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_1));
227 break;
228 case 2:
229 writel(0x1, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_2));
230 break;
231 case 3:
232 writel(0x1, NETXEN_CRB_NORMALIZE(adapter, CRB_SW_INT_MASK_3));
233 break;
234 }
235 223
236 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 224 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) {
237 mask = 0xbff; 225 mask = 0xbff;
@@ -328,7 +316,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
328 316
329 adapter->ahw.pdev = pdev; 317 adapter->ahw.pdev = pdev;
330 adapter->ahw.pci_func = pci_func_id; 318 adapter->ahw.pci_func = pci_func_id;
331 spin_lock_init(&adapter->tx_lock);
332 319
333 /* remap phys address */ 320 /* remap phys address */
334 mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */ 321 mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */
@@ -401,6 +388,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
401 388
402 /* this will be read from FW later */ 389 /* this will be read from FW later */
403 adapter->intr_scheme = -1; 390 adapter->intr_scheme = -1;
391 adapter->msi_mode = -1;
404 392
405 /* This will be reset for mezz cards */ 393 /* This will be reset for mezz cards */
406 adapter->portnum = pci_func_id; 394 adapter->portnum = pci_func_id;
@@ -415,7 +403,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
415 netdev->set_mac_address = netxen_nic_set_mac; 403 netdev->set_mac_address = netxen_nic_set_mac;
416 netdev->change_mtu = netxen_nic_change_mtu; 404 netdev->change_mtu = netxen_nic_change_mtu;
417 netdev->tx_timeout = netxen_tx_timeout; 405 netdev->tx_timeout = netxen_tx_timeout;
418 netdev->watchdog_timeo = HZ; 406 netdev->watchdog_timeo = 2*HZ;
419 407
420 netxen_nic_change_mtu(netdev, netdev->mtu); 408 netxen_nic_change_mtu(netdev, netdev->mtu);
421 409
@@ -543,7 +531,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
543 adapter->watchdog_timer.data = (unsigned long)adapter; 531 adapter->watchdog_timer.data = (unsigned long)adapter;
544 INIT_WORK(&adapter->watchdog_task, netxen_watchdog_task); 532 INIT_WORK(&adapter->watchdog_task, netxen_watchdog_task);
545 adapter->ahw.pdev = pdev; 533 adapter->ahw.pdev = pdev;
546 adapter->proc_cmd_buf_counter = 0;
547 adapter->ahw.revision_id = pdev->revision; 534 adapter->ahw.revision_id = pdev->revision;
548 535
549 /* make sure Window == 1 */ 536 /* make sure Window == 1 */
@@ -833,6 +820,8 @@ static int netxen_nic_open(struct net_device *netdev)
833 struct netxen_adapter *adapter = (struct netxen_adapter *)netdev->priv; 820 struct netxen_adapter *adapter = (struct netxen_adapter *)netdev->priv;
834 int err = 0; 821 int err = 0;
835 int ctx, ring; 822 int ctx, ring;
823 irq_handler_t handler;
824 unsigned long flags = IRQF_SAMPLE_RANDOM;
836 825
837 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) { 826 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) {
838 err = netxen_init_firmware(adapter); 827 err = netxen_init_firmware(adapter);
@@ -856,9 +845,14 @@ static int netxen_nic_open(struct net_device *netdev)
856 netxen_post_rx_buffers(adapter, ctx, ring); 845 netxen_post_rx_buffers(adapter, ctx, ring);
857 } 846 }
858 adapter->irq = adapter->ahw.pdev->irq; 847 adapter->irq = adapter->ahw.pdev->irq;
859 err = request_irq(adapter->ahw.pdev->irq, netxen_intr, 848 if (adapter->flags & NETXEN_NIC_MSI_ENABLED)
860 IRQF_SHARED|IRQF_SAMPLE_RANDOM, netdev->name, 849 handler = netxen_msi_intr;
861 adapter); 850 else {
851 flags |= IRQF_SHARED;
852 handler = netxen_intr;
853 }
854 err = request_irq(adapter->irq, handler,
855 flags, netdev->name, adapter);
862 if (err) { 856 if (err) {
863 printk(KERN_ERR "request_irq failed with: %d\n", err); 857 printk(KERN_ERR "request_irq failed with: %d\n", err);
864 netxen_free_hw_resources(adapter); 858 netxen_free_hw_resources(adapter);
@@ -867,21 +861,12 @@ static int netxen_nic_open(struct net_device *netdev)
867 861
868 adapter->is_up = NETXEN_ADAPTER_UP_MAGIC; 862 adapter->is_up = NETXEN_ADAPTER_UP_MAGIC;
869 } 863 }
870 if (!adapter->driver_mismatch)
871 mod_timer(&adapter->watchdog_timer, jiffies);
872
873 napi_enable(&adapter->napi);
874
875 netxen_nic_enable_int(adapter);
876
877 /* Done here again so that even if phantom sw overwrote it, 864 /* Done here again so that even if phantom sw overwrote it,
878 * we set it */ 865 * we set it */
879 if (adapter->init_port 866 if (adapter->init_port
880 && adapter->init_port(adapter, adapter->portnum) != 0) { 867 && adapter->init_port(adapter, adapter->portnum) != 0) {
881 del_timer_sync(&adapter->watchdog_timer);
882 printk(KERN_ERR "%s: Failed to initialize port %d\n", 868 printk(KERN_ERR "%s: Failed to initialize port %d\n",
883 netxen_nic_driver_name, adapter->portnum); 869 netxen_nic_driver_name, adapter->portnum);
884 napi_disable(&adapter->napi);
885 return -EIO; 870 return -EIO;
886 } 871 }
887 if (adapter->macaddr_set) 872 if (adapter->macaddr_set)
@@ -894,6 +879,12 @@ static int netxen_nic_open(struct net_device *netdev)
894 adapter->set_mtu(adapter, netdev->mtu); 879 adapter->set_mtu(adapter, netdev->mtu);
895 880
896 if (!adapter->driver_mismatch) 881 if (!adapter->driver_mismatch)
882 mod_timer(&adapter->watchdog_timer, jiffies);
883
884 napi_enable(&adapter->napi);
885 netxen_nic_enable_int(adapter);
886
887 if (!adapter->driver_mismatch)
897 netif_start_queue(netdev); 888 netif_start_queue(netdev);
898 889
899 return 0; 890 return 0;
@@ -958,41 +949,17 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
958 struct netxen_skb_frag *buffrag; 949 struct netxen_skb_frag *buffrag;
959 unsigned int i; 950 unsigned int i;
960 951
961 u32 producer = 0; 952 u32 producer, consumer;
962 u32 saved_producer = 0; 953 u32 saved_producer = 0;
963 struct cmd_desc_type0 *hwdesc; 954 struct cmd_desc_type0 *hwdesc;
964 int k; 955 int k;
965 struct netxen_cmd_buffer *pbuf = NULL; 956 struct netxen_cmd_buffer *pbuf = NULL;
966 static int dropped_packet = 0;
967 int frag_count; 957 int frag_count;
968 u32 local_producer = 0;
969 u32 max_tx_desc_count = 0;
970 u32 last_cmd_consumer = 0;
971 int no_of_desc; 958 int no_of_desc;
959 u32 num_txd = adapter->max_tx_desc_count;
972 960
973 adapter->stats.xmitcalled++;
974 frag_count = skb_shinfo(skb)->nr_frags + 1; 961 frag_count = skb_shinfo(skb)->nr_frags + 1;
975 962
976 if (unlikely(skb->len <= 0)) {
977 dev_kfree_skb_any(skb);
978 adapter->stats.badskblen++;
979 return NETDEV_TX_OK;
980 }
981
982 if (frag_count > MAX_BUFFERS_PER_CMD) {
983 printk("%s: %s netxen_nic_xmit_frame: frag_count (%d) "
984 "too large, can handle only %d frags\n",
985 netxen_nic_driver_name, netdev->name,
986 frag_count, MAX_BUFFERS_PER_CMD);
987 adapter->stats.txdropped++;
988 if ((++dropped_packet & 0xff) == 0xff)
989 printk("%s: %s droppped packets = %d\n",
990 netxen_nic_driver_name, netdev->name,
991 dropped_packet);
992
993 return NETDEV_TX_OK;
994 }
995
996 /* There 4 fragments per descriptor */ 963 /* There 4 fragments per descriptor */
997 no_of_desc = (frag_count + 3) >> 2; 964 no_of_desc = (frag_count + 3) >> 2;
998 if (netdev->features & NETIF_F_TSO) { 965 if (netdev->features & NETIF_F_TSO) {
@@ -1007,27 +974,16 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1007 } 974 }
1008 } 975 }
1009 976
1010 spin_lock_bh(&adapter->tx_lock); 977 producer = adapter->cmd_producer;
1011 if (adapter->total_threads >= MAX_XMIT_PRODUCERS) { 978 smp_mb();
1012 goto out_requeue; 979 consumer = adapter->last_cmd_consumer;
1013 } 980 if ((no_of_desc+2) > find_diff_among(producer, consumer, num_txd)) {
1014 local_producer = adapter->cmd_producer; 981 netif_stop_queue(netdev);
1015 k = adapter->cmd_producer; 982 smp_mb();
1016 max_tx_desc_count = adapter->max_tx_desc_count; 983 return NETDEV_TX_BUSY;
1017 last_cmd_consumer = adapter->last_cmd_consumer;
1018 if ((k + no_of_desc) >=
1019 ((last_cmd_consumer <= k) ? last_cmd_consumer + max_tx_desc_count :
1020 last_cmd_consumer)) {
1021 goto out_requeue;
1022 } 984 }
1023 k = get_index_range(k, max_tx_desc_count, no_of_desc);
1024 adapter->cmd_producer = k;
1025 adapter->total_threads++;
1026 adapter->num_threads++;
1027 985
1028 spin_unlock_bh(&adapter->tx_lock);
1029 /* Copy the descriptors into the hardware */ 986 /* Copy the descriptors into the hardware */
1030 producer = local_producer;
1031 saved_producer = producer; 987 saved_producer = producer;
1032 hwdesc = &hw->cmd_desc_head[producer]; 988 hwdesc = &hw->cmd_desc_head[producer];
1033 memset(hwdesc, 0, sizeof(struct cmd_desc_type0)); 989 memset(hwdesc, 0, sizeof(struct cmd_desc_type0));
@@ -1067,8 +1023,7 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1067 /* move to next desc. if there is a need */ 1023 /* move to next desc. if there is a need */
1068 if ((i & 0x3) == 0) { 1024 if ((i & 0x3) == 0) {
1069 k = 0; 1025 k = 0;
1070 producer = get_next_index(producer, 1026 producer = get_next_index(producer, num_txd);
1071 adapter->max_tx_desc_count);
1072 hwdesc = &hw->cmd_desc_head[producer]; 1027 hwdesc = &hw->cmd_desc_head[producer];
1073 memset(hwdesc, 0, sizeof(struct cmd_desc_type0)); 1028 memset(hwdesc, 0, sizeof(struct cmd_desc_type0));
1074 pbuf = &adapter->cmd_buf_arr[producer]; 1029 pbuf = &adapter->cmd_buf_arr[producer];
@@ -1086,7 +1041,6 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1086 buffrag->dma = temp_dma; 1041 buffrag->dma = temp_dma;
1087 buffrag->length = temp_len; 1042 buffrag->length = temp_len;
1088 1043
1089 DPRINTK(INFO, "for loop. i=%d k=%d\n", i, k);
1090 switch (k) { 1044 switch (k) {
1091 case 0: 1045 case 0:
1092 hwdesc->buffer1_length = cpu_to_le16(temp_len); 1046 hwdesc->buffer1_length = cpu_to_le16(temp_len);
@@ -1107,7 +1061,7 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1107 } 1061 }
1108 frag++; 1062 frag++;
1109 } 1063 }
1110 producer = get_next_index(producer, adapter->max_tx_desc_count); 1064 producer = get_next_index(producer, num_txd);
1111 1065
1112 /* might change opcode to TX_TCP_LSO */ 1066 /* might change opcode to TX_TCP_LSO */
1113 netxen_tso_check(adapter, &hw->cmd_desc_head[saved_producer], skb); 1067 netxen_tso_check(adapter, &hw->cmd_desc_head[saved_producer], skb);
@@ -1134,7 +1088,7 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1134 /* copy the first 64 bytes */ 1088 /* copy the first 64 bytes */
1135 memcpy(((void *)hwdesc) + 2, 1089 memcpy(((void *)hwdesc) + 2,
1136 (void *)(skb->data), first_hdr_len); 1090 (void *)(skb->data), first_hdr_len);
1137 producer = get_next_index(producer, max_tx_desc_count); 1091 producer = get_next_index(producer, num_txd);
1138 1092
1139 if (more_hdr) { 1093 if (more_hdr) {
1140 hwdesc = &hw->cmd_desc_head[producer]; 1094 hwdesc = &hw->cmd_desc_head[producer];
@@ -1147,35 +1101,19 @@ static int netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1147 hwdesc, 1101 hwdesc,
1148 (hdr_len - 1102 (hdr_len -
1149 first_hdr_len)); 1103 first_hdr_len));
1150 producer = get_next_index(producer, max_tx_desc_count); 1104 producer = get_next_index(producer, num_txd);
1151 } 1105 }
1152 } 1106 }
1153 1107
1154 spin_lock_bh(&adapter->tx_lock); 1108 adapter->cmd_producer = producer;
1155 adapter->stats.txbytes += skb->len; 1109 adapter->stats.txbytes += skb->len;
1156 1110
1157 /* Code to update the adapter considering how many producer threads 1111 netxen_nic_update_cmd_producer(adapter, adapter->cmd_producer);
1158 are currently working */
1159 if ((--adapter->num_threads) == 0) {
1160 /* This is the last thread */
1161 u32 crb_producer = adapter->cmd_producer;
1162 netxen_nic_update_cmd_producer(adapter, crb_producer);
1163 wmb();
1164 adapter->total_threads = 0;
1165 }
1166 1112
1167 adapter->stats.xmitfinished++; 1113 adapter->stats.xmitcalled++;
1168 netdev->trans_start = jiffies; 1114 netdev->trans_start = jiffies;
1169 1115
1170 spin_unlock_bh(&adapter->tx_lock);
1171 return NETDEV_TX_OK; 1116 return NETDEV_TX_OK;
1172
1173out_requeue:
1174 netif_stop_queue(netdev);
1175 adapter->flags |= NETXEN_NETDEV_STATUS;
1176
1177 spin_unlock_bh(&adapter->tx_lock);
1178 return NETDEV_TX_BUSY;
1179} 1117}
1180 1118
1181static void netxen_watchdog(unsigned long v) 1119static void netxen_watchdog(unsigned long v)
@@ -1200,87 +1138,60 @@ static void netxen_tx_timeout_task(struct work_struct *work)
1200 printk(KERN_ERR "%s %s: transmit timeout, resetting.\n", 1138 printk(KERN_ERR "%s %s: transmit timeout, resetting.\n",
1201 netxen_nic_driver_name, adapter->netdev->name); 1139 netxen_nic_driver_name, adapter->netdev->name);
1202 1140
1203 netxen_nic_close(adapter->netdev); 1141 netxen_nic_disable_int(adapter);
1204 netxen_nic_open(adapter->netdev); 1142 napi_disable(&adapter->napi);
1143
1205 adapter->netdev->trans_start = jiffies; 1144 adapter->netdev->trans_start = jiffies;
1145
1146 napi_enable(&adapter->napi);
1147 netxen_nic_enable_int(adapter);
1206 netif_wake_queue(adapter->netdev); 1148 netif_wake_queue(adapter->netdev);
1207} 1149}
1208 1150
1209static int 1151static inline void
1210netxen_handle_int(struct netxen_adapter *adapter, struct net_device *netdev) 1152netxen_handle_int(struct netxen_adapter *adapter)
1211{ 1153{
1212 u32 ret = 0;
1213
1214 DPRINTK(INFO, "Entered handle ISR\n");
1215 adapter->stats.ints++;
1216
1217 netxen_nic_disable_int(adapter); 1154 netxen_nic_disable_int(adapter);
1218 1155 napi_schedule(&adapter->napi);
1219 if (netxen_nic_rx_has_work(adapter) || netxen_nic_tx_has_work(adapter)) {
1220 if (netif_rx_schedule_prep(netdev, &adapter->napi)) {
1221 /*
1222 * Interrupts are already disabled.
1223 */
1224 __netif_rx_schedule(netdev, &adapter->napi);
1225 } else {
1226 static unsigned int intcount = 0;
1227 if ((++intcount & 0xfff) == 0xfff)
1228 DPRINTK(KERN_ERR
1229 "%s: %s interrupt %d while in poll\n",
1230 netxen_nic_driver_name, netdev->name,
1231 intcount);
1232 }
1233 ret = 1;
1234 }
1235
1236 if (ret == 0) {
1237 netxen_nic_enable_int(adapter);
1238 }
1239
1240 return ret;
1241} 1156}
1242 1157
1243/*
1244 * netxen_intr - Interrupt Handler
1245 * @irq: interrupt number
1246 * data points to adapter stucture (which may be handling more than 1 port
1247 */
1248irqreturn_t netxen_intr(int irq, void *data) 1158irqreturn_t netxen_intr(int irq, void *data)
1249{ 1159{
1250 struct netxen_adapter *adapter = data; 1160 struct netxen_adapter *adapter = data;
1251 struct net_device *netdev = adapter->netdev;
1252 u32 our_int = 0; 1161 u32 our_int = 0;
1253 1162
1254 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 1163 our_int = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR));
1255 our_int = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR)); 1164 /* not our interrupt */
1256 /* not our interrupt */ 1165 if ((our_int & (0x80 << adapter->portnum)) == 0)
1257 if ((our_int & (0x80 << adapter->portnum)) == 0) 1166 return IRQ_NONE;
1258 return IRQ_NONE;
1259 }
1260 1167
1261 if (adapter->intr_scheme == INTR_SCHEME_PERPORT) { 1168 if (adapter->intr_scheme == INTR_SCHEME_PERPORT) {
1262 /* claim interrupt */ 1169 /* claim interrupt */
1263 if (!(adapter->flags & NETXEN_NIC_MSI_ENABLED)) { 1170 writel(our_int & ~((u32)(0x80 << adapter->portnum)),
1264 writel(our_int & ~((u32)(0x80 << adapter->portnum)),
1265 NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR)); 1171 NETXEN_CRB_NORMALIZE(adapter, CRB_INT_VECTOR));
1266 }
1267 } 1172 }
1268 1173
1269 if (netif_running(netdev)) 1174 netxen_handle_int(adapter);
1270 netxen_handle_int(adapter, netdev);
1271 1175
1272 return IRQ_HANDLED; 1176 return IRQ_HANDLED;
1273} 1177}
1274 1178
1179irqreturn_t netxen_msi_intr(int irq, void *data)
1180{
1181 struct netxen_adapter *adapter = data;
1182
1183 netxen_handle_int(adapter);
1184 return IRQ_HANDLED;
1185}
1186
1275static int netxen_nic_poll(struct napi_struct *napi, int budget) 1187static int netxen_nic_poll(struct napi_struct *napi, int budget)
1276{ 1188{
1277 struct netxen_adapter *adapter = container_of(napi, struct netxen_adapter, napi); 1189 struct netxen_adapter *adapter = container_of(napi, struct netxen_adapter, napi);
1278 struct net_device *netdev = adapter->netdev; 1190 int tx_complete;
1279 int done = 1;
1280 int ctx; 1191 int ctx;
1281 int work_done; 1192 int work_done;
1282 1193
1283 DPRINTK(INFO, "polling for %d descriptors\n", *budget); 1194 tx_complete = netxen_process_cmd_ring(adapter);
1284 1195
1285 work_done = 0; 1196 work_done = 0;
1286 for (ctx = 0; ctx < MAX_RCV_CTX; ++ctx) { 1197 for (ctx = 0; ctx < MAX_RCV_CTX; ++ctx) {
@@ -1300,16 +1211,8 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
1300 budget / MAX_RCV_CTX); 1211 budget / MAX_RCV_CTX);
1301 } 1212 }
1302 1213
1303 if (work_done >= budget) 1214 if ((work_done < budget) && tx_complete) {
1304 done = 0; 1215 netif_rx_complete(adapter->netdev, &adapter->napi);
1305
1306 if (netxen_process_cmd_ring((unsigned long)adapter) == 0)
1307 done = 0;
1308
1309 DPRINTK(INFO, "new work_done: %d work_to_do: %d\n",
1310 work_done, work_to_do);
1311 if (done) {
1312 netif_rx_complete(netdev, napi);
1313 netxen_nic_enable_int(adapter); 1216 netxen_nic_enable_int(adapter);
1314 } 1217 }
1315 1218
diff --git a/drivers/net/netxen/netxen_nic_phan_reg.h b/drivers/net/netxen/netxen_nic_phan_reg.h
index ffa3b7215ce8..a566b50f36f5 100644
--- a/drivers/net/netxen/netxen_nic_phan_reg.h
+++ b/drivers/net/netxen/netxen_nic_phan_reg.h
@@ -126,8 +126,11 @@
126 */ 126 */
127#define CRB_NIC_CAPABILITIES_HOST NETXEN_NIC_REG(0x1a8) 127#define CRB_NIC_CAPABILITIES_HOST NETXEN_NIC_REG(0x1a8)
128#define CRB_NIC_CAPABILITIES_FW NETXEN_NIC_REG(0x1dc) 128#define CRB_NIC_CAPABILITIES_FW NETXEN_NIC_REG(0x1dc)
129#define CRB_NIC_MSI_MODE_HOST NETXEN_NIC_REG(0x270)
130#define CRB_NIC_MSI_MODE_FW NETXEN_NIC_REG(0x274)
129 131
130#define INTR_SCHEME_PERPORT 0x1 132#define INTR_SCHEME_PERPORT 0x1
133#define MSI_MODE_MULTIFUNC 0x1
131 134
132/* used for ethtool tests */ 135/* used for ethtool tests */
133#define CRB_SCRATCHPAD_TEST NETXEN_NIC_REG(0x280) 136#define CRB_SCRATCHPAD_TEST NETXEN_NIC_REG(0x280)
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index e8a63e483a2b..ce95c5d168fe 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -1268,7 +1268,7 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id)
1268 } 1268 }
1269 } 1269 }
1270 1270
1271 if (interrupts && ei_debug) 1271 if (interrupts && ei_debug > 3)
1272 { 1272 {
1273 handled = 1; 1273 handled = 1;
1274 if (nr_serviced >= MAX_SERVICE) 1274 if (nr_serviced >= MAX_SERVICE)
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index f4ca0591231d..3ac8529bb92c 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -67,6 +67,7 @@ config REALTEK_PHY
67 67
68config FIXED_PHY 68config FIXED_PHY
69 bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs" 69 bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
70 depends on PHYLIB=y
70 ---help--- 71 ---help---
71 Adds the platform "fixed" MDIO Bus to cover the boards that use 72 Adds the platform "fixed" MDIO Bus to cover the boards that use
72 PHYs that are not connected to the real MDIO bus. 73 PHYs that are not connected to the real MDIO bus.
diff --git a/drivers/net/phy/davicom.c b/drivers/net/phy/davicom.c
index 7ed632db00d7..d926168bc780 100644
--- a/drivers/net/phy/davicom.c
+++ b/drivers/net/phy/davicom.c
@@ -37,6 +37,7 @@
37 37
38#define MII_DM9161_SCR 0x10 38#define MII_DM9161_SCR 0x10
39#define MII_DM9161_SCR_INIT 0x0610 39#define MII_DM9161_SCR_INIT 0x0610
40#define MII_DM9161_SCR_RMII 0x0100
40 41
41/* DM9161 Interrupt Register */ 42/* DM9161 Interrupt Register */
42#define MII_DM9161_INTR 0x15 43#define MII_DM9161_INTR 0x15
@@ -103,7 +104,7 @@ static int dm9161_config_aneg(struct phy_device *phydev)
103 104
104static int dm9161_config_init(struct phy_device *phydev) 105static int dm9161_config_init(struct phy_device *phydev)
105{ 106{
106 int err; 107 int err, temp;
107 108
108 /* Isolate the PHY */ 109 /* Isolate the PHY */
109 err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE); 110 err = phy_write(phydev, MII_BMCR, BMCR_ISOLATE);
@@ -111,9 +112,19 @@ static int dm9161_config_init(struct phy_device *phydev)
111 if (err < 0) 112 if (err < 0)
112 return err; 113 return err;
113 114
114 /* Do not bypass the scrambler/descrambler */ 115 switch (phydev->interface) {
115 err = phy_write(phydev, MII_DM9161_SCR, MII_DM9161_SCR_INIT); 116 case PHY_INTERFACE_MODE_MII:
117 temp = MII_DM9161_SCR_INIT;
118 break;
119 case PHY_INTERFACE_MODE_RMII:
120 temp = MII_DM9161_SCR_INIT | MII_DM9161_SCR_RMII;
121 break;
122 default:
123 return -EINVAL;
124 }
116 125
126 /* Do not bypass the scrambler/descrambler */
127 err = phy_write(phydev, MII_DM9161_SCR, temp);
117 if (err < 0) 128 if (err < 0)
118 return err; 129 return err;
119 130
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index f0574073a2a3..33539917e9b8 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -58,9 +58,25 @@
58#define MII_M1111_RX_DELAY 0x80 58#define MII_M1111_RX_DELAY 0x80
59#define MII_M1111_TX_DELAY 0x2 59#define MII_M1111_TX_DELAY 0x2
60#define MII_M1111_PHY_EXT_SR 0x1b 60#define MII_M1111_PHY_EXT_SR 0x1b
61#define MII_M1111_HWCFG_MODE_MASK 0xf 61
62#define MII_M1111_HWCFG_MODE_RGMII 0xb 62#define MII_M1111_HWCFG_MODE_MASK 0xf
63#define MII_M1111_HWCFG_MODE_COPPER_RGMII 0xb
64#define MII_M1111_HWCFG_MODE_FIBER_RGMII 0x3
63#define MII_M1111_HWCFG_MODE_SGMII_NO_CLK 0x4 65#define MII_M1111_HWCFG_MODE_SGMII_NO_CLK 0x4
66#define MII_M1111_HWCFG_FIBER_COPPER_AUTO 0x8000
67#define MII_M1111_HWCFG_FIBER_COPPER_RES 0x2000
68
69#define MII_M1111_COPPER 0
70#define MII_M1111_FIBER 1
71
72#define MII_M1011_PHY_STATUS 0x11
73#define MII_M1011_PHY_STATUS_1000 0x8000
74#define MII_M1011_PHY_STATUS_100 0x4000
75#define MII_M1011_PHY_STATUS_SPD_MASK 0xc000
76#define MII_M1011_PHY_STATUS_FULLDUPLEX 0x2000
77#define MII_M1011_PHY_STATUS_RESOLVED 0x0800
78#define MII_M1011_PHY_STATUS_LINK 0x0400
79
64 80
65MODULE_DESCRIPTION("Marvell PHY driver"); 81MODULE_DESCRIPTION("Marvell PHY driver");
66MODULE_AUTHOR("Andy Fleming"); 82MODULE_AUTHOR("Andy Fleming");
@@ -141,12 +157,22 @@ static int marvell_config_aneg(struct phy_device *phydev)
141static int m88e1111_config_init(struct phy_device *phydev) 157static int m88e1111_config_init(struct phy_device *phydev)
142{ 158{
143 int err; 159 int err;
160 int temp;
161 int mode;
162
163 /* Enable Fiber/Copper auto selection */
164 temp = phy_read(phydev, MII_M1111_PHY_EXT_SR);
165 temp |= MII_M1111_HWCFG_FIBER_COPPER_AUTO;
166 phy_write(phydev, MII_M1111_PHY_EXT_SR, temp);
167
168 temp = phy_read(phydev, MII_BMCR);
169 temp |= BMCR_RESET;
170 phy_write(phydev, MII_BMCR, temp);
144 171
145 if ((phydev->interface == PHY_INTERFACE_MODE_RGMII) || 172 if ((phydev->interface == PHY_INTERFACE_MODE_RGMII) ||
146 (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) || 173 (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) ||
147 (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) || 174 (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) ||
148 (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) { 175 (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) {
149 int temp;
150 176
151 temp = phy_read(phydev, MII_M1111_PHY_EXT_CR); 177 temp = phy_read(phydev, MII_M1111_PHY_EXT_CR);
152 if (temp < 0) 178 if (temp < 0)
@@ -171,7 +197,13 @@ static int m88e1111_config_init(struct phy_device *phydev)
171 return temp; 197 return temp;
172 198
173 temp &= ~(MII_M1111_HWCFG_MODE_MASK); 199 temp &= ~(MII_M1111_HWCFG_MODE_MASK);
174 temp |= MII_M1111_HWCFG_MODE_RGMII; 200
201 mode = phy_read(phydev, MII_M1111_PHY_EXT_CR);
202
203 if (mode & MII_M1111_HWCFG_FIBER_COPPER_RES)
204 temp |= MII_M1111_HWCFG_MODE_FIBER_RGMII;
205 else
206 temp |= MII_M1111_HWCFG_MODE_COPPER_RGMII;
175 207
176 err = phy_write(phydev, MII_M1111_PHY_EXT_SR, temp); 208 err = phy_write(phydev, MII_M1111_PHY_EXT_SR, temp);
177 if (err < 0) 209 if (err < 0)
@@ -262,6 +294,93 @@ static int m88e1145_config_init(struct phy_device *phydev)
262 return 0; 294 return 0;
263} 295}
264 296
297/* marvell_read_status
298 *
299 * Generic status code does not detect Fiber correctly!
300 * Description:
301 * Check the link, then figure out the current state
302 * by comparing what we advertise with what the link partner
303 * advertises. Start by checking the gigabit possibilities,
304 * then move on to 10/100.
305 */
306static int marvell_read_status(struct phy_device *phydev)
307{
308 int adv;
309 int err;
310 int lpa;
311 int status = 0;
312
313 /* Update the link, but return if there
314 * was an error */
315 err = genphy_update_link(phydev);
316 if (err)
317 return err;
318
319 if (AUTONEG_ENABLE == phydev->autoneg) {
320 status = phy_read(phydev, MII_M1011_PHY_STATUS);
321 if (status < 0)
322 return status;
323
324 lpa = phy_read(phydev, MII_LPA);
325 if (lpa < 0)
326 return lpa;
327
328 adv = phy_read(phydev, MII_ADVERTISE);
329 if (adv < 0)
330 return adv;
331
332 lpa &= adv;
333
334 if (status & MII_M1011_PHY_STATUS_FULLDUPLEX)
335 phydev->duplex = DUPLEX_FULL;
336 else
337 phydev->duplex = DUPLEX_HALF;
338
339 status = status & MII_M1011_PHY_STATUS_SPD_MASK;
340 phydev->pause = phydev->asym_pause = 0;
341
342 switch (status) {
343 case MII_M1011_PHY_STATUS_1000:
344 phydev->speed = SPEED_1000;
345 break;
346
347 case MII_M1011_PHY_STATUS_100:
348 phydev->speed = SPEED_100;
349 break;
350
351 default:
352 phydev->speed = SPEED_10;
353 break;
354 }
355
356 if (phydev->duplex == DUPLEX_FULL) {
357 phydev->pause = lpa & LPA_PAUSE_CAP ? 1 : 0;
358 phydev->asym_pause = lpa & LPA_PAUSE_ASYM ? 1 : 0;
359 }
360 } else {
361 int bmcr = phy_read(phydev, MII_BMCR);
362
363 if (bmcr < 0)
364 return bmcr;
365
366 if (bmcr & BMCR_FULLDPLX)
367 phydev->duplex = DUPLEX_FULL;
368 else
369 phydev->duplex = DUPLEX_HALF;
370
371 if (bmcr & BMCR_SPEED1000)
372 phydev->speed = SPEED_1000;
373 else if (bmcr & BMCR_SPEED100)
374 phydev->speed = SPEED_100;
375 else
376 phydev->speed = SPEED_10;
377
378 phydev->pause = phydev->asym_pause = 0;
379 }
380
381 return 0;
382}
383
265static struct phy_driver marvell_drivers[] = { 384static struct phy_driver marvell_drivers[] = {
266 { 385 {
267 .phy_id = 0x01410c60, 386 .phy_id = 0x01410c60,
@@ -296,7 +415,7 @@ static struct phy_driver marvell_drivers[] = {
296 .flags = PHY_HAS_INTERRUPT, 415 .flags = PHY_HAS_INTERRUPT,
297 .config_init = &m88e1111_config_init, 416 .config_init = &m88e1111_config_init,
298 .config_aneg = &marvell_config_aneg, 417 .config_aneg = &marvell_config_aneg,
299 .read_status = &genphy_read_status, 418 .read_status = &marvell_read_status,
300 .ack_interrupt = &marvell_ack_interrupt, 419 .ack_interrupt = &marvell_ack_interrupt,
301 .config_intr = &marvell_config_intr, 420 .config_intr = &marvell_config_intr,
302 .driver = { .owner = THIS_MODULE }, 421 .driver = { .owner = THIS_MODULE },
diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c
index 86e5dba079fe..3d10ca050b79 100644
--- a/drivers/net/pppol2tp.c
+++ b/drivers/net/pppol2tp.c
@@ -302,14 +302,14 @@ pppol2tp_session_find(struct pppol2tp_tunnel *tunnel, u16 session_id)
302 struct pppol2tp_session *session; 302 struct pppol2tp_session *session;
303 struct hlist_node *walk; 303 struct hlist_node *walk;
304 304
305 read_lock(&tunnel->hlist_lock); 305 read_lock_bh(&tunnel->hlist_lock);
306 hlist_for_each_entry(session, walk, session_list, hlist) { 306 hlist_for_each_entry(session, walk, session_list, hlist) {
307 if (session->tunnel_addr.s_session == session_id) { 307 if (session->tunnel_addr.s_session == session_id) {
308 read_unlock(&tunnel->hlist_lock); 308 read_unlock_bh(&tunnel->hlist_lock);
309 return session; 309 return session;
310 } 310 }
311 } 311 }
312 read_unlock(&tunnel->hlist_lock); 312 read_unlock_bh(&tunnel->hlist_lock);
313 313
314 return NULL; 314 return NULL;
315} 315}
@@ -320,14 +320,14 @@ static struct pppol2tp_tunnel *pppol2tp_tunnel_find(u16 tunnel_id)
320{ 320{
321 struct pppol2tp_tunnel *tunnel = NULL; 321 struct pppol2tp_tunnel *tunnel = NULL;
322 322
323 read_lock(&pppol2tp_tunnel_list_lock); 323 read_lock_bh(&pppol2tp_tunnel_list_lock);
324 list_for_each_entry(tunnel, &pppol2tp_tunnel_list, list) { 324 list_for_each_entry(tunnel, &pppol2tp_tunnel_list, list) {
325 if (tunnel->stats.tunnel_id == tunnel_id) { 325 if (tunnel->stats.tunnel_id == tunnel_id) {
326 read_unlock(&pppol2tp_tunnel_list_lock); 326 read_unlock_bh(&pppol2tp_tunnel_list_lock);
327 return tunnel; 327 return tunnel;
328 } 328 }
329 } 329 }
330 read_unlock(&pppol2tp_tunnel_list_lock); 330 read_unlock_bh(&pppol2tp_tunnel_list_lock);
331 331
332 return NULL; 332 return NULL;
333} 333}
@@ -342,10 +342,11 @@ static struct pppol2tp_tunnel *pppol2tp_tunnel_find(u16 tunnel_id)
342static void pppol2tp_recv_queue_skb(struct pppol2tp_session *session, struct sk_buff *skb) 342static void pppol2tp_recv_queue_skb(struct pppol2tp_session *session, struct sk_buff *skb)
343{ 343{
344 struct sk_buff *skbp; 344 struct sk_buff *skbp;
345 struct sk_buff *tmp;
345 u16 ns = PPPOL2TP_SKB_CB(skb)->ns; 346 u16 ns = PPPOL2TP_SKB_CB(skb)->ns;
346 347
347 spin_lock(&session->reorder_q.lock); 348 spin_lock_bh(&session->reorder_q.lock);
348 skb_queue_walk(&session->reorder_q, skbp) { 349 skb_queue_walk_safe(&session->reorder_q, skbp, tmp) {
349 if (PPPOL2TP_SKB_CB(skbp)->ns > ns) { 350 if (PPPOL2TP_SKB_CB(skbp)->ns > ns) {
350 __skb_insert(skb, skbp->prev, skbp, &session->reorder_q); 351 __skb_insert(skb, skbp->prev, skbp, &session->reorder_q);
351 PRINTK(session->debug, PPPOL2TP_MSG_SEQ, KERN_DEBUG, 352 PRINTK(session->debug, PPPOL2TP_MSG_SEQ, KERN_DEBUG,
@@ -360,7 +361,7 @@ static void pppol2tp_recv_queue_skb(struct pppol2tp_session *session, struct sk_
360 __skb_queue_tail(&session->reorder_q, skb); 361 __skb_queue_tail(&session->reorder_q, skb);
361 362
362out: 363out:
363 spin_unlock(&session->reorder_q.lock); 364 spin_unlock_bh(&session->reorder_q.lock);
364} 365}
365 366
366/* Dequeue a single skb. 367/* Dequeue a single skb.
@@ -371,10 +372,9 @@ static void pppol2tp_recv_dequeue_skb(struct pppol2tp_session *session, struct s
371 int length = PPPOL2TP_SKB_CB(skb)->length; 372 int length = PPPOL2TP_SKB_CB(skb)->length;
372 struct sock *session_sock = NULL; 373 struct sock *session_sock = NULL;
373 374
374 /* We're about to requeue the skb, so unlink it and return resources 375 /* We're about to requeue the skb, so return resources
375 * to its current owner (a socket receive buffer). 376 * to its current owner (a socket receive buffer).
376 */ 377 */
377 skb_unlink(skb, &session->reorder_q);
378 skb_orphan(skb); 378 skb_orphan(skb);
379 379
380 tunnel->stats.rx_packets++; 380 tunnel->stats.rx_packets++;
@@ -442,7 +442,7 @@ static void pppol2tp_recv_dequeue(struct pppol2tp_session *session)
442 * expect to send up next, dequeue it and any other 442 * expect to send up next, dequeue it and any other
443 * in-sequence packets behind it. 443 * in-sequence packets behind it.
444 */ 444 */
445 spin_lock(&session->reorder_q.lock); 445 spin_lock_bh(&session->reorder_q.lock);
446 skb_queue_walk_safe(&session->reorder_q, skb, tmp) { 446 skb_queue_walk_safe(&session->reorder_q, skb, tmp) {
447 if (time_after(jiffies, PPPOL2TP_SKB_CB(skb)->expires)) { 447 if (time_after(jiffies, PPPOL2TP_SKB_CB(skb)->expires)) {
448 session->stats.rx_seq_discards++; 448 session->stats.rx_seq_discards++;
@@ -470,13 +470,18 @@ static void pppol2tp_recv_dequeue(struct pppol2tp_session *session)
470 goto out; 470 goto out;
471 } 471 }
472 } 472 }
473 spin_unlock(&session->reorder_q.lock); 473 __skb_unlink(skb, &session->reorder_q);
474
475 /* Process the skb. We release the queue lock while we
476 * do so to let other contexts process the queue.
477 */
478 spin_unlock_bh(&session->reorder_q.lock);
474 pppol2tp_recv_dequeue_skb(session, skb); 479 pppol2tp_recv_dequeue_skb(session, skb);
475 spin_lock(&session->reorder_q.lock); 480 spin_lock_bh(&session->reorder_q.lock);
476 } 481 }
477 482
478out: 483out:
479 spin_unlock(&session->reorder_q.lock); 484 spin_unlock_bh(&session->reorder_q.lock);
480} 485}
481 486
482/* Internal receive frame. Do the real work of receiving an L2TP data frame 487/* Internal receive frame. Do the real work of receiving an L2TP data frame
@@ -1059,7 +1064,7 @@ static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
1059 1064
1060 /* Get routing info from the tunnel socket */ 1065 /* Get routing info from the tunnel socket */
1061 dst_release(skb->dst); 1066 dst_release(skb->dst);
1062 skb->dst = sk_dst_get(sk_tun); 1067 skb->dst = dst_clone(__sk_dst_get(sk_tun));
1063 skb_orphan(skb); 1068 skb_orphan(skb);
1064 skb->sk = sk_tun; 1069 skb->sk = sk_tun;
1065 1070
@@ -1107,7 +1112,7 @@ static void pppol2tp_tunnel_closeall(struct pppol2tp_tunnel *tunnel)
1107 PRINTK(tunnel->debug, PPPOL2TP_MSG_CONTROL, KERN_INFO, 1112 PRINTK(tunnel->debug, PPPOL2TP_MSG_CONTROL, KERN_INFO,
1108 "%s: closing all sessions...\n", tunnel->name); 1113 "%s: closing all sessions...\n", tunnel->name);
1109 1114
1110 write_lock(&tunnel->hlist_lock); 1115 write_lock_bh(&tunnel->hlist_lock);
1111 for (hash = 0; hash < PPPOL2TP_HASH_SIZE; hash++) { 1116 for (hash = 0; hash < PPPOL2TP_HASH_SIZE; hash++) {
1112again: 1117again:
1113 hlist_for_each_safe(walk, tmp, &tunnel->session_hlist[hash]) { 1118 hlist_for_each_safe(walk, tmp, &tunnel->session_hlist[hash]) {
@@ -1129,7 +1134,7 @@ again:
1129 * disappear as we're jumping between locks. 1134 * disappear as we're jumping between locks.
1130 */ 1135 */
1131 sock_hold(sk); 1136 sock_hold(sk);
1132 write_unlock(&tunnel->hlist_lock); 1137 write_unlock_bh(&tunnel->hlist_lock);
1133 lock_sock(sk); 1138 lock_sock(sk);
1134 1139
1135 if (sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)) { 1140 if (sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)) {
@@ -1154,11 +1159,11 @@ again:
1154 * list so we are guaranteed to make forward 1159 * list so we are guaranteed to make forward
1155 * progress. 1160 * progress.
1156 */ 1161 */
1157 write_lock(&tunnel->hlist_lock); 1162 write_lock_bh(&tunnel->hlist_lock);
1158 goto again; 1163 goto again;
1159 } 1164 }
1160 } 1165 }
1161 write_unlock(&tunnel->hlist_lock); 1166 write_unlock_bh(&tunnel->hlist_lock);
1162} 1167}
1163 1168
1164/* Really kill the tunnel. 1169/* Really kill the tunnel.
@@ -1167,9 +1172,9 @@ again:
1167static void pppol2tp_tunnel_free(struct pppol2tp_tunnel *tunnel) 1172static void pppol2tp_tunnel_free(struct pppol2tp_tunnel *tunnel)
1168{ 1173{
1169 /* Remove from socket list */ 1174 /* Remove from socket list */
1170 write_lock(&pppol2tp_tunnel_list_lock); 1175 write_lock_bh(&pppol2tp_tunnel_list_lock);
1171 list_del_init(&tunnel->list); 1176 list_del_init(&tunnel->list);
1172 write_unlock(&pppol2tp_tunnel_list_lock); 1177 write_unlock_bh(&pppol2tp_tunnel_list_lock);
1173 1178
1174 atomic_dec(&pppol2tp_tunnel_count); 1179 atomic_dec(&pppol2tp_tunnel_count);
1175 kfree(tunnel); 1180 kfree(tunnel);
@@ -1245,9 +1250,9 @@ static void pppol2tp_session_destruct(struct sock *sk)
1245 /* Delete the session socket from the 1250 /* Delete the session socket from the
1246 * hash 1251 * hash
1247 */ 1252 */
1248 write_lock(&tunnel->hlist_lock); 1253 write_lock_bh(&tunnel->hlist_lock);
1249 hlist_del_init(&session->hlist); 1254 hlist_del_init(&session->hlist);
1250 write_unlock(&tunnel->hlist_lock); 1255 write_unlock_bh(&tunnel->hlist_lock);
1251 1256
1252 atomic_dec(&pppol2tp_session_count); 1257 atomic_dec(&pppol2tp_session_count);
1253 } 1258 }
@@ -1392,9 +1397,9 @@ static struct sock *pppol2tp_prepare_tunnel_socket(int fd, u16 tunnel_id,
1392 1397
1393 /* Add tunnel to our list */ 1398 /* Add tunnel to our list */
1394 INIT_LIST_HEAD(&tunnel->list); 1399 INIT_LIST_HEAD(&tunnel->list);
1395 write_lock(&pppol2tp_tunnel_list_lock); 1400 write_lock_bh(&pppol2tp_tunnel_list_lock);
1396 list_add(&tunnel->list, &pppol2tp_tunnel_list); 1401 list_add(&tunnel->list, &pppol2tp_tunnel_list);
1397 write_unlock(&pppol2tp_tunnel_list_lock); 1402 write_unlock_bh(&pppol2tp_tunnel_list_lock);
1398 atomic_inc(&pppol2tp_tunnel_count); 1403 atomic_inc(&pppol2tp_tunnel_count);
1399 1404
1400 /* Bump the reference count. The tunnel context is deleted 1405 /* Bump the reference count. The tunnel context is deleted
@@ -1599,11 +1604,11 @@ static int pppol2tp_connect(struct socket *sock, struct sockaddr *uservaddr,
1599 sk->sk_user_data = session; 1604 sk->sk_user_data = session;
1600 1605
1601 /* Add session to the tunnel's hash list */ 1606 /* Add session to the tunnel's hash list */
1602 write_lock(&tunnel->hlist_lock); 1607 write_lock_bh(&tunnel->hlist_lock);
1603 hlist_add_head(&session->hlist, 1608 hlist_add_head(&session->hlist,
1604 pppol2tp_session_id_hash(tunnel, 1609 pppol2tp_session_id_hash(tunnel,
1605 session->tunnel_addr.s_session)); 1610 session->tunnel_addr.s_session));
1606 write_unlock(&tunnel->hlist_lock); 1611 write_unlock_bh(&tunnel->hlist_lock);
1607 1612
1608 atomic_inc(&pppol2tp_session_count); 1613 atomic_inc(&pppol2tp_session_count);
1609 1614
@@ -2205,7 +2210,7 @@ static struct pppol2tp_session *next_session(struct pppol2tp_tunnel *tunnel, str
2205 int next = 0; 2210 int next = 0;
2206 int i; 2211 int i;
2207 2212
2208 read_lock(&tunnel->hlist_lock); 2213 read_lock_bh(&tunnel->hlist_lock);
2209 for (i = 0; i < PPPOL2TP_HASH_SIZE; i++) { 2214 for (i = 0; i < PPPOL2TP_HASH_SIZE; i++) {
2210 hlist_for_each_entry(session, walk, &tunnel->session_hlist[i], hlist) { 2215 hlist_for_each_entry(session, walk, &tunnel->session_hlist[i], hlist) {
2211 if (curr == NULL) { 2216 if (curr == NULL) {
@@ -2223,7 +2228,7 @@ static struct pppol2tp_session *next_session(struct pppol2tp_tunnel *tunnel, str
2223 } 2228 }
2224 } 2229 }
2225out: 2230out:
2226 read_unlock(&tunnel->hlist_lock); 2231 read_unlock_bh(&tunnel->hlist_lock);
2227 if (!found) 2232 if (!found)
2228 session = NULL; 2233 session = NULL;
2229 2234
@@ -2234,13 +2239,13 @@ static struct pppol2tp_tunnel *next_tunnel(struct pppol2tp_tunnel *curr)
2234{ 2239{
2235 struct pppol2tp_tunnel *tunnel = NULL; 2240 struct pppol2tp_tunnel *tunnel = NULL;
2236 2241
2237 read_lock(&pppol2tp_tunnel_list_lock); 2242 read_lock_bh(&pppol2tp_tunnel_list_lock);
2238 if (list_is_last(&curr->list, &pppol2tp_tunnel_list)) { 2243 if (list_is_last(&curr->list, &pppol2tp_tunnel_list)) {
2239 goto out; 2244 goto out;
2240 } 2245 }
2241 tunnel = list_entry(curr->list.next, struct pppol2tp_tunnel, list); 2246 tunnel = list_entry(curr->list.next, struct pppol2tp_tunnel, list);
2242out: 2247out:
2243 read_unlock(&pppol2tp_tunnel_list_lock); 2248 read_unlock_bh(&pppol2tp_tunnel_list_lock);
2244 2249
2245 return tunnel; 2250 return tunnel;
2246} 2251}
diff --git a/drivers/net/ps3_gelic_wireless.c b/drivers/net/ps3_gelic_wireless.c
index daf5abab9534..ddbc6e475e28 100644
--- a/drivers/net/ps3_gelic_wireless.c
+++ b/drivers/net/ps3_gelic_wireless.c
@@ -1644,13 +1644,24 @@ static void gelic_wl_scan_complete_event(struct gelic_wl_info *wl)
1644 } 1644 }
1645 1645
1646 /* put them in the newtork_list */ 1646 /* put them in the newtork_list */
1647 scan_info = wl->buf; 1647 for (i = 0, scan_info_size = 0, scan_info = wl->buf;
1648 scan_info_size = 0; 1648 scan_info_size < data_len;
1649 i = 0; 1649 i++, scan_info_size += be16_to_cpu(scan_info->size),
1650 while (scan_info_size < data_len) { 1650 scan_info = (void *)scan_info + be16_to_cpu(scan_info->size)) {
1651 pr_debug("%s:size=%d bssid=%s scan_info=%p\n", __func__, 1651 pr_debug("%s:size=%d bssid=%s scan_info=%p\n", __func__,
1652 be16_to_cpu(scan_info->size), 1652 be16_to_cpu(scan_info->size),
1653 print_mac(mac, &scan_info->bssid[2]), scan_info); 1653 print_mac(mac, &scan_info->bssid[2]), scan_info);
1654
1655 /*
1656 * The wireless firmware may return invalid channel 0 and/or
1657 * invalid rate if the AP emits zero length SSID ie. As this
1658 * scan information is useless, ignore it
1659 */
1660 if (!be16_to_cpu(scan_info->channel) || !scan_info->rate[0]) {
1661 pr_debug("%s: invalid scan info\n", __func__);
1662 continue;
1663 }
1664
1654 found = 0; 1665 found = 0;
1655 oldest = NULL; 1666 oldest = NULL;
1656 list_for_each_entry(target, &wl->network_list, list) { 1667 list_for_each_entry(target, &wl->network_list, list) {
@@ -1687,10 +1698,6 @@ static void gelic_wl_scan_complete_event(struct gelic_wl_info *wl)
1687 GFP_KERNEL); 1698 GFP_KERNEL);
1688 if (!target->hwinfo) { 1699 if (!target->hwinfo) {
1689 pr_info("%s: kzalloc failed\n", __func__); 1700 pr_info("%s: kzalloc failed\n", __func__);
1690 i++;
1691 scan_info_size += be16_to_cpu(scan_info->size);
1692 scan_info = (void *)scan_info +
1693 be16_to_cpu(scan_info->size);
1694 continue; 1701 continue;
1695 } 1702 }
1696 /* copy hw scan info */ 1703 /* copy hw scan info */
@@ -1709,10 +1716,6 @@ static void gelic_wl_scan_complete_event(struct gelic_wl_info *wl)
1709 if (scan_info->ext_rate[r]) 1716 if (scan_info->ext_rate[r])
1710 target->rate_ext_len++; 1717 target->rate_ext_len++;
1711 list_move_tail(&target->list, &wl->network_list); 1718 list_move_tail(&target->list, &wl->network_list);
1712 /* bump pointer */
1713 i++;
1714 scan_info_size += be16_to_cpu(scan_info->size);
1715 scan_info = (void *)scan_info + be16_to_cpu(scan_info->size);
1716 } 1719 }
1717 memset(&data, 0, sizeof(data)); 1720 memset(&data, 0, sizeof(data));
1718 wireless_send_event(port_to_netdev(wl_port(wl)), SIOCGIWSCAN, &data, 1721 wireless_send_event(port_to_netdev(wl_port(wl)), SIOCGIWSCAN, &data,
@@ -2389,6 +2392,8 @@ static struct net_device *gelic_wl_alloc(struct gelic_card *card)
2389 if (!netdev) 2392 if (!netdev)
2390 return NULL; 2393 return NULL;
2391 2394
2395 strcpy(netdev->name, "wlan%d");
2396
2392 port = netdev_priv(netdev); 2397 port = netdev_priv(netdev);
2393 port->netdev = netdev; 2398 port->netdev = netdev;
2394 port->card = card; 2399 port->card = card;
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 19184e486ae9..169edc154928 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -239,7 +239,8 @@ static void r6040_free_txbufs(struct net_device *dev)
239 239
240 for (i = 0; i < TX_DCNT; i++) { 240 for (i = 0; i < TX_DCNT; i++) {
241 if (lp->tx_insert_ptr->skb_ptr) { 241 if (lp->tx_insert_ptr->skb_ptr) {
242 pci_unmap_single(lp->pdev, lp->tx_insert_ptr->buf, 242 pci_unmap_single(lp->pdev,
243 le32_to_cpu(lp->tx_insert_ptr->buf),
243 MAX_BUF_SIZE, PCI_DMA_TODEVICE); 244 MAX_BUF_SIZE, PCI_DMA_TODEVICE);
244 dev_kfree_skb(lp->tx_insert_ptr->skb_ptr); 245 dev_kfree_skb(lp->tx_insert_ptr->skb_ptr);
245 lp->rx_insert_ptr->skb_ptr = NULL; 246 lp->rx_insert_ptr->skb_ptr = NULL;
@@ -255,7 +256,8 @@ static void r6040_free_rxbufs(struct net_device *dev)
255 256
256 for (i = 0; i < RX_DCNT; i++) { 257 for (i = 0; i < RX_DCNT; i++) {
257 if (lp->rx_insert_ptr->skb_ptr) { 258 if (lp->rx_insert_ptr->skb_ptr) {
258 pci_unmap_single(lp->pdev, lp->rx_insert_ptr->buf, 259 pci_unmap_single(lp->pdev,
260 le32_to_cpu(lp->rx_insert_ptr->buf),
259 MAX_BUF_SIZE, PCI_DMA_FROMDEVICE); 261 MAX_BUF_SIZE, PCI_DMA_FROMDEVICE);
260 dev_kfree_skb(lp->rx_insert_ptr->skb_ptr); 262 dev_kfree_skb(lp->rx_insert_ptr->skb_ptr);
261 lp->rx_insert_ptr->skb_ptr = NULL; 263 lp->rx_insert_ptr->skb_ptr = NULL;
@@ -542,7 +544,7 @@ static int r6040_rx(struct net_device *dev, int limit)
542 skb_ptr->dev = priv->dev; 544 skb_ptr->dev = priv->dev;
543 /* Do not count the CRC */ 545 /* Do not count the CRC */
544 skb_put(skb_ptr, descptr->len - 4); 546 skb_put(skb_ptr, descptr->len - 4);
545 pci_unmap_single(priv->pdev, descptr->buf, 547 pci_unmap_single(priv->pdev, le32_to_cpu(descptr->buf),
546 MAX_BUF_SIZE, PCI_DMA_FROMDEVICE); 548 MAX_BUF_SIZE, PCI_DMA_FROMDEVICE);
547 skb_ptr->protocol = eth_type_trans(skb_ptr, priv->dev); 549 skb_ptr->protocol = eth_type_trans(skb_ptr, priv->dev);
548 /* Send to upper layer */ 550 /* Send to upper layer */
@@ -585,7 +587,7 @@ static void r6040_tx(struct net_device *dev)
585 if (descptr->status & 0x8000) 587 if (descptr->status & 0x8000)
586 break; /* Not complete */ 588 break; /* Not complete */
587 skb_ptr = descptr->skb_ptr; 589 skb_ptr = descptr->skb_ptr;
588 pci_unmap_single(priv->pdev, descptr->buf, 590 pci_unmap_single(priv->pdev, le32_to_cpu(descptr->buf),
589 skb_ptr->len, PCI_DMA_TODEVICE); 591 skb_ptr->len, PCI_DMA_TODEVICE);
590 /* Free buffer */ 592 /* Free buffer */
591 dev_kfree_skb_irq(skb_ptr); 593 dev_kfree_skb_irq(skb_ptr);
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 6179a0a2032c..3c915b82e199 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -1088,7 +1088,7 @@ static int s2io_print_pci_mode(struct s2io_nic *nic)
1088 * '-1' on failure 1088 * '-1' on failure
1089 */ 1089 */
1090 1090
1091int init_tti(struct s2io_nic *nic, int link) 1091static int init_tti(struct s2io_nic *nic, int link)
1092{ 1092{
1093 struct XENA_dev_config __iomem *bar0 = nic->bar0; 1093 struct XENA_dev_config __iomem *bar0 = nic->bar0;
1094 register u64 val64 = 0; 1094 register u64 val64 = 0;
@@ -4172,6 +4172,9 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
4172 dev->trans_start = jiffies; 4172 dev->trans_start = jiffies;
4173 spin_unlock_irqrestore(&fifo->tx_lock, flags); 4173 spin_unlock_irqrestore(&fifo->tx_lock, flags);
4174 4174
4175 if (sp->config.intr_type == MSI_X)
4176 tx_intr_handler(fifo);
4177
4175 return 0; 4178 return 0;
4176pci_map_failed: 4179pci_map_failed:
4177 stats->pci_map_fail_cnt++; 4180 stats->pci_map_fail_cnt++;
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 186eb8ebfda6..2e26dced13a1 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3199,12 +3199,14 @@ static int skge_poll(struct napi_struct *napi, int to_do)
3199 skge_write8(hw, Q_ADDR(rxqaddr[skge->port], Q_CSR), CSR_START); 3199 skge_write8(hw, Q_ADDR(rxqaddr[skge->port], Q_CSR), CSR_START);
3200 3200
3201 if (work_done < to_do) { 3201 if (work_done < to_do) {
3202 spin_lock_irq(&hw->hw_lock); 3202 unsigned long flags;
3203
3204 spin_lock_irqsave(&hw->hw_lock, flags);
3203 __netif_rx_complete(dev, napi); 3205 __netif_rx_complete(dev, napi);
3204 hw->intr_mask |= napimask[skge->port]; 3206 hw->intr_mask |= napimask[skge->port];
3205 skge_write32(hw, B0_IMSK, hw->intr_mask); 3207 skge_write32(hw, B0_IMSK, hw->intr_mask);
3206 skge_read32(hw, B0_IMSK); 3208 skge_read32(hw, B0_IMSK);
3207 spin_unlock_irq(&hw->hw_lock); 3209 spin_unlock_irqrestore(&hw->hw_lock, flags);
3208 } 3210 }
3209 3211
3210 return work_done; 3212 return work_done;
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 51d4134b37b1..98a832a75539 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -92,14 +92,14 @@
92#define SMC_insw(a, r, p, l) insw ((unsigned long *)((a) + (r)), p, l) 92#define SMC_insw(a, r, p, l) insw ((unsigned long *)((a) + (r)), p, l)
93# endif 93# endif
94/* check if the mac in reg is valid */ 94/* check if the mac in reg is valid */
95#define SMC_GET_MAC_ADDR(addr) \ 95#define SMC_GET_MAC_ADDR(lp, addr) \
96 do { \ 96 do { \
97 unsigned int __v; \ 97 unsigned int __v; \
98 __v = SMC_inw(ioaddr, ADDR0_REG); \ 98 __v = SMC_inw(ioaddr, ADDR0_REG(lp)); \
99 addr[0] = __v; addr[1] = __v >> 8; \ 99 addr[0] = __v; addr[1] = __v >> 8; \
100 __v = SMC_inw(ioaddr, ADDR1_REG); \ 100 __v = SMC_inw(ioaddr, ADDR1_REG(lp)); \
101 addr[2] = __v; addr[3] = __v >> 8; \ 101 addr[2] = __v; addr[3] = __v >> 8; \
102 __v = SMC_inw(ioaddr, ADDR2_REG); \ 102 __v = SMC_inw(ioaddr, ADDR2_REG(lp)); \
103 addr[4] = __v; addr[5] = __v >> 8; \ 103 addr[4] = __v; addr[5] = __v >> 8; \
104 if (*(u32 *)(&addr[0]) == 0xFFFFFFFF) { \ 104 if (*(u32 *)(&addr[0]) == 0xFFFFFFFF) { \
105 random_ether_addr(addr); \ 105 random_ether_addr(addr); \
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 97212799c513..4291458955ef 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -912,7 +912,7 @@ static int gem_poll(struct napi_struct *napi, int budget)
912 * rx ring - must call napi_disable(), which 912 * rx ring - must call napi_disable(), which
913 * schedule_timeout()'s if polling is already disabled. 913 * schedule_timeout()'s if polling is already disabled.
914 */ 914 */
915 work_done += gem_rx(gp, budget); 915 work_done += gem_rx(gp, budget - work_done);
916 916
917 if (work_done >= budget) 917 if (work_done >= budget)
918 return work_done; 918 return work_done;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 26ffb67f1da2..f9ef8bd8b11e 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -64,8 +64,8 @@
64 64
65#define DRV_MODULE_NAME "tg3" 65#define DRV_MODULE_NAME "tg3"
66#define PFX DRV_MODULE_NAME ": " 66#define PFX DRV_MODULE_NAME ": "
67#define DRV_MODULE_VERSION "3.87" 67#define DRV_MODULE_VERSION "3.88"
68#define DRV_MODULE_RELDATE "December 20, 2007" 68#define DRV_MODULE_RELDATE "March 20, 2008"
69 69
70#define TG3_DEF_MAC_MODE 0 70#define TG3_DEF_MAC_MODE 0
71#define TG3_DEF_RX_MODE 0 71#define TG3_DEF_RX_MODE 0
@@ -11841,7 +11841,7 @@ static int __devinit tg3_get_device_address(struct tg3 *tp)
11841 } 11841 }
11842 11842
11843 if (!is_valid_ether_addr(&dev->dev_addr[0])) { 11843 if (!is_valid_ether_addr(&dev->dev_addr[0])) {
11844#ifdef CONFIG_SPARC64 11844#ifdef CONFIG_SPARC
11845 if (!tg3_get_default_macaddr_sparc(tp)) 11845 if (!tg3_get_default_macaddr_sparc(tp))
11846 return 0; 11846 return 0;
11847#endif 11847#endif
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index 8909050b8ea7..5f1c5072b96f 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -3413,7 +3413,7 @@ static int smctr_make_tx_status_code(struct net_device *dev,
3413 tsv->svi = TRANSMIT_STATUS_CODE; 3413 tsv->svi = TRANSMIT_STATUS_CODE;
3414 tsv->svl = S_TRANSMIT_STATUS_CODE; 3414 tsv->svl = S_TRANSMIT_STATUS_CODE;
3415 3415
3416 tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) || IBM_PASS_SOURCE_ADDR); 3416 tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) | IBM_PASS_SOURCE_ADDR);
3417 3417
3418 /* Stripped frame status of Transmitted Frame */ 3418 /* Stripped frame status of Transmitted Frame */
3419 tsv->svv[1] = tx_fstatus & 0xff; 3419 tsv->svv[1] = tx_fstatus & 0xff;
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index 77d9dd7ea34f..1b5edd646a8c 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -842,7 +842,7 @@ static inline int de_is_running (struct de_private *de)
842static void de_stop_rxtx (struct de_private *de) 842static void de_stop_rxtx (struct de_private *de)
843{ 843{
844 u32 macmode; 844 u32 macmode;
845 unsigned int work = 1000; 845 unsigned int i = 1300/100;
846 846
847 macmode = dr32(MacMode); 847 macmode = dr32(MacMode);
848 if (macmode & RxTx) { 848 if (macmode & RxTx) {
@@ -850,10 +850,14 @@ static void de_stop_rxtx (struct de_private *de)
850 dr32(MacMode); 850 dr32(MacMode);
851 } 851 }
852 852
853 while (--work > 0) { 853 /* wait until in-flight frame completes.
854 * Max time @ 10BT: 1500*8b/10Mbps == 1200us (+ 100us margin)
855 * Typically expect this loop to end in < 50 us on 100BT.
856 */
857 while (--i) {
854 if (!de_is_running(de)) 858 if (!de_is_running(de))
855 return; 859 return;
856 cpu_relax(); 860 udelay(100);
857 } 861 }
858 862
859 printk(KERN_WARNING "%s: timeout expired stopping DMA\n", de->dev->name); 863 printk(KERN_WARNING "%s: timeout expired stopping DMA\n", de->dev->name);
@@ -910,7 +914,8 @@ static void de_set_media (struct de_private *de)
910 unsigned media = de->media_type; 914 unsigned media = de->media_type;
911 u32 macmode = dr32(MacMode); 915 u32 macmode = dr32(MacMode);
912 916
913 BUG_ON(de_is_running(de)); 917 if (de_is_running(de))
918 printk(KERN_WARNING "%s: chip is running while changing media!\n", de->dev->name);
914 919
915 if (de->de21040) 920 if (de->de21040)
916 dw32(CSR11, FULL_DUPLEX_MAGIC); 921 dw32(CSR11, FULL_DUPLEX_MAGIC);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index fba0811d2608..8cc316653a39 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -154,8 +154,8 @@ static struct ucc_geth_info ugeth_primary_info = {
154 .rxQoSMode = UCC_GETH_QOS_MODE_DEFAULT, 154 .rxQoSMode = UCC_GETH_QOS_MODE_DEFAULT,
155 .aufc = UPSMR_AUTOMATIC_FLOW_CONTROL_MODE_NONE, 155 .aufc = UPSMR_AUTOMATIC_FLOW_CONTROL_MODE_NONE,
156 .padAndCrc = MACCFG2_PAD_AND_CRC_MODE_PAD_AND_CRC, 156 .padAndCrc = MACCFG2_PAD_AND_CRC_MODE_PAD_AND_CRC,
157 .numThreadsTx = UCC_GETH_NUM_OF_THREADS_4, 157 .numThreadsTx = UCC_GETH_NUM_OF_THREADS_1,
158 .numThreadsRx = UCC_GETH_NUM_OF_THREADS_4, 158 .numThreadsRx = UCC_GETH_NUM_OF_THREADS_1,
159 .riscTx = QE_RISC_ALLOCATION_RISC1_AND_RISC2, 159 .riscTx = QE_RISC_ALLOCATION_RISC1_AND_RISC2,
160 .riscRx = QE_RISC_ALLOCATION_RISC1_AND_RISC2, 160 .riscRx = QE_RISC_ALLOCATION_RISC1_AND_RISC2,
161}; 161};
@@ -3975,6 +3975,8 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
3975 ug_info->uf_info.utfs = UCC_GETH_UTFS_GIGA_INIT; 3975 ug_info->uf_info.utfs = UCC_GETH_UTFS_GIGA_INIT;
3976 ug_info->uf_info.utfet = UCC_GETH_UTFET_GIGA_INIT; 3976 ug_info->uf_info.utfet = UCC_GETH_UTFET_GIGA_INIT;
3977 ug_info->uf_info.utftt = UCC_GETH_UTFTT_GIGA_INIT; 3977 ug_info->uf_info.utftt = UCC_GETH_UTFTT_GIGA_INIT;
3978 ug_info->numThreadsTx = UCC_GETH_NUM_OF_THREADS_4;
3979 ug_info->numThreadsRx = UCC_GETH_NUM_OF_THREADS_4;
3978 } 3980 }
3979 3981
3980 /* Set the bus id */ 3982 /* Set the bus id */
diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c
index 4b131a6c6b70..0343b00cf1fd 100644
--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -341,7 +341,7 @@ static void dm9601_set_multicast(struct net_device *net)
341 /* We use the 20 byte dev->data for our 8 byte filter buffer 341 /* We use the 20 byte dev->data for our 8 byte filter buffer
342 * to avoid allocating memory that is tricky to free later */ 342 * to avoid allocating memory that is tricky to free later */
343 u8 *hashes = (u8 *) & dev->data; 343 u8 *hashes = (u8 *) & dev->data;
344 u8 rx_ctl = 0x01; 344 u8 rx_ctl = 0x31;
345 345
346 memset(hashes, 0x00, DM_MCAST_SIZE); 346 memset(hashes, 0x00, DM_MCAST_SIZE);
347 hashes[DM_MCAST_SIZE - 1] |= 0x80; /* broadcast address */ 347 hashes[DM_MCAST_SIZE - 1] |= 0x80; /* broadcast address */
@@ -562,6 +562,10 @@ static const struct usb_device_id products[] = {
562 USB_DEVICE(0x0a46, 0x8515), /* ADMtek ADM8515 USB NIC */ 562 USB_DEVICE(0x0a46, 0x8515), /* ADMtek ADM8515 USB NIC */
563 .driver_info = (unsigned long)&dm9601_info, 563 .driver_info = (unsigned long)&dm9601_info,
564 }, 564 },
565 {
566 USB_DEVICE(0x0a47, 0x9601), /* Hirose USB-100 */
567 .driver_info = (unsigned long)&dm9601_info,
568 },
565 {}, // END 569 {}, // END
566}; 570};
567 571
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index a61324757b17..369c731114b3 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -16,10 +16,6 @@
16 * along with this program; if not, write to the Free Software 16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19
20// #define DEBUG // error path messages, extra info
21// #define VERBOSE // more; success messages
22
23#include <linux/module.h> 19#include <linux/module.h>
24#include <linux/init.h> 20#include <linux/init.h>
25#include <linux/netdevice.h> 21#include <linux/netdevice.h>
@@ -287,7 +283,7 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
287 struct rndis_set_c *set_c; 283 struct rndis_set_c *set_c;
288 struct rndis_halt *halt; 284 struct rndis_halt *halt;
289 } u; 285 } u;
290 u32 tmp, *phym; 286 u32 tmp, phym_unspec, *phym;
291 int reply_len; 287 int reply_len;
292 unsigned char *bp; 288 unsigned char *bp;
293 289
@@ -318,6 +314,14 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
318 net->hard_header_len += sizeof (struct rndis_data_hdr); 314 net->hard_header_len += sizeof (struct rndis_data_hdr);
319 dev->hard_mtu = net->mtu + net->hard_header_len; 315 dev->hard_mtu = net->mtu + net->hard_header_len;
320 316
317 dev->maxpacket = usb_maxpacket(dev->udev, dev->out, 1);
318 if (dev->maxpacket == 0) {
319 if (netif_msg_probe(dev))
320 dev_dbg(&intf->dev, "dev->maxpacket can't be 0\n");
321 retval = -EINVAL;
322 goto fail_and_release;
323 }
324
321 dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1); 325 dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1);
322 dev->rx_urb_size &= ~(dev->maxpacket - 1); 326 dev->rx_urb_size &= ~(dev->maxpacket - 1);
323 u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size); 327 u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);
@@ -359,12 +363,15 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
359 goto halt_fail_and_release; 363 goto halt_fail_and_release;
360 364
361 /* Check physical medium */ 365 /* Check physical medium */
366 phym = NULL;
362 reply_len = sizeof *phym; 367 reply_len = sizeof *phym;
363 retval = rndis_query(dev, intf, u.buf, OID_GEN_PHYSICAL_MEDIUM, 368 retval = rndis_query(dev, intf, u.buf, OID_GEN_PHYSICAL_MEDIUM,
364 0, (void **) &phym, &reply_len); 369 0, (void **) &phym, &reply_len);
365 if (retval != 0) 370 if (retval != 0 || !phym) {
366 /* OID is optional so don't fail here. */ 371 /* OID is optional so don't fail here. */
367 *phym = RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED; 372 phym_unspec = RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED;
373 phym = &phym_unspec;
374 }
368 if ((flags & FLAG_RNDIS_PHYM_WIRELESS) && 375 if ((flags & FLAG_RNDIS_PHYM_WIRELESS) &&
369 *phym != RNDIS_PHYSICAL_MEDIUM_WIRELESS_LAN) { 376 *phym != RNDIS_PHYSICAL_MEDIUM_WIRELESS_LAN) {
370 if (netif_msg_probe(dev)) 377 if (netif_msg_probe(dev))
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index 7e1f00131f91..df56a518691c 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -376,7 +376,7 @@ static int alloc_all_urbs(rtl8150_t * dev)
376 return 0; 376 return 0;
377 } 377 }
378 dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); 378 dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL);
379 if (!dev->intr_urb) { 379 if (!dev->ctrl_urb) {
380 usb_free_urb(dev->rx_urb); 380 usb_free_urb(dev->rx_urb);
381 usb_free_urb(dev->tx_urb); 381 usb_free_urb(dev->tx_urb);
382 usb_free_urb(dev->intr_urb); 382 usb_free_urb(dev->intr_urb);
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 19fd4cb0ddf8..b58472cf76f8 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -203,8 +203,11 @@ again:
203 if (received < budget) { 203 if (received < budget) {
204 netif_rx_complete(vi->dev, napi); 204 netif_rx_complete(vi->dev, napi);
205 if (unlikely(!vi->rvq->vq_ops->enable_cb(vi->rvq)) 205 if (unlikely(!vi->rvq->vq_ops->enable_cb(vi->rvq))
206 && netif_rx_reschedule(vi->dev, napi)) 206 && napi_schedule_prep(napi)) {
207 vi->rvq->vq_ops->disable_cb(vi->rvq);
208 __netif_rx_schedule(vi->dev, napi);
207 goto again; 209 goto again;
210 }
208 } 211 }
209 212
210 return received; 213 return received;
@@ -278,10 +281,11 @@ again:
278 pr_debug("%s: virtio not prepared to send\n", dev->name); 281 pr_debug("%s: virtio not prepared to send\n", dev->name);
279 netif_stop_queue(dev); 282 netif_stop_queue(dev);
280 283
281 /* Activate callback for using skbs: if this fails it 284 /* Activate callback for using skbs: if this returns false it
282 * means some were used in the meantime. */ 285 * means some were used in the meantime. */
283 if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { 286 if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) {
284 printk("Unlikely: restart svq failed\n"); 287 printk("Unlikely: restart svq race\n");
288 vi->svq->vq_ops->disable_cb(vi->svq);
285 netif_start_queue(dev); 289 netif_start_queue(dev);
286 goto again; 290 goto again;
287 } 291 }
@@ -294,6 +298,15 @@ again:
294 return 0; 298 return 0;
295} 299}
296 300
301#ifdef CONFIG_NET_POLL_CONTROLLER
302static void virtnet_netpoll(struct net_device *dev)
303{
304 struct virtnet_info *vi = netdev_priv(dev);
305
306 napi_schedule(&vi->napi);
307}
308#endif
309
297static int virtnet_open(struct net_device *dev) 310static int virtnet_open(struct net_device *dev)
298{ 311{
299 struct virtnet_info *vi = netdev_priv(dev); 312 struct virtnet_info *vi = netdev_priv(dev);
@@ -336,6 +349,9 @@ static int virtnet_probe(struct virtio_device *vdev)
336 dev->stop = virtnet_close; 349 dev->stop = virtnet_close;
337 dev->hard_start_xmit = start_xmit; 350 dev->hard_start_xmit = start_xmit;
338 dev->features = NETIF_F_HIGHDMA; 351 dev->features = NETIF_F_HIGHDMA;
352#ifdef CONFIG_NET_POLL_CONTROLLER
353 dev->poll_controller = virtnet_netpoll;
354#endif
339 SET_NETDEV_DEV(dev, &vdev->dev); 355 SET_NETDEV_DEV(dev, &vdev->dev);
340 356
341 /* Do we support "hardware" checksums? */ 357 /* Do we support "hardware" checksums? */
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index cf27bf40d36e..547368e9633d 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -2024,6 +2024,7 @@ fst_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
2024 struct fstioc_write wrthdr; 2024 struct fstioc_write wrthdr;
2025 struct fstioc_info info; 2025 struct fstioc_info info;
2026 unsigned long flags; 2026 unsigned long flags;
2027 void *buf;
2027 2028
2028 dbg(DBG_IOCTL, "ioctl: %x, %p\n", cmd, ifr->ifr_data); 2029 dbg(DBG_IOCTL, "ioctl: %x, %p\n", cmd, ifr->ifr_data);
2029 2030
@@ -2065,16 +2066,22 @@ fst_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
2065 return -ENXIO; 2066 return -ENXIO;
2066 } 2067 }
2067 2068
2068 /* Now copy the data to the card. 2069 /* Now copy the data to the card. */
2069 * This will probably break on some architectures. 2070
2070 * I'll fix it when I have something to test on. 2071 buf = kmalloc(wrthdr.size, GFP_KERNEL);
2071 */ 2072 if (!buf)
2072 if (copy_from_user(card->mem + wrthdr.offset, 2073 return -ENOMEM;
2074
2075 if (copy_from_user(buf,
2073 ifr->ifr_data + sizeof (struct fstioc_write), 2076 ifr->ifr_data + sizeof (struct fstioc_write),
2074 wrthdr.size)) { 2077 wrthdr.size)) {
2078 kfree(buf);
2075 return -EFAULT; 2079 return -EFAULT;
2076 } 2080 }
2077 2081
2082 memcpy_toio(card->mem + wrthdr.offset, buf, wrthdr.size);
2083 kfree(buf);
2084
2078 /* Writes to the memory of a card in the reset state constitute 2085 /* Writes to the memory of a card in the reset state constitute
2079 * a download 2086 * a download
2080 */ 2087 */
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index 15d5c58e57bc..e59255a155a9 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -751,7 +751,7 @@ upload_data( struct net_device *dev, unsigned framelen, unsigned frameno,
751} 751}
752 752
753 753
754static __inline void 754static inline void
755send_complete( struct net_local *nl ) 755send_complete( struct net_local *nl )
756{ 756{
757#ifdef CONFIG_SBNI_MULTILINE 757#ifdef CONFIG_SBNI_MULTILINE
diff --git a/drivers/net/wireless/arlan-proc.c b/drivers/net/wireless/arlan-proc.c
index c6e70dbc5de8..2ab1d59870f4 100644
--- a/drivers/net/wireless/arlan-proc.c
+++ b/drivers/net/wireless/arlan-proc.c
@@ -1202,13 +1202,6 @@ static ctl_table arlan_table[MAX_ARLANS + 1] =
1202 { .ctl_name = 0 } 1202 { .ctl_name = 0 }
1203}; 1203};
1204#endif 1204#endif
1205#else
1206
1207static ctl_table arlan_table[MAX_ARLANS + 1] =
1208{
1209 { .ctl_name = 0 }
1210};
1211#endif
1212 1205
1213 1206
1214// static int mmtu = 1234; 1207// static int mmtu = 1234;
@@ -1233,7 +1226,6 @@ static ctl_table arlan_root_table[] =
1233//}; 1226//};
1234 1227
1235 1228
1236#ifdef CONFIG_PROC_FS
1237static struct ctl_table_header *arlan_device_sysctl_header; 1229static struct ctl_table_header *arlan_device_sysctl_header;
1238 1230
1239int __init init_arlan_proc(void) 1231int __init init_arlan_proc(void)
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index c2de2d958e8e..01757436353d 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -427,6 +427,8 @@ void ath5k_hw_detach(struct ath5k_hw *ah)
427{ 427{
428 ATH5K_TRACE(ah->ah_sc); 428 ATH5K_TRACE(ah->ah_sc);
429 429
430 __set_bit(ATH_STAT_INVALID, ah->ah_sc->status);
431
430 if (ah->ah_rf_banks != NULL) 432 if (ah->ah_rf_banks != NULL)
431 kfree(ah->ah_rf_banks); 433 kfree(ah->ah_rf_banks);
432 434
diff --git a/drivers/net/wireless/b43/debugfs.c b/drivers/net/wireless/b43/debugfs.c
index e38ed0fe72e9..7fca2ebc747f 100644
--- a/drivers/net/wireless/b43/debugfs.c
+++ b/drivers/net/wireless/b43/debugfs.c
@@ -618,6 +618,7 @@ void b43_debugfs_remove_device(struct b43_wldev *dev)
618 kfree(e); 618 kfree(e);
619} 619}
620 620
621/* Called with IRQs disabled. */
621void b43_debugfs_log_txstat(struct b43_wldev *dev, 622void b43_debugfs_log_txstat(struct b43_wldev *dev,
622 const struct b43_txstatus *status) 623 const struct b43_txstatus *status)
623{ 624{
@@ -629,8 +630,7 @@ void b43_debugfs_log_txstat(struct b43_wldev *dev,
629 if (!e) 630 if (!e)
630 return; 631 return;
631 log = &e->txstatlog; 632 log = &e->txstatlog;
632 B43_WARN_ON(!irqs_disabled()); 633 spin_lock(&log->lock); /* IRQs are already disabled. */
633 spin_lock(&log->lock);
634 i = log->end + 1; 634 i = log->end + 1;
635 if (i == B43_NR_LOGGED_TXSTATUS) 635 if (i == B43_NR_LOGGED_TXSTATUS)
636 i = 0; 636 i = 0;
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index 3dfb28a34be9..cfbc1a26f601 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -560,7 +560,7 @@ static int b43_dmacontroller_tx_reset(struct b43_wldev *dev, u16 mmio_base,
560/* Check if a DMA mapping address is invalid. */ 560/* Check if a DMA mapping address is invalid. */
561static bool b43_dma_mapping_error(struct b43_dmaring *ring, 561static bool b43_dma_mapping_error(struct b43_dmaring *ring,
562 dma_addr_t addr, 562 dma_addr_t addr,
563 size_t buffersize) 563 size_t buffersize, bool dma_to_device)
564{ 564{
565 if (unlikely(dma_mapping_error(addr))) 565 if (unlikely(dma_mapping_error(addr)))
566 return 1; 566 return 1;
@@ -568,11 +568,11 @@ static bool b43_dma_mapping_error(struct b43_dmaring *ring,
568 switch (ring->type) { 568 switch (ring->type) {
569 case B43_DMA_30BIT: 569 case B43_DMA_30BIT:
570 if ((u64)addr + buffersize > (1ULL << 30)) 570 if ((u64)addr + buffersize > (1ULL << 30))
571 return 1; 571 goto address_error;
572 break; 572 break;
573 case B43_DMA_32BIT: 573 case B43_DMA_32BIT:
574 if ((u64)addr + buffersize > (1ULL << 32)) 574 if ((u64)addr + buffersize > (1ULL << 32))
575 return 1; 575 goto address_error;
576 break; 576 break;
577 case B43_DMA_64BIT: 577 case B43_DMA_64BIT:
578 /* Currently we can't have addresses beyond 578 /* Currently we can't have addresses beyond
@@ -582,6 +582,12 @@ static bool b43_dma_mapping_error(struct b43_dmaring *ring,
582 582
583 /* The address is OK. */ 583 /* The address is OK. */
584 return 0; 584 return 0;
585
586address_error:
587 /* We can't support this address. Unmap it again. */
588 unmap_descbuffer(ring, addr, buffersize, dma_to_device);
589
590 return 1;
585} 591}
586 592
587static int setup_rx_descbuffer(struct b43_dmaring *ring, 593static int setup_rx_descbuffer(struct b43_dmaring *ring,
@@ -599,7 +605,7 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
599 if (unlikely(!skb)) 605 if (unlikely(!skb))
600 return -ENOMEM; 606 return -ENOMEM;
601 dmaaddr = map_descbuffer(ring, skb->data, ring->rx_buffersize, 0); 607 dmaaddr = map_descbuffer(ring, skb->data, ring->rx_buffersize, 0);
602 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) { 608 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
603 /* ugh. try to realloc in zone_dma */ 609 /* ugh. try to realloc in zone_dma */
604 gfp_flags |= GFP_DMA; 610 gfp_flags |= GFP_DMA;
605 611
@@ -612,7 +618,7 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
612 ring->rx_buffersize, 0); 618 ring->rx_buffersize, 0);
613 } 619 }
614 620
615 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) { 621 if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
616 dev_kfree_skb_any(skb); 622 dev_kfree_skb_any(skb);
617 return -EIO; 623 return -EIO;
618 } 624 }
@@ -852,7 +858,8 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
852 b43_txhdr_size(dev), 858 b43_txhdr_size(dev),
853 DMA_TO_DEVICE); 859 DMA_TO_DEVICE);
854 860
855 if (b43_dma_mapping_error(ring, dma_test, b43_txhdr_size(dev))) { 861 if (b43_dma_mapping_error(ring, dma_test,
862 b43_txhdr_size(dev), 1)) {
856 /* ugh realloc */ 863 /* ugh realloc */
857 kfree(ring->txhdr_cache); 864 kfree(ring->txhdr_cache);
858 ring->txhdr_cache = kcalloc(nr_slots, 865 ring->txhdr_cache = kcalloc(nr_slots,
@@ -867,7 +874,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
867 DMA_TO_DEVICE); 874 DMA_TO_DEVICE);
868 875
869 if (b43_dma_mapping_error(ring, dma_test, 876 if (b43_dma_mapping_error(ring, dma_test,
870 b43_txhdr_size(dev))) 877 b43_txhdr_size(dev), 1))
871 goto err_kfree_txhdr_cache; 878 goto err_kfree_txhdr_cache;
872 } 879 }
873 880
@@ -1189,7 +1196,7 @@ static int dma_tx_fragment(struct b43_dmaring *ring,
1189 1196
1190 meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header, 1197 meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
1191 hdrsize, 1); 1198 hdrsize, 1);
1192 if (b43_dma_mapping_error(ring, meta_hdr->dmaaddr, hdrsize)) { 1199 if (b43_dma_mapping_error(ring, meta_hdr->dmaaddr, hdrsize, 1)) {
1193 ring->current_slot = old_top_slot; 1200 ring->current_slot = old_top_slot;
1194 ring->used_slots = old_used_slots; 1201 ring->used_slots = old_used_slots;
1195 return -EIO; 1202 return -EIO;
@@ -1208,7 +1215,7 @@ static int dma_tx_fragment(struct b43_dmaring *ring,
1208 1215
1209 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); 1216 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
1210 /* create a bounce buffer in zone_dma on mapping failure. */ 1217 /* create a bounce buffer in zone_dma on mapping failure. */
1211 if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len)) { 1218 if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
1212 bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); 1219 bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
1213 if (!bounce_skb) { 1220 if (!bounce_skb) {
1214 ring->current_slot = old_top_slot; 1221 ring->current_slot = old_top_slot;
@@ -1222,7 +1229,7 @@ static int dma_tx_fragment(struct b43_dmaring *ring,
1222 skb = bounce_skb; 1229 skb = bounce_skb;
1223 meta->skb = skb; 1230 meta->skb = skb;
1224 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); 1231 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
1225 if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len)) { 1232 if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
1226 ring->current_slot = old_top_slot; 1233 ring->current_slot = old_top_slot;
1227 ring->used_slots = old_used_slots; 1234 ring->used_slots = old_used_slots;
1228 err = -EIO; 1235 err = -EIO;
@@ -1337,6 +1344,7 @@ out_unlock:
1337 return err; 1344 return err;
1338} 1345}
1339 1346
1347/* Called with IRQs disabled. */
1340void b43_dma_handle_txstatus(struct b43_wldev *dev, 1348void b43_dma_handle_txstatus(struct b43_wldev *dev,
1341 const struct b43_txstatus *status) 1349 const struct b43_txstatus *status)
1342{ 1350{
@@ -1349,8 +1357,8 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev,
1349 ring = parse_cookie(dev, status->cookie, &slot); 1357 ring = parse_cookie(dev, status->cookie, &slot);
1350 if (unlikely(!ring)) 1358 if (unlikely(!ring))
1351 return; 1359 return;
1352 B43_WARN_ON(!irqs_disabled()); 1360
1353 spin_lock(&ring->lock); 1361 spin_lock(&ring->lock); /* IRQs are already disabled. */
1354 1362
1355 B43_WARN_ON(!ring->tx); 1363 B43_WARN_ON(!ring->tx);
1356 ops = ring->ops; 1364 ops = ring->ops;
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 51dfce16178a..c73a75b24cd6 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2049,7 +2049,6 @@ void b43_mac_enable(struct b43_wldev *dev)
2049{ 2049{
2050 dev->mac_suspended--; 2050 dev->mac_suspended--;
2051 B43_WARN_ON(dev->mac_suspended < 0); 2051 B43_WARN_ON(dev->mac_suspended < 0);
2052 B43_WARN_ON(irqs_disabled());
2053 if (dev->mac_suspended == 0) { 2052 if (dev->mac_suspended == 0) {
2054 b43_write32(dev, B43_MMIO_MACCTL, 2053 b43_write32(dev, B43_MMIO_MACCTL,
2055 b43_read32(dev, B43_MMIO_MACCTL) 2054 b43_read32(dev, B43_MMIO_MACCTL)
@@ -2075,7 +2074,6 @@ void b43_mac_suspend(struct b43_wldev *dev)
2075 u32 tmp; 2074 u32 tmp;
2076 2075
2077 might_sleep(); 2076 might_sleep();
2078 B43_WARN_ON(irqs_disabled());
2079 B43_WARN_ON(dev->mac_suspended < 0); 2077 B43_WARN_ON(dev->mac_suspended < 0);
2080 2078
2081 if (dev->mac_suspended == 0) { 2079 if (dev->mac_suspended == 0) {
diff --git a/drivers/net/wireless/b43/phy.c b/drivers/net/wireless/b43/phy.c
index 71507b260b6d..575c5436ebdf 100644
--- a/drivers/net/wireless/b43/phy.c
+++ b/drivers/net/wireless/b43/phy.c
@@ -860,7 +860,7 @@ static void b43_phy_ww(struct b43_wldev *dev)
860 b43_phy_write(dev, B43_PHY_OFDM(0xBB), 860 b43_phy_write(dev, B43_PHY_OFDM(0xBB),
861 (b43_phy_read(dev, B43_PHY_OFDM(0xBB)) & 0xF000) | 0x0053); 861 (b43_phy_read(dev, B43_PHY_OFDM(0xBB)) & 0xF000) | 0x0053);
862 b43_phy_write(dev, B43_PHY_OFDM61, 862 b43_phy_write(dev, B43_PHY_OFDM61,
863 (b43_phy_read(dev, B43_PHY_OFDM61 & 0xFE1F)) | 0x0120); 863 (b43_phy_read(dev, B43_PHY_OFDM61) & 0xFE1F) | 0x0120);
864 b43_phy_write(dev, B43_PHY_OFDM(0x13), 864 b43_phy_write(dev, B43_PHY_OFDM(0x13),
865 (b43_phy_read(dev, B43_PHY_OFDM(0x13)) & 0x0FFF) | 0x3000); 865 (b43_phy_read(dev, B43_PHY_OFDM(0x13)) & 0x0FFF) | 0x3000);
866 b43_phy_write(dev, B43_PHY_OFDM(0x14), 866 b43_phy_write(dev, B43_PHY_OFDM(0x14),
diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig
index d1af938b9aa6..b79a35a40ab6 100644
--- a/drivers/net/wireless/iwlwifi/Kconfig
+++ b/drivers/net/wireless/iwlwifi/Kconfig
@@ -20,7 +20,7 @@ config IWL4965
20 runs. 20 runs.
21 21
22 If you want to compile the driver as a module ( = code which can be 22 If you want to compile the driver as a module ( = code which can be
23 inserted in and remvoed from the running kernel whenever you want), 23 inserted in and removed from the running kernel whenever you want),
24 say M here and read <file:Documentation/kbuild/modules.txt>. The 24 say M here and read <file:Documentation/kbuild/modules.txt>. The
25 module will be called iwl4965.ko. 25 module will be called iwl4965.ko.
26 26
@@ -101,7 +101,7 @@ config IWL3945
101 runs. 101 runs.
102 102
103 If you want to compile the driver as a module ( = code which can be 103 If you want to compile the driver as a module ( = code which can be
104 inserted in and remvoed from the running kernel whenever you want), 104 inserted in and removed from the running kernel whenever you want),
105 say M here and read <file:Documentation/kbuild/modules.txt>. The 105 say M here and read <file:Documentation/kbuild/modules.txt>. The
106 module will be called iwl3945.ko. 106 module will be called iwl3945.ko.
107 107
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 40b71bc2c4a4..cbaeaf186494 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -6206,11 +6206,11 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
6206 6206
6207 /* At this point, the NIC is initialized and operational */ 6207 /* At this point, the NIC is initialized and operational */
6208 priv->notif_missed_beacons = 0; 6208 priv->notif_missed_beacons = 0;
6209 set_bit(STATUS_READY, &priv->status);
6210 6209
6211 iwl3945_reg_txpower_periodic(priv); 6210 iwl3945_reg_txpower_periodic(priv);
6212 6211
6213 IWL_DEBUG_INFO("ALIVE processing complete.\n"); 6212 IWL_DEBUG_INFO("ALIVE processing complete.\n");
6213 set_bit(STATUS_READY, &priv->status);
6214 wake_up_interruptible(&priv->wait_command_queue); 6214 wake_up_interruptible(&priv->wait_command_queue);
6215 6215
6216 if (priv->error_recovering) 6216 if (priv->error_recovering)
@@ -8706,7 +8706,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
8706 return err; 8706 return err;
8707} 8707}
8708 8708
8709static void iwl3945_pci_remove(struct pci_dev *pdev) 8709static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
8710{ 8710{
8711 struct iwl3945_priv *priv = pci_get_drvdata(pdev); 8711 struct iwl3945_priv *priv = pci_get_drvdata(pdev);
8712 struct list_head *p, *q; 8712 struct list_head *p, *q;
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index a23d4798653b..60ec29eab85a 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -6628,11 +6628,11 @@ static void iwl4965_alive_start(struct iwl4965_priv *priv)
6628 6628
6629 /* At this point, the NIC is initialized and operational */ 6629 /* At this point, the NIC is initialized and operational */
6630 priv->notif_missed_beacons = 0; 6630 priv->notif_missed_beacons = 0;
6631 set_bit(STATUS_READY, &priv->status);
6632 6631
6633 iwl4965_rf_kill_ct_config(priv); 6632 iwl4965_rf_kill_ct_config(priv);
6634 6633
6635 IWL_DEBUG_INFO("ALIVE processing complete.\n"); 6634 IWL_DEBUG_INFO("ALIVE processing complete.\n");
6635 set_bit(STATUS_READY, &priv->status);
6636 wake_up_interruptible(&priv->wait_command_queue); 6636 wake_up_interruptible(&priv->wait_command_queue);
6637 6637
6638 if (priv->error_recovering) 6638 if (priv->error_recovering)
@@ -9282,7 +9282,7 @@ static int iwl4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
9282 return err; 9282 return err;
9283} 9283}
9284 9284
9285static void iwl4965_pci_remove(struct pci_dev *pdev) 9285static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
9286{ 9286{
9287 struct iwl4965_priv *priv = pci_get_drvdata(pdev); 9287 struct iwl4965_priv *priv = pci_get_drvdata(pdev);
9288 struct list_head *p, *q; 9288 struct list_head *p, *q;
diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index bdc6a1cc2103..f0ef7081bdeb 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -578,7 +578,7 @@ int lbs_process_rx_command(struct lbs_private *priv)
578 goto done; 578 goto done;
579 } 579 }
580 if (respcmd != CMD_RET(curcmd) && 580 if (respcmd != CMD_RET(curcmd) &&
581 respcmd != CMD_802_11_ASSOCIATE && curcmd != CMD_RET_802_11_ASSOCIATE) { 581 respcmd != CMD_RET_802_11_ASSOCIATE && curcmd != CMD_802_11_ASSOCIATE) {
582 lbs_pr_info("Invalid CMD_RESP %x to command %x!\n", respcmd, curcmd); 582 lbs_pr_info("Invalid CMD_RESP %x to command %x!\n", respcmd, curcmd);
583 spin_unlock_irqrestore(&priv->driver_lock, flags); 583 spin_unlock_irqrestore(&priv->driver_lock, flags);
584 ret = -1; 584 ret = -1;
diff --git a/drivers/net/wireless/p54usb.c b/drivers/net/wireless/p54usb.c
index e7d4aee8799e..98ddbb3b3273 100644
--- a/drivers/net/wireless/p54usb.c
+++ b/drivers/net/wireless/p54usb.c
@@ -63,6 +63,7 @@ static struct usb_device_id p54u_table[] __devinitdata = {
63 {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */ 63 {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */
64 {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */ 64 {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */
65 {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */ 65 {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */
66 {USB_DEVICE(0x124a, 0x4025)}, /* IOGear GWU513 (GW3887IK chip) */
66 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */ 67 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */
67 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */ 68 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */
68 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */ 69 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 05927b908f80..6c725422af5a 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -620,6 +620,9 @@ struct rt2x00_dev {
620 * This will only be compiled in when required. 620 * This will only be compiled in when required.
621 */ 621 */
622#ifdef CONFIG_RT2X00_LIB_RFKILL 622#ifdef CONFIG_RT2X00_LIB_RFKILL
623unsigned long rfkill_state;
624#define RFKILL_STATE_ALLOCATED 1
625#define RFKILL_STATE_REGISTERED 2
623 struct rfkill *rfkill; 626 struct rfkill *rfkill;
624 struct input_polled_dev *poll_dev; 627 struct input_polled_dev *poll_dev;
625#endif /* CONFIG_RT2X00_LIB_RFKILL */ 628#endif /* CONFIG_RT2X00_LIB_RFKILL */
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 0d51f478bcdf..bd305f7f3efd 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -1098,7 +1098,7 @@ static void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev)
1098 return; 1098 return;
1099 1099
1100 /* 1100 /*
1101 * Unregister rfkill. 1101 * Unregister extra components.
1102 */ 1102 */
1103 rt2x00rfkill_unregister(rt2x00dev); 1103 rt2x00rfkill_unregister(rt2x00dev);
1104 1104
@@ -1139,17 +1139,12 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
1139 __set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags); 1139 __set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags);
1140 1140
1141 /* 1141 /*
1142 * Register the rfkill handler. 1142 * Register the extra components.
1143 */ 1143 */
1144 status = rt2x00rfkill_register(rt2x00dev); 1144 rt2x00rfkill_register(rt2x00dev);
1145 if (status)
1146 goto exit_unitialize;
1147 1145
1148 return 0; 1146 return 0;
1149 1147
1150exit_unitialize:
1151 rt2x00lib_uninitialize(rt2x00dev);
1152
1153exit: 1148exit:
1154 rt2x00lib_free_ring_entries(rt2x00dev); 1149 rt2x00lib_free_ring_entries(rt2x00dev);
1155 1150
@@ -1313,15 +1308,9 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
1313 } 1308 }
1314 1309
1315 /* 1310 /*
1316 * Allocatie rfkill. 1311 * Register extra components.
1317 */
1318 retval = rt2x00rfkill_allocate(rt2x00dev);
1319 if (retval)
1320 goto exit;
1321
1322 /*
1323 * Open the debugfs entry.
1324 */ 1312 */
1313 rt2x00rfkill_allocate(rt2x00dev);
1325 rt2x00debug_register(rt2x00dev); 1314 rt2x00debug_register(rt2x00dev);
1326 1315
1327 __set_bit(DEVICE_PRESENT, &rt2x00dev->flags); 1316 __set_bit(DEVICE_PRESENT, &rt2x00dev->flags);
@@ -1350,13 +1339,9 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
1350 rt2x00lib_uninitialize(rt2x00dev); 1339 rt2x00lib_uninitialize(rt2x00dev);
1351 1340
1352 /* 1341 /*
1353 * Close debugfs entry. 1342 * Free extra components
1354 */ 1343 */
1355 rt2x00debug_deregister(rt2x00dev); 1344 rt2x00debug_deregister(rt2x00dev);
1356
1357 /*
1358 * Free rfkill
1359 */
1360 rt2x00rfkill_free(rt2x00dev); 1345 rt2x00rfkill_free(rt2x00dev);
1361 1346
1362 /* 1347 /*
@@ -1395,11 +1380,15 @@ int rt2x00lib_suspend(struct rt2x00_dev *rt2x00dev, pm_message_t state)
1395 __set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags); 1380 __set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags);
1396 1381
1397 /* 1382 /*
1398 * Disable radio and unitialize all items 1383 * Disable radio.
1399 * that must be recreated on resume.
1400 */ 1384 */
1401 rt2x00lib_stop(rt2x00dev); 1385 rt2x00lib_stop(rt2x00dev);
1402 rt2x00lib_uninitialize(rt2x00dev); 1386 rt2x00lib_uninitialize(rt2x00dev);
1387
1388 /*
1389 * Suspend/disable extra components.
1390 */
1391 rt2x00rfkill_suspend(rt2x00dev);
1403 rt2x00debug_deregister(rt2x00dev); 1392 rt2x00debug_deregister(rt2x00dev);
1404 1393
1405exit: 1394exit:
@@ -1422,9 +1411,10 @@ int rt2x00lib_resume(struct rt2x00_dev *rt2x00dev)
1422 NOTICE(rt2x00dev, "Waking up.\n"); 1411 NOTICE(rt2x00dev, "Waking up.\n");
1423 1412
1424 /* 1413 /*
1425 * Open the debugfs entry. 1414 * Restore/enable extra components.
1426 */ 1415 */
1427 rt2x00debug_register(rt2x00dev); 1416 rt2x00debug_register(rt2x00dev);
1417 rt2x00rfkill_resume(rt2x00dev);
1428 1418
1429 /* 1419 /*
1430 * Only continue if mac80211 had open interfaces. 1420 * Only continue if mac80211 had open interfaces.
diff --git a/drivers/net/wireless/rt2x00/rt2x00lib.h b/drivers/net/wireless/rt2x00/rt2x00lib.h
index 1adbd28e0973..ce58c654ade1 100644
--- a/drivers/net/wireless/rt2x00/rt2x00lib.h
+++ b/drivers/net/wireless/rt2x00/rt2x00lib.h
@@ -100,28 +100,36 @@ static inline void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev,
100 * RFkill handlers. 100 * RFkill handlers.
101 */ 101 */
102#ifdef CONFIG_RT2X00_LIB_RFKILL 102#ifdef CONFIG_RT2X00_LIB_RFKILL
103int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev); 103void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev);
104void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev); 104void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev);
105int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev); 105void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev);
106void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev); 106void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev);
107void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev);
108void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev);
107#else 109#else
108static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) 110static inline void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
109{ 111{
110 return 0;
111} 112}
112 113
113static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev) 114static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
114{ 115{
115} 116}
116 117
117static inline int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) 118static inline void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
118{ 119{
119 return 0;
120} 120}
121 121
122static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) 122static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
123{ 123{
124} 124}
125
126static inline void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
127{
128}
129
130static inline void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
131{
132}
125#endif /* CONFIG_RT2X00_LIB_RFKILL */ 133#endif /* CONFIG_RT2X00_LIB_RFKILL */
126 134
127#endif /* RT2X00LIB_H */ 135#endif /* RT2X00LIB_H */
diff --git a/drivers/net/wireless/rt2x00/rt2x00rfkill.c b/drivers/net/wireless/rt2x00/rt2x00rfkill.c
index 34a96d44e306..f95577596206 100644
--- a/drivers/net/wireless/rt2x00/rt2x00rfkill.c
+++ b/drivers/net/wireless/rt2x00/rt2x00rfkill.c
@@ -69,56 +69,81 @@ static void rt2x00rfkill_poll(struct input_polled_dev *poll_dev)
69 } 69 }
70} 70}
71 71
72int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev) 72void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
73{ 73{
74 int retval; 74 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
75 75 !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
76 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) 76 return;
77 return 0;
78 77
79 retval = rfkill_register(rt2x00dev->rfkill); 78 if (rfkill_register(rt2x00dev->rfkill)) {
80 if (retval) {
81 ERROR(rt2x00dev, "Failed to register rfkill handler.\n"); 79 ERROR(rt2x00dev, "Failed to register rfkill handler.\n");
82 return retval; 80 return;
83 } 81 }
84 82
85 retval = input_register_polled_device(rt2x00dev->poll_dev); 83 if (input_register_polled_device(rt2x00dev->poll_dev)) {
86 if (retval) {
87 ERROR(rt2x00dev, "Failed to register polled device.\n"); 84 ERROR(rt2x00dev, "Failed to register polled device.\n");
88 rfkill_unregister(rt2x00dev->rfkill); 85 rfkill_unregister(rt2x00dev->rfkill);
89 return retval; 86 return;
90 } 87 }
91 88
89 __set_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
90
92 /* 91 /*
93 * Force initial poll which will detect the initial device state, 92 * Force initial poll which will detect the initial device state,
94 * and correctly sends the signal to the rfkill layer about this 93 * and correctly sends the signal to the rfkill layer about this
95 * state. 94 * state.
96 */ 95 */
97 rt2x00rfkill_poll(rt2x00dev->poll_dev); 96 rt2x00rfkill_poll(rt2x00dev->poll_dev);
98
99 return 0;
100} 97}
101 98
102void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev) 99void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
103{ 100{
104 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) 101 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
102 !test_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state))
105 return; 103 return;
106 104
107 input_unregister_polled_device(rt2x00dev->poll_dev); 105 input_unregister_polled_device(rt2x00dev->poll_dev);
108 rfkill_unregister(rt2x00dev->rfkill); 106 rfkill_unregister(rt2x00dev->rfkill);
107
108 __clear_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
109} 109}
110 110
111int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev) 111static struct input_polled_dev *
112rt2x00rfkill_allocate_polldev(struct rt2x00_dev *rt2x00dev)
112{ 113{
113 struct device *device = wiphy_dev(rt2x00dev->hw->wiphy); 114 struct input_polled_dev *poll_dev;
115
116 poll_dev = input_allocate_polled_device();
117 if (!poll_dev)
118 return NULL;
119
120 poll_dev->private = rt2x00dev;
121 poll_dev->poll = rt2x00rfkill_poll;
122 poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
123
124 poll_dev->input->name = rt2x00dev->ops->name;
125 poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy);
126 poll_dev->input->id.bustype = BUS_HOST;
127 poll_dev->input->id.vendor = 0x1814;
128 poll_dev->input->id.product = rt2x00dev->chip.rt;
129 poll_dev->input->id.version = rt2x00dev->chip.rev;
130 poll_dev->input->dev.parent = wiphy_dev(rt2x00dev->hw->wiphy);
131 poll_dev->input->evbit[0] = BIT(EV_KEY);
132 set_bit(KEY_WLAN, poll_dev->input->keybit);
133
134 return poll_dev;
135}
114 136
137void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
138{
115 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) 139 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
116 return 0; 140 return;
117 141
118 rt2x00dev->rfkill = rfkill_allocate(device, RFKILL_TYPE_WLAN); 142 rt2x00dev->rfkill =
143 rfkill_allocate(wiphy_dev(rt2x00dev->hw->wiphy), RFKILL_TYPE_WLAN);
119 if (!rt2x00dev->rfkill) { 144 if (!rt2x00dev->rfkill) {
120 ERROR(rt2x00dev, "Failed to allocate rfkill handler.\n"); 145 ERROR(rt2x00dev, "Failed to allocate rfkill handler.\n");
121 goto exit; 146 return;
122 } 147 }
123 148
124 rt2x00dev->rfkill->name = rt2x00dev->ops->name; 149 rt2x00dev->rfkill->name = rt2x00dev->ops->name;
@@ -126,40 +151,49 @@ int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
126 rt2x00dev->rfkill->state = -1; 151 rt2x00dev->rfkill->state = -1;
127 rt2x00dev->rfkill->toggle_radio = rt2x00rfkill_toggle_radio; 152 rt2x00dev->rfkill->toggle_radio = rt2x00rfkill_toggle_radio;
128 153
129 rt2x00dev->poll_dev = input_allocate_polled_device(); 154 rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
130 if (!rt2x00dev->poll_dev) { 155 if (!rt2x00dev->poll_dev) {
131 ERROR(rt2x00dev, "Failed to allocate polled device.\n"); 156 ERROR(rt2x00dev, "Failed to allocate polled device.\n");
132 goto exit_free_rfkill; 157 rfkill_free(rt2x00dev->rfkill);
158 rt2x00dev->rfkill = NULL;
159 return;
133 } 160 }
134 161
135 rt2x00dev->poll_dev->private = rt2x00dev; 162 return;
136 rt2x00dev->poll_dev->poll = rt2x00rfkill_poll; 163}
137 rt2x00dev->poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
138 164
139 rt2x00dev->poll_dev->input->name = rt2x00dev->ops->name; 165void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
140 rt2x00dev->poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy); 166{
141 rt2x00dev->poll_dev->input->id.bustype = BUS_HOST; 167 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
142 rt2x00dev->poll_dev->input->id.vendor = 0x1814; 168 !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
143 rt2x00dev->poll_dev->input->id.product = rt2x00dev->chip.rt; 169 return;
144 rt2x00dev->poll_dev->input->id.version = rt2x00dev->chip.rev;
145 rt2x00dev->poll_dev->input->dev.parent = device;
146 rt2x00dev->poll_dev->input->evbit[0] = BIT(EV_KEY);
147 set_bit(KEY_WLAN, rt2x00dev->poll_dev->input->keybit);
148 170
149 return 0; 171 input_free_polled_device(rt2x00dev->poll_dev);
172 rt2x00dev->poll_dev = NULL;
150 173
151exit_free_rfkill:
152 rfkill_free(rt2x00dev->rfkill); 174 rfkill_free(rt2x00dev->rfkill);
153 175 rt2x00dev->rfkill = NULL;
154exit:
155 return -ENOMEM;
156} 176}
157 177
158void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) 178void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
159{ 179{
160 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags)) 180 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
181 !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
161 return; 182 return;
162 183
163 input_free_polled_device(rt2x00dev->poll_dev); 184 input_free_polled_device(rt2x00dev->poll_dev);
164 rfkill_free(rt2x00dev->rfkill); 185 rt2x00dev->poll_dev = NULL;
186}
187
188void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
189{
190 if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
191 !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
192 return;
193
194 rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
195 if (!rt2x00dev->poll_dev) {
196 ERROR(rt2x00dev, "Failed to allocate polled device.\n");
197 return;
198 }
165} 199}
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index e808db98f2f5..93ea212fedd5 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2302,9 +2302,9 @@ static void rt61pci_configure_filter(struct ieee80211_hw *hw,
2302 * Apply some rules to the filters: 2302 * Apply some rules to the filters:
2303 * - Some filters imply different filters to be set. 2303 * - Some filters imply different filters to be set.
2304 * - Some things we can't filter out at all. 2304 * - Some things we can't filter out at all.
2305 * - Multicast filter seems to kill broadcast traffic so never use it.
2305 */ 2306 */
2306 if (mc_count) 2307 *total_flags |= FIF_ALLMULTI;
2307 *total_flags |= FIF_ALLMULTI;
2308 if (*total_flags & FIF_OTHER_BSS || 2308 if (*total_flags & FIF_OTHER_BSS ||
2309 *total_flags & FIF_PROMISC_IN_BSS) 2309 *total_flags & FIF_PROMISC_IN_BSS)
2310 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 2310 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 4fac2d414d84..3909cf42f472 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -1869,9 +1869,9 @@ static void rt73usb_configure_filter(struct ieee80211_hw *hw,
1869 * Apply some rules to the filters: 1869 * Apply some rules to the filters:
1870 * - Some filters imply different filters to be set. 1870 * - Some filters imply different filters to be set.
1871 * - Some things we can't filter out at all. 1871 * - Some things we can't filter out at all.
1872 * - Multicast filter seems to kill broadcast traffic so never use it.
1872 */ 1873 */
1873 if (mc_count) 1874 *total_flags |= FIF_ALLMULTI;
1874 *total_flags |= FIF_ALLMULTI;
1875 if (*total_flags & FIF_OTHER_BSS || 1875 if (*total_flags & FIF_OTHER_BSS ||
1876 *total_flags & FIF_PROMISC_IN_BSS) 1876 *total_flags & FIF_PROMISC_IN_BSS)
1877 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 1877 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
@@ -2095,9 +2095,12 @@ static struct usb_device_id rt73usb_device_table[] = {
2095 { USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) }, 2095 { USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) },
2096 /* Conceptronic */ 2096 /* Conceptronic */
2097 { USB_DEVICE(0x14b2, 0x3c22), USB_DEVICE_DATA(&rt73usb_ops) }, 2097 { USB_DEVICE(0x14b2, 0x3c22), USB_DEVICE_DATA(&rt73usb_ops) },
2098 /* Corega */
2099 { USB_DEVICE(0x07aa, 0x002e), USB_DEVICE_DATA(&rt73usb_ops) },
2098 /* D-Link */ 2100 /* D-Link */
2099 { USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) }, 2101 { USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) },
2100 { USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) }, 2102 { USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) },
2103 { USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) },
2101 /* Gemtek */ 2104 /* Gemtek */
2102 { USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) }, 2105 { USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) },
2103 /* Gigabyte */ 2106 /* Gigabyte */
diff --git a/drivers/net/wireless/wavelan_cs.h b/drivers/net/wireless/wavelan_cs.h
index fabc63ee153c..2e4bfe4147c6 100644
--- a/drivers/net/wireless/wavelan_cs.h
+++ b/drivers/net/wireless/wavelan_cs.h
@@ -309,7 +309,7 @@ struct mmw_t
309#define MMW_EXT_ANT_INTERNAL 0x00 /* Internal antenna */ 309#define MMW_EXT_ANT_INTERNAL 0x00 /* Internal antenna */
310#define MMW_EXT_ANT_EXTERNAL 0x03 /* External antenna */ 310#define MMW_EXT_ANT_EXTERNAL 0x03 /* External antenna */
311#define MMW_EXT_ANT_IQ_TEST 0x1C /* IQ test pattern (set to 0) */ 311#define MMW_EXT_ANT_IQ_TEST 0x1C /* IQ test pattern (set to 0) */
312}; 312} __attribute__((packed));
313 313
314/* Size for structure checking (if padding is correct) */ 314/* Size for structure checking (if padding is correct) */
315#define MMW_SIZE 37 315#define MMW_SIZE 37
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index de34aa9d3136..f9f9a5f1bbd0 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -829,7 +829,7 @@ static ssize_t pdcs_autoboot_write(struct kobject *kobj,
829 struct kobj_attribute *attr, 829 struct kobj_attribute *attr,
830 const char *buf, size_t count) 830 const char *buf, size_t count)
831{ 831{
832 return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT); 832 return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
833} 833}
834 834
835/** 835/**
@@ -845,7 +845,7 @@ static ssize_t pdcs_autosearch_write(struct kobject *kobj,
845 struct kobj_attribute *attr, 845 struct kobj_attribute *attr,
846 const char *buf, size_t count) 846 const char *buf, size_t count)
847{ 847{
848 return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH); 848 return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
849} 849}
850 850
851/** 851/**
@@ -1066,7 +1066,7 @@ pdc_stable_init(void)
1066 } 1066 }
1067 1067
1068 /* Don't forget the root entries */ 1068 /* Don't forget the root entries */
1069 error = sysfs_create_group(stable_kobj, pdcs_attr_group); 1069 error = sysfs_create_group(stable_kobj, &pdcs_attr_group);
1070 1070
1071 /* register the paths kset as a child of the stable kset */ 1071 /* register the paths kset as a child of the stable kset */
1072 paths_kset = kset_create_and_add("paths", NULL, stable_kobj); 1072 paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index bdbe780e21c5..8c4d2c13d5f2 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -314,8 +314,8 @@ sba_dump_sg( struct ioc *ioc, struct scatterlist *startsg, int nents)
314#define RESMAP_MASK(n) (~0UL << (BITS_PER_LONG - (n))) 314#define RESMAP_MASK(n) (~0UL << (BITS_PER_LONG - (n)))
315#define RESMAP_IDX_MASK (sizeof(unsigned long) - 1) 315#define RESMAP_IDX_MASK (sizeof(unsigned long) - 1)
316 316
317unsigned long ptr_to_pide(struct ioc *ioc, unsigned long *res_ptr, 317static unsigned long ptr_to_pide(struct ioc *ioc, unsigned long *res_ptr,
318 unsigned int bitshiftcnt) 318 unsigned int bitshiftcnt)
319{ 319{
320 return (((unsigned long)res_ptr - (unsigned long)ioc->res_map) << 3) 320 return (((unsigned long)res_ptr - (unsigned long)ioc->res_map) << 3)
321 + bitshiftcnt; 321 + bitshiftcnt;
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 6a9403d79e0c..d708358326e5 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -143,14 +143,18 @@ void pci_bus_add_devices(struct pci_bus *bus)
143 /* register the bus with sysfs as the parent is now 143 /* register the bus with sysfs as the parent is now
144 * properly registered. */ 144 * properly registered. */
145 child_bus = dev->subordinate; 145 child_bus = dev->subordinate;
146 if (child_bus->is_added)
147 continue;
146 child_bus->dev.parent = child_bus->bridge; 148 child_bus->dev.parent = child_bus->bridge;
147 retval = device_register(&child_bus->dev); 149 retval = device_register(&child_bus->dev);
148 if (retval) 150 if (retval)
149 dev_err(&dev->dev, "Error registering pci_bus," 151 dev_err(&dev->dev, "Error registering pci_bus,"
150 " continuing...\n"); 152 " continuing...\n");
151 else 153 else {
154 child_bus->is_added = 1;
152 retval = device_create_file(&child_bus->dev, 155 retval = device_create_file(&child_bus->dev,
153 &dev_attr_cpuaffinity); 156 &dev_attr_cpuaffinity);
157 }
154 if (retval) 158 if (retval)
155 dev_err(&dev->dev, "Error creating cpuaffinity" 159 dev_err(&dev->dev, "Error creating cpuaffinity"
156 " file, continuing...\n"); 160 " file, continuing...\n");
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 7f4836b8e71e..5fa4ba0d9934 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -467,7 +467,7 @@ static int pciehp_probe(struct pcie_device *dev, const struct pcie_port_service_
467 t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset); 467 t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset);
468 468
469 t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */ 469 t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */
470 if (value) { 470 if (value && pciehp_force) {
471 rc = pciehp_enable_slot(t_slot); 471 rc = pciehp_enable_slot(t_slot);
472 if (rc) /* -ENODEV: shouldn't happen, but deal with it */ 472 if (rc) /* -ENODEV: shouldn't happen, but deal with it */
473 value = 0; 473 value = 0;
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 977d29b32295..4cb949f0ebd9 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -1097,6 +1097,8 @@ static void iommu_free_domain(struct dmar_domain *domain)
1097} 1097}
1098 1098
1099static struct iova_domain reserved_iova_list; 1099static struct iova_domain reserved_iova_list;
1100static struct lock_class_key reserved_alloc_key;
1101static struct lock_class_key reserved_rbtree_key;
1100 1102
1101static void dmar_init_reserved_ranges(void) 1103static void dmar_init_reserved_ranges(void)
1102{ 1104{
@@ -1107,6 +1109,11 @@ static void dmar_init_reserved_ranges(void)
1107 1109
1108 init_iova_domain(&reserved_iova_list, DMA_32BIT_PFN); 1110 init_iova_domain(&reserved_iova_list, DMA_32BIT_PFN);
1109 1111
1112 lockdep_set_class(&reserved_iova_list.iova_alloc_lock,
1113 &reserved_alloc_key);
1114 lockdep_set_class(&reserved_iova_list.iova_rbtree_lock,
1115 &reserved_rbtree_key);
1116
1110 /* IOAPIC ranges shouldn't be accessed by DMA */ 1117 /* IOAPIC ranges shouldn't be accessed by DMA */
1111 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(IOAPIC_RANGE_START), 1118 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(IOAPIC_RANGE_START),
1112 IOVA_PFN(IOAPIC_RANGE_END)); 1119 IOVA_PFN(IOAPIC_RANGE_END));
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 4a23654184fc..72f7476930c8 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -272,21 +272,29 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
272{ 272{
273 acpi_handle handle = DEVICE_ACPI_HANDLE(&dev->dev); 273 acpi_handle handle = DEVICE_ACPI_HANDLE(&dev->dev);
274 acpi_handle tmp; 274 acpi_handle tmp;
275 static int state_conv[] = { 275 static const u8 state_conv[] = {
276 [0] = 0, 276 [PCI_D0] = ACPI_STATE_D0,
277 [1] = 1, 277 [PCI_D1] = ACPI_STATE_D1,
278 [2] = 2, 278 [PCI_D2] = ACPI_STATE_D2,
279 [3] = 3, 279 [PCI_D3hot] = ACPI_STATE_D3,
280 [4] = 3 280 [PCI_D3cold] = ACPI_STATE_D3
281 }; 281 };
282 int acpi_state = state_conv[(int __force) state];
283 282
284 if (!handle) 283 if (!handle)
285 return -ENODEV; 284 return -ENODEV;
286 /* If the ACPI device has _EJ0, ignore the device */ 285 /* If the ACPI device has _EJ0, ignore the device */
287 if (ACPI_SUCCESS(acpi_get_handle(handle, "_EJ0", &tmp))) 286 if (ACPI_SUCCESS(acpi_get_handle(handle, "_EJ0", &tmp)))
288 return 0; 287 return 0;
289 return acpi_bus_set_power(handle, acpi_state); 288
289 switch (state) {
290 case PCI_D0:
291 case PCI_D1:
292 case PCI_D2:
293 case PCI_D3hot:
294 case PCI_D3cold:
295 return acpi_bus_set_power(handle, state_conv[state]);
296 }
297 return -EINVAL;
290} 298}
291 299
292 300
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 183fddaa38b7..a4445b7210bf 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -314,24 +314,6 @@ int pci_find_ht_capability(struct pci_dev *dev, int ht_cap)
314} 314}
315EXPORT_SYMBOL_GPL(pci_find_ht_capability); 315EXPORT_SYMBOL_GPL(pci_find_ht_capability);
316 316
317void pcie_wait_pending_transaction(struct pci_dev *dev)
318{
319 int pos;
320 u16 reg16;
321
322 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
323 if (!pos)
324 return;
325 while (1) {
326 pci_read_config_word(dev, pos + PCI_EXP_DEVSTA, &reg16);
327 if (!(reg16 & PCI_EXP_DEVSTA_TRPND))
328 break;
329 cpu_relax();
330 }
331
332}
333EXPORT_SYMBOL_GPL(pcie_wait_pending_transaction);
334
335/** 317/**
336 * pci_find_parent_resource - return resource region of parent bus of given region 318 * pci_find_parent_resource - return resource region of parent bus of given region
337 * @dev: PCI device structure contains resources to be searched 319 * @dev: PCI device structure contains resources to be searched
@@ -936,9 +918,6 @@ pci_disable_device(struct pci_dev *dev)
936 if (atomic_sub_return(1, &dev->enable_cnt) != 0) 918 if (atomic_sub_return(1, &dev->enable_cnt) != 0)
937 return; 919 return;
938 920
939 /* Wait for all transactions are finished before disabling the device */
940 pcie_wait_pending_transaction(dev);
941
942 pci_read_config_word(dev, PCI_COMMAND, &pci_command); 921 pci_read_config_word(dev, PCI_COMMAND, &pci_command);
943 if (pci_command & PCI_COMMAND_MASTER) { 922 if (pci_command & PCI_COMMAND_MASTER) {
944 pci_command &= ~PCI_COMMAND_MASTER; 923 pci_command &= ~PCI_COMMAND_MASTER;
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e9a333d98552..e887aa45c9cd 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -951,6 +951,12 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_e
951 * accesses to the SMBus registers, with potentially bad effects. Thus you 951 * accesses to the SMBus registers, with potentially bad effects. Thus you
952 * should be very careful when adding new entries: if SMM is accessing the 952 * should be very careful when adding new entries: if SMM is accessing the
953 * Intel SMBus, this is a very good reason to leave it hidden. 953 * Intel SMBus, this is a very good reason to leave it hidden.
954 *
955 * Likewise, many recent laptops use ACPI for thermal management. If the
956 * ACPI DSDT code accesses the SMBus, then Linux should not access it
957 * natively, and keeping the SMBus hidden is the right thing to do. If you
958 * are about to add an entry in the table below, please first disassemble
959 * the DSDT and double-check that there is no code accessing the SMBus.
954 */ 960 */
955static int asus_hides_smbus; 961static int asus_hides_smbus;
956 962
@@ -1028,11 +1034,6 @@ static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev)
1028 case 0x12bf: /* HP xw4100 */ 1034 case 0x12bf: /* HP xw4100 */
1029 asus_hides_smbus = 1; 1035 asus_hides_smbus = 1;
1030 } 1036 }
1031 else if (dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB)
1032 switch (dev->subsystem_device) {
1033 case 0x099c: /* HP Compaq nx6110 */
1034 asus_hides_smbus = 1;
1035 }
1036 } else if (unlikely(dev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG)) { 1037 } else if (unlikely(dev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG)) {
1037 if (dev->device == PCI_DEVICE_ID_INTEL_82855PM_HB) 1038 if (dev->device == PCI_DEVICE_ID_INTEL_82855PM_HB)
1038 switch(dev->subsystem_device) { 1039 switch(dev->subsystem_device) {
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 125e7b7f34ff..f7cb8e0758b4 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -486,12 +486,7 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
486 break; 486 break;
487 487
488 case PCI_CLASS_BRIDGE_PCI: 488 case PCI_CLASS_BRIDGE_PCI:
489 /* don't size subtractive decoding (transparent)
490 * PCI-to-PCI bridges */
491 if (bus->self->transparent)
492 break;
493 pci_bridge_check_ranges(bus); 489 pci_bridge_check_ranges(bus);
494 /* fall through */
495 default: 490 default:
496 pbus_size_io(bus); 491 pbus_size_io(bus);
497 /* If the bridge supports prefetchable range, size it 492 /* If the bridge supports prefetchable range, size it
diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
index 2c925b7cd93e..257f5d827d83 100644
--- a/drivers/pnp/isapnp/core.c
+++ b/drivers/pnp/isapnp/core.c
@@ -88,6 +88,15 @@ MODULE_LICENSE("GPL");
88#define _LTAG_MEM32RANGE 0x85 88#define _LTAG_MEM32RANGE 0x85
89#define _LTAG_FIXEDMEM32RANGE 0x86 89#define _LTAG_FIXEDMEM32RANGE 0x86
90 90
91/*
92 * Sizes of ISAPNP logical device configuration register sets.
93 * See PNP-ISA-v1.0a.pdf, Appendix A.
94 */
95#define ISAPNP_MAX_MEM 4
96#define ISAPNP_MAX_PORT 8
97#define ISAPNP_MAX_IRQ 2
98#define ISAPNP_MAX_DMA 2
99
91static unsigned char isapnp_checksum_value; 100static unsigned char isapnp_checksum_value;
92static DEFINE_MUTEX(isapnp_cfg_mutex); 101static DEFINE_MUTEX(isapnp_cfg_mutex);
93static int isapnp_csn_count; 102static int isapnp_csn_count;
@@ -945,14 +954,14 @@ static int isapnp_read_resources(struct pnp_dev *dev,
945 954
946 dev->active = isapnp_read_byte(ISAPNP_CFG_ACTIVATE); 955 dev->active = isapnp_read_byte(ISAPNP_CFG_ACTIVATE);
947 if (dev->active) { 956 if (dev->active) {
948 for (tmp = 0; tmp < PNP_MAX_PORT; tmp++) { 957 for (tmp = 0; tmp < ISAPNP_MAX_PORT; tmp++) {
949 ret = isapnp_read_word(ISAPNP_CFG_PORT + (tmp << 1)); 958 ret = isapnp_read_word(ISAPNP_CFG_PORT + (tmp << 1));
950 if (!ret) 959 if (!ret)
951 continue; 960 continue;
952 res->port_resource[tmp].start = ret; 961 res->port_resource[tmp].start = ret;
953 res->port_resource[tmp].flags = IORESOURCE_IO; 962 res->port_resource[tmp].flags = IORESOURCE_IO;
954 } 963 }
955 for (tmp = 0; tmp < PNP_MAX_MEM; tmp++) { 964 for (tmp = 0; tmp < ISAPNP_MAX_MEM; tmp++) {
956 ret = 965 ret =
957 isapnp_read_word(ISAPNP_CFG_MEM + (tmp << 3)) << 8; 966 isapnp_read_word(ISAPNP_CFG_MEM + (tmp << 3)) << 8;
958 if (!ret) 967 if (!ret)
@@ -960,7 +969,7 @@ static int isapnp_read_resources(struct pnp_dev *dev,
960 res->mem_resource[tmp].start = ret; 969 res->mem_resource[tmp].start = ret;
961 res->mem_resource[tmp].flags = IORESOURCE_MEM; 970 res->mem_resource[tmp].flags = IORESOURCE_MEM;
962 } 971 }
963 for (tmp = 0; tmp < PNP_MAX_IRQ; tmp++) { 972 for (tmp = 0; tmp < ISAPNP_MAX_IRQ; tmp++) {
964 ret = 973 ret =
965 (isapnp_read_word(ISAPNP_CFG_IRQ + (tmp << 1)) >> 974 (isapnp_read_word(ISAPNP_CFG_IRQ + (tmp << 1)) >>
966 8); 975 8);
@@ -970,7 +979,7 @@ static int isapnp_read_resources(struct pnp_dev *dev,
970 res->irq_resource[tmp].end = ret; 979 res->irq_resource[tmp].end = ret;
971 res->irq_resource[tmp].flags = IORESOURCE_IRQ; 980 res->irq_resource[tmp].flags = IORESOURCE_IRQ;
972 } 981 }
973 for (tmp = 0; tmp < PNP_MAX_DMA; tmp++) { 982 for (tmp = 0; tmp < ISAPNP_MAX_DMA; tmp++) {
974 ret = isapnp_read_byte(ISAPNP_CFG_DMA + tmp); 983 ret = isapnp_read_byte(ISAPNP_CFG_DMA + tmp);
975 if (ret == 4) 984 if (ret == 4)
976 continue; 985 continue;
@@ -1002,14 +1011,14 @@ static int isapnp_set_resources(struct pnp_dev *dev,
1002 isapnp_cfg_begin(dev->card->number, dev->number); 1011 isapnp_cfg_begin(dev->card->number, dev->number);
1003 dev->active = 1; 1012 dev->active = 1;
1004 for (tmp = 0; 1013 for (tmp = 0;
1005 tmp < PNP_MAX_PORT 1014 tmp < ISAPNP_MAX_PORT
1006 && (res->port_resource[tmp]. 1015 && (res->port_resource[tmp].
1007 flags & (IORESOURCE_IO | IORESOURCE_UNSET)) == IORESOURCE_IO; 1016 flags & (IORESOURCE_IO | IORESOURCE_UNSET)) == IORESOURCE_IO;
1008 tmp++) 1017 tmp++)
1009 isapnp_write_word(ISAPNP_CFG_PORT + (tmp << 1), 1018 isapnp_write_word(ISAPNP_CFG_PORT + (tmp << 1),
1010 res->port_resource[tmp].start); 1019 res->port_resource[tmp].start);
1011 for (tmp = 0; 1020 for (tmp = 0;
1012 tmp < PNP_MAX_IRQ 1021 tmp < ISAPNP_MAX_IRQ
1013 && (res->irq_resource[tmp]. 1022 && (res->irq_resource[tmp].
1014 flags & (IORESOURCE_IRQ | IORESOURCE_UNSET)) == IORESOURCE_IRQ; 1023 flags & (IORESOURCE_IRQ | IORESOURCE_UNSET)) == IORESOURCE_IRQ;
1015 tmp++) { 1024 tmp++) {
@@ -1019,14 +1028,14 @@ static int isapnp_set_resources(struct pnp_dev *dev,
1019 isapnp_write_byte(ISAPNP_CFG_IRQ + (tmp << 1), irq); 1028 isapnp_write_byte(ISAPNP_CFG_IRQ + (tmp << 1), irq);
1020 } 1029 }
1021 for (tmp = 0; 1030 for (tmp = 0;
1022 tmp < PNP_MAX_DMA 1031 tmp < ISAPNP_MAX_DMA
1023 && (res->dma_resource[tmp]. 1032 && (res->dma_resource[tmp].
1024 flags & (IORESOURCE_DMA | IORESOURCE_UNSET)) == IORESOURCE_DMA; 1033 flags & (IORESOURCE_DMA | IORESOURCE_UNSET)) == IORESOURCE_DMA;
1025 tmp++) 1034 tmp++)
1026 isapnp_write_byte(ISAPNP_CFG_DMA + tmp, 1035 isapnp_write_byte(ISAPNP_CFG_DMA + tmp,
1027 res->dma_resource[tmp].start); 1036 res->dma_resource[tmp].start);
1028 for (tmp = 0; 1037 for (tmp = 0;
1029 tmp < PNP_MAX_MEM 1038 tmp < ISAPNP_MAX_MEM
1030 && (res->mem_resource[tmp]. 1039 && (res->mem_resource[tmp].
1031 flags & (IORESOURCE_MEM | IORESOURCE_UNSET)) == IORESOURCE_MEM; 1040 flags & (IORESOURCE_MEM | IORESOURCE_UNSET)) == IORESOURCE_MEM;
1032 tmp++) 1041 tmp++)
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index 6aa231ef642d..2dcd1960aca8 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -85,7 +85,7 @@ static void pnpacpi_parse_allocated_irqresource(struct pnp_resource_table *res,
85 i < PNP_MAX_IRQ) 85 i < PNP_MAX_IRQ)
86 i++; 86 i++;
87 if (i >= PNP_MAX_IRQ && !warned) { 87 if (i >= PNP_MAX_IRQ && !warned) {
88 printk(KERN_ERR "pnpacpi: exceeded the max number of IRQ " 88 printk(KERN_WARNING "pnpacpi: exceeded the max number of IRQ "
89 "resources: %d \n", PNP_MAX_IRQ); 89 "resources: %d \n", PNP_MAX_IRQ);
90 warned = 1; 90 warned = 1;
91 return; 91 return;
@@ -187,7 +187,7 @@ static void pnpacpi_parse_allocated_dmaresource(struct pnp_resource_table *res,
187 res->dma_resource[i].start = dma; 187 res->dma_resource[i].start = dma;
188 res->dma_resource[i].end = dma; 188 res->dma_resource[i].end = dma;
189 } else if (!warned) { 189 } else if (!warned) {
190 printk(KERN_ERR "pnpacpi: exceeded the max number of DMA " 190 printk(KERN_WARNING "pnpacpi: exceeded the max number of DMA "
191 "resources: %d \n", PNP_MAX_DMA); 191 "resources: %d \n", PNP_MAX_DMA);
192 warned = 1; 192 warned = 1;
193 } 193 }
@@ -213,7 +213,7 @@ static void pnpacpi_parse_allocated_ioresource(struct pnp_resource_table *res,
213 res->port_resource[i].start = io; 213 res->port_resource[i].start = io;
214 res->port_resource[i].end = io + len - 1; 214 res->port_resource[i].end = io + len - 1;
215 } else if (!warned) { 215 } else if (!warned) {
216 printk(KERN_ERR "pnpacpi: exceeded the max number of IO " 216 printk(KERN_WARNING "pnpacpi: exceeded the max number of IO "
217 "resources: %d \n", PNP_MAX_PORT); 217 "resources: %d \n", PNP_MAX_PORT);
218 warned = 1; 218 warned = 1;
219 } 219 }
@@ -241,7 +241,7 @@ static void pnpacpi_parse_allocated_memresource(struct pnp_resource_table *res,
241 res->mem_resource[i].start = mem; 241 res->mem_resource[i].start = mem;
242 res->mem_resource[i].end = mem + len - 1; 242 res->mem_resource[i].end = mem + len - 1;
243 } else if (!warned) { 243 } else if (!warned) {
244 printk(KERN_ERR "pnpacpi: exceeded the max number of mem " 244 printk(KERN_WARNING "pnpacpi: exceeded the max number of mem "
245 "resources: %d\n", PNP_MAX_MEM); 245 "resources: %d\n", PNP_MAX_MEM);
246 warned = 1; 246 warned = 1;
247 } 247 }
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
index 4065139753b6..37993206ae5d 100644
--- a/drivers/pnp/quirks.c
+++ b/drivers/pnp/quirks.c
@@ -17,7 +17,6 @@
17#include <linux/slab.h> 17#include <linux/slab.h>
18#include <linux/pnp.h> 18#include <linux/pnp.h>
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/dmi.h>
21#include <linux/kallsyms.h> 20#include <linux/kallsyms.h>
22#include "base.h" 21#include "base.h"
23 22
@@ -109,42 +108,73 @@ static void quirk_sb16audio_resources(struct pnp_dev *dev)
109 "pnp: SB audio device quirk - increasing port range\n"); 108 "pnp: SB audio device quirk - increasing port range\n");
110} 109}
111 110
112static void quirk_supermicro_h8dce_system(struct pnp_dev *dev) 111
112#include <linux/pci.h>
113
114static void quirk_system_pci_resources(struct pnp_dev *dev)
113{ 115{
114 int i; 116 struct pci_dev *pdev = NULL;
115 static struct dmi_system_id supermicro_h8dce[] = { 117 resource_size_t pnp_start, pnp_end, pci_start, pci_end;
116 { 118 int i, j;
117 .ident = "Supermicro H8DCE",
118 .matches = {
119 DMI_MATCH(DMI_SYS_VENDOR, "Supermicro"),
120 DMI_MATCH(DMI_PRODUCT_NAME, "H8DCE"),
121 },
122 },
123 { }
124 };
125
126 if (!dmi_check_system(supermicro_h8dce))
127 return;
128 119
129 /* 120 /*
130 * On the Supermicro H8DCE, there's a system device with resources 121 * Some BIOSes have PNP motherboard devices with resources that
131 * that overlap BAR 6 of the built-in SATA PCI adapter. If the PNP 122 * partially overlap PCI BARs. The PNP system driver claims these
132 * system device claims them, the sata_nv driver won't be able to. 123 * motherboard resources, which prevents the normal PCI driver from
133 * More details at: 124 * requesting them later.
134 * https://bugzilla.redhat.com/show_bug.cgi?id=280641 125 *
135 * https://bugzilla.redhat.com/show_bug.cgi?id=313491 126 * This patch disables the PNP resources that conflict with PCI BARs
136 * http://lkml.org/lkml/2008/1/9/449 127 * so they won't be claimed by the PNP system driver.
137 * http://thread.gmane.org/gmane.linux.acpi.devel/27312
138 */ 128 */
139 for (i = 0; i < PNP_MAX_MEM; i++) { 129 for_each_pci_dev(pdev) {
140 if (pnp_mem_valid(dev, i) && pnp_mem_len(dev, i) && 130 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
141 (pnp_mem_start(dev, i) & 0xdfef0000) == 0xdfef0000) { 131 if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM) ||
142 dev_warn(&dev->dev, "disabling 0x%llx-0x%llx to prevent" 132 pci_resource_len(pdev, i) == 0)
143 " conflict with sata_nv PCI device\n", 133 continue;
144 (unsigned long long) pnp_mem_start(dev, i), 134
145 (unsigned long long) (pnp_mem_start(dev, i) + 135 pci_start = pci_resource_start(pdev, i);
146 pnp_mem_len(dev, i) - 1)); 136 pci_end = pci_resource_end(pdev, i);
147 pnp_mem_flags(dev, i) = 0; 137 for (j = 0; j < PNP_MAX_MEM; j++) {
138 if (!pnp_mem_valid(dev, j) ||
139 pnp_mem_len(dev, j) == 0)
140 continue;
141
142 pnp_start = pnp_mem_start(dev, j);
143 pnp_end = pnp_mem_end(dev, j);
144
145 /*
146 * If the PNP region doesn't overlap the PCI
147 * region at all, there's no problem.
148 */
149 if (pnp_end < pci_start || pnp_start > pci_end)
150 continue;
151
152 /*
153 * If the PNP region completely encloses (or is
154 * at least as large as) the PCI region, that's
155 * also OK. For example, this happens when the
156 * PNP device describes a bridge with PCI
157 * behind it.
158 */
159 if (pnp_start <= pci_start &&
160 pnp_end >= pci_end)
161 continue;
162
163 /*
164 * Otherwise, the PNP region overlaps *part* of
165 * the PCI region, and that might prevent a PCI
166 * driver from requesting its resources.
167 */
168 dev_warn(&dev->dev, "mem resource "
169 "(0x%llx-0x%llx) overlaps %s BAR %d "
170 "(0x%llx-0x%llx), disabling\n",
171 (unsigned long long) pnp_start,
172 (unsigned long long) pnp_end,
173 pci_name(pdev), i,
174 (unsigned long long) pci_start,
175 (unsigned long long) pci_end);
176 pnp_mem_flags(dev, j) = 0;
177 }
148 } 178 }
149 } 179 }
150} 180}
@@ -169,8 +199,8 @@ static struct pnp_fixup pnp_fixups[] = {
169 {"CTL0043", quirk_sb16audio_resources}, 199 {"CTL0043", quirk_sb16audio_resources},
170 {"CTL0044", quirk_sb16audio_resources}, 200 {"CTL0044", quirk_sb16audio_resources},
171 {"CTL0045", quirk_sb16audio_resources}, 201 {"CTL0045", quirk_sb16audio_resources},
172 {"PNP0c01", quirk_supermicro_h8dce_system}, 202 {"PNP0c01", quirk_system_pci_resources},
173 {"PNP0c02", quirk_supermicro_h8dce_system}, 203 {"PNP0c02", quirk_system_pci_resources},
174 {""} 204 {""}
175}; 205};
176 206
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 82f5ad9c3af4..9e7de63b26ef 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -16,7 +16,7 @@ menuconfig RTC_CLASS
16 probably want to enable one or more of the interfaces below. 16 probably want to enable one or more of the interfaces below.
17 17
18 This driver can also be built as a module. If so, the module 18 This driver can also be built as a module. If so, the module
19 will be called rtc-class. 19 will be called rtc-core.
20 20
21if RTC_CLASS 21if RTC_CLASS
22 22
diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c
index bbf10ecf416c..56728a2a3385 100644
--- a/drivers/rtc/rtc-at91sam9.c
+++ b/drivers/rtc/rtc-at91sam9.c
@@ -274,7 +274,7 @@ static irqreturn_t at91_rtc_interrupt(int irq, void *_rtc)
274 * SR clears it, so we must only read it in this irq handler! 274 * SR clears it, so we must only read it in this irq handler!
275 */ 275 */
276 mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); 276 mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN);
277 sr = rtt_readl(rtc, SR) & mr; 277 sr = rtt_readl(rtc, SR) & (mr >> 16);
278 if (!sr) 278 if (!sr)
279 return IRQ_NONE; 279 return IRQ_NONE;
280 280
@@ -321,6 +321,10 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
321 if (!rtc) 321 if (!rtc)
322 return -ENOMEM; 322 return -ENOMEM;
323 323
324 /* platform setup code should have handled this; sigh */
325 if (!device_can_wakeup(&pdev->dev))
326 device_init_wakeup(&pdev->dev, 1);
327
324 platform_set_drvdata(pdev, rtc); 328 platform_set_drvdata(pdev, rtc);
325 rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS); 329 rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS);
326 rtc->rtt += r->start; 330 rtc->rtt += r->start;
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index c46666a24809..b9d374082b65 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -325,7 +325,7 @@ menuconfig SCSI_LOWLEVEL
325 depends on SCSI!=n 325 depends on SCSI!=n
326 default y 326 default y
327 327
328if SCSI_LOWLEVEL 328if SCSI_LOWLEVEL && SCSI
329 329
330config ISCSI_TCP 330config ISCSI_TCP
331 tristate "iSCSI Initiator over TCP/IP" 331 tristate "iSCSI Initiator over TCP/IP"
diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c
index f608d4a1d6da..792b2e807bf3 100644
--- a/drivers/scsi/a100u2w.c
+++ b/drivers/scsi/a100u2w.c
@@ -674,12 +674,13 @@ static struct orc_scb *__orc_alloc_scb(struct orc_host * host)
674 for (index = 0; index < 32; index++) { 674 for (index = 0; index < 32; index++) {
675 if ((host->allocation_map[channel][i] >> index) & 0x01) { 675 if ((host->allocation_map[channel][i] >> index) & 0x01) {
676 host->allocation_map[channel][i] &= ~(1 << index); 676 host->allocation_map[channel][i] &= ~(1 << index);
677 break; 677 idx = index + 32 * i;
678 /*
679 * Translate the index to a structure instance
680 */
681 return host->scb_virt + idx;
678 } 682 }
679 } 683 }
680 idx = index + 32 * i;
681 /* Translate the index to a structure instance */
682 return (struct orc_scb *) ((unsigned long) host->scb_virt + (idx * sizeof(struct orc_scb)));
683 } 684 }
684 return NULL; 685 return NULL;
685} 686}
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 3c2d6888bb8c..8591585e5cc5 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -6439,7 +6439,7 @@ static int AdvLoadMicrocode(AdvPortAddr iop_base, unsigned char *buf, int size,
6439 i += 2; 6439 i += 2;
6440 len += 2; 6440 len += 2;
6441 } else { 6441 } else {
6442 unsigned char off = buf[i] * 2; 6442 unsigned int off = buf[i] * 2;
6443 unsigned short word = (buf[off + 1] << 8) | buf[off]; 6443 unsigned short word = (buf[off + 1] << 8) | buf[off];
6444 AdvWriteWordAutoIncLram(iop_base, word); 6444 AdvWriteWordAutoIncLram(iop_base, word);
6445 len += 2; 6445 len += 2;
diff --git a/drivers/scsi/arcmsr/arcmsr.h b/drivers/scsi/arcmsr/arcmsr.h
index 0393707bdfce..3288be2e49f8 100644
--- a/drivers/scsi/arcmsr/arcmsr.h
+++ b/drivers/scsi/arcmsr/arcmsr.h
@@ -341,13 +341,13 @@ struct MessageUnit_B
341 uint32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; 341 uint32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE];
342 uint32_t postq_index; 342 uint32_t postq_index;
343 uint32_t doneq_index; 343 uint32_t doneq_index;
344 uint32_t __iomem *drv2iop_doorbell_reg; 344 void __iomem *drv2iop_doorbell_reg;
345 uint32_t __iomem *drv2iop_doorbell_mask_reg; 345 void __iomem *drv2iop_doorbell_mask_reg;
346 uint32_t __iomem *iop2drv_doorbell_reg; 346 void __iomem *iop2drv_doorbell_reg;
347 uint32_t __iomem *iop2drv_doorbell_mask_reg; 347 void __iomem *iop2drv_doorbell_mask_reg;
348 uint32_t __iomem *msgcode_rwbuffer_reg; 348 void __iomem *msgcode_rwbuffer_reg;
349 uint32_t __iomem *ioctl_wbuffer_reg; 349 void __iomem *ioctl_wbuffer_reg;
350 uint32_t __iomem *ioctl_rbuffer_reg; 350 void __iomem *ioctl_rbuffer_reg;
351}; 351};
352 352
353/* 353/*
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 27ebd336409b..0b2080d33575 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -493,6 +493,12 @@ int __gdth_execute(struct scsi_device *sdev, gdth_cmd_str *gdtcmd, char *cmnd,
493 if (!scp) 493 if (!scp)
494 return -ENOMEM; 494 return -ENOMEM;
495 495
496 scp->sense_buffer = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
497 if (!scp->sense_buffer) {
498 kfree(scp);
499 return -ENOMEM;
500 }
501
496 scp->device = sdev; 502 scp->device = sdev;
497 memset(&cmndinfo, 0, sizeof(cmndinfo)); 503 memset(&cmndinfo, 0, sizeof(cmndinfo));
498 504
@@ -513,6 +519,7 @@ int __gdth_execute(struct scsi_device *sdev, gdth_cmd_str *gdtcmd, char *cmnd,
513 rval = cmndinfo.status; 519 rval = cmndinfo.status;
514 if (info) 520 if (info)
515 *info = cmndinfo.info; 521 *info = cmndinfo.info;
522 kfree(scp->sense_buffer);
516 kfree(scp); 523 kfree(scp);
517 return rval; 524 return rval;
518} 525}
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index ba21d97d1855..f40898dc2d14 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -2162,10 +2162,15 @@ void sdev_evt_send(struct scsi_device *sdev, struct scsi_event *evt)
2162{ 2162{
2163 unsigned long flags; 2163 unsigned long flags;
2164 2164
2165#if 0
2166 /* FIXME: currently this check eliminates all media change events
2167 * for polled devices. Need to update to discriminate between AN
2168 * and polled events */
2165 if (!test_bit(evt->evt_type, sdev->supported_events)) { 2169 if (!test_bit(evt->evt_type, sdev->supported_events)) {
2166 kfree(evt); 2170 kfree(evt);
2167 return; 2171 return;
2168 } 2172 }
2173#endif
2169 2174
2170 spin_lock_irqsave(&sdev->list_lock, flags); 2175 spin_lock_irqsave(&sdev->list_lock, flags);
2171 list_add_tail(&evt->node, &sdev->event_list); 2176 list_add_tail(&evt->node, &sdev->event_list);
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index ed83cdb6e67d..b9b09a704584 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -294,6 +294,7 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work)
294 } 294 }
295 295
296 if (sdev->request_queue) { 296 if (sdev->request_queue) {
297 bsg_unregister_queue(sdev->request_queue);
297 sdev->request_queue->queuedata = NULL; 298 sdev->request_queue->queuedata = NULL;
298 /* user context needed to free queue */ 299 /* user context needed to free queue */
299 scsi_free_queue(sdev->request_queue); 300 scsi_free_queue(sdev->request_queue);
@@ -857,7 +858,6 @@ void __scsi_remove_device(struct scsi_device *sdev)
857 if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) 858 if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
858 return; 859 return;
859 860
860 bsg_unregister_queue(sdev->request_queue);
861 class_device_unregister(&sdev->sdev_classdev); 861 class_device_unregister(&sdev->sdev_classdev);
862 transport_remove_device(dev); 862 transport_remove_device(dev);
863 device_del(dev); 863 device_del(dev);
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 7aee64dbfbeb..5fe7aaed904c 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1654,6 +1654,7 @@ static int sd_probe(struct device *dev)
1654 sdkp->disk = gd; 1654 sdkp->disk = gd;
1655 sdkp->index = index; 1655 sdkp->index = index;
1656 sdkp->openers = 0; 1656 sdkp->openers = 0;
1657 sdkp->previous_state = 1;
1657 1658
1658 if (!sdp->timeout) { 1659 if (!sdp->timeout) {
1659 if (sdp->type != TYPE_MOD) 1660 if (sdp->type != TYPE_MOD)
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 208565bdbe8e..7ee86d4a7618 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -623,6 +623,7 @@ static int sr_probe(struct device *dev)
623 cd->disk = disk; 623 cd->disk = disk;
624 cd->capacity = 0x1fffff; 624 cd->capacity = 0x1fffff;
625 cd->device->changed = 1; /* force recheck CD type */ 625 cd->device->changed = 1; /* force recheck CD type */
626 cd->previous_state = 1;
626 cd->use = 1; 627 cd->use = 1;
627 cd->readcd_known = 0; 628 cd->readcd_known = 0;
628 cd->readcd_cdda = 0; 629 cd->readcd_cdda = 0;
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index a8bec498cad6..f97224ce59da 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -1214,13 +1214,6 @@ static struct pciserial_board pci_boards[] __devinitdata = {
1214 .base_baud = 115200, 1214 .base_baud = 115200,
1215 .uart_offset = 8, 1215 .uart_offset = 8,
1216 }, 1216 },
1217 [pbn_b0_8_115200] = {
1218 .flags = FL_BASE0,
1219 .num_ports = 8,
1220 .base_baud = 115200,
1221 .uart_offset = 8,
1222 },
1223
1224 [pbn_b0_1_921600] = { 1217 [pbn_b0_1_921600] = {
1225 .flags = FL_BASE0, 1218 .flags = FL_BASE0,
1226 .num_ports = 1, 1219 .num_ports = 1,
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index a8c116b80bff..9d244d1644e1 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -414,12 +414,12 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag)
414 defined(CONFIG_CPU_SUBTYPE_SH7785) 414 defined(CONFIG_CPU_SUBTYPE_SH7785)
415static inline int scif_txroom(struct uart_port *port) 415static inline int scif_txroom(struct uart_port *port)
416{ 416{
417 return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f); 417 return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0xff);
418} 418}
419 419
420static inline int scif_rxroom(struct uart_port *port) 420static inline int scif_rxroom(struct uart_port *port)
421{ 421{
422 return sci_in(port, SCRFDR) & 0x7f; 422 return sci_in(port, SCRFDR) & 0xff;
423} 423}
424#else 424#else
425static inline int scif_txroom(struct uart_port *port) 425static inline int scif_txroom(struct uart_port *port)
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c
index 29fcd6d0301d..a0aa33dde0a4 100644
--- a/drivers/sn/ioc3.c
+++ b/drivers/sn/ioc3.c
@@ -561,7 +561,7 @@ void ioc3_unregister_submodule(struct ioc3_submodule *is)
561 printk(KERN_WARNING 561 printk(KERN_WARNING
562 "%s: IOC3 submodule %s remove failed " 562 "%s: IOC3 submodule %s remove failed "
563 "for pci_dev %s.\n", 563 "for pci_dev %s.\n",
564 __FUNCTION__, module_name(is->owner), 564 __func__, module_name(is->owner),
565 pci_name(idd->pdev)); 565 pci_name(idd->pdev));
566 idd->active[is->id] = 0; 566 idd->active[is->id] = 0;
567 if(is->irq_mask) 567 if(is->irq_mask)
@@ -611,7 +611,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
611 if ((ret = pci_enable_device(pdev))) { 611 if ((ret = pci_enable_device(pdev))) {
612 printk(KERN_WARNING 612 printk(KERN_WARNING
613 "%s: Failed to enable IOC3 device for pci_dev %s.\n", 613 "%s: Failed to enable IOC3 device for pci_dev %s.\n",
614 __FUNCTION__, pci_name(pdev)); 614 __func__, pci_name(pdev));
615 goto out; 615 goto out;
616 } 616 }
617 pci_set_master(pdev); 617 pci_set_master(pdev);
@@ -623,7 +623,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
623 if (ret < 0) { 623 if (ret < 0) {
624 printk(KERN_WARNING "%s: Unable to obtain 64 bit DMA " 624 printk(KERN_WARNING "%s: Unable to obtain 64 bit DMA "
625 "for consistent allocations\n", 625 "for consistent allocations\n",
626 __FUNCTION__); 626 __func__);
627 } 627 }
628 } 628 }
629#endif 629#endif
@@ -633,7 +633,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
633 if (!idd) { 633 if (!idd) {
634 printk(KERN_WARNING 634 printk(KERN_WARNING
635 "%s: Failed to allocate IOC3 data for pci_dev %s.\n", 635 "%s: Failed to allocate IOC3 data for pci_dev %s.\n",
636 __FUNCTION__, pci_name(pdev)); 636 __func__, pci_name(pdev));
637 ret = -ENODEV; 637 ret = -ENODEV;
638 goto out_idd; 638 goto out_idd;
639 } 639 }
@@ -649,7 +649,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
649 printk(KERN_WARNING 649 printk(KERN_WARNING
650 "%s: Unable to find IOC3 resource " 650 "%s: Unable to find IOC3 resource "
651 "for pci_dev %s.\n", 651 "for pci_dev %s.\n",
652 __FUNCTION__, pci_name(pdev)); 652 __func__, pci_name(pdev));
653 ret = -ENODEV; 653 ret = -ENODEV;
654 goto out_pci; 654 goto out_pci;
655 } 655 }
@@ -657,7 +657,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
657 printk(KERN_WARNING 657 printk(KERN_WARNING
658 "%s: Unable to request IOC3 region " 658 "%s: Unable to request IOC3 region "
659 "for pci_dev %s.\n", 659 "for pci_dev %s.\n",
660 __FUNCTION__, pci_name(pdev)); 660 __func__, pci_name(pdev));
661 ret = -ENODEV; 661 ret = -ENODEV;
662 goto out_pci; 662 goto out_pci;
663 } 663 }
@@ -666,7 +666,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
666 printk(KERN_WARNING 666 printk(KERN_WARNING
667 "%s: Unable to remap IOC3 region " 667 "%s: Unable to remap IOC3 region "
668 "for pci_dev %s.\n", 668 "for pci_dev %s.\n",
669 __FUNCTION__, pci_name(pdev)); 669 __func__, pci_name(pdev));
670 ret = -ENODEV; 670 ret = -ENODEV;
671 goto out_misc_region; 671 goto out_misc_region;
672 } 672 }
@@ -709,7 +709,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
709 } else { 709 } else {
710 printk(KERN_WARNING 710 printk(KERN_WARNING
711 "%s : request_irq fails for IRQ 0x%x\n ", 711 "%s : request_irq fails for IRQ 0x%x\n ",
712 __FUNCTION__, pdev->irq); 712 __func__, pdev->irq);
713 } 713 }
714 if (!request_irq(pdev->irq+2, ioc3_intr_io, IRQF_SHARED, 714 if (!request_irq(pdev->irq+2, ioc3_intr_io, IRQF_SHARED,
715 "ioc3-io", (void *)idd)) { 715 "ioc3-io", (void *)idd)) {
@@ -717,7 +717,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
717 } else { 717 } else {
718 printk(KERN_WARNING 718 printk(KERN_WARNING
719 "%s : request_irq fails for IRQ 0x%x\n ", 719 "%s : request_irq fails for IRQ 0x%x\n ",
720 __FUNCTION__, pdev->irq+2); 720 __func__, pdev->irq+2);
721 } 721 }
722 } else { 722 } else {
723 if (!request_irq(pdev->irq, ioc3_intr_io, IRQF_SHARED, 723 if (!request_irq(pdev->irq, ioc3_intr_io, IRQF_SHARED,
@@ -726,7 +726,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
726 } else { 726 } else {
727 printk(KERN_WARNING 727 printk(KERN_WARNING
728 "%s : request_irq fails for IRQ 0x%x\n ", 728 "%s : request_irq fails for IRQ 0x%x\n ",
729 __FUNCTION__, pdev->irq); 729 __func__, pdev->irq);
730 } 730 }
731 } 731 }
732 732
@@ -769,7 +769,7 @@ static void ioc3_remove(struct pci_dev *pdev)
769 printk(KERN_WARNING 769 printk(KERN_WARNING
770 "%s: IOC3 submodule 0x%s remove failed " 770 "%s: IOC3 submodule 0x%s remove failed "
771 "for pci_dev %s.\n", 771 "for pci_dev %s.\n",
772 __FUNCTION__, 772 __func__,
773 module_name(ioc3_submodules[id]->owner), 773 module_name(ioc3_submodules[id]->owner),
774 pci_name(pdev)); 774 pci_name(pdev));
775 idd->active[id] = 0; 775 idd->active[id] = 0;
diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c
index c47a650183a1..41a3d00c4515 100644
--- a/drivers/spi/au1550_spi.c
+++ b/drivers/spi/au1550_spi.c
@@ -99,7 +99,7 @@ static dbdev_tab_t au1550_spi_mem_dbdev =
99static void au1550_spi_bits_handlers_set(struct au1550_spi *hw, int bpw); 99static void au1550_spi_bits_handlers_set(struct au1550_spi *hw, int bpw);
100 100
101 101
102/** 102/*
103 * compute BRG and DIV bits to setup spi clock based on main input clock rate 103 * compute BRG and DIV bits to setup spi clock based on main input clock rate
104 * that was specified in platform data structure 104 * that was specified in platform data structure
105 * according to au1550 datasheet: 105 * according to au1550 datasheet:
@@ -650,7 +650,7 @@ static int au1550_spi_txrx_bufs(struct spi_device *spi, struct spi_transfer *t)
650 return hw->txrx_bufs(spi, t); 650 return hw->txrx_bufs(spi, t);
651} 651}
652 652
653static irqreturn_t au1550_spi_irq(int irq, void *dev, struct pt_regs *regs) 653static irqreturn_t au1550_spi_irq(int irq, void *dev)
654{ 654{
655 struct au1550_spi *hw = dev; 655 struct au1550_spi *hw = dev;
656 return hw->irq_callback(hw); 656 return hw->irq_callback(hw);
diff --git a/drivers/spi/spi_bitbang.c b/drivers/spi/spi_bitbang.c
index f7f8580edad8..71e881419cdd 100644
--- a/drivers/spi/spi_bitbang.c
+++ b/drivers/spi/spi_bitbang.c
@@ -344,12 +344,14 @@ static void bitbang_work(struct work_struct *work)
344 t->rx_dma = t->tx_dma = 0; 344 t->rx_dma = t->tx_dma = 0;
345 status = bitbang->txrx_bufs(spi, t); 345 status = bitbang->txrx_bufs(spi, t);
346 } 346 }
347 if (status > 0)
348 m->actual_length += status;
347 if (status != t->len) { 349 if (status != t->len) {
348 if (status > 0) 350 /* always report some kind of error */
349 status = -EMSGSIZE; 351 if (status >= 0)
352 status = -EREMOTEIO;
350 break; 353 break;
351 } 354 }
352 m->actual_length += status;
353 status = 0; 355 status = 0;
354 356
355 /* protocol tweaks before next transfer */ 357 /* protocol tweaks before next transfer */
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 69f19f224875..17e71d56f31e 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -4,7 +4,6 @@
4 4
5menuconfig THERMAL 5menuconfig THERMAL
6 bool "Generic Thermal sysfs driver" 6 bool "Generic Thermal sysfs driver"
7 default y
8 help 7 help
9 Generic Thermal Sysfs driver offers a generic mechanism for 8 Generic Thermal Sysfs driver offers a generic mechanism for
10 thermal management. Usually it's made up of one or more thermal 9 thermal management. Usually it's made up of one or more thermal
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index e8a01f264540..11759080ca54 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -470,6 +470,8 @@ static int uio_mmap_physical(struct vm_area_struct *vma)
470 470
471 vma->vm_flags |= VM_IO | VM_RESERVED; 471 vma->vm_flags |= VM_IO | VM_RESERVED;
472 472
473 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
474
473 return remap_pfn_range(vma, 475 return remap_pfn_range(vma,
474 vma->vm_start, 476 vma->vm_start,
475 idev->info->mem[mi].addr >> PAGE_SHIFT, 477 idev->info->mem[mi].addr >> PAGE_SHIFT,
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index fefb92296e8f..c311f67b7f08 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1206,7 +1206,10 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate)
1206 return -EINVAL; 1206 return -EINVAL;
1207 } 1207 }
1208 1208
1209 ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), 1209 if (dev->quirks & USB_QUIRK_NO_SET_INTF)
1210 ret = -EPIPE;
1211 else
1212 ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
1210 USB_REQ_SET_INTERFACE, USB_RECIP_INTERFACE, 1213 USB_REQ_SET_INTERFACE, USB_RECIP_INTERFACE,
1211 alternate, interface, NULL, 0, 5000); 1214 alternate, interface, NULL, 0, 5000);
1212 1215
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index d9d1eb19f2a1..dfc5418ea10c 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
50 /* M-Systems Flash Disk Pioneers */ 50 /* M-Systems Flash Disk Pioneers */
51 { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, 51 { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
52 52
53 /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */
54 { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF },
55
53 /* Action Semiconductor flash disk */ 56 /* Action Semiconductor flash disk */
54 { USB_DEVICE(0x10d6, 0x2200), .driver_info = 57 { USB_DEVICE(0x10d6, 0x2200), .driver_info =
55 USB_QUIRK_STRING_FETCH_255 }, 58 USB_QUIRK_STRING_FETCH_255 },
diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c
index 805602a687cb..0a6feafc8d28 100644
--- a/drivers/usb/gadget/inode.c
+++ b/drivers/usb/gadget/inode.c
@@ -1458,7 +1458,7 @@ gadgetfs_setup (struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
1458 /* currently one config, two speeds */ 1458 /* currently one config, two speeds */
1459 case USB_REQ_SET_CONFIGURATION: 1459 case USB_REQ_SET_CONFIGURATION:
1460 if (ctrl->bRequestType != 0) 1460 if (ctrl->bRequestType != 0)
1461 break; 1461 goto unrecognized;
1462 if (0 == (u8) w_value) { 1462 if (0 == (u8) w_value) {
1463 value = 0; 1463 value = 0;
1464 dev->current_config = 0; 1464 dev->current_config = 0;
@@ -1505,7 +1505,7 @@ gadgetfs_setup (struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
1505 /* PXA automagically handles this request too */ 1505 /* PXA automagically handles this request too */
1506 case USB_REQ_GET_CONFIGURATION: 1506 case USB_REQ_GET_CONFIGURATION:
1507 if (ctrl->bRequestType != 0x80) 1507 if (ctrl->bRequestType != 0x80)
1508 break; 1508 goto unrecognized;
1509 *(u8 *)req->buf = dev->current_config; 1509 *(u8 *)req->buf = dev->current_config;
1510 value = min (w_length, (u16) 1); 1510 value = min (w_length, (u16) 1);
1511 break; 1511 break;
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 3ba01664f821..72ccd56e36dd 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -152,6 +152,20 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
152 break; 152 break;
153 } 153 }
154 break; 154 break;
155 case PCI_VENDOR_ID_VIA:
156 if (pdev->device == 0x3104 && (pdev->revision & 0xf0) == 0x60) {
157 u8 tmp;
158
159 /* The VT6212 defaults to a 1 usec EHCI sleep time which
160 * hogs the PCI bus *badly*. Setting bit 5 of 0x4B makes
161 * that sleep time use the conventional 10 usec.
162 */
163 pci_read_config_byte(pdev, 0x4b, &tmp);
164 if (tmp & 0x20)
165 break;
166 pci_write_config_byte(pdev, 0x4b, tmp | 0x20);
167 }
168 break;
155 } 169 }
156 170
157 ehci_reset(ehci); 171 ehci_reset(ehci);
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index ae3ec1a64008..2af778555bdc 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -55,6 +55,7 @@ static struct usb_device_id id_table [] = {
55 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_DCU11) }, 55 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_DCU11) },
56 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) }, 56 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) },
57 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) }, 57 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) },
58 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) },
58 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 59 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
59 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, 60 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
60 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, 61 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 237a41f6638a..10cf872e5ecb 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -13,6 +13,7 @@
13#define PL2303_PRODUCT_ID_DCU11 0x1234 13#define PL2303_PRODUCT_ID_DCU11 0x1234
14#define PL2303_PRODUCT_ID_PHAROS 0xaaa0 14#define PL2303_PRODUCT_ID_PHAROS 0xaaa0
15#define PL2303_PRODUCT_ID_RSAQ3 0xaaa2 15#define PL2303_PRODUCT_ID_RSAQ3 0xaaa2
16#define PL2303_PRODUCT_ID_ALDIGA 0x0611
16 17
17#define ATEN_VENDOR_ID 0x0557 18#define ATEN_VENDOR_ID 0x0557
18#define ATEN_VENDOR_ID2 0x0547 19#define ATEN_VENDOR_ID2 0x0547
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index e3d44ae8d448..ed678811e6a6 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -14,7 +14,7 @@
14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org> 14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org>
15*/ 15*/
16 16
17#define DRIVER_VERSION "v.1.2.7" 17#define DRIVER_VERSION "v.1.2.8"
18#define DRIVER_AUTHOR "Kevin Lloyd <linux@sierrawireless.com>" 18#define DRIVER_AUTHOR "Kevin Lloyd <linux@sierrawireless.com>"
19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
20 20
@@ -163,6 +163,7 @@ static struct usb_device_id id_table [] = {
163 { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ 163 { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */
164 { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 & AC 875U */ 164 { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 & AC 875U */
165 { USB_DEVICE(0x1199, 0x6813) }, /* Sierra Wireless MC8775 (Thinkpad internal) */ 165 { USB_DEVICE(0x1199, 0x6813) }, /* Sierra Wireless MC8775 (Thinkpad internal) */
166 { USB_DEVICE(0x1199, 0x6815) }, /* Sierra Wireless MC8775 */
166 { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ 167 { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */
167 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780*/ 168 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780*/
168 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781*/ 169 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781*/
@@ -196,9 +197,9 @@ struct sierra_port_private {
196 spinlock_t lock; /* lock the structure */ 197 spinlock_t lock; /* lock the structure */
197 int outstanding_urbs; /* number of out urbs in flight */ 198 int outstanding_urbs; /* number of out urbs in flight */
198 199
199 /* Input endpoints and buffer for this port */ 200 /* Input endpoints and buffers for this port */
200 struct urb *in_urbs[N_IN_URB]; 201 struct urb *in_urbs[N_IN_URB];
201 char in_buffer[N_IN_URB][IN_BUFLEN]; 202 char *in_buffer[N_IN_URB];
202 203
203 /* Settings for the port */ 204 /* Settings for the port */
204 int rts_state; /* Handshaking pins (outputs) */ 205 int rts_state; /* Handshaking pins (outputs) */
@@ -638,6 +639,15 @@ static int sierra_startup(struct usb_serial *serial)
638 return -ENOMEM; 639 return -ENOMEM;
639 } 640 }
640 spin_lock_init(&portdata->lock); 641 spin_lock_init(&portdata->lock);
642 for (j = 0; j < N_IN_URB; j++) {
643 portdata->in_buffer[j] = kmalloc(IN_BUFLEN, GFP_KERNEL);
644 if (!portdata->in_buffer[j]) {
645 for (--j; j >= 0; j--)
646 kfree(portdata->in_buffer[j]);
647 kfree(portdata);
648 return -ENOMEM;
649 }
650 }
641 651
642 usb_set_serial_port_data(port, portdata); 652 usb_set_serial_port_data(port, portdata);
643 653
@@ -681,7 +691,7 @@ static void sierra_shutdown(struct usb_serial *serial)
681 for (j = 0; j < N_IN_URB; j++) { 691 for (j = 0; j < N_IN_URB; j++) {
682 usb_kill_urb(portdata->in_urbs[j]); 692 usb_kill_urb(portdata->in_urbs[j]);
683 usb_free_urb(portdata->in_urbs[j]); 693 usb_free_urb(portdata->in_urbs[j]);
684 portdata->in_urbs[j] = NULL; 694 kfree(portdata->in_buffer[j]);
685 } 695 }
686 kfree(portdata); 696 kfree(portdata);
687 usb_set_serial_port_data(port, NULL); 697 usb_set_serial_port_data(port, NULL);
diff --git a/drivers/usb/storage/isd200.c b/drivers/usb/storage/isd200.c
index 2ae1e8673b19..971d13dd5e65 100644
--- a/drivers/usb/storage/isd200.c
+++ b/drivers/usb/storage/isd200.c
@@ -1230,6 +1230,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
1230 1230
1231 /* Free driver structure */ 1231 /* Free driver structure */
1232 us->extra_destructor(info); 1232 us->extra_destructor(info);
1233 kfree(info);
1233 us->extra = NULL; 1234 us->extra = NULL;
1234 us->extra_destructor = NULL; 1235 us->extra_destructor = NULL;
1235 } 1236 }
@@ -1469,6 +1470,7 @@ static void isd200_free_info_ptrs(void *info_)
1469 if (info) { 1470 if (info) {
1470 kfree(info->id); 1471 kfree(info->id);
1471 kfree(info->RegsBuf); 1472 kfree(info->RegsBuf);
1473 kfree(info->srb.sense_buffer);
1472 } 1474 }
1473} 1475}
1474 1476
@@ -1494,7 +1496,9 @@ static int isd200_init_info(struct us_data *us)
1494 kzalloc(sizeof(struct hd_driveid), GFP_KERNEL); 1496 kzalloc(sizeof(struct hd_driveid), GFP_KERNEL);
1495 info->RegsBuf = (unsigned char *) 1497 info->RegsBuf = (unsigned char *)
1496 kmalloc(sizeof(info->ATARegs), GFP_KERNEL); 1498 kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
1497 if (!info->id || !info->RegsBuf) { 1499 info->srb.sense_buffer =
1500 kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
1501 if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) {
1498 isd200_free_info_ptrs(info); 1502 isd200_free_info_ptrs(info);
1499 kfree(info); 1503 kfree(info);
1500 retStatus = ISD200_ERROR; 1504 retStatus = ISD200_ERROR;
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index 5780ed15f1ad..bdd4334bed5a 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -1009,7 +1009,8 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
1009 US_DEBUGP("Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n", 1009 US_DEBUGP("Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n",
1010 le32_to_cpu(bcs->Signature), bcs->Tag, 1010 le32_to_cpu(bcs->Signature), bcs->Tag,
1011 residue, bcs->Status); 1011 residue, bcs->Status);
1012 if (bcs->Tag != us->tag || bcs->Status > US_BULK_STAT_PHASE) { 1012 if (!(bcs->Tag == us->tag || (us->flags & US_FL_BULK_IGNORE_TAG)) ||
1013 bcs->Status > US_BULK_STAT_PHASE) {
1013 US_DEBUGP("Bulk logical error\n"); 1014 US_DEBUGP("Bulk logical error\n");
1014 return USB_STOR_TRANSPORT_ERROR; 1015 return USB_STOR_TRANSPORT_ERROR;
1015 } 1016 }
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 99679a8cfa02..e5219a56947c 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1589,6 +1589,17 @@ UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0001,
1589 US_SC_DEVICE, US_PR_DEVICE, NULL, 1589 US_SC_DEVICE, US_PR_DEVICE, NULL,
1590 US_FL_FIX_CAPACITY), 1590 US_FL_FIX_CAPACITY),
1591 1591
1592/*
1593 * Patch by Constantin Baranov <const@tltsu.ru>
1594 * Report by Andreas Koenecke.
1595 * Motorola ROKR Z6.
1596 */
1597UNUSUAL_DEV( 0x22b8, 0x6426, 0x0101, 0x0101,
1598 "Motorola",
1599 "MSnc.",
1600 US_SC_DEVICE, US_PR_DEVICE, NULL,
1601 US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG),
1602
1592/* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */ 1603/* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */
1593UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, 1604UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999,
1594 "MPIO", 1605 "MPIO",
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index e0b0580705e4..1bd5fb30237d 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1893,6 +1893,20 @@ config FB_XILINX
1893 framebuffer. ML300 carries a 640*480 LCD display on the board, 1893 framebuffer. ML300 carries a 640*480 LCD display on the board,
1894 ML403 uses a standard DB15 VGA connector. 1894 ML403 uses a standard DB15 VGA connector.
1895 1895
1896config FB_METRONOME
1897 tristate "Metronome display controller support"
1898 depends on FB && ARCH_PXA && MMU
1899 select FB_SYS_FILLRECT
1900 select FB_SYS_COPYAREA
1901 select FB_SYS_IMAGEBLIT
1902 select FB_SYS_FOPS
1903 select FB_DEFERRED_IO
1904 help
1905 This enables support for the Metronome display controller. Tested
1906 with an E-Ink 800x600 display and Gumstix Connex through an AMLCD
1907 interface. Please read <file:Documentation/fb/metronomefb.txt>
1908 for more information.
1909
1896config FB_VIRTUAL 1910config FB_VIRTUAL
1897 tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)" 1911 tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)"
1898 depends on FB 1912 depends on FB
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 03371c789039..11c0e5e05f21 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -103,6 +103,7 @@ obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o
103obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o 103obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o
104obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o 104obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o
105obj-$(CONFIG_FB_MAXINE) += maxinefb.o 105obj-$(CONFIG_FB_MAXINE) += maxinefb.o
106obj-$(CONFIG_FB_METRONOME) += metronomefb.o
106obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o 107obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o
107obj-$(CONFIG_FB_IMX) += imxfb.o 108obj-$(CONFIG_FB_IMX) += imxfb.o
108obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o 109obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 986a550c0439..eefba3d0e4b9 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -384,7 +384,7 @@ static int bfin_bf54x_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
384 * Other flags can be set, and are documented in 384 * Other flags can be set, and are documented in
385 * include/linux/mm.h 385 * include/linux/mm.h
386 */ 386 */
387 vma->vm_flags |= VM_MAYSHARE; 387 vma->vm_flags |= VM_MAYSHARE | VM_SHARED;
388 388
389 return 0; 389 return 0;
390} 390}
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c
index a2bb2de9e020..135d6dd7e672 100644
--- a/drivers/video/bfin-t350mcqb-fb.c
+++ b/drivers/video/bfin-t350mcqb-fb.c
@@ -91,6 +91,7 @@ struct bfin_t350mcqbfb_info {
91 int lq043_open_cnt; 91 int lq043_open_cnt;
92 int irq; 92 int irq;
93 spinlock_t lock; /* lock */ 93 spinlock_t lock; /* lock */
94 u32 pseudo_pal[16];
94}; 95};
95 96
96static int nocursor; 97static int nocursor;
@@ -182,13 +183,13 @@ static void bfin_t350mcqb_config_dma(struct bfin_t350mcqbfb_info *fbi)
182 183
183} 184}
184 185
185static int bfin_t350mcqb_request_ports(int action) 186static u16 ppi0_req_8[] = {P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2,
186{
187 u16 ppi0_req_8[] = {P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2,
188 P_PPI0_D0, P_PPI0_D1, P_PPI0_D2, 187 P_PPI0_D0, P_PPI0_D1, P_PPI0_D2,
189 P_PPI0_D3, P_PPI0_D4, P_PPI0_D5, 188 P_PPI0_D3, P_PPI0_D4, P_PPI0_D5,
190 P_PPI0_D6, P_PPI0_D7, 0}; 189 P_PPI0_D6, P_PPI0_D7, 0};
191 190
191static int bfin_t350mcqb_request_ports(int action)
192{
192 if (action) { 193 if (action) {
193 if (peripheral_request_list(ppi0_req_8, DRIVER_NAME)) { 194 if (peripheral_request_list(ppi0_req_8, DRIVER_NAME)) {
194 printk(KERN_ERR "Requesting Peripherals faild\n"); 195 printk(KERN_ERR "Requesting Peripherals faild\n");
@@ -301,7 +302,7 @@ static int bfin_t350mcqb_fb_mmap(struct fb_info *info, struct vm_area_struct *vm
301 * Other flags can be set, and are documented in 302 * Other flags can be set, and are documented in
302 * include/linux/mm.h 303 * include/linux/mm.h
303 */ 304 */
304 vma->vm_flags |= VM_MAYSHARE; 305 vma->vm_flags |= VM_MAYSHARE | VM_SHARED;
305 306
306 return 0; 307 return 0;
307} 308}
@@ -520,16 +521,7 @@ static int __init bfin_t350mcqb_probe(struct platform_device *pdev)
520 521
521 fbinfo->fbops = &bfin_t350mcqb_fb_ops; 522 fbinfo->fbops = &bfin_t350mcqb_fb_ops;
522 523
523 fbinfo->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); 524 fbinfo->pseudo_palette = &info->pseudo_pal;
524 if (!fbinfo->pseudo_palette) {
525 printk(KERN_ERR DRIVER_NAME
526 "Fail to allocate pseudo_palette\n");
527
528 ret = -ENOMEM;
529 goto out4;
530 }
531
532 memset(fbinfo->pseudo_palette, 0, sizeof(u32) * 16);
533 525
534 if (fb_alloc_cmap(&fbinfo->cmap, BFIN_LCD_NBR_PALETTE_ENTRIES, 0) 526 if (fb_alloc_cmap(&fbinfo->cmap, BFIN_LCD_NBR_PALETTE_ENTRIES, 0)
535 < 0) { 527 < 0) {
@@ -537,7 +529,7 @@ static int __init bfin_t350mcqb_probe(struct platform_device *pdev)
537 "Fail to allocate colormap (%d entries)\n", 529 "Fail to allocate colormap (%d entries)\n",
538 BFIN_LCD_NBR_PALETTE_ENTRIES); 530 BFIN_LCD_NBR_PALETTE_ENTRIES);
539 ret = -EFAULT; 531 ret = -EFAULT;
540 goto out5; 532 goto out4;
541 } 533 }
542 534
543 if (bfin_t350mcqb_request_ports(1)) { 535 if (bfin_t350mcqb_request_ports(1)) {
@@ -552,11 +544,11 @@ static int __init bfin_t350mcqb_probe(struct platform_device *pdev)
552 goto out7; 544 goto out7;
553 } 545 }
554 546
555 if (request_irq(info->irq, (void *)bfin_t350mcqb_irq_error, IRQF_DISABLED, 547 ret = request_irq(info->irq, bfin_t350mcqb_irq_error, IRQF_DISABLED,
556 "PPI ERROR", info) < 0) { 548 "PPI ERROR", info);
549 if (ret < 0) {
557 printk(KERN_ERR DRIVER_NAME 550 printk(KERN_ERR DRIVER_NAME
558 ": unable to request PPI ERROR IRQ\n"); 551 ": unable to request PPI ERROR IRQ\n");
559 ret = -EFAULT;
560 goto out7; 552 goto out7;
561 } 553 }
562 554
@@ -584,8 +576,6 @@ out7:
584 bfin_t350mcqb_request_ports(0); 576 bfin_t350mcqb_request_ports(0);
585out6: 577out6:
586 fb_dealloc_cmap(&fbinfo->cmap); 578 fb_dealloc_cmap(&fbinfo->cmap);
587out5:
588 kfree(fbinfo->pseudo_palette);
589out4: 579out4:
590 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, 580 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
591 info->dma_handle); 581 info->dma_handle);
@@ -605,6 +595,8 @@ static int bfin_t350mcqb_remove(struct platform_device *pdev)
605 struct fb_info *fbinfo = platform_get_drvdata(pdev); 595 struct fb_info *fbinfo = platform_get_drvdata(pdev);
606 struct bfin_t350mcqbfb_info *info = fbinfo->par; 596 struct bfin_t350mcqbfb_info *info = fbinfo->par;
607 597
598 unregister_framebuffer(fbinfo);
599
608 free_dma(CH_PPI); 600 free_dma(CH_PPI);
609 free_irq(info->irq, info); 601 free_irq(info->irq, info);
610 602
@@ -612,7 +604,6 @@ static int bfin_t350mcqb_remove(struct platform_device *pdev)
612 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, 604 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
613 info->dma_handle); 605 info->dma_handle);
614 606
615 kfree(fbinfo->pseudo_palette);
616 fb_dealloc_cmap(&fbinfo->cmap); 607 fb_dealloc_cmap(&fbinfo->cmap);
617 608
618#ifndef NO_BL_SUPPORT 609#ifndef NO_BL_SUPPORT
@@ -620,10 +611,11 @@ static int bfin_t350mcqb_remove(struct platform_device *pdev)
620 backlight_device_unregister(bl_dev); 611 backlight_device_unregister(bl_dev);
621#endif 612#endif
622 613
623 unregister_framebuffer(fbinfo);
624
625 bfin_t350mcqb_request_ports(0); 614 bfin_t350mcqb_request_ports(0);
626 615
616 platform_set_drvdata(pdev, NULL);
617 framebuffer_release(fbinfo);
618
627 printk(KERN_INFO DRIVER_NAME ": Unregister LCD driver.\n"); 619 printk(KERN_INFO DRIVER_NAME ": Unregister LCD driver.\n");
628 620
629 return 0; 621 return 0;
diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
index 0f8cfb988c90..24843fdd5395 100644
--- a/drivers/video/fb_defio.c
+++ b/drivers/video/fb_defio.c
@@ -4,7 +4,7 @@
4 * Copyright (C) 2006 Jaya Kumar 4 * Copyright (C) 2006 Jaya Kumar
5 * 5 *
6 * This file is subject to the terms and conditions of the GNU General Public 6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive 7 * License. See the file COPYING in the main directory of this archive
8 * for more details. 8 * for more details.
9 */ 9 */
10 10
@@ -31,7 +31,7 @@ static int fb_deferred_io_fault(struct vm_area_struct *vma,
31 unsigned long offset; 31 unsigned long offset;
32 struct page *page; 32 struct page *page;
33 struct fb_info *info = vma->vm_private_data; 33 struct fb_info *info = vma->vm_private_data;
34 /* info->screen_base is in System RAM */ 34 /* info->screen_base is virtual memory */
35 void *screen_base = (void __force *) info->screen_base; 35 void *screen_base = (void __force *) info->screen_base;
36 36
37 offset = vmf->pgoff << PAGE_SHIFT; 37 offset = vmf->pgoff << PAGE_SHIFT;
@@ -43,6 +43,15 @@ static int fb_deferred_io_fault(struct vm_area_struct *vma,
43 return VM_FAULT_SIGBUS; 43 return VM_FAULT_SIGBUS;
44 44
45 get_page(page); 45 get_page(page);
46
47 if (vma->vm_file)
48 page->mapping = vma->vm_file->f_mapping;
49 else
50 printk(KERN_ERR "no mapping available\n");
51
52 BUG_ON(!page->mapping);
53 page->index = vmf->pgoff;
54
46 vmf->page = page; 55 vmf->page = page;
47 return 0; 56 return 0;
48} 57}
@@ -138,11 +147,20 @@ EXPORT_SYMBOL_GPL(fb_deferred_io_init);
138 147
139void fb_deferred_io_cleanup(struct fb_info *info) 148void fb_deferred_io_cleanup(struct fb_info *info)
140{ 149{
150 void *screen_base = (void __force *) info->screen_base;
141 struct fb_deferred_io *fbdefio = info->fbdefio; 151 struct fb_deferred_io *fbdefio = info->fbdefio;
152 struct page *page;
153 int i;
142 154
143 BUG_ON(!fbdefio); 155 BUG_ON(!fbdefio);
144 cancel_delayed_work(&info->deferred_work); 156 cancel_delayed_work(&info->deferred_work);
145 flush_scheduled_work(); 157 flush_scheduled_work();
158
159 /* clear out the mapping that we setup */
160 for (i = 0 ; i < info->fix.smem_len; i += PAGE_SIZE) {
161 page = vmalloc_to_page(screen_base + i);
162 page->mapping = NULL;
163 }
146} 164}
147EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); 165EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
148 166
diff --git a/drivers/video/i810/i810_main.c b/drivers/video/i810/i810_main.c
index 1d13dd099af8..a24e680d2b9c 100644
--- a/drivers/video/i810/i810_main.c
+++ b/drivers/video/i810/i810_main.c
@@ -1476,7 +1476,7 @@ static int i810fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1476 struct i810fb_par *par = info->par; 1476 struct i810fb_par *par = info->par;
1477 u8 __iomem *mmio = par->mmio_start_virtual; 1477 u8 __iomem *mmio = par->mmio_start_virtual;
1478 1478
1479 if (!(par->dev_flags & LOCKUP)) 1479 if (par->dev_flags & LOCKUP)
1480 return -ENXIO; 1480 return -ENXIO;
1481 1481
1482 if (cursor->image.width > 64 || cursor->image.height > 64) 1482 if (cursor->image.width > 64 || cursor->image.height > 64)
diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c
new file mode 100644
index 000000000000..e9a89fd82757
--- /dev/null
+++ b/drivers/video/metronomefb.c
@@ -0,0 +1,999 @@
1/*
2 * linux/drivers/video/metronomefb.c -- FB driver for Metronome controller
3 *
4 * Copyright (C) 2008, Jaya Kumar
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 *
10 * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven.
11 *
12 * This work was made possible by help and equipment support from E-Ink
13 * Corporation. http://support.eink.com/community
14 *
15 * This driver is written to be used with the Metronome display controller.
16 * It was tested with an E-Ink 800x600 Vizplex EPD on a Gumstix Connex board
17 * using the Lyre interface board.
18 *
19 * General notes:
20 * - User must set metronomefb_enable=1 to enable it.
21 * - See Documentation/fb/metronomefb.txt for how metronome works.
22 */
23#include <linux/module.h>
24#include <linux/kernel.h>
25#include <linux/errno.h>
26#include <linux/string.h>
27#include <linux/mm.h>
28#include <linux/slab.h>
29#include <linux/vmalloc.h>
30#include <linux/delay.h>
31#include <linux/interrupt.h>
32#include <linux/fb.h>
33#include <linux/init.h>
34#include <linux/platform_device.h>
35#include <linux/list.h>
36#include <linux/firmware.h>
37#include <linux/dma-mapping.h>
38#include <linux/uaccess.h>
39#include <linux/irq.h>
40
41#include <asm/arch/pxa-regs.h>
42#include <asm/unaligned.h>
43
44#define DEBUG 1
45#ifdef DEBUG
46#define DPRINTK(f, a...) printk(KERN_DEBUG "%s: " f, __func__ , ## a)
47#else
48#define DPRINTK(f, a...)
49#endif
50
51
52/* Display specific information */
53#define DPY_W 832
54#define DPY_H 622
55
56struct metromem_desc {
57 u32 mFDADR0;
58 u32 mFSADR0;
59 u32 mFIDR0;
60 u32 mLDCMD0;
61};
62
63struct metromem_cmd {
64 u16 opcode;
65 u16 args[((64-2)/2)];
66 u16 csum;
67};
68
69struct metronomefb_par {
70 unsigned char *metromem;
71 struct metromem_desc *metromem_desc;
72 struct metromem_cmd *metromem_cmd;
73 unsigned char *metromem_wfm;
74 unsigned char *metromem_img;
75 u16 *metromem_img_csum;
76 u16 *csum_table;
77 int metromemsize;
78 dma_addr_t metromem_dma;
79 dma_addr_t metromem_desc_dma;
80 struct fb_info *info;
81 wait_queue_head_t waitq;
82 u8 frame_count;
83};
84
85/* frame differs from image. frame includes non-visible pixels */
86struct epd_frame {
87 int fw; /* frame width */
88 int fh; /* frame height */
89};
90
91static struct epd_frame epd_frame_table[] = {
92 {
93 .fw = 832,
94 .fh = 622
95 },
96};
97
98static struct fb_fix_screeninfo metronomefb_fix __devinitdata = {
99 .id = "metronomefb",
100 .type = FB_TYPE_PACKED_PIXELS,
101 .visual = FB_VISUAL_STATIC_PSEUDOCOLOR,
102 .xpanstep = 0,
103 .ypanstep = 0,
104 .ywrapstep = 0,
105 .line_length = DPY_W,
106 .accel = FB_ACCEL_NONE,
107};
108
109static struct fb_var_screeninfo metronomefb_var __devinitdata = {
110 .xres = DPY_W,
111 .yres = DPY_H,
112 .xres_virtual = DPY_W,
113 .yres_virtual = DPY_H,
114 .bits_per_pixel = 8,
115 .grayscale = 1,
116 .nonstd = 1,
117 .red = { 4, 3, 0 },
118 .green = { 0, 0, 0 },
119 .blue = { 0, 0, 0 },
120 .transp = { 0, 0, 0 },
121};
122
123static unsigned int metronomefb_enable;
124
125struct waveform_hdr {
126 u8 stuff[32];
127
128 u8 wmta[3];
129 u8 fvsn;
130
131 u8 luts;
132 u8 mc;
133 u8 trc;
134 u8 stuff3;
135
136 u8 endb;
137 u8 swtb;
138 u8 stuff2a[2];
139
140 u8 stuff2b[3];
141 u8 wfm_cs;
142} __attribute__ ((packed));
143
144/* main metronomefb functions */
145static u8 calc_cksum(int start, int end, u8 *mem)
146{
147 u8 tmp = 0;
148 int i;
149
150 for (i = start; i < end; i++)
151 tmp += mem[i];
152
153 return tmp;
154}
155
156static u16 calc_img_cksum(u16 *start, int length)
157{
158 u16 tmp = 0;
159
160 while (length--)
161 tmp += *start++;
162
163 return tmp;
164}
165
166/* here we decode the incoming waveform file and populate metromem */
167#define EXP_WFORM_SIZE 47001
168static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
169 u8 *frame_count)
170{
171 int tta;
172 int wmta;
173 int trn = 0;
174 int i;
175 unsigned char v;
176 u8 cksum;
177 int cksum_idx;
178 int wfm_idx, owfm_idx;
179 int mem_idx = 0;
180 struct waveform_hdr *wfm_hdr;
181
182 if (size != EXP_WFORM_SIZE) {
183 printk(KERN_ERR "Error: unexpected size %d != %d\n", size,
184 EXP_WFORM_SIZE);
185 return -EINVAL;
186 }
187
188 wfm_hdr = (struct waveform_hdr *) mem;
189
190 if (wfm_hdr->fvsn != 1) {
191 printk(KERN_ERR "Error: bad fvsn %x\n", wfm_hdr->fvsn);
192 return -EINVAL;
193 }
194 if (wfm_hdr->luts != 0) {
195 printk(KERN_ERR "Error: bad luts %x\n", wfm_hdr->luts);
196 return -EINVAL;
197 }
198 cksum = calc_cksum(32, 47, mem);
199 if (cksum != wfm_hdr->wfm_cs) {
200 printk(KERN_ERR "Error: bad cksum %x != %x\n", cksum,
201 wfm_hdr->wfm_cs);
202 return -EINVAL;
203 }
204 wfm_hdr->mc += 1;
205 wfm_hdr->trc += 1;
206 for (i = 0; i < 5; i++) {
207 if (*(wfm_hdr->stuff2a + i) != 0) {
208 printk(KERN_ERR "Error: unexpected value in padding\n");
209 return -EINVAL;
210 }
211 }
212
213 /* calculating trn. trn is something used to index into
214 the waveform. presumably selecting the right one for the
215 desired temperature. it works out the offset of the first
216 v that exceeds the specified temperature */
217 if ((sizeof(*wfm_hdr) + wfm_hdr->trc) > size)
218 return -EINVAL;
219
220 for (i = sizeof(*wfm_hdr); i <= sizeof(*wfm_hdr) + wfm_hdr->trc; i++) {
221 if (mem[i] > t) {
222 trn = i - sizeof(*wfm_hdr) - 1;
223 break;
224 }
225 }
226
227 /* check temperature range table checksum */
228 cksum_idx = sizeof(*wfm_hdr) + wfm_hdr->trc + 1;
229 if (cksum_idx > size)
230 return -EINVAL;
231 cksum = calc_cksum(sizeof(*wfm_hdr), cksum_idx, mem);
232 if (cksum != mem[cksum_idx]) {
233 printk(KERN_ERR "Error: bad temperature range table cksum"
234 " %x != %x\n", cksum, mem[cksum_idx]);
235 return -EINVAL;
236 }
237
238 /* check waveform mode table address checksum */
239 wmta = le32_to_cpu(get_unaligned((__le32 *) wfm_hdr->wmta));
240 wmta &= 0x00FFFFFF;
241 cksum_idx = wmta + m*4 + 3;
242 if (cksum_idx > size)
243 return -EINVAL;
244 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem);
245 if (cksum != mem[cksum_idx]) {
246 printk(KERN_ERR "Error: bad mode table address cksum"
247 " %x != %x\n", cksum, mem[cksum_idx]);
248 return -EINVAL;
249 }
250
251 /* check waveform temperature table address checksum */
252 tta = le32_to_cpu(get_unaligned((int *) (mem + wmta + m*4)));
253 tta &= 0x00FFFFFF;
254 cksum_idx = tta + trn*4 + 3;
255 if (cksum_idx > size)
256 return -EINVAL;
257 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem);
258 if (cksum != mem[cksum_idx]) {
259 printk(KERN_ERR "Error: bad temperature table address cksum"
260 " %x != %x\n", cksum, mem[cksum_idx]);
261 return -EINVAL;
262 }
263
264 /* here we do the real work of putting the waveform into the
265 metromem buffer. this does runlength decoding of the waveform */
266 wfm_idx = le32_to_cpu(get_unaligned((__le32 *) (mem + tta + trn*4)));
267 wfm_idx &= 0x00FFFFFF;
268 owfm_idx = wfm_idx;
269 if (wfm_idx > size)
270 return -EINVAL;
271 while (wfm_idx < size) {
272 unsigned char rl;
273 v = mem[wfm_idx++];
274 if (v == wfm_hdr->swtb) {
275 while (((v = mem[wfm_idx++]) != wfm_hdr->swtb) &&
276 wfm_idx < size)
277 metromem[mem_idx++] = v;
278
279 continue;
280 }
281
282 if (v == wfm_hdr->endb)
283 break;
284
285 rl = mem[wfm_idx++];
286 for (i = 0; i <= rl; i++)
287 metromem[mem_idx++] = v;
288 }
289
290 cksum_idx = wfm_idx;
291 if (cksum_idx > size)
292 return -EINVAL;
293 cksum = calc_cksum(owfm_idx, cksum_idx, mem);
294 if (cksum != mem[cksum_idx]) {
295 printk(KERN_ERR "Error: bad waveform data cksum"
296 " %x != %x\n", cksum, mem[cksum_idx]);
297 return -EINVAL;
298 }
299 *frame_count = (mem_idx/64);
300
301 return 0;
302}
303
304/* register offsets for gpio control */
305#define LED_GPIO_PIN 51
306#define STDBY_GPIO_PIN 48
307#define RST_GPIO_PIN 49
308#define RDY_GPIO_PIN 32
309#define ERR_GPIO_PIN 17
310#define PCBPWR_GPIO_PIN 16
311
312#define AF_SEL_GPIO_N 0x3
313#define GAFR0_U_OFFSET(pin) ((pin - 16) * 2)
314#define GAFR1_L_OFFSET(pin) ((pin - 32) * 2)
315#define GAFR1_U_OFFSET(pin) ((pin - 48) * 2)
316#define GPDR1_OFFSET(pin) (pin - 32)
317#define GPCR1_OFFSET(pin) (pin - 32)
318#define GPSR1_OFFSET(pin) (pin - 32)
319#define GPCR0_OFFSET(pin) (pin)
320#define GPSR0_OFFSET(pin) (pin)
321
322static void metronome_set_gpio_output(int pin, int val)
323{
324 u8 index;
325
326 index = pin >> 4;
327
328 switch (index) {
329 case 1:
330 if (val)
331 GPSR0 |= (1 << GPSR0_OFFSET(pin));
332 else
333 GPCR0 |= (1 << GPCR0_OFFSET(pin));
334 break;
335 case 2:
336 break;
337 case 3:
338 if (val)
339 GPSR1 |= (1 << GPSR1_OFFSET(pin));
340 else
341 GPCR1 |= (1 << GPCR1_OFFSET(pin));
342 break;
343 default:
344 printk(KERN_ERR "unimplemented\n");
345 }
346}
347
348static void __devinit metronome_init_gpio_pin(int pin, int dir)
349{
350 u8 index;
351 /* dir 0 is output, 1 is input
352 - do 2 things here:
353 - set gpio alternate function to standard gpio
354 - set gpio direction to input or output */
355
356 index = pin >> 4;
357 switch (index) {
358 case 1:
359 GAFR0_U &= ~(AF_SEL_GPIO_N << GAFR0_U_OFFSET(pin));
360
361 if (dir)
362 GPDR0 &= ~(1 << pin);
363 else
364 GPDR0 |= (1 << pin);
365 break;
366 case 2:
367 GAFR1_L &= ~(AF_SEL_GPIO_N << GAFR1_L_OFFSET(pin));
368
369 if (dir)
370 GPDR1 &= ~(1 << GPDR1_OFFSET(pin));
371 else
372 GPDR1 |= (1 << GPDR1_OFFSET(pin));
373 break;
374 case 3:
375 GAFR1_U &= ~(AF_SEL_GPIO_N << GAFR1_U_OFFSET(pin));
376
377 if (dir)
378 GPDR1 &= ~(1 << GPDR1_OFFSET(pin));
379 else
380 GPDR1 |= (1 << GPDR1_OFFSET(pin));
381 break;
382 default:
383 printk(KERN_ERR "unimplemented\n");
384 }
385}
386
387static void __devinit metronome_init_gpio_regs(void)
388{
389 metronome_init_gpio_pin(LED_GPIO_PIN, 0);
390 metronome_set_gpio_output(LED_GPIO_PIN, 0);
391
392 metronome_init_gpio_pin(STDBY_GPIO_PIN, 0);
393 metronome_set_gpio_output(STDBY_GPIO_PIN, 0);
394
395 metronome_init_gpio_pin(RST_GPIO_PIN, 0);
396 metronome_set_gpio_output(RST_GPIO_PIN, 0);
397
398 metronome_init_gpio_pin(RDY_GPIO_PIN, 1);
399
400 metronome_init_gpio_pin(ERR_GPIO_PIN, 1);
401
402 metronome_init_gpio_pin(PCBPWR_GPIO_PIN, 0);
403 metronome_set_gpio_output(PCBPWR_GPIO_PIN, 0);
404}
405
406static void metronome_disable_lcd_controller(struct metronomefb_par *par)
407{
408 LCSR = 0xffffffff; /* Clear LCD Status Register */
409 LCCR0 |= LCCR0_DIS; /* Disable LCD Controller */
410
411 /* we reset and just wait for things to settle */
412 msleep(200);
413}
414
415static void metronome_enable_lcd_controller(struct metronomefb_par *par)
416{
417 LCSR = 0xffffffff;
418 FDADR0 = par->metromem_desc_dma;
419 LCCR0 |= LCCR0_ENB;
420}
421
422static void __devinit metronome_init_lcdc_regs(struct metronomefb_par *par)
423{
424 /* here we do:
425 - disable the lcd controller
426 - setup lcd control registers
427 - setup dma descriptor
428 - reenable lcd controller
429 */
430
431 /* disable the lcd controller */
432 metronome_disable_lcd_controller(par);
433
434 /* setup lcd control registers */
435 LCCR0 = LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM | LCCR0_PAS
436 | LCCR0_QDM | LCCR0_BM | LCCR0_OUM;
437
438 LCCR1 = (epd_frame_table[0].fw/2 - 1) /* pixels per line */
439 | (27 << 10) /* hsync pulse width - 1 */
440 | (33 << 16) /* eol pixel count */
441 | (33 << 24); /* bol pixel count */
442
443 LCCR2 = (epd_frame_table[0].fh - 1) /* lines per panel */
444 | (24 << 10) /* vsync pulse width - 1 */
445 | (2 << 16) /* eof pixel count */
446 | (0 << 24); /* bof pixel count */
447
448 LCCR3 = 2 /* pixel clock divisor */
449 | (24 << 8) /* AC Bias pin freq */
450 | LCCR3_16BPP /* BPP */
451 | LCCR3_PCP; /* PCP falling edge */
452
453 /* setup dma descriptor */
454 par->metromem_desc->mFDADR0 = par->metromem_desc_dma;
455 par->metromem_desc->mFSADR0 = par->metromem_dma;
456 par->metromem_desc->mFIDR0 = 0;
457 par->metromem_desc->mLDCMD0 = epd_frame_table[0].fw
458 * epd_frame_table[0].fh;
459 /* reenable lcd controller */
460 metronome_enable_lcd_controller(par);
461}
462
463static int metronome_display_cmd(struct metronomefb_par *par)
464{
465 int i;
466 u16 cs;
467 u16 opcode;
468 static u8 borderval;
469 u8 *ptr;
470
471 /* setup display command
472 we can't immediately set the opcode since the controller
473 will try parse the command before we've set it all up
474 so we just set cs here and set the opcode at the end */
475
476 ptr = par->metromem;
477
478 if (par->metromem_cmd->opcode == 0xCC40)
479 opcode = cs = 0xCC41;
480 else
481 opcode = cs = 0xCC40;
482
483 /* set the args ( 2 bytes ) for display */
484 i = 0;
485 par->metromem_cmd->args[i] = 1 << 3 /* border update */
486 | ((borderval++ % 4) & 0x0F) << 4
487 | (par->frame_count - 1) << 8;
488 cs += par->metromem_cmd->args[i++];
489
490 /* the rest are 0 */
491 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
492
493 par->metromem_cmd->csum = cs;
494 par->metromem_cmd->opcode = opcode; /* display cmd */
495
496 i = wait_event_interruptible_timeout(par->waitq, (GPLR1 & 0x01), HZ);
497 return i;
498}
499
500static int __devinit metronome_powerup_cmd(struct metronomefb_par *par)
501{
502 int i;
503 u16 cs;
504
505 /* setup power up command */
506 par->metromem_cmd->opcode = 0x1234; /* pwr up pseudo cmd */
507 cs = par->metromem_cmd->opcode;
508
509 /* set pwr1,2,3 to 1024 */
510 for (i = 0; i < 3; i++) {
511 par->metromem_cmd->args[i] = 1024;
512 cs += par->metromem_cmd->args[i];
513 }
514
515 /* the rest are 0 */
516 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
517
518 par->metromem_cmd->csum = cs;
519
520 msleep(1);
521 metronome_set_gpio_output(RST_GPIO_PIN, 1);
522
523 msleep(1);
524 metronome_set_gpio_output(STDBY_GPIO_PIN, 1);
525
526 i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ);
527 return i;
528}
529
530static int __devinit metronome_config_cmd(struct metronomefb_par *par)
531{
532 int i;
533 u16 cs;
534
535 /* setup config command
536 we can't immediately set the opcode since the controller
537 will try parse the command before we've set it all up
538 so we just set cs here and set the opcode at the end */
539
540 cs = 0xCC10;
541
542 /* set the 12 args ( 8 bytes ) for config. see spec for meanings */
543 i = 0;
544 par->metromem_cmd->args[i] = 15 /* sdlew */
545 | 2 << 8 /* sdosz */
546 | 0 << 11 /* sdor */
547 | 0 << 12 /* sdces */
548 | 0 << 15; /* sdcer */
549 cs += par->metromem_cmd->args[i++];
550
551 par->metromem_cmd->args[i] = 42 /* gdspl */
552 | 1 << 8 /* gdr1 */
553 | 1 << 9 /* sdshr */
554 | 0 << 15; /* gdspp */
555 cs += par->metromem_cmd->args[i++];
556
557 par->metromem_cmd->args[i] = 18 /* gdspw */
558 | 0 << 15; /* dispc */
559 cs += par->metromem_cmd->args[i++];
560
561 par->metromem_cmd->args[i] = 599 /* vdlc */
562 | 0 << 11 /* dsi */
563 | 0 << 12; /* dsic */
564 cs += par->metromem_cmd->args[i++];
565
566 /* the rest are 0 */
567 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
568
569 par->metromem_cmd->csum = cs;
570 par->metromem_cmd->opcode = 0xCC10; /* config cmd */
571
572 i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ);
573 return i;
574}
575
576static int __devinit metronome_init_cmd(struct metronomefb_par *par)
577{
578 int i;
579 u16 cs;
580
581 /* setup init command
582 we can't immediately set the opcode since the controller
583 will try parse the command before we've set it all up
584 so we just set cs here and set the opcode at the end */
585
586 cs = 0xCC20;
587
588 /* set the args ( 2 bytes ) for init */
589 i = 0;
590 par->metromem_cmd->args[i] = 0;
591 cs += par->metromem_cmd->args[i++];
592
593 /* the rest are 0 */
594 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2);
595
596 par->metromem_cmd->csum = cs;
597 par->metromem_cmd->opcode = 0xCC20; /* init cmd */
598
599 i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ);
600 return i;
601}
602
603static int __devinit metronome_init_regs(struct metronomefb_par *par)
604{
605 int res;
606
607 metronome_init_gpio_regs();
608 metronome_init_lcdc_regs(par);
609
610 res = metronome_powerup_cmd(par);
611 if (res)
612 return res;
613
614 res = metronome_config_cmd(par);
615 if (res)
616 return res;
617
618 res = metronome_init_cmd(par);
619 if (res)
620 return res;
621
622 return res;
623}
624
625static void metronomefb_dpy_update(struct metronomefb_par *par)
626{
627 u16 cksum;
628 unsigned char *buf = (unsigned char __force *)par->info->screen_base;
629
630 /* copy from vm to metromem */
631 memcpy(par->metromem_img, buf, DPY_W*DPY_H);
632
633 cksum = calc_img_cksum((u16 *) par->metromem_img,
634 (epd_frame_table[0].fw * DPY_H)/2);
635 *((u16 *) (par->metromem_img) +
636 (epd_frame_table[0].fw * DPY_H)/2) = cksum;
637 metronome_display_cmd(par);
638}
639
640static u16 metronomefb_dpy_update_page(struct metronomefb_par *par, int index)
641{
642 int i;
643 u16 csum = 0;
644 u16 *buf = (u16 __force *) (par->info->screen_base + index);
645 u16 *img = (u16 *) (par->metromem_img + index);
646
647 /* swizzle from vm to metromem and recalc cksum at the same time*/
648 for (i = 0; i < PAGE_SIZE/2; i++) {
649 *(img + i) = (buf[i] << 5) & 0xE0E0;
650 csum += *(img + i);
651 }
652 return csum;
653}
654
655/* this is called back from the deferred io workqueue */
656static void metronomefb_dpy_deferred_io(struct fb_info *info,
657 struct list_head *pagelist)
658{
659 u16 cksum;
660 struct page *cur;
661 struct fb_deferred_io *fbdefio = info->fbdefio;
662 struct metronomefb_par *par = info->par;
663
664 /* walk the written page list and swizzle the data */
665 list_for_each_entry(cur, &fbdefio->pagelist, lru) {
666 cksum = metronomefb_dpy_update_page(par,
667 (cur->index << PAGE_SHIFT));
668 par->metromem_img_csum -= par->csum_table[cur->index];
669 par->csum_table[cur->index] = cksum;
670 par->metromem_img_csum += cksum;
671 }
672
673 metronome_display_cmd(par);
674}
675
676static void metronomefb_fillrect(struct fb_info *info,
677 const struct fb_fillrect *rect)
678{
679 struct metronomefb_par *par = info->par;
680
681 cfb_fillrect(info, rect);
682 metronomefb_dpy_update(par);
683}
684
685static void metronomefb_copyarea(struct fb_info *info,
686 const struct fb_copyarea *area)
687{
688 struct metronomefb_par *par = info->par;
689
690 cfb_copyarea(info, area);
691 metronomefb_dpy_update(par);
692}
693
694static void metronomefb_imageblit(struct fb_info *info,
695 const struct fb_image *image)
696{
697 struct metronomefb_par *par = info->par;
698
699 cfb_imageblit(info, image);
700 metronomefb_dpy_update(par);
701}
702
703/*
704 * this is the slow path from userspace. they can seek and write to
705 * the fb. it is based on fb_sys_write
706 */
707static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
708 size_t count, loff_t *ppos)
709{
710 struct metronomefb_par *par = info->par;
711 unsigned long p = *ppos;
712 void *dst;
713 int err = 0;
714 unsigned long total_size;
715
716 if (info->state != FBINFO_STATE_RUNNING)
717 return -EPERM;
718
719 total_size = info->fix.smem_len;
720
721 if (p > total_size)
722 return -EFBIG;
723
724 if (count > total_size) {
725 err = -EFBIG;
726 count = total_size;
727 }
728
729 if (count + p > total_size) {
730 if (!err)
731 err = -ENOSPC;
732
733 count = total_size - p;
734 }
735
736 dst = (void __force *) (info->screen_base + p);
737
738 if (copy_from_user(dst, buf, count))
739 err = -EFAULT;
740
741 if (!err)
742 *ppos += count;
743
744 metronomefb_dpy_update(par);
745
746 return (err) ? err : count;
747}
748
749static struct fb_ops metronomefb_ops = {
750 .owner = THIS_MODULE,
751 .fb_write = metronomefb_write,
752 .fb_fillrect = metronomefb_fillrect,
753 .fb_copyarea = metronomefb_copyarea,
754 .fb_imageblit = metronomefb_imageblit,
755};
756
757static struct fb_deferred_io metronomefb_defio = {
758 .delay = HZ,
759 .deferred_io = metronomefb_dpy_deferred_io,
760};
761
762static irqreturn_t metronome_handle_irq(int irq, void *dev_id)
763{
764 struct fb_info *info = dev_id;
765 struct metronomefb_par *par = info->par;
766
767 wake_up_interruptible(&par->waitq);
768 return IRQ_HANDLED;
769}
770
771static int __devinit metronomefb_probe(struct platform_device *dev)
772{
773 struct fb_info *info;
774 int retval = -ENOMEM;
775 int videomemorysize;
776 unsigned char *videomemory;
777 struct metronomefb_par *par;
778 const struct firmware *fw_entry;
779 int cmd_size, wfm_size, img_size, padding_size, totalsize;
780 int i;
781
782 /* we have two blocks of memory.
783 info->screen_base which is vm, and is the fb used by apps.
784 par->metromem which is physically contiguous memory and
785 contains the display controller commands, waveform,
786 processed image data and padding. this is the data pulled
787 by the pxa255's LCD controller and pushed to Metronome */
788
789 videomemorysize = (DPY_W*DPY_H);
790 videomemory = vmalloc(videomemorysize);
791 if (!videomemory)
792 return retval;
793
794 memset(videomemory, 0, videomemorysize);
795
796 info = framebuffer_alloc(sizeof(struct metronomefb_par), &dev->dev);
797 if (!info)
798 goto err_vfree;
799
800 info->screen_base = (char __iomem *) videomemory;
801 info->fbops = &metronomefb_ops;
802
803 info->var = metronomefb_var;
804 info->fix = metronomefb_fix;
805 info->fix.smem_len = videomemorysize;
806 par = info->par;
807 par->info = info;
808 init_waitqueue_head(&par->waitq);
809
810 /* this table caches per page csum values. */
811 par->csum_table = vmalloc(videomemorysize/PAGE_SIZE);
812 if (!par->csum_table)
813 goto err_csum_table;
814
815 /* the metromem buffer is divided as follows:
816 command | CRC | padding
817 16kb waveform data | CRC | padding
818 image data | CRC
819 and an extra 256 bytes for dma descriptors
820 eg: IW=832 IH=622 WS=128
821 */
822
823 cmd_size = 1 * epd_frame_table[0].fw;
824 wfm_size = ((16*1024 + 2 + epd_frame_table[0].fw - 1)
825 / epd_frame_table[0].fw) * epd_frame_table[0].fw;
826 img_size = epd_frame_table[0].fh * epd_frame_table[0].fw;
827 padding_size = 4 * epd_frame_table[0].fw;
828 totalsize = cmd_size + wfm_size + img_size + padding_size;
829 par->metromemsize = PAGE_ALIGN(totalsize + 256);
830 DPRINTK("desired memory size = %d\n", par->metromemsize);
831 dev->dev.coherent_dma_mask = 0xffffffffull;
832 par->metromem = dma_alloc_writecombine(&dev->dev, par->metromemsize,
833 &par->metromem_dma, GFP_KERNEL);
834 if (!par->metromem) {
835 printk(KERN_ERR
836 "metronomefb: unable to allocate dma buffer\n");
837 goto err_vfree;
838 }
839
840 info->fix.smem_start = par->metromem_dma;
841 par->metromem_cmd = (struct metromem_cmd *) par->metromem;
842 par->metromem_wfm = par->metromem + cmd_size;
843 par->metromem_img = par->metromem + cmd_size + wfm_size;
844 par->metromem_img_csum = (u16 *) (par->metromem_img +
845 (epd_frame_table[0].fw * DPY_H));
846 DPRINTK("img offset=0x%x\n", cmd_size + wfm_size);
847 par->metromem_desc = (struct metromem_desc *) (par->metromem + cmd_size
848 + wfm_size + img_size + padding_size);
849 par->metromem_desc_dma = par->metromem_dma + cmd_size + wfm_size
850 + img_size + padding_size;
851
852 /* load the waveform in. assume mode 3, temp 31 for now */
853 /* a) request the waveform file from userspace
854 b) process waveform and decode into metromem */
855
856 retval = request_firmware(&fw_entry, "waveform.wbf", &dev->dev);
857 if (retval < 0) {
858 printk(KERN_ERR "metronomefb: couldn't get waveform\n");
859 goto err_dma_free;
860 }
861
862 retval = load_waveform((u8 *) fw_entry->data, fw_entry->size,
863 par->metromem_wfm, 3, 31, &par->frame_count);
864 if (retval < 0) {
865 printk(KERN_ERR "metronomefb: couldn't process waveform\n");
866 goto err_ld_wfm;
867 }
868 release_firmware(fw_entry);
869
870 retval = request_irq(IRQ_GPIO(RDY_GPIO_PIN), metronome_handle_irq,
871 IRQF_DISABLED, "Metronome", info);
872 if (retval) {
873 dev_err(&dev->dev, "request_irq failed: %d\n", retval);
874 goto err_ld_wfm;
875 }
876 set_irq_type(IRQ_GPIO(RDY_GPIO_PIN), IRQT_FALLING);
877
878 retval = metronome_init_regs(par);
879 if (retval < 0)
880 goto err_free_irq;
881
882 info->flags = FBINFO_FLAG_DEFAULT;
883
884 info->fbdefio = &metronomefb_defio;
885 fb_deferred_io_init(info);
886
887 retval = fb_alloc_cmap(&info->cmap, 8, 0);
888 if (retval < 0) {
889 printk(KERN_ERR "Failed to allocate colormap\n");
890 goto err_fb_rel;
891 }
892
893 /* set cmap */
894 for (i = 0; i < 8; i++)
895 info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16;
896 memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8);
897 memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8);
898
899 retval = register_framebuffer(info);
900 if (retval < 0)
901 goto err_cmap;
902
903 platform_set_drvdata(dev, info);
904
905 printk(KERN_INFO
906 "fb%d: Metronome frame buffer device, using %dK of video"
907 " memory\n", info->node, videomemorysize >> 10);
908
909 return 0;
910
911err_cmap:
912 fb_dealloc_cmap(&info->cmap);
913err_fb_rel:
914 framebuffer_release(info);
915err_free_irq:
916 free_irq(IRQ_GPIO(RDY_GPIO_PIN), info);
917err_ld_wfm:
918 release_firmware(fw_entry);
919err_dma_free:
920 dma_free_writecombine(&dev->dev, par->metromemsize, par->metromem,
921 par->metromem_dma);
922err_csum_table:
923 vfree(par->csum_table);
924err_vfree:
925 vfree(videomemory);
926 return retval;
927}
928
929static int __devexit metronomefb_remove(struct platform_device *dev)
930{
931 struct fb_info *info = platform_get_drvdata(dev);
932
933 if (info) {
934 struct metronomefb_par *par = info->par;
935 fb_deferred_io_cleanup(info);
936 dma_free_writecombine(&dev->dev, par->metromemsize,
937 par->metromem, par->metromem_dma);
938 fb_dealloc_cmap(&info->cmap);
939 vfree(par->csum_table);
940 unregister_framebuffer(info);
941 vfree((void __force *)info->screen_base);
942 free_irq(IRQ_GPIO(RDY_GPIO_PIN), info);
943 framebuffer_release(info);
944 }
945 return 0;
946}
947
948static struct platform_driver metronomefb_driver = {
949 .probe = metronomefb_probe,
950 .remove = metronomefb_remove,
951 .driver = {
952 .name = "metronomefb",
953 },
954};
955
956static struct platform_device *metronomefb_device;
957
958static int __init metronomefb_init(void)
959{
960 int ret;
961
962 if (!metronomefb_enable) {
963 printk(KERN_ERR
964 "Use metronomefb_enable to enable the device\n");
965 return -ENXIO;
966 }
967
968 ret = platform_driver_register(&metronomefb_driver);
969 if (!ret) {
970 metronomefb_device = platform_device_alloc("metronomefb", 0);
971 if (metronomefb_device)
972 ret = platform_device_add(metronomefb_device);
973 else
974 ret = -ENOMEM;
975
976 if (ret) {
977 platform_device_put(metronomefb_device);
978 platform_driver_unregister(&metronomefb_driver);
979 }
980 }
981 return ret;
982
983}
984
985static void __exit metronomefb_exit(void)
986{
987 platform_device_unregister(metronomefb_device);
988 platform_driver_unregister(&metronomefb_driver);
989}
990
991module_param(metronomefb_enable, uint, 0);
992MODULE_PARM_DESC(metronomefb_enable, "Enable communication with Metronome");
993
994module_init(metronomefb_init);
995module_exit(metronomefb_exit);
996
997MODULE_DESCRIPTION("fbdev driver for Metronome controller");
998MODULE_AUTHOR("Jaya Kumar");
999MODULE_LICENSE("GPL");
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index c8a4332d1132..0b3efc31ee6d 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -152,7 +152,7 @@ static void virtballoon_changed(struct virtio_device *vdev)
152 wake_up(&vb->config_change); 152 wake_up(&vb->config_change);
153} 153}
154 154
155static inline int towards_target(struct virtio_balloon *vb) 155static inline s64 towards_target(struct virtio_balloon *vb)
156{ 156{
157 u32 v; 157 u32 v;
158 __virtio_config_val(vb->vdev, 158 __virtio_config_val(vb->vdev,
@@ -176,7 +176,7 @@ static int balloon(void *_vballoon)
176 176
177 set_freezable(); 177 set_freezable();
178 while (!kthread_should_stop()) { 178 while (!kthread_should_stop()) {
179 int diff; 179 s64 diff;
180 180
181 try_to_freeze(); 181 try_to_freeze();
182 wait_event_interruptible(vb->config_change, 182 wait_event_interruptible(vb->config_change,
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
index 26f787ddd5ff..c0df924766a7 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
@@ -37,7 +37,7 @@ struct virtio_pci_device
37 struct pci_dev *pci_dev; 37 struct pci_dev *pci_dev;
38 38
39 /* the IO mapping for the PCI config space */ 39 /* the IO mapping for the PCI config space */
40 void *ioaddr; 40 void __iomem *ioaddr;
41 41
42 /* a list of queues so we can dispatch IRQs */ 42 /* a list of queues so we can dispatch IRQs */
43 spinlock_t lock; 43 spinlock_t lock;
@@ -111,7 +111,7 @@ static void vp_get(struct virtio_device *vdev, unsigned offset,
111 void *buf, unsigned len) 111 void *buf, unsigned len)
112{ 112{
113 struct virtio_pci_device *vp_dev = to_vp_device(vdev); 113 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
114 void *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset; 114 void __iomem *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
115 u8 *ptr = buf; 115 u8 *ptr = buf;
116 int i; 116 int i;
117 117
@@ -125,7 +125,7 @@ static void vp_set(struct virtio_device *vdev, unsigned offset,
125 const void *buf, unsigned len) 125 const void *buf, unsigned len)
126{ 126{
127 struct virtio_pci_device *vp_dev = to_vp_device(vdev); 127 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
128 void *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset; 128 void __iomem *ioaddr = vp_dev->ioaddr + VIRTIO_PCI_CONFIG + offset;
129 const u8 *ptr = buf; 129 const u8 *ptr = buf;
130 int i; 130 int i;
131 131
@@ -177,6 +177,7 @@ static irqreturn_t vp_interrupt(int irq, void *opaque)
177 struct virtio_pci_device *vp_dev = opaque; 177 struct virtio_pci_device *vp_dev = opaque;
178 struct virtio_pci_vq_info *info; 178 struct virtio_pci_vq_info *info;
179 irqreturn_t ret = IRQ_NONE; 179 irqreturn_t ret = IRQ_NONE;
180 unsigned long flags;
180 u8 isr; 181 u8 isr;
181 182
182 /* reading the ISR has the effect of also clearing it so it's very 183 /* reading the ISR has the effect of also clearing it so it's very
@@ -197,12 +198,12 @@ static irqreturn_t vp_interrupt(int irq, void *opaque)
197 drv->config_changed(&vp_dev->vdev); 198 drv->config_changed(&vp_dev->vdev);
198 } 199 }
199 200
200 spin_lock(&vp_dev->lock); 201 spin_lock_irqsave(&vp_dev->lock, flags);
201 list_for_each_entry(info, &vp_dev->virtqueues, node) { 202 list_for_each_entry(info, &vp_dev->virtqueues, node) {
202 if (vring_interrupt(irq, info->vq) == IRQ_HANDLED) 203 if (vring_interrupt(irq, info->vq) == IRQ_HANDLED)
203 ret = IRQ_HANDLED; 204 ret = IRQ_HANDLED;
204 } 205 }
205 spin_unlock(&vp_dev->lock); 206 spin_unlock_irqrestore(&vp_dev->lock, flags);
206 207
207 return ret; 208 return ret;
208} 209}
@@ -214,6 +215,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index,
214 struct virtio_pci_device *vp_dev = to_vp_device(vdev); 215 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
215 struct virtio_pci_vq_info *info; 216 struct virtio_pci_vq_info *info;
216 struct virtqueue *vq; 217 struct virtqueue *vq;
218 unsigned long flags;
217 u16 num; 219 u16 num;
218 int err; 220 int err;
219 221
@@ -255,9 +257,9 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index,
255 vq->priv = info; 257 vq->priv = info;
256 info->vq = vq; 258 info->vq = vq;
257 259
258 spin_lock(&vp_dev->lock); 260 spin_lock_irqsave(&vp_dev->lock, flags);
259 list_add(&info->node, &vp_dev->virtqueues); 261 list_add(&info->node, &vp_dev->virtqueues);
260 spin_unlock(&vp_dev->lock); 262 spin_unlock_irqrestore(&vp_dev->lock, flags);
261 263
262 return vq; 264 return vq;
263 265
@@ -274,10 +276,11 @@ static void vp_del_vq(struct virtqueue *vq)
274{ 276{
275 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); 277 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev);
276 struct virtio_pci_vq_info *info = vq->priv; 278 struct virtio_pci_vq_info *info = vq->priv;
279 unsigned long flags;
277 280
278 spin_lock(&vp_dev->lock); 281 spin_lock_irqsave(&vp_dev->lock, flags);
279 list_del(&info->node); 282 list_del(&info->node);
280 spin_unlock(&vp_dev->lock); 283 spin_unlock_irqrestore(&vp_dev->lock, flags);
281 284
282 vring_del_virtqueue(vq); 285 vring_del_virtqueue(vq);
283 286
@@ -385,6 +388,7 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev)
385{ 388{
386 struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); 389 struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev);
387 390
391 unregister_virtio_device(&vp_dev->vdev);
388 free_irq(pci_dev->irq, vp_dev); 392 free_irq(pci_dev->irq, vp_dev);
389 pci_set_drvdata(pci_dev, NULL); 393 pci_set_drvdata(pci_dev, NULL);
390 pci_iounmap(pci_dev, vp_dev->ioaddr); 394 pci_iounmap(pci_dev, vp_dev->ioaddr);
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 3a28c1382131..aa714028641e 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -232,7 +232,6 @@ static bool vring_enable_cb(struct virtqueue *_vq)
232 vq->vring.avail->flags &= ~VRING_AVAIL_F_NO_INTERRUPT; 232 vq->vring.avail->flags &= ~VRING_AVAIL_F_NO_INTERRUPT;
233 mb(); 233 mb();
234 if (unlikely(more_used(vq))) { 234 if (unlikely(more_used(vq))) {
235 vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT;
236 END_USE(vq); 235 END_USE(vq);
237 return false; 236 return false;
238 } 237 }
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 970d38f30565..788865df1bc9 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -127,14 +127,20 @@ struct afs_cell *afs_cell_create(const char *name, char *vllist)
127 127
128 _enter("%s,%s", name, vllist); 128 _enter("%s,%s", name, vllist);
129 129
130 down_write(&afs_cells_sem);
131 read_lock(&afs_cells_lock);
132 list_for_each_entry(cell, &afs_cells, link) {
133 if (strcasecmp(cell->name, name) == 0)
134 goto duplicate_name;
135 }
136 read_unlock(&afs_cells_lock);
137
130 cell = afs_cell_alloc(name, vllist); 138 cell = afs_cell_alloc(name, vllist);
131 if (IS_ERR(cell)) { 139 if (IS_ERR(cell)) {
132 _leave(" = %ld", PTR_ERR(cell)); 140 _leave(" = %ld", PTR_ERR(cell));
133 return cell; 141 return cell;
134 } 142 }
135 143
136 down_write(&afs_cells_sem);
137
138 /* add a proc directory for this cell */ 144 /* add a proc directory for this cell */
139 ret = afs_proc_cell_setup(cell); 145 ret = afs_proc_cell_setup(cell);
140 if (ret < 0) 146 if (ret < 0)
@@ -167,6 +173,11 @@ error:
167 kfree(cell); 173 kfree(cell);
168 _leave(" = %d", ret); 174 _leave(" = %d", ret);
169 return ERR_PTR(ret); 175 return ERR_PTR(ret);
176
177duplicate_name:
178 read_unlock(&afs_cells_lock);
179 up_write(&afs_cells_sem);
180 return ERR_PTR(-EEXIST);
170} 181}
171 182
172/* 183/*
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 5ca3625cd39e..9ba16edc0af2 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -573,7 +573,6 @@ extern const struct file_operations afs_mntpt_file_operations;
573 573
574extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); 574extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *);
575extern void afs_mntpt_kill_timer(void); 575extern void afs_mntpt_kill_timer(void);
576extern void afs_umount_begin(struct vfsmount *, int);
577 576
578/* 577/*
579 * proc.c 578 * proc.c
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index a3510b8ba3e7..2f5503902c37 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -283,11 +283,3 @@ void afs_mntpt_kill_timer(void)
283 cancel_delayed_work(&afs_mntpt_expiry_timer); 283 cancel_delayed_work(&afs_mntpt_expiry_timer);
284 flush_scheduled_work(); 284 flush_scheduled_work();
285} 285}
286
287/*
288 * begin unmount by attempting to remove all automounted mountpoints we added
289 */
290void afs_umount_begin(struct vfsmount *vfsmnt, int flags)
291{
292 shrink_submounts(vfsmnt, &afs_vfsmounts);
293}
diff --git a/fs/afs/super.c b/fs/afs/super.c
index 36bbce45f44b..4b572b801d8d 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -50,7 +50,6 @@ static const struct super_operations afs_super_ops = {
50 .write_inode = afs_write_inode, 50 .write_inode = afs_write_inode,
51 .destroy_inode = afs_destroy_inode, 51 .destroy_inode = afs_destroy_inode,
52 .clear_inode = afs_clear_inode, 52 .clear_inode = afs_clear_inode,
53 .umount_begin = afs_umount_begin,
54 .put_super = afs_put_super, 53 .put_super = afs_put_super,
55 .show_options = generic_show_options, 54 .show_options = generic_show_options,
56}; 55};
diff --git a/fs/aio.c b/fs/aio.c
index b74c567383bc..6af921940622 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -996,6 +996,14 @@ put_rq:
996 /* everything turned out well, dispose of the aiocb. */ 996 /* everything turned out well, dispose of the aiocb. */
997 ret = __aio_put_req(ctx, iocb); 997 ret = __aio_put_req(ctx, iocb);
998 998
999 /*
1000 * We have to order our ring_info tail store above and test
1001 * of the wait list below outside the wait lock. This is
1002 * like in wake_up_bit() where clearing a bit has to be
1003 * ordered with the unlocked test.
1004 */
1005 smp_mb();
1006
999 if (waitqueue_active(&ctx->wait)) 1007 if (waitqueue_active(&ctx->wait))
1000 wake_up(&ctx->wait); 1008 wake_up(&ctx->wait);
1001 1009
diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
index 23321889d9b0..f42be069e085 100644
--- a/fs/anon_inodes.c
+++ b/fs/anon_inodes.c
@@ -81,13 +81,10 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile,
81 81
82 if (IS_ERR(anon_inode_inode)) 82 if (IS_ERR(anon_inode_inode))
83 return -ENODEV; 83 return -ENODEV;
84 file = get_empty_filp();
85 if (!file)
86 return -ENFILE;
87 84
88 error = get_unused_fd(); 85 error = get_unused_fd();
89 if (error < 0) 86 if (error < 0)
90 goto err_put_filp; 87 return error;
91 fd = error; 88 fd = error;
92 89
93 /* 90 /*
@@ -114,14 +111,15 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile,
114 dentry->d_flags &= ~DCACHE_UNHASHED; 111 dentry->d_flags &= ~DCACHE_UNHASHED;
115 d_instantiate(dentry, anon_inode_inode); 112 d_instantiate(dentry, anon_inode_inode);
116 113
117 file->f_path.mnt = mntget(anon_inode_mnt); 114 error = -ENFILE;
118 file->f_path.dentry = dentry; 115 file = alloc_file(anon_inode_mnt, dentry,
116 FMODE_READ | FMODE_WRITE, fops);
117 if (!file)
118 goto err_dput;
119 file->f_mapping = anon_inode_inode->i_mapping; 119 file->f_mapping = anon_inode_inode->i_mapping;
120 120
121 file->f_pos = 0; 121 file->f_pos = 0;
122 file->f_flags = O_RDWR; 122 file->f_flags = O_RDWR;
123 file->f_op = fops;
124 file->f_mode = FMODE_READ | FMODE_WRITE;
125 file->f_version = 0; 123 file->f_version = 0;
126 file->private_data = priv; 124 file->private_data = priv;
127 125
@@ -132,10 +130,10 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile,
132 *pfile = file; 130 *pfile = file;
133 return 0; 131 return 0;
134 132
133err_dput:
134 dput(dentry);
135err_put_unused_fd: 135err_put_unused_fd:
136 put_unused_fd(fd); 136 put_unused_fd(fd);
137err_put_filp:
138 put_filp(file);
139 return error; 137 return error;
140} 138}
141EXPORT_SYMBOL_GPL(anon_inode_getfd); 139EXPORT_SYMBOL_GPL(anon_inode_getfd);
diff --git a/fs/bio.c b/fs/bio.c
index 3312fcc3c098..553b5b7960ad 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1194,6 +1194,8 @@ EXPORT_SYMBOL(bio_hw_segments);
1194EXPORT_SYMBOL(bio_add_page); 1194EXPORT_SYMBOL(bio_add_page);
1195EXPORT_SYMBOL(bio_add_pc_page); 1195EXPORT_SYMBOL(bio_add_pc_page);
1196EXPORT_SYMBOL(bio_get_nr_vecs); 1196EXPORT_SYMBOL(bio_get_nr_vecs);
1197EXPORT_SYMBOL(bio_map_user);
1198EXPORT_SYMBOL(bio_unmap_user);
1197EXPORT_SYMBOL(bio_map_kern); 1199EXPORT_SYMBOL(bio_map_kern);
1198EXPORT_SYMBOL(bio_pair_release); 1200EXPORT_SYMBOL(bio_pair_release);
1199EXPORT_SYMBOL(bio_split); 1201EXPORT_SYMBOL(bio_split);
diff --git a/fs/buffer.c b/fs/buffer.c
index ddfdd2c80bf9..98196327ddf0 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2564,14 +2564,13 @@ int nobh_write_end(struct file *file, struct address_space *mapping,
2564 struct inode *inode = page->mapping->host; 2564 struct inode *inode = page->mapping->host;
2565 struct buffer_head *head = fsdata; 2565 struct buffer_head *head = fsdata;
2566 struct buffer_head *bh; 2566 struct buffer_head *bh;
2567 BUG_ON(fsdata != NULL && page_has_buffers(page));
2567 2568
2568 if (!PageMappedToDisk(page)) { 2569 if (unlikely(copied < len) && !page_has_buffers(page))
2569 if (unlikely(copied < len) && !page_has_buffers(page)) 2570 attach_nobh_buffers(page, head);
2570 attach_nobh_buffers(page, head); 2571 if (page_has_buffers(page))
2571 if (page_has_buffers(page)) 2572 return generic_write_end(file, mapping, pos, len,
2572 return generic_write_end(file, mapping, pos, len, 2573 copied, page, fsdata);
2573 copied, page, fsdata);
2574 }
2575 2574
2576 SetPageUptodate(page); 2575 SetPageUptodate(page);
2577 set_page_dirty(page); 2576 set_page_dirty(page);
@@ -3213,7 +3212,7 @@ static int buffer_cpu_notify(struct notifier_block *self,
3213} 3212}
3214 3213
3215/** 3214/**
3216 * bh_uptodate_or_lock: Test whether the buffer is uptodate 3215 * bh_uptodate_or_lock - Test whether the buffer is uptodate
3217 * @bh: struct buffer_head 3216 * @bh: struct buffer_head
3218 * 3217 *
3219 * Return true if the buffer is up-to-date and false, 3218 * Return true if the buffer is up-to-date and false,
@@ -3232,7 +3231,7 @@ int bh_uptodate_or_lock(struct buffer_head *bh)
3232EXPORT_SYMBOL(bh_uptodate_or_lock); 3231EXPORT_SYMBOL(bh_uptodate_or_lock);
3233 3232
3234/** 3233/**
3235 * bh_submit_read: Submit a locked buffer for reading 3234 * bh_submit_read - Submit a locked buffer for reading
3236 * @bh: struct buffer_head 3235 * @bh: struct buffer_head
3237 * 3236 *
3238 * Returns zero on success and -EIO on error. 3237 * Returns zero on success and -EIO on error.
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
index 7f8838253410..56c924033b78 100644
--- a/fs/cifs/cifs_dfs_ref.c
+++ b/fs/cifs/cifs_dfs_ref.c
@@ -33,7 +33,6 @@ void dfs_shrink_umount_helper(struct vfsmount *vfsmnt)
33{ 33{
34 mark_mounts_for_expiry(&cifs_dfs_automount_list); 34 mark_mounts_for_expiry(&cifs_dfs_automount_list);
35 mark_mounts_for_expiry(&cifs_dfs_automount_list); 35 mark_mounts_for_expiry(&cifs_dfs_automount_list);
36 shrink_submounts(vfsmnt, &cifs_dfs_automount_list);
37} 36}
38 37
39/** 38/**
@@ -74,7 +73,7 @@ static char *cifs_get_share_name(const char *node_name)
74 pSep = memchr(UNC+2, '\\', len-2); 73 pSep = memchr(UNC+2, '\\', len-2);
75 if (!pSep) { 74 if (!pSep) {
76 cERROR(1, ("%s: no server name end in node name: %s", 75 cERROR(1, ("%s: no server name end in node name: %s",
77 __FUNCTION__, node_name)); 76 __func__, node_name));
78 kfree(UNC); 77 kfree(UNC);
79 return NULL; 78 return NULL;
80 } 79 }
@@ -84,7 +83,7 @@ static char *cifs_get_share_name(const char *node_name)
84 pSep = memchr(UNC+(pSep-UNC), '\\', len-(pSep-UNC)); 83 pSep = memchr(UNC+(pSep-UNC), '\\', len-(pSep-UNC));
85 if (!pSep) { 84 if (!pSep) {
86 cERROR(1, ("%s:2 cant find share name in node name: %s", 85 cERROR(1, ("%s:2 cant find share name in node name: %s",
87 __FUNCTION__, node_name)); 86 __func__, node_name));
88 kfree(UNC); 87 kfree(UNC);
89 return NULL; 88 return NULL;
90 } 89 }
@@ -127,7 +126,7 @@ static char *compose_mount_options(const char *sb_mountdata,
127 rc = dns_resolve_server_name_to_ip(*devname, &srvIP); 126 rc = dns_resolve_server_name_to_ip(*devname, &srvIP);
128 if (rc != 0) { 127 if (rc != 0) {
129 cERROR(1, ("%s: Failed to resolve server part of %s to IP", 128 cERROR(1, ("%s: Failed to resolve server part of %s to IP",
130 __FUNCTION__, *devname)); 129 __func__, *devname));
131 mountdata = ERR_PTR(rc); 130 mountdata = ERR_PTR(rc);
132 goto compose_mount_options_out; 131 goto compose_mount_options_out;
133 } 132 }
@@ -181,8 +180,8 @@ static char *compose_mount_options(const char *sb_mountdata,
181 } 180 }
182 } 181 }
183 182
184 /*cFYI(1,("%s: parent mountdata: %s", __FUNCTION__,sb_mountdata));*/ 183 /*cFYI(1,("%s: parent mountdata: %s", __func__,sb_mountdata));*/
185 /*cFYI(1, ("%s: submount mountdata: %s", __FUNCTION__, mountdata ));*/ 184 /*cFYI(1, ("%s: submount mountdata: %s", __func__, mountdata ));*/
186 185
187compose_mount_options_out: 186compose_mount_options_out:
188 kfree(srvIP); 187 kfree(srvIP);
@@ -302,7 +301,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
302 int rc = 0; 301 int rc = 0;
303 struct vfsmount *mnt = ERR_PTR(-ENOENT); 302 struct vfsmount *mnt = ERR_PTR(-ENOENT);
304 303
305 cFYI(1, ("in %s", __FUNCTION__)); 304 cFYI(1, ("in %s", __func__));
306 BUG_ON(IS_ROOT(dentry)); 305 BUG_ON(IS_ROOT(dentry));
307 306
308 xid = GetXid(); 307 xid = GetXid();
@@ -336,7 +335,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
336 len = strlen(referrals[i].node_name); 335 len = strlen(referrals[i].node_name);
337 if (len < 2) { 336 if (len < 2) {
338 cERROR(1, ("%s: Net Address path too short: %s", 337 cERROR(1, ("%s: Net Address path too short: %s",
339 __FUNCTION__, referrals[i].node_name)); 338 __func__, referrals[i].node_name));
340 rc = -EINVAL; 339 rc = -EINVAL;
341 goto out_err; 340 goto out_err;
342 } 341 }
@@ -344,7 +343,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
344 nd->path.dentry, 343 nd->path.dentry,
345 referrals[i].node_name); 344 referrals[i].node_name);
346 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p", 345 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p",
347 __FUNCTION__, 346 __func__,
348 referrals[i].node_name, mnt)); 347 referrals[i].node_name, mnt));
349 348
350 /* complete mount procedure if we accured submount */ 349 /* complete mount procedure if we accured submount */
@@ -365,7 +364,7 @@ out:
365 FreeXid(xid); 364 FreeXid(xid);
366 free_dfs_info_array(referrals, num_referrals); 365 free_dfs_info_array(referrals, num_referrals);
367 kfree(full_path); 366 kfree(full_path);
368 cFYI(1, ("leaving %s" , __FUNCTION__)); 367 cFYI(1, ("leaving %s" , __func__));
369 return ERR_PTR(rc); 368 return ERR_PTR(rc);
370out_err: 369out_err:
371 path_put(&nd->path); 370 path_put(&nd->path);
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index f93932c21772..1cb5b0a9f2ac 100644
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * fs/cifs/cifsacl.c 2 * fs/cifs/cifsacl.c
3 * 3 *
4 * Copyright (C) International Business Machines Corp., 2007 4 * Copyright (C) International Business Machines Corp., 2007,2008
5 * Author(s): Steve French (sfrench@us.ibm.com) 5 * Author(s): Steve French (sfrench@us.ibm.com)
6 * 6 *
7 * Contains the routines for mapping CIFS/NTFS ACLs 7 * Contains the routines for mapping CIFS/NTFS ACLs
@@ -261,7 +261,7 @@ static void mode_to_access_flags(umode_t mode, umode_t bits_to_use,
261 return; 261 return;
262} 262}
263 263
264static __le16 fill_ace_for_sid(struct cifs_ace *pntace, 264static __u16 fill_ace_for_sid(struct cifs_ace *pntace,
265 const struct cifs_sid *psid, __u64 nmode, umode_t bits) 265 const struct cifs_sid *psid, __u64 nmode, umode_t bits)
266{ 266{
267 int i; 267 int i;
@@ -411,7 +411,7 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl,
411static int set_chmod_dacl(struct cifs_acl *pndacl, struct cifs_sid *pownersid, 411static int set_chmod_dacl(struct cifs_acl *pndacl, struct cifs_sid *pownersid,
412 struct cifs_sid *pgrpsid, __u64 nmode) 412 struct cifs_sid *pgrpsid, __u64 nmode)
413{ 413{
414 __le16 size = 0; 414 u16 size = 0;
415 struct cifs_acl *pnndacl; 415 struct cifs_acl *pnndacl;
416 416
417 pnndacl = (struct cifs_acl *)((char *)pndacl + sizeof(struct cifs_acl)); 417 pnndacl = (struct cifs_acl *)((char *)pndacl + sizeof(struct cifs_acl));
@@ -556,9 +556,9 @@ static int build_sec_desc(struct cifs_ntsd *pntsd, struct cifs_ntsd *pnntsd,
556 556
557/* Retrieve an ACL from the server */ 557/* Retrieve an ACL from the server */
558static struct cifs_ntsd *get_cifs_acl(u32 *pacllen, struct inode *inode, 558static struct cifs_ntsd *get_cifs_acl(u32 *pacllen, struct inode *inode,
559 const char *path) 559 const char *path, const __u16 *pfid)
560{ 560{
561 struct cifsFileInfo *open_file; 561 struct cifsFileInfo *open_file = NULL;
562 int unlock_file = FALSE; 562 int unlock_file = FALSE;
563 int xid; 563 int xid;
564 int rc = -EIO; 564 int rc = -EIO;
@@ -573,7 +573,11 @@ static struct cifs_ntsd *get_cifs_acl(u32 *pacllen, struct inode *inode,
573 return NULL; 573 return NULL;
574 574
575 xid = GetXid(); 575 xid = GetXid();
576 open_file = find_readable_file(CIFS_I(inode)); 576 if (pfid == NULL)
577 open_file = find_readable_file(CIFS_I(inode));
578 else
579 fid = *pfid;
580
577 sb = inode->i_sb; 581 sb = inode->i_sb;
578 if (sb == NULL) { 582 if (sb == NULL) {
579 FreeXid(xid); 583 FreeXid(xid);
@@ -584,7 +588,7 @@ static struct cifs_ntsd *get_cifs_acl(u32 *pacllen, struct inode *inode,
584 if (open_file) { 588 if (open_file) {
585 unlock_file = TRUE; 589 unlock_file = TRUE;
586 fid = open_file->netfid; 590 fid = open_file->netfid;
587 } else { 591 } else if (pfid == NULL) {
588 int oplock = FALSE; 592 int oplock = FALSE;
589 /* open file */ 593 /* open file */
590 rc = CIFSSMBOpen(xid, cifs_sb->tcon, path, FILE_OPEN, 594 rc = CIFSSMBOpen(xid, cifs_sb->tcon, path, FILE_OPEN,
@@ -600,10 +604,11 @@ static struct cifs_ntsd *get_cifs_acl(u32 *pacllen, struct inode *inode,
600 604
601 rc = CIFSSMBGetCIFSACL(xid, cifs_sb->tcon, fid, &pntsd, pacllen); 605 rc = CIFSSMBGetCIFSACL(xid, cifs_sb->tcon, fid, &pntsd, pacllen);
602 cFYI(1, ("GetCIFSACL rc = %d ACL len %d", rc, *pacllen)); 606 cFYI(1, ("GetCIFSACL rc = %d ACL len %d", rc, *pacllen));
603 if (unlock_file == TRUE) 607 if (unlock_file == TRUE) /* find_readable_file increments ref count */
604 atomic_dec(&open_file->wrtPending); 608 atomic_dec(&open_file->wrtPending);
605 else 609 else if (pfid == NULL) /* if opened above we have to close the handle */
606 CIFSSMBClose(xid, cifs_sb->tcon, fid); 610 CIFSSMBClose(xid, cifs_sb->tcon, fid);
611 /* else handle was passed in by caller */
607 612
608 FreeXid(xid); 613 FreeXid(xid);
609 return pntsd; 614 return pntsd;
@@ -664,14 +669,14 @@ static int set_cifs_acl(struct cifs_ntsd *pnntsd, __u32 acllen,
664} 669}
665 670
666/* Translate the CIFS ACL (simlar to NTFS ACL) for a file into mode bits */ 671/* Translate the CIFS ACL (simlar to NTFS ACL) for a file into mode bits */
667void acl_to_uid_mode(struct inode *inode, const char *path) 672void acl_to_uid_mode(struct inode *inode, const char *path, const __u16 *pfid)
668{ 673{
669 struct cifs_ntsd *pntsd = NULL; 674 struct cifs_ntsd *pntsd = NULL;
670 u32 acllen = 0; 675 u32 acllen = 0;
671 int rc = 0; 676 int rc = 0;
672 677
673 cFYI(DBG2, ("converting ACL to mode for %s", path)); 678 cFYI(DBG2, ("converting ACL to mode for %s", path));
674 pntsd = get_cifs_acl(&acllen, inode, path); 679 pntsd = get_cifs_acl(&acllen, inode, path, pfid);
675 680
676 /* if we can retrieve the ACL, now parse Access Control Entries, ACEs */ 681 /* if we can retrieve the ACL, now parse Access Control Entries, ACEs */
677 if (pntsd) 682 if (pntsd)
@@ -694,7 +699,7 @@ int mode_to_acl(struct inode *inode, const char *path, __u64 nmode)
694 cFYI(DBG2, ("set ACL from mode for %s", path)); 699 cFYI(DBG2, ("set ACL from mode for %s", path));
695 700
696 /* Get the security descriptor */ 701 /* Get the security descriptor */
697 pntsd = get_cifs_acl(&acllen, inode, path); 702 pntsd = get_cifs_acl(&acllen, inode, path, NULL);
698 703
699 /* Add three ACEs for owner, group, everyone getting rid of 704 /* Add three ACEs for owner, group, everyone getting rid of
700 other ACEs as chmod disables ACEs and set the security descriptor */ 705 other ACEs as chmod disables ACEs and set the security descriptor */
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 0af63e6b426b..7e5e0e78cd72 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -39,8 +39,8 @@ extern int smb_send(struct socket *, struct smb_hdr *,
39 unsigned int /* length */ , struct sockaddr *); 39 unsigned int /* length */ , struct sockaddr *);
40extern unsigned int _GetXid(void); 40extern unsigned int _GetXid(void);
41extern void _FreeXid(unsigned int); 41extern void _FreeXid(unsigned int);
42#define GetXid() (int)_GetXid(); cFYI(1,("CIFS VFS: in %s as Xid: %d with uid: %d",__FUNCTION__, xid,current->fsuid)); 42#define GetXid() (int)_GetXid(); cFYI(1,("CIFS VFS: in %s as Xid: %d with uid: %d",__func__, xid,current->fsuid));
43#define FreeXid(curr_xid) {_FreeXid(curr_xid); cFYI(1,("CIFS VFS: leaving %s (xid = %d) rc = %d",__FUNCTION__,curr_xid,(int)rc));} 43#define FreeXid(curr_xid) {_FreeXid(curr_xid); cFYI(1,("CIFS VFS: leaving %s (xid = %d) rc = %d",__func__,curr_xid,(int)rc));}
44extern char *build_path_from_dentry(struct dentry *); 44extern char *build_path_from_dentry(struct dentry *);
45extern char *build_wildcard_path_from_dentry(struct dentry *direntry); 45extern char *build_wildcard_path_from_dentry(struct dentry *direntry);
46/* extern void renew_parental_timestamps(struct dentry *direntry);*/ 46/* extern void renew_parental_timestamps(struct dentry *direntry);*/
@@ -92,11 +92,12 @@ extern struct timespec cnvrtDosUnixTm(__u16 date, __u16 time);
92extern int cifs_get_inode_info(struct inode **pinode, 92extern int cifs_get_inode_info(struct inode **pinode,
93 const unsigned char *search_path, 93 const unsigned char *search_path,
94 FILE_ALL_INFO * pfile_info, 94 FILE_ALL_INFO * pfile_info,
95 struct super_block *sb, int xid); 95 struct super_block *sb, int xid, const __u16 *pfid);
96extern int cifs_get_inode_info_unix(struct inode **pinode, 96extern int cifs_get_inode_info_unix(struct inode **pinode,
97 const unsigned char *search_path, 97 const unsigned char *search_path,
98 struct super_block *sb, int xid); 98 struct super_block *sb, int xid);
99extern void acl_to_uid_mode(struct inode *inode, const char *search_path); 99extern void acl_to_uid_mode(struct inode *inode, const char *path,
100 const __u16 *pfid);
100extern int mode_to_acl(struct inode *inode, const char *path, __u64); 101extern int mode_to_acl(struct inode *inode, const char *path, __u64);
101 102
102extern int cifs_mount(struct super_block *, struct cifs_sb_info *, char *, 103extern int cifs_mount(struct super_block *, struct cifs_sb_info *, char *,
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 4e83b47c4b34..0f5c62ba4038 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -229,7 +229,8 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
229 inode->i_sb, xid); 229 inode->i_sb, xid);
230 else { 230 else {
231 rc = cifs_get_inode_info(&newinode, full_path, 231 rc = cifs_get_inode_info(&newinode, full_path,
232 buf, inode->i_sb, xid); 232 buf, inode->i_sb, xid,
233 &fileHandle);
233 if (newinode) { 234 if (newinode) {
234 newinode->i_mode = mode; 235 newinode->i_mode = mode;
235 if ((oplock & CIFS_CREATE_ACTION) && 236 if ((oplock & CIFS_CREATE_ACTION) &&
@@ -483,7 +484,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
483 parent_dir_inode->i_sb, xid); 484 parent_dir_inode->i_sb, xid);
484 else 485 else
485 rc = cifs_get_inode_info(&newInode, full_path, NULL, 486 rc = cifs_get_inode_info(&newInode, full_path, NULL,
486 parent_dir_inode->i_sb, xid); 487 parent_dir_inode->i_sb, xid, NULL);
487 488
488 if ((rc == 0) && (newInode != NULL)) { 489 if ((rc == 0) && (newInode != NULL)) {
489 if (pTcon->nocase) 490 if (pTcon->nocase)
diff --git a/fs/cifs/dns_resolve.c b/fs/cifs/dns_resolve.c
index ef7f43824347..7cc86c418182 100644
--- a/fs/cifs/dns_resolve.c
+++ b/fs/cifs/dns_resolve.c
@@ -77,14 +77,14 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr)
77 /* search for server name delimiter */ 77 /* search for server name delimiter */
78 len = strlen(unc); 78 len = strlen(unc);
79 if (len < 3) { 79 if (len < 3) {
80 cFYI(1, ("%s: unc is too short: %s", __FUNCTION__, unc)); 80 cFYI(1, ("%s: unc is too short: %s", __func__, unc));
81 return -EINVAL; 81 return -EINVAL;
82 } 82 }
83 len -= 2; 83 len -= 2;
84 name = memchr(unc+2, '\\', len); 84 name = memchr(unc+2, '\\', len);
85 if (!name) { 85 if (!name) {
86 cFYI(1, ("%s: probably server name is whole unc: %s", 86 cFYI(1, ("%s: probably server name is whole unc: %s",
87 __FUNCTION__, unc)); 87 __func__, unc));
88 } else { 88 } else {
89 len = (name - unc) - 2/* leading // */; 89 len = (name - unc) - 2/* leading // */;
90 } 90 }
@@ -104,7 +104,7 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr)
104 if (*ip_addr) { 104 if (*ip_addr) {
105 memcpy(*ip_addr, rkey->payload.data, len); 105 memcpy(*ip_addr, rkey->payload.data, len);
106 (*ip_addr)[len] = '\0'; 106 (*ip_addr)[len] = '\0';
107 cFYI(1, ("%s: resolved: %s to %s", __FUNCTION__, 107 cFYI(1, ("%s: resolved: %s to %s", __func__,
108 rkey->description, 108 rkey->description,
109 *ip_addr 109 *ip_addr
110 )); 110 ));
@@ -114,7 +114,7 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr)
114 } 114 }
115 key_put(rkey); 115 key_put(rkey);
116 } else { 116 } else {
117 cERROR(1, ("%s: unable to resolve: %s", __FUNCTION__, name)); 117 cERROR(1, ("%s: unable to resolve: %s", __func__, name));
118 } 118 }
119 119
120 kfree(name); 120 kfree(name);
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index fa849c91d323..40b690073fc1 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -145,7 +145,7 @@ client_can_cache:
145 full_path, inode->i_sb, xid); 145 full_path, inode->i_sb, xid);
146 else 146 else
147 rc = cifs_get_inode_info(&file->f_path.dentry->d_inode, 147 rc = cifs_get_inode_info(&file->f_path.dentry->d_inode,
148 full_path, buf, inode->i_sb, xid); 148 full_path, buf, inode->i_sb, xid, NULL);
149 149
150 if ((*oplock & 0xF) == OPLOCK_EXCLUSIVE) { 150 if ((*oplock & 0xF) == OPLOCK_EXCLUSIVE) {
151 pCifsInode->clientCanCacheAll = TRUE; 151 pCifsInode->clientCanCacheAll = TRUE;
@@ -440,7 +440,7 @@ reopen_error_exit:
440 else 440 else
441 rc = cifs_get_inode_info(&inode, 441 rc = cifs_get_inode_info(&inode,
442 full_path, NULL, inode->i_sb, 442 full_path, NULL, inode->i_sb,
443 xid); 443 xid, NULL);
444 } /* else we are writing out data to server already 444 } /* else we are writing out data to server already
445 and could deadlock if we tried to flush data, and 445 and could deadlock if we tried to flush data, and
446 since we do not know if we have data that would 446 since we do not know if we have data that would
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 24eb4d392155..bc673c8c1e6b 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -30,7 +30,7 @@
30#include "cifs_fs_sb.h" 30#include "cifs_fs_sb.h"
31 31
32 32
33static void cifs_set_ops(struct inode *inode) 33static void cifs_set_ops(struct inode *inode, const bool is_dfs_referral)
34{ 34{
35 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); 35 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
36 36
@@ -57,8 +57,16 @@ static void cifs_set_ops(struct inode *inode)
57 inode->i_data.a_ops = &cifs_addr_ops; 57 inode->i_data.a_ops = &cifs_addr_ops;
58 break; 58 break;
59 case S_IFDIR: 59 case S_IFDIR:
60 inode->i_op = &cifs_dir_inode_ops; 60#ifdef CONFIG_CIFS_DFS_UPCALL
61 inode->i_fop = &cifs_dir_ops; 61 if (is_dfs_referral) {
62 inode->i_op = &cifs_dfs_referral_inode_operations;
63 } else {
64#else /* NO DFS support, treat as a directory */
65 {
66#endif
67 inode->i_op = &cifs_dir_inode_ops;
68 inode->i_fop = &cifs_dir_ops;
69 }
62 break; 70 break;
63 case S_IFLNK: 71 case S_IFLNK:
64 inode->i_op = &cifs_symlink_inode_ops; 72 inode->i_op = &cifs_symlink_inode_ops;
@@ -153,6 +161,30 @@ static void cifs_unix_info_to_inode(struct inode *inode,
153 spin_unlock(&inode->i_lock); 161 spin_unlock(&inode->i_lock);
154} 162}
155 163
164static const unsigned char *cifs_get_search_path(struct cifsTconInfo *pTcon,
165 const char *search_path)
166{
167 int tree_len;
168 int path_len;
169 char *tmp_path;
170
171 if (!(pTcon->Flags & SMB_SHARE_IS_IN_DFS))
172 return search_path;
173
174 /* use full path name for working with DFS */
175 tree_len = strnlen(pTcon->treeName, MAX_TREE_SIZE + 1);
176 path_len = strnlen(search_path, MAX_PATHCONF);
177
178 tmp_path = kmalloc(tree_len+path_len+1, GFP_KERNEL);
179 if (tmp_path == NULL)
180 return search_path;
181
182 strncpy(tmp_path, pTcon->treeName, tree_len);
183 strncpy(tmp_path+tree_len, search_path, path_len);
184 tmp_path[tree_len+path_len] = 0;
185 return tmp_path;
186}
187
156int cifs_get_inode_info_unix(struct inode **pinode, 188int cifs_get_inode_info_unix(struct inode **pinode,
157 const unsigned char *search_path, struct super_block *sb, int xid) 189 const unsigned char *search_path, struct super_block *sb, int xid)
158{ 190{
@@ -161,41 +193,31 @@ int cifs_get_inode_info_unix(struct inode **pinode,
161 struct cifsTconInfo *pTcon; 193 struct cifsTconInfo *pTcon;
162 struct inode *inode; 194 struct inode *inode;
163 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); 195 struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
164 char *tmp_path; 196 const unsigned char *full_path;
197 bool is_dfs_referral = false;
165 198
166 pTcon = cifs_sb->tcon; 199 pTcon = cifs_sb->tcon;
167 cFYI(1, ("Getting info on %s", search_path)); 200 cFYI(1, ("Getting info on %s", search_path));
201
202 full_path = cifs_get_search_path(pTcon, search_path);
203
204try_again_CIFSSMBUnixQPathInfo:
168 /* could have done a find first instead but this returns more info */ 205 /* could have done a find first instead but this returns more info */
169 rc = CIFSSMBUnixQPathInfo(xid, pTcon, search_path, &findData, 206 rc = CIFSSMBUnixQPathInfo(xid, pTcon, full_path, &findData,
170 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & 207 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
171 CIFS_MOUNT_MAP_SPECIAL_CHR); 208 CIFS_MOUNT_MAP_SPECIAL_CHR);
172/* dump_mem("\nUnixQPathInfo return data", &findData, 209/* dump_mem("\nUnixQPathInfo return data", &findData,
173 sizeof(findData)); */ 210 sizeof(findData)); */
174 if (rc) { 211 if (rc) {
175 if (rc == -EREMOTE) { 212 if (rc == -EREMOTE && !is_dfs_referral) {
176 tmp_path = 213 is_dfs_referral = true;
177 kmalloc(strnlen(pTcon->treeName, 214 if (full_path != search_path) {
178 MAX_TREE_SIZE + 1) + 215 kfree(full_path);
179 strnlen(search_path, MAX_PATHCONF) + 1, 216 full_path = search_path;
180 GFP_KERNEL); 217 }
181 if (tmp_path == NULL) 218 goto try_again_CIFSSMBUnixQPathInfo;
182 return -ENOMEM;
183
184 /* have to skip first of the double backslash of
185 UNC name */
186 strncpy(tmp_path, pTcon->treeName, MAX_TREE_SIZE);
187 strncat(tmp_path, search_path, MAX_PATHCONF);
188 rc = connect_to_dfs_path(xid, pTcon->ses,
189 /* treename + */ tmp_path,
190 cifs_sb->local_nls,
191 cifs_sb->mnt_cifs_flags &
192 CIFS_MOUNT_MAP_SPECIAL_CHR);
193 kfree(tmp_path);
194
195 /* BB fix up inode etc. */
196 } else if (rc) {
197 return rc;
198 } 219 }
220 goto cgiiu_exit;
199 } else { 221 } else {
200 struct cifsInodeInfo *cifsInfo; 222 struct cifsInodeInfo *cifsInfo;
201 __u64 num_of_bytes = le64_to_cpu(findData.NumOfBytes); 223 __u64 num_of_bytes = le64_to_cpu(findData.NumOfBytes);
@@ -204,8 +226,10 @@ int cifs_get_inode_info_unix(struct inode **pinode,
204 /* get new inode */ 226 /* get new inode */
205 if (*pinode == NULL) { 227 if (*pinode == NULL) {
206 *pinode = new_inode(sb); 228 *pinode = new_inode(sb);
207 if (*pinode == NULL) 229 if (*pinode == NULL) {
208 return -ENOMEM; 230 rc = -ENOMEM;
231 goto cgiiu_exit;
232 }
209 /* Is an i_ino of zero legal? */ 233 /* Is an i_ino of zero legal? */
210 /* Are there sanity checks we can use to ensure that 234 /* Are there sanity checks we can use to ensure that
211 the server is really filling in that field? */ 235 the server is really filling in that field? */
@@ -237,8 +261,11 @@ int cifs_get_inode_info_unix(struct inode **pinode,
237 (unsigned long) inode->i_size, 261 (unsigned long) inode->i_size,
238 (unsigned long long)inode->i_blocks)); 262 (unsigned long long)inode->i_blocks));
239 263
240 cifs_set_ops(inode); 264 cifs_set_ops(inode, is_dfs_referral);
241 } 265 }
266cgiiu_exit:
267 if (full_path != search_path)
268 kfree(full_path);
242 return rc; 269 return rc;
243} 270}
244 271
@@ -347,15 +374,16 @@ static int get_sfu_mode(struct inode *inode,
347 374
348int cifs_get_inode_info(struct inode **pinode, 375int cifs_get_inode_info(struct inode **pinode,
349 const unsigned char *search_path, FILE_ALL_INFO *pfindData, 376 const unsigned char *search_path, FILE_ALL_INFO *pfindData,
350 struct super_block *sb, int xid) 377 struct super_block *sb, int xid, const __u16 *pfid)
351{ 378{
352 int rc = 0; 379 int rc = 0;
353 struct cifsTconInfo *pTcon; 380 struct cifsTconInfo *pTcon;
354 struct inode *inode; 381 struct inode *inode;
355 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); 382 struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
356 char *tmp_path; 383 const unsigned char *full_path = NULL;
357 char *buf = NULL; 384 char *buf = NULL;
358 int adjustTZ = FALSE; 385 int adjustTZ = FALSE;
386 bool is_dfs_referral = false;
359 387
360 pTcon = cifs_sb->tcon; 388 pTcon = cifs_sb->tcon;
361 cFYI(1, ("Getting info on %s", search_path)); 389 cFYI(1, ("Getting info on %s", search_path));
@@ -373,8 +401,12 @@ int cifs_get_inode_info(struct inode **pinode,
373 if (buf == NULL) 401 if (buf == NULL)
374 return -ENOMEM; 402 return -ENOMEM;
375 pfindData = (FILE_ALL_INFO *)buf; 403 pfindData = (FILE_ALL_INFO *)buf;
404
405 full_path = cifs_get_search_path(pTcon, search_path);
406
407try_again_CIFSSMBQPathInfo:
376 /* could do find first instead but this returns more info */ 408 /* could do find first instead but this returns more info */
377 rc = CIFSSMBQPathInfo(xid, pTcon, search_path, pfindData, 409 rc = CIFSSMBQPathInfo(xid, pTcon, full_path, pfindData,
378 0 /* not legacy */, 410 0 /* not legacy */,
379 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & 411 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
380 CIFS_MOUNT_MAP_SPECIAL_CHR); 412 CIFS_MOUNT_MAP_SPECIAL_CHR);
@@ -382,7 +414,7 @@ int cifs_get_inode_info(struct inode **pinode,
382 when server claims no NT SMB support and the above call 414 when server claims no NT SMB support and the above call
383 failed at least once - set flag in tcon or mount */ 415 failed at least once - set flag in tcon or mount */
384 if ((rc == -EOPNOTSUPP) || (rc == -EINVAL)) { 416 if ((rc == -EOPNOTSUPP) || (rc == -EINVAL)) {
385 rc = SMBQueryInformation(xid, pTcon, search_path, 417 rc = SMBQueryInformation(xid, pTcon, full_path,
386 pfindData, cifs_sb->local_nls, 418 pfindData, cifs_sb->local_nls,
387 cifs_sb->mnt_cifs_flags & 419 cifs_sb->mnt_cifs_flags &
388 CIFS_MOUNT_MAP_SPECIAL_CHR); 420 CIFS_MOUNT_MAP_SPECIAL_CHR);
@@ -391,31 +423,15 @@ int cifs_get_inode_info(struct inode **pinode,
391 } 423 }
392 /* dump_mem("\nQPathInfo return data",&findData, sizeof(findData)); */ 424 /* dump_mem("\nQPathInfo return data",&findData, sizeof(findData)); */
393 if (rc) { 425 if (rc) {
394 if (rc == -EREMOTE) { 426 if (rc == -EREMOTE && !is_dfs_referral) {
395 tmp_path = 427 is_dfs_referral = true;
396 kmalloc(strnlen 428 if (full_path != search_path) {
397 (pTcon->treeName, 429 kfree(full_path);
398 MAX_TREE_SIZE + 1) + 430 full_path = search_path;
399 strnlen(search_path, MAX_PATHCONF) + 1,
400 GFP_KERNEL);
401 if (tmp_path == NULL) {
402 kfree(buf);
403 return -ENOMEM;
404 } 431 }
405 432 goto try_again_CIFSSMBQPathInfo;
406 strncpy(tmp_path, pTcon->treeName, MAX_TREE_SIZE);
407 strncat(tmp_path, search_path, MAX_PATHCONF);
408 rc = connect_to_dfs_path(xid, pTcon->ses,
409 /* treename + */ tmp_path,
410 cifs_sb->local_nls,
411 cifs_sb->mnt_cifs_flags &
412 CIFS_MOUNT_MAP_SPECIAL_CHR);
413 kfree(tmp_path);
414 /* BB fix up inode etc. */
415 } else if (rc) {
416 kfree(buf);
417 return rc;
418 } 433 }
434 goto cgii_exit;
419 } else { 435 } else {
420 struct cifsInodeInfo *cifsInfo; 436 struct cifsInodeInfo *cifsInfo;
421 __u32 attr = le32_to_cpu(pfindData->Attributes); 437 __u32 attr = le32_to_cpu(pfindData->Attributes);
@@ -424,8 +440,8 @@ int cifs_get_inode_info(struct inode **pinode,
424 if (*pinode == NULL) { 440 if (*pinode == NULL) {
425 *pinode = new_inode(sb); 441 *pinode = new_inode(sb);
426 if (*pinode == NULL) { 442 if (*pinode == NULL) {
427 kfree(buf); 443 rc = -ENOMEM;
428 return -ENOMEM; 444 goto cgii_exit;
429 } 445 }
430 /* Is an i_ino of zero legal? Can we use that to check 446 /* Is an i_ino of zero legal? Can we use that to check
431 if the server supports returning inode numbers? Are 447 if the server supports returning inode numbers? Are
@@ -559,7 +575,7 @@ int cifs_get_inode_info(struct inode **pinode,
559 /* fill in 0777 bits from ACL */ 575 /* fill in 0777 bits from ACL */
560 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) { 576 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
561 cFYI(1, ("Getting mode bits from ACL")); 577 cFYI(1, ("Getting mode bits from ACL"));
562 acl_to_uid_mode(inode, search_path); 578 acl_to_uid_mode(inode, search_path, pfid);
563 } 579 }
564#endif 580#endif
565 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) { 581 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) {
@@ -573,8 +589,11 @@ int cifs_get_inode_info(struct inode **pinode,
573 atomic_set(&cifsInfo->inUse, 1); 589 atomic_set(&cifsInfo->inUse, 1);
574 } 590 }
575 591
576 cifs_set_ops(inode); 592 cifs_set_ops(inode, is_dfs_referral);
577 } 593 }
594cgii_exit:
595 if (full_path != search_path)
596 kfree(full_path);
578 kfree(buf); 597 kfree(buf);
579 return rc; 598 return rc;
580} 599}
@@ -603,7 +622,8 @@ struct inode *cifs_iget(struct super_block *sb, unsigned long ino)
603 if (cifs_sb->tcon->unix_ext) 622 if (cifs_sb->tcon->unix_ext)
604 rc = cifs_get_inode_info_unix(&inode, "", inode->i_sb, xid); 623 rc = cifs_get_inode_info_unix(&inode, "", inode->i_sb, xid);
605 else 624 else
606 rc = cifs_get_inode_info(&inode, "", NULL, inode->i_sb, xid); 625 rc = cifs_get_inode_info(&inode, "", NULL, inode->i_sb, xid,
626 NULL);
607 if (rc && cifs_sb->tcon->ipc) { 627 if (rc && cifs_sb->tcon->ipc) {
608 cFYI(1, ("ipc connection - fake read inode")); 628 cFYI(1, ("ipc connection - fake read inode"));
609 inode->i_mode |= S_IFDIR; 629 inode->i_mode |= S_IFDIR;
@@ -804,7 +824,7 @@ static void posix_fill_in_inode(struct inode *tmp_inode,
804 local_size = tmp_inode->i_size; 824 local_size = tmp_inode->i_size;
805 825
806 cifs_unix_info_to_inode(tmp_inode, pData, 1); 826 cifs_unix_info_to_inode(tmp_inode, pData, 1);
807 cifs_set_ops(tmp_inode); 827 cifs_set_ops(tmp_inode, false);
808 828
809 if (!S_ISREG(tmp_inode->i_mode)) 829 if (!S_ISREG(tmp_inode->i_mode))
810 return; 830 return;
@@ -936,7 +956,7 @@ mkdir_get_info:
936 inode->i_sb, xid); 956 inode->i_sb, xid);
937 else 957 else
938 rc = cifs_get_inode_info(&newinode, full_path, NULL, 958 rc = cifs_get_inode_info(&newinode, full_path, NULL,
939 inode->i_sb, xid); 959 inode->i_sb, xid, NULL);
940 960
941 if (pTcon->nocase) 961 if (pTcon->nocase)
942 direntry->d_op = &cifs_ci_dentry_ops; 962 direntry->d_op = &cifs_ci_dentry_ops;
@@ -1218,7 +1238,7 @@ int cifs_revalidate(struct dentry *direntry)
1218 } 1238 }
1219 } else { 1239 } else {
1220 rc = cifs_get_inode_info(&direntry->d_inode, full_path, NULL, 1240 rc = cifs_get_inode_info(&direntry->d_inode, full_path, NULL,
1221 direntry->d_sb, xid); 1241 direntry->d_sb, xid, NULL);
1222 if (rc) { 1242 if (rc) {
1223 cFYI(1, ("error on getting revalidate info %d", rc)); 1243 cFYI(1, ("error on getting revalidate info %d", rc));
1224/* if (rc != -ENOENT) 1244/* if (rc != -ENOENT)
@@ -1407,11 +1427,10 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1407 } 1427 }
1408 cifsInode = CIFS_I(direntry->d_inode); 1428 cifsInode = CIFS_I(direntry->d_inode);
1409 1429
1410 /* BB check if we need to refresh inode from server now ? BB */ 1430 if ((attrs->ia_valid & ATTR_MTIME) || (attrs->ia_valid & ATTR_SIZE)) {
1411
1412 if (attrs->ia_valid & ATTR_SIZE) {
1413 /* 1431 /*
1414 Flush data before changing file size on server. If the 1432 Flush data before changing file size or changing the last
1433 write time of the file on the server. If the
1415 flush returns error, store it to report later and continue. 1434 flush returns error, store it to report later and continue.
1416 BB: This should be smarter. Why bother flushing pages that 1435 BB: This should be smarter. Why bother flushing pages that
1417 will be truncated anyway? Also, should we error out here if 1436 will be truncated anyway? Also, should we error out here if
@@ -1422,7 +1441,9 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1422 CIFS_I(direntry->d_inode)->write_behind_rc = rc; 1441 CIFS_I(direntry->d_inode)->write_behind_rc = rc;
1423 rc = 0; 1442 rc = 0;
1424 } 1443 }
1444 }
1425 1445
1446 if (attrs->ia_valid & ATTR_SIZE) {
1426 /* To avoid spurious oplock breaks from server, in the case of 1447 /* To avoid spurious oplock breaks from server, in the case of
1427 inodes that we already have open, avoid doing path based 1448 inodes that we already have open, avoid doing path based
1428 setting of file size if we can do it by handle. 1449 setting of file size if we can do it by handle.
diff --git a/fs/cifs/link.c b/fs/cifs/link.c
index 1d6fb01b8e6d..d4e7ec93285f 100644
--- a/fs/cifs/link.c
+++ b/fs/cifs/link.c
@@ -205,7 +205,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
205 inode->i_sb, xid); 205 inode->i_sb, xid);
206 else 206 else
207 rc = cifs_get_inode_info(&newinode, full_path, NULL, 207 rc = cifs_get_inode_info(&newinode, full_path, NULL,
208 inode->i_sb, xid); 208 inode->i_sb, xid, NULL);
209 209
210 if (rc != 0) { 210 if (rc != 0) {
211 cFYI(1, ("Create symlink ok, getinodeinfo fail rc = %d", 211 cFYI(1, ("Create symlink ok, getinodeinfo fail rc = %d",
diff --git a/fs/dquot.c b/fs/dquot.c
index 9c7feb62eed1..41b9dbd68b0e 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -1522,8 +1522,8 @@ int vfs_quota_off(struct super_block *sb, int type)
1522 truncate_inode_pages(&toputinode[cnt]->i_data, 0); 1522 truncate_inode_pages(&toputinode[cnt]->i_data, 0);
1523 mutex_unlock(&toputinode[cnt]->i_mutex); 1523 mutex_unlock(&toputinode[cnt]->i_mutex);
1524 mark_inode_dirty(toputinode[cnt]); 1524 mark_inode_dirty(toputinode[cnt]);
1525 iput(toputinode[cnt]);
1526 } 1525 }
1526 iput(toputinode[cnt]);
1527 mutex_unlock(&dqopt->dqonoff_mutex); 1527 mutex_unlock(&dqopt->dqonoff_mutex);
1528 } 1528 }
1529 if (sb->s_bdev) 1529 if (sb->s_bdev)
diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c
index 841a032050a7..5e596583946c 100644
--- a/fs/ecryptfs/dentry.c
+++ b/fs/ecryptfs/dentry.c
@@ -80,8 +80,8 @@ static void ecryptfs_d_release(struct dentry *dentry)
80{ 80{
81 if (ecryptfs_dentry_to_private(dentry)) { 81 if (ecryptfs_dentry_to_private(dentry)) {
82 if (ecryptfs_dentry_to_lower(dentry)) { 82 if (ecryptfs_dentry_to_lower(dentry)) {
83 mntput(ecryptfs_dentry_to_lower_mnt(dentry));
84 dput(ecryptfs_dentry_to_lower(dentry)); 83 dput(ecryptfs_dentry_to_lower(dentry));
84 mntput(ecryptfs_dentry_to_lower_mnt(dentry));
85 } 85 }
86 kmem_cache_free(ecryptfs_dentry_info_cache, 86 kmem_cache_free(ecryptfs_dentry_info_cache,
87 ecryptfs_dentry_to_private(dentry)); 87 ecryptfs_dentry_to_private(dentry));
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c
index d34e9967430a..a754d1848173 100644
--- a/fs/ext3/acl.c
+++ b/fs/ext3/acl.c
@@ -37,7 +37,7 @@ ext3_acl_from_disk(const void *value, size_t size)
37 return ERR_PTR(-EINVAL); 37 return ERR_PTR(-EINVAL);
38 if (count == 0) 38 if (count == 0)
39 return NULL; 39 return NULL;
40 acl = posix_acl_alloc(count, GFP_KERNEL); 40 acl = posix_acl_alloc(count, GFP_NOFS);
41 if (!acl) 41 if (!acl)
42 return ERR_PTR(-ENOMEM); 42 return ERR_PTR(-ENOMEM);
43 for (n=0; n < count; n++) { 43 for (n=0; n < count; n++) {
@@ -91,7 +91,7 @@ ext3_acl_to_disk(const struct posix_acl *acl, size_t *size)
91 91
92 *size = ext3_acl_size(acl->a_count); 92 *size = ext3_acl_size(acl->a_count);
93 ext_acl = kmalloc(sizeof(ext3_acl_header) + acl->a_count * 93 ext_acl = kmalloc(sizeof(ext3_acl_header) + acl->a_count *
94 sizeof(ext3_acl_entry), GFP_KERNEL); 94 sizeof(ext3_acl_entry), GFP_NOFS);
95 if (!ext_acl) 95 if (!ext_acl)
96 return ERR_PTR(-ENOMEM); 96 return ERR_PTR(-ENOMEM);
97 ext_acl->a_version = cpu_to_le32(EXT3_ACL_VERSION); 97 ext_acl->a_version = cpu_to_le32(EXT3_ACL_VERSION);
@@ -187,7 +187,7 @@ ext3_get_acl(struct inode *inode, int type)
187 } 187 }
188 retval = ext3_xattr_get(inode, name_index, "", NULL, 0); 188 retval = ext3_xattr_get(inode, name_index, "", NULL, 0);
189 if (retval > 0) { 189 if (retval > 0) {
190 value = kmalloc(retval, GFP_KERNEL); 190 value = kmalloc(retval, GFP_NOFS);
191 if (!value) 191 if (!value)
192 return ERR_PTR(-ENOMEM); 192 return ERR_PTR(-ENOMEM);
193 retval = ext3_xattr_get(inode, name_index, "", value, retval); 193 retval = ext3_xattr_get(inode, name_index, "", value, retval);
@@ -335,7 +335,7 @@ ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir)
335 if (error) 335 if (error)
336 goto cleanup; 336 goto cleanup;
337 } 337 }
338 clone = posix_acl_clone(acl, GFP_KERNEL); 338 clone = posix_acl_clone(acl, GFP_NOFS);
339 error = -ENOMEM; 339 error = -ENOMEM;
340 if (!clone) 340 if (!clone)
341 goto cleanup; 341 goto cleanup;
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c
index 9397d779c43d..0e97b6e07cb0 100644
--- a/fs/ext3/resize.c
+++ b/fs/ext3/resize.c
@@ -485,7 +485,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
485 goto exit_dindj; 485 goto exit_dindj;
486 486
487 n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *), 487 n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *),
488 GFP_KERNEL); 488 GFP_NOFS);
489 if (!n_group_desc) { 489 if (!n_group_desc) {
490 err = -ENOMEM; 490 err = -ENOMEM;
491 ext3_warning (sb, __FUNCTION__, 491 ext3_warning (sb, __FUNCTION__,
@@ -568,7 +568,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
568 int res, i; 568 int res, i;
569 int err; 569 int err;
570 570
571 primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_KERNEL); 571 primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_NOFS);
572 if (!primary) 572 if (!primary)
573 return -ENOMEM; 573 return -ENOMEM;
574 574
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
index fb89c299bece..a6ea4d6a8bb2 100644
--- a/fs/ext3/xattr.c
+++ b/fs/ext3/xattr.c
@@ -728,7 +728,7 @@ ext3_xattr_block_set(handle_t *handle, struct inode *inode,
728 ce = NULL; 728 ce = NULL;
729 } 729 }
730 ea_bdebug(bs->bh, "cloning"); 730 ea_bdebug(bs->bh, "cloning");
731 s->base = kmalloc(bs->bh->b_size, GFP_KERNEL); 731 s->base = kmalloc(bs->bh->b_size, GFP_NOFS);
732 error = -ENOMEM; 732 error = -ENOMEM;
733 if (s->base == NULL) 733 if (s->base == NULL)
734 goto cleanup; 734 goto cleanup;
@@ -740,7 +740,7 @@ ext3_xattr_block_set(handle_t *handle, struct inode *inode,
740 } 740 }
741 } else { 741 } else {
742 /* Allocate a buffer where we construct the new block. */ 742 /* Allocate a buffer where we construct the new block. */
743 s->base = kzalloc(sb->s_blocksize, GFP_KERNEL); 743 s->base = kzalloc(sb->s_blocksize, GFP_NOFS);
744 /* assert(header == s->base) */ 744 /* assert(header == s->base) */
745 error = -ENOMEM; 745 error = -ENOMEM;
746 if (s->base == NULL) 746 if (s->base == NULL)
diff --git a/fs/file_table.c b/fs/file_table.c
index 6d27befe2d48..986ff4ed0a7c 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -83,6 +83,12 @@ int proc_nr_files(ctl_table *table, int write, struct file *filp,
83/* Find an unused file structure and return a pointer to it. 83/* Find an unused file structure and return a pointer to it.
84 * Returns NULL, if there are no more free file structures or 84 * Returns NULL, if there are no more free file structures or
85 * we run out of memory. 85 * we run out of memory.
86 *
87 * Be very careful using this. You are responsible for
88 * getting write access to any mount that you might assign
89 * to this filp, if it is opened for write. If this is not
90 * done, you will imbalance int the mount's writer count
91 * and a warning at __fput() time.
86 */ 92 */
87struct file *get_empty_filp(void) 93struct file *get_empty_filp(void)
88{ 94{
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index c0076077d338..06557679ca41 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -751,7 +751,7 @@ int generic_osync_inode(struct inode *inode, struct address_space *mapping, int
751EXPORT_SYMBOL(generic_osync_inode); 751EXPORT_SYMBOL(generic_osync_inode);
752 752
753/** 753/**
754 * writeback_acquire: attempt to get exclusive writeback access to a device 754 * writeback_acquire - attempt to get exclusive writeback access to a device
755 * @bdi: the device's backing_dev_info structure 755 * @bdi: the device's backing_dev_info structure
756 * 756 *
757 * It is a waste of resources to have more than one pdflush thread blocked on 757 * It is a waste of resources to have more than one pdflush thread blocked on
@@ -768,7 +768,7 @@ int writeback_acquire(struct backing_dev_info *bdi)
768} 768}
769 769
770/** 770/**
771 * writeback_in_progress: determine whether there is writeback in progress 771 * writeback_in_progress - determine whether there is writeback in progress
772 * @bdi: the device's backing_dev_info structure. 772 * @bdi: the device's backing_dev_info structure.
773 * 773 *
774 * Determine whether there is writeback in progress against a backing device. 774 * Determine whether there is writeback in progress against a backing device.
@@ -779,7 +779,7 @@ int writeback_in_progress(struct backing_dev_info *bdi)
779} 779}
780 780
781/** 781/**
782 * writeback_release: relinquish exclusive writeback access against a device. 782 * writeback_release - relinquish exclusive writeback access against a device.
783 * @bdi: the device's backing_dev_info structure 783 * @bdi: the device's backing_dev_info structure
784 */ 784 */
785void writeback_release(struct backing_dev_info *bdi) 785void writeback_release(struct backing_dev_info *bdi)
diff --git a/fs/hfs/brec.c b/fs/hfs/brec.c
index 878bf25dbc6a..92fb358ce824 100644
--- a/fs/hfs/brec.c
+++ b/fs/hfs/brec.c
@@ -229,7 +229,7 @@ skip:
229static struct hfs_bnode *hfs_bnode_split(struct hfs_find_data *fd) 229static struct hfs_bnode *hfs_bnode_split(struct hfs_find_data *fd)
230{ 230{
231 struct hfs_btree *tree; 231 struct hfs_btree *tree;
232 struct hfs_bnode *node, *new_node; 232 struct hfs_bnode *node, *new_node, *next_node;
233 struct hfs_bnode_desc node_desc; 233 struct hfs_bnode_desc node_desc;
234 int num_recs, new_rec_off, new_off, old_rec_off; 234 int num_recs, new_rec_off, new_off, old_rec_off;
235 int data_start, data_end, size; 235 int data_start, data_end, size;
@@ -248,6 +248,17 @@ static struct hfs_bnode *hfs_bnode_split(struct hfs_find_data *fd)
248 new_node->type = node->type; 248 new_node->type = node->type;
249 new_node->height = node->height; 249 new_node->height = node->height;
250 250
251 if (node->next)
252 next_node = hfs_bnode_find(tree, node->next);
253 else
254 next_node = NULL;
255
256 if (IS_ERR(next_node)) {
257 hfs_bnode_put(node);
258 hfs_bnode_put(new_node);
259 return next_node;
260 }
261
251 size = tree->node_size / 2 - node->num_recs * 2 - 14; 262 size = tree->node_size / 2 - node->num_recs * 2 - 14;
252 old_rec_off = tree->node_size - 4; 263 old_rec_off = tree->node_size - 4;
253 num_recs = 1; 264 num_recs = 1;
@@ -261,6 +272,8 @@ static struct hfs_bnode *hfs_bnode_split(struct hfs_find_data *fd)
261 /* panic? */ 272 /* panic? */
262 hfs_bnode_put(node); 273 hfs_bnode_put(node);
263 hfs_bnode_put(new_node); 274 hfs_bnode_put(new_node);
275 if (next_node)
276 hfs_bnode_put(next_node);
264 return ERR_PTR(-ENOSPC); 277 return ERR_PTR(-ENOSPC);
265 } 278 }
266 279
@@ -315,8 +328,7 @@ static struct hfs_bnode *hfs_bnode_split(struct hfs_find_data *fd)
315 hfs_bnode_write(node, &node_desc, 0, sizeof(node_desc)); 328 hfs_bnode_write(node, &node_desc, 0, sizeof(node_desc));
316 329
317 /* update next bnode header */ 330 /* update next bnode header */
318 if (new_node->next) { 331 if (next_node) {
319 struct hfs_bnode *next_node = hfs_bnode_find(tree, new_node->next);
320 next_node->prev = new_node->this; 332 next_node->prev = new_node->this;
321 hfs_bnode_read(next_node, &node_desc, 0, sizeof(node_desc)); 333 hfs_bnode_read(next_node, &node_desc, 0, sizeof(node_desc));
322 node_desc.prev = cpu_to_be32(next_node->prev); 334 node_desc.prev = cpu_to_be32(next_node->prev);
diff --git a/fs/hppfs/hppfs_kern.c b/fs/hppfs/hppfs_kern.c
index a1e1f0f61aa5..8601d8ef3b55 100644
--- a/fs/hppfs/hppfs_kern.c
+++ b/fs/hppfs/hppfs_kern.c
@@ -1,23 +1,24 @@
1/* 1/*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) 2 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
3 * Licensed under the GPL 3 * Licensed under the GPL
4 */ 4 */
5 5
6#include <linux/fs.h> 6#include <linux/ctype.h>
7#include <linux/dcache.h>
7#include <linux/file.h> 8#include <linux/file.h>
8#include <linux/module.h> 9#include <linux/fs.h>
9#include <linux/init.h> 10#include <linux/init.h>
10#include <linux/slab.h>
11#include <linux/list.h>
12#include <linux/kernel.h> 11#include <linux/kernel.h>
13#include <linux/ctype.h> 12#include <linux/list.h>
14#include <linux/dcache.h> 13#include <linux/module.h>
14#include <linux/mount.h>
15#include <linux/slab.h>
15#include <linux/statfs.h> 16#include <linux/statfs.h>
17#include <linux/types.h>
16#include <asm/uaccess.h> 18#include <asm/uaccess.h>
17#include <asm/fcntl.h>
18#include "os.h" 19#include "os.h"
19 20
20static int init_inode(struct inode *inode, struct dentry *dentry); 21static struct inode *get_inode(struct super_block *, struct dentry *);
21 22
22struct hppfs_data { 23struct hppfs_data {
23 struct list_head list; 24 struct list_head list;
@@ -51,14 +52,14 @@ static int is_pid(struct dentry *dentry)
51 int i; 52 int i;
52 53
53 sb = dentry->d_sb; 54 sb = dentry->d_sb;
54 if((sb->s_op != &hppfs_sbops) || (dentry->d_parent != sb->s_root)) 55 if ((sb->s_op != &hppfs_sbops) || (dentry->d_parent != sb->s_root))
55 return(0); 56 return 0;
56 57
57 for(i = 0; i < dentry->d_name.len; i++){ 58 for (i = 0; i < dentry->d_name.len; i++) {
58 if(!isdigit(dentry->d_name.name[i])) 59 if (!isdigit(dentry->d_name.name[i]))
59 return(0); 60 return 0;
60 } 61 }
61 return(1); 62 return 1;
62} 63}
63 64
64static char *dentry_name(struct dentry *dentry, int extra) 65static char *dentry_name(struct dentry *dentry, int extra)
@@ -70,8 +71,8 @@ static char *dentry_name(struct dentry *dentry, int extra)
70 71
71 len = 0; 72 len = 0;
72 parent = dentry; 73 parent = dentry;
73 while(parent->d_parent != parent){ 74 while (parent->d_parent != parent) {
74 if(is_pid(parent)) 75 if (is_pid(parent))
75 len += strlen("pid") + 1; 76 len += strlen("pid") + 1;
76 else len += parent->d_name.len + 1; 77 else len += parent->d_name.len + 1;
77 parent = parent->d_parent; 78 parent = parent->d_parent;
@@ -80,12 +81,13 @@ static char *dentry_name(struct dentry *dentry, int extra)
80 root = "proc"; 81 root = "proc";
81 len += strlen(root); 82 len += strlen(root);
82 name = kmalloc(len + extra + 1, GFP_KERNEL); 83 name = kmalloc(len + extra + 1, GFP_KERNEL);
83 if(name == NULL) return(NULL); 84 if (name == NULL)
85 return NULL;
84 86
85 name[len] = '\0'; 87 name[len] = '\0';
86 parent = dentry; 88 parent = dentry;
87 while(parent->d_parent != parent){ 89 while (parent->d_parent != parent) {
88 if(is_pid(parent)){ 90 if (is_pid(parent)) {
89 seg_name = "pid"; 91 seg_name = "pid";
90 seg_len = strlen("pid"); 92 seg_len = strlen("pid");
91 } 93 }
@@ -100,27 +102,25 @@ static char *dentry_name(struct dentry *dentry, int extra)
100 parent = parent->d_parent; 102 parent = parent->d_parent;
101 } 103 }
102 strncpy(name, root, strlen(root)); 104 strncpy(name, root, strlen(root));
103 return(name); 105 return name;
104} 106}
105 107
106struct dentry_operations hppfs_dentry_ops = {
107};
108
109static int file_removed(struct dentry *dentry, const char *file) 108static int file_removed(struct dentry *dentry, const char *file)
110{ 109{
111 char *host_file; 110 char *host_file;
112 int extra, fd; 111 int extra, fd;
113 112
114 extra = 0; 113 extra = 0;
115 if(file != NULL) extra += strlen(file) + 1; 114 if (file != NULL)
115 extra += strlen(file) + 1;
116 116
117 host_file = dentry_name(dentry, extra + strlen("/remove")); 117 host_file = dentry_name(dentry, extra + strlen("/remove"));
118 if(host_file == NULL){ 118 if (host_file == NULL) {
119 printk("file_removed : allocation failed\n"); 119 printk(KERN_ERR "file_removed : allocation failed\n");
120 return(-ENOMEM); 120 return -ENOMEM;
121 } 121 }
122 122
123 if(file != NULL){ 123 if (file != NULL) {
124 strcat(host_file, "/"); 124 strcat(host_file, "/");
125 strcat(host_file, file); 125 strcat(host_file, file);
126 } 126 }
@@ -128,45 +128,11 @@ static int file_removed(struct dentry *dentry, const char *file)
128 128
129 fd = os_open_file(host_file, of_read(OPENFLAGS()), 0); 129 fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
130 kfree(host_file); 130 kfree(host_file);
131 if(fd > 0){ 131 if (fd > 0) {
132 os_close_file(fd); 132 os_close_file(fd);
133 return(1); 133 return 1;
134 }
135 return(0);
136}
137
138static void hppfs_read_inode(struct inode *ino)
139{
140 struct inode *proc_ino;
141
142 if(HPPFS_I(ino)->proc_dentry == NULL)
143 return;
144
145 proc_ino = HPPFS_I(ino)->proc_dentry->d_inode;
146 ino->i_uid = proc_ino->i_uid;
147 ino->i_gid = proc_ino->i_gid;
148 ino->i_atime = proc_ino->i_atime;
149 ino->i_mtime = proc_ino->i_mtime;
150 ino->i_ctime = proc_ino->i_ctime;
151 ino->i_ino = proc_ino->i_ino;
152 ino->i_mode = proc_ino->i_mode;
153 ino->i_nlink = proc_ino->i_nlink;
154 ino->i_size = proc_ino->i_size;
155 ino->i_blocks = proc_ino->i_blocks;
156}
157
158static struct inode *hppfs_iget(struct super_block *sb)
159{
160 struct inode *inode;
161
162 inode = iget_locked(sb, 0);
163 if (!inode)
164 return ERR_PTR(-ENOMEM);
165 if (inode->i_state & I_NEW) {
166 hppfs_read_inode(inode);
167 unlock_new_inode(inode);
168 } 134 }
169 return inode; 135 return 0;
170} 136}
171 137
172static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry, 138static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry,
@@ -177,55 +143,45 @@ static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry,
177 int err, deleted; 143 int err, deleted;
178 144
179 deleted = file_removed(dentry, NULL); 145 deleted = file_removed(dentry, NULL);
180 if(deleted < 0) 146 if (deleted < 0)
181 return(ERR_PTR(deleted)); 147 return ERR_PTR(deleted);
182 else if(deleted) 148 else if (deleted)
183 return(ERR_PTR(-ENOENT)); 149 return ERR_PTR(-ENOENT);
184 150
185 err = -ENOMEM; 151 err = -ENOMEM;
186 parent = HPPFS_I(ino)->proc_dentry; 152 parent = HPPFS_I(ino)->proc_dentry;
187 mutex_lock(&parent->d_inode->i_mutex); 153 mutex_lock(&parent->d_inode->i_mutex);
188 proc_dentry = d_lookup(parent, &dentry->d_name); 154 proc_dentry = d_lookup(parent, &dentry->d_name);
189 if(proc_dentry == NULL){ 155 if (proc_dentry == NULL) {
190 proc_dentry = d_alloc(parent, &dentry->d_name); 156 proc_dentry = d_alloc(parent, &dentry->d_name);
191 if(proc_dentry == NULL){ 157 if (proc_dentry == NULL) {
192 mutex_unlock(&parent->d_inode->i_mutex); 158 mutex_unlock(&parent->d_inode->i_mutex);
193 goto out; 159 goto out;
194 } 160 }
195 new = (*parent->d_inode->i_op->lookup)(parent->d_inode, 161 new = (*parent->d_inode->i_op->lookup)(parent->d_inode,
196 proc_dentry, NULL); 162 proc_dentry, NULL);
197 if(new){ 163 if (new) {
198 dput(proc_dentry); 164 dput(proc_dentry);
199 proc_dentry = new; 165 proc_dentry = new;
200 } 166 }
201 } 167 }
202 mutex_unlock(&parent->d_inode->i_mutex); 168 mutex_unlock(&parent->d_inode->i_mutex);
203 169
204 if(IS_ERR(proc_dentry)) 170 if (IS_ERR(proc_dentry))
205 return(proc_dentry); 171 return proc_dentry;
206 172
207 inode = hppfs_iget(ino->i_sb); 173 err = -ENOMEM;
208 if (IS_ERR(inode)) { 174 inode = get_inode(ino->i_sb, proc_dentry);
209 err = PTR_ERR(inode); 175 if (!inode)
210 goto out_dput; 176 goto out_dput;
211 }
212
213 err = init_inode(inode, proc_dentry);
214 if(err)
215 goto out_put;
216
217 hppfs_read_inode(inode);
218 177
219 d_add(dentry, inode); 178 d_add(dentry, inode);
220 dentry->d_op = &hppfs_dentry_ops; 179 return NULL;
221 return(NULL);
222 180
223 out_put:
224 iput(inode);
225 out_dput: 181 out_dput:
226 dput(proc_dentry); 182 dput(proc_dentry);
227 out: 183 out:
228 return(ERR_PTR(err)); 184 return ERR_PTR(err);
229} 185}
230 186
231static const struct inode_operations hppfs_file_iops = { 187static const struct inode_operations hppfs_file_iops = {
@@ -239,15 +195,16 @@ static ssize_t read_proc(struct file *file, char __user *buf, ssize_t count,
239 195
240 read = file->f_path.dentry->d_inode->i_fop->read; 196 read = file->f_path.dentry->d_inode->i_fop->read;
241 197
242 if(!is_user) 198 if (!is_user)
243 set_fs(KERNEL_DS); 199 set_fs(KERNEL_DS);
244 200
245 n = (*read)(file, buf, count, &file->f_pos); 201 n = (*read)(file, buf, count, &file->f_pos);
246 202
247 if(!is_user) 203 if (!is_user)
248 set_fs(USER_DS); 204 set_fs(USER_DS);
249 205
250 if(ppos) *ppos = file->f_pos; 206 if (ppos)
207 *ppos = file->f_pos;
251 return n; 208 return n;
252} 209}
253 210
@@ -259,24 +216,23 @@ static ssize_t hppfs_read_file(int fd, char __user *buf, ssize_t count)
259 216
260 n = -ENOMEM; 217 n = -ENOMEM;
261 new_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); 218 new_buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
262 if(new_buf == NULL){ 219 if (new_buf == NULL) {
263 printk("hppfs_read_file : kmalloc failed\n"); 220 printk(KERN_ERR "hppfs_read_file : kmalloc failed\n");
264 goto out; 221 goto out;
265 } 222 }
266 n = 0; 223 n = 0;
267 while(count > 0){ 224 while (count > 0) {
268 cur = min_t(ssize_t, count, PAGE_SIZE); 225 cur = min_t(ssize_t, count, PAGE_SIZE);
269 err = os_read_file(fd, new_buf, cur); 226 err = os_read_file(fd, new_buf, cur);
270 if(err < 0){ 227 if (err < 0) {
271 printk("hppfs_read : read failed, errno = %d\n", 228 printk(KERN_ERR "hppfs_read : read failed, "
272 err); 229 "errno = %d\n", err);
273 n = err; 230 n = err;
274 goto out_free; 231 goto out_free;
275 } 232 } else if (err == 0)
276 else if(err == 0)
277 break; 233 break;
278 234
279 if(copy_to_user(buf, new_buf, err)){ 235 if (copy_to_user(buf, new_buf, err)) {
280 n = -EFAULT; 236 n = -EFAULT;
281 goto out_free; 237 goto out_free;
282 } 238 }
@@ -297,35 +253,36 @@ static ssize_t hppfs_read(struct file *file, char __user *buf, size_t count,
297 loff_t off; 253 loff_t off;
298 int err; 254 int err;
299 255
300 if(hppfs->contents != NULL){ 256 if (hppfs->contents != NULL) {
301 if(*ppos >= hppfs->len) return(0); 257 if (*ppos >= hppfs->len)
258 return 0;
302 259
303 data = hppfs->contents; 260 data = hppfs->contents;
304 off = *ppos; 261 off = *ppos;
305 while(off >= sizeof(data->contents)){ 262 while (off >= sizeof(data->contents)) {
306 data = list_entry(data->list.next, struct hppfs_data, 263 data = list_entry(data->list.next, struct hppfs_data,
307 list); 264 list);
308 off -= sizeof(data->contents); 265 off -= sizeof(data->contents);
309 } 266 }
310 267
311 if(off + count > hppfs->len) 268 if (off + count > hppfs->len)
312 count = hppfs->len - off; 269 count = hppfs->len - off;
313 copy_to_user(buf, &data->contents[off], count); 270 copy_to_user(buf, &data->contents[off], count);
314 *ppos += count; 271 *ppos += count;
315 } 272 } else if (hppfs->host_fd != -1) {
316 else if(hppfs->host_fd != -1){
317 err = os_seek_file(hppfs->host_fd, *ppos); 273 err = os_seek_file(hppfs->host_fd, *ppos);
318 if(err){ 274 if (err) {
319 printk("hppfs_read : seek failed, errno = %d\n", err); 275 printk(KERN_ERR "hppfs_read : seek failed, "
320 return(err); 276 "errno = %d\n", err);
277 return err;
321 } 278 }
322 count = hppfs_read_file(hppfs->host_fd, buf, count); 279 count = hppfs_read_file(hppfs->host_fd, buf, count);
323 if(count > 0) 280 if (count > 0)
324 *ppos += count; 281 *ppos += count;
325 } 282 }
326 else count = read_proc(hppfs->proc_file, buf, count, ppos, 1); 283 else count = read_proc(hppfs->proc_file, buf, count, ppos, 1);
327 284
328 return(count); 285 return count;
329} 286}
330 287
331static ssize_t hppfs_write(struct file *file, const char __user *buf, size_t len, 288static ssize_t hppfs_write(struct file *file, const char __user *buf, size_t len,
@@ -342,7 +299,7 @@ static ssize_t hppfs_write(struct file *file, const char __user *buf, size_t len
342 err = (*write)(proc_file, buf, len, &proc_file->f_pos); 299 err = (*write)(proc_file, buf, len, &proc_file->f_pos);
343 file->f_pos = proc_file->f_pos; 300 file->f_pos = proc_file->f_pos;
344 301
345 return(err); 302 return err;
346} 303}
347 304
348static int open_host_sock(char *host_file, int *filter_out) 305static int open_host_sock(char *host_file, int *filter_out)
@@ -354,13 +311,13 @@ static int open_host_sock(char *host_file, int *filter_out)
354 strcpy(end, "/rw"); 311 strcpy(end, "/rw");
355 *filter_out = 1; 312 *filter_out = 1;
356 fd = os_connect_socket(host_file); 313 fd = os_connect_socket(host_file);
357 if(fd > 0) 314 if (fd > 0)
358 return(fd); 315 return fd;
359 316
360 strcpy(end, "/r"); 317 strcpy(end, "/r");
361 *filter_out = 0; 318 *filter_out = 0;
362 fd = os_connect_socket(host_file); 319 fd = os_connect_socket(host_file);
363 return(fd); 320 return fd;
364} 321}
365 322
366static void free_contents(struct hppfs_data *head) 323static void free_contents(struct hppfs_data *head)
@@ -368,9 +325,10 @@ static void free_contents(struct hppfs_data *head)
368 struct hppfs_data *data; 325 struct hppfs_data *data;
369 struct list_head *ele, *next; 326 struct list_head *ele, *next;
370 327
371 if(head == NULL) return; 328 if (head == NULL)
329 return;
372 330
373 list_for_each_safe(ele, next, &head->list){ 331 list_for_each_safe(ele, next, &head->list) {
374 data = list_entry(ele, struct hppfs_data, list); 332 data = list_entry(ele, struct hppfs_data, list);
375 kfree(data); 333 kfree(data);
376 } 334 }
@@ -387,8 +345,8 @@ static struct hppfs_data *hppfs_get_data(int fd, int filter,
387 345
388 err = -ENOMEM; 346 err = -ENOMEM;
389 data = kmalloc(sizeof(*data), GFP_KERNEL); 347 data = kmalloc(sizeof(*data), GFP_KERNEL);
390 if(data == NULL){ 348 if (data == NULL) {
391 printk("hppfs_get_data : head allocation failed\n"); 349 printk(KERN_ERR "hppfs_get_data : head allocation failed\n");
392 goto failed; 350 goto failed;
393 } 351 }
394 352
@@ -397,36 +355,36 @@ static struct hppfs_data *hppfs_get_data(int fd, int filter,
397 head = data; 355 head = data;
398 *size_out = 0; 356 *size_out = 0;
399 357
400 if(filter){ 358 if (filter) {
401 while((n = read_proc(proc_file, data->contents, 359 while ((n = read_proc(proc_file, data->contents,
402 sizeof(data->contents), NULL, 0)) > 0) 360 sizeof(data->contents), NULL, 0)) > 0)
403 os_write_file(fd, data->contents, n); 361 os_write_file(fd, data->contents, n);
404 err = os_shutdown_socket(fd, 0, 1); 362 err = os_shutdown_socket(fd, 0, 1);
405 if(err){ 363 if (err) {
406 printk("hppfs_get_data : failed to shut down " 364 printk(KERN_ERR "hppfs_get_data : failed to shut down "
407 "socket\n"); 365 "socket\n");
408 goto failed_free; 366 goto failed_free;
409 } 367 }
410 } 368 }
411 while(1){ 369 while (1) {
412 n = os_read_file(fd, data->contents, sizeof(data->contents)); 370 n = os_read_file(fd, data->contents, sizeof(data->contents));
413 if(n < 0){ 371 if (n < 0) {
414 err = n; 372 err = n;
415 printk("hppfs_get_data : read failed, errno = %d\n", 373 printk(KERN_ERR "hppfs_get_data : read failed, "
416 err); 374 "errno = %d\n", err);
417 goto failed_free; 375 goto failed_free;
418 } 376 } else if (n == 0)
419 else if(n == 0)
420 break; 377 break;
421 378
422 *size_out += n; 379 *size_out += n;
423 380
424 if(n < sizeof(data->contents)) 381 if (n < sizeof(data->contents))
425 break; 382 break;
426 383
427 new = kmalloc(sizeof(*data), GFP_KERNEL); 384 new = kmalloc(sizeof(*data), GFP_KERNEL);
428 if(new == 0){ 385 if (new == 0) {
429 printk("hppfs_get_data : data allocation failed\n"); 386 printk(KERN_ERR "hppfs_get_data : data allocation "
387 "failed\n");
430 err = -ENOMEM; 388 err = -ENOMEM;
431 goto failed_free; 389 goto failed_free;
432 } 390 }
@@ -435,12 +393,12 @@ static struct hppfs_data *hppfs_get_data(int fd, int filter,
435 list_add(&new->list, &data->list); 393 list_add(&new->list, &data->list);
436 data = new; 394 data = new;
437 } 395 }
438 return(head); 396 return head;
439 397
440 failed_free: 398 failed_free:
441 free_contents(head); 399 free_contents(head);
442 failed: 400 failed:
443 return(ERR_PTR(err)); 401 return ERR_PTR(err);
444} 402}
445 403
446static struct hppfs_private *hppfs_data(void) 404static struct hppfs_private *hppfs_data(void)
@@ -448,77 +406,79 @@ static struct hppfs_private *hppfs_data(void)
448 struct hppfs_private *data; 406 struct hppfs_private *data;
449 407
450 data = kmalloc(sizeof(*data), GFP_KERNEL); 408 data = kmalloc(sizeof(*data), GFP_KERNEL);
451 if(data == NULL) 409 if (data == NULL)
452 return(data); 410 return data;
453 411
454 *data = ((struct hppfs_private ) { .host_fd = -1, 412 *data = ((struct hppfs_private ) { .host_fd = -1,
455 .len = -1, 413 .len = -1,
456 .contents = NULL } ); 414 .contents = NULL } );
457 return(data); 415 return data;
458} 416}
459 417
460static int file_mode(int fmode) 418static int file_mode(int fmode)
461{ 419{
462 if(fmode == (FMODE_READ | FMODE_WRITE)) 420 if (fmode == (FMODE_READ | FMODE_WRITE))
463 return(O_RDWR); 421 return O_RDWR;
464 if(fmode == FMODE_READ) 422 if (fmode == FMODE_READ)
465 return(O_RDONLY); 423 return O_RDONLY;
466 if(fmode == FMODE_WRITE) 424 if (fmode == FMODE_WRITE)
467 return(O_WRONLY); 425 return O_WRONLY;
468 return(0); 426 return 0;
469} 427}
470 428
471static int hppfs_open(struct inode *inode, struct file *file) 429static int hppfs_open(struct inode *inode, struct file *file)
472{ 430{
473 struct hppfs_private *data; 431 struct hppfs_private *data;
474 struct dentry *proc_dentry; 432 struct dentry *proc_dentry;
433 struct vfsmount *proc_mnt;
475 char *host_file; 434 char *host_file;
476 int err, fd, type, filter; 435 int err, fd, type, filter;
477 436
478 err = -ENOMEM; 437 err = -ENOMEM;
479 data = hppfs_data(); 438 data = hppfs_data();
480 if(data == NULL) 439 if (data == NULL)
481 goto out; 440 goto out;
482 441
483 host_file = dentry_name(file->f_path.dentry, strlen("/rw")); 442 host_file = dentry_name(file->f_path.dentry, strlen("/rw"));
484 if(host_file == NULL) 443 if (host_file == NULL)
485 goto out_free2; 444 goto out_free2;
486 445
487 proc_dentry = HPPFS_I(inode)->proc_dentry; 446 proc_dentry = HPPFS_I(inode)->proc_dentry;
447 proc_mnt = inode->i_sb->s_fs_info;
488 448
489 /* XXX This isn't closed anywhere */ 449 /* XXX This isn't closed anywhere */
490 data->proc_file = dentry_open(dget(proc_dentry), NULL, 450 data->proc_file = dentry_open(dget(proc_dentry), mntget(proc_mnt),
491 file_mode(file->f_mode)); 451 file_mode(file->f_mode));
492 err = PTR_ERR(data->proc_file); 452 err = PTR_ERR(data->proc_file);
493 if(IS_ERR(data->proc_file)) 453 if (IS_ERR(data->proc_file))
494 goto out_free1; 454 goto out_free1;
495 455
496 type = os_file_type(host_file); 456 type = os_file_type(host_file);
497 if(type == OS_TYPE_FILE){ 457 if (type == OS_TYPE_FILE) {
498 fd = os_open_file(host_file, of_read(OPENFLAGS()), 0); 458 fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
499 if(fd >= 0) 459 if (fd >= 0)
500 data->host_fd = fd; 460 data->host_fd = fd;
501 else printk("hppfs_open : failed to open '%s', errno = %d\n", 461 else
502 host_file, -fd); 462 printk(KERN_ERR "hppfs_open : failed to open '%s', "
463 "errno = %d\n", host_file, -fd);
503 464
504 data->contents = NULL; 465 data->contents = NULL;
505 } 466 } else if (type == OS_TYPE_DIR) {
506 else if(type == OS_TYPE_DIR){
507 fd = open_host_sock(host_file, &filter); 467 fd = open_host_sock(host_file, &filter);
508 if(fd > 0){ 468 if (fd > 0) {
509 data->contents = hppfs_get_data(fd, filter, 469 data->contents = hppfs_get_data(fd, filter,
510 data->proc_file, 470 data->proc_file,
511 file, &data->len); 471 file, &data->len);
512 if(!IS_ERR(data->contents)) 472 if (!IS_ERR(data->contents))
513 data->host_fd = fd; 473 data->host_fd = fd;
514 } 474 } else
515 else printk("hppfs_open : failed to open a socket in " 475 printk(KERN_ERR "hppfs_open : failed to open a socket "
516 "'%s', errno = %d\n", host_file, -fd); 476 "in '%s', errno = %d\n", host_file, -fd);
517 } 477 }
518 kfree(host_file); 478 kfree(host_file);
519 479
520 file->private_data = data; 480 file->private_data = data;
521 return(0); 481 return 0;
522 482
523 out_free1: 483 out_free1:
524 kfree(host_file); 484 kfree(host_file);
@@ -526,34 +486,36 @@ static int hppfs_open(struct inode *inode, struct file *file)
526 free_contents(data->contents); 486 free_contents(data->contents);
527 kfree(data); 487 kfree(data);
528 out: 488 out:
529 return(err); 489 return err;
530} 490}
531 491
532static int hppfs_dir_open(struct inode *inode, struct file *file) 492static int hppfs_dir_open(struct inode *inode, struct file *file)
533{ 493{
534 struct hppfs_private *data; 494 struct hppfs_private *data;
535 struct dentry *proc_dentry; 495 struct dentry *proc_dentry;
496 struct vfsmount *proc_mnt;
536 int err; 497 int err;
537 498
538 err = -ENOMEM; 499 err = -ENOMEM;
539 data = hppfs_data(); 500 data = hppfs_data();
540 if(data == NULL) 501 if (data == NULL)
541 goto out; 502 goto out;
542 503
543 proc_dentry = HPPFS_I(inode)->proc_dentry; 504 proc_dentry = HPPFS_I(inode)->proc_dentry;
544 data->proc_file = dentry_open(dget(proc_dentry), NULL, 505 proc_mnt = inode->i_sb->s_fs_info;
506 data->proc_file = dentry_open(dget(proc_dentry), mntget(proc_mnt),
545 file_mode(file->f_mode)); 507 file_mode(file->f_mode));
546 err = PTR_ERR(data->proc_file); 508 err = PTR_ERR(data->proc_file);
547 if(IS_ERR(data->proc_file)) 509 if (IS_ERR(data->proc_file))
548 goto out_free; 510 goto out_free;
549 511
550 file->private_data = data; 512 file->private_data = data;
551 return(0); 513 return 0;
552 514
553 out_free: 515 out_free:
554 kfree(data); 516 kfree(data);
555 out: 517 out:
556 return(err); 518 return err;
557} 519}
558 520
559static loff_t hppfs_llseek(struct file *file, loff_t off, int where) 521static loff_t hppfs_llseek(struct file *file, loff_t off, int where)
@@ -564,13 +526,13 @@ static loff_t hppfs_llseek(struct file *file, loff_t off, int where)
564 loff_t ret; 526 loff_t ret;
565 527
566 llseek = proc_file->f_path.dentry->d_inode->i_fop->llseek; 528 llseek = proc_file->f_path.dentry->d_inode->i_fop->llseek;
567 if(llseek != NULL){ 529 if (llseek != NULL) {
568 ret = (*llseek)(proc_file, off, where); 530 ret = (*llseek)(proc_file, off, where);
569 if(ret < 0) 531 if (ret < 0)
570 return(ret); 532 return ret;
571 } 533 }
572 534
573 return(default_llseek(file, off, where)); 535 return default_llseek(file, off, where);
574} 536}
575 537
576static const struct file_operations hppfs_file_fops = { 538static const struct file_operations hppfs_file_fops = {
@@ -592,11 +554,11 @@ static int hppfs_filldir(void *d, const char *name, int size,
592{ 554{
593 struct hppfs_dirent *dirent = d; 555 struct hppfs_dirent *dirent = d;
594 556
595 if(file_removed(dirent->dentry, name)) 557 if (file_removed(dirent->dentry, name))
596 return(0); 558 return 0;
597 559
598 return((*dirent->filldir)(dirent->vfs_dirent, name, size, offset, 560 return (*dirent->filldir)(dirent->vfs_dirent, name, size, offset,
599 inode, type)); 561 inode, type);
600} 562}
601 563
602static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir) 564static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir)
@@ -607,7 +569,8 @@ static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir)
607 struct hppfs_dirent dirent = ((struct hppfs_dirent) 569 struct hppfs_dirent dirent = ((struct hppfs_dirent)
608 { .vfs_dirent = ent, 570 { .vfs_dirent = ent,
609 .filldir = filldir, 571 .filldir = filldir,
610 .dentry = file->f_path.dentry } ); 572 .dentry = file->f_path.dentry
573 });
611 int err; 574 int err;
612 575
613 readdir = proc_file->f_path.dentry->d_inode->i_fop->readdir; 576 readdir = proc_file->f_path.dentry->d_inode->i_fop->readdir;
@@ -616,12 +579,12 @@ static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir)
616 err = (*readdir)(proc_file, &dirent, hppfs_filldir); 579 err = (*readdir)(proc_file, &dirent, hppfs_filldir);
617 file->f_pos = proc_file->f_pos; 580 file->f_pos = proc_file->f_pos;
618 581
619 return(err); 582 return err;
620} 583}
621 584
622static int hppfs_fsync(struct file *file, struct dentry *dentry, int datasync) 585static int hppfs_fsync(struct file *file, struct dentry *dentry, int datasync)
623{ 586{
624 return(0); 587 return 0;
625} 588}
626 589
627static const struct file_operations hppfs_dir_fops = { 590static const struct file_operations hppfs_dir_fops = {
@@ -639,7 +602,7 @@ static int hppfs_statfs(struct dentry *dentry, struct kstatfs *sf)
639 sf->f_files = 0; 602 sf->f_files = 0;
640 sf->f_ffree = 0; 603 sf->f_ffree = 0;
641 sf->f_type = HPPFS_SUPER_MAGIC; 604 sf->f_type = HPPFS_SUPER_MAGIC;
642 return(0); 605 return 0;
643} 606}
644 607
645static struct inode *hppfs_alloc_inode(struct super_block *sb) 608static struct inode *hppfs_alloc_inode(struct super_block *sb)
@@ -647,12 +610,12 @@ static struct inode *hppfs_alloc_inode(struct super_block *sb)
647 struct hppfs_inode_info *hi; 610 struct hppfs_inode_info *hi;
648 611
649 hi = kmalloc(sizeof(*hi), GFP_KERNEL); 612 hi = kmalloc(sizeof(*hi), GFP_KERNEL);
650 if(hi == NULL) 613 if (!hi)
651 return(NULL); 614 return NULL;
652 615
653 *hi = ((struct hppfs_inode_info) { .proc_dentry = NULL }); 616 hi->proc_dentry = NULL;
654 inode_init_once(&hi->vfs_inode); 617 inode_init_once(&hi->vfs_inode);
655 return(&hi->vfs_inode); 618 return &hi->vfs_inode;
656} 619}
657 620
658void hppfs_delete_inode(struct inode *ino) 621void hppfs_delete_inode(struct inode *ino)
@@ -665,21 +628,31 @@ static void hppfs_destroy_inode(struct inode *inode)
665 kfree(HPPFS_I(inode)); 628 kfree(HPPFS_I(inode));
666} 629}
667 630
631static void hppfs_put_super(struct super_block *sb)
632{
633 mntput(sb->s_fs_info);
634}
635
668static const struct super_operations hppfs_sbops = { 636static const struct super_operations hppfs_sbops = {
669 .alloc_inode = hppfs_alloc_inode, 637 .alloc_inode = hppfs_alloc_inode,
670 .destroy_inode = hppfs_destroy_inode, 638 .destroy_inode = hppfs_destroy_inode,
671 .delete_inode = hppfs_delete_inode, 639 .delete_inode = hppfs_delete_inode,
672 .statfs = hppfs_statfs, 640 .statfs = hppfs_statfs,
641 .put_super = hppfs_put_super,
673}; 642};
674 643
675static int hppfs_readlink(struct dentry *dentry, char __user *buffer, int buflen) 644static int hppfs_readlink(struct dentry *dentry, char __user *buffer,
645 int buflen)
676{ 646{
677 struct file *proc_file; 647 struct file *proc_file;
678 struct dentry *proc_dentry; 648 struct dentry *proc_dentry;
649 struct vfsmount *proc_mnt;
679 int ret; 650 int ret;
680 651
681 proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; 652 proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
682 proc_file = dentry_open(dget(proc_dentry), NULL, O_RDONLY); 653 proc_mnt = dentry->d_sb->s_fs_info;
654
655 proc_file = dentry_open(dget(proc_dentry), mntget(proc_mnt), O_RDONLY);
683 if (IS_ERR(proc_file)) 656 if (IS_ERR(proc_file))
684 return PTR_ERR(proc_file); 657 return PTR_ERR(proc_file);
685 658
@@ -694,10 +667,13 @@ static void* hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)
694{ 667{
695 struct file *proc_file; 668 struct file *proc_file;
696 struct dentry *proc_dentry; 669 struct dentry *proc_dentry;
670 struct vfsmount *proc_mnt;
697 void *ret; 671 void *ret;
698 672
699 proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; 673 proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
700 proc_file = dentry_open(dget(proc_dentry), NULL, O_RDONLY); 674 proc_mnt = dentry->d_sb->s_fs_info;
675
676 proc_file = dentry_open(dget(proc_dentry), mntget(proc_mnt), O_RDONLY);
701 if (IS_ERR(proc_file)) 677 if (IS_ERR(proc_file))
702 return proc_file; 678 return proc_file;
703 679
@@ -717,70 +693,72 @@ static const struct inode_operations hppfs_link_iops = {
717 .follow_link = hppfs_follow_link, 693 .follow_link = hppfs_follow_link,
718}; 694};
719 695
720static int init_inode(struct inode *inode, struct dentry *dentry) 696static struct inode *get_inode(struct super_block *sb, struct dentry *dentry)
721{ 697{
722 if(S_ISDIR(dentry->d_inode->i_mode)){ 698 struct inode *proc_ino = dentry->d_inode;
699 struct inode *inode = new_inode(sb);
700
701 if (!inode)
702 return ERR_PTR(-ENOMEM);
703
704 if (S_ISDIR(dentry->d_inode->i_mode)) {
723 inode->i_op = &hppfs_dir_iops; 705 inode->i_op = &hppfs_dir_iops;
724 inode->i_fop = &hppfs_dir_fops; 706 inode->i_fop = &hppfs_dir_fops;
725 } 707 } else if (S_ISLNK(dentry->d_inode->i_mode)) {
726 else if(S_ISLNK(dentry->d_inode->i_mode)){
727 inode->i_op = &hppfs_link_iops; 708 inode->i_op = &hppfs_link_iops;
728 inode->i_fop = &hppfs_file_fops; 709 inode->i_fop = &hppfs_file_fops;
729 } 710 } else {
730 else {
731 inode->i_op = &hppfs_file_iops; 711 inode->i_op = &hppfs_file_iops;
732 inode->i_fop = &hppfs_file_fops; 712 inode->i_fop = &hppfs_file_fops;
733 } 713 }
734 714
735 HPPFS_I(inode)->proc_dentry = dentry; 715 HPPFS_I(inode)->proc_dentry = dentry;
736 716
737 return(0); 717 inode->i_uid = proc_ino->i_uid;
718 inode->i_gid = proc_ino->i_gid;
719 inode->i_atime = proc_ino->i_atime;
720 inode->i_mtime = proc_ino->i_mtime;
721 inode->i_ctime = proc_ino->i_ctime;
722 inode->i_ino = proc_ino->i_ino;
723 inode->i_mode = proc_ino->i_mode;
724 inode->i_nlink = proc_ino->i_nlink;
725 inode->i_size = proc_ino->i_size;
726 inode->i_blocks = proc_ino->i_blocks;
727
728 return 0;
738} 729}
739 730
740static int hppfs_fill_super(struct super_block *sb, void *d, int silent) 731static int hppfs_fill_super(struct super_block *sb, void *d, int silent)
741{ 732{
742 struct inode *root_inode; 733 struct inode *root_inode;
743 struct file_system_type *procfs; 734 struct vfsmount *proc_mnt;
744 struct super_block *proc_sb; 735 int err = -ENOENT;
745 int err;
746 736
747 err = -ENOENT; 737 proc_mnt = do_kern_mount("proc", 0, "proc", NULL);
748 procfs = get_fs_type("proc"); 738 if (IS_ERR(proc_mnt))
749 if(procfs == NULL)
750 goto out; 739 goto out;
751 740
752 if(list_empty(&procfs->fs_supers))
753 goto out;
754
755 proc_sb = list_entry(procfs->fs_supers.next, struct super_block,
756 s_instances);
757
758 sb->s_blocksize = 1024; 741 sb->s_blocksize = 1024;
759 sb->s_blocksize_bits = 10; 742 sb->s_blocksize_bits = 10;
760 sb->s_magic = HPPFS_SUPER_MAGIC; 743 sb->s_magic = HPPFS_SUPER_MAGIC;
761 sb->s_op = &hppfs_sbops; 744 sb->s_op = &hppfs_sbops;
762 745 sb->s_fs_info = proc_mnt;
763 root_inode = hppfs_iget(sb);
764 if (IS_ERR(root_inode)) {
765 err = PTR_ERR(root_inode);
766 goto out;
767 }
768
769 err = init_inode(root_inode, proc_sb->s_root);
770 if(err)
771 goto out_put;
772 746
773 err = -ENOMEM; 747 err = -ENOMEM;
774 sb->s_root = d_alloc_root(root_inode); 748 root_inode = get_inode(sb, proc_mnt->mnt_sb->s_root);
775 if(sb->s_root == NULL) 749 if (!root_inode)
776 goto out_put; 750 goto out_mntput;
777 751
778 hppfs_read_inode(root_inode); 752 sb->s_root = d_alloc_root(root_inode);
753 if (!sb->s_root)
754 goto out_iput;
779 755
780 return(0); 756 return 0;
781 757
782 out_put: 758 out_iput:
783 iput(root_inode); 759 iput(root_inode);
760 out_mntput:
761 mntput(proc_mnt);
784 out: 762 out:
785 return(err); 763 return(err);
786} 764}
@@ -802,7 +780,7 @@ static struct file_system_type hppfs_type = {
802 780
803static int __init init_hppfs(void) 781static int __init init_hppfs(void)
804{ 782{
805 return(register_filesystem(&hppfs_type)); 783 return register_filesystem(&hppfs_type);
806} 784}
807 785
808static void __exit exit_hppfs(void) 786static void __exit exit_hppfs(void)
@@ -813,14 +791,3 @@ static void __exit exit_hppfs(void)
813module_init(init_hppfs) 791module_init(init_hppfs)
814module_exit(exit_hppfs) 792module_exit(exit_hppfs)
815MODULE_LICENSE("GPL"); 793MODULE_LICENSE("GPL");
816
817/*
818 * Overrides for Emacs so that we follow Linus's tabbing style.
819 * Emacs will notice this stuff at the end of the file and automatically
820 * adjust the settings for this buffer only. This must remain at the end
821 * of the file.
822 * ---------------------------------------------------------------------------
823 * Local variables:
824 * c-file-style: "linux"
825 * End:
826 */
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index eee9487ae47f..6846785fe904 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -954,7 +954,7 @@ struct file *hugetlb_file_setup(const char *name, size_t size)
954 FMODE_WRITE | FMODE_READ, 954 FMODE_WRITE | FMODE_READ,
955 &hugetlbfs_file_operations); 955 &hugetlbfs_file_operations);
956 if (!file) 956 if (!file)
957 goto out_inode; 957 goto out_dentry; /* inode is already attached */
958 958
959 return file; 959 return file;
960 960
diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c
index 37dbd6404787..defb932eee9a 100644
--- a/fs/isofs/compress.c
+++ b/fs/isofs/compress.c
@@ -72,6 +72,17 @@ static int zisofs_readpage(struct file *file, struct page *page)
72 offset = index & ~zisofs_block_page_mask; 72 offset = index & ~zisofs_block_page_mask;
73 blockindex = offset >> zisofs_block_page_shift; 73 blockindex = offset >> zisofs_block_page_shift;
74 maxpage = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; 74 maxpage = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
75
76 /*
77 * If this page is wholly outside i_size we just return zero;
78 * do_generic_file_read() will handle this for us
79 */
80 if (page->index >= maxpage) {
81 SetPageUptodate(page);
82 unlock_page(page);
83 return 0;
84 }
85
75 maxpage = min(zisofs_block_pages, maxpage-offset); 86 maxpage = min(zisofs_block_pages, maxpage-offset);
76 87
77 for ( i = 0 ; i < maxpage ; i++, offset++ ) { 88 for ( i = 0 ; i < maxpage ; i++, offset++ ) {
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index 3943a8905eb2..0e081d5f32e8 100644
--- a/fs/jbd/journal.c
+++ b/fs/jbd/journal.c
@@ -697,13 +697,14 @@ fail:
697 */ 697 */
698 698
699/** 699/**
700 * journal_t * journal_init_dev() - creates an initialises a journal structure 700 * journal_t * journal_init_dev() - creates and initialises a journal structure
701 * @bdev: Block device on which to create the journal 701 * @bdev: Block device on which to create the journal
702 * @fs_dev: Device which hold journalled filesystem for this journal. 702 * @fs_dev: Device which hold journalled filesystem for this journal.
703 * @start: Block nr Start of journal. 703 * @start: Block nr Start of journal.
704 * @len: Length of the journal in blocks. 704 * @len: Length of the journal in blocks.
705 * @blocksize: blocksize of journalling device 705 * @blocksize: blocksize of journalling device
706 * @returns: a newly created journal_t * 706 *
707 * Returns: a newly created journal_t *
707 * 708 *
708 * journal_init_dev creates a journal which maps a fixed contiguous 709 * journal_init_dev creates a journal which maps a fixed contiguous
709 * range of blocks on an arbitrary block device. 710 * range of blocks on an arbitrary block device.
@@ -1619,14 +1620,14 @@ static int journal_init_journal_head_cache(void)
1619{ 1620{
1620 int retval; 1621 int retval;
1621 1622
1622 J_ASSERT(journal_head_cache == 0); 1623 J_ASSERT(journal_head_cache == NULL);
1623 journal_head_cache = kmem_cache_create("journal_head", 1624 journal_head_cache = kmem_cache_create("journal_head",
1624 sizeof(struct journal_head), 1625 sizeof(struct journal_head),
1625 0, /* offset */ 1626 0, /* offset */
1626 SLAB_TEMPORARY, /* flags */ 1627 SLAB_TEMPORARY, /* flags */
1627 NULL); /* ctor */ 1628 NULL); /* ctor */
1628 retval = 0; 1629 retval = 0;
1629 if (journal_head_cache == 0) { 1630 if (!journal_head_cache) {
1630 retval = -ENOMEM; 1631 retval = -ENOMEM;
1631 printk(KERN_EMERG "JBD: no memory for journal_head cache\n"); 1632 printk(KERN_EMERG "JBD: no memory for journal_head cache\n");
1632 } 1633 }
diff --git a/fs/jbd/recovery.c b/fs/jbd/recovery.c
index 2b8edf4d6eaa..43bc5e5ed064 100644
--- a/fs/jbd/recovery.c
+++ b/fs/jbd/recovery.c
@@ -478,7 +478,7 @@ static int do_one_pass(journal_t *journal,
478 memcpy(nbh->b_data, obh->b_data, 478 memcpy(nbh->b_data, obh->b_data,
479 journal->j_blocksize); 479 journal->j_blocksize);
480 if (flags & JFS_FLAG_ESCAPE) { 480 if (flags & JFS_FLAG_ESCAPE) {
481 *((__be32 *)bh->b_data) = 481 *((__be32 *)nbh->b_data) =
482 cpu_to_be32(JFS_MAGIC_NUMBER); 482 cpu_to_be32(JFS_MAGIC_NUMBER);
483 } 483 }
484 484
diff --git a/fs/jbd/revoke.c b/fs/jbd/revoke.c
index ad2eacf570c6..d5f8eee7c88c 100644
--- a/fs/jbd/revoke.c
+++ b/fs/jbd/revoke.c
@@ -173,13 +173,13 @@ int __init journal_init_revoke_caches(void)
173 0, 173 0,
174 SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY, 174 SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY,
175 NULL); 175 NULL);
176 if (revoke_record_cache == 0) 176 if (!revoke_record_cache)
177 return -ENOMEM; 177 return -ENOMEM;
178 178
179 revoke_table_cache = kmem_cache_create("revoke_table", 179 revoke_table_cache = kmem_cache_create("revoke_table",
180 sizeof(struct jbd_revoke_table_s), 180 sizeof(struct jbd_revoke_table_s),
181 0, SLAB_TEMPORARY, NULL); 181 0, SLAB_TEMPORARY, NULL);
182 if (revoke_table_cache == 0) { 182 if (!revoke_table_cache) {
183 kmem_cache_destroy(revoke_record_cache); 183 kmem_cache_destroy(revoke_record_cache);
184 revoke_record_cache = NULL; 184 revoke_record_cache = NULL;
185 return -ENOMEM; 185 return -ENOMEM;
diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c
index c6cbb6cd59b2..2c9e8f5d13aa 100644
--- a/fs/jbd/transaction.c
+++ b/fs/jbd/transaction.c
@@ -1426,7 +1426,8 @@ int journal_stop(handle_t *handle)
1426 return err; 1426 return err;
1427} 1427}
1428 1428
1429/**int journal_force_commit() - force any uncommitted transactions 1429/**
1430 * int journal_force_commit() - force any uncommitted transactions
1430 * @journal: journal to force 1431 * @journal: journal to force
1431 * 1432 *
1432 * For synchronous operations: force any uncommitted transactions 1433 * For synchronous operations: force any uncommitted transactions
@@ -1903,13 +1904,12 @@ zap_buffer_unlocked:
1903} 1904}
1904 1905
1905/** 1906/**
1906 * void journal_invalidatepage() 1907 * void journal_invalidatepage() - invalidate a journal page
1907 * @journal: journal to use for flush... 1908 * @journal: journal to use for flush
1908 * @page: page to flush 1909 * @page: page to flush
1909 * @offset: length of page to invalidate. 1910 * @offset: length of page to invalidate.
1910 * 1911 *
1911 * Reap page buffers containing data after offset in page. 1912 * Reap page buffers containing data after offset in page.
1912 *
1913 */ 1913 */
1914void journal_invalidatepage(journal_t *journal, 1914void journal_invalidatepage(journal_t *journal,
1915 struct page *page, 1915 struct page *page,
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 96ba846992e9..954cff001df6 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -219,7 +219,7 @@ static int jbd2_journal_start_thread(journal_t *journal)
219 if (IS_ERR(t)) 219 if (IS_ERR(t))
220 return PTR_ERR(t); 220 return PTR_ERR(t);
221 221
222 wait_event(journal->j_wait_done_commit, journal->j_task != 0); 222 wait_event(journal->j_wait_done_commit, journal->j_task != NULL);
223 return 0; 223 return 0;
224} 224}
225 225
@@ -231,7 +231,7 @@ static void journal_kill_thread(journal_t *journal)
231 while (journal->j_task) { 231 while (journal->j_task) {
232 wake_up(&journal->j_wait_commit); 232 wake_up(&journal->j_wait_commit);
233 spin_unlock(&journal->j_state_lock); 233 spin_unlock(&journal->j_state_lock);
234 wait_event(journal->j_wait_done_commit, journal->j_task == 0); 234 wait_event(journal->j_wait_done_commit, journal->j_task == NULL);
235 spin_lock(&journal->j_state_lock); 235 spin_lock(&journal->j_state_lock);
236 } 236 }
237 spin_unlock(&journal->j_state_lock); 237 spin_unlock(&journal->j_state_lock);
@@ -1969,14 +1969,14 @@ static int journal_init_jbd2_journal_head_cache(void)
1969{ 1969{
1970 int retval; 1970 int retval;
1971 1971
1972 J_ASSERT(jbd2_journal_head_cache == 0); 1972 J_ASSERT(jbd2_journal_head_cache == NULL);
1973 jbd2_journal_head_cache = kmem_cache_create("jbd2_journal_head", 1973 jbd2_journal_head_cache = kmem_cache_create("jbd2_journal_head",
1974 sizeof(struct journal_head), 1974 sizeof(struct journal_head),
1975 0, /* offset */ 1975 0, /* offset */
1976 SLAB_TEMPORARY, /* flags */ 1976 SLAB_TEMPORARY, /* flags */
1977 NULL); /* ctor */ 1977 NULL); /* ctor */
1978 retval = 0; 1978 retval = 0;
1979 if (jbd2_journal_head_cache == 0) { 1979 if (!jbd2_journal_head_cache) {
1980 retval = -ENOMEM; 1980 retval = -ENOMEM;
1981 printk(KERN_EMERG "JBD: no memory for journal_head cache\n"); 1981 printk(KERN_EMERG "JBD: no memory for journal_head cache\n");
1982 } 1982 }
@@ -2002,14 +2002,14 @@ static struct journal_head *journal_alloc_journal_head(void)
2002 atomic_inc(&nr_journal_heads); 2002 atomic_inc(&nr_journal_heads);
2003#endif 2003#endif
2004 ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS); 2004 ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS);
2005 if (ret == 0) { 2005 if (!ret) {
2006 jbd_debug(1, "out of memory for journal_head\n"); 2006 jbd_debug(1, "out of memory for journal_head\n");
2007 if (time_after(jiffies, last_warning + 5*HZ)) { 2007 if (time_after(jiffies, last_warning + 5*HZ)) {
2008 printk(KERN_NOTICE "ENOMEM in %s, retrying.\n", 2008 printk(KERN_NOTICE "ENOMEM in %s, retrying.\n",
2009 __FUNCTION__); 2009 __FUNCTION__);
2010 last_warning = jiffies; 2010 last_warning = jiffies;
2011 } 2011 }
2012 while (ret == 0) { 2012 while (!ret) {
2013 yield(); 2013 yield();
2014 ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS); 2014 ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS);
2015 } 2015 }
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 146411387ada..5d0405a9e7ca 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -535,7 +535,7 @@ static int do_one_pass(journal_t *journal,
535 memcpy(nbh->b_data, obh->b_data, 535 memcpy(nbh->b_data, obh->b_data,
536 journal->j_blocksize); 536 journal->j_blocksize);
537 if (flags & JBD2_FLAG_ESCAPE) { 537 if (flags & JBD2_FLAG_ESCAPE) {
538 *((__be32 *)bh->b_data) = 538 *((__be32 *)nbh->b_data) =
539 cpu_to_be32(JBD2_MAGIC_NUMBER); 539 cpu_to_be32(JBD2_MAGIC_NUMBER);
540 } 540 }
541 541
diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
index df36f42e19e1..2e1453a5e998 100644
--- a/fs/jbd2/revoke.c
+++ b/fs/jbd2/revoke.c
@@ -174,13 +174,13 @@ int __init jbd2_journal_init_revoke_caches(void)
174 0, 174 0,
175 SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY, 175 SLAB_HWCACHE_ALIGN|SLAB_TEMPORARY,
176 NULL); 176 NULL);
177 if (jbd2_revoke_record_cache == 0) 177 if (!jbd2_revoke_record_cache)
178 return -ENOMEM; 178 return -ENOMEM;
179 179
180 jbd2_revoke_table_cache = kmem_cache_create("jbd2_revoke_table", 180 jbd2_revoke_table_cache = kmem_cache_create("jbd2_revoke_table",
181 sizeof(struct jbd2_revoke_table_s), 181 sizeof(struct jbd2_revoke_table_s),
182 0, SLAB_TEMPORARY, NULL); 182 0, SLAB_TEMPORARY, NULL);
183 if (jbd2_revoke_table_cache == 0) { 183 if (!jbd2_revoke_table_cache) {
184 kmem_cache_destroy(jbd2_revoke_record_cache); 184 kmem_cache_destroy(jbd2_revoke_record_cache);
185 jbd2_revoke_record_cache = NULL; 185 jbd2_revoke_record_cache = NULL;
186 return -ENOMEM; 186 return -ENOMEM;
diff --git a/fs/locks.c b/fs/locks.c
index f36f0e61558d..d83fab1b77b5 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1275,13 +1275,13 @@ out:
1275EXPORT_SYMBOL(__break_lease); 1275EXPORT_SYMBOL(__break_lease);
1276 1276
1277/** 1277/**
1278 * lease_get_mtime 1278 * lease_get_mtime - get the last modified time of an inode
1279 * @inode: the inode 1279 * @inode: the inode
1280 * @time: pointer to a timespec which will contain the last modified time 1280 * @time: pointer to a timespec which will contain the last modified time
1281 * 1281 *
1282 * This is to force NFS clients to flush their caches for files with 1282 * This is to force NFS clients to flush their caches for files with
1283 * exclusive leases. The justification is that if someone has an 1283 * exclusive leases. The justification is that if someone has an
1284 * exclusive lease, then they could be modifiying it. 1284 * exclusive lease, then they could be modifying it.
1285 */ 1285 */
1286void lease_get_mtime(struct inode *inode, struct timespec *time) 1286void lease_get_mtime(struct inode *inode, struct timespec *time)
1287{ 1287{
diff --git a/fs/namei.c b/fs/namei.c
index 941c8e8228c0..8cf9bb9c2fc0 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -106,7 +106,7 @@
106 * any extra contention... 106 * any extra contention...
107 */ 107 */
108 108
109static int link_path_walk(const char *name, struct nameidata *nd); 109static int __link_path_walk(const char *name, struct nameidata *nd);
110 110
111/* In order to reduce some races, while at the same time doing additional 111/* In order to reduce some races, while at the same time doing additional
112 * checking and hopefully speeding things up, we copy filenames to the 112 * checking and hopefully speeding things up, we copy filenames to the
@@ -563,6 +563,37 @@ walk_init_root(const char *name, struct nameidata *nd)
563 return 1; 563 return 1;
564} 564}
565 565
566/*
567 * Wrapper to retry pathname resolution whenever the underlying
568 * file system returns an ESTALE.
569 *
570 * Retry the whole path once, forcing real lookup requests
571 * instead of relying on the dcache.
572 */
573static __always_inline int link_path_walk(const char *name, struct nameidata *nd)
574{
575 struct path save = nd->path;
576 int result;
577
578 /* make sure the stuff we saved doesn't go away */
579 dget(save.dentry);
580 mntget(save.mnt);
581
582 result = __link_path_walk(name, nd);
583 if (result == -ESTALE) {
584 /* nd->path had been dropped */
585 nd->path = save;
586 dget(nd->path.dentry);
587 mntget(nd->path.mnt);
588 nd->flags |= LOOKUP_REVAL;
589 result = __link_path_walk(name, nd);
590 }
591
592 path_put(&save);
593
594 return result;
595}
596
566static __always_inline int __vfs_follow_link(struct nameidata *nd, const char *link) 597static __always_inline int __vfs_follow_link(struct nameidata *nd, const char *link)
567{ 598{
568 int res = 0; 599 int res = 0;
@@ -1020,36 +1051,6 @@ return_err:
1020 return err; 1051 return err;
1021} 1052}
1022 1053
1023/*
1024 * Wrapper to retry pathname resolution whenever the underlying
1025 * file system returns an ESTALE.
1026 *
1027 * Retry the whole path once, forcing real lookup requests
1028 * instead of relying on the dcache.
1029 */
1030static int link_path_walk(const char *name, struct nameidata *nd)
1031{
1032 struct nameidata save = *nd;
1033 int result;
1034
1035 /* make sure the stuff we saved doesn't go away */
1036 dget(save.path.dentry);
1037 mntget(save.path.mnt);
1038
1039 result = __link_path_walk(name, nd);
1040 if (result == -ESTALE) {
1041 *nd = save;
1042 dget(nd->path.dentry);
1043 mntget(nd->path.mnt);
1044 nd->flags |= LOOKUP_REVAL;
1045 result = __link_path_walk(name, nd);
1046 }
1047
1048 path_put(&save.path);
1049
1050 return result;
1051}
1052
1053static int path_walk(const char *name, struct nameidata *nd) 1054static int path_walk(const char *name, struct nameidata *nd)
1054{ 1055{
1055 current->total_link_count = 0; 1056 current->total_link_count = 0;
@@ -1364,13 +1365,13 @@ static int __lookup_one_len(const char *name, struct qstr *this,
1364} 1365}
1365 1366
1366/** 1367/**
1367 * lookup_one_len: filesystem helper to lookup single pathname component 1368 * lookup_one_len - filesystem helper to lookup single pathname component
1368 * @name: pathname component to lookup 1369 * @name: pathname component to lookup
1369 * @base: base directory to lookup from 1370 * @base: base directory to lookup from
1370 * @len: maximum length @len should be interpreted to 1371 * @len: maximum length @len should be interpreted to
1371 * 1372 *
1372 * Note that this routine is purely a helper for filesystem useage and should 1373 * Note that this routine is purely a helper for filesystem usage and should
1373 * not be called by generic code. Also note that by using this function to 1374 * not be called by generic code. Also note that by using this function the
1374 * nameidata argument is passed to the filesystem methods and a filesystem 1375 * nameidata argument is passed to the filesystem methods and a filesystem
1375 * using this helper needs to be prepared for that. 1376 * using this helper needs to be prepared for that.
1376 */ 1377 */
diff --git a/fs/namespace.c b/fs/namespace.c
index 7953c96a2071..94f026ec990a 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -155,15 +155,15 @@ static void __touch_mnt_namespace(struct mnt_namespace *ns)
155 } 155 }
156} 156}
157 157
158static void detach_mnt(struct vfsmount *mnt, struct nameidata *old_nd) 158static void detach_mnt(struct vfsmount *mnt, struct path *old_path)
159{ 159{
160 old_nd->path.dentry = mnt->mnt_mountpoint; 160 old_path->dentry = mnt->mnt_mountpoint;
161 old_nd->path.mnt = mnt->mnt_parent; 161 old_path->mnt = mnt->mnt_parent;
162 mnt->mnt_parent = mnt; 162 mnt->mnt_parent = mnt;
163 mnt->mnt_mountpoint = mnt->mnt_root; 163 mnt->mnt_mountpoint = mnt->mnt_root;
164 list_del_init(&mnt->mnt_child); 164 list_del_init(&mnt->mnt_child);
165 list_del_init(&mnt->mnt_hash); 165 list_del_init(&mnt->mnt_hash);
166 old_nd->path.dentry->d_mounted--; 166 old_path->dentry->d_mounted--;
167} 167}
168 168
169void mnt_set_mountpoint(struct vfsmount *mnt, struct dentry *dentry, 169void mnt_set_mountpoint(struct vfsmount *mnt, struct dentry *dentry,
@@ -174,12 +174,12 @@ void mnt_set_mountpoint(struct vfsmount *mnt, struct dentry *dentry,
174 dentry->d_mounted++; 174 dentry->d_mounted++;
175} 175}
176 176
177static void attach_mnt(struct vfsmount *mnt, struct nameidata *nd) 177static void attach_mnt(struct vfsmount *mnt, struct path *path)
178{ 178{
179 mnt_set_mountpoint(nd->path.mnt, nd->path.dentry, mnt); 179 mnt_set_mountpoint(path->mnt, path->dentry, mnt);
180 list_add_tail(&mnt->mnt_hash, mount_hashtable + 180 list_add_tail(&mnt->mnt_hash, mount_hashtable +
181 hash(nd->path.mnt, nd->path.dentry)); 181 hash(path->mnt, path->dentry));
182 list_add_tail(&mnt->mnt_child, &nd->path.mnt->mnt_mounts); 182 list_add_tail(&mnt->mnt_child, &path->mnt->mnt_mounts);
183} 183}
184 184
185/* 185/*
@@ -262,10 +262,8 @@ static struct vfsmount *clone_mnt(struct vfsmount *old, struct dentry *root,
262 /* stick the duplicate mount on the same expiry list 262 /* stick the duplicate mount on the same expiry list
263 * as the original if that was on one */ 263 * as the original if that was on one */
264 if (flag & CL_EXPIRE) { 264 if (flag & CL_EXPIRE) {
265 spin_lock(&vfsmount_lock);
266 if (!list_empty(&old->mnt_expire)) 265 if (!list_empty(&old->mnt_expire))
267 list_add(&mnt->mnt_expire, &old->mnt_expire); 266 list_add(&mnt->mnt_expire, &old->mnt_expire);
268 spin_unlock(&vfsmount_lock);
269 } 267 }
270 } 268 }
271 return mnt; 269 return mnt;
@@ -548,6 +546,7 @@ void release_mounts(struct list_head *head)
548 m = mnt->mnt_parent; 546 m = mnt->mnt_parent;
549 mnt->mnt_mountpoint = mnt->mnt_root; 547 mnt->mnt_mountpoint = mnt->mnt_root;
550 mnt->mnt_parent = mnt; 548 mnt->mnt_parent = mnt;
549 m->mnt_ghosts--;
551 spin_unlock(&vfsmount_lock); 550 spin_unlock(&vfsmount_lock);
552 dput(dentry); 551 dput(dentry);
553 mntput(m); 552 mntput(m);
@@ -572,12 +571,16 @@ void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill)
572 __touch_mnt_namespace(p->mnt_ns); 571 __touch_mnt_namespace(p->mnt_ns);
573 p->mnt_ns = NULL; 572 p->mnt_ns = NULL;
574 list_del_init(&p->mnt_child); 573 list_del_init(&p->mnt_child);
575 if (p->mnt_parent != p) 574 if (p->mnt_parent != p) {
575 p->mnt_parent->mnt_ghosts++;
576 p->mnt_mountpoint->d_mounted--; 576 p->mnt_mountpoint->d_mounted--;
577 }
577 change_mnt_propagation(p, MS_PRIVATE); 578 change_mnt_propagation(p, MS_PRIVATE);
578 } 579 }
579} 580}
580 581
582static void shrink_submounts(struct vfsmount *mnt, struct list_head *umounts);
583
581static int do_umount(struct vfsmount *mnt, int flags) 584static int do_umount(struct vfsmount *mnt, int flags)
582{ 585{
583 struct super_block *sb = mnt->mnt_sb; 586 struct super_block *sb = mnt->mnt_sb;
@@ -650,6 +653,9 @@ static int do_umount(struct vfsmount *mnt, int flags)
650 spin_lock(&vfsmount_lock); 653 spin_lock(&vfsmount_lock);
651 event++; 654 event++;
652 655
656 if (!(flags & MNT_DETACH))
657 shrink_submounts(mnt, &umount_list);
658
653 retval = -EBUSY; 659 retval = -EBUSY;
654 if (flags & MNT_DETACH || !propagate_mount_busy(mnt, 2)) { 660 if (flags & MNT_DETACH || !propagate_mount_busy(mnt, 2)) {
655 if (!list_empty(&mnt->mnt_list)) 661 if (!list_empty(&mnt->mnt_list))
@@ -744,7 +750,7 @@ struct vfsmount *copy_tree(struct vfsmount *mnt, struct dentry *dentry,
744 int flag) 750 int flag)
745{ 751{
746 struct vfsmount *res, *p, *q, *r, *s; 752 struct vfsmount *res, *p, *q, *r, *s;
747 struct nameidata nd; 753 struct path path;
748 754
749 if (!(flag & CL_COPY_ALL) && IS_MNT_UNBINDABLE(mnt)) 755 if (!(flag & CL_COPY_ALL) && IS_MNT_UNBINDABLE(mnt))
750 return NULL; 756 return NULL;
@@ -769,14 +775,14 @@ struct vfsmount *copy_tree(struct vfsmount *mnt, struct dentry *dentry,
769 q = q->mnt_parent; 775 q = q->mnt_parent;
770 } 776 }
771 p = s; 777 p = s;
772 nd.path.mnt = q; 778 path.mnt = q;
773 nd.path.dentry = p->mnt_mountpoint; 779 path.dentry = p->mnt_mountpoint;
774 q = clone_mnt(p, p->mnt_root, flag); 780 q = clone_mnt(p, p->mnt_root, flag);
775 if (!q) 781 if (!q)
776 goto Enomem; 782 goto Enomem;
777 spin_lock(&vfsmount_lock); 783 spin_lock(&vfsmount_lock);
778 list_add_tail(&q->mnt_list, &res->mnt_list); 784 list_add_tail(&q->mnt_list, &res->mnt_list);
779 attach_mnt(q, &nd); 785 attach_mnt(q, &path);
780 spin_unlock(&vfsmount_lock); 786 spin_unlock(&vfsmount_lock);
781 } 787 }
782 } 788 }
@@ -876,11 +882,11 @@ void drop_collected_mounts(struct vfsmount *mnt)
876 * in allocations. 882 * in allocations.
877 */ 883 */
878static int attach_recursive_mnt(struct vfsmount *source_mnt, 884static int attach_recursive_mnt(struct vfsmount *source_mnt,
879 struct nameidata *nd, struct nameidata *parent_nd) 885 struct path *path, struct path *parent_path)
880{ 886{
881 LIST_HEAD(tree_list); 887 LIST_HEAD(tree_list);
882 struct vfsmount *dest_mnt = nd->path.mnt; 888 struct vfsmount *dest_mnt = path->mnt;
883 struct dentry *dest_dentry = nd->path.dentry; 889 struct dentry *dest_dentry = path->dentry;
884 struct vfsmount *child, *p; 890 struct vfsmount *child, *p;
885 891
886 if (propagate_mnt(dest_mnt, dest_dentry, source_mnt, &tree_list)) 892 if (propagate_mnt(dest_mnt, dest_dentry, source_mnt, &tree_list))
@@ -892,9 +898,9 @@ static int attach_recursive_mnt(struct vfsmount *source_mnt,
892 } 898 }
893 899
894 spin_lock(&vfsmount_lock); 900 spin_lock(&vfsmount_lock);
895 if (parent_nd) { 901 if (parent_path) {
896 detach_mnt(source_mnt, parent_nd); 902 detach_mnt(source_mnt, parent_path);
897 attach_mnt(source_mnt, nd); 903 attach_mnt(source_mnt, path);
898 touch_mnt_namespace(current->nsproxy->mnt_ns); 904 touch_mnt_namespace(current->nsproxy->mnt_ns);
899 } else { 905 } else {
900 mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt); 906 mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt);
@@ -930,7 +936,7 @@ static int graft_tree(struct vfsmount *mnt, struct nameidata *nd)
930 936
931 err = -ENOENT; 937 err = -ENOENT;
932 if (IS_ROOT(nd->path.dentry) || !d_unhashed(nd->path.dentry)) 938 if (IS_ROOT(nd->path.dentry) || !d_unhashed(nd->path.dentry))
933 err = attach_recursive_mnt(mnt, nd, NULL); 939 err = attach_recursive_mnt(mnt, &nd->path, NULL);
934out_unlock: 940out_unlock:
935 mutex_unlock(&nd->path.dentry->d_inode->i_mutex); 941 mutex_unlock(&nd->path.dentry->d_inode->i_mutex);
936 if (!err) 942 if (!err)
@@ -1059,7 +1065,8 @@ static inline int tree_contains_unbindable(struct vfsmount *mnt)
1059 */ 1065 */
1060static noinline int do_move_mount(struct nameidata *nd, char *old_name) 1066static noinline int do_move_mount(struct nameidata *nd, char *old_name)
1061{ 1067{
1062 struct nameidata old_nd, parent_nd; 1068 struct nameidata old_nd;
1069 struct path parent_path;
1063 struct vfsmount *p; 1070 struct vfsmount *p;
1064 int err = 0; 1071 int err = 0;
1065 if (!capable(CAP_SYS_ADMIN)) 1072 if (!capable(CAP_SYS_ADMIN))
@@ -1114,21 +1121,19 @@ static noinline int do_move_mount(struct nameidata *nd, char *old_name)
1114 if (p == old_nd.path.mnt) 1121 if (p == old_nd.path.mnt)
1115 goto out1; 1122 goto out1;
1116 1123
1117 err = attach_recursive_mnt(old_nd.path.mnt, nd, &parent_nd); 1124 err = attach_recursive_mnt(old_nd.path.mnt, &nd->path, &parent_path);
1118 if (err) 1125 if (err)
1119 goto out1; 1126 goto out1;
1120 1127
1121 spin_lock(&vfsmount_lock);
1122 /* if the mount is moved, it should no longer be expire 1128 /* if the mount is moved, it should no longer be expire
1123 * automatically */ 1129 * automatically */
1124 list_del_init(&old_nd.path.mnt->mnt_expire); 1130 list_del_init(&old_nd.path.mnt->mnt_expire);
1125 spin_unlock(&vfsmount_lock);
1126out1: 1131out1:
1127 mutex_unlock(&nd->path.dentry->d_inode->i_mutex); 1132 mutex_unlock(&nd->path.dentry->d_inode->i_mutex);
1128out: 1133out:
1129 up_write(&namespace_sem); 1134 up_write(&namespace_sem);
1130 if (!err) 1135 if (!err)
1131 path_put(&parent_nd.path); 1136 path_put(&parent_path);
1132 path_put(&old_nd.path); 1137 path_put(&old_nd.path);
1133 return err; 1138 return err;
1134} 1139}
@@ -1189,12 +1194,9 @@ int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
1189 if ((err = graft_tree(newmnt, nd))) 1194 if ((err = graft_tree(newmnt, nd)))
1190 goto unlock; 1195 goto unlock;
1191 1196
1192 if (fslist) { 1197 if (fslist) /* add to the specified expiration list */
1193 /* add to the specified expiration list */
1194 spin_lock(&vfsmount_lock);
1195 list_add_tail(&newmnt->mnt_expire, fslist); 1198 list_add_tail(&newmnt->mnt_expire, fslist);
1196 spin_unlock(&vfsmount_lock); 1199
1197 }
1198 up_write(&namespace_sem); 1200 up_write(&namespace_sem);
1199 return 0; 1201 return 0;
1200 1202
@@ -1206,75 +1208,6 @@ unlock:
1206 1208
1207EXPORT_SYMBOL_GPL(do_add_mount); 1209EXPORT_SYMBOL_GPL(do_add_mount);
1208 1210
1209static void expire_mount(struct vfsmount *mnt, struct list_head *mounts,
1210 struct list_head *umounts)
1211{
1212 spin_lock(&vfsmount_lock);
1213
1214 /*
1215 * Check if mount is still attached, if not, let whoever holds it deal
1216 * with the sucker
1217 */
1218 if (mnt->mnt_parent == mnt) {
1219 spin_unlock(&vfsmount_lock);
1220 return;
1221 }
1222
1223 /*
1224 * Check that it is still dead: the count should now be 2 - as
1225 * contributed by the vfsmount parent and the mntget above
1226 */
1227 if (!propagate_mount_busy(mnt, 2)) {
1228 /* delete from the namespace */
1229 touch_mnt_namespace(mnt->mnt_ns);
1230 list_del_init(&mnt->mnt_list);
1231 mnt->mnt_ns = NULL;
1232 umount_tree(mnt, 1, umounts);
1233 spin_unlock(&vfsmount_lock);
1234 } else {
1235 /*
1236 * Someone brought it back to life whilst we didn't have any
1237 * locks held so return it to the expiration list
1238 */
1239 list_add_tail(&mnt->mnt_expire, mounts);
1240 spin_unlock(&vfsmount_lock);
1241 }
1242}
1243
1244/*
1245 * go through the vfsmounts we've just consigned to the graveyard to
1246 * - check that they're still dead
1247 * - delete the vfsmount from the appropriate namespace under lock
1248 * - dispose of the corpse
1249 */
1250static void expire_mount_list(struct list_head *graveyard, struct list_head *mounts)
1251{
1252 struct mnt_namespace *ns;
1253 struct vfsmount *mnt;
1254
1255 while (!list_empty(graveyard)) {
1256 LIST_HEAD(umounts);
1257 mnt = list_first_entry(graveyard, struct vfsmount, mnt_expire);
1258 list_del_init(&mnt->mnt_expire);
1259
1260 /* don't do anything if the namespace is dead - all the
1261 * vfsmounts from it are going away anyway */
1262 ns = mnt->mnt_ns;
1263 if (!ns || !ns->root)
1264 continue;
1265 get_mnt_ns(ns);
1266
1267 spin_unlock(&vfsmount_lock);
1268 down_write(&namespace_sem);
1269 expire_mount(mnt, mounts, &umounts);
1270 up_write(&namespace_sem);
1271 release_mounts(&umounts);
1272 mntput(mnt);
1273 put_mnt_ns(ns);
1274 spin_lock(&vfsmount_lock);
1275 }
1276}
1277
1278/* 1211/*
1279 * process a list of expirable mountpoints with the intent of discarding any 1212 * process a list of expirable mountpoints with the intent of discarding any
1280 * mountpoints that aren't in use and haven't been touched since last we came 1213 * mountpoints that aren't in use and haven't been touched since last we came
@@ -1284,10 +1217,12 @@ void mark_mounts_for_expiry(struct list_head *mounts)
1284{ 1217{
1285 struct vfsmount *mnt, *next; 1218 struct vfsmount *mnt, *next;
1286 LIST_HEAD(graveyard); 1219 LIST_HEAD(graveyard);
1220 LIST_HEAD(umounts);
1287 1221
1288 if (list_empty(mounts)) 1222 if (list_empty(mounts))
1289 return; 1223 return;
1290 1224
1225 down_write(&namespace_sem);
1291 spin_lock(&vfsmount_lock); 1226 spin_lock(&vfsmount_lock);
1292 1227
1293 /* extract from the expiration list every vfsmount that matches the 1228 /* extract from the expiration list every vfsmount that matches the
@@ -1298,16 +1233,19 @@ void mark_mounts_for_expiry(struct list_head *mounts)
1298 */ 1233 */
1299 list_for_each_entry_safe(mnt, next, mounts, mnt_expire) { 1234 list_for_each_entry_safe(mnt, next, mounts, mnt_expire) {
1300 if (!xchg(&mnt->mnt_expiry_mark, 1) || 1235 if (!xchg(&mnt->mnt_expiry_mark, 1) ||
1301 atomic_read(&mnt->mnt_count) != 1) 1236 propagate_mount_busy(mnt, 1))
1302 continue; 1237 continue;
1303
1304 mntget(mnt);
1305 list_move(&mnt->mnt_expire, &graveyard); 1238 list_move(&mnt->mnt_expire, &graveyard);
1306 } 1239 }
1307 1240 while (!list_empty(&graveyard)) {
1308 expire_mount_list(&graveyard, mounts); 1241 mnt = list_first_entry(&graveyard, struct vfsmount, mnt_expire);
1309 1242 touch_mnt_namespace(mnt->mnt_ns);
1243 umount_tree(mnt, 1, &umounts);
1244 }
1310 spin_unlock(&vfsmount_lock); 1245 spin_unlock(&vfsmount_lock);
1246 up_write(&namespace_sem);
1247
1248 release_mounts(&umounts);
1311} 1249}
1312 1250
1313EXPORT_SYMBOL_GPL(mark_mounts_for_expiry); 1251EXPORT_SYMBOL_GPL(mark_mounts_for_expiry);
@@ -1343,7 +1281,6 @@ resume:
1343 } 1281 }
1344 1282
1345 if (!propagate_mount_busy(mnt, 1)) { 1283 if (!propagate_mount_busy(mnt, 1)) {
1346 mntget(mnt);
1347 list_move_tail(&mnt->mnt_expire, graveyard); 1284 list_move_tail(&mnt->mnt_expire, graveyard);
1348 found++; 1285 found++;
1349 } 1286 }
@@ -1363,22 +1300,22 @@ resume:
1363 * process a list of expirable mountpoints with the intent of discarding any 1300 * process a list of expirable mountpoints with the intent of discarding any
1364 * submounts of a specific parent mountpoint 1301 * submounts of a specific parent mountpoint
1365 */ 1302 */
1366void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts) 1303static void shrink_submounts(struct vfsmount *mnt, struct list_head *umounts)
1367{ 1304{
1368 LIST_HEAD(graveyard); 1305 LIST_HEAD(graveyard);
1369 int found; 1306 struct vfsmount *m;
1370
1371 spin_lock(&vfsmount_lock);
1372 1307
1373 /* extract submounts of 'mountpoint' from the expiration list */ 1308 /* extract submounts of 'mountpoint' from the expiration list */
1374 while ((found = select_submounts(mountpoint, &graveyard)) != 0) 1309 while (select_submounts(mnt, &graveyard)) {
1375 expire_mount_list(&graveyard, mounts); 1310 while (!list_empty(&graveyard)) {
1376 1311 m = list_first_entry(&graveyard, struct vfsmount,
1377 spin_unlock(&vfsmount_lock); 1312 mnt_expire);
1313 touch_mnt_namespace(mnt->mnt_ns);
1314 umount_tree(mnt, 1, umounts);
1315 }
1316 }
1378} 1317}
1379 1318
1380EXPORT_SYMBOL_GPL(shrink_submounts);
1381
1382/* 1319/*
1383 * Some copy_from_user() implementations do not return the exact number of 1320 * Some copy_from_user() implementations do not return the exact number of
1384 * bytes remaining to copy on a fault. But copy_mount_options() requires that. 1321 * bytes remaining to copy on a fault. But copy_mount_options() requires that.
@@ -1683,7 +1620,7 @@ void set_fs_pwd(struct fs_struct *fs, struct path *path)
1683 path_put(&old_pwd); 1620 path_put(&old_pwd);
1684} 1621}
1685 1622
1686static void chroot_fs_refs(struct nameidata *old_nd, struct nameidata *new_nd) 1623static void chroot_fs_refs(struct path *old_root, struct path *new_root)
1687{ 1624{
1688 struct task_struct *g, *p; 1625 struct task_struct *g, *p;
1689 struct fs_struct *fs; 1626 struct fs_struct *fs;
@@ -1695,12 +1632,12 @@ static void chroot_fs_refs(struct nameidata *old_nd, struct nameidata *new_nd)
1695 if (fs) { 1632 if (fs) {
1696 atomic_inc(&fs->count); 1633 atomic_inc(&fs->count);
1697 task_unlock(p); 1634 task_unlock(p);
1698 if (fs->root.dentry == old_nd->path.dentry 1635 if (fs->root.dentry == old_root->dentry
1699 && fs->root.mnt == old_nd->path.mnt) 1636 && fs->root.mnt == old_root->mnt)
1700 set_fs_root(fs, &new_nd->path); 1637 set_fs_root(fs, new_root);
1701 if (fs->pwd.dentry == old_nd->path.dentry 1638 if (fs->pwd.dentry == old_root->dentry
1702 && fs->pwd.mnt == old_nd->path.mnt) 1639 && fs->pwd.mnt == old_root->mnt)
1703 set_fs_pwd(fs, &new_nd->path); 1640 set_fs_pwd(fs, new_root);
1704 put_fs_struct(fs); 1641 put_fs_struct(fs);
1705 } else 1642 } else
1706 task_unlock(p); 1643 task_unlock(p);
@@ -1737,7 +1674,8 @@ asmlinkage long sys_pivot_root(const char __user * new_root,
1737 const char __user * put_old) 1674 const char __user * put_old)
1738{ 1675{
1739 struct vfsmount *tmp; 1676 struct vfsmount *tmp;
1740 struct nameidata new_nd, old_nd, parent_nd, root_parent, user_nd; 1677 struct nameidata new_nd, old_nd, user_nd;
1678 struct path parent_path, root_parent;
1741 int error; 1679 int error;
1742 1680
1743 if (!capable(CAP_SYS_ADMIN)) 1681 if (!capable(CAP_SYS_ADMIN))
@@ -1811,19 +1749,19 @@ asmlinkage long sys_pivot_root(const char __user * new_root,
1811 goto out3; 1749 goto out3;
1812 } else if (!is_subdir(old_nd.path.dentry, new_nd.path.dentry)) 1750 } else if (!is_subdir(old_nd.path.dentry, new_nd.path.dentry))
1813 goto out3; 1751 goto out3;
1814 detach_mnt(new_nd.path.mnt, &parent_nd); 1752 detach_mnt(new_nd.path.mnt, &parent_path);
1815 detach_mnt(user_nd.path.mnt, &root_parent); 1753 detach_mnt(user_nd.path.mnt, &root_parent);
1816 /* mount old root on put_old */ 1754 /* mount old root on put_old */
1817 attach_mnt(user_nd.path.mnt, &old_nd); 1755 attach_mnt(user_nd.path.mnt, &old_nd.path);
1818 /* mount new_root on / */ 1756 /* mount new_root on / */
1819 attach_mnt(new_nd.path.mnt, &root_parent); 1757 attach_mnt(new_nd.path.mnt, &root_parent);
1820 touch_mnt_namespace(current->nsproxy->mnt_ns); 1758 touch_mnt_namespace(current->nsproxy->mnt_ns);
1821 spin_unlock(&vfsmount_lock); 1759 spin_unlock(&vfsmount_lock);
1822 chroot_fs_refs(&user_nd, &new_nd); 1760 chroot_fs_refs(&user_nd.path, &new_nd.path);
1823 security_sb_post_pivotroot(&user_nd, &new_nd); 1761 security_sb_post_pivotroot(&user_nd, &new_nd);
1824 error = 0; 1762 error = 0;
1825 path_put(&root_parent.path); 1763 path_put(&root_parent);
1826 path_put(&parent_nd.path); 1764 path_put(&parent_path);
1827out2: 1765out2:
1828 mutex_unlock(&old_nd.path.dentry->d_inode->i_mutex); 1766 mutex_unlock(&old_nd.path.dentry->d_inode->i_mutex);
1829 up_write(&namespace_sem); 1767 up_write(&namespace_sem);
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index 3d7d9631e125..5a70be589bbe 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -533,7 +533,10 @@ readpage_async_filler(void *data, struct page *page)
533 533
534 if (len < PAGE_CACHE_SIZE) 534 if (len < PAGE_CACHE_SIZE)
535 zero_user_segment(page, len, PAGE_CACHE_SIZE); 535 zero_user_segment(page, len, PAGE_CACHE_SIZE);
536 nfs_pageio_add_request(desc->pgio, new); 536 if (!nfs_pageio_add_request(desc->pgio, new)) {
537 error = desc->pgio->pg_error;
538 goto out_unlock;
539 }
537 return 0; 540 return 0;
538out_error: 541out_error:
539 error = PTR_ERR(new); 542 error = PTR_ERR(new);
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index fcf4b982c885..f9219024f31a 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -589,8 +589,6 @@ static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags)
589 struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb); 589 struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb);
590 struct rpc_clnt *rpc; 590 struct rpc_clnt *rpc;
591 591
592 shrink_submounts(vfsmnt, &nfs_automount_list);
593
594 if (!(flags & MNT_FORCE)) 592 if (!(flags & MNT_FORCE))
595 return; 593 return;
596 /* -EIO all pending I/O */ 594 /* -EIO all pending I/O */
@@ -632,7 +630,7 @@ static int nfs_verify_server_address(struct sockaddr *addr)
632 switch (addr->sa_family) { 630 switch (addr->sa_family) {
633 case AF_INET: { 631 case AF_INET: {
634 struct sockaddr_in *sa = (struct sockaddr_in *)addr; 632 struct sockaddr_in *sa = (struct sockaddr_in *)addr;
635 return sa->sin_addr.s_addr != INADDR_ANY; 633 return sa->sin_addr.s_addr != htonl(INADDR_ANY);
636 } 634 }
637 case AF_INET6: { 635 case AF_INET6: {
638 struct in6_addr *sa = &((struct sockaddr_in6 *)addr)->sin6_addr; 636 struct in6_addr *sa = &((struct sockaddr_in6 *)addr)->sin6_addr;
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 80c61fdb2720..bed63416a55b 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -39,6 +39,7 @@ static struct nfs_page * nfs_update_request(struct nfs_open_context*,
39 unsigned int, unsigned int); 39 unsigned int, unsigned int);
40static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc, 40static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc,
41 struct inode *inode, int ioflags); 41 struct inode *inode, int ioflags);
42static void nfs_redirty_request(struct nfs_page *req);
42static const struct rpc_call_ops nfs_write_partial_ops; 43static const struct rpc_call_ops nfs_write_partial_ops;
43static const struct rpc_call_ops nfs_write_full_ops; 44static const struct rpc_call_ops nfs_write_full_ops;
44static const struct rpc_call_ops nfs_commit_ops; 45static const struct rpc_call_ops nfs_commit_ops;
@@ -288,7 +289,12 @@ static int nfs_page_async_flush(struct nfs_pageio_descriptor *pgio,
288 BUG(); 289 BUG();
289 } 290 }
290 spin_unlock(&inode->i_lock); 291 spin_unlock(&inode->i_lock);
291 nfs_pageio_add_request(pgio, req); 292 if (!nfs_pageio_add_request(pgio, req)) {
293 nfs_redirty_request(req);
294 nfs_end_page_writeback(page);
295 nfs_clear_page_tag_locked(req);
296 return pgio->pg_error;
297 }
292 return 0; 298 return 0;
293} 299}
294 300
diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c
index 1eb771d79cca..3e6b3f41ee1f 100644
--- a/fs/nfsd/nfsfh.c
+++ b/fs/nfsd/nfsfh.c
@@ -232,6 +232,7 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
232 fhp->fh_dentry = dentry; 232 fhp->fh_dentry = dentry;
233 fhp->fh_export = exp; 233 fhp->fh_export = exp;
234 nfsd_nr_verified++; 234 nfsd_nr_verified++;
235 cache_get(&exp->h);
235 } else { 236 } else {
236 /* 237 /*
237 * just rechecking permissions 238 * just rechecking permissions
@@ -241,6 +242,7 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
241 dprintk("nfsd: fh_verify - just checking\n"); 242 dprintk("nfsd: fh_verify - just checking\n");
242 dentry = fhp->fh_dentry; 243 dentry = fhp->fh_dentry;
243 exp = fhp->fh_export; 244 exp = fhp->fh_export;
245 cache_get(&exp->h);
244 /* 246 /*
245 * Set user creds for this exportpoint; necessary even 247 * Set user creds for this exportpoint; necessary even
246 * in the "just checking" case because this may be a 248 * in the "just checking" case because this may be a
@@ -252,8 +254,6 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
252 if (error) 254 if (error)
253 goto out; 255 goto out;
254 } 256 }
255 cache_get(&exp->h);
256
257 257
258 error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type); 258 error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type);
259 if (error) 259 if (error)
diff --git a/fs/open.c b/fs/open.c
index 54198538b67e..a4b12022edaa 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -903,6 +903,18 @@ struct file *dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags)
903 int error; 903 int error;
904 struct file *f; 904 struct file *f;
905 905
906 /*
907 * We must always pass in a valid mount pointer. Historically
908 * callers got away with not passing it, but we must enforce this at
909 * the earliest possible point now to avoid strange problems deep in the
910 * filesystem stack.
911 */
912 if (!mnt) {
913 printk(KERN_WARNING "%s called with NULL vfsmount\n", __func__);
914 dump_stack();
915 return ERR_PTR(-EINVAL);
916 }
917
906 error = -ENFILE; 918 error = -ENFILE;
907 f = get_empty_filp(); 919 f = get_empty_filp();
908 if (f == NULL) { 920 if (f == NULL) {
diff --git a/fs/pipe.c b/fs/pipe.c
index 3c185b6527bc..8be381bbcb54 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -957,13 +957,10 @@ struct file *create_write_pipe(void)
957 struct dentry *dentry; 957 struct dentry *dentry;
958 struct qstr name = { .name = "" }; 958 struct qstr name = { .name = "" };
959 959
960 f = get_empty_filp();
961 if (!f)
962 return ERR_PTR(-ENFILE);
963 err = -ENFILE; 960 err = -ENFILE;
964 inode = get_pipe_inode(); 961 inode = get_pipe_inode();
965 if (!inode) 962 if (!inode)
966 goto err_file; 963 goto err;
967 964
968 err = -ENOMEM; 965 err = -ENOMEM;
969 dentry = d_alloc(pipe_mnt->mnt_sb->s_root, &name); 966 dentry = d_alloc(pipe_mnt->mnt_sb->s_root, &name);
@@ -978,22 +975,24 @@ struct file *create_write_pipe(void)
978 */ 975 */
979 dentry->d_flags &= ~DCACHE_UNHASHED; 976 dentry->d_flags &= ~DCACHE_UNHASHED;
980 d_instantiate(dentry, inode); 977 d_instantiate(dentry, inode);
981 f->f_path.mnt = mntget(pipe_mnt); 978
982 f->f_path.dentry = dentry; 979 err = -ENFILE;
980 f = alloc_file(pipe_mnt, dentry, FMODE_WRITE, &write_pipe_fops);
981 if (!f)
982 goto err_dentry;
983 f->f_mapping = inode->i_mapping; 983 f->f_mapping = inode->i_mapping;
984 984
985 f->f_flags = O_WRONLY; 985 f->f_flags = O_WRONLY;
986 f->f_op = &write_pipe_fops;
987 f->f_mode = FMODE_WRITE;
988 f->f_version = 0; 986 f->f_version = 0;
989 987
990 return f; 988 return f;
991 989
990 err_dentry:
991 dput(dentry);
992 err_inode: 992 err_inode:
993 free_pipe_info(inode); 993 free_pipe_info(inode);
994 iput(inode); 994 iput(inode);
995 err_file: 995 err:
996 put_filp(f);
997 return ERR_PTR(err); 996 return ERR_PTR(err);
998} 997}
999 998
diff --git a/fs/pnode.c b/fs/pnode.c
index 05ba692bc540..1d8f5447f3f7 100644
--- a/fs/pnode.c
+++ b/fs/pnode.c
@@ -225,7 +225,7 @@ out:
225 */ 225 */
226static inline int do_refcount_check(struct vfsmount *mnt, int count) 226static inline int do_refcount_check(struct vfsmount *mnt, int count)
227{ 227{
228 int mycount = atomic_read(&mnt->mnt_count); 228 int mycount = atomic_read(&mnt->mnt_count) - mnt->mnt_ghosts;
229 return (mycount > count); 229 return (mycount > count);
230} 230}
231 231
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 91a1bd67ac1d..81d7d145292a 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1036,6 +1036,26 @@ static const struct file_operations proc_loginuid_operations = {
1036 .read = proc_loginuid_read, 1036 .read = proc_loginuid_read,
1037 .write = proc_loginuid_write, 1037 .write = proc_loginuid_write,
1038}; 1038};
1039
1040static ssize_t proc_sessionid_read(struct file * file, char __user * buf,
1041 size_t count, loff_t *ppos)
1042{
1043 struct inode * inode = file->f_path.dentry->d_inode;
1044 struct task_struct *task = get_proc_task(inode);
1045 ssize_t length;
1046 char tmpbuf[TMPBUFLEN];
1047
1048 if (!task)
1049 return -ESRCH;
1050 length = scnprintf(tmpbuf, TMPBUFLEN, "%u",
1051 audit_get_sessionid(task));
1052 put_task_struct(task);
1053 return simple_read_from_buffer(buf, count, ppos, tmpbuf, length);
1054}
1055
1056static const struct file_operations proc_sessionid_operations = {
1057 .read = proc_sessionid_read,
1058};
1039#endif 1059#endif
1040 1060
1041#ifdef CONFIG_FAULT_INJECTION 1061#ifdef CONFIG_FAULT_INJECTION
@@ -2269,6 +2289,9 @@ static const struct pid_entry tgid_base_stuff[] = {
2269 DIR("task", S_IRUGO|S_IXUGO, task), 2289 DIR("task", S_IRUGO|S_IXUGO, task),
2270 DIR("fd", S_IRUSR|S_IXUSR, fd), 2290 DIR("fd", S_IRUSR|S_IXUSR, fd),
2271 DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo), 2291 DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo),
2292#ifdef CONFIG_NET
2293 DIR("net", S_IRUGO|S_IXUGO, net),
2294#endif
2272 REG("environ", S_IRUSR, environ), 2295 REG("environ", S_IRUSR, environ),
2273 INF("auxv", S_IRUSR, pid_auxv), 2296 INF("auxv", S_IRUSR, pid_auxv),
2274 ONE("status", S_IRUGO, pid_status), 2297 ONE("status", S_IRUGO, pid_status),
@@ -2316,6 +2339,7 @@ static const struct pid_entry tgid_base_stuff[] = {
2316 REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), 2339 REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust),
2317#ifdef CONFIG_AUDITSYSCALL 2340#ifdef CONFIG_AUDITSYSCALL
2318 REG("loginuid", S_IWUSR|S_IRUGO, loginuid), 2341 REG("loginuid", S_IWUSR|S_IRUGO, loginuid),
2342 REG("sessionid", S_IRUSR, sessionid),
2319#endif 2343#endif
2320#ifdef CONFIG_FAULT_INJECTION 2344#ifdef CONFIG_FAULT_INJECTION
2321 REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), 2345 REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject),
@@ -2646,6 +2670,7 @@ static const struct pid_entry tid_base_stuff[] = {
2646 REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), 2670 REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust),
2647#ifdef CONFIG_AUDITSYSCALL 2671#ifdef CONFIG_AUDITSYSCALL
2648 REG("loginuid", S_IWUSR|S_IRUGO, loginuid), 2672 REG("loginuid", S_IWUSR|S_IRUGO, loginuid),
2673 REG("sessionid", S_IRUSR, sessionid),
2649#endif 2674#endif
2650#ifdef CONFIG_FAULT_INJECTION 2675#ifdef CONFIG_FAULT_INJECTION
2651 REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), 2676 REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject),
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 68971e66cd41..a36ad3c75cf4 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -377,15 +377,14 @@ static struct dentry_operations proc_dentry_operations =
377 * Don't create negative dentries here, return -ENOENT by hand 377 * Don't create negative dentries here, return -ENOENT by hand
378 * instead. 378 * instead.
379 */ 379 */
380struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) 380struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
381 struct dentry *dentry)
381{ 382{
382 struct inode *inode = NULL; 383 struct inode *inode = NULL;
383 struct proc_dir_entry * de;
384 int error = -ENOENT; 384 int error = -ENOENT;
385 385
386 lock_kernel(); 386 lock_kernel();
387 spin_lock(&proc_subdir_lock); 387 spin_lock(&proc_subdir_lock);
388 de = PDE(dir);
389 if (de) { 388 if (de) {
390 for (de = de->subdir; de ; de = de->next) { 389 for (de = de->subdir; de ; de = de->next) {
391 if (de->namelen != dentry->d_name.len) 390 if (de->namelen != dentry->d_name.len)
@@ -393,8 +392,6 @@ struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nam
393 if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { 392 if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
394 unsigned int ino; 393 unsigned int ino;
395 394
396 if (de->shadow_proc)
397 de = de->shadow_proc(current, de);
398 ino = de->low_ino; 395 ino = de->low_ino;
399 de_get(de); 396 de_get(de);
400 spin_unlock(&proc_subdir_lock); 397 spin_unlock(&proc_subdir_lock);
@@ -417,6 +414,12 @@ out_unlock:
417 return ERR_PTR(error); 414 return ERR_PTR(error);
418} 415}
419 416
417struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
418 struct nameidata *nd)
419{
420 return proc_lookup_de(PDE(dir), dir, dentry);
421}
422
420/* 423/*
421 * This returns non-zero if at EOF, so that the /proc 424 * This returns non-zero if at EOF, so that the /proc
422 * root directory can use this and check if it should 425 * root directory can use this and check if it should
@@ -426,10 +429,9 @@ out_unlock:
426 * value of the readdir() call, as long as it's non-negative 429 * value of the readdir() call, as long as it's non-negative
427 * for success.. 430 * for success..
428 */ 431 */
429int proc_readdir(struct file * filp, 432int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
430 void * dirent, filldir_t filldir) 433 filldir_t filldir)
431{ 434{
432 struct proc_dir_entry * de;
433 unsigned int ino; 435 unsigned int ino;
434 int i; 436 int i;
435 struct inode *inode = filp->f_path.dentry->d_inode; 437 struct inode *inode = filp->f_path.dentry->d_inode;
@@ -438,7 +440,6 @@ int proc_readdir(struct file * filp,
438 lock_kernel(); 440 lock_kernel();
439 441
440 ino = inode->i_ino; 442 ino = inode->i_ino;
441 de = PDE(inode);
442 if (!de) { 443 if (!de) {
443 ret = -EINVAL; 444 ret = -EINVAL;
444 goto out; 445 goto out;
@@ -499,6 +500,13 @@ out: unlock_kernel();
499 return ret; 500 return ret;
500} 501}
501 502
503int proc_readdir(struct file *filp, void *dirent, filldir_t filldir)
504{
505 struct inode *inode = filp->f_path.dentry->d_inode;
506
507 return proc_readdir_de(PDE(inode), filp, dirent, filldir);
508}
509
502/* 510/*
503 * These are the generic /proc directory operations. They 511 * These are the generic /proc directory operations. They
504 * use the in-memory "struct proc_dir_entry" tree to parse 512 * use the in-memory "struct proc_dir_entry" tree to parse
diff --git a/fs/proc/internal.h b/fs/proc/internal.h
index 1c81c8f1aeed..bc72f5c8c47d 100644
--- a/fs/proc/internal.h
+++ b/fs/proc/internal.h
@@ -64,6 +64,8 @@ extern const struct file_operations proc_numa_maps_operations;
64extern const struct file_operations proc_smaps_operations; 64extern const struct file_operations proc_smaps_operations;
65extern const struct file_operations proc_clear_refs_operations; 65extern const struct file_operations proc_clear_refs_operations;
66extern const struct file_operations proc_pagemap_operations; 66extern const struct file_operations proc_pagemap_operations;
67extern const struct file_operations proc_net_operations;
68extern const struct inode_operations proc_net_inode_operations;
67 69
68void free_proc_entry(struct proc_dir_entry *de); 70void free_proc_entry(struct proc_dir_entry *de);
69 71
@@ -83,3 +85,8 @@ static inline int proc_fd(struct inode *inode)
83{ 85{
84 return PROC_I(inode)->fd; 86 return PROC_I(inode)->fd;
85} 87}
88
89struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *ino,
90 struct dentry *dentry);
91int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
92 filldir_t filldir);
diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
index 14e9b5aaf863..4caa5f774fb7 100644
--- a/fs/proc/proc_net.c
+++ b/fs/proc/proc_net.c
@@ -63,6 +63,82 @@ int seq_release_net(struct inode *ino, struct file *f)
63} 63}
64EXPORT_SYMBOL_GPL(seq_release_net); 64EXPORT_SYMBOL_GPL(seq_release_net);
65 65
66static struct net *get_proc_task_net(struct inode *dir)
67{
68 struct task_struct *task;
69 struct nsproxy *ns;
70 struct net *net = NULL;
71
72 rcu_read_lock();
73 task = pid_task(proc_pid(dir), PIDTYPE_PID);
74 if (task != NULL) {
75 ns = task_nsproxy(task);
76 if (ns != NULL)
77 net = get_net(ns->net_ns);
78 }
79 rcu_read_unlock();
80
81 return net;
82}
83
84static struct dentry *proc_tgid_net_lookup(struct inode *dir,
85 struct dentry *dentry, struct nameidata *nd)
86{
87 struct dentry *de;
88 struct net *net;
89
90 de = ERR_PTR(-ENOENT);
91 net = get_proc_task_net(dir);
92 if (net != NULL) {
93 de = proc_lookup_de(net->proc_net, dir, dentry);
94 put_net(net);
95 }
96 return de;
97}
98
99static int proc_tgid_net_getattr(struct vfsmount *mnt, struct dentry *dentry,
100 struct kstat *stat)
101{
102 struct inode *inode = dentry->d_inode;
103 struct net *net;
104
105 net = get_proc_task_net(inode);
106
107 generic_fillattr(inode, stat);
108
109 if (net != NULL) {
110 stat->nlink = net->proc_net->nlink;
111 put_net(net);
112 }
113
114 return 0;
115}
116
117const struct inode_operations proc_net_inode_operations = {
118 .lookup = proc_tgid_net_lookup,
119 .getattr = proc_tgid_net_getattr,
120};
121
122static int proc_tgid_net_readdir(struct file *filp, void *dirent,
123 filldir_t filldir)
124{
125 int ret;
126 struct net *net;
127
128 ret = -EINVAL;
129 net = get_proc_task_net(filp->f_path.dentry->d_inode);
130 if (net != NULL) {
131 ret = proc_readdir_de(net->proc_net, filp, dirent, filldir);
132 put_net(net);
133 }
134 return ret;
135}
136
137const struct file_operations proc_net_operations = {
138 .read = generic_read_dir,
139 .readdir = proc_tgid_net_readdir,
140};
141
66 142
67struct proc_dir_entry *proc_net_fops_create(struct net *net, 143struct proc_dir_entry *proc_net_fops_create(struct net *net,
68 const char *name, mode_t mode, const struct file_operations *fops) 144 const char *name, mode_t mode, const struct file_operations *fops)
@@ -83,14 +159,6 @@ struct net *get_proc_net(const struct inode *inode)
83} 159}
84EXPORT_SYMBOL_GPL(get_proc_net); 160EXPORT_SYMBOL_GPL(get_proc_net);
85 161
86static struct proc_dir_entry *shadow_pde;
87
88static struct proc_dir_entry *proc_net_shadow(struct task_struct *task,
89 struct proc_dir_entry *de)
90{
91 return task->nsproxy->net_ns->proc_net;
92}
93
94struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name, 162struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name,
95 struct proc_dir_entry *parent) 163 struct proc_dir_entry *parent)
96{ 164{
@@ -104,45 +172,39 @@ EXPORT_SYMBOL_GPL(proc_net_mkdir);
104 172
105static __net_init int proc_net_ns_init(struct net *net) 173static __net_init int proc_net_ns_init(struct net *net)
106{ 174{
107 struct proc_dir_entry *root, *netd, *net_statd; 175 struct proc_dir_entry *netd, *net_statd;
108 int err; 176 int err;
109 177
110 err = -ENOMEM; 178 err = -ENOMEM;
111 root = kzalloc(sizeof(*root), GFP_KERNEL); 179 netd = kzalloc(sizeof(*netd), GFP_KERNEL);
112 if (!root) 180 if (!netd)
113 goto out; 181 goto out;
114 182
115 err = -EEXIST; 183 netd->data = net;
116 netd = proc_net_mkdir(net, "net", root); 184 netd->nlink = 2;
117 if (!netd) 185 netd->name = "net";
118 goto free_root; 186 netd->namelen = 3;
187 netd->parent = &proc_root;
119 188
120 err = -EEXIST; 189 err = -EEXIST;
121 net_statd = proc_net_mkdir(net, "stat", netd); 190 net_statd = proc_net_mkdir(net, "stat", netd);
122 if (!net_statd) 191 if (!net_statd)
123 goto free_net; 192 goto free_net;
124 193
125 root->data = net;
126
127 net->proc_net_root = root;
128 net->proc_net = netd; 194 net->proc_net = netd;
129 net->proc_net_stat = net_statd; 195 net->proc_net_stat = net_statd;
130 err = 0; 196 return 0;
131 197
198free_net:
199 kfree(netd);
132out: 200out:
133 return err; 201 return err;
134free_net:
135 remove_proc_entry("net", root);
136free_root:
137 kfree(root);
138 goto out;
139} 202}
140 203
141static __net_exit void proc_net_ns_exit(struct net *net) 204static __net_exit void proc_net_ns_exit(struct net *net)
142{ 205{
143 remove_proc_entry("stat", net->proc_net); 206 remove_proc_entry("stat", net->proc_net);
144 remove_proc_entry("net", net->proc_net_root); 207 kfree(net->proc_net);
145 kfree(net->proc_net_root);
146} 208}
147 209
148static struct pernet_operations __net_initdata proc_net_ns_ops = { 210static struct pernet_operations __net_initdata proc_net_ns_ops = {
@@ -152,8 +214,7 @@ static struct pernet_operations __net_initdata proc_net_ns_ops = {
152 214
153int __init proc_net_init(void) 215int __init proc_net_init(void)
154{ 216{
155 shadow_pde = proc_mkdir("net", NULL); 217 proc_symlink("net", NULL, "self/net");
156 shadow_pde->shadow_proc = proc_net_shadow;
157 218
158 return register_pernet_subsys(&proc_net_ns_ops); 219 return register_pernet_subsys(&proc_net_ns_ops);
159} 220}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 6dc0334815f7..9dfb5ff24209 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -527,13 +527,21 @@ struct pagemapread {
527 char __user *out, *end; 527 char __user *out, *end;
528}; 528};
529 529
530#define PM_ENTRY_BYTES sizeof(u64) 530#define PM_ENTRY_BYTES sizeof(u64)
531#define PM_RESERVED_BITS 3 531#define PM_STATUS_BITS 3
532#define PM_RESERVED_OFFSET (64 - PM_RESERVED_BITS) 532#define PM_STATUS_OFFSET (64 - PM_STATUS_BITS)
533#define PM_RESERVED_MASK (((1LL<<PM_RESERVED_BITS)-1) << PM_RESERVED_OFFSET) 533#define PM_STATUS_MASK (((1LL << PM_STATUS_BITS) - 1) << PM_STATUS_OFFSET)
534#define PM_SPECIAL(nr) (((nr) << PM_RESERVED_OFFSET) & PM_RESERVED_MASK) 534#define PM_STATUS(nr) (((nr) << PM_STATUS_OFFSET) & PM_STATUS_MASK)
535#define PM_NOT_PRESENT PM_SPECIAL(1LL) 535#define PM_PSHIFT_BITS 6
536#define PM_SWAP PM_SPECIAL(2LL) 536#define PM_PSHIFT_OFFSET (PM_STATUS_OFFSET - PM_PSHIFT_BITS)
537#define PM_PSHIFT_MASK (((1LL << PM_PSHIFT_BITS) - 1) << PM_PSHIFT_OFFSET)
538#define PM_PSHIFT(x) (((u64) (x) << PM_PSHIFT_OFFSET) & PM_PSHIFT_MASK)
539#define PM_PFRAME_MASK ((1LL << PM_PSHIFT_OFFSET) - 1)
540#define PM_PFRAME(x) ((x) & PM_PFRAME_MASK)
541
542#define PM_PRESENT PM_STATUS(4LL)
543#define PM_SWAP PM_STATUS(2LL)
544#define PM_NOT_PRESENT PM_PSHIFT(PAGE_SHIFT)
537#define PM_END_OF_BUFFER 1 545#define PM_END_OF_BUFFER 1
538 546
539static int add_to_pagemap(unsigned long addr, u64 pfn, 547static int add_to_pagemap(unsigned long addr, u64 pfn,
@@ -574,7 +582,7 @@ static int pagemap_pte_hole(unsigned long start, unsigned long end,
574u64 swap_pte_to_pagemap_entry(pte_t pte) 582u64 swap_pte_to_pagemap_entry(pte_t pte)
575{ 583{
576 swp_entry_t e = pte_to_swp_entry(pte); 584 swp_entry_t e = pte_to_swp_entry(pte);
577 return PM_SWAP | swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); 585 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT);
578} 586}
579 587
580static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, 588static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
@@ -588,9 +596,11 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
588 u64 pfn = PM_NOT_PRESENT; 596 u64 pfn = PM_NOT_PRESENT;
589 pte = pte_offset_map(pmd, addr); 597 pte = pte_offset_map(pmd, addr);
590 if (is_swap_pte(*pte)) 598 if (is_swap_pte(*pte))
591 pfn = swap_pte_to_pagemap_entry(*pte); 599 pfn = PM_PFRAME(swap_pte_to_pagemap_entry(*pte))
600 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;
592 else if (pte_present(*pte)) 601 else if (pte_present(*pte))
593 pfn = pte_pfn(*pte); 602 pfn = PM_PFRAME(pte_pfn(*pte))
603 | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT;
594 /* unmap so we're not in atomic when we copy to userspace */ 604 /* unmap so we're not in atomic when we copy to userspace */
595 pte_unmap(pte); 605 pte_unmap(pte);
596 err = add_to_pagemap(addr, pfn, pm); 606 err = add_to_pagemap(addr, pfn, pm);
@@ -611,12 +621,20 @@ static struct mm_walk pagemap_walk = {
611/* 621/*
612 * /proc/pid/pagemap - an array mapping virtual pages to pfns 622 * /proc/pid/pagemap - an array mapping virtual pages to pfns
613 * 623 *
614 * For each page in the address space, this file contains one 64-bit 624 * For each page in the address space, this file contains one 64-bit entry
615 * entry representing the corresponding physical page frame number 625 * consisting of the following:
616 * (PFN) if the page is present. If there is a swap entry for the 626 *
617 * physical page, then an encoding of the swap file number and the 627 * Bits 0-55 page frame number (PFN) if present
618 * page's offset into the swap file are returned. If no page is 628 * Bits 0-4 swap type if swapped
619 * present at all, PM_NOT_PRESENT is returned. This allows determining 629 * Bits 5-55 swap offset if swapped
630 * Bits 55-60 page shift (page size = 1<<page shift)
631 * Bit 61 reserved for future use
632 * Bit 62 page swapped
633 * Bit 63 page present
634 *
635 * If the page is not present but in swap, then the PFN contains an
636 * encoding of the swap file number and the page's offset into the
637 * swap. Unmapped pages return a null PFN. This allows determining
620 * precisely which pages are mapped (or in swap) and comparing mapped 638 * precisely which pages are mapped (or in swap) and comparing mapped
621 * pages between processes. 639 * pages between processes.
622 * 640 *
@@ -640,17 +658,17 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
640 658
641 ret = -EACCES; 659 ret = -EACCES;
642 if (!ptrace_may_attach(task)) 660 if (!ptrace_may_attach(task))
643 goto out; 661 goto out_task;
644 662
645 ret = -EINVAL; 663 ret = -EINVAL;
646 /* file position must be aligned */ 664 /* file position must be aligned */
647 if (*ppos % PM_ENTRY_BYTES) 665 if (*ppos % PM_ENTRY_BYTES)
648 goto out; 666 goto out_task;
649 667
650 ret = 0; 668 ret = 0;
651 mm = get_task_mm(task); 669 mm = get_task_mm(task);
652 if (!mm) 670 if (!mm)
653 goto out; 671 goto out_task;
654 672
655 ret = -ENOMEM; 673 ret = -ENOMEM;
656 uaddr = (unsigned long)buf & PAGE_MASK; 674 uaddr = (unsigned long)buf & PAGE_MASK;
@@ -658,7 +676,7 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
658 pagecount = (PAGE_ALIGN(uend) - uaddr) / PAGE_SIZE; 676 pagecount = (PAGE_ALIGN(uend) - uaddr) / PAGE_SIZE;
659 pages = kmalloc(pagecount * sizeof(struct page *), GFP_KERNEL); 677 pages = kmalloc(pagecount * sizeof(struct page *), GFP_KERNEL);
660 if (!pages) 678 if (!pages)
661 goto out_task; 679 goto out_mm;
662 680
663 down_read(&current->mm->mmap_sem); 681 down_read(&current->mm->mmap_sem);
664 ret = get_user_pages(current, current->mm, uaddr, pagecount, 682 ret = get_user_pages(current, current->mm, uaddr, pagecount,
@@ -668,6 +686,12 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
668 if (ret < 0) 686 if (ret < 0)
669 goto out_free; 687 goto out_free;
670 688
689 if (ret != pagecount) {
690 pagecount = ret;
691 ret = -EFAULT;
692 goto out_pages;
693 }
694
671 pm.out = buf; 695 pm.out = buf;
672 pm.end = buf + count; 696 pm.end = buf + count;
673 697
@@ -699,15 +723,17 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
699 ret = pm.out - buf; 723 ret = pm.out - buf;
700 } 724 }
701 725
726out_pages:
702 for (; pagecount; pagecount--) { 727 for (; pagecount; pagecount--) {
703 page = pages[pagecount-1]; 728 page = pages[pagecount-1];
704 if (!PageReserved(page)) 729 if (!PageReserved(page))
705 SetPageDirty(page); 730 SetPageDirty(page);
706 page_cache_release(page); 731 page_cache_release(page);
707 } 732 }
708 mmput(mm);
709out_free: 733out_free:
710 kfree(pages); 734 kfree(pages);
735out_mm:
736 mmput(mm);
711out_task: 737out_task:
712 put_task_struct(task); 738 put_task_struct(task);
713out: 739out:
diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
index f85c5cf4934c..7ee4208793b6 100644
--- a/fs/reiserfs/do_balan.c
+++ b/fs/reiserfs/do_balan.c
@@ -283,7 +283,7 @@ static int balance_leaf(struct tree_balance *tb, struct item_head *ih, /* item h
283 return balance_leaf_when_delete(tb, flag); 283 return balance_leaf_when_delete(tb, flag);
284 284
285 zeros_num = 0; 285 zeros_num = 0;
286 if (flag == M_INSERT && body == 0) 286 if (flag == M_INSERT && !body)
287 zeros_num = ih_item_len(ih); 287 zeros_num = ih_item_len(ih);
288 288
289 pos_in_item = tb->tb_path->pos_in_item; 289 pos_in_item = tb->tb_path->pos_in_item;
@@ -1728,7 +1728,7 @@ struct buffer_head *get_FEB(struct tree_balance *tb)
1728 struct buffer_info bi; 1728 struct buffer_info bi;
1729 1729
1730 for (i = 0; i < MAX_FEB_SIZE; i++) 1730 for (i = 0; i < MAX_FEB_SIZE; i++)
1731 if (tb->FEB[i] != 0) 1731 if (tb->FEB[i] != NULL)
1732 break; 1732 break;
1733 1733
1734 if (i == MAX_FEB_SIZE) 1734 if (i == MAX_FEB_SIZE)
@@ -1827,7 +1827,7 @@ int get_left_neighbor_position(struct tree_balance *tb, int h)
1827{ 1827{
1828 int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1); 1828 int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1);
1829 1829
1830 RFALSE(PATH_H_PPARENT(tb->tb_path, h) == 0 || tb->FL[h] == 0, 1830 RFALSE(PATH_H_PPARENT(tb->tb_path, h) == NULL || tb->FL[h] == NULL,
1831 "vs-12325: FL[%d](%p) or F[%d](%p) does not exist", 1831 "vs-12325: FL[%d](%p) or F[%d](%p) does not exist",
1832 h, tb->FL[h], h, PATH_H_PPARENT(tb->tb_path, h)); 1832 h, tb->FL[h], h, PATH_H_PPARENT(tb->tb_path, h));
1833 1833
@@ -1841,7 +1841,7 @@ int get_right_neighbor_position(struct tree_balance *tb, int h)
1841{ 1841{
1842 int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1); 1842 int Sh_position = PATH_H_POSITION(tb->tb_path, h + 1);
1843 1843
1844 RFALSE(PATH_H_PPARENT(tb->tb_path, h) == 0 || tb->FR[h] == 0, 1844 RFALSE(PATH_H_PPARENT(tb->tb_path, h) == NULL || tb->FR[h] == NULL,
1845 "vs-12330: F[%d](%p) or FR[%d](%p) does not exist", 1845 "vs-12330: F[%d](%p) or FR[%d](%p) does not exist",
1846 h, PATH_H_PPARENT(tb->tb_path, h), h, tb->FR[h]); 1846 h, PATH_H_PPARENT(tb->tb_path, h), h, tb->FR[h]);
1847 1847
diff --git a/fs/reiserfs/fix_node.c b/fs/reiserfs/fix_node.c
index 0ee35c6c9b72..07d05e0842b7 100644
--- a/fs/reiserfs/fix_node.c
+++ b/fs/reiserfs/fix_node.c
@@ -153,7 +153,7 @@ static void create_virtual_node(struct tree_balance *tb, int h)
153 if (vn->vn_mode == M_INSERT) { 153 if (vn->vn_mode == M_INSERT) {
154 struct virtual_item *vi = vn->vn_vi + vn->vn_affected_item_num; 154 struct virtual_item *vi = vn->vn_vi + vn->vn_affected_item_num;
155 155
156 RFALSE(vn->vn_ins_ih == 0, 156 RFALSE(vn->vn_ins_ih == NULL,
157 "vs-8040: item header of inserted item is not specified"); 157 "vs-8040: item header of inserted item is not specified");
158 vi->vi_item_len = tb->insert_size[0]; 158 vi->vi_item_len = tb->insert_size[0];
159 vi->vi_ih = vn->vn_ins_ih; 159 vi->vi_ih = vn->vn_ins_ih;
@@ -857,7 +857,8 @@ static int get_lfree(struct tree_balance *tb, int h)
857 struct buffer_head *l, *f; 857 struct buffer_head *l, *f;
858 int order; 858 int order;
859 859
860 if ((f = PATH_H_PPARENT(tb->tb_path, h)) == 0 || (l = tb->FL[h]) == 0) 860 if ((f = PATH_H_PPARENT(tb->tb_path, h)) == NULL ||
861 (l = tb->FL[h]) == NULL)
861 return 0; 862 return 0;
862 863
863 if (f == l) 864 if (f == l)
@@ -878,7 +879,8 @@ static int get_rfree(struct tree_balance *tb, int h)
878 struct buffer_head *r, *f; 879 struct buffer_head *r, *f;
879 int order; 880 int order;
880 881
881 if ((f = PATH_H_PPARENT(tb->tb_path, h)) == 0 || (r = tb->FR[h]) == 0) 882 if ((f = PATH_H_PPARENT(tb->tb_path, h)) == NULL ||
883 (r = tb->FR[h]) == NULL)
882 return 0; 884 return 0;
883 885
884 if (f == r) 886 if (f == r)
diff --git a/fs/reiserfs/lbalance.c b/fs/reiserfs/lbalance.c
index 281f8061ac58..6de060a6aa7f 100644
--- a/fs/reiserfs/lbalance.c
+++ b/fs/reiserfs/lbalance.c
@@ -626,7 +626,7 @@ static void leaf_define_dest_src_infos(int shift_mode, struct tree_balance *tb,
626 "vs-10250: leaf_define_dest_src_infos: shift type is unknown (%d)", 626 "vs-10250: leaf_define_dest_src_infos: shift type is unknown (%d)",
627 shift_mode); 627 shift_mode);
628 } 628 }
629 RFALSE(src_bi->bi_bh == 0 || dest_bi->bi_bh == 0, 629 RFALSE(!src_bi->bi_bh || !dest_bi->bi_bh,
630 "vs-10260: mode==%d, source (%p) or dest (%p) buffer is initialized incorrectly", 630 "vs-10260: mode==%d, source (%p) or dest (%p) buffer is initialized incorrectly",
631 shift_mode, src_bi->bi_bh, dest_bi->bi_bh); 631 shift_mode, src_bi->bi_bh, dest_bi->bi_bh);
632} 632}
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
index b378eea332ca..8867533cb727 100644
--- a/fs/reiserfs/namei.c
+++ b/fs/reiserfs/namei.c
@@ -452,7 +452,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
452 buflen = DEH_SIZE + ROUND_UP(namelen); 452 buflen = DEH_SIZE + ROUND_UP(namelen);
453 if (buflen > sizeof(small_buf)) { 453 if (buflen > sizeof(small_buf)) {
454 buffer = kmalloc(buflen, GFP_NOFS); 454 buffer = kmalloc(buflen, GFP_NOFS);
455 if (buffer == 0) 455 if (!buffer)
456 return -ENOMEM; 456 return -ENOMEM;
457 } else 457 } else
458 buffer = small_buf; 458 buffer = small_buf;
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index eba037b3338f..344b9b96cc56 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -191,28 +191,11 @@ static struct dentry *get_xa_file_dentry(const struct inode *inode,
191 dput(xadir); 191 dput(xadir);
192 if (err) 192 if (err)
193 xafile = ERR_PTR(err); 193 xafile = ERR_PTR(err);
194 return xafile;
195}
196
197/* Opens a file pointer to the attribute associated with inode */
198static struct file *open_xa_file(const struct inode *inode, const char *name,
199 int flags)
200{
201 struct dentry *xafile;
202 struct file *fp;
203
204 xafile = get_xa_file_dentry(inode, name, flags);
205 if (IS_ERR(xafile))
206 return ERR_PTR(PTR_ERR(xafile));
207 else if (!xafile->d_inode) { 194 else if (!xafile->d_inode) {
208 dput(xafile); 195 dput(xafile);
209 return ERR_PTR(-ENODATA); 196 xafile = ERR_PTR(-ENODATA);
210 } 197 }
211 198 return xafile;
212 fp = dentry_open(xafile, NULL, O_RDWR);
213 /* dentry_open dputs the dentry if it fails */
214
215 return fp;
216} 199}
217 200
218/* 201/*
@@ -228,9 +211,8 @@ static struct file *open_xa_file(const struct inode *inode, const char *name,
228 * we're called with i_mutex held, so there are no worries about the directory 211 * we're called with i_mutex held, so there are no worries about the directory
229 * changing underneath us. 212 * changing underneath us.
230 */ 213 */
231static int __xattr_readdir(struct file *filp, void *dirent, filldir_t filldir) 214static int __xattr_readdir(struct inode *inode, void *dirent, filldir_t filldir)
232{ 215{
233 struct inode *inode = filp->f_path.dentry->d_inode;
234 struct cpu_key pos_key; /* key of current position in the directory (key of directory entry) */ 216 struct cpu_key pos_key; /* key of current position in the directory (key of directory entry) */
235 INITIALIZE_PATH(path_to_entry); 217 INITIALIZE_PATH(path_to_entry);
236 struct buffer_head *bh; 218 struct buffer_head *bh;
@@ -374,23 +356,16 @@ static int __xattr_readdir(struct file *filp, void *dirent, filldir_t filldir)
374 * 356 *
375 */ 357 */
376static 358static
377int xattr_readdir(struct file *file, filldir_t filler, void *buf) 359int xattr_readdir(struct inode *inode, filldir_t filler, void *buf)
378{ 360{
379 struct inode *inode = file->f_path.dentry->d_inode; 361 int res = -ENOENT;
380 int res = -ENOTDIR;
381 if (!file->f_op || !file->f_op->readdir)
382 goto out;
383 mutex_lock_nested(&inode->i_mutex, I_MUTEX_XATTR); 362 mutex_lock_nested(&inode->i_mutex, I_MUTEX_XATTR);
384// down(&inode->i_zombie);
385 res = -ENOENT;
386 if (!IS_DEADDIR(inode)) { 363 if (!IS_DEADDIR(inode)) {
387 lock_kernel(); 364 lock_kernel();
388 res = __xattr_readdir(file, buf, filler); 365 res = __xattr_readdir(inode, buf, filler);
389 unlock_kernel(); 366 unlock_kernel();
390 } 367 }
391// up(&inode->i_zombie);
392 mutex_unlock(&inode->i_mutex); 368 mutex_unlock(&inode->i_mutex);
393 out:
394 return res; 369 return res;
395} 370}
396 371
@@ -442,7 +417,7 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
442 size_t buffer_size, int flags) 417 size_t buffer_size, int flags)
443{ 418{
444 int err = 0; 419 int err = 0;
445 struct file *fp; 420 struct dentry *dentry;
446 struct page *page; 421 struct page *page;
447 char *data; 422 char *data;
448 struct address_space *mapping; 423 struct address_space *mapping;
@@ -460,18 +435,18 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
460 xahash = xattr_hash(buffer, buffer_size); 435 xahash = xattr_hash(buffer, buffer_size);
461 436
462 open_file: 437 open_file:
463 fp = open_xa_file(inode, name, flags); 438 dentry = get_xa_file_dentry(inode, name, flags);
464 if (IS_ERR(fp)) { 439 if (IS_ERR(dentry)) {
465 err = PTR_ERR(fp); 440 err = PTR_ERR(dentry);
466 goto out; 441 goto out;
467 } 442 }
468 443
469 xinode = fp->f_path.dentry->d_inode; 444 xinode = dentry->d_inode;
470 REISERFS_I(inode)->i_flags |= i_has_xattr_dir; 445 REISERFS_I(inode)->i_flags |= i_has_xattr_dir;
471 446
472 /* we need to copy it off.. */ 447 /* we need to copy it off.. */
473 if (xinode->i_nlink > 1) { 448 if (xinode->i_nlink > 1) {
474 fput(fp); 449 dput(dentry);
475 err = reiserfs_xattr_del(inode, name); 450 err = reiserfs_xattr_del(inode, name);
476 if (err < 0) 451 if (err < 0)
477 goto out; 452 goto out;
@@ -485,7 +460,7 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
485 newattrs.ia_size = buffer_size; 460 newattrs.ia_size = buffer_size;
486 newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; 461 newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
487 mutex_lock_nested(&xinode->i_mutex, I_MUTEX_XATTR); 462 mutex_lock_nested(&xinode->i_mutex, I_MUTEX_XATTR);
488 err = notify_change(fp->f_path.dentry, &newattrs); 463 err = notify_change(dentry, &newattrs);
489 if (err) 464 if (err)
490 goto out_filp; 465 goto out_filp;
491 466
@@ -518,15 +493,14 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
518 rxh->h_hash = cpu_to_le32(xahash); 493 rxh->h_hash = cpu_to_le32(xahash);
519 } 494 }
520 495
521 err = reiserfs_prepare_write(fp, page, page_offset, 496 err = reiserfs_prepare_write(NULL, page, page_offset,
522 page_offset + chunk + skip); 497 page_offset + chunk + skip);
523 if (!err) { 498 if (!err) {
524 if (buffer) 499 if (buffer)
525 memcpy(data + skip, buffer + buffer_pos, chunk); 500 memcpy(data + skip, buffer + buffer_pos, chunk);
526 err = 501 err = reiserfs_commit_write(NULL, page, page_offset,
527 reiserfs_commit_write(fp, page, page_offset, 502 page_offset + chunk +
528 page_offset + chunk + 503 skip);
529 skip);
530 } 504 }
531 unlock_page(page); 505 unlock_page(page);
532 reiserfs_put_page(page); 506 reiserfs_put_page(page);
@@ -548,7 +522,7 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
548 522
549 out_filp: 523 out_filp:
550 mutex_unlock(&xinode->i_mutex); 524 mutex_unlock(&xinode->i_mutex);
551 fput(fp); 525 dput(dentry);
552 526
553 out: 527 out:
554 return err; 528 return err;
@@ -562,7 +536,7 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
562 size_t buffer_size) 536 size_t buffer_size)
563{ 537{
564 ssize_t err = 0; 538 ssize_t err = 0;
565 struct file *fp; 539 struct dentry *dentry;
566 size_t isize; 540 size_t isize;
567 size_t file_pos = 0; 541 size_t file_pos = 0;
568 size_t buffer_pos = 0; 542 size_t buffer_pos = 0;
@@ -578,13 +552,13 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
578 if (get_inode_sd_version(inode) == STAT_DATA_V1) 552 if (get_inode_sd_version(inode) == STAT_DATA_V1)
579 return -EOPNOTSUPP; 553 return -EOPNOTSUPP;
580 554
581 fp = open_xa_file(inode, name, FL_READONLY); 555 dentry = get_xa_file_dentry(inode, name, FL_READONLY);
582 if (IS_ERR(fp)) { 556 if (IS_ERR(dentry)) {
583 err = PTR_ERR(fp); 557 err = PTR_ERR(dentry);
584 goto out; 558 goto out;
585 } 559 }
586 560
587 xinode = fp->f_path.dentry->d_inode; 561 xinode = dentry->d_inode;
588 isize = xinode->i_size; 562 isize = xinode->i_size;
589 REISERFS_I(inode)->i_flags |= i_has_xattr_dir; 563 REISERFS_I(inode)->i_flags |= i_has_xattr_dir;
590 564
@@ -652,7 +626,7 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
652 } 626 }
653 627
654 out_dput: 628 out_dput:
655 fput(fp); 629 dput(dentry);
656 630
657 out: 631 out:
658 return err; 632 return err;
@@ -742,7 +716,6 @@ reiserfs_delete_xattrs_filler(void *buf, const char *name, int namelen,
742/* This is called w/ inode->i_mutex downed */ 716/* This is called w/ inode->i_mutex downed */
743int reiserfs_delete_xattrs(struct inode *inode) 717int reiserfs_delete_xattrs(struct inode *inode)
744{ 718{
745 struct file *fp;
746 struct dentry *dir, *root; 719 struct dentry *dir, *root;
747 int err = 0; 720 int err = 0;
748 721
@@ -763,15 +736,8 @@ int reiserfs_delete_xattrs(struct inode *inode)
763 return 0; 736 return 0;
764 } 737 }
765 738
766 fp = dentry_open(dir, NULL, O_RDWR);
767 if (IS_ERR(fp)) {
768 err = PTR_ERR(fp);
769 /* dentry_open dputs the dentry if it fails */
770 goto out;
771 }
772
773 lock_kernel(); 739 lock_kernel();
774 err = xattr_readdir(fp, reiserfs_delete_xattrs_filler, dir); 740 err = xattr_readdir(dir->d_inode, reiserfs_delete_xattrs_filler, dir);
775 if (err) { 741 if (err) {
776 unlock_kernel(); 742 unlock_kernel();
777 goto out_dir; 743 goto out_dir;
@@ -791,7 +757,7 @@ int reiserfs_delete_xattrs(struct inode *inode)
791 unlock_kernel(); 757 unlock_kernel();
792 758
793 out_dir: 759 out_dir:
794 fput(fp); 760 dput(dir);
795 761
796 out: 762 out:
797 if (!err) 763 if (!err)
@@ -833,7 +799,6 @@ reiserfs_chown_xattrs_filler(void *buf, const char *name, int namelen,
833 799
834int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs) 800int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs)
835{ 801{
836 struct file *fp;
837 struct dentry *dir; 802 struct dentry *dir;
838 int err = 0; 803 int err = 0;
839 struct reiserfs_chown_buf buf; 804 struct reiserfs_chown_buf buf;
@@ -857,13 +822,6 @@ int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs)
857 goto out; 822 goto out;
858 } 823 }
859 824
860 fp = dentry_open(dir, NULL, O_RDWR);
861 if (IS_ERR(fp)) {
862 err = PTR_ERR(fp);
863 /* dentry_open dputs the dentry if it fails */
864 goto out;
865 }
866
867 lock_kernel(); 825 lock_kernel();
868 826
869 attrs->ia_valid &= (ATTR_UID | ATTR_GID | ATTR_CTIME); 827 attrs->ia_valid &= (ATTR_UID | ATTR_GID | ATTR_CTIME);
@@ -871,7 +829,7 @@ int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs)
871 buf.attrs = attrs; 829 buf.attrs = attrs;
872 buf.inode = inode; 830 buf.inode = inode;
873 831
874 err = xattr_readdir(fp, reiserfs_chown_xattrs_filler, &buf); 832 err = xattr_readdir(dir->d_inode, reiserfs_chown_xattrs_filler, &buf);
875 if (err) { 833 if (err) {
876 unlock_kernel(); 834 unlock_kernel();
877 goto out_dir; 835 goto out_dir;
@@ -881,7 +839,7 @@ int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs)
881 unlock_kernel(); 839 unlock_kernel();
882 840
883 out_dir: 841 out_dir:
884 fput(fp); 842 dput(dir);
885 843
886 out: 844 out:
887 attrs->ia_valid = ia_valid; 845 attrs->ia_valid = ia_valid;
@@ -1029,7 +987,6 @@ reiserfs_listxattr_filler(void *buf, const char *name, int namelen,
1029 */ 987 */
1030ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size) 988ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
1031{ 989{
1032 struct file *fp;
1033 struct dentry *dir; 990 struct dentry *dir;
1034 int err = 0; 991 int err = 0;
1035 struct reiserfs_listxattr_buf buf; 992 struct reiserfs_listxattr_buf buf;
@@ -1052,13 +1009,6 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
1052 goto out; 1009 goto out;
1053 } 1010 }
1054 1011
1055 fp = dentry_open(dir, NULL, O_RDWR);
1056 if (IS_ERR(fp)) {
1057 err = PTR_ERR(fp);
1058 /* dentry_open dputs the dentry if it fails */
1059 goto out;
1060 }
1061
1062 buf.r_buf = buffer; 1012 buf.r_buf = buffer;
1063 buf.r_size = buffer ? size : 0; 1013 buf.r_size = buffer ? size : 0;
1064 buf.r_pos = 0; 1014 buf.r_pos = 0;
@@ -1066,7 +1016,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
1066 1016
1067 REISERFS_I(dentry->d_inode)->i_flags |= i_has_xattr_dir; 1017 REISERFS_I(dentry->d_inode)->i_flags |= i_has_xattr_dir;
1068 1018
1069 err = xattr_readdir(fp, reiserfs_listxattr_filler, &buf); 1019 err = xattr_readdir(dir->d_inode, reiserfs_listxattr_filler, &buf);
1070 if (err) 1020 if (err)
1071 goto out_dir; 1021 goto out_dir;
1072 1022
@@ -1076,7 +1026,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
1076 err = buf.r_pos; 1026 err = buf.r_pos;
1077 1027
1078 out_dir: 1028 out_dir:
1079 fput(fp); 1029 dput(dir);
1080 1030
1081 out: 1031 out:
1082 reiserfs_read_unlock_xattr_i(dentry->d_inode); 1032 reiserfs_read_unlock_xattr_i(dentry->d_inode);
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c
index 00b6f0a518c8..3f13d491c7c7 100644
--- a/fs/romfs/inode.c
+++ b/fs/romfs/inode.c
@@ -340,8 +340,9 @@ static struct dentry *
340romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) 340romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
341{ 341{
342 unsigned long offset, maxoff; 342 unsigned long offset, maxoff;
343 int fslen, res; 343 long res;
344 struct inode *inode; 344 int fslen;
345 struct inode *inode = NULL;
345 char fsname[ROMFS_MAXFN]; /* XXX dynamic? */ 346 char fsname[ROMFS_MAXFN]; /* XXX dynamic? */
346 struct romfs_inode ri; 347 struct romfs_inode ri;
347 const char *name; /* got from dentry */ 348 const char *name; /* got from dentry */
@@ -351,7 +352,7 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
351 offset = dir->i_ino & ROMFH_MASK; 352 offset = dir->i_ino & ROMFH_MASK;
352 lock_kernel(); 353 lock_kernel();
353 if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) 354 if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0)
354 goto out; 355 goto error;
355 356
356 maxoff = romfs_maxsize(dir->i_sb); 357 maxoff = romfs_maxsize(dir->i_sb);
357 offset = be32_to_cpu(ri.spec) & ROMFH_MASK; 358 offset = be32_to_cpu(ri.spec) & ROMFH_MASK;
@@ -364,9 +365,9 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
364 365
365 for(;;) { 366 for(;;) {
366 if (!offset || offset >= maxoff) 367 if (!offset || offset >= maxoff)
367 goto out0; 368 goto success; /* negative success */
368 if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) 369 if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0)
369 goto out; 370 goto error;
370 371
371 /* try to match the first 16 bytes of name */ 372 /* try to match the first 16 bytes of name */
372 fslen = romfs_strnlen(dir, offset+ROMFH_SIZE, ROMFH_SIZE); 373 fslen = romfs_strnlen(dir, offset+ROMFH_SIZE, ROMFH_SIZE);
@@ -397,23 +398,14 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
397 inode = romfs_iget(dir->i_sb, offset); 398 inode = romfs_iget(dir->i_sb, offset);
398 if (IS_ERR(inode)) { 399 if (IS_ERR(inode)) {
399 res = PTR_ERR(inode); 400 res = PTR_ERR(inode);
400 goto out; 401 goto error;
401 } 402 }
402 403
403 /* 404success:
404 * it's a bit funky, _lookup needs to return an error code 405 d_add(dentry, inode);
405 * (negative) or a NULL, both as a dentry. ENOENT should not
406 * be returned, instead we need to create a negative dentry by
407 * d_add(dentry, NULL); and return 0 as no error.
408 * (Although as I see, it only matters on writable file
409 * systems).
410 */
411
412out0: inode = NULL;
413 res = 0; 406 res = 0;
414 d_add (dentry, inode); 407error:
415 408 unlock_kernel();
416out: unlock_kernel();
417 return ERR_PTR(res); 409 return ERR_PTR(res);
418} 410}
419 411
diff --git a/fs/smbfs/smbiod.c b/fs/smbfs/smbiod.c
index fae8e85af0ed..6bd9b691a463 100644
--- a/fs/smbfs/smbiod.c
+++ b/fs/smbfs/smbiod.c
@@ -206,7 +206,7 @@ int smbiod_retry(struct smb_sb_info *server)
206 206
207 smb_close_socket(server); 207 smb_close_socket(server);
208 208
209 if (pid == 0) { 209 if (!pid) {
210 /* FIXME: this is fatal, umount? */ 210 /* FIXME: this is fatal, umount? */
211 printk(KERN_ERR "smb_retry: no connection process\n"); 211 printk(KERN_ERR "smb_retry: no connection process\n");
212 server->state = CONN_RETRIED; 212 server->state = CONN_RETRIED;
diff --git a/fs/super.c b/fs/super.c
index 010446d8c40a..09008dbd264e 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -556,11 +556,11 @@ out:
556} 556}
557 557
558/** 558/**
559 * mark_files_ro 559 * mark_files_ro - mark all files read-only
560 * @sb: superblock in question 560 * @sb: superblock in question
561 * 561 *
562 * All files are marked read/only. We don't care about pending 562 * All files are marked read-only. We don't care about pending
563 * delete files so this should be used in 'force' mode only 563 * delete files so this should be used in 'force' mode only.
564 */ 564 */
565 565
566static void mark_files_ro(struct super_block *sb) 566static void mark_files_ro(struct super_block *sb)
@@ -945,6 +945,7 @@ do_kern_mount(const char *fstype, int flags, const char *name, void *data)
945 put_filesystem(type); 945 put_filesystem(type);
946 return mnt; 946 return mnt;
947} 947}
948EXPORT_SYMBOL_GPL(do_kern_mount);
948 949
949struct vfsmount *kern_mount_data(struct file_system_type *type, void *data) 950struct vfsmount *kern_mount_data(struct file_system_type *type, void *data)
950{ 951{
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index a271c87c4472..baa663e69388 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kobject.h> 14#include <linux/kobject.h>
15#include <linux/kallsyms.h>
15#include <linux/namei.h> 16#include <linux/namei.h>
16#include <linux/poll.h> 17#include <linux/poll.h>
17#include <linux/list.h> 18#include <linux/list.h>
@@ -86,7 +87,12 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer
86 * The code works fine with PAGE_SIZE return but it's likely to 87 * The code works fine with PAGE_SIZE return but it's likely to
87 * indicate truncated result or overflow in normal use cases. 88 * indicate truncated result or overflow in normal use cases.
88 */ 89 */
89 BUG_ON(count >= (ssize_t)PAGE_SIZE); 90 if (count >= (ssize_t)PAGE_SIZE) {
91 print_symbol("fill_read_buffer: %s returned bad count\n",
92 (unsigned long)ops->show);
93 /* Try to struggle along */
94 count = PAGE_SIZE - 1;
95 }
90 if (count >= 0) { 96 if (count >= 0) {
91 buffer->needs_read_fill = 0; 97 buffer->needs_read_fill = 0;
92 buffer->count = count; 98 buffer->count = count;
diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c
index 1fca381f0ce2..1e7598fb9787 100644
--- a/fs/ufs/balloc.c
+++ b/fs/ufs/balloc.c
@@ -315,8 +315,8 @@ static void ufs_change_blocknr(struct inode *inode, sector_t beg,
315 } 315 }
316 316
317 UFSD(" change from %llu to %llu, pos %u\n", 317 UFSD(" change from %llu to %llu, pos %u\n",
318 (unsigned long long)pos + oldb, 318 (unsigned long long)(pos + oldb),
319 (unsigned long long)pos + newb, pos); 319 (unsigned long long)(pos + newb), pos);
320 320
321 bh->b_blocknr = newb + pos; 321 bh->b_blocknr = newb + pos;
322 unmap_underlying_metadata(bh->b_bdev, 322 unmap_underlying_metadata(bh->b_bdev,
diff --git a/include/asm-arm/arch-at91/at91cap9.h b/include/asm-arm/arch-at91/at91cap9.h
index 73e1fcf4a0aa..bac83adb5050 100644
--- a/include/asm-arm/arch-at91/at91cap9.h
+++ b/include/asm-arm/arch-at91/at91cap9.h
@@ -97,12 +97,17 @@
97#define AT91_PIOD (0xfffff800 - AT91_BASE_SYS) 97#define AT91_PIOD (0xfffff800 - AT91_BASE_SYS)
98#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) 98#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS)
99#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS) 99#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS)
100#define AT91_SHDC (0xfffffd10 - AT91_BASE_SYS) 100#define AT91_SHDWC (0xfffffd10 - AT91_BASE_SYS)
101#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS) 101#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS)
102#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS) 102#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS)
103#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS) 103#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS)
104#define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) 104#define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS)
105 105
106#define AT91_USART0 AT91CAP9_BASE_US0
107#define AT91_USART1 AT91CAP9_BASE_US1
108#define AT91_USART2 AT91CAP9_BASE_US2
109
110
106/* 111/*
107 * Internal Memory. 112 * Internal Memory.
108 */ 113 */
diff --git a/include/asm-arm/arch-omap/board-h3.h b/include/asm-arm/arch-omap/board-h3.h
index 1c2b55c61ca0..0f6404435ea8 100644
--- a/include/asm-arm/arch-omap/board-h3.h
+++ b/include/asm-arm/arch-omap/board-h3.h
@@ -36,7 +36,7 @@
36 36
37#define NR_IRQS (MAXIRQNUM + 1) 37#define NR_IRQS (MAXIRQNUM + 1)
38 38
39extern void __init h3_mmc_init(void); 39extern void h3_mmc_init(void);
40extern void h3_mmc_slot_cover_handler(void *arg, int state); 40extern void h3_mmc_slot_cover_handler(void *arg, int state);
41 41
42#endif /* __ASM_ARCH_OMAP_H3_H */ 42#endif /* __ASM_ARCH_OMAP_H3_H */
diff --git a/include/asm-arm/arch-omap/common.h b/include/asm-arm/arch-omap/common.h
index 442aecbb8f44..224e009e5296 100644
--- a/include/asm-arm/arch-omap/common.h
+++ b/include/asm-arm/arch-omap/common.h
@@ -27,9 +27,7 @@
27#ifndef __ARCH_ARM_MACH_OMAP_COMMON_H 27#ifndef __ARCH_ARM_MACH_OMAP_COMMON_H
28#define __ARCH_ARM_MACH_OMAP_COMMON_H 28#define __ARCH_ARM_MACH_OMAP_COMMON_H
29 29
30#ifdef CONFIG_I2C_OMAP
31#include <linux/i2c.h> 30#include <linux/i2c.h>
32#endif
33 31
34struct sys_timer; 32struct sys_timer;
35 33
@@ -41,7 +39,12 @@ extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
41 struct i2c_board_info const *info, 39 struct i2c_board_info const *info,
42 unsigned len); 40 unsigned len);
43#else 41#else
44#define omap_register_i2c_bus(a, b, c, d) 0 42static inline int omap_register_i2c_bus(int bus_id, u32 clkrate,
43 struct i2c_board_info const *info,
44 unsigned len)
45{
46 return 0;
47}
45#endif 48#endif
46 49
47#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ 50#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */
diff --git a/include/asm-arm/arch-omap/dsp_common.h b/include/asm-arm/arch-omap/dsp_common.h
index c61f868f24ee..da97736f3efa 100644
--- a/include/asm-arm/arch-omap/dsp_common.h
+++ b/include/asm-arm/arch-omap/dsp_common.h
@@ -24,11 +24,17 @@
24#ifndef ASM_ARCH_DSP_COMMON_H 24#ifndef ASM_ARCH_DSP_COMMON_H
25#define ASM_ARCH_DSP_COMMON_H 25#define ASM_ARCH_DSP_COMMON_H
26 26
27#ifdef CONFIG_ARCH_OMAP1 27#if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_OMAP_MMU_FWK)
28extern void omap_dsp_request_mpui(void); 28extern void omap_dsp_request_mpui(void);
29extern void omap_dsp_release_mpui(void); 29extern void omap_dsp_release_mpui(void);
30extern int omap_dsp_request_mem(void); 30extern int omap_dsp_request_mem(void);
31extern int omap_dsp_release_mem(void); 31extern int omap_dsp_release_mem(void);
32#else
33static inline int omap_dsp_request_mem(void)
34{
35 return 0;
36}
37#define omap_dsp_release_mem() do {} while (0)
32#endif 38#endif
33 39
34#endif /* ASM_ARCH_DSP_COMMON_H */ 40#endif /* ASM_ARCH_DSP_COMMON_H */
diff --git a/include/asm-arm/arch-omap/gpioexpander.h b/include/asm-arm/arch-omap/gpioexpander.h
index 7a43b0a912e4..4eed1f80e2fb 100644
--- a/include/asm-arm/arch-omap/gpioexpander.h
+++ b/include/asm-arm/arch-omap/gpioexpander.h
@@ -18,7 +18,18 @@
18 18
19/* Function Prototypes for GPIO Expander functions */ 19/* Function Prototypes for GPIO Expander functions */
20 20
21#ifdef CONFIG_GPIOEXPANDER_OMAP
21int read_gpio_expa(u8 *, int); 22int read_gpio_expa(u8 *, int);
22int write_gpio_expa(u8 , int); 23int write_gpio_expa(u8 , int);
24#else
25static inline int read_gpio_expa(u8 *val, int addr)
26{
27 return 0;
28}
29static inline int write_gpio_expa(u8 val, int addr)
30{
31 return 0;
32}
33#endif
23 34
24#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */ 35#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */
diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h
index d858b3eb5547..f5435d8c3769 100644
--- a/include/asm-arm/arch-s3c2410/irqs.h
+++ b/include/asm-arm/arch-s3c2410/irqs.h
@@ -85,7 +85,7 @@
85#define IRQ_EINT23 S3C2410_IRQ(51) 85#define IRQ_EINT23 S3C2410_IRQ(51)
86 86
87 87
88#define IRQ_EINT(x) S3C2410_IRQ((x >= 4) ? (IRQ_EINT4 + (x) - 4) : (S3C2410_IRQ(0) + (x))) 88#define IRQ_EINT(x) (((x) >= 4) ? (IRQ_EINT4 + (x) - 4) : (IRQ_EINT0 + (x)))
89 89
90#define IRQ_LCD_FIFO S3C2410_IRQ(52) 90#define IRQ_LCD_FIFO S3C2410_IRQ(52)
91#define IRQ_LCD_FRAME S3C2410_IRQ(53) 91#define IRQ_LCD_FRAME S3C2410_IRQ(53)
diff --git a/include/asm-arm/pgtable-nommu.h b/include/asm-arm/pgtable-nommu.h
index 33c83dd87965..2e5868bbe03b 100644
--- a/include/asm-arm/pgtable-nommu.h
+++ b/include/asm-arm/pgtable-nommu.h
@@ -92,6 +92,8 @@ extern unsigned int kobjsize(const void *objp);
92 92
93#define FIRST_USER_ADDRESS (0) 93#define FIRST_USER_ADDRESS (0)
94 94
95#include <asm-generic/pgtable.h>
96
95#else 97#else
96 98
97/* 99/*
diff --git a/include/asm-arm/plat-s3c/uncompress.h b/include/asm-arm/plat-s3c/uncompress.h
index b5e6208175d1..19b9eda39485 100644
--- a/include/asm-arm/plat-s3c/uncompress.h
+++ b/include/asm-arm/plat-s3c/uncompress.h
@@ -27,8 +27,8 @@ static void arch_detect_cpu(void);
27 27
28/* defines for UART registers */ 28/* defines for UART registers */
29 29
30#include "asm/plat-s3c/regs-serial.h" 30#include <asm/plat-s3c/regs-serial.h>
31#include "asm/plat-s3c/regs-watchdog.h" 31#include <asm/plat-s3c/regs-watchdog.h>
32 32
33/* working in physical space... */ 33/* working in physical space... */
34#undef S3C2410_WDOGREG 34#undef S3C2410_WDOGREG
diff --git a/include/asm-arm/proc-fns.h b/include/asm-arm/proc-fns.h
index a4ce457199d3..75ec760f4c74 100644
--- a/include/asm-arm/proc-fns.h
+++ b/include/asm-arm/proc-fns.h
@@ -214,9 +214,9 @@
214#ifndef __ASSEMBLY__ 214#ifndef __ASSEMBLY__
215 215
216#ifndef MULTI_CPU 216#ifndef MULTI_CPU
217#include "asm/cpu-single.h" 217#include <asm/cpu-single.h>
218#else 218#else
219#include "asm/cpu-multi32.h" 219#include <asm/cpu-multi32.h>
220#endif 220#endif
221 221
222#include <asm/memory.h> 222#include <asm/memory.h>
diff --git a/include/asm-avr32/byteorder.h b/include/asm-avr32/byteorder.h
index 402ff4125cdc..d77b48ba7338 100644
--- a/include/asm-avr32/byteorder.h
+++ b/include/asm-avr32/byteorder.h
@@ -12,8 +12,14 @@ extern unsigned long __builtin_bswap_32(unsigned long x);
12extern unsigned short __builtin_bswap_16(unsigned short x); 12extern unsigned short __builtin_bswap_16(unsigned short x);
13#endif 13#endif
14 14
15/*
16 * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
17 * the result.
18 */
19#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
15#define __arch__swab32(x) __builtin_bswap_32(x) 20#define __arch__swab32(x) __builtin_bswap_32(x)
16#define __arch__swab16(x) __builtin_bswap_16(x) 21#define __arch__swab16(x) __builtin_bswap_16(x)
22#endif
17 23
18#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 24#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
19# define __BYTEORDER_HAS_U64__ 25# define __BYTEORDER_HAS_U64__
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h
index b400cea81487..2c57f4734746 100644
--- a/include/asm-frv/system.h
+++ b/include/asm-frv/system.h
@@ -234,7 +234,7 @@ extern void free_initmem(void);
234 break; \ 234 break; \
235 \ 235 \
236 default: \ 236 default: \
237 __xg_orig = 0; \ 237 __xg_orig = (__typeof__(__xg_orig))0; \
238 asm volatile("break"); \ 238 asm volatile("break"); \
239 break; \ 239 break; \
240 } \ 240 } \
@@ -259,7 +259,7 @@ extern uint32_t __cmpxchg_32(uint32_t *v, uint32_t test, uint32_t new);
259 (__force uint32_t)__xg_test, \ 259 (__force uint32_t)__xg_test, \
260 (__force uint32_t)__xg_new); break; \ 260 (__force uint32_t)__xg_new); break; \
261 default: \ 261 default: \
262 __xg_orig = 0; \ 262 __xg_orig = (__typeof__(__xg_orig))0; \
263 asm volatile("break"); \ 263 asm volatile("break"); \
264 break; \ 264 break; \
265 } \ 265 } \
diff --git a/include/asm-h8300/uaccess.h b/include/asm-h8300/uaccess.h
index a22350ec271a..356068cd0879 100644
--- a/include/asm-h8300/uaccess.h
+++ b/include/asm-h8300/uaccess.h
@@ -91,22 +91,19 @@ extern int __put_user_bad(void);
91#define get_user(x, ptr) \ 91#define get_user(x, ptr) \
92({ \ 92({ \
93 int __gu_err = 0; \ 93 int __gu_err = 0; \
94 uint32_t __gu_val = 0; \ 94 typeof(*(ptr)) __gu_val = *ptr; \
95 switch (sizeof(*(ptr))) { \ 95 switch (sizeof(*(ptr))) { \
96 case 1: \ 96 case 1: \
97 case 2: \ 97 case 2: \
98 case 4: \ 98 case 4: \
99 __gu_val = *(ptr); \ 99 case 8: \
100 break; \
101 case 8: \
102 memcpy(&__gu_val, ptr, sizeof (*(ptr))); \
103 break; \ 100 break; \
104 default: \ 101 default: \
105 __gu_val = 0; \
106 __gu_err = __get_user_bad(); \ 102 __gu_err = __get_user_bad(); \
103 __gu_val = 0; \
107 break; \ 104 break; \
108 } \ 105 } \
109 (x) = (typeof(*(ptr)))__gu_val; \ 106 (x) = __gu_val; \
110 __gu_err; \ 107 __gu_err; \
111}) 108})
112#define __get_user(x, ptr) get_user(x, ptr) 109#define __get_user(x, ptr) get_user(x, ptr)
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h
index 4933b4947ed0..01e7eadc97e2 100644
--- a/include/asm-mips/cacheflush.h
+++ b/include/asm-mips/cacheflush.h
@@ -93,7 +93,7 @@ extern void (*flush_data_cache_page)(unsigned long addr);
93 clear_bit(PG_dcache_dirty, &(page)->flags) 93 clear_bit(PG_dcache_dirty, &(page)->flags)
94 94
95/* Run kernel code uncached, useful for cache probing functions. */ 95/* Run kernel code uncached, useful for cache probing functions. */
96unsigned long __init run_uncached(void *func); 96unsigned long run_uncached(void *func);
97 97
98extern void *kmap_coherent(struct page *page, unsigned long addr); 98extern void *kmap_coherent(struct page *page, unsigned long addr);
99extern void kunmap_coherent(void); 99extern void kunmap_coherent(void);
diff --git a/include/asm-mips/highmem.h b/include/asm-mips/highmem.h
index 4d6bd5c31c7b..4374ab2adc75 100644
--- a/include/asm-mips/highmem.h
+++ b/include/asm-mips/highmem.h
@@ -39,7 +39,6 @@ extern pte_t *pkmap_page_table;
39 * easily, subsequent pte tables have to be allocated in one physical 39 * easily, subsequent pte tables have to be allocated in one physical
40 * chunk of RAM. 40 * chunk of RAM.
41 */ 41 */
42#define PKMAP_BASE (0xfe000000UL)
43#define LAST_PKMAP 1024 42#define LAST_PKMAP 1024
44#define LAST_PKMAP_MASK (LAST_PKMAP-1) 43#define LAST_PKMAP_MASK (LAST_PKMAP-1)
45#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) 44#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
diff --git a/include/asm-mips/mach-ip27/cpu-feature-overrides.h b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
index fe076380c189..7d3112b148d9 100644
--- a/include/asm-mips/mach-ip27/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
@@ -34,7 +34,11 @@
34#define cpu_has_64bits 1 34#define cpu_has_64bits 1
35 35
36#define cpu_has_4kex 1 36#define cpu_has_4kex 1
37#define cpu_has_3k_cache 0
38#define cpu_has_6k_cache 0
37#define cpu_has_4k_cache 1 39#define cpu_has_4k_cache 1
40#define cpu_has_8k_cache 0
41#define cpu_has_tx39_cache 0
38 42
39#define cpu_has_inclusive_pcaches 1 43#define cpu_has_inclusive_pcaches 1
40 44
diff --git a/include/asm-mips/mach-jmr3927/ioremap.h b/include/asm-mips/mach-jmr3927/ioremap.h
index aa131ad7f717..29989ff10d66 100644
--- a/include/asm-mips/mach-jmr3927/ioremap.h
+++ b/include/asm-mips/mach-jmr3927/ioremap.h
@@ -25,7 +25,7 @@ static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size,
25{ 25{
26#define TXX9_DIRECTMAP_BASE 0xff000000ul 26#define TXX9_DIRECTMAP_BASE 0xff000000ul
27 if (offset >= TXX9_DIRECTMAP_BASE && 27 if (offset >= TXX9_DIRECTMAP_BASE &&
28 offset < TXX9_DIRECTMAP_BASE + 0xf0000) 28 offset < TXX9_DIRECTMAP_BASE + 0xff0000)
29 return (void __iomem *)offset; 29 return (void __iomem *)offset;
30 return NULL; 30 return NULL;
31} 31}
diff --git a/include/asm-mips/mach-lasat/irq.h b/include/asm-mips/mach-lasat/irq.h
index da75f89f3723..3a282419d5f9 100644
--- a/include/asm-mips/mach-lasat/irq.h
+++ b/include/asm-mips/mach-lasat/irq.h
@@ -1,7 +1,7 @@
1#ifndef _ASM_MACH_LASAT_IRQ_H 1#ifndef _ASM_MACH_LASAT_IRQ_H
2#define _ASM_MACH_LASAT_IRQ_H 2#define _ASM_MACH_LASAT_IRQ_H
3 3
4#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 0) 4#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 2)
5 5
6#define LASAT_IRQ_BASE 8 6#define LASAT_IRQ_BASE 8
7#define LASAT_IRQ_END 23 7#define LASAT_IRQ_END 23
diff --git a/include/asm-mips/pgtable-32.h b/include/asm-mips/pgtable-32.h
index a0947092d0e0..ceefe027c761 100644
--- a/include/asm-mips/pgtable-32.h
+++ b/include/asm-mips/pgtable-32.h
@@ -65,6 +65,8 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
65 65
66#define VMALLOC_START MAP_BASE 66#define VMALLOC_START MAP_BASE
67 67
68#define PKMAP_BASE (0xfe000000UL)
69
68#ifdef CONFIG_HIGHMEM 70#ifdef CONFIG_HIGHMEM
69# define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) 71# define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE)
70#else 72#else
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h
index a8fd16e1981f..d3bd5c5aa2ec 100644
--- a/include/asm-mips/time.h
+++ b/include/asm-mips/time.h
@@ -64,10 +64,11 @@ static inline int mips_clockevent_init(void)
64 * Initialize the count register as a clocksource 64 * Initialize the count register as a clocksource
65 */ 65 */
66#ifdef CONFIG_CEVT_R4K 66#ifdef CONFIG_CEVT_R4K
67extern void init_mips_clocksource(void); 67extern int init_mips_clocksource(void);
68#else 68#else
69static inline void init_mips_clocksource(void) 69static inline int init_mips_clocksource(void)
70{ 70{
71 return 0;
71} 72}
72#endif 73#endif
73 74
diff --git a/include/asm-parisc/elf.h b/include/asm-parisc/elf.h
index ce0c0d844c7d..d0a4a8262818 100644
--- a/include/asm-parisc/elf.h
+++ b/include/asm-parisc/elf.h
@@ -204,7 +204,7 @@ typedef struct elf64_fdesc {
204/* 204/*
205 * The following definitions are those for 32-bit ELF binaries on a 32-bit 205 * The following definitions are those for 32-bit ELF binaries on a 32-bit
206 * kernel and for 64-bit binaries on a 64-bit kernel. To run 32-bit binaries 206 * kernel and for 64-bit binaries on a 64-bit kernel. To run 32-bit binaries
207 * on a 64-bit kernel, arch/parisc64/kernel/binfmt_elf32.c defines these 207 * on a 64-bit kernel, arch/parisc/kernel/binfmt_elf32.c defines these
208 * macros appropriately and then #includes binfmt_elf.c, which then includes 208 * macros appropriately and then #includes binfmt_elf.c, which then includes
209 * this file. 209 * this file.
210 */ 210 */
@@ -216,26 +216,25 @@ typedef struct elf64_fdesc {
216 * Note that this header file is used by default in fs/binfmt_elf.c. So 216 * Note that this header file is used by default in fs/binfmt_elf.c. So
217 * the following macros are for the default case. However, for the 64 217 * the following macros are for the default case. However, for the 64
218 * bit kernel we also support 32 bit parisc binaries. To do that 218 * bit kernel we also support 32 bit parisc binaries. To do that
219 * arch/parisc64/kernel/binfmt_elf32.c defines its own set of these 219 * arch/parisc/kernel/binfmt_elf32.c defines its own set of these
220 * macros, and then it includes fs/binfmt_elf.c to provide an alternate 220 * macros, and then it includes fs/binfmt_elf.c to provide an alternate
221 * elf binary handler for 32 bit binaries (on the 64 bit kernel). 221 * elf binary handler for 32 bit binaries (on the 64 bit kernel).
222 */ 222 */
223#ifdef CONFIG_64BIT 223#ifdef CONFIG_64BIT
224#define ELF_CLASS ELFCLASS64 224#define ELF_CLASS ELFCLASS64
225#else 225#else
226#define ELF_CLASS ELFCLASS32 226#define ELF_CLASS ELFCLASS32
227#endif 227#endif
228 228
229typedef unsigned long elf_greg_t; 229typedef unsigned long elf_greg_t;
230 230
231/* This yields a string that ld.so will use to load implementation 231/*
232 specific libraries for optimization. This is more specific in 232 * This yields a string that ld.so will use to load implementation
233 intent than poking at uname or /proc/cpuinfo. 233 * specific libraries for optimization. This is more specific in
234 234 * intent than poking at uname or /proc/cpuinfo.
235 For the moment, we have only optimizations for the Intel generations, 235 */
236 but that could change... */
237 236
238#define ELF_PLATFORM ("PARISC\0" /*+((boot_cpu_data.x86-3)*5) */) 237#define ELF_PLATFORM ("PARISC\0")
239 238
240#define SET_PERSONALITY(ex, ibcs2) \ 239#define SET_PERSONALITY(ex, ibcs2) \
241 current->personality = PER_LINUX; \ 240 current->personality = PER_LINUX; \
@@ -310,7 +309,7 @@ struct pt_regs; /* forward declaration... */
310#define ELF_OSABI ELFOSABI_LINUX 309#define ELF_OSABI ELFOSABI_LINUX
311 310
312/* %r23 is set by ld.so to a pointer to a function which might be 311/* %r23 is set by ld.so to a pointer to a function which might be
313 registered using atexit. This provides a mean for the dynamic 312 registered using atexit. This provides a means for the dynamic
314 linker to call DT_FINI functions for shared libraries that have 313 linker to call DT_FINI functions for shared libraries that have
315 been loaded before the code runs. 314 been loaded before the code runs.
316 315
@@ -339,6 +338,5 @@ struct pt_regs; /* forward declaration... */
339 but it's not easy, and we've already done it here. */ 338 but it's not easy, and we've already done it here. */
340 339
341#define ELF_HWCAP 0 340#define ELF_HWCAP 0
342/* (boot_cpu_data.x86_capability) */
343 341
344#endif 342#endif
diff --git a/include/asm-parisc/fixmap.h b/include/asm-parisc/fixmap.h
index a5caf4b122b7..de3fe3a18229 100644
--- a/include/asm-parisc/fixmap.h
+++ b/include/asm-parisc/fixmap.h
@@ -20,4 +20,11 @@
20#define KERNEL_MAP_START (GATEWAY_PAGE_SIZE) 20#define KERNEL_MAP_START (GATEWAY_PAGE_SIZE)
21#define KERNEL_MAP_END (TMPALIAS_MAP_START) 21#define KERNEL_MAP_END (TMPALIAS_MAP_START)
22 22
23#endif 23#ifndef __ASSEMBLY__
24extern void *vmalloc_start;
25#define PCXL_DMA_MAP_SIZE (8*1024*1024)
26#define VMALLOC_START ((unsigned long)vmalloc_start)
27#define VMALLOC_END (KERNEL_MAP_END)
28#endif /*__ASSEMBLY__*/
29
30#endif /*_ASM_FIXMAP_H*/
diff --git a/include/asm-parisc/futex.h b/include/asm-parisc/futex.h
index dbee6e60aa81..fdc6d055ef7f 100644
--- a/include/asm-parisc/futex.h
+++ b/include/asm-parisc/futex.h
@@ -56,6 +56,12 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
56 int err = 0; 56 int err = 0;
57 int uval; 57 int uval;
58 58
59 /* futex.c wants to do a cmpxchg_inatomic on kernel NULL, which is
60 * our gateway page, and causes no end of trouble...
61 */
62 if (segment_eq(KERNEL_DS, get_fs()) && !uaddr)
63 return -EFAULT;
64
59 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) 65 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
60 return -EFAULT; 66 return -EFAULT;
61 67
@@ -67,5 +73,5 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
67 return uval; 73 return uval;
68} 74}
69 75
70#endif 76#endif /*__KERNEL__*/
71#endif 77#endif /*_ASM_PARISC_FUTEX_H*/
diff --git a/include/asm-parisc/pdc.h b/include/asm-parisc/pdc.h
index deda8c311373..9eaa794c3e4a 100644
--- a/include/asm-parisc/pdc.h
+++ b/include/asm-parisc/pdc.h
@@ -645,8 +645,7 @@ int pdc_soft_power_button(int sw_control);
645void pdc_io_reset(void); 645void pdc_io_reset(void);
646void pdc_io_reset_devices(void); 646void pdc_io_reset_devices(void);
647int pdc_iodc_getc(void); 647int pdc_iodc_getc(void);
648int pdc_iodc_print(unsigned char *str, unsigned count); 648int pdc_iodc_print(const unsigned char *str, unsigned count);
649void pdc_printf(const char *fmt, ...);
650 649
651void pdc_emergency_unlock(void); 650void pdc_emergency_unlock(void);
652int pdc_sti_call(unsigned long func, unsigned long flags, 651int pdc_sti_call(unsigned long func, unsigned long flags,
diff --git a/include/asm-parisc/pgalloc.h b/include/asm-parisc/pgalloc.h
index 3996dfc30a3f..fc987a1c12a8 100644
--- a/include/asm-parisc/pgalloc.h
+++ b/include/asm-parisc/pgalloc.h
@@ -138,10 +138,10 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
138 free_page((unsigned long)pte); 138 free_page((unsigned long)pte);
139} 139}
140 140
141static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte) 141static inline void pte_free(struct mm_struct *mm, struct page *pte)
142{ 142{
143 pgtable_page_dtor(pte); 143 pgtable_page_dtor(pte);
144 pte_free_kernel(page_address((pte)); 144 pte_free_kernel(mm, page_address(pte));
145} 145}
146 146
147#define check_pgt_cache() do { } while (0) 147#define check_pgt_cache() do { } while (0)
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h
index cd0fa4f73320..dc86adbec916 100644
--- a/include/asm-parisc/pgtable.h
+++ b/include/asm-parisc/pgtable.h
@@ -116,14 +116,6 @@
116 116
117#define FIRST_USER_ADDRESS 0 117#define FIRST_USER_ADDRESS 0
118 118
119#ifndef __ASSEMBLY__
120extern void *vmalloc_start;
121#define PCXL_DMA_MAP_SIZE (8*1024*1024)
122#define VMALLOC_START ((unsigned long)vmalloc_start)
123/* this is a fixmap remnant, see fixmap.h */
124#define VMALLOC_END (KERNEL_MAP_END)
125#endif
126
127/* NB: The tlb miss handlers make certain assumptions about the order */ 119/* NB: The tlb miss handlers make certain assumptions about the order */
128/* of the following bits, so be careful (One example, bits 25-31 */ 120/* of the following bits, so be careful (One example, bits 25-31 */
129/* are moved together in one instruction). */ 121/* are moved together in one instruction). */
diff --git a/include/asm-parisc/unistd.h b/include/asm-parisc/unistd.h
index 081b4ae61866..a7d857f0e4f4 100644
--- a/include/asm-parisc/unistd.h
+++ b/include/asm-parisc/unistd.h
@@ -798,8 +798,11 @@
798#define __NR_timerfd (__NR_Linux + 303) 798#define __NR_timerfd (__NR_Linux + 303)
799#define __NR_eventfd (__NR_Linux + 304) 799#define __NR_eventfd (__NR_Linux + 304)
800#define __NR_fallocate (__NR_Linux + 305) 800#define __NR_fallocate (__NR_Linux + 305)
801#define __NR_timerfd_create (__NR_Linux + 306)
802#define __NR_timerfd_settime (__NR_Linux + 307)
803#define __NR_timerfd_gettime (__NR_Linux + 308)
801 804
802#define __NR_Linux_syscalls (__NR_fallocate + 1) 805#define __NR_Linux_syscalls (__NR_timerfd_gettime + 1)
803 806
804 807
805#define __IGNORE_select /* newselect */ 808#define __IGNORE_select /* newselect */
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h
index d1332bbcbd9b..2c79f550272b 100644
--- a/include/asm-powerpc/pgtable-ppc32.h
+++ b/include/asm-powerpc/pgtable-ppc32.h
@@ -339,14 +339,6 @@ extern int icache_44x_need_flush;
339#define _PMD_PAGE_MASK 0x000c 339#define _PMD_PAGE_MASK 0x000c
340#define _PMD_PAGE_8M 0x000c 340#define _PMD_PAGE_8M 0x000c
341 341
342/*
343 * The 8xx TLB miss handler allegedly sets _PAGE_ACCESSED in the PTE
344 * for an address even if _PAGE_PRESENT is not set, as a performance
345 * optimization. This is a bug if you ever want to use swap unless
346 * _PAGE_ACCESSED is 2, which it isn't, or unless you have 8xx-specific
347 * definitions for __swp_entry etc. below, which would be gross.
348 * -- paulus
349 */
350#define _PTE_NONE_MASK _PAGE_ACCESSED 342#define _PTE_NONE_MASK _PAGE_ACCESSED
351 343
352#else /* CONFIG_6xx */ 344#else /* CONFIG_6xx */
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h
index 69347bdbb401..70435d32129a 100644
--- a/include/asm-ppc/pgtable.h
+++ b/include/asm-ppc/pgtable.h
@@ -299,14 +299,6 @@ extern unsigned long ioremap_bot, ioremap_base;
299#define _PMD_PAGE_MASK 0x000c 299#define _PMD_PAGE_MASK 0x000c
300#define _PMD_PAGE_8M 0x000c 300#define _PMD_PAGE_8M 0x000c
301 301
302/*
303 * The 8xx TLB miss handler allegedly sets _PAGE_ACCESSED in the PTE
304 * for an address even if _PAGE_PRESENT is not set, as a performance
305 * optimization. This is a bug if you ever want to use swap unless
306 * _PAGE_ACCESSED is 2, which it isn't, or unless you have 8xx-specific
307 * definitions for __swp_entry etc. below, which would be gross.
308 * -- paulus
309 */
310#define _PTE_NONE_MASK _PAGE_ACCESSED 302#define _PTE_NONE_MASK _PAGE_ACCESSED
311 303
312#else /* CONFIG_6xx */ 304#else /* CONFIG_6xx */
diff --git a/include/asm-sh/byteorder.h b/include/asm-sh/byteorder.h
index 0eb9904b6545..4c13e6117563 100644
--- a/include/asm-sh/byteorder.h
+++ b/include/asm-sh/byteorder.h
@@ -11,13 +11,13 @@
11static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 11static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
12{ 12{
13 __asm__( 13 __asm__(
14#ifdef CONFIG_SUPERH32 14#ifdef __SH5__
15 "byterev %0, %0\n\t"
16 "shari %0, 32, %0"
17#else
15 "swap.b %0, %0\n\t" 18 "swap.b %0, %0\n\t"
16 "swap.w %0, %0\n\t" 19 "swap.w %0, %0\n\t"
17 "swap.b %0, %0" 20 "swap.b %0, %0"
18#else
19 "byterev %0, %0\n\t"
20 "shari %0, 32, %0"
21#endif 21#endif
22 : "=r" (x) 22 : "=r" (x)
23 : "0" (x)); 23 : "0" (x));
@@ -28,12 +28,11 @@ static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
28static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 28static inline __attribute_const__ __u16 ___arch__swab16(__u16 x)
29{ 29{
30 __asm__( 30 __asm__(
31#ifdef CONFIG_SUPERH32 31#ifdef __SH5__
32 "swap.b %0, %0"
33#else
34 "byterev %0, %0\n\t" 32 "byterev %0, %0\n\t"
35 "shari %0, 32, %0" 33 "shari %0, 32, %0"
36 34#else
35 "swap.b %0, %0"
37#endif 36#endif
38 : "=r" (x) 37 : "=r" (x)
39 : "0" (x)); 38 : "0" (x));
diff --git a/include/asm-sh/posix_types.h b/include/asm-sh/posix_types.h
index 4b9d11c9fc77..4eeb723aee7e 100644
--- a/include/asm-sh/posix_types.h
+++ b/include/asm-sh/posix_types.h
@@ -4,4 +4,10 @@
4# else 4# else
5# include "posix_types_64.h" 5# include "posix_types_64.h"
6# endif 6# endif
7#else
8# ifdef __SH5__
9# include "posix_types_64.h"
10# else
11# include "posix_types_32.h"
12# endif
7#endif /* __KERNEL__ */ 13#endif /* __KERNEL__ */
diff --git a/include/asm-sparc64/backoff.h b/include/asm-sparc64/backoff.h
index dadd6c385c6c..fa1fdf67e350 100644
--- a/include/asm-sparc64/backoff.h
+++ b/include/asm-sparc64/backoff.h
@@ -12,7 +12,8 @@
12 mov reg, tmp; \ 12 mov reg, tmp; \
1388: brnz,pt tmp, 88b; \ 1388: brnz,pt tmp, 88b; \
14 sub tmp, 1, tmp; \ 14 sub tmp, 1, tmp; \
15 cmp reg, BACKOFF_LIMIT; \ 15 set BACKOFF_LIMIT, tmp; \
16 cmp reg, tmp; \
16 bg,pn %xcc, label; \ 17 bg,pn %xcc, label; \
17 nop; \ 18 nop; \
18 ba,pt %xcc, label; \ 19 ba,pt %xcc, label; \
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h
index 542421460a12..532975ecfe10 100644
--- a/include/asm-sparc64/cpudata.h
+++ b/include/asm-sparc64/cpudata.h
@@ -86,6 +86,8 @@ extern struct trap_per_cpu trap_block[NR_CPUS];
86extern void init_cur_cpu_trap(struct thread_info *); 86extern void init_cur_cpu_trap(struct thread_info *);
87extern void setup_tba(void); 87extern void setup_tba(void);
88extern int ncpus_probed; 88extern int ncpus_probed;
89extern void __init cpu_probe(void);
90extern const struct seq_operations cpuinfo_op;
89 91
90extern unsigned long real_hard_smp_processor_id(void); 92extern unsigned long real_hard_smp_processor_id(void);
91 93
diff --git a/include/asm-sparc64/dcu.h b/include/asm-sparc64/dcu.h
index ecbed2ae548f..0f704e106a1b 100644
--- a/include/asm-sparc64/dcu.h
+++ b/include/asm-sparc64/dcu.h
@@ -1,26 +1,27 @@
1/* $Id: dcu.h,v 1.2 2001/03/01 23:23:33 davem Exp $ */
2#ifndef _SPARC64_DCU_H 1#ifndef _SPARC64_DCU_H
3#define _SPARC64_DCU_H 2#define _SPARC64_DCU_H
4 3
4#include <linux/const.h>
5
5/* UltraSparc-III Data Cache Unit Control Register */ 6/* UltraSparc-III Data Cache Unit Control Register */
6#define DCU_CP 0x0002000000000000 /* Physical Cache Enable w/o mmu*/ 7#define DCU_CP _AC(0x0002000000000000,UL) /* Phys Cache Enable w/o mmu */
7#define DCU_CV 0x0001000000000000 /* Virtual Cache Enable w/o mmu */ 8#define DCU_CV _AC(0x0001000000000000,UL) /* Virt Cache Enable w/o mmu */
8#define DCU_ME 0x0000800000000000 /* NC-store Merging Enable */ 9#define DCU_ME _AC(0x0000800000000000,UL) /* NC-store Merging Enable */
9#define DCU_RE 0x0000400000000000 /* RAW bypass Enable */ 10#define DCU_RE _AC(0x0000400000000000,UL) /* RAW bypass Enable */
10#define DCU_PE 0x0000200000000000 /* PCache Enable */ 11#define DCU_PE _AC(0x0000200000000000,UL) /* PCache Enable */
11#define DCU_HPE 0x0000100000000000 /* HW prefetch Enable */ 12#define DCU_HPE _AC(0x0000100000000000,UL) /* HW prefetch Enable */
12#define DCU_SPE 0x0000080000000000 /* SW prefetch Enable */ 13#define DCU_SPE _AC(0x0000080000000000,UL) /* SW prefetch Enable */
13#define DCU_SL 0x0000040000000000 /* Secondary load steering Enab */ 14#define DCU_SL _AC(0x0000040000000000,UL) /* Secondary ld-steering Enab*/
14#define DCU_WE 0x0000020000000000 /* WCache enable */ 15#define DCU_WE _AC(0x0000020000000000,UL) /* WCache enable */
15#define DCU_PM 0x000001fe00000000 /* PA Watchpoint Byte Mask */ 16#define DCU_PM _AC(0x000001fe00000000,UL) /* PA Watchpoint Byte Mask */
16#define DCU_VM 0x00000001fe000000 /* VA Watchpoint Byte Mask */ 17#define DCU_VM _AC(0x00000001fe000000,UL) /* VA Watchpoint Byte Mask */
17#define DCU_PR 0x0000000001000000 /* PA Watchpoint Read Enable */ 18#define DCU_PR _AC(0x0000000001000000,UL) /* PA Watchpoint Read Enable */
18#define DCU_PW 0x0000000000800000 /* PA Watchpoint Write Enable */ 19#define DCU_PW _AC(0x0000000000800000,UL) /* PA Watchpoint Write Enable*/
19#define DCU_VR 0x0000000000400000 /* VA Watchpoint Read Enable */ 20#define DCU_VR _AC(0x0000000000400000,UL) /* VA Watchpoint Read Enable */
20#define DCU_VW 0x0000000000200000 /* VA Watchpoint Write Enable */ 21#define DCU_VW _AC(0x0000000000200000,UL) /* VA Watchpoint Write Enable*/
21#define DCU_DM 0x0000000000000008 /* DMMU Enable */ 22#define DCU_DM _AC(0x0000000000000008,UL) /* DMMU Enable */
22#define DCU_IM 0x0000000000000004 /* IMMU Enable */ 23#define DCU_IM _AC(0x0000000000000004,UL) /* IMMU Enable */
23#define DCU_DC 0x0000000000000002 /* Data Cache Enable */ 24#define DCU_DC _AC(0x0000000000000002,UL) /* Data Cache Enable */
24#define DCU_IC 0x0000000000000001 /* Instruction Cache Enable */ 25#define DCU_IC _AC(0x0000000000000001,UL) /* Instruction Cache Enable */
25 26
26#endif /* _SPARC64_DCU_H */ 27#endif /* _SPARC64_DCU_H */
diff --git a/include/asm-sparc64/hvtramp.h b/include/asm-sparc64/hvtramp.h
index c7dd6ad056df..b2b9b947b3a4 100644
--- a/include/asm-sparc64/hvtramp.h
+++ b/include/asm-sparc64/hvtramp.h
@@ -16,7 +16,7 @@ struct hvtramp_descr {
16 __u64 fault_info_va; 16 __u64 fault_info_va;
17 __u64 fault_info_pa; 17 __u64 fault_info_pa;
18 __u64 thread_reg; 18 __u64 thread_reg;
19 struct hvtramp_mapping maps[2]; 19 struct hvtramp_mapping maps[1];
20}; 20};
21 21
22extern void hv_cpu_startup(unsigned long hvdescr_pa); 22extern void hv_cpu_startup(unsigned long hvdescr_pa);
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h
index 30cb76b47be1..0bb9bf531745 100644
--- a/include/asm-sparc64/irq.h
+++ b/include/asm-sparc64/irq.h
@@ -64,6 +64,7 @@ extern unsigned char virt_irq_alloc(unsigned int dev_handle,
64extern void virt_irq_free(unsigned int virt_irq); 64extern void virt_irq_free(unsigned int virt_irq);
65#endif 65#endif
66 66
67extern void __init init_IRQ(void);
67extern void fixup_irqs(void); 68extern void fixup_irqs(void);
68 69
69static inline void set_softint(unsigned long bits) 70static inline void set_softint(unsigned long bits)
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h
index 3167ccff64f8..549e45266b68 100644
--- a/include/asm-sparc64/pgtable.h
+++ b/include/asm-sparc64/pgtable.h
@@ -23,9 +23,9 @@
23#include <asm/page.h> 23#include <asm/page.h>
24#include <asm/processor.h> 24#include <asm/processor.h>
25 25
26/* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 32MB). 26/* The kernel image occupies 0x4000000 to 0x6000000 (4MB --> 96MB).
27 * The page copy blockops can use 0x2000000 to 0x4000000. 27 * The page copy blockops can use 0x6000000 to 0x8000000.
28 * The TSB is mapped in the 0x4000000 to 0x6000000 range. 28 * The TSB is mapped in the 0x8000000 to 0xa000000 range.
29 * The PROM resides in an area spanning 0xf0000000 to 0x100000000. 29 * The PROM resides in an area spanning 0xf0000000 to 0x100000000.
30 * The vmalloc area spans 0x100000000 to 0x200000000. 30 * The vmalloc area spans 0x100000000 to 0x200000000.
31 * Since modules need to be in the lowest 32-bits of the address space, 31 * Since modules need to be in the lowest 32-bits of the address space,
@@ -33,8 +33,8 @@
33 * There is a single static kernel PMD which maps from 0x0 to address 33 * There is a single static kernel PMD which maps from 0x0 to address
34 * 0x400000000. 34 * 0x400000000.
35 */ 35 */
36#define TLBTEMP_BASE _AC(0x0000000002000000,UL) 36#define TLBTEMP_BASE _AC(0x0000000006000000,UL)
37#define TSBMAP_BASE _AC(0x0000000004000000,UL) 37#define TSBMAP_BASE _AC(0x0000000008000000,UL)
38#define MODULES_VADDR _AC(0x0000000010000000,UL) 38#define MODULES_VADDR _AC(0x0000000010000000,UL)
39#define MODULES_LEN _AC(0x00000000e0000000,UL) 39#define MODULES_LEN _AC(0x00000000e0000000,UL)
40#define MODULES_END _AC(0x00000000f0000000,UL) 40#define MODULES_END _AC(0x00000000f0000000,UL)
@@ -761,6 +761,8 @@ extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long,
761extern void pgtable_cache_init(void); 761extern void pgtable_cache_init(void);
762extern void sun4v_register_fault_status(void); 762extern void sun4v_register_fault_status(void);
763extern void sun4v_ktsb_register(void); 763extern void sun4v_ktsb_register(void);
764extern void __init cheetah_ecache_flush_init(void);
765extern void sun4v_patch_tlb_handlers(void);
764 766
765extern unsigned long cmdline_memory_size; 767extern unsigned long cmdline_memory_size;
766 768
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h
index 8da484c19822..885b6a1dcae4 100644
--- a/include/asm-sparc64/processor.h
+++ b/include/asm-sparc64/processor.h
@@ -37,6 +37,9 @@
37#endif 37#endif
38 38
39#define TASK_SIZE ((unsigned long)-VPTE_SIZE) 39#define TASK_SIZE ((unsigned long)-VPTE_SIZE)
40#define TASK_SIZE_OF(tsk) \
41 (test_tsk_thread_flag(tsk,TIF_32BIT) ? \
42 (1UL << 32UL) : TASK_SIZE)
40#ifdef __KERNEL__ 43#ifdef __KERNEL__
41 44
42#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) 45#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h
index 63b7040e8134..985ea7e31992 100644
--- a/include/asm-sparc64/spitfire.h
+++ b/include/asm-sparc64/spitfire.h
@@ -63,6 +63,8 @@ extern void cheetah_enable_pcache(void);
63 SPITFIRE_HIGHEST_LOCKED_TLBENT : \ 63 SPITFIRE_HIGHEST_LOCKED_TLBENT : \
64 CHEETAH_HIGHEST_LOCKED_TLBENT) 64 CHEETAH_HIGHEST_LOCKED_TLBENT)
65 65
66extern int num_kernel_image_mappings;
67
66/* The data cache is write through, so this just invalidates the 68/* The data cache is write through, so this just invalidates the
67 * specified line. 69 * specified line.
68 */ 70 */
diff --git a/include/asm-sparc64/stacktrace.h b/include/asm-sparc64/stacktrace.h
new file mode 100644
index 000000000000..6cee39adf6d6
--- /dev/null
+++ b/include/asm-sparc64/stacktrace.h
@@ -0,0 +1,6 @@
1#ifndef _SPARC64_STACKTRACE_H
2#define _SPARC64_STACKTRACE_H
3
4extern void stack_trace_flush(void);
5
6#endif /* _SPARC64_STACKTRACE_H */
diff --git a/include/asm-sparc64/timer.h b/include/asm-sparc64/timer.h
index ccbd69448866..5b779fd1f788 100644
--- a/include/asm-sparc64/timer.h
+++ b/include/asm-sparc64/timer.h
@@ -1,14 +1,13 @@
1/* $Id: timer.h,v 1.3 2000/05/09 17:40:15 davem Exp $ 1/* timer.h: System timer definitions for sun5.
2 * timer.h: System timer definitions for sun5.
3 * 2 *
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1997, 2008 David S. Miller (davem@davemloft.net)
5 */ 4 */
6 5
7#ifndef _SPARC64_TIMER_H 6#ifndef _SPARC64_TIMER_H
8#define _SPARC64_TIMER_H 7#define _SPARC64_TIMER_H
9 8
10#include <linux/types.h> 9#include <linux/types.h>
11 10#include <linux/init.h>
12 11
13struct sparc64_tick_ops { 12struct sparc64_tick_ops {
14 unsigned long (*get_tick)(void); 13 unsigned long (*get_tick)(void);
@@ -25,5 +24,7 @@ struct sparc64_tick_ops {
25extern struct sparc64_tick_ops *tick_ops; 24extern struct sparc64_tick_ops *tick_ops;
26 25
27extern unsigned long sparc64_get_clock_tick(unsigned int cpu); 26extern unsigned long sparc64_get_clock_tick(unsigned int cpu);
27extern void __devinit setup_sparc64_timer(void);
28extern void __init time_init(void);
28 29
29#endif /* _SPARC64_TIMER_H */ 30#endif /* _SPARC64_TIMER_H */
diff --git a/include/asm-x86/cmpxchg_32.h b/include/asm-x86/cmpxchg_32.h
index cea1dae288a7..959fad00dff5 100644
--- a/include/asm-x86/cmpxchg_32.h
+++ b/include/asm-x86/cmpxchg_32.h
@@ -269,22 +269,26 @@ static inline unsigned long cmpxchg_386(volatile void *ptr, unsigned long old,
269({ \ 269({ \
270 __typeof__(*(ptr)) __ret; \ 270 __typeof__(*(ptr)) __ret; \
271 if (likely(boot_cpu_data.x86 > 3)) \ 271 if (likely(boot_cpu_data.x86 > 3)) \
272 __ret = __cmpxchg((ptr), (unsigned long)(o), \ 272 __ret = (__typeof__(*(ptr)))__cmpxchg((ptr), \
273 (unsigned long)(n), sizeof(*(ptr))); \ 273 (unsigned long)(o), (unsigned long)(n), \
274 sizeof(*(ptr))); \
274 else \ 275 else \
275 __ret = cmpxchg_386((ptr), (unsigned long)(o), \ 276 __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \
276 (unsigned long)(n), sizeof(*(ptr))); \ 277 (unsigned long)(o), (unsigned long)(n), \
278 sizeof(*(ptr))); \
277 __ret; \ 279 __ret; \
278}) 280})
279#define cmpxchg_local(ptr, o, n) \ 281#define cmpxchg_local(ptr, o, n) \
280({ \ 282({ \
281 __typeof__(*(ptr)) __ret; \ 283 __typeof__(*(ptr)) __ret; \
282 if (likely(boot_cpu_data.x86 > 3)) \ 284 if (likely(boot_cpu_data.x86 > 3)) \
283 __ret = __cmpxchg_local((ptr), (unsigned long)(o), \ 285 __ret = (__typeof__(*(ptr)))__cmpxchg_local((ptr), \
284 (unsigned long)(n), sizeof(*(ptr))); \ 286 (unsigned long)(o), (unsigned long)(n), \
287 sizeof(*(ptr))); \
285 else \ 288 else \
286 __ret = cmpxchg_386((ptr), (unsigned long)(o), \ 289 __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \
287 (unsigned long)(n), sizeof(*(ptr))); \ 290 (unsigned long)(o), (unsigned long)(n), \
291 sizeof(*(ptr))); \
288 __ret; \ 292 __ret; \
289}) 293})
290#endif 294#endif
@@ -301,10 +305,12 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
301({ \ 305({ \
302 __typeof__(*(ptr)) __ret; \ 306 __typeof__(*(ptr)) __ret; \
303 if (likely(boot_cpu_data.x86 > 4)) \ 307 if (likely(boot_cpu_data.x86 > 4)) \
304 __ret = __cmpxchg64((ptr), (unsigned long long)(o), \ 308 __ret = (__typeof__(*(ptr)))__cmpxchg64((ptr), \
309 (unsigned long long)(o), \
305 (unsigned long long)(n)); \ 310 (unsigned long long)(n)); \
306 else \ 311 else \
307 __ret = cmpxchg_486_u64((ptr), (unsigned long long)(o), \ 312 __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \
313 (unsigned long long)(o), \
308 (unsigned long long)(n)); \ 314 (unsigned long long)(n)); \
309 __ret; \ 315 __ret; \
310}) 316})
@@ -312,10 +318,12 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
312({ \ 318({ \
313 __typeof__(*(ptr)) __ret; \ 319 __typeof__(*(ptr)) __ret; \
314 if (likely(boot_cpu_data.x86 > 4)) \ 320 if (likely(boot_cpu_data.x86 > 4)) \
315 __ret = __cmpxchg64_local((ptr), (unsigned long long)(o), \ 321 __ret = (__typeof__(*(ptr)))__cmpxchg64_local((ptr), \
322 (unsigned long long)(o), \
316 (unsigned long long)(n)); \ 323 (unsigned long long)(n)); \
317 else \ 324 else \
318 __ret = cmpxchg_486_u64((ptr), (unsigned long long)(o), \ 325 __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \
326 (unsigned long long)(o), \
319 (unsigned long long)(n)); \ 327 (unsigned long long)(n)); \
320 __ret; \ 328 __ret; \
321}) 329})
diff --git a/include/asm-x86/e820_32.h b/include/asm-x86/e820_32.h
index f1da7ebd1905..e7207a6de3e0 100644
--- a/include/asm-x86/e820_32.h
+++ b/include/asm-x86/e820_32.h
@@ -28,6 +28,8 @@ extern void find_max_pfn(void);
28extern void register_bootmem_low_pages(unsigned long max_low_pfn); 28extern void register_bootmem_low_pages(unsigned long max_low_pfn);
29extern void add_memory_region(unsigned long long start, 29extern void add_memory_region(unsigned long long start,
30 unsigned long long size, int type); 30 unsigned long long size, int type);
31extern void update_memory_range(u64 start, u64 size, unsigned old_type,
32 unsigned new_type);
31extern void e820_register_memory(void); 33extern void e820_register_memory(void);
32extern void limit_regions(unsigned long long size); 34extern void limit_regions(unsigned long long size);
33extern void print_memory_map(char *who); 35extern void print_memory_map(char *who);
diff --git a/include/asm-x86/e820_64.h b/include/asm-x86/e820_64.h
index a560c4f5d500..22ede73ae724 100644
--- a/include/asm-x86/e820_64.h
+++ b/include/asm-x86/e820_64.h
@@ -18,6 +18,8 @@ extern unsigned long find_e820_area(unsigned long start, unsigned long end,
18 unsigned size, unsigned long align); 18 unsigned size, unsigned long align);
19extern void add_memory_region(unsigned long start, unsigned long size, 19extern void add_memory_region(unsigned long start, unsigned long size,
20 int type); 20 int type);
21extern void update_memory_range(u64 start, u64 size, unsigned old_type,
22 unsigned new_type);
21extern void setup_memory_region(void); 23extern void setup_memory_region(void);
22extern void contig_e820_setup(void); 24extern void contig_e820_setup(void);
23extern unsigned long e820_end_of_ram(void); 25extern unsigned long e820_end_of_ram(void);
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h
index 58d2c45cd0b1..d4d8fbd9378c 100644
--- a/include/asm-x86/io_32.h
+++ b/include/asm-x86/io_32.h
@@ -114,13 +114,13 @@ static inline void * phys_to_virt(unsigned long address)
114 * If the area you are trying to map is a PCI BAR you should have a 114 * If the area you are trying to map is a PCI BAR you should have a
115 * look at pci_iomap(). 115 * look at pci_iomap().
116 */ 116 */
117extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size); 117extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
118extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size); 118extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
119 119
120/* 120/*
121 * The default ioremap() behavior is non-cached: 121 * The default ioremap() behavior is non-cached:
122 */ 122 */
123static inline void __iomem *ioremap(unsigned long offset, unsigned long size) 123static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
124{ 124{
125 return ioremap_nocache(offset, size); 125 return ioremap_nocache(offset, size);
126} 126}
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
index f64a59cc396d..db0be2011a3c 100644
--- a/include/asm-x86/io_64.h
+++ b/include/asm-x86/io_64.h
@@ -158,13 +158,13 @@ extern void early_iounmap(void *addr, unsigned long size);
158 * it's useful if some control registers are in such an area and write combining 158 * it's useful if some control registers are in such an area and write combining
159 * or read caching is not desirable: 159 * or read caching is not desirable:
160 */ 160 */
161extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size); 161extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
162extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size); 162extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
163 163
164/* 164/*
165 * The default ioremap() behavior is non-cached: 165 * The default ioremap() behavior is non-cached:
166 */ 166 */
167static inline void __iomem *ioremap(unsigned long offset, unsigned long size) 167static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
168{ 168{
169 return ioremap_nocache(offset, size); 169 return ioremap_nocache(offset, size);
170} 170}
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h
index 758b9a5d4539..f239e7069cab 100644
--- a/include/asm-x86/lguest_hcall.h
+++ b/include/asm-x86/lguest_hcall.h
@@ -27,7 +27,7 @@
27#ifndef __ASSEMBLY__ 27#ifndef __ASSEMBLY__
28#include <asm/hw_irq.h> 28#include <asm/hw_irq.h>
29 29
30/*G:031 First, how does our Guest contact the Host to ask for privileged 30/*G:031 But first, how does our Guest contact the Host to ask for privileged
31 * operations? There are two ways: the direct way is to make a "hypercall", 31 * operations? There are two ways: the direct way is to make a "hypercall",
32 * to make requests of the Host Itself. 32 * to make requests of the Host Itself.
33 * 33 *
diff --git a/include/asm-x86/mach-rdc321x/gpio.h b/include/asm-x86/mach-rdc321x/gpio.h
index db31b929b990..acce0b7d397b 100644
--- a/include/asm-x86/mach-rdc321x/gpio.h
+++ b/include/asm-x86/mach-rdc321x/gpio.h
@@ -5,19 +5,20 @@ extern int rdc_gpio_get_value(unsigned gpio);
5extern void rdc_gpio_set_value(unsigned gpio, int value); 5extern void rdc_gpio_set_value(unsigned gpio, int value);
6extern int rdc_gpio_direction_input(unsigned gpio); 6extern int rdc_gpio_direction_input(unsigned gpio);
7extern int rdc_gpio_direction_output(unsigned gpio, int value); 7extern int rdc_gpio_direction_output(unsigned gpio, int value);
8 8extern int rdc_gpio_request(unsigned gpio, const char *label);
9extern void rdc_gpio_free(unsigned gpio);
10extern void __init rdc321x_gpio_setup(void);
9 11
10/* Wrappers for the arch-neutral GPIO API */ 12/* Wrappers for the arch-neutral GPIO API */
11 13
12static inline int gpio_request(unsigned gpio, const char *label) 14static inline int gpio_request(unsigned gpio, const char *label)
13{ 15{
14 /* Not yet implemented */ 16 return rdc_gpio_request(gpio, label);
15 return 0;
16} 17}
17 18
18static inline void gpio_free(unsigned gpio) 19static inline void gpio_free(unsigned gpio)
19{ 20{
20 /* Not yet implemented */ 21 rdc_gpio_free(gpio);
21} 22}
22 23
23static inline int gpio_direction_input(unsigned gpio) 24static inline int gpio_direction_input(unsigned gpio)
diff --git a/include/asm-x86/mach-rdc321x/rdc321x_defs.h b/include/asm-x86/mach-rdc321x/rdc321x_defs.h
index 838ba8f64fd3..c8e9c8bed3d0 100644
--- a/include/asm-x86/mach-rdc321x/rdc321x_defs.h
+++ b/include/asm-x86/mach-rdc321x/rdc321x_defs.h
@@ -3,4 +3,10 @@
3/* General purpose configuration and data registers */ 3/* General purpose configuration and data registers */
4#define RDC3210_CFGREG_ADDR 0x0CF8 4#define RDC3210_CFGREG_ADDR 0x0CF8
5#define RDC3210_CFGREG_DATA 0x0CFC 5#define RDC3210_CFGREG_DATA 0x0CFC
6#define RDC_MAX_GPIO 0x3A 6
7#define RDC321X_GPIO_CTRL_REG1 0x48
8#define RDC321X_GPIO_CTRL_REG2 0x84
9#define RDC321X_GPIO_DATA_REG1 0x4c
10#define RDC321X_GPIO_DATA_REG2 0x88
11
12#define RDC321X_MAX_GPIO 58
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h
index 1cb7c51bc296..a05b2896492f 100644
--- a/include/asm-x86/page.h
+++ b/include/asm-x86/page.h
@@ -52,13 +52,13 @@ extern int page_is_ram(unsigned long pagenr);
52 52
53struct page; 53struct page;
54 54
55static void inline clear_user_page(void *page, unsigned long vaddr, 55static inline void clear_user_page(void *page, unsigned long vaddr,
56 struct page *pg) 56 struct page *pg)
57{ 57{
58 clear_page(page); 58 clear_page(page);
59} 59}
60 60
61static void inline copy_user_page(void *to, void *from, unsigned long vaddr, 61static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
62 struct page *topage) 62 struct page *topage)
63{ 63{
64 copy_page(to, from); 64 copy_page(to, from);
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 174b87738714..9cf472aeb9ce 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -85,6 +85,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
85#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW) 85#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
86#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT) 86#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
87#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) 87#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
88#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
88#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER) 89#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
89#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT) 90#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
90#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) 91#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
@@ -101,6 +102,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
101#define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) 102#define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC)
102#define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX) 103#define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX)
103#define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE) 104#define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE)
105#define PAGE_KERNEL_UC_MINUS MAKE_GLOBAL(__PAGE_KERNEL_UC_MINUS)
104#define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE) 106#define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE)
105#define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE) 107#define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE)
106#define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC) 108#define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC)
diff --git a/include/asm-x86/sync_bitops.h b/include/asm-x86/sync_bitops.h
index cbce08a2d135..6b775c905666 100644
--- a/include/asm-x86/sync_bitops.h
+++ b/include/asm-x86/sync_bitops.h
@@ -23,10 +23,6 @@
23 * This function is atomic and may not be reordered. See __set_bit() 23 * This function is atomic and may not be reordered. See __set_bit()
24 * if you do not require the atomic guarantees. 24 * if you do not require the atomic guarantees.
25 * 25 *
26 * Note: there are no guarantees that this function will not be reordered
27 * on non-x86 architectures, so if you are writing portable code,
28 * make sure not to rely on its reordering guarantees.
29 *
30 * Note that @nr may be almost arbitrarily large; this function is not 26 * Note that @nr may be almost arbitrarily large; this function is not
31 * restricted to acting on a single-word quantity. 27 * restricted to acting on a single-word quantity.
32 */ 28 */
@@ -61,8 +57,7 @@ static inline void sync_clear_bit(int nr, volatile unsigned long * addr)
61 * @nr: Bit to change 57 * @nr: Bit to change
62 * @addr: Address to start counting from 58 * @addr: Address to start counting from
63 * 59 *
64 * change_bit() is atomic and may not be reordered. It may be 60 * sync_change_bit() is atomic and may not be reordered.
65 * reordered on other architectures than x86.
66 * Note that @nr may be almost arbitrarily large; this function is not 61 * Note that @nr may be almost arbitrarily large; this function is not
67 * restricted to acting on a single-word quantity. 62 * restricted to acting on a single-word quantity.
68 */ 63 */
@@ -80,7 +75,6 @@ static inline void sync_change_bit(int nr, volatile unsigned long * addr)
80 * @addr: Address to count from 75 * @addr: Address to count from
81 * 76 *
82 * This operation is atomic and cannot be reordered. 77 * This operation is atomic and cannot be reordered.
83 * It may be reordered on other architectures than x86.
84 * It also implies a memory barrier. 78 * It also implies a memory barrier.
85 */ 79 */
86static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr) 80static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr)
@@ -99,7 +93,6 @@ static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr)
99 * @addr: Address to count from 93 * @addr: Address to count from
100 * 94 *
101 * This operation is atomic and cannot be reordered. 95 * This operation is atomic and cannot be reordered.
102 * It can be reorderdered on other architectures other than x86.
103 * It also implies a memory barrier. 96 * It also implies a memory barrier.
104 */ 97 */
105static inline int sync_test_and_clear_bit(int nr, volatile unsigned long * addr) 98static inline int sync_test_and_clear_bit(int nr, volatile unsigned long * addr)
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 994df3780007..4a446a19295e 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -127,7 +127,6 @@ header-y += pkt_sched.h
127header-y += posix_types.h 127header-y += posix_types.h
128header-y += ppdev.h 128header-y += ppdev.h
129header-y += prctl.h 129header-y += prctl.h
130header-y += ps2esdi.h
131header-y += qnxtypes.h 130header-y += qnxtypes.h
132header-y += quotaio_v1.h 131header-y += quotaio_v1.h
133header-y += quotaio_v2.h 132header-y += quotaio_v2.h
@@ -196,7 +195,6 @@ unifdef-y += ethtool.h
196unifdef-y += eventpoll.h 195unifdef-y += eventpoll.h
197unifdef-y += signalfd.h 196unifdef-y += signalfd.h
198unifdef-y += ext2_fs.h 197unifdef-y += ext2_fs.h
199unifdef-y += ext3_fs.h
200unifdef-y += fb.h 198unifdef-y += fb.h
201unifdef-y += fcntl.h 199unifdef-y += fcntl.h
202unifdef-y += filter.h 200unifdef-y += filter.h
@@ -205,7 +203,6 @@ unifdef-y += futex.h
205unifdef-y += fs.h 203unifdef-y += fs.h
206unifdef-y += gameport.h 204unifdef-y += gameport.h
207unifdef-y += generic_serial.h 205unifdef-y += generic_serial.h
208unifdef-y += genhd.h
209unifdef-y += gfs2_ondisk.h 206unifdef-y += gfs2_ondisk.h
210unifdef-y += hayesesp.h 207unifdef-y += hayesesp.h
211unifdef-y += hdlcdrv.h 208unifdef-y += hdlcdrv.h
@@ -250,7 +247,6 @@ unifdef-y += isdn.h
250unifdef-y += isdnif.h 247unifdef-y += isdnif.h
251unifdef-y += isdn_divertif.h 248unifdef-y += isdn_divertif.h
252unifdef-y += isdn_ppp.h 249unifdef-y += isdn_ppp.h
253unifdef-y += jbd.h
254unifdef-y += joystick.h 250unifdef-y += joystick.h
255unifdef-y += kdev_t.h 251unifdef-y += kdev_t.h
256unifdef-y += kd.h 252unifdef-y += kd.h
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 69c1edb9fe54..40d54731de7e 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift)
65 return (word >> shift) | (word << (32 - shift)); 65 return (word >> shift) | (word << (32 - shift));
66} 66}
67 67
68/**
69 * rol16 - rotate a 16-bit value left
70 * @word: value to rotate
71 * @shift: bits to roll
72 */
73static inline __u16 rol16(__u16 word, unsigned int shift)
74{
75 return (word << shift) | (word >> (16 - shift));
76}
77
78/**
79 * ror16 - rotate a 16-bit value right
80 * @word: value to rotate
81 * @shift: bits to roll
82 */
83static inline __u16 ror16(__u16 word, unsigned int shift)
84{
85 return (word >> shift) | (word << (16 - shift));
86}
87
88/**
89 * rol8 - rotate an 8-bit value left
90 * @word: value to rotate
91 * @shift: bits to roll
92 */
93static inline __u8 rol8(__u8 word, unsigned int shift)
94{
95 return (word << shift) | (word >> (8 - shift));
96}
97
98/**
99 * ror8 - rotate an 8-bit value right
100 * @word: value to rotate
101 * @shift: bits to roll
102 */
103static inline __u8 ror8(__u8 word, unsigned int shift)
104{
105 return (word >> shift) | (word << (8 - shift));
106}
107
68static inline unsigned fls_long(unsigned long l) 108static inline unsigned fls_long(unsigned long l)
69{ 109{
70 if (sizeof(l) == 4) 110 if (sizeof(l) == 4)
diff --git a/include/linux/compat.h b/include/linux/compat.h
index a671dbff7a1f..8fa7857e153b 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -192,8 +192,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
192 struct compat_timeval __user *tvp); 192 struct compat_timeval __user *tvp);
193 193
194asmlinkage long compat_sys_wait4(compat_pid_t pid, 194asmlinkage long compat_sys_wait4(compat_pid_t pid,
195 compat_uint_t *stat_addr, int options, 195 compat_uint_t __user *stat_addr, int options,
196 struct compat_rusage *ru); 196 struct compat_rusage __user *ru);
197 197
198#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) 198#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t))
199 199
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 6b72a4584086..51e6b1e520e6 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -38,8 +38,8 @@ struct cpuidle_state {
38 unsigned int power_usage; /* in mW */ 38 unsigned int power_usage; /* in mW */
39 unsigned int target_residency; /* in US */ 39 unsigned int target_residency; /* in US */
40 40
41 unsigned int usage; 41 unsigned long long usage;
42 unsigned int time; /* in US */ 42 unsigned long long time; /* in US */
43 43
44 int (*enter) (struct cpuidle_device *dev, 44 int (*enter) (struct cpuidle_device *dev,
45 struct cpuidle_state *state); 45 struct cpuidle_state *state);
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 261e43a4c873..34d440698293 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -423,7 +423,7 @@ void dma_async_device_unregister(struct dma_device *device);
423/* --- Helper iov-locking functions --- */ 423/* --- Helper iov-locking functions --- */
424 424
425struct dma_page_list { 425struct dma_page_list {
426 char *base_address; 426 char __user *base_address;
427 int nr_pages; 427 int nr_pages;
428 struct page **pages; 428 struct page **pages;
429}; 429};
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index fcbe8b640ffb..c8d216357865 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -12,6 +12,7 @@
12#ifndef _LINUX_ETHTOOL_H 12#ifndef _LINUX_ETHTOOL_H
13#define _LINUX_ETHTOOL_H 13#define _LINUX_ETHTOOL_H
14 14
15#include <linux/types.h>
15 16
16/* This should work for both 32 and 64 bit userland. */ 17/* This should work for both 32 and 64 bit userland. */
17struct ethtool_cmd { 18struct ethtool_cmd {
diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h
index 51d214138814..adcbb05b120b 100644
--- a/include/linux/exportfs.h
+++ b/include/linux/exportfs.h
@@ -49,11 +49,11 @@ struct fid {
49 49
50/** 50/**
51 * struct export_operations - for nfsd to communicate with file systems 51 * struct export_operations - for nfsd to communicate with file systems
52 * @decode_fh: decode a file handle fragment and return a &struct dentry
53 * @encode_fh: encode a file handle fragment from a dentry 52 * @encode_fh: encode a file handle fragment from a dentry
53 * @fh_to_dentry: find the implied object and get a dentry for it
54 * @fh_to_parent: find the implied object's parent and get a dentry for it
54 * @get_name: find the name for a given inode in a given directory 55 * @get_name: find the name for a given inode in a given directory
55 * @get_parent: find the parent of a given directory 56 * @get_parent: find the parent of a given directory
56 * @get_dentry: find a dentry for the inode given a file handle sub-fragment
57 * 57 *
58 * See Documentation/filesystems/Exporting for details on how to use 58 * See Documentation/filesystems/Exporting for details on how to use
59 * this interface correctly. 59 * this interface correctly.
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 32c2ac49a070..ecd2bf63fc84 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -55,24 +55,6 @@ enum {
55 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */ 55 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
56}; 56};
57 57
58#ifndef __KERNEL__
59
60struct partition {
61 unsigned char boot_ind; /* 0x80 - active */
62 unsigned char head; /* starting head */
63 unsigned char sector; /* starting sector */
64 unsigned char cyl; /* starting cylinder */
65 unsigned char sys_ind; /* What partition type */
66 unsigned char end_head; /* end head */
67 unsigned char end_sector; /* end sector */
68 unsigned char end_cyl; /* end cylinder */
69 unsigned int start_sect; /* starting sector counting from 0 */
70 unsigned int nr_sects; /* nr of sectors in partition */
71} __attribute__((packed));
72
73#endif
74
75#ifdef __KERNEL__
76#include <linux/major.h> 58#include <linux/major.h>
77#include <linux/device.h> 59#include <linux/device.h>
78#include <linux/smp.h> 60#include <linux/smp.h>
@@ -228,7 +210,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value) {
228 sizeof(struct disk_stats)); 210 sizeof(struct disk_stats));
229} 211}
230 212
231#else 213#else /* !CONFIG_SMP */
232#define __disk_stat_add(gendiskp, field, addnd) \ 214#define __disk_stat_add(gendiskp, field, addnd) \
233 (gendiskp->dkstats.field += addnd) 215 (gendiskp->dkstats.field += addnd)
234#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field) 216#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field)
@@ -256,7 +238,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
256 memset(&part->dkstats, value, sizeof(struct disk_stats)); 238 memset(&part->dkstats, value, sizeof(struct disk_stats));
257} 239}
258 240
259#endif 241#endif /* CONFIG_SMP */
260 242
261#define disk_stat_add(gendiskp, field, addnd) \ 243#define disk_stat_add(gendiskp, field, addnd) \
262 do { \ 244 do { \
@@ -395,8 +377,6 @@ static inline void set_capacity(struct gendisk *disk, sector_t size)
395 disk->capacity = size; 377 disk->capacity = size;
396} 378}
397 379
398#endif /* __KERNEL__ */
399
400#ifdef CONFIG_SOLARIS_X86_PARTITION 380#ifdef CONFIG_SOLARIS_X86_PARTITION
401 381
402#define SOLARIS_X86_NUMSLICE 16 382#define SOLARIS_X86_NUMSLICE 16
@@ -540,8 +520,6 @@ struct unixware_disklabel {
540# define MINIX_NR_SUBPARTITIONS 4 520# define MINIX_NR_SUBPARTITIONS 4
541#endif /* CONFIG_MINIX_SUBPARTITION */ 521#endif /* CONFIG_MINIX_SUBPARTITION */
542 522
543#ifdef __KERNEL__
544
545#define ADDPART_FLAG_NONE 0 523#define ADDPART_FLAG_NONE 0
546#define ADDPART_FLAG_RAID 1 524#define ADDPART_FLAG_RAID 1
547#define ADDPART_FLAG_WHOLEDISK 2 525#define ADDPART_FLAG_WHOLEDISK 2
@@ -570,8 +548,6 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index)
570 return bdget(MKDEV(disk->major, disk->first_minor) + index); 548 return bdget(MKDEV(disk->major, disk->first_minor) + index);
571} 549}
572 550
573#endif
574
575#else /* CONFIG_BLOCK */ 551#else /* CONFIG_BLOCK */
576 552
577static inline void printk_all_partitions(void) { } 553static inline void printk_all_partitions(void) { }
@@ -584,4 +560,4 @@ static inline dev_t blk_lookup_devt(const char *name)
584 560
585#endif /* CONFIG_BLOCK */ 561#endif /* CONFIG_BLOCK */
586 562
587#endif 563#endif /* _LINUX_GENHD_H */
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 49829988bfa0..897f723bd222 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -72,6 +72,13 @@
72#define in_softirq() (softirq_count()) 72#define in_softirq() (softirq_count())
73#define in_interrupt() (irq_count()) 73#define in_interrupt() (irq_count())
74 74
75/*
76 * Are we running in atomic context? WARNING: this macro cannot
77 * always detect atomic context; in particular, it cannot know about
78 * held spinlocks in non-preemptible kernels. Thus it should not be
79 * used in the general case to determine whether sleeping is possible.
80 * Do not use in_atomic() in driver code.
81 */
75#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0) 82#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0)
76 83
77#ifdef CONFIG_PREEMPT 84#ifdef CONFIG_PREEMPT
diff --git a/include/linux/ide.h b/include/linux/ide.h
index a3b69c10d667..bc26b2f27359 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -26,7 +26,7 @@
26#include <asm/semaphore.h> 26#include <asm/semaphore.h>
27#include <asm/mutex.h> 27#include <asm/mutex.h>
28 28
29#if defined(CRIS) || defined(FRV) 29#if defined(CONFIG_CRIS) || defined(CONFIG_FRV)
30# define SUPPORT_VLB_SYNC 0 30# define SUPPORT_VLB_SYNC 0
31#else 31#else
32# define SUPPORT_VLB_SYNC 1 32# define SUPPORT_VLB_SYNC 1
diff --git a/include/linux/in.h b/include/linux/in.h
index 70c6df882694..4065313cd7ee 100644
--- a/include/linux/in.h
+++ b/include/linux/in.h
@@ -265,7 +265,7 @@ static inline bool ipv4_is_local_multicast(__be32 addr)
265static inline bool ipv4_is_lbcast(__be32 addr) 265static inline bool ipv4_is_lbcast(__be32 addr)
266{ 266{
267 /* limited broadcast */ 267 /* limited broadcast */
268 return addr == INADDR_BROADCAST; 268 return addr == htonl(INADDR_BROADCAST);
269} 269}
270 270
271static inline bool ipv4_is_zeronet(__be32 addr) 271static inline bool ipv4_is_zeronet(__be32 addr)
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index b18fd3b9b835..423f58272188 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -348,8 +348,7 @@ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
348struct jbd_revoke_table_s; 348struct jbd_revoke_table_s;
349 349
350/** 350/**
351 * struct handle_s - The handle_s type is the concrete type associated with 351 * struct handle_s - this is the concrete type associated with handle_t.
352 * handle_t.
353 * @h_transaction: Which compound transaction is this update a part of? 352 * @h_transaction: Which compound transaction is this update a part of?
354 * @h_buffer_credits: Number of remaining buffers we are allowed to dirty. 353 * @h_buffer_credits: Number of remaining buffers we are allowed to dirty.
355 * @h_ref: Reference count on this handle 354 * @h_ref: Reference count on this handle
@@ -358,12 +357,7 @@ struct jbd_revoke_table_s;
358 * @h_jdata: flag to force data journaling 357 * @h_jdata: flag to force data journaling
359 * @h_aborted: flag indicating fatal error on handle 358 * @h_aborted: flag indicating fatal error on handle
360 * @h_lockdep_map: lockdep info for debugging lock problems 359 * @h_lockdep_map: lockdep info for debugging lock problems
361 **/
362
363/* Docbook can't yet cope with the bit fields, but will leave the documentation
364 * in so it can be fixed later.
365 */ 360 */
366
367struct handle_s 361struct handle_s
368{ 362{
369 /* Which compound transaction is this update a part of? */ 363 /* Which compound transaction is this update a part of? */
@@ -558,8 +552,7 @@ struct transaction_s
558}; 552};
559 553
560/** 554/**
561 * struct journal_s - The journal_s type is the concrete type associated with 555 * struct journal_s - this is the concrete type associated with journal_t.
562 * journal_t.
563 * @j_flags: General journaling state flags 556 * @j_flags: General journaling state flags
564 * @j_errno: Is there an outstanding uncleared error on the journal (from a 557 * @j_errno: Is there an outstanding uncleared error on the journal (from a
565 * prior abort)? 558 * prior abort)?
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h
index 589be3e1f3ac..e7217dc58f39 100644
--- a/include/linux/lguest_launcher.h
+++ b/include/linux/lguest_launcher.h
@@ -16,6 +16,10 @@
16 * a new device, we simply need to write a new virtio driver and create support 16 * a new device, we simply need to write a new virtio driver and create support
17 * for it in the Launcher: this code won't need to change. 17 * for it in the Launcher: this code won't need to change.
18 * 18 *
19 * Virtio devices are also used by kvm, so we can simply reuse their optimized
20 * device drivers. And one day when everyone uses virtio, my plan will be
21 * complete. Bwahahahah!
22 *
19 * Devices are described by a simplified ID, a status byte, and some "config" 23 * Devices are described by a simplified ID, a status byte, and some "config"
20 * bytes which describe this device's configuration. This is placed by the 24 * bytes which describe this device's configuration. This is placed by the
21 * Launcher just above the top of physical memory: 25 * Launcher just above the top of physical memory:
@@ -26,7 +30,7 @@ struct lguest_device_desc {
26 /* The number of virtqueues (first in config array) */ 30 /* The number of virtqueues (first in config array) */
27 __u8 num_vq; 31 __u8 num_vq;
28 /* The number of bytes of feature bits. Multiply by 2: one for host 32 /* The number of bytes of feature bits. Multiply by 2: one for host
29 * features and one for guest acknowledgements. */ 33 * features and one for Guest acknowledgements. */
30 __u8 feature_len; 34 __u8 feature_len;
31 /* The number of bytes of the config array after virtqueues. */ 35 /* The number of bytes of the config array after virtqueues. */
32 __u8 config_len; 36 __u8 config_len;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index a05f60013642..b064bfeb69ee 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -295,6 +295,7 @@ enum {
295 ATA_EH_SOFTRESET = (1 << 1), 295 ATA_EH_SOFTRESET = (1 << 1),
296 ATA_EH_HARDRESET = (1 << 2), 296 ATA_EH_HARDRESET = (1 << 2),
297 ATA_EH_ENABLE_LINK = (1 << 3), 297 ATA_EH_ENABLE_LINK = (1 << 3),
298 ATA_EH_LPM = (1 << 4), /* link power management action */
298 299
299 ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET, 300 ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
300 ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE, 301 ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE,
@@ -304,7 +305,6 @@ enum {
304 ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ 305 ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */
305 ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ 306 ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */
306 ATA_EHI_QUIET = (1 << 3), /* be quiet */ 307 ATA_EHI_QUIET = (1 << 3), /* be quiet */
307 ATA_EHI_LPM = (1 << 4), /* link power management action */
308 308
309 ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ 309 ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */
310 ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ 310 ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */
@@ -463,6 +463,7 @@ struct ata_queued_cmd {
463 unsigned int sect_size; 463 unsigned int sect_size;
464 464
465 unsigned int nbytes; 465 unsigned int nbytes;
466 unsigned int extrabytes;
466 unsigned int curbytes; 467 unsigned int curbytes;
467 468
468 struct scatterlist *cursg; 469 struct scatterlist *cursg;
@@ -1336,6 +1337,11 @@ static inline struct ata_queued_cmd *ata_qc_from_tag(struct ata_port *ap,
1336 return NULL; 1337 return NULL;
1337} 1338}
1338 1339
1340static inline unsigned int ata_qc_raw_nbytes(struct ata_queued_cmd *qc)
1341{
1342 return qc->nbytes - min(qc->extrabytes, qc->nbytes);
1343}
1344
1339static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf) 1345static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf)
1340{ 1346{
1341 memset(tf, 0, sizeof(*tf)); 1347 memset(tf, 0, sizeof(*tf));
@@ -1354,7 +1360,7 @@ static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
1354 qc->flags = 0; 1360 qc->flags = 0;
1355 qc->cursg = NULL; 1361 qc->cursg = NULL;
1356 qc->cursg_ofs = 0; 1362 qc->cursg_ofs = 0;
1357 qc->nbytes = qc->curbytes = 0; 1363 qc->nbytes = qc->extrabytes = qc->curbytes = 0;
1358 qc->n_elem = 0; 1364 qc->n_elem = 0;
1359 qc->err_mask = 0; 1365 qc->err_mask = 0;
1360 qc->sect_size = ATA_SECT_SIZE; 1366 qc->sect_size = ATA_SECT_SIZE;
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index b7ee25888836..3e686ec6a967 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -239,7 +239,6 @@ struct memstick_request {
239 unsigned char tpc; 239 unsigned char tpc;
240 unsigned char data_dir:1, 240 unsigned char data_dir:1,
241 need_card_int:1, 241 need_card_int:1,
242 get_int_reg:1,
243 long_data:1; 242 long_data:1;
244 unsigned char int_reg; 243 unsigned char int_reg;
245 int error; 244 int error;
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 3f3ccfe42de0..b695875d63e3 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -235,15 +235,22 @@ static inline int get_page_unless_zero(struct page *page)
235struct page *vmalloc_to_page(const void *addr); 235struct page *vmalloc_to_page(const void *addr);
236unsigned long vmalloc_to_pfn(const void *addr); 236unsigned long vmalloc_to_pfn(const void *addr);
237 237
238#ifdef CONFIG_MMU 238/*
239/* Determine if an address is within the vmalloc range */ 239 * Determine if an address is within the vmalloc range
240 *
241 * On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
242 * is no special casing required.
243 */
240static inline int is_vmalloc_addr(const void *x) 244static inline int is_vmalloc_addr(const void *x)
241{ 245{
246#ifdef CONFIG_MMU
242 unsigned long addr = (unsigned long)x; 247 unsigned long addr = (unsigned long)x;
243 248
244 return addr >= VMALLOC_START && addr < VMALLOC_END; 249 return addr >= VMALLOC_START && addr < VMALLOC_END;
245} 250#else
251 return 0;
246#endif 252#endif
253}
247 254
248static inline struct page *compound_head(struct page *page) 255static inline struct page *compound_head(struct page *page)
249{ 256{
diff --git a/include/linux/mount.h b/include/linux/mount.h
index 6d3047d8c91c..5ee2df217cdf 100644
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -61,6 +61,7 @@ struct vfsmount {
61 atomic_t mnt_count; 61 atomic_t mnt_count;
62 int mnt_expiry_mark; /* true if marked for expiry */ 62 int mnt_expiry_mark; /* true if marked for expiry */
63 int mnt_pinned; 63 int mnt_pinned;
64 int mnt_ghosts;
64}; 65};
65 66
66static inline struct vfsmount *mntget(struct vfsmount *mnt) 67static inline struct vfsmount *mntget(struct vfsmount *mnt)
@@ -98,7 +99,6 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
98 int mnt_flags, struct list_head *fslist); 99 int mnt_flags, struct list_head *fslist);
99 100
100extern void mark_mounts_for_expiry(struct list_head *mounts); 101extern void mark_mounts_for_expiry(struct list_head *mounts);
101extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts);
102 102
103extern spinlock_t vfsmount_lock; 103extern spinlock_t vfsmount_lock;
104extern dev_t name_to_dev_t(char *name); 104extern dev_t name_to_dev_t(char *name);
diff --git a/include/linux/netfilter/nfnetlink_compat.h b/include/linux/netfilter/nfnetlink_compat.h
index 02a42d875cf7..e1451760c9cd 100644
--- a/include/linux/netfilter/nfnetlink_compat.h
+++ b/include/linux/netfilter/nfnetlink_compat.h
@@ -1,6 +1,6 @@
1#ifndef _NFNETLINK_COMPAT_H 1#ifndef _NFNETLINK_COMPAT_H
2#define _NFNETLINK_COMPAT_H 2#define _NFNETLINK_COMPAT_H
3#ifndef __KERNEL 3#ifndef __KERNEL__
4/* Old nfnetlink macros for userspace */ 4/* Old nfnetlink macros for userspace */
5 5
6/* nfnetlink groups: Up to 32 maximum */ 6/* nfnetlink groups: Up to 32 maximum */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 38eff1947750..ea760e519c46 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -278,6 +278,7 @@ struct pci_bus {
278 struct device dev; 278 struct device dev;
279 struct bin_attribute *legacy_io; /* legacy I/O for this bus */ 279 struct bin_attribute *legacy_io; /* legacy I/O for this bus */
280 struct bin_attribute *legacy_mem; /* legacy mem */ 280 struct bin_attribute *legacy_mem; /* legacy mem */
281 unsigned int is_added:1;
281}; 282};
282 283
283#define pci_bus_b(n) list_entry(n, struct pci_bus, node) 284#define pci_bus_b(n) list_entry(n, struct pci_bus, node)
@@ -512,7 +513,6 @@ int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap);
512int pci_find_ext_capability(struct pci_dev *dev, int cap); 513int pci_find_ext_capability(struct pci_dev *dev, int cap);
513int pci_find_ht_capability(struct pci_dev *dev, int ht_cap); 514int pci_find_ht_capability(struct pci_dev *dev, int ht_cap);
514int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap); 515int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap);
515void pcie_wait_pending_transaction(struct pci_dev *dev);
516struct pci_bus *pci_find_next_bus(const struct pci_bus *from); 516struct pci_bus *pci_find_next_bus(const struct pci_bus *from);
517 517
518struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, 518struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device,
@@ -883,9 +883,6 @@ static inline int pci_find_ext_capability(struct pci_dev *dev, int cap)
883 return 0; 883 return 0;
884} 884}
885 885
886static inline void pcie_wait_pending_transaction(struct pci_dev *dev)
887{ }
888
889/* Power management related routines */ 886/* Power management related routines */
890static inline int pci_save_state(struct pci_dev *dev) 887static inline int pci_save_state(struct pci_dev *dev)
891{ 888{
@@ -1044,6 +1041,8 @@ void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen);
1044void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr); 1041void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr);
1045void __iomem * const *pcim_iomap_table(struct pci_dev *pdev); 1042void __iomem * const *pcim_iomap_table(struct pci_dev *pdev);
1046int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name); 1043int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name);
1044int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
1045 const char *name);
1047void pcim_iounmap_regions(struct pci_dev *pdev, u16 mask); 1046void pcim_iounmap_regions(struct pci_dev *pdev, u16 mask);
1048 1047
1049extern int pci_pci_problems; 1048extern int pci_pci_problems;
diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
index 28dfc61cf79e..99efbed81fa2 100644
--- a/include/linux/pkt_cls.h
+++ b/include/linux/pkt_cls.h
@@ -201,8 +201,8 @@ enum
201 201
202struct tc_u32_key 202struct tc_u32_key
203{ 203{
204 __u32 mask; 204 __be32 mask;
205 __u32 val; 205 __be32 val;
206 int off; 206 int off;
207 int offmask; 207 int offmask;
208}; 208};
@@ -213,12 +213,12 @@ struct tc_u32_sel
213 unsigned char offshift; 213 unsigned char offshift;
214 unsigned char nkeys; 214 unsigned char nkeys;
215 215
216 __u16 offmask; 216 __be16 offmask;
217 __u16 off; 217 __u16 off;
218 short offoff; 218 short offoff;
219 219
220 short hoff; 220 short hoff;
221 __u32 hmask; 221 __be32 hmask;
222 struct tc_u32_key keys[0]; 222 struct tc_u32_key keys[0];
223}; 223};
224 224
diff --git a/include/linux/pmu.h b/include/linux/pmu.h
index 4c5f65392d36..cafe98d96948 100644
--- a/include/linux/pmu.h
+++ b/include/linux/pmu.h
@@ -147,8 +147,15 @@ extern void pmu_wait_complete(struct adb_request *req);
147/* For use before switching interrupts off for a long time; 147/* For use before switching interrupts off for a long time;
148 * warning: not stackable 148 * warning: not stackable
149 */ 149 */
150#if defined(CONFIG_ADB_PMU)
150extern void pmu_suspend(void); 151extern void pmu_suspend(void);
151extern void pmu_resume(void); 152extern void pmu_resume(void);
153#else
154static inline void pmu_suspend(void)
155{}
156static inline void pmu_resume(void)
157{}
158#endif
152 159
153extern void pmu_enable_irled(int on); 160extern void pmu_enable_irled(int on);
154 161
@@ -192,7 +199,7 @@ extern unsigned int pmu_power_flags;
192extern void pmu_backlight_init(void); 199extern void pmu_backlight_init(void);
193 200
194/* some code needs to know if the PMU was suspended for hibernation */ 201/* some code needs to know if the PMU was suspended for hibernation */
195#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) 202#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
196extern int pmu_sys_suspended; 203extern int pmu_sys_suspended;
197#else 204#else
198/* if power management is not configured it can't be suspended */ 205/* if power management is not configured it can't be suspended */
diff --git a/include/linux/pnp.h b/include/linux/pnp.h
index cd6332b88829..29dd55838e84 100644
--- a/include/linux/pnp.h
+++ b/include/linux/pnp.h
@@ -14,7 +14,7 @@
14#include <linux/mod_devicetable.h> 14#include <linux/mod_devicetable.h>
15 15
16#define PNP_MAX_PORT 40 16#define PNP_MAX_PORT 40
17#define PNP_MAX_MEM 12 17#define PNP_MAX_MEM 24
18#define PNP_MAX_IRQ 2 18#define PNP_MAX_IRQ 2
19#define PNP_MAX_DMA 2 19#define PNP_MAX_DMA 2
20#define PNP_NAME_LEN 50 20#define PNP_NAME_LEN 50
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index d9a9e718ad19..9b6c935f69cf 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -50,8 +50,6 @@ typedef int (read_proc_t)(char *page, char **start, off_t off,
50typedef int (write_proc_t)(struct file *file, const char __user *buffer, 50typedef int (write_proc_t)(struct file *file, const char __user *buffer,
51 unsigned long count, void *data); 51 unsigned long count, void *data);
52typedef int (get_info_t)(char *, char **, off_t, int); 52typedef int (get_info_t)(char *, char **, off_t, int);
53typedef struct proc_dir_entry *(shadow_proc_t)(struct task_struct *task,
54 struct proc_dir_entry *pde);
55 53
56struct proc_dir_entry { 54struct proc_dir_entry {
57 unsigned int low_ino; 55 unsigned int low_ino;
@@ -82,7 +80,6 @@ struct proc_dir_entry {
82 int pde_users; /* number of callers into module in progress */ 80 int pde_users; /* number of callers into module in progress */
83 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ 81 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
84 struct completion *pde_unload_completion; 82 struct completion *pde_unload_completion;
85 shadow_proc_t *shadow_proc;
86}; 83};
87 84
88struct kcore_list { 85struct kcore_list {
diff --git a/include/linux/ps2esdi.h b/include/linux/ps2esdi.h
deleted file mode 100644
index c0e050b1dfe9..000000000000
--- a/include/linux/ps2esdi.h
+++ /dev/null
@@ -1,98 +0,0 @@
1#ifndef _PS2ESDI_H_
2#define _PS2ESDI_H_
3
4#define NRML_ESDI_ID 0xddff
5#define INTG_ESDI_ID 0xdf9f
6
7#define PRIMARY_IO_BASE 0x3510
8#define ALT_IO_BASE 0x3518
9
10#define ESDI_CMD_INT (io_base+0)
11#define ESDI_STT_INT (io_base+0)
12#define ESDI_CONTROL (io_base+2)
13#define ESDI_STATUS (io_base+2)
14#define ESDI_ATTN (io_base+3)
15#define ESDI_INTRPT (io_base+3)
16
17#define STATUS_ENABLED 0x01
18#define STATUS_ALTERNATE 0x02
19#define STATUS_BUSY 0x10
20#define STATUS_STAT_AVAIL 0x08
21#define STATUS_INTR 0x01
22#define STATUS_RESET_FAIL 0xea
23#define STATUS_CMD_INF 0x04
24
25#define CTRL_SOFT_RESET 0xe4
26#define CTRL_HARD_RESET 0x80
27#define CTRL_EOI 0xe2
28#define CTRL_ENABLE_DMA 0x02
29#define CTRL_ENABLE_INTR 0x01
30#define CTRL_DISABLE_INTR 0x00
31
32#define ATT_EOI 0x02
33
34/* bits of word 0 of configuration status block. more info see p.38 of tech ref */
35#define CONFIG_IS 0x10 /* Invalid Secondary */
36#define CONFIG_ZD 0x08 /* Zero Defect */
37#define CONFIG_SF 0x04 /* Skewed Format */
38#define CONFIG_FR 0x02 /* Removable */
39#define CONFIG_RT 0x01 /* Retries */
40
41#define PORT_SYS_A 0x92
42#define PORT_DMA_FN 0x18
43#define PORT_DMA_EX 0x1a
44
45#define ON (unsigned char)0x40
46#define OFF (unsigned char)~ON
47#define LITE_ON outb(inb(PORT_SYS_A) | ON,PORT_SYS_A)
48#define LITE_OFF outb((inb(PORT_SYS_A) & OFF),PORT_SYS_A)
49
50#define FAIL 0
51#define SUCCES 1
52
53#define INT_CMD_COMPLETE 0x01
54#define INT_CMD_ECC 0x03
55#define INT_CMD_RETRY 0x05
56#define INT_CMD_FORMAT 0x06
57#define INT_CMD_ECC_RETRY 0x07
58#define INT_CMD_WARNING 0x08
59#define INT_CMD_ABORT 0x09
60#define INT_RESET 0x0A
61#define INT_TRANSFER_REQ 0x0B
62#define INT_CMD_FAILED 0x0C
63#define INT_DMA_ERR 0x0D
64#define INT_CMD_BLK_ERR 0x0E
65#define INT_ATTN_ERROR 0x0F
66
67#define DMA_MASK_CHAN 0x90
68#define DMA_UNMASK_CHAN 0xA0
69#define DMA_WRITE_ADDR 0x20
70#define DMA_WRITE_TC 0x40
71#define DMA_WRITE_MODE 0x70
72
73#define CMD_GET_DEV_CONFIG 0x09
74#define CMD_READ 0x4601
75#define CMD_WRITE 0x4602
76#define DMA_READ_16 0x4C
77#define DMA_WRITE_16 0x44
78
79
80#define MB 1024*1024
81#define SECT_SIZE 512
82
83#define ERROR 1
84#define OK 0
85
86#define HDIO_GETGEO 0x0301
87
88#define FALSE 0
89#define TRUE !FALSE
90
91struct ps2esdi_geometry {
92 unsigned char heads;
93 unsigned char sectors;
94 unsigned short cylinders;
95 unsigned long start;
96};
97
98#endif /* _PS2ESDI_H_ */
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h
index 01152ed532c8..d038aa6e5ee1 100644
--- a/include/linux/rcupreempt.h
+++ b/include/linux/rcupreempt.h
@@ -87,15 +87,15 @@ DECLARE_PER_CPU(long, dynticks_progress_counter);
87 87
88static inline void rcu_enter_nohz(void) 88static inline void rcu_enter_nohz(void)
89{ 89{
90 smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */
90 __get_cpu_var(dynticks_progress_counter)++; 91 __get_cpu_var(dynticks_progress_counter)++;
91 WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); 92 WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
92 mb();
93} 93}
94 94
95static inline void rcu_exit_nohz(void) 95static inline void rcu_exit_nohz(void)
96{ 96{
97 mb();
98 __get_cpu_var(dynticks_progress_counter)++; 97 __get_cpu_var(dynticks_progress_counter)++;
98 smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */
99 WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); 99 WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
100} 100}
101 101
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 11d8e9a74eff..6a1e7afb099b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -790,6 +790,7 @@ struct sched_domain {
790}; 790};
791 791
792extern void partition_sched_domains(int ndoms_new, cpumask_t *doms_new); 792extern void partition_sched_domains(int ndoms_new, cpumask_t *doms_new);
793extern int arch_reinit_sched_domains(void);
793 794
794#endif /* CONFIG_SMP */ 795#endif /* CONFIG_SMP */
795 796
@@ -929,6 +930,9 @@ struct sched_entity {
929 u64 vruntime; 930 u64 vruntime;
930 u64 prev_sum_exec_runtime; 931 u64 prev_sum_exec_runtime;
931 932
933 u64 last_wakeup;
934 u64 avg_overlap;
935
932#ifdef CONFIG_SCHEDSTATS 936#ifdef CONFIG_SCHEDSTATS
933 u64 wait_start; 937 u64 wait_start;
934 u64 wait_max; 938 u64 wait_max;
@@ -1537,6 +1541,12 @@ static inline void idle_task_exit(void) {}
1537 1541
1538extern void sched_idle_next(void); 1542extern void sched_idle_next(void);
1539 1543
1544#if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP)
1545extern void wake_up_idle_cpu(int cpu);
1546#else
1547static inline void wake_up_idle_cpu(int cpu) { }
1548#endif
1549
1540#ifdef CONFIG_SCHED_DEBUG 1550#ifdef CONFIG_SCHED_DEBUG
1541extern unsigned int sysctl_sched_latency; 1551extern unsigned int sysctl_sched_latency;
1542extern unsigned int sysctl_sched_min_granularity; 1552extern unsigned int sysctl_sched_min_granularity;
diff --git a/include/linux/security.h b/include/linux/security.h
index b07357ca2137..c673dfd4dffc 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -57,7 +57,6 @@ extern int cap_inode_need_killpriv(struct dentry *dentry);
57extern int cap_inode_killpriv(struct dentry *dentry); 57extern int cap_inode_killpriv(struct dentry *dentry);
58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); 58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags);
59extern void cap_task_reparent_to_init (struct task_struct *p); 59extern void cap_task_reparent_to_init (struct task_struct *p);
60extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid);
61extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); 60extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp);
62extern int cap_task_setioprio (struct task_struct *p, int ioprio); 61extern int cap_task_setioprio (struct task_struct *p, int ioprio);
63extern int cap_task_setnice (struct task_struct *p, int nice); 62extern int cap_task_setnice (struct task_struct *p, int nice);
@@ -2187,7 +2186,7 @@ static inline int security_task_kill (struct task_struct *p,
2187 struct siginfo *info, int sig, 2186 struct siginfo *info, int sig,
2188 u32 secid) 2187 u32 secid)
2189{ 2188{
2190 return cap_task_kill(p, info, sig, secid); 2189 return 0;
2191} 2190}
2192 2191
2193static inline int security_task_wait (struct task_struct *p) 2192static inline int security_task_wait (struct task_struct *p)
diff --git a/include/linux/topology.h b/include/linux/topology.h
index 2352f46160d3..bd14f8b30f09 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h
@@ -50,6 +50,8 @@
50 for_each_online_node(node) \ 50 for_each_online_node(node) \
51 if (nr_cpus_node(node)) 51 if (nr_cpus_node(node))
52 52
53void arch_update_cpu_topology(void);
54
53/* Conform to ACPI 2.0 SLIT distance definitions */ 55/* Conform to ACPI 2.0 SLIT distance definitions */
54#define LOCAL_DISTANCE 10 56#define LOCAL_DISTANCE 10
55#define REMOTE_DISTANCE 20 57#define REMOTE_DISTANCE 20
@@ -138,7 +140,6 @@
138 | SD_BALANCE_FORK \ 140 | SD_BALANCE_FORK \
139 | SD_BALANCE_EXEC \ 141 | SD_BALANCE_EXEC \
140 | SD_WAKE_AFFINE \ 142 | SD_WAKE_AFFINE \
141 | SD_WAKE_IDLE \
142 | SD_SHARE_PKG_RESOURCES\ 143 | SD_SHARE_PKG_RESOURCES\
143 | BALANCE_FOR_MC_POWER, \ 144 | BALANCE_FOR_MC_POWER, \
144 .last_balance = jiffies, \ 145 .last_balance = jiffies, \
diff --git a/include/linux/usb/quirks.h b/include/linux/usb/quirks.h
index 2692ec9389ca..1f999ec8d08c 100644
--- a/include/linux/usb/quirks.h
+++ b/include/linux/usb/quirks.h
@@ -9,3 +9,6 @@
9 9
10/* device can't resume correctly so reset it instead */ 10/* device can't resume correctly so reset it instead */
11#define USB_QUIRK_RESET_RESUME 0x00000002 11#define USB_QUIRK_RESET_RESUME 0x00000002
12
13/* device can't handle Set-Interface requests */
14#define USB_QUIRK_NO_SET_INTF 0x00000004
diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h
index cee0623b3c7b..0a40dfa44c9f 100644
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -50,7 +50,9 @@
50 US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \ 50 US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \
51 /* sometimes sizes is too big */ \ 51 /* sometimes sizes is too big */ \
52 US_FLAG(MAX_SECTORS_MIN,0x00002000) \ 52 US_FLAG(MAX_SECTORS_MIN,0x00002000) \
53 /* Sets max_sectors to arch min */ 53 /* Sets max_sectors to arch min */ \
54 US_FLAG(BULK_IGNORE_TAG,0x00004000) \
55 /* Ignore tag mismatch in bulk operations */
54 56
55 57
56#define US_FLAG(name, value) US_FL_##name = value , 58#define US_FLAG(name, value) US_FL_##name = value ,
diff --git a/include/linux/virtio.h b/include/linux/virtio.h
index 260d1fcf29a4..12c18ac1b973 100644
--- a/include/linux/virtio.h
+++ b/include/linux/virtio.h
@@ -43,8 +43,9 @@ struct virtqueue
43 * vq: the struct virtqueue we're talking about. 43 * vq: the struct virtqueue we're talking about.
44 * @enable_cb: restart callbacks after disable_cb. 44 * @enable_cb: restart callbacks after disable_cb.
45 * vq: the struct virtqueue we're talking about. 45 * vq: the struct virtqueue we're talking about.
46 * This returns "false" (and doesn't re-enable) if there are pending 46 * This re-enables callbacks; it returns "false" if there are pending
47 * buffers in the queue, to avoid a race. 47 * buffers in the queue, to detect a possible race between the driver
48 * checking for more work, and enabling callbacks.
48 * 49 *
49 * Locking rules are straightforward: the driver is responsible for 50 * Locking rules are straightforward: the driver is responsible for
50 * locking. No two operations may be invoked simultaneously. 51 * locking. No two operations may be invoked simultaneously.
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index 771d17783c18..750648df13f4 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -170,7 +170,7 @@ static inline int skb_frags_no(struct sk_buff *skb)
170int bt_err(__u16 code); 170int bt_err(__u16 code);
171 171
172extern int hci_sock_init(void); 172extern int hci_sock_init(void);
173extern int hci_sock_cleanup(void); 173extern void hci_sock_cleanup(void);
174 174
175extern int bt_sysfs_init(void); 175extern int bt_sysfs_init(void);
176extern void bt_sysfs_cleanup(void); 176extern void bt_sysfs_cleanup(void);
diff --git a/include/net/dst.h b/include/net/dst.h
index e3ac7d0fc4e1..ae13370e8484 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -52,15 +52,10 @@ struct dst_entry
52 unsigned short header_len; /* more space at head required */ 52 unsigned short header_len; /* more space at head required */
53 unsigned short trailer_len; /* space to reserve at tail */ 53 unsigned short trailer_len; /* space to reserve at tail */
54 54
55 u32 metrics[RTAX_MAX];
56 struct dst_entry *path;
57
58 unsigned long rate_last; /* rate limiting for ICMP */
59 unsigned int rate_tokens; 55 unsigned int rate_tokens;
56 unsigned long rate_last; /* rate limiting for ICMP */
60 57
61#ifdef CONFIG_NET_CLS_ROUTE 58 struct dst_entry *path;
62 __u32 tclassid;
63#endif
64 59
65 struct neighbour *neighbour; 60 struct neighbour *neighbour;
66 struct hh_cache *hh; 61 struct hh_cache *hh;
@@ -70,10 +65,20 @@ struct dst_entry
70 int (*output)(struct sk_buff*); 65 int (*output)(struct sk_buff*);
71 66
72 struct dst_ops *ops; 67 struct dst_ops *ops;
73 68
74 unsigned long lastuse; 69 u32 metrics[RTAX_MAX];
70
71#ifdef CONFIG_NET_CLS_ROUTE
72 __u32 tclassid;
73#endif
74
75 /*
76 * __refcnt wants to be on a different cache line from
77 * input/output/ops or performance tanks badly
78 */
75 atomic_t __refcnt; /* client references */ 79 atomic_t __refcnt; /* client references */
76 int __use; 80 int __use;
81 unsigned long lastuse;
77 union { 82 union {
78 struct dst_entry *next; 83 struct dst_entry *next;
79 struct rtable *rt_next; 84 struct rtable *rt_next;
diff --git a/include/net/irda/irttp.h b/include/net/irda/irttp.h
index 32c385dd9e06..0788c23d2828 100644
--- a/include/net/irda/irttp.h
+++ b/include/net/irda/irttp.h
@@ -169,17 +169,17 @@ int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *skb,
169void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow); 169void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow);
170struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance); 170struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance);
171 171
172static __inline __u32 irttp_get_saddr(struct tsap_cb *self) 172static inline __u32 irttp_get_saddr(struct tsap_cb *self)
173{ 173{
174 return irlmp_get_saddr(self->lsap); 174 return irlmp_get_saddr(self->lsap);
175} 175}
176 176
177static __inline __u32 irttp_get_daddr(struct tsap_cb *self) 177static inline __u32 irttp_get_daddr(struct tsap_cb *self)
178{ 178{
179 return irlmp_get_daddr(self->lsap); 179 return irlmp_get_daddr(self->lsap);
180} 180}
181 181
182static __inline __u32 irttp_get_max_seg_size(struct tsap_cb *self) 182static inline __u32 irttp_get_max_seg_size(struct tsap_cb *self)
183{ 183{
184 return self->max_seg_size; 184 return self->max_seg_size;
185} 185}
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index ebbfb509822e..64a5f0120b52 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -218,6 +218,10 @@ extern unsigned long neigh_rand_reach_time(unsigned long base);
218extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, 218extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p,
219 struct sk_buff *skb); 219 struct sk_buff *skb);
220extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat); 220extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat);
221extern struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl,
222 struct net *net,
223 const void *key,
224 struct net_device *dev);
221extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev); 225extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev);
222 226
223extern void neigh_app_ns(struct neighbour *n); 227extern void neigh_app_ns(struct neighbour *n);
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index 28738b7d53eb..923f2b8b9096 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -31,7 +31,6 @@ struct net {
31 31
32 struct proc_dir_entry *proc_net; 32 struct proc_dir_entry *proc_net;
33 struct proc_dir_entry *proc_net_stat; 33 struct proc_dir_entry *proc_net_stat;
34 struct proc_dir_entry *proc_net_root;
35 34
36 struct list_head sysctl_table_headers; 35 struct list_head sysctl_table_headers;
37 36
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index 49aac6323fbe..f736e842977f 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -17,7 +17,6 @@ enum nf_ct_ext_id
17struct nf_ct_ext { 17struct nf_ct_ext {
18 u8 offset[NF_CT_EXT_NUM]; 18 u8 offset[NF_CT_EXT_NUM];
19 u8 len; 19 u8 len;
20 u8 real_len;
21 char data[0]; 20 char data[0];
22}; 21};
23 22
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 57df27f19588..ea806732b084 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -380,15 +380,19 @@ static inline int sctp_sysctl_jiffies_ms(ctl_table *table, int __user *name, int
380 380
381#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) 381#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
382 382
383int sctp_v6_init(void); 383void sctp_v6_pf_init(void);
384void sctp_v6_exit(void); 384void sctp_v6_pf_exit(void);
385int sctp_v6_protosw_init(void);
386void sctp_v6_protosw_exit(void);
385int sctp_v6_add_protocol(void); 387int sctp_v6_add_protocol(void);
386void sctp_v6_del_protocol(void); 388void sctp_v6_del_protocol(void);
387 389
388#else /* #ifdef defined(CONFIG_IPV6) */ 390#else /* #ifdef defined(CONFIG_IPV6) */
389 391
390static inline int sctp_v6_init(void) { return 0; } 392static inline void sctp_v6_pf_init(void) { return; }
391static inline void sctp_v6_exit(void) { return; } 393static inline void sctp_v6_pf_exit(void) { return; }
394static inline int sctp_v6_protosw_init(void) { return 0; }
395static inline void sctp_v6_protosw_exit(void) { return; }
392static inline int sctp_v6_add_protocol(void) { return 0; } 396static inline int sctp_v6_add_protocol(void) { return 0; }
393static inline void sctp_v6_del_protocol(void) { return; } 397static inline void sctp_v6_del_protocol(void) { return; }
394 398
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index eea7785cc757..0d255ae008b6 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -204,6 +204,7 @@ struct xfrm_state
204 * transformer. */ 204 * transformer. */
205 const struct xfrm_type *type; 205 const struct xfrm_type *type;
206 struct xfrm_mode *inner_mode; 206 struct xfrm_mode *inner_mode;
207 struct xfrm_mode *inner_mode_iaf;
207 struct xfrm_mode *outer_mode; 208 struct xfrm_mode *outer_mode;
208 209
209 /* Security context */ 210 /* Security context */
@@ -277,7 +278,7 @@ extern int __xfrm_state_delete(struct xfrm_state *x);
277struct xfrm_state_afinfo { 278struct xfrm_state_afinfo {
278 unsigned int family; 279 unsigned int family;
279 unsigned int proto; 280 unsigned int proto;
280 unsigned int eth_proto; 281 __be16 eth_proto;
281 struct module *owner; 282 struct module *owner;
282 const struct xfrm_type *type_map[IPPROTO_MAX]; 283 const struct xfrm_type *type_map[IPPROTO_MAX];
283 struct xfrm_mode *mode_map[XFRM_MODE_MAX]; 284 struct xfrm_mode *mode_map[XFRM_MODE_MAX];
@@ -387,6 +388,27 @@ enum {
387extern int xfrm_register_mode(struct xfrm_mode *mode, int family); 388extern int xfrm_register_mode(struct xfrm_mode *mode, int family);
388extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family); 389extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family);
389 390
391static inline int xfrm_af2proto(unsigned int family)
392{
393 switch(family) {
394 case AF_INET:
395 return IPPROTO_IPIP;
396 case AF_INET6:
397 return IPPROTO_IPV6;
398 default:
399 return 0;
400 }
401}
402
403static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipproto)
404{
405 if ((ipproto == IPPROTO_IPIP && x->props.family == AF_INET) ||
406 (ipproto == IPPROTO_IPV6 && x->props.family == AF_INET6))
407 return x->inner_mode;
408 else
409 return x->inner_mode_iaf;
410}
411
390struct xfrm_tmpl 412struct xfrm_tmpl
391{ 413{
392/* id in template is interpreted as: 414/* id in template is interpreted as:
@@ -530,6 +552,9 @@ struct xfrm_mode_skb_cb {
530 __be16 id; 552 __be16 id;
531 __be16 frag_off; 553 __be16 frag_off;
532 554
555 /* IP header length (excluding options or extension headers). */
556 u8 ihl;
557
533 /* TOS for IPv4, class for IPv6. */ 558 /* TOS for IPv4, class for IPv6. */
534 u8 tos; 559 u8 tos;
535 560
@@ -539,6 +564,9 @@ struct xfrm_mode_skb_cb {
539 /* Protocol for IPv4, NH for IPv6. */ 564 /* Protocol for IPv4, NH for IPv6. */
540 u8 protocol; 565 u8 protocol;
541 566
567 /* Option length for IPv4, zero for IPv6. */
568 u8 optlen;
569
542 /* Used by IPv6 only, zero for IPv4. */ 570 /* Used by IPv6 only, zero for IPv4. */
543 u8 flow_lbl[3]; 571 u8 flow_lbl[3];
544}; 572};
@@ -1253,6 +1281,7 @@ extern int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi,
1253extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr); 1281extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr);
1254extern int xfrm_output_resume(struct sk_buff *skb, int err); 1282extern int xfrm_output_resume(struct sk_buff *skb, int err);
1255extern int xfrm_output(struct sk_buff *skb); 1283extern int xfrm_output(struct sk_buff *skb);
1284extern int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb);
1256extern int xfrm4_extract_header(struct sk_buff *skb); 1285extern int xfrm4_extract_header(struct sk_buff *skb);
1257extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb); 1286extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
1258extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi, 1287extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi,
diff --git a/init/initramfs.c b/init/initramfs.c
index c0b1e0533d80..d53fee8d8604 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -538,7 +538,7 @@ skip:
538 initrd_end = 0; 538 initrd_end = 0;
539} 539}
540 540
541int __init populate_rootfs(void) 541static int __init populate_rootfs(void)
542{ 542{
543 char *err = unpack_to_rootfs(__initramfs_start, 543 char *err = unpack_to_rootfs(__initramfs_start,
544 __initramfs_end - __initramfs_start, 0); 544 __initramfs_end - __initramfs_start, 0);
@@ -577,10 +577,4 @@ int __init populate_rootfs(void)
577 } 577 }
578 return 0; 578 return 0;
579} 579}
580#ifndef CONFIG_ACPI_CUSTOM_DSDT_INITRD
581/*
582 * if this option is enabled, populate_rootfs() is called _earlier_ in the
583 * boot sequence. This insures that the ACPI initialisation can find the file.
584 */
585rootfs_initcall(populate_rootfs); 580rootfs_initcall(populate_rootfs);
586#endif
diff --git a/init/main.c b/init/main.c
index fbb0167c6b8a..99ce94930b09 100644
--- a/init/main.c
+++ b/init/main.c
@@ -102,12 +102,6 @@ static inline void mark_rodata_ro(void) { }
102extern void tc_init(void); 102extern void tc_init(void);
103#endif 103#endif
104 104
105#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
106extern int populate_rootfs(void);
107#else
108static inline void populate_rootfs(void) {}
109#endif
110
111enum system_states system_state; 105enum system_states system_state;
112EXPORT_SYMBOL(system_state); 106EXPORT_SYMBOL(system_state);
113 107
@@ -650,7 +644,6 @@ asmlinkage void __init start_kernel(void)
650 644
651 check_bugs(); 645 check_bugs();
652 646
653 populate_rootfs(); /* For DSDT override from initramfs */
654 acpi_early_init(); /* before LAPIC and SMP init */ 647 acpi_early_init(); /* before LAPIC and SMP init */
655 648
656 /* Do the rest non-__init'ed, we're now alive */ 649 /* Do the rest non-__init'ed, we're now alive */
diff --git a/kernel/acct.c b/kernel/acct.c
index 521dfa53cb99..91e1cfd734d2 100644
--- a/kernel/acct.c
+++ b/kernel/acct.c
@@ -58,6 +58,7 @@
58#include <asm/uaccess.h> 58#include <asm/uaccess.h>
59#include <asm/div64.h> 59#include <asm/div64.h>
60#include <linux/blkdev.h> /* sector_div */ 60#include <linux/blkdev.h> /* sector_div */
61#include <linux/pid_namespace.h>
61 62
62/* 63/*
63 * These constants control the amount of freespace that suspend and 64 * These constants control the amount of freespace that suspend and
@@ -74,7 +75,7 @@ int acct_parm[3] = {4, 2, 30};
74/* 75/*
75 * External references and all of the globals. 76 * External references and all of the globals.
76 */ 77 */
77static void do_acct_process(struct file *); 78static void do_acct_process(struct pid_namespace *ns, struct file *);
78 79
79/* 80/*
80 * This structure is used so that all the data protected by lock 81 * This structure is used so that all the data protected by lock
@@ -86,6 +87,7 @@ struct acct_glbs {
86 volatile int active; 87 volatile int active;
87 volatile int needcheck; 88 volatile int needcheck;
88 struct file *file; 89 struct file *file;
90 struct pid_namespace *ns;
89 struct timer_list timer; 91 struct timer_list timer;
90}; 92};
91 93
@@ -175,9 +177,11 @@ out:
175static void acct_file_reopen(struct file *file) 177static void acct_file_reopen(struct file *file)
176{ 178{
177 struct file *old_acct = NULL; 179 struct file *old_acct = NULL;
180 struct pid_namespace *old_ns = NULL;
178 181
179 if (acct_globals.file) { 182 if (acct_globals.file) {
180 old_acct = acct_globals.file; 183 old_acct = acct_globals.file;
184 old_ns = acct_globals.ns;
181 del_timer(&acct_globals.timer); 185 del_timer(&acct_globals.timer);
182 acct_globals.active = 0; 186 acct_globals.active = 0;
183 acct_globals.needcheck = 0; 187 acct_globals.needcheck = 0;
@@ -185,6 +189,7 @@ static void acct_file_reopen(struct file *file)
185 } 189 }
186 if (file) { 190 if (file) {
187 acct_globals.file = file; 191 acct_globals.file = file;
192 acct_globals.ns = get_pid_ns(task_active_pid_ns(current));
188 acct_globals.needcheck = 0; 193 acct_globals.needcheck = 0;
189 acct_globals.active = 1; 194 acct_globals.active = 1;
190 /* It's been deleted if it was used before so this is safe */ 195 /* It's been deleted if it was used before so this is safe */
@@ -196,8 +201,9 @@ static void acct_file_reopen(struct file *file)
196 if (old_acct) { 201 if (old_acct) {
197 mnt_unpin(old_acct->f_path.mnt); 202 mnt_unpin(old_acct->f_path.mnt);
198 spin_unlock(&acct_globals.lock); 203 spin_unlock(&acct_globals.lock);
199 do_acct_process(old_acct); 204 do_acct_process(old_ns, old_acct);
200 filp_close(old_acct, NULL); 205 filp_close(old_acct, NULL);
206 put_pid_ns(old_ns);
201 spin_lock(&acct_globals.lock); 207 spin_lock(&acct_globals.lock);
202 } 208 }
203} 209}
@@ -419,7 +425,7 @@ static u32 encode_float(u64 value)
419/* 425/*
420 * do_acct_process does all actual work. Caller holds the reference to file. 426 * do_acct_process does all actual work. Caller holds the reference to file.
421 */ 427 */
422static void do_acct_process(struct file *file) 428static void do_acct_process(struct pid_namespace *ns, struct file *file)
423{ 429{
424 struct pacct_struct *pacct = &current->signal->pacct; 430 struct pacct_struct *pacct = &current->signal->pacct;
425 acct_t ac; 431 acct_t ac;
@@ -481,8 +487,10 @@ static void do_acct_process(struct file *file)
481 ac.ac_gid16 = current->gid; 487 ac.ac_gid16 = current->gid;
482#endif 488#endif
483#if ACCT_VERSION==3 489#if ACCT_VERSION==3
484 ac.ac_pid = current->tgid; 490 ac.ac_pid = task_tgid_nr_ns(current, ns);
485 ac.ac_ppid = current->real_parent->tgid; 491 rcu_read_lock();
492 ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent), ns);
493 rcu_read_unlock();
486#endif 494#endif
487 495
488 spin_lock_irq(&current->sighand->siglock); 496 spin_lock_irq(&current->sighand->siglock);
@@ -578,6 +586,7 @@ void acct_collect(long exitcode, int group_dead)
578void acct_process(void) 586void acct_process(void)
579{ 587{
580 struct file *file = NULL; 588 struct file *file = NULL;
589 struct pid_namespace *ns;
581 590
582 /* 591 /*
583 * accelerate the common fastpath: 592 * accelerate the common fastpath:
@@ -592,8 +601,10 @@ void acct_process(void)
592 return; 601 return;
593 } 602 }
594 get_file(file); 603 get_file(file);
604 ns = get_pid_ns(acct_globals.ns);
595 spin_unlock(&acct_globals.lock); 605 spin_unlock(&acct_globals.lock);
596 606
597 do_acct_process(file); 607 do_acct_process(ns, file);
598 fput(file); 608 fput(file);
609 put_pid_ns(ns);
599} 610}
diff --git a/kernel/audit.c b/kernel/audit.c
index 10c4930c2bbf..b782b046543d 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -78,9 +78,13 @@ static int audit_default;
78/* If auditing cannot proceed, audit_failure selects what happens. */ 78/* If auditing cannot proceed, audit_failure selects what happens. */
79static int audit_failure = AUDIT_FAIL_PRINTK; 79static int audit_failure = AUDIT_FAIL_PRINTK;
80 80
81/* If audit records are to be written to the netlink socket, audit_pid 81/*
82 * contains the (non-zero) pid. */ 82 * If audit records are to be written to the netlink socket, audit_pid
83 * contains the pid of the auditd process and audit_nlk_pid contains
84 * the pid to use to send netlink messages to that process.
85 */
83int audit_pid; 86int audit_pid;
87static int audit_nlk_pid;
84 88
85/* If audit_rate_limit is non-zero, limit the rate of sending audit records 89/* If audit_rate_limit is non-zero, limit the rate of sending audit records
86 * to that number per second. This prevents DoS attacks, but results in 90 * to that number per second. This prevents DoS attacks, but results in
@@ -350,7 +354,7 @@ static int kauditd_thread(void *dummy)
350 wake_up(&audit_backlog_wait); 354 wake_up(&audit_backlog_wait);
351 if (skb) { 355 if (skb) {
352 if (audit_pid) { 356 if (audit_pid) {
353 int err = netlink_unicast(audit_sock, skb, audit_pid, 0); 357 int err = netlink_unicast(audit_sock, skb, audit_nlk_pid, 0);
354 if (err < 0) { 358 if (err < 0) {
355 BUG_ON(err != -ECONNREFUSED); /* Shoudn't happen */ 359 BUG_ON(err != -ECONNREFUSED); /* Shoudn't happen */
356 printk(KERN_ERR "audit: *NO* daemon at audit_pid=%d\n", audit_pid); 360 printk(KERN_ERR "audit: *NO* daemon at audit_pid=%d\n", audit_pid);
@@ -626,6 +630,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
626 sid, 1); 630 sid, 1);
627 631
628 audit_pid = new_pid; 632 audit_pid = new_pid;
633 audit_nlk_pid = NETLINK_CB(skb).pid;
629 } 634 }
630 if (status_get->mask & AUDIT_STATUS_RATE_LIMIT) 635 if (status_get->mask & AUDIT_STATUS_RATE_LIMIT)
631 err = audit_set_rate_limit(status_get->rate_limit, 636 err = audit_set_rate_limit(status_get->rate_limit,
@@ -1264,8 +1269,8 @@ static void audit_log_n_string(struct audit_buffer *ab, size_t slen,
1264 1269
1265/** 1270/**
1266 * audit_string_contains_control - does a string need to be logged in hex 1271 * audit_string_contains_control - does a string need to be logged in hex
1267 * @string - string to be checked 1272 * @string: string to be checked
1268 * @len - max length of the string to check 1273 * @len: max length of the string to check
1269 */ 1274 */
1270int audit_string_contains_control(const char *string, size_t len) 1275int audit_string_contains_control(const char *string, size_t len)
1271{ 1276{
@@ -1280,7 +1285,7 @@ int audit_string_contains_control(const char *string, size_t len)
1280/** 1285/**
1281 * audit_log_n_untrustedstring - log a string that may contain random characters 1286 * audit_log_n_untrustedstring - log a string that may contain random characters
1282 * @ab: audit_buffer 1287 * @ab: audit_buffer
1283 * @len: lenth of string (not including trailing null) 1288 * @len: length of string (not including trailing null)
1284 * @string: string to be logged 1289 * @string: string to be logged
1285 * 1290 *
1286 * This code will escape a string that is passed to it if the string 1291 * This code will escape a string that is passed to it if the string
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index e9c2fb01e89b..53d86b4b0ce0 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -2082,7 +2082,7 @@ static int cgroup_tasks_open(struct inode *unused, struct file *file)
2082 2082
2083 kfree(pidarray); 2083 kfree(pidarray);
2084 } else { 2084 } else {
2085 ctr->buf = 0; 2085 ctr->buf = NULL;
2086 ctr->bufsz = 0; 2086 ctr->bufsz = 0;
2087 } 2087 }
2088 file->private_data = ctr; 2088 file->private_data = ctr;
@@ -2614,7 +2614,7 @@ static int proc_cgroupstats_show(struct seq_file *m, void *v)
2614 2614
2615static int cgroupstats_open(struct inode *inode, struct file *file) 2615static int cgroupstats_open(struct inode *inode, struct file *file)
2616{ 2616{
2617 return single_open(file, proc_cgroupstats_show, 0); 2617 return single_open(file, proc_cgroupstats_show, NULL);
2618} 2618}
2619 2619
2620static struct file_operations proc_cgroupstats_operations = { 2620static struct file_operations proc_cgroupstats_operations = {
diff --git a/kernel/fork.c b/kernel/fork.c
index dd249c37b3a3..9c042f901570 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -394,7 +394,6 @@ void __mmdrop(struct mm_struct *mm)
394{ 394{
395 BUG_ON(mm == &init_mm); 395 BUG_ON(mm == &init_mm);
396 mm_free_pgd(mm); 396 mm_free_pgd(mm);
397 mm_free_cgroup(mm);
398 destroy_context(mm); 397 destroy_context(mm);
399 free_mm(mm); 398 free_mm(mm);
400} 399}
@@ -416,6 +415,7 @@ void mmput(struct mm_struct *mm)
416 spin_unlock(&mmlist_lock); 415 spin_unlock(&mmlist_lock);
417 } 416 }
418 put_swap_token(mm); 417 put_swap_token(mm);
418 mm_free_cgroup(mm);
419 mmdrop(mm); 419 mmdrop(mm);
420 } 420 }
421} 421}
diff --git a/kernel/futex.c b/kernel/futex.c
index 06968cd79200..e43945e995f5 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -281,7 +281,7 @@ static int get_futex_key(u32 __user *uaddr, struct rw_semaphore *fshared,
281 */ 281 */
282static void get_futex_key_refs(union futex_key *key) 282static void get_futex_key_refs(union futex_key *key)
283{ 283{
284 if (key->both.ptr == 0) 284 if (key->both.ptr == NULL)
285 return; 285 return;
286 switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) { 286 switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) {
287 case FUT_OFF_INODE: 287 case FUT_OFF_INODE:
@@ -2158,7 +2158,7 @@ static struct file_system_type futex_fs_type = {
2158 .kill_sb = kill_anon_super, 2158 .kill_sb = kill_anon_super,
2159}; 2159};
2160 2160
2161static int __init init(void) 2161static int __init futex_init(void)
2162{ 2162{
2163 u32 curval; 2163 u32 curval;
2164 int i; 2164 int i;
@@ -2194,4 +2194,4 @@ static int __init init(void)
2194 2194
2195 return 0; 2195 return 0;
2196} 2196}
2197__initcall(init); 2197__initcall(futex_init);
diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
index ff90f049f8f6..04ac3a9e42cf 100644
--- a/kernel/futex_compat.c
+++ b/kernel/futex_compat.c
@@ -30,7 +30,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
30 return 0; 30 return 0;
31} 31}
32 32
33static void __user *futex_uaddr(struct robust_list *entry, 33static void __user *futex_uaddr(struct robust_list __user *entry,
34 compat_long_t futex_offset) 34 compat_long_t futex_offset)
35{ 35{
36 compat_uptr_t base = ptr_to_compat(entry); 36 compat_uptr_t base = ptr_to_compat(entry);
diff --git a/kernel/marker.c b/kernel/marker.c
index 48a4ea5afffd..041c33e3e95c 100644
--- a/kernel/marker.c
+++ b/kernel/marker.c
@@ -104,18 +104,18 @@ void marker_probe_cb(const struct marker *mdata, void *call_private,
104 char ptype; 104 char ptype;
105 105
106 /* 106 /*
107 * disabling preemption to make sure the teardown of the callbacks can 107 * preempt_disable does two things : disabling preemption to make sure
108 * be done correctly when they are in modules and they insure RCU read 108 * the teardown of the callbacks can be done correctly when they are in
109 * coherency. 109 * modules and they insure RCU read coherency.
110 */ 110 */
111 preempt_disable(); 111 preempt_disable();
112 ptype = ACCESS_ONCE(mdata->ptype); 112 ptype = mdata->ptype;
113 if (likely(!ptype)) { 113 if (likely(!ptype)) {
114 marker_probe_func *func; 114 marker_probe_func *func;
115 /* Must read the ptype before ptr. They are not data dependant, 115 /* Must read the ptype before ptr. They are not data dependant,
116 * so we put an explicit smp_rmb() here. */ 116 * so we put an explicit smp_rmb() here. */
117 smp_rmb(); 117 smp_rmb();
118 func = ACCESS_ONCE(mdata->single.func); 118 func = mdata->single.func;
119 /* Must read the ptr before private data. They are not data 119 /* Must read the ptr before private data. They are not data
120 * dependant, so we put an explicit smp_rmb() here. */ 120 * dependant, so we put an explicit smp_rmb() here. */
121 smp_rmb(); 121 smp_rmb();
@@ -133,7 +133,7 @@ void marker_probe_cb(const struct marker *mdata, void *call_private,
133 * in the fast path, so put the explicit barrier here. 133 * in the fast path, so put the explicit barrier here.
134 */ 134 */
135 smp_read_barrier_depends(); 135 smp_read_barrier_depends();
136 multi = ACCESS_ONCE(mdata->multi); 136 multi = mdata->multi;
137 for (i = 0; multi[i].func; i++) { 137 for (i = 0; multi[i].func; i++) {
138 va_start(args, fmt); 138 va_start(args, fmt);
139 multi[i].func(multi[i].probe_private, call_private, fmt, 139 multi[i].func(multi[i].probe_private, call_private, fmt,
@@ -161,13 +161,13 @@ void marker_probe_cb_noarg(const struct marker *mdata,
161 char ptype; 161 char ptype;
162 162
163 preempt_disable(); 163 preempt_disable();
164 ptype = ACCESS_ONCE(mdata->ptype); 164 ptype = mdata->ptype;
165 if (likely(!ptype)) { 165 if (likely(!ptype)) {
166 marker_probe_func *func; 166 marker_probe_func *func;
167 /* Must read the ptype before ptr. They are not data dependant, 167 /* Must read the ptype before ptr. They are not data dependant,
168 * so we put an explicit smp_rmb() here. */ 168 * so we put an explicit smp_rmb() here. */
169 smp_rmb(); 169 smp_rmb();
170 func = ACCESS_ONCE(mdata->single.func); 170 func = mdata->single.func;
171 /* Must read the ptr before private data. They are not data 171 /* Must read the ptr before private data. They are not data
172 * dependant, so we put an explicit smp_rmb() here. */ 172 * dependant, so we put an explicit smp_rmb() here. */
173 smp_rmb(); 173 smp_rmb();
@@ -183,7 +183,7 @@ void marker_probe_cb_noarg(const struct marker *mdata,
183 * in the fast path, so put the explicit barrier here. 183 * in the fast path, so put the explicit barrier here.
184 */ 184 */
185 smp_read_barrier_depends(); 185 smp_read_barrier_depends();
186 multi = ACCESS_ONCE(mdata->multi); 186 multi = mdata->multi;
187 for (i = 0; multi[i].func; i++) 187 for (i = 0; multi[i].func; i++)
188 multi[i].func(multi[i].probe_private, call_private, fmt, 188 multi[i].func(multi[i].probe_private, call_private, fmt,
189 &args); 189 &args);
@@ -551,9 +551,9 @@ static int set_marker(struct marker_entry **entry, struct marker *elem,
551 551
552/* 552/*
553 * Disable a marker and its probe callback. 553 * Disable a marker and its probe callback.
554 * Note: only after a synchronize_sched() issued after setting elem->call to the 554 * Note: only waiting an RCU period after setting elem->call to the empty
555 * empty function insures that the original callback is not used anymore. This 555 * function insures that the original callback is not used anymore. This insured
556 * insured by preemption disabling around the call site. 556 * by preempt_disable around the call site.
557 */ 557 */
558static void disable_marker(struct marker *elem) 558static void disable_marker(struct marker *elem)
559{ 559{
@@ -565,8 +565,8 @@ static void disable_marker(struct marker *elem)
565 elem->ptype = 0; /* single probe */ 565 elem->ptype = 0; /* single probe */
566 /* 566 /*
567 * Leave the private data and id there, because removal is racy and 567 * Leave the private data and id there, because removal is racy and
568 * should be done only after a synchronize_sched(). These are never used 568 * should be done only after an RCU period. These are never used until
569 * until the next initialization anyway. 569 * the next initialization anyway.
570 */ 570 */
571} 571}
572 572
@@ -601,9 +601,6 @@ void marker_update_probe_range(struct marker *begin,
601 601
602/* 602/*
603 * Update probes, removing the faulty probes. 603 * Update probes, removing the faulty probes.
604 * Issues a synchronize_sched() when no reference to the module passed
605 * as parameter is found in the probes so the probe module can be
606 * safely unloaded from now on.
607 * 604 *
608 * Internal callback only changed before the first probe is connected to it. 605 * Internal callback only changed before the first probe is connected to it.
609 * Single probe private data can only be changed on 0 -> 1 and 2 -> 1 606 * Single probe private data can only be changed on 0 -> 1 and 2 -> 1
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 79833170bb9c..6233f3b4ae66 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -190,7 +190,7 @@ config APM_EMULATION
190 notification of APM "events" (e.g. battery status change). 190 notification of APM "events" (e.g. battery status change).
191 191
192 In order to use APM, you will need supporting software. For location 192 In order to use APM, you will need supporting software. For location
193 and more information, read <file:Documentation/pm.txt> and the 193 and more information, read <file:Documentation/power/pm.txt> and the
194 Battery Powered Linux mini-HOWTO, available from 194 Battery Powered Linux mini-HOWTO, available from
195 <http://www.tldp.org/docs.html#howto>. 195 <http://www.tldp.org/docs.html#howto>.
196 196
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index 72a020cabb4c..5f91a07c4eac 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -447,7 +447,7 @@ static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free)
447 * of @bm->cur_zone_bm are updated. 447 * of @bm->cur_zone_bm are updated.
448 */ 448 */
449 449
450static void memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn, 450static int memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn,
451 void **addr, unsigned int *bit_nr) 451 void **addr, unsigned int *bit_nr)
452{ 452{
453 struct zone_bitmap *zone_bm; 453 struct zone_bitmap *zone_bm;
@@ -461,7 +461,8 @@ static void memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn,
461 while (pfn < zone_bm->start_pfn || pfn >= zone_bm->end_pfn) { 461 while (pfn < zone_bm->start_pfn || pfn >= zone_bm->end_pfn) {
462 zone_bm = zone_bm->next; 462 zone_bm = zone_bm->next;
463 463
464 BUG_ON(!zone_bm); 464 if (!zone_bm)
465 return -EFAULT;
465 } 466 }
466 bm->cur.zone_bm = zone_bm; 467 bm->cur.zone_bm = zone_bm;
467 } 468 }
@@ -479,23 +480,40 @@ static void memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn,
479 pfn -= bb->start_pfn; 480 pfn -= bb->start_pfn;
480 *bit_nr = pfn % BM_BITS_PER_CHUNK; 481 *bit_nr = pfn % BM_BITS_PER_CHUNK;
481 *addr = bb->data + pfn / BM_BITS_PER_CHUNK; 482 *addr = bb->data + pfn / BM_BITS_PER_CHUNK;
483 return 0;
482} 484}
483 485
484static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) 486static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn)
485{ 487{
486 void *addr; 488 void *addr;
487 unsigned int bit; 489 unsigned int bit;
490 int error;
488 491
489 memory_bm_find_bit(bm, pfn, &addr, &bit); 492 error = memory_bm_find_bit(bm, pfn, &addr, &bit);
493 BUG_ON(error);
490 set_bit(bit, addr); 494 set_bit(bit, addr);
491} 495}
492 496
497static int mem_bm_set_bit_check(struct memory_bitmap *bm, unsigned long pfn)
498{
499 void *addr;
500 unsigned int bit;
501 int error;
502
503 error = memory_bm_find_bit(bm, pfn, &addr, &bit);
504 if (!error)
505 set_bit(bit, addr);
506 return error;
507}
508
493static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) 509static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn)
494{ 510{
495 void *addr; 511 void *addr;
496 unsigned int bit; 512 unsigned int bit;
513 int error;
497 514
498 memory_bm_find_bit(bm, pfn, &addr, &bit); 515 error = memory_bm_find_bit(bm, pfn, &addr, &bit);
516 BUG_ON(error);
499 clear_bit(bit, addr); 517 clear_bit(bit, addr);
500} 518}
501 519
@@ -503,8 +521,10 @@ static int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn)
503{ 521{
504 void *addr; 522 void *addr;
505 unsigned int bit; 523 unsigned int bit;
524 int error;
506 525
507 memory_bm_find_bit(bm, pfn, &addr, &bit); 526 error = memory_bm_find_bit(bm, pfn, &addr, &bit);
527 BUG_ON(error);
508 return test_bit(bit, addr); 528 return test_bit(bit, addr);
509} 529}
510 530
@@ -709,8 +729,15 @@ static void mark_nosave_pages(struct memory_bitmap *bm)
709 region->end_pfn << PAGE_SHIFT); 729 region->end_pfn << PAGE_SHIFT);
710 730
711 for (pfn = region->start_pfn; pfn < region->end_pfn; pfn++) 731 for (pfn = region->start_pfn; pfn < region->end_pfn; pfn++)
712 if (pfn_valid(pfn)) 732 if (pfn_valid(pfn)) {
713 memory_bm_set_bit(bm, pfn); 733 /*
734 * It is safe to ignore the result of
735 * mem_bm_set_bit_check() here, since we won't
736 * touch the PFNs for which the error is
737 * returned anyway.
738 */
739 mem_bm_set_bit_check(bm, pfn);
740 }
714 } 741 }
715} 742}
716 743
diff --git a/kernel/printk.c b/kernel/printk.c
index 9adc2a473e6e..c46a20a19a15 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -616,6 +616,40 @@ asmlinkage int printk(const char *fmt, ...)
616/* cpu currently holding logbuf_lock */ 616/* cpu currently holding logbuf_lock */
617static volatile unsigned int printk_cpu = UINT_MAX; 617static volatile unsigned int printk_cpu = UINT_MAX;
618 618
619/*
620 * Can we actually use the console at this time on this cpu?
621 *
622 * Console drivers may assume that per-cpu resources have
623 * been allocated. So unless they're explicitly marked as
624 * being able to cope (CON_ANYTIME) don't call them until
625 * this CPU is officially up.
626 */
627static inline int can_use_console(unsigned int cpu)
628{
629 return cpu_online(cpu) || have_callable_console();
630}
631
632/*
633 * Try to get console ownership to actually show the kernel
634 * messages from a 'printk'. Return true (and with the
635 * console_semaphore held, and 'console_locked' set) if it
636 * is successful, false otherwise.
637 *
638 * This gets called with the 'logbuf_lock' spinlock held and
639 * interrupts disabled. It should return with 'lockbuf_lock'
640 * released but interrupts still disabled.
641 */
642static int acquire_console_semaphore_for_printk(unsigned int cpu)
643{
644 int retval = 0;
645
646 if (can_use_console(cpu))
647 retval = !try_acquire_console_sem();
648 printk_cpu = UINT_MAX;
649 spin_unlock(&logbuf_lock);
650 return retval;
651}
652
619const char printk_recursion_bug_msg [] = 653const char printk_recursion_bug_msg [] =
620 KERN_CRIT "BUG: recent printk recursion!\n"; 654 KERN_CRIT "BUG: recent printk recursion!\n";
621static int printk_recursion_bug; 655static int printk_recursion_bug;
@@ -725,43 +759,22 @@ asmlinkage int vprintk(const char *fmt, va_list args)
725 log_level_unknown = 1; 759 log_level_unknown = 1;
726 } 760 }
727 761
728 if (!down_trylock(&console_sem)) { 762 /*
729 /* 763 * Try to acquire and then immediately release the
730 * We own the drivers. We can drop the spinlock and 764 * console semaphore. The release will do all the
731 * let release_console_sem() print the text, maybe ... 765 * actual magic (print out buffers, wake up klogd,
732 */ 766 * etc).
733 console_locked = 1; 767 *
734 printk_cpu = UINT_MAX; 768 * The acquire_console_semaphore_for_printk() function
735 spin_unlock(&logbuf_lock); 769 * will release 'logbuf_lock' regardless of whether it
770 * actually gets the semaphore or not.
771 */
772 if (acquire_console_semaphore_for_printk(this_cpu))
773 release_console_sem();
736 774
737 /* 775 lockdep_on();
738 * Console drivers may assume that per-cpu resources have
739 * been allocated. So unless they're explicitly marked as
740 * being able to cope (CON_ANYTIME) don't call them until
741 * this CPU is officially up.
742 */
743 if (cpu_online(smp_processor_id()) || have_callable_console()) {
744 console_may_schedule = 0;
745 release_console_sem();
746 } else {
747 /* Release by hand to avoid flushing the buffer. */
748 console_locked = 0;
749 up(&console_sem);
750 }
751 lockdep_on();
752 raw_local_irq_restore(flags);
753 } else {
754 /*
755 * Someone else owns the drivers. We drop the spinlock, which
756 * allows the semaphore holder to proceed and to call the
757 * console drivers with the output which we just produced.
758 */
759 printk_cpu = UINT_MAX;
760 spin_unlock(&logbuf_lock);
761 lockdep_on();
762out_restore_irqs: 776out_restore_irqs:
763 raw_local_irq_restore(flags); 777 raw_local_irq_restore(flags);
764 }
765 778
766 preempt_enable(); 779 preempt_enable();
767 return printed_len; 780 return printed_len;
diff --git a/kernel/relay.c b/kernel/relay.c
index d080b9d161a7..d6204a485818 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -736,7 +736,7 @@ static int relay_file_open(struct inode *inode, struct file *filp)
736 kref_get(&buf->kref); 736 kref_get(&buf->kref);
737 filp->private_data = buf; 737 filp->private_data = buf;
738 738
739 return 0; 739 return nonseekable_open(inode, filp);
740} 740}
741 741
742/** 742/**
@@ -1056,6 +1056,10 @@ static struct pipe_buf_operations relay_pipe_buf_ops = {
1056 .get = generic_pipe_buf_get, 1056 .get = generic_pipe_buf_get,
1057}; 1057};
1058 1058
1059static void relay_page_release(struct splice_pipe_desc *spd, unsigned int i)
1060{
1061}
1062
1059/* 1063/*
1060 * subbuf_splice_actor - splice up to one subbuf's worth of data 1064 * subbuf_splice_actor - splice up to one subbuf's worth of data
1061 */ 1065 */
@@ -1066,7 +1070,7 @@ static int subbuf_splice_actor(struct file *in,
1066 unsigned int flags, 1070 unsigned int flags,
1067 int *nonpad_ret) 1071 int *nonpad_ret)
1068{ 1072{
1069 unsigned int pidx, poff, total_len, subbuf_pages, ret; 1073 unsigned int pidx, poff, total_len, subbuf_pages, nr_pages, ret;
1070 struct rchan_buf *rbuf = in->private_data; 1074 struct rchan_buf *rbuf = in->private_data;
1071 unsigned int subbuf_size = rbuf->chan->subbuf_size; 1075 unsigned int subbuf_size = rbuf->chan->subbuf_size;
1072 uint64_t pos = (uint64_t) *ppos; 1076 uint64_t pos = (uint64_t) *ppos;
@@ -1083,6 +1087,7 @@ static int subbuf_splice_actor(struct file *in,
1083 .partial = partial, 1087 .partial = partial,
1084 .flags = flags, 1088 .flags = flags,
1085 .ops = &relay_pipe_buf_ops, 1089 .ops = &relay_pipe_buf_ops,
1090 .spd_release = relay_page_release,
1086 }; 1091 };
1087 1092
1088 if (rbuf->subbufs_produced == rbuf->subbufs_consumed) 1093 if (rbuf->subbufs_produced == rbuf->subbufs_consumed)
@@ -1097,8 +1102,9 @@ static int subbuf_splice_actor(struct file *in,
1097 subbuf_pages = rbuf->chan->alloc_size >> PAGE_SHIFT; 1102 subbuf_pages = rbuf->chan->alloc_size >> PAGE_SHIFT;
1098 pidx = (read_start / PAGE_SIZE) % subbuf_pages; 1103 pidx = (read_start / PAGE_SIZE) % subbuf_pages;
1099 poff = read_start & ~PAGE_MASK; 1104 poff = read_start & ~PAGE_MASK;
1105 nr_pages = min_t(unsigned int, subbuf_pages, PIPE_BUFFERS);
1100 1106
1101 for (total_len = 0; spd.nr_pages < subbuf_pages; spd.nr_pages++) { 1107 for (total_len = 0; spd.nr_pages < nr_pages; spd.nr_pages++) {
1102 unsigned int this_len, this_end, private; 1108 unsigned int this_len, this_end, private;
1103 unsigned int cur_pos = read_start + total_len; 1109 unsigned int cur_pos = read_start + total_len;
1104 1110
diff --git a/kernel/sched.c b/kernel/sched.c
index 1cb53fb1fe3d..8dcdec6fe0fe 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -301,7 +301,7 @@ struct cfs_rq {
301 /* 'curr' points to currently running entity on this cfs_rq. 301 /* 'curr' points to currently running entity on this cfs_rq.
302 * It is set to NULL otherwise (i.e when none are currently running). 302 * It is set to NULL otherwise (i.e when none are currently running).
303 */ 303 */
304 struct sched_entity *curr; 304 struct sched_entity *curr, *next;
305 305
306 unsigned long nr_spread_over; 306 unsigned long nr_spread_over;
307 307
@@ -594,18 +594,14 @@ enum {
594 SCHED_FEAT_NEW_FAIR_SLEEPERS = 1, 594 SCHED_FEAT_NEW_FAIR_SLEEPERS = 1,
595 SCHED_FEAT_WAKEUP_PREEMPT = 2, 595 SCHED_FEAT_WAKEUP_PREEMPT = 2,
596 SCHED_FEAT_START_DEBIT = 4, 596 SCHED_FEAT_START_DEBIT = 4,
597 SCHED_FEAT_TREE_AVG = 8, 597 SCHED_FEAT_HRTICK = 8,
598 SCHED_FEAT_APPROX_AVG = 16, 598 SCHED_FEAT_DOUBLE_TICK = 16,
599 SCHED_FEAT_HRTICK = 32,
600 SCHED_FEAT_DOUBLE_TICK = 64,
601}; 599};
602 600
603const_debug unsigned int sysctl_sched_features = 601const_debug unsigned int sysctl_sched_features =
604 SCHED_FEAT_NEW_FAIR_SLEEPERS * 1 | 602 SCHED_FEAT_NEW_FAIR_SLEEPERS * 1 |
605 SCHED_FEAT_WAKEUP_PREEMPT * 1 | 603 SCHED_FEAT_WAKEUP_PREEMPT * 1 |
606 SCHED_FEAT_START_DEBIT * 1 | 604 SCHED_FEAT_START_DEBIT * 1 |
607 SCHED_FEAT_TREE_AVG * 0 |
608 SCHED_FEAT_APPROX_AVG * 0 |
609 SCHED_FEAT_HRTICK * 1 | 605 SCHED_FEAT_HRTICK * 1 |
610 SCHED_FEAT_DOUBLE_TICK * 0; 606 SCHED_FEAT_DOUBLE_TICK * 0;
611 607
@@ -1056,6 +1052,49 @@ static void resched_cpu(int cpu)
1056 resched_task(cpu_curr(cpu)); 1052 resched_task(cpu_curr(cpu));
1057 spin_unlock_irqrestore(&rq->lock, flags); 1053 spin_unlock_irqrestore(&rq->lock, flags);
1058} 1054}
1055
1056#ifdef CONFIG_NO_HZ
1057/*
1058 * When add_timer_on() enqueues a timer into the timer wheel of an
1059 * idle CPU then this timer might expire before the next timer event
1060 * which is scheduled to wake up that CPU. In case of a completely
1061 * idle system the next event might even be infinite time into the
1062 * future. wake_up_idle_cpu() ensures that the CPU is woken up and
1063 * leaves the inner idle loop so the newly added timer is taken into
1064 * account when the CPU goes back to idle and evaluates the timer
1065 * wheel for the next timer event.
1066 */
1067void wake_up_idle_cpu(int cpu)
1068{
1069 struct rq *rq = cpu_rq(cpu);
1070
1071 if (cpu == smp_processor_id())
1072 return;
1073
1074 /*
1075 * This is safe, as this function is called with the timer
1076 * wheel base lock of (cpu) held. When the CPU is on the way
1077 * to idle and has not yet set rq->curr to idle then it will
1078 * be serialized on the timer wheel base lock and take the new
1079 * timer into account automatically.
1080 */
1081 if (rq->curr != rq->idle)
1082 return;
1083
1084 /*
1085 * We can set TIF_RESCHED on the idle task of the other CPU
1086 * lockless. The worst case is that the other CPU runs the
1087 * idle task through an additional NOOP schedule()
1088 */
1089 set_tsk_thread_flag(rq->idle, TIF_NEED_RESCHED);
1090
1091 /* NEED_RESCHED must be visible before we test polling */
1092 smp_mb();
1093 if (!tsk_is_polling(rq->idle))
1094 smp_send_reschedule(cpu);
1095}
1096#endif
1097
1059#else 1098#else
1060static void __resched_task(struct task_struct *p, int tif_bit) 1099static void __resched_task(struct task_struct *p, int tif_bit)
1061{ 1100{
@@ -1084,7 +1123,7 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight,
1084 u64 tmp; 1123 u64 tmp;
1085 1124
1086 if (unlikely(!lw->inv_weight)) 1125 if (unlikely(!lw->inv_weight))
1087 lw->inv_weight = (WMULT_CONST - lw->weight/2) / lw->weight + 1; 1126 lw->inv_weight = (WMULT_CONST-lw->weight/2) / (lw->weight+1);
1088 1127
1089 tmp = (u64)delta_exec * weight; 1128 tmp = (u64)delta_exec * weight;
1090 /* 1129 /*
@@ -1108,11 +1147,13 @@ calc_delta_fair(unsigned long delta_exec, struct load_weight *lw)
1108static inline void update_load_add(struct load_weight *lw, unsigned long inc) 1147static inline void update_load_add(struct load_weight *lw, unsigned long inc)
1109{ 1148{
1110 lw->weight += inc; 1149 lw->weight += inc;
1150 lw->inv_weight = 0;
1111} 1151}
1112 1152
1113static inline void update_load_sub(struct load_weight *lw, unsigned long dec) 1153static inline void update_load_sub(struct load_weight *lw, unsigned long dec)
1114{ 1154{
1115 lw->weight -= dec; 1155 lw->weight -= dec;
1156 lw->inv_weight = 0;
1116} 1157}
1117 1158
1118/* 1159/*
@@ -1394,6 +1435,12 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd)
1394{ 1435{
1395 s64 delta; 1436 s64 delta;
1396 1437
1438 /*
1439 * Buddy candidates are cache hot:
1440 */
1441 if (&p->se == cfs_rq_of(&p->se)->next)
1442 return 1;
1443
1397 if (p->sched_class != &fair_sched_class) 1444 if (p->sched_class != &fair_sched_class)
1398 return 0; 1445 return 0;
1399 1446
@@ -1853,10 +1900,11 @@ out_activate:
1853 schedstat_inc(p, se.nr_wakeups_remote); 1900 schedstat_inc(p, se.nr_wakeups_remote);
1854 update_rq_clock(rq); 1901 update_rq_clock(rq);
1855 activate_task(rq, p, 1); 1902 activate_task(rq, p, 1);
1856 check_preempt_curr(rq, p);
1857 success = 1; 1903 success = 1;
1858 1904
1859out_running: 1905out_running:
1906 check_preempt_curr(rq, p);
1907
1860 p->state = TASK_RUNNING; 1908 p->state = TASK_RUNNING;
1861#ifdef CONFIG_SMP 1909#ifdef CONFIG_SMP
1862 if (p->sched_class->task_wake_up) 1910 if (p->sched_class->task_wake_up)
@@ -1890,6 +1938,8 @@ static void __sched_fork(struct task_struct *p)
1890 p->se.exec_start = 0; 1938 p->se.exec_start = 0;
1891 p->se.sum_exec_runtime = 0; 1939 p->se.sum_exec_runtime = 0;
1892 p->se.prev_sum_exec_runtime = 0; 1940 p->se.prev_sum_exec_runtime = 0;
1941 p->se.last_wakeup = 0;
1942 p->se.avg_overlap = 0;
1893 1943
1894#ifdef CONFIG_SCHEDSTATS 1944#ifdef CONFIG_SCHEDSTATS
1895 p->se.wait_start = 0; 1945 p->se.wait_start = 0;
@@ -3875,7 +3925,7 @@ need_resched_nonpreemptible:
3875 3925
3876 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { 3926 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
3877 if (unlikely((prev->state & TASK_INTERRUPTIBLE) && 3927 if (unlikely((prev->state & TASK_INTERRUPTIBLE) &&
3878 unlikely(signal_pending(prev)))) { 3928 signal_pending(prev))) {
3879 prev->state = TASK_RUNNING; 3929 prev->state = TASK_RUNNING;
3880 } else { 3930 } else {
3881 deactivate_task(rq, prev, 1); 3931 deactivate_task(rq, prev, 1);
@@ -4268,11 +4318,10 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
4268 oldprio = p->prio; 4318 oldprio = p->prio;
4269 on_rq = p->se.on_rq; 4319 on_rq = p->se.on_rq;
4270 running = task_current(rq, p); 4320 running = task_current(rq, p);
4271 if (on_rq) { 4321 if (on_rq)
4272 dequeue_task(rq, p, 0); 4322 dequeue_task(rq, p, 0);
4273 if (running) 4323 if (running)
4274 p->sched_class->put_prev_task(rq, p); 4324 p->sched_class->put_prev_task(rq, p);
4275 }
4276 4325
4277 if (rt_prio(prio)) 4326 if (rt_prio(prio))
4278 p->sched_class = &rt_sched_class; 4327 p->sched_class = &rt_sched_class;
@@ -4281,10 +4330,9 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
4281 4330
4282 p->prio = prio; 4331 p->prio = prio;
4283 4332
4333 if (running)
4334 p->sched_class->set_curr_task(rq);
4284 if (on_rq) { 4335 if (on_rq) {
4285 if (running)
4286 p->sched_class->set_curr_task(rq);
4287
4288 enqueue_task(rq, p, 0); 4336 enqueue_task(rq, p, 0);
4289 4337
4290 check_class_changed(rq, p, prev_class, oldprio, running); 4338 check_class_changed(rq, p, prev_class, oldprio, running);
@@ -4581,19 +4629,17 @@ recheck:
4581 update_rq_clock(rq); 4629 update_rq_clock(rq);
4582 on_rq = p->se.on_rq; 4630 on_rq = p->se.on_rq;
4583 running = task_current(rq, p); 4631 running = task_current(rq, p);
4584 if (on_rq) { 4632 if (on_rq)
4585 deactivate_task(rq, p, 0); 4633 deactivate_task(rq, p, 0);
4586 if (running) 4634 if (running)
4587 p->sched_class->put_prev_task(rq, p); 4635 p->sched_class->put_prev_task(rq, p);
4588 }
4589 4636
4590 oldprio = p->prio; 4637 oldprio = p->prio;
4591 __setscheduler(rq, p, policy, param->sched_priority); 4638 __setscheduler(rq, p, policy, param->sched_priority);
4592 4639
4640 if (running)
4641 p->sched_class->set_curr_task(rq);
4593 if (on_rq) { 4642 if (on_rq) {
4594 if (running)
4595 p->sched_class->set_curr_task(rq);
4596
4597 activate_task(rq, p, 0); 4643 activate_task(rq, p, 0);
4598 4644
4599 check_class_changed(rq, p, prev_class, oldprio, running); 4645 check_class_changed(rq, p, prev_class, oldprio, running);
@@ -6804,6 +6850,10 @@ static int ndoms_cur; /* number of sched domains in 'doms_cur' */
6804 */ 6850 */
6805static cpumask_t fallback_doms; 6851static cpumask_t fallback_doms;
6806 6852
6853void __attribute__((weak)) arch_update_cpu_topology(void)
6854{
6855}
6856
6807/* 6857/*
6808 * Set up scheduler domains and groups. Callers must hold the hotplug lock. 6858 * Set up scheduler domains and groups. Callers must hold the hotplug lock.
6809 * For now this just excludes isolated cpus, but could be used to 6859 * For now this just excludes isolated cpus, but could be used to
@@ -6813,6 +6863,7 @@ static int arch_init_sched_domains(const cpumask_t *cpu_map)
6813{ 6863{
6814 int err; 6864 int err;
6815 6865
6866 arch_update_cpu_topology();
6816 ndoms_cur = 1; 6867 ndoms_cur = 1;
6817 doms_cur = kmalloc(sizeof(cpumask_t), GFP_KERNEL); 6868 doms_cur = kmalloc(sizeof(cpumask_t), GFP_KERNEL);
6818 if (!doms_cur) 6869 if (!doms_cur)
@@ -6917,7 +6968,7 @@ match2:
6917} 6968}
6918 6969
6919#if defined(CONFIG_SCHED_MC) || defined(CONFIG_SCHED_SMT) 6970#if defined(CONFIG_SCHED_MC) || defined(CONFIG_SCHED_SMT)
6920static int arch_reinit_sched_domains(void) 6971int arch_reinit_sched_domains(void)
6921{ 6972{
6922 int err; 6973 int err;
6923 6974
@@ -7618,11 +7669,10 @@ void sched_move_task(struct task_struct *tsk)
7618 running = task_current(rq, tsk); 7669 running = task_current(rq, tsk);
7619 on_rq = tsk->se.on_rq; 7670 on_rq = tsk->se.on_rq;
7620 7671
7621 if (on_rq) { 7672 if (on_rq)
7622 dequeue_task(rq, tsk, 0); 7673 dequeue_task(rq, tsk, 0);
7623 if (unlikely(running)) 7674 if (unlikely(running))
7624 tsk->sched_class->put_prev_task(rq, tsk); 7675 tsk->sched_class->put_prev_task(rq, tsk);
7625 }
7626 7676
7627 set_task_rq(tsk, task_cpu(tsk)); 7677 set_task_rq(tsk, task_cpu(tsk));
7628 7678
@@ -7631,11 +7681,10 @@ void sched_move_task(struct task_struct *tsk)
7631 tsk->sched_class->moved_group(tsk); 7681 tsk->sched_class->moved_group(tsk);
7632#endif 7682#endif
7633 7683
7634 if (on_rq) { 7684 if (unlikely(running))
7635 if (unlikely(running)) 7685 tsk->sched_class->set_curr_task(rq);
7636 tsk->sched_class->set_curr_task(rq); 7686 if (on_rq)
7637 enqueue_task(rq, tsk, 0); 7687 enqueue_task(rq, tsk, 0);
7638 }
7639 7688
7640 task_rq_unlock(rq, &flags); 7689 task_rq_unlock(rq, &flags);
7641} 7690}
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
index 4b5e24cf2f4a..ef358ba07683 100644
--- a/kernel/sched_debug.c
+++ b/kernel/sched_debug.c
@@ -288,6 +288,7 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m)
288 PN(se.exec_start); 288 PN(se.exec_start);
289 PN(se.vruntime); 289 PN(se.vruntime);
290 PN(se.sum_exec_runtime); 290 PN(se.sum_exec_runtime);
291 PN(se.avg_overlap);
291 292
292 nr_switches = p->nvcsw + p->nivcsw; 293 nr_switches = p->nvcsw + p->nivcsw;
293 294
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index e2a530515619..86a93376282c 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -73,13 +73,13 @@ unsigned int sysctl_sched_batch_wakeup_granularity = 10000000UL;
73 73
74/* 74/*
75 * SCHED_OTHER wake-up granularity. 75 * SCHED_OTHER wake-up granularity.
76 * (default: 10 msec * (1 + ilog(ncpus)), units: nanoseconds) 76 * (default: 5 msec * (1 + ilog(ncpus)), units: nanoseconds)
77 * 77 *
78 * This option delays the preemption effects of decoupled workloads 78 * This option delays the preemption effects of decoupled workloads
79 * and reduces their over-scheduling. Synchronous workloads will still 79 * and reduces their over-scheduling. Synchronous workloads will still
80 * have immediate wakeup/sleep latencies. 80 * have immediate wakeup/sleep latencies.
81 */ 81 */
82unsigned int sysctl_sched_wakeup_granularity = 10000000UL; 82unsigned int sysctl_sched_wakeup_granularity = 5000000UL;
83 83
84const_debug unsigned int sysctl_sched_migration_cost = 500000UL; 84const_debug unsigned int sysctl_sched_migration_cost = 500000UL;
85 85
@@ -175,8 +175,15 @@ static void __enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
175 * Maintain a cache of leftmost tree entries (it is frequently 175 * Maintain a cache of leftmost tree entries (it is frequently
176 * used): 176 * used):
177 */ 177 */
178 if (leftmost) 178 if (leftmost) {
179 cfs_rq->rb_leftmost = &se->run_node; 179 cfs_rq->rb_leftmost = &se->run_node;
180 /*
181 * maintain cfs_rq->min_vruntime to be a monotonic increasing
182 * value tracking the leftmost vruntime in the tree.
183 */
184 cfs_rq->min_vruntime =
185 max_vruntime(cfs_rq->min_vruntime, se->vruntime);
186 }
180 187
181 rb_link_node(&se->run_node, parent, link); 188 rb_link_node(&se->run_node, parent, link);
182 rb_insert_color(&se->run_node, &cfs_rq->tasks_timeline); 189 rb_insert_color(&se->run_node, &cfs_rq->tasks_timeline);
@@ -184,8 +191,24 @@ static void __enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
184 191
185static void __dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se) 192static void __dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
186{ 193{
187 if (cfs_rq->rb_leftmost == &se->run_node) 194 if (cfs_rq->rb_leftmost == &se->run_node) {
188 cfs_rq->rb_leftmost = rb_next(&se->run_node); 195 struct rb_node *next_node;
196 struct sched_entity *next;
197
198 next_node = rb_next(&se->run_node);
199 cfs_rq->rb_leftmost = next_node;
200
201 if (next_node) {
202 next = rb_entry(next_node,
203 struct sched_entity, run_node);
204 cfs_rq->min_vruntime =
205 max_vruntime(cfs_rq->min_vruntime,
206 next->vruntime);
207 }
208 }
209
210 if (cfs_rq->next == se)
211 cfs_rq->next = NULL;
189 212
190 rb_erase(&se->run_node, &cfs_rq->tasks_timeline); 213 rb_erase(&se->run_node, &cfs_rq->tasks_timeline);
191} 214}
@@ -260,12 +283,8 @@ static u64 __sched_period(unsigned long nr_running)
260 */ 283 */
261static u64 sched_slice(struct cfs_rq *cfs_rq, struct sched_entity *se) 284static u64 sched_slice(struct cfs_rq *cfs_rq, struct sched_entity *se)
262{ 285{
263 u64 slice = __sched_period(cfs_rq->nr_running); 286 return calc_delta_mine(__sched_period(cfs_rq->nr_running),
264 287 se->load.weight, &cfs_rq->load);
265 slice *= se->load.weight;
266 do_div(slice, cfs_rq->load.weight);
267
268 return slice;
269} 288}
270 289
271/* 290/*
@@ -283,11 +302,6 @@ static u64 __sched_vslice(unsigned long rq_weight, unsigned long nr_running)
283 return vslice; 302 return vslice;
284} 303}
285 304
286static u64 sched_vslice(struct cfs_rq *cfs_rq)
287{
288 return __sched_vslice(cfs_rq->load.weight, cfs_rq->nr_running);
289}
290
291static u64 sched_vslice_add(struct cfs_rq *cfs_rq, struct sched_entity *se) 305static u64 sched_vslice_add(struct cfs_rq *cfs_rq, struct sched_entity *se)
292{ 306{
293 return __sched_vslice(cfs_rq->load.weight + se->load.weight, 307 return __sched_vslice(cfs_rq->load.weight + se->load.weight,
@@ -303,7 +317,6 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr,
303 unsigned long delta_exec) 317 unsigned long delta_exec)
304{ 318{
305 unsigned long delta_exec_weighted; 319 unsigned long delta_exec_weighted;
306 u64 vruntime;
307 320
308 schedstat_set(curr->exec_max, max((u64)delta_exec, curr->exec_max)); 321 schedstat_set(curr->exec_max, max((u64)delta_exec, curr->exec_max));
309 322
@@ -315,19 +328,6 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr,
315 &curr->load); 328 &curr->load);
316 } 329 }
317 curr->vruntime += delta_exec_weighted; 330 curr->vruntime += delta_exec_weighted;
318
319 /*
320 * maintain cfs_rq->min_vruntime to be a monotonic increasing
321 * value tracking the leftmost vruntime in the tree.
322 */
323 if (first_fair(cfs_rq)) {
324 vruntime = min_vruntime(curr->vruntime,
325 __pick_next_entity(cfs_rq)->vruntime);
326 } else
327 vruntime = curr->vruntime;
328
329 cfs_rq->min_vruntime =
330 max_vruntime(cfs_rq->min_vruntime, vruntime);
331} 331}
332 332
333static void update_curr(struct cfs_rq *cfs_rq) 333static void update_curr(struct cfs_rq *cfs_rq)
@@ -493,16 +493,11 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
493{ 493{
494 u64 vruntime; 494 u64 vruntime;
495 495
496 vruntime = cfs_rq->min_vruntime; 496 if (first_fair(cfs_rq)) {
497 497 vruntime = min_vruntime(cfs_rq->min_vruntime,
498 if (sched_feat(TREE_AVG)) { 498 __pick_next_entity(cfs_rq)->vruntime);
499 struct sched_entity *last = __pick_last_entity(cfs_rq); 499 } else
500 if (last) { 500 vruntime = cfs_rq->min_vruntime;
501 vruntime += last->vruntime;
502 vruntime >>= 1;
503 }
504 } else if (sched_feat(APPROX_AVG) && cfs_rq->nr_running)
505 vruntime += sched_vslice(cfs_rq)/2;
506 501
507 /* 502 /*
508 * The 'current' period is already promised to the current tasks, 503 * The 'current' period is already promised to the current tasks,
@@ -515,8 +510,10 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
515 510
516 if (!initial) { 511 if (!initial) {
517 /* sleeps upto a single latency don't count. */ 512 /* sleeps upto a single latency don't count. */
518 if (sched_feat(NEW_FAIR_SLEEPERS)) 513 if (sched_feat(NEW_FAIR_SLEEPERS)) {
519 vruntime -= sysctl_sched_latency; 514 vruntime -= calc_delta_fair(sysctl_sched_latency,
515 &cfs_rq->load);
516 }
520 517
521 /* ensure we never gain time by being placed backwards. */ 518 /* ensure we never gain time by being placed backwards. */
522 vruntime = max_vruntime(se->vruntime, vruntime); 519 vruntime = max_vruntime(se->vruntime, vruntime);
@@ -545,6 +542,21 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup)
545 account_entity_enqueue(cfs_rq, se); 542 account_entity_enqueue(cfs_rq, se);
546} 543}
547 544
545static void update_avg(u64 *avg, u64 sample)
546{
547 s64 diff = sample - *avg;
548 *avg += diff >> 3;
549}
550
551static void update_avg_stats(struct cfs_rq *cfs_rq, struct sched_entity *se)
552{
553 if (!se->last_wakeup)
554 return;
555
556 update_avg(&se->avg_overlap, se->sum_exec_runtime - se->last_wakeup);
557 se->last_wakeup = 0;
558}
559
548static void 560static void
549dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) 561dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
550{ 562{
@@ -555,6 +567,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
555 567
556 update_stats_dequeue(cfs_rq, se); 568 update_stats_dequeue(cfs_rq, se);
557 if (sleep) { 569 if (sleep) {
570 update_avg_stats(cfs_rq, se);
558#ifdef CONFIG_SCHEDSTATS 571#ifdef CONFIG_SCHEDSTATS
559 if (entity_is_task(se)) { 572 if (entity_is_task(se)) {
560 struct task_struct *tsk = task_of(se); 573 struct task_struct *tsk = task_of(se);
@@ -616,12 +629,32 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
616 se->prev_sum_exec_runtime = se->sum_exec_runtime; 629 se->prev_sum_exec_runtime = se->sum_exec_runtime;
617} 630}
618 631
632static struct sched_entity *
633pick_next(struct cfs_rq *cfs_rq, struct sched_entity *se)
634{
635 s64 diff, gran;
636
637 if (!cfs_rq->next)
638 return se;
639
640 diff = cfs_rq->next->vruntime - se->vruntime;
641 if (diff < 0)
642 return se;
643
644 gran = calc_delta_fair(sysctl_sched_wakeup_granularity, &cfs_rq->load);
645 if (diff > gran)
646 return se;
647
648 return cfs_rq->next;
649}
650
619static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq) 651static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq)
620{ 652{
621 struct sched_entity *se = NULL; 653 struct sched_entity *se = NULL;
622 654
623 if (first_fair(cfs_rq)) { 655 if (first_fair(cfs_rq)) {
624 se = __pick_next_entity(cfs_rq); 656 se = __pick_next_entity(cfs_rq);
657 se = pick_next(cfs_rq, se);
625 set_next_entity(cfs_rq, se); 658 set_next_entity(cfs_rq, se);
626 } 659 }
627 660
@@ -949,96 +982,121 @@ static inline int wake_idle(int cpu, struct task_struct *p)
949#endif 982#endif
950 983
951#ifdef CONFIG_SMP 984#ifdef CONFIG_SMP
952static int select_task_rq_fair(struct task_struct *p, int sync) 985
986static const struct sched_class fair_sched_class;
987
988static int
989wake_affine(struct rq *rq, struct sched_domain *this_sd, struct rq *this_rq,
990 struct task_struct *p, int prev_cpu, int this_cpu, int sync,
991 int idx, unsigned long load, unsigned long this_load,
992 unsigned int imbalance)
953{ 993{
954 int cpu, this_cpu; 994 struct task_struct *curr = this_rq->curr;
955 struct rq *rq; 995 unsigned long tl = this_load;
956 struct sched_domain *sd, *this_sd = NULL; 996 unsigned long tl_per_task;
957 int new_cpu; 997
998 if (!(this_sd->flags & SD_WAKE_AFFINE))
999 return 0;
1000
1001 /*
1002 * If the currently running task will sleep within
1003 * a reasonable amount of time then attract this newly
1004 * woken task:
1005 */
1006 if (sync && curr->sched_class == &fair_sched_class) {
1007 if (curr->se.avg_overlap < sysctl_sched_migration_cost &&
1008 p->se.avg_overlap < sysctl_sched_migration_cost)
1009 return 1;
1010 }
1011
1012 schedstat_inc(p, se.nr_wakeups_affine_attempts);
1013 tl_per_task = cpu_avg_load_per_task(this_cpu);
958 1014
959 cpu = task_cpu(p); 1015 /*
960 rq = task_rq(p); 1016 * If sync wakeup then subtract the (maximum possible)
961 this_cpu = smp_processor_id(); 1017 * effect of the currently running task from the load
962 new_cpu = cpu; 1018 * of the current CPU:
1019 */
1020 if (sync)
1021 tl -= current->se.load.weight;
1022
1023 if ((tl <= load && tl + target_load(prev_cpu, idx) <= tl_per_task) ||
1024 100*(tl + p->se.load.weight) <= imbalance*load) {
1025 /*
1026 * This domain has SD_WAKE_AFFINE and
1027 * p is cache cold in this domain, and
1028 * there is no bad imbalance.
1029 */
1030 schedstat_inc(this_sd, ttwu_move_affine);
1031 schedstat_inc(p, se.nr_wakeups_affine);
1032
1033 return 1;
1034 }
1035 return 0;
1036}
963 1037
964 if (cpu == this_cpu) 1038static int select_task_rq_fair(struct task_struct *p, int sync)
965 goto out_set_cpu; 1039{
1040 struct sched_domain *sd, *this_sd = NULL;
1041 int prev_cpu, this_cpu, new_cpu;
1042 unsigned long load, this_load;
1043 struct rq *rq, *this_rq;
1044 unsigned int imbalance;
1045 int idx;
1046
1047 prev_cpu = task_cpu(p);
1048 rq = task_rq(p);
1049 this_cpu = smp_processor_id();
1050 this_rq = cpu_rq(this_cpu);
1051 new_cpu = prev_cpu;
966 1052
1053 /*
1054 * 'this_sd' is the first domain that both
1055 * this_cpu and prev_cpu are present in:
1056 */
967 for_each_domain(this_cpu, sd) { 1057 for_each_domain(this_cpu, sd) {
968 if (cpu_isset(cpu, sd->span)) { 1058 if (cpu_isset(prev_cpu, sd->span)) {
969 this_sd = sd; 1059 this_sd = sd;
970 break; 1060 break;
971 } 1061 }
972 } 1062 }
973 1063
974 if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed))) 1064 if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed)))
975 goto out_set_cpu; 1065 goto out;
976 1066
977 /* 1067 /*
978 * Check for affine wakeup and passive balancing possibilities. 1068 * Check for affine wakeup and passive balancing possibilities.
979 */ 1069 */
980 if (this_sd) { 1070 if (!this_sd)
981 int idx = this_sd->wake_idx; 1071 goto out;
982 unsigned int imbalance;
983 unsigned long load, this_load;
984
985 imbalance = 100 + (this_sd->imbalance_pct - 100) / 2;
986
987 load = source_load(cpu, idx);
988 this_load = target_load(this_cpu, idx);
989
990 new_cpu = this_cpu; /* Wake to this CPU if we can */
991
992 if (this_sd->flags & SD_WAKE_AFFINE) {
993 unsigned long tl = this_load;
994 unsigned long tl_per_task;
995
996 /*
997 * Attract cache-cold tasks on sync wakeups:
998 */
999 if (sync && !task_hot(p, rq->clock, this_sd))
1000 goto out_set_cpu;
1001
1002 schedstat_inc(p, se.nr_wakeups_affine_attempts);
1003 tl_per_task = cpu_avg_load_per_task(this_cpu);
1004
1005 /*
1006 * If sync wakeup then subtract the (maximum possible)
1007 * effect of the currently running task from the load
1008 * of the current CPU:
1009 */
1010 if (sync)
1011 tl -= current->se.load.weight;
1012
1013 if ((tl <= load &&
1014 tl + target_load(cpu, idx) <= tl_per_task) ||
1015 100*(tl + p->se.load.weight) <= imbalance*load) {
1016 /*
1017 * This domain has SD_WAKE_AFFINE and
1018 * p is cache cold in this domain, and
1019 * there is no bad imbalance.
1020 */
1021 schedstat_inc(this_sd, ttwu_move_affine);
1022 schedstat_inc(p, se.nr_wakeups_affine);
1023 goto out_set_cpu;
1024 }
1025 }
1026 1072
1027 /* 1073 idx = this_sd->wake_idx;
1028 * Start passive balancing when half the imbalance_pct 1074
1029 * limit is reached. 1075 imbalance = 100 + (this_sd->imbalance_pct - 100) / 2;
1030 */ 1076
1031 if (this_sd->flags & SD_WAKE_BALANCE) { 1077 load = source_load(prev_cpu, idx);
1032 if (imbalance*this_load <= 100*load) { 1078 this_load = target_load(this_cpu, idx);
1033 schedstat_inc(this_sd, ttwu_move_balance); 1079
1034 schedstat_inc(p, se.nr_wakeups_passive); 1080 if (wake_affine(rq, this_sd, this_rq, p, prev_cpu, this_cpu, sync, idx,
1035 goto out_set_cpu; 1081 load, this_load, imbalance))
1036 } 1082 return this_cpu;
1083
1084 if (prev_cpu == this_cpu)
1085 goto out;
1086
1087 /*
1088 * Start passive balancing when half the imbalance_pct
1089 * limit is reached.
1090 */
1091 if (this_sd->flags & SD_WAKE_BALANCE) {
1092 if (imbalance*this_load <= 100*load) {
1093 schedstat_inc(this_sd, ttwu_move_balance);
1094 schedstat_inc(p, se.nr_wakeups_passive);
1095 return this_cpu;
1037 } 1096 }
1038 } 1097 }
1039 1098
1040 new_cpu = cpu; /* Could not wake to this_cpu. Wake to cpu instead */ 1099out:
1041out_set_cpu:
1042 return wake_idle(new_cpu, p); 1100 return wake_idle(new_cpu, p);
1043} 1101}
1044#endif /* CONFIG_SMP */ 1102#endif /* CONFIG_SMP */
@@ -1060,6 +1118,13 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p)
1060 resched_task(curr); 1118 resched_task(curr);
1061 return; 1119 return;
1062 } 1120 }
1121
1122 se->last_wakeup = se->sum_exec_runtime;
1123 if (unlikely(se == pse))
1124 return;
1125
1126 cfs_rq_of(pse)->next = pse;
1127
1063 /* 1128 /*
1064 * Batch tasks do not preempt (their preemption is driven by 1129 * Batch tasks do not preempt (their preemption is driven by
1065 * the tick): 1130 * the tick):
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 548c436a776b..7f60097d443a 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -141,13 +141,8 @@ static void clocksource_watchdog(unsigned long data)
141 } 141 }
142 142
143 if (!list_empty(&watchdog_list)) { 143 if (!list_empty(&watchdog_list)) {
144 /* Cycle through CPUs to check if the CPUs stay synchronized to 144 __mod_timer(&watchdog_timer,
145 * each other. */ 145 watchdog_timer.expires + WATCHDOG_INTERVAL);
146 int next_cpu = next_cpu(raw_smp_processor_id(), cpu_online_map);
147 if (next_cpu >= NR_CPUS)
148 next_cpu = first_cpu(cpu_online_map);
149 watchdog_timer.expires += WATCHDOG_INTERVAL;
150 add_timer_on(&watchdog_timer, next_cpu);
151 } 146 }
152 spin_unlock(&watchdog_lock); 147 spin_unlock(&watchdog_lock);
153} 148}
@@ -169,7 +164,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
169 if (!started && watchdog) { 164 if (!started && watchdog) {
170 watchdog_last = watchdog->read(); 165 watchdog_last = watchdog->read();
171 watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; 166 watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
172 add_timer_on(&watchdog_timer, first_cpu(cpu_online_map)); 167 add_timer(&watchdog_timer);
173 } 168 }
174 } else { 169 } else {
175 if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) 170 if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
@@ -179,7 +174,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
179 if (watchdog) 174 if (watchdog)
180 del_timer(&watchdog_timer); 175 del_timer(&watchdog_timer);
181 watchdog = cs; 176 watchdog = cs;
182 init_timer_deferrable(&watchdog_timer); 177 init_timer(&watchdog_timer);
183 watchdog_timer.function = clocksource_watchdog; 178 watchdog_timer.function = clocksource_watchdog;
184 179
185 /* Reset watchdog cycles */ 180 /* Reset watchdog cycles */
@@ -190,8 +185,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
190 watchdog_last = watchdog->read(); 185 watchdog_last = watchdog->read();
191 watchdog_timer.expires = 186 watchdog_timer.expires =
192 jiffies + WATCHDOG_INTERVAL; 187 jiffies + WATCHDOG_INTERVAL;
193 add_timer_on(&watchdog_timer, 188 add_timer(&watchdog_timer);
194 first_cpu(cpu_online_map));
195 } 189 }
196 } 190 }
197 } 191 }
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 671af612b768..a3fa587c350c 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -191,8 +191,12 @@ static void change_clocksource(void)
191 191
192 tick_clock_notify(); 192 tick_clock_notify();
193 193
194 /*
195 * We're holding xtime lock and waking up klogd would deadlock
196 * us on enqueue. So no printing!
194 printk(KERN_INFO "Time: %s clocksource has been installed.\n", 197 printk(KERN_INFO "Time: %s clocksource has been installed.\n",
195 clock->name); 198 clock->name);
199 */
196} 200}
197#else 201#else
198static inline void change_clocksource(void) { } 202static inline void change_clocksource(void) { }
diff --git a/kernel/timer.c b/kernel/timer.c
index 99b00a25f88b..b024106daa70 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -451,10 +451,18 @@ void add_timer_on(struct timer_list *timer, int cpu)
451 spin_lock_irqsave(&base->lock, flags); 451 spin_lock_irqsave(&base->lock, flags);
452 timer_set_base(timer, base); 452 timer_set_base(timer, base);
453 internal_add_timer(base, timer); 453 internal_add_timer(base, timer);
454 /*
455 * Check whether the other CPU is idle and needs to be
456 * triggered to reevaluate the timer wheel when nohz is
457 * active. We are protected against the other CPU fiddling
458 * with the timer by holding the timer base lock. This also
459 * makes sure that a CPU on the way to idle can not evaluate
460 * the timer wheel.
461 */
462 wake_up_idle_cpu(cpu);
454 spin_unlock_irqrestore(&base->lock, flags); 463 spin_unlock_irqrestore(&base->lock, flags);
455} 464}
456 465
457
458/** 466/**
459 * mod_timer - modify a timer's timeout 467 * mod_timer - modify a timer's timeout
460 * @timer: the timer to be modified 468 * @timer: the timer to be modified
diff --git a/lib/devres.c b/lib/devres.c
index b1d336ce7f3d..edc27a5d1b73 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -298,6 +298,31 @@ int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name)
298EXPORT_SYMBOL(pcim_iomap_regions); 298EXPORT_SYMBOL(pcim_iomap_regions);
299 299
300/** 300/**
301 * pcim_iomap_regions_request_all - Request all BARs and iomap specified ones
302 * @pdev: PCI device to map IO resources for
303 * @mask: Mask of BARs to iomap
304 * @name: Name used when requesting regions
305 *
306 * Request all PCI BARs and iomap regions specified by @mask.
307 */
308int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
309 const char *name)
310{
311 int request_mask = ((1 << 6) - 1) & ~mask;
312 int rc;
313
314 rc = pci_request_selected_regions(pdev, request_mask, name);
315 if (rc)
316 return rc;
317
318 rc = pcim_iomap_regions(pdev, mask, name);
319 if (rc)
320 pci_release_selected_regions(pdev, request_mask);
321 return rc;
322}
323EXPORT_SYMBOL(pcim_iomap_regions_request_all);
324
325/**
301 * pcim_iounmap_regions - Unmap and release PCI BARs 326 * pcim_iounmap_regions - Unmap and release PCI BARs
302 * @pdev: PCI device to map IO resources for 327 * @pdev: PCI device to map IO resources for
303 * @mask: Mask of BARs to unmap and release 328 * @mask: Mask of BARs to unmap and release
diff --git a/lib/iomap.c b/lib/iomap.c
index db004a9ff509..dd6ca48fe6b0 100644
--- a/lib/iomap.c
+++ b/lib/iomap.c
@@ -256,7 +256,7 @@ EXPORT_SYMBOL(ioport_unmap);
256 * */ 256 * */
257void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) 257void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
258{ 258{
259 unsigned long start = pci_resource_start(dev, bar); 259 resource_size_t start = pci_resource_start(dev, bar);
260 unsigned long len = pci_resource_len(dev, bar); 260 unsigned long len = pci_resource_len(dev, bar);
261 unsigned long flags = pci_resource_flags(dev, bar); 261 unsigned long flags = pci_resource_flags(dev, bar);
262 262
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 5a402e2982af..5b6d7f6956b9 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -55,7 +55,7 @@ int kobject_action_type(const char *buf, size_t count,
55 enum kobject_action action; 55 enum kobject_action action;
56 int ret = -EINVAL; 56 int ret = -EINVAL;
57 57
58 if (count && buf[count-1] == '\n') 58 if (count && (buf[count-1] == '\n' || buf[count-1] == '\0'))
59 count--; 59 count--;
60 60
61 if (!count) 61 if (!count)
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index 4bb5a11e18a2..025922807e6e 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -310,7 +310,9 @@ map_single(struct device *hwdev, char *buffer, size_t size, int dir)
310 start_dma_addr = virt_to_bus(io_tlb_start) & mask; 310 start_dma_addr = virt_to_bus(io_tlb_start) & mask;
311 311
312 offset_slots = ALIGN(start_dma_addr, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT; 312 offset_slots = ALIGN(start_dma_addr, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT;
313 max_slots = ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT; 313 max_slots = mask + 1
314 ? ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT
315 : 1UL << (BITS_PER_LONG - IO_TLB_SHIFT);
314 316
315 /* 317 /*
316 * For mappings greater than a page, we limit the stride (and 318 * For mappings greater than a page, we limit the stride (and
@@ -333,16 +335,18 @@ map_single(struct device *hwdev, char *buffer, size_t size, int dir)
333 index = ALIGN(io_tlb_index, stride); 335 index = ALIGN(io_tlb_index, stride);
334 if (index >= io_tlb_nslabs) 336 if (index >= io_tlb_nslabs)
335 index = 0; 337 index = 0;
336
337 while (is_span_boundary(index, nslots, offset_slots,
338 max_slots)) {
339 index += stride;
340 if (index >= io_tlb_nslabs)
341 index = 0;
342 }
343 wrap = index; 338 wrap = index;
344 339
345 do { 340 do {
341 while (is_span_boundary(index, nslots, offset_slots,
342 max_slots)) {
343 index += stride;
344 if (index >= io_tlb_nslabs)
345 index = 0;
346 if (index == wrap)
347 goto not_found;
348 }
349
346 /* 350 /*
347 * If we find a slot that indicates we have 'nslots' 351 * If we find a slot that indicates we have 'nslots'
348 * number of contiguous buffers, we allocate the 352 * number of contiguous buffers, we allocate the
@@ -367,14 +371,12 @@ map_single(struct device *hwdev, char *buffer, size_t size, int dir)
367 371
368 goto found; 372 goto found;
369 } 373 }
370 do { 374 index += stride;
371 index += stride; 375 if (index >= io_tlb_nslabs)
372 if (index >= io_tlb_nslabs) 376 index = 0;
373 index = 0;
374 } while (is_span_boundary(index, nslots, offset_slots,
375 max_slots));
376 } while (index != wrap); 377 } while (index != wrap);
377 378
379 not_found:
378 spin_unlock_irqrestore(&io_tlb_lock, flags); 380 spin_unlock_irqrestore(&io_tlb_lock, flags);
379 return NULL; 381 return NULL;
380 } 382 }
diff --git a/mm/bootmem.c b/mm/bootmem.c
index f6ff4337b424..2ccea700968f 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -125,6 +125,7 @@ static int __init reserve_bootmem_core(bootmem_data_t *bdata,
125 BUG_ON(!size); 125 BUG_ON(!size);
126 BUG_ON(PFN_DOWN(addr) >= bdata->node_low_pfn); 126 BUG_ON(PFN_DOWN(addr) >= bdata->node_low_pfn);
127 BUG_ON(PFN_UP(addr + size) > bdata->node_low_pfn); 127 BUG_ON(PFN_UP(addr + size) > bdata->node_low_pfn);
128 BUG_ON(addr < bdata->node_boot_start);
128 129
129 sidx = PFN_DOWN(addr - bdata->node_boot_start); 130 sidx = PFN_DOWN(addr - bdata->node_boot_start);
130 eidx = PFN_UP(addr + size - bdata->node_boot_start); 131 eidx = PFN_UP(addr + size - bdata->node_boot_start);
@@ -156,21 +157,31 @@ static void __init free_bootmem_core(bootmem_data_t *bdata, unsigned long addr,
156 unsigned long sidx, eidx; 157 unsigned long sidx, eidx;
157 unsigned long i; 158 unsigned long i;
158 159
160 BUG_ON(!size);
161
162 /* out range */
163 if (addr + size < bdata->node_boot_start ||
164 PFN_DOWN(addr) > bdata->node_low_pfn)
165 return;
159 /* 166 /*
160 * round down end of usable mem, partially free pages are 167 * round down end of usable mem, partially free pages are
161 * considered reserved. 168 * considered reserved.
162 */ 169 */
163 BUG_ON(!size);
164 BUG_ON(PFN_DOWN(addr + size) > bdata->node_low_pfn);
165 170
166 if (addr < bdata->last_success) 171 if (addr >= bdata->node_boot_start && addr < bdata->last_success)
167 bdata->last_success = addr; 172 bdata->last_success = addr;
168 173
169 /* 174 /*
170 * Round up the beginning of the address. 175 * Round up to index to the range.
171 */ 176 */
172 sidx = PFN_UP(addr) - PFN_DOWN(bdata->node_boot_start); 177 if (PFN_UP(addr) > PFN_DOWN(bdata->node_boot_start))
178 sidx = PFN_UP(addr) - PFN_DOWN(bdata->node_boot_start);
179 else
180 sidx = 0;
181
173 eidx = PFN_DOWN(addr + size - bdata->node_boot_start); 182 eidx = PFN_DOWN(addr + size - bdata->node_boot_start);
183 if (eidx > bdata->node_low_pfn - PFN_DOWN(bdata->node_boot_start))
184 eidx = bdata->node_low_pfn - PFN_DOWN(bdata->node_boot_start);
174 185
175 for (i = sidx; i < eidx; i++) { 186 for (i = sidx; i < eidx; i++) {
176 if (unlikely(!test_and_clear_bit(i, bdata->node_bootmem_map))) 187 if (unlikely(!test_and_clear_bit(i, bdata->node_bootmem_map)))
@@ -421,7 +432,9 @@ int __init reserve_bootmem(unsigned long addr, unsigned long size,
421 432
422void __init free_bootmem(unsigned long addr, unsigned long size) 433void __init free_bootmem(unsigned long addr, unsigned long size)
423{ 434{
424 free_bootmem_core(NODE_DATA(0)->bdata, addr, size); 435 bootmem_data_t *bdata;
436 list_for_each_entry(bdata, &bdata_list, list)
437 free_bootmem_core(bdata, addr, size);
425} 438}
426 439
427unsigned long __init free_all_bootmem(void) 440unsigned long __init free_all_bootmem(void)
diff --git a/mm/filemap.c b/mm/filemap.c
index df343d1e6345..07e9d9258b48 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -343,7 +343,7 @@ int sync_page_range(struct inode *inode, struct address_space *mapping,
343EXPORT_SYMBOL(sync_page_range); 343EXPORT_SYMBOL(sync_page_range);
344 344
345/** 345/**
346 * sync_page_range_nolock 346 * sync_page_range_nolock - write & wait on all pages in the passed range without locking
347 * @inode: target inode 347 * @inode: target inode
348 * @mapping: target address_space 348 * @mapping: target address_space
349 * @pos: beginning offset in pages to write 349 * @pos: beginning offset in pages to write
@@ -611,7 +611,10 @@ int __lock_page_killable(struct page *page)
611 sync_page_killable, TASK_KILLABLE); 611 sync_page_killable, TASK_KILLABLE);
612} 612}
613 613
614/* 614/**
615 * __lock_page_nosync - get a lock on the page, without calling sync_page()
616 * @page: the page to lock
617 *
615 * Variant of lock_page that does not require the caller to hold a reference 618 * Variant of lock_page that does not require the caller to hold a reference
616 * on the page's mapping. 619 * on the page's mapping.
617 */ 620 */
@@ -1538,9 +1541,20 @@ repeat:
1538 return page; 1541 return page;
1539} 1542}
1540 1543
1541/* 1544/**
1545 * read_cache_page_async - read into page cache, fill it if needed
1546 * @mapping: the page's address_space
1547 * @index: the page index
1548 * @filler: function to perform the read
1549 * @data: destination for read data
1550 *
1542 * Same as read_cache_page, but don't wait for page to become unlocked 1551 * Same as read_cache_page, but don't wait for page to become unlocked
1543 * after submitting it to the filler. 1552 * after submitting it to the filler.
1553 *
1554 * Read into the page cache. If a page already exists, and PageUptodate() is
1555 * not set, try to fill the page but don't wait for it to become unlocked.
1556 *
1557 * If the page does not get brought uptodate, return -EIO.
1544 */ 1558 */
1545struct page *read_cache_page_async(struct address_space *mapping, 1559struct page *read_cache_page_async(struct address_space *mapping,
1546 pgoff_t index, 1560 pgoff_t index,
diff --git a/mm/fremap.c b/mm/fremap.c
index 69a37c2bdf81..07a9c82ce1a3 100644
--- a/mm/fremap.c
+++ b/mm/fremap.c
@@ -113,7 +113,7 @@ static int populate_range(struct mm_struct *mm, struct vm_area_struct *vma,
113 * mmap()/mremap() it does not create any new vmas. The new mappings are 113 * mmap()/mremap() it does not create any new vmas. The new mappings are
114 * also safe across swapout. 114 * also safe across swapout.
115 * 115 *
116 * NOTE: the 'prot' parameter right now is ignored (but must be zero), 116 * NOTE: the @prot parameter right now is ignored (but must be zero),
117 * and the vma's default protection is used. Arbitrary protections 117 * and the vma's default protection is used. Arbitrary protections
118 * might be implemented in the future. 118 * might be implemented in the future.
119 */ 119 */
diff --git a/mm/highmem.c b/mm/highmem.c
index 35d47733cde4..7da4a7b6af11 100644
--- a/mm/highmem.c
+++ b/mm/highmem.c
@@ -104,8 +104,9 @@ static void flush_all_zero_pkmaps(void)
104 flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP)); 104 flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
105} 105}
106 106
107/* Flush all unused kmap mappings in order to remove stray 107/**
108 mappings. */ 108 * kmap_flush_unused - flush all unused kmap mappings in order to remove stray mappings
109 */
109void kmap_flush_unused(void) 110void kmap_flush_unused(void)
110{ 111{
111 spin_lock(&kmap_lock); 112 spin_lock(&kmap_lock);
@@ -163,6 +164,14 @@ start:
163 return vaddr; 164 return vaddr;
164} 165}
165 166
167/**
168 * kmap_high - map a highmem page into memory
169 * @page: &struct page to map
170 *
171 * Returns the page's virtual memory address.
172 *
173 * We cannot call this from interrupts, as it may block.
174 */
166void *kmap_high(struct page *page) 175void *kmap_high(struct page *page)
167{ 176{
168 unsigned long vaddr; 177 unsigned long vaddr;
@@ -170,8 +179,6 @@ void *kmap_high(struct page *page)
170 /* 179 /*
171 * For highmem pages, we can't trust "virtual" until 180 * For highmem pages, we can't trust "virtual" until
172 * after we have the lock. 181 * after we have the lock.
173 *
174 * We cannot call this from interrupts, as it may block
175 */ 182 */
176 spin_lock(&kmap_lock); 183 spin_lock(&kmap_lock);
177 vaddr = (unsigned long)page_address(page); 184 vaddr = (unsigned long)page_address(page);
@@ -185,6 +192,10 @@ void *kmap_high(struct page *page)
185 192
186EXPORT_SYMBOL(kmap_high); 193EXPORT_SYMBOL(kmap_high);
187 194
195/**
196 * kunmap_high - map a highmem page into memory
197 * @page: &struct page to unmap
198 */
188void kunmap_high(struct page *page) 199void kunmap_high(struct page *page)
189{ 200{
190 unsigned long vaddr; 201 unsigned long vaddr;
@@ -259,6 +270,12 @@ static struct page_address_slot *page_slot(struct page *page)
259 return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)]; 270 return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)];
260} 271}
261 272
273/**
274 * page_address - get the mapped virtual address of a page
275 * @page: &struct page to get the virtual address of
276 *
277 * Returns the page's virtual address.
278 */
262void *page_address(struct page *page) 279void *page_address(struct page *page)
263{ 280{
264 unsigned long flags; 281 unsigned long flags;
@@ -288,6 +305,11 @@ done:
288 305
289EXPORT_SYMBOL(page_address); 306EXPORT_SYMBOL(page_address);
290 307
308/**
309 * set_page_address - set a page's virtual address
310 * @page: &struct page to set
311 * @virtual: virtual address to use
312 */
291void set_page_address(struct page *page, void *virtual) 313void set_page_address(struct page *page, void *virtual)
292{ 314{
293 unsigned long flags; 315 unsigned long flags;
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 74c1b6b0b37b..51c9e2c01640 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -401,12 +401,20 @@ static void return_unused_surplus_pages(unsigned long unused_resv_pages)
401 struct page *page; 401 struct page *page;
402 unsigned long nr_pages; 402 unsigned long nr_pages;
403 403
404 /*
405 * We want to release as many surplus pages as possible, spread
406 * evenly across all nodes. Iterate across all nodes until we
407 * can no longer free unreserved surplus pages. This occurs when
408 * the nodes with surplus pages have no free pages.
409 */
410 unsigned long remaining_iterations = num_online_nodes();
411
404 /* Uncommit the reservation */ 412 /* Uncommit the reservation */
405 resv_huge_pages -= unused_resv_pages; 413 resv_huge_pages -= unused_resv_pages;
406 414
407 nr_pages = min(unused_resv_pages, surplus_huge_pages); 415 nr_pages = min(unused_resv_pages, surplus_huge_pages);
408 416
409 while (nr_pages) { 417 while (remaining_iterations-- && nr_pages) {
410 nid = next_node(nid, node_online_map); 418 nid = next_node(nid, node_online_map);
411 if (nid == MAX_NUMNODES) 419 if (nid == MAX_NUMNODES)
412 nid = first_node(node_online_map); 420 nid = first_node(node_online_map);
@@ -424,6 +432,7 @@ static void return_unused_surplus_pages(unsigned long unused_resv_pages)
424 surplus_huge_pages--; 432 surplus_huge_pages--;
425 surplus_huge_pages_node[nid]--; 433 surplus_huge_pages_node[nid]--;
426 nr_pages--; 434 nr_pages--;
435 remaining_iterations = num_online_nodes();
427 } 436 }
428 } 437 }
429} 438}
@@ -671,9 +680,11 @@ int hugetlb_report_node_meminfo(int nid, char *buf)
671{ 680{
672 return sprintf(buf, 681 return sprintf(buf,
673 "Node %d HugePages_Total: %5u\n" 682 "Node %d HugePages_Total: %5u\n"
674 "Node %d HugePages_Free: %5u\n", 683 "Node %d HugePages_Free: %5u\n"
684 "Node %d HugePages_Surp: %5u\n",
675 nid, nr_huge_pages_node[nid], 685 nid, nr_huge_pages_node[nid],
676 nid, free_huge_pages_node[nid]); 686 nid, free_huge_pages_node[nid],
687 nid, surplus_huge_pages_node[nid]);
677} 688}
678 689
679/* Return the number pages of memory we physically have, in PAGE_SIZE units. */ 690/* Return the number pages of memory we physically have, in PAGE_SIZE units. */
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 8b9f6cae938e..9b648bd63451 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1079,7 +1079,7 @@ static void mem_cgroup_move_task(struct cgroup_subsys *ss,
1079 * Only thread group leaders are allowed to migrate, the mm_struct is 1079 * Only thread group leaders are allowed to migrate, the mm_struct is
1080 * in effect owned by the leader 1080 * in effect owned by the leader
1081 */ 1081 */
1082 if (p->tgid != p->pid) 1082 if (!thread_group_leader(p))
1083 goto out; 1083 goto out;
1084 1084
1085 css_get(&mem->css); 1085 css_get(&mem->css);
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 44b2da11bf43..f255eda693b0 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -37,6 +37,7 @@ static DEFINE_SPINLOCK(zone_scan_mutex);
37 * badness - calculate a numeric value for how bad this task has been 37 * badness - calculate a numeric value for how bad this task has been
38 * @p: task struct of which task we should calculate 38 * @p: task struct of which task we should calculate
39 * @uptime: current uptime in seconds 39 * @uptime: current uptime in seconds
40 * @mem: target memory controller
40 * 41 *
41 * The formula used is relatively simple and documented inline in the 42 * The formula used is relatively simple and documented inline in the
42 * function. The main rationale is that we want to select a good task 43 * function. The main rationale is that we want to select a good task
@@ -264,6 +265,9 @@ static struct task_struct *select_bad_process(unsigned long *ppoints,
264} 265}
265 266
266/** 267/**
268 * dump_tasks - dump current memory state of all system tasks
269 * @mem: target memory controller
270 *
267 * Dumps the current memory state of all system tasks, excluding kernel threads. 271 * Dumps the current memory state of all system tasks, excluding kernel threads.
268 * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj 272 * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj
269 * score, and name. 273 * score, and name.
@@ -298,7 +302,7 @@ static void dump_tasks(const struct mem_cgroup *mem)
298 } while_each_thread(g, p); 302 } while_each_thread(g, p);
299} 303}
300 304
301/** 305/*
302 * Send SIGKILL to the selected process irrespective of CAP_SYS_RAW_IO 306 * Send SIGKILL to the selected process irrespective of CAP_SYS_RAW_IO
303 * flag though it's unlikely that we select a process with CAP_SYS_RAW_IO 307 * flag though it's unlikely that we select a process with CAP_SYS_RAW_IO
304 * set. 308 * set.
@@ -504,6 +508,9 @@ void clear_zonelist_oom(struct zonelist *zonelist)
504 508
505/** 509/**
506 * out_of_memory - kill the "best" process when we run out of memory 510 * out_of_memory - kill the "best" process when we run out of memory
511 * @zonelist: zonelist pointer
512 * @gfp_mask: memory allocation flags
513 * @order: amount of memory being requested as a power of 2
507 * 514 *
508 * If we run out of memory, we have the choice between either 515 * If we run out of memory, we have the choice between either
509 * killing a random task (bad), letting the system crash (worse) 516 * killing a random task (bad), letting the system crash (worse)
diff --git a/mm/pagewalk.c b/mm/pagewalk.c
index b4f27d22da91..1cf1417ef8b7 100644
--- a/mm/pagewalk.c
+++ b/mm/pagewalk.c
@@ -77,11 +77,11 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end,
77 77
78/** 78/**
79 * walk_page_range - walk a memory map's page tables with a callback 79 * walk_page_range - walk a memory map's page tables with a callback
80 * @mm - memory map to walk 80 * @mm: memory map to walk
81 * @addr - starting address 81 * @addr: starting address
82 * @end - ending address 82 * @end: ending address
83 * @walk - set of callbacks to invoke for each level of the tree 83 * @walk: set of callbacks to invoke for each level of the tree
84 * @private - private data passed to the callback function 84 * @private: private data passed to the callback function
85 * 85 *
86 * Recursively walk the page table for the memory area in a VMA, 86 * Recursively walk the page table for the memory area in a VMA,
87 * calling supplied callbacks. Callbacks are called in-order (first 87 * calling supplied callbacks. Callbacks are called in-order (first
diff --git a/mm/readahead.c b/mm/readahead.c
index c9c50ca1ec38..8762e8988972 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -443,9 +443,10 @@ EXPORT_SYMBOL_GPL(page_cache_sync_readahead);
443 * pagecache pages 443 * pagecache pages
444 * 444 *
445 * page_cache_async_ondemand() should be called when a page is used which 445 * page_cache_async_ondemand() should be called when a page is used which
446 * has the PG_readahead flag: this is a marker to suggest that the application 446 * has the PG_readahead flag; this is a marker to suggest that the application
447 * has used up enough of the readahead window that we should start pulling in 447 * has used up enough of the readahead window that we should start pulling in
448 * more pages. */ 448 * more pages.
449 */
449void 450void
450page_cache_async_readahead(struct address_space *mapping, 451page_cache_async_readahead(struct address_space *mapping,
451 struct file_ra_state *ra, struct file *filp, 452 struct file_ra_state *ra, struct file *filp,
diff --git a/mm/rmap.c b/mm/rmap.c
index 0c9a2df06c39..997f06907b6d 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -335,6 +335,7 @@ static int page_referenced_anon(struct page *page,
335/** 335/**
336 * page_referenced_file - referenced check for object-based rmap 336 * page_referenced_file - referenced check for object-based rmap
337 * @page: the page we're checking references on. 337 * @page: the page we're checking references on.
338 * @mem_cont: target memory controller
338 * 339 *
339 * For an object-based mapped page, find all the places it is mapped and 340 * For an object-based mapped page, find all the places it is mapped and
340 * check/clear the referenced flag. This is done by following the page->mapping 341 * check/clear the referenced flag. This is done by following the page->mapping
@@ -402,6 +403,7 @@ static int page_referenced_file(struct page *page,
402 * page_referenced - test if the page was referenced 403 * page_referenced - test if the page was referenced
403 * @page: the page to test 404 * @page: the page to test
404 * @is_locked: caller holds lock on the page 405 * @is_locked: caller holds lock on the page
406 * @mem_cont: target memory controller
405 * 407 *
406 * Quick test_and_clear_referenced for all mappings to a page, 408 * Quick test_and_clear_referenced for all mappings to a page,
407 * returns the number of ptes which referenced the page. 409 * returns the number of ptes which referenced the page.
@@ -506,7 +508,7 @@ int page_mkclean(struct page *page)
506EXPORT_SYMBOL_GPL(page_mkclean); 508EXPORT_SYMBOL_GPL(page_mkclean);
507 509
508/** 510/**
509 * page_set_anon_rmap - setup new anonymous rmap 511 * __page_set_anon_rmap - setup new anonymous rmap
510 * @page: the page to add the mapping to 512 * @page: the page to add the mapping to
511 * @vma: the vm area in which the mapping is added 513 * @vma: the vm area in which the mapping is added
512 * @address: the user virtual address mapped 514 * @address: the user virtual address mapped
@@ -530,7 +532,7 @@ static void __page_set_anon_rmap(struct page *page,
530} 532}
531 533
532/** 534/**
533 * page_set_anon_rmap - sanity check anonymous rmap addition 535 * __page_check_anon_rmap - sanity check anonymous rmap addition
534 * @page: the page to add the mapping to 536 * @page: the page to add the mapping to
535 * @vma: the vm area in which the mapping is added 537 * @vma: the vm area in which the mapping is added
536 * @address: the user virtual address mapped 538 * @address: the user virtual address mapped
@@ -583,7 +585,7 @@ void page_add_anon_rmap(struct page *page,
583 } 585 }
584} 586}
585 587
586/* 588/**
587 * page_add_new_anon_rmap - add pte mapping to a new anonymous page 589 * page_add_new_anon_rmap - add pte mapping to a new anonymous page
588 * @page: the page to add the mapping to 590 * @page: the page to add the mapping to
589 * @vma: the vm area in which the mapping is added 591 * @vma: the vm area in which the mapping is added
@@ -623,6 +625,8 @@ void page_add_file_rmap(struct page *page)
623/** 625/**
624 * page_dup_rmap - duplicate pte mapping to a page 626 * page_dup_rmap - duplicate pte mapping to a page
625 * @page: the page to add the mapping to 627 * @page: the page to add the mapping to
628 * @vma: the vm area being duplicated
629 * @address: the user virtual address mapped
626 * 630 *
627 * For copy_page_range only: minimal extract from page_add_file_rmap / 631 * For copy_page_range only: minimal extract from page_add_file_rmap /
628 * page_add_anon_rmap, avoiding unnecessary tests (already checked) so it's 632 * page_add_anon_rmap, avoiding unnecessary tests (already checked) so it's
@@ -642,6 +646,7 @@ void page_dup_rmap(struct page *page, struct vm_area_struct *vma, unsigned long
642/** 646/**
643 * page_remove_rmap - take down pte mapping from a page 647 * page_remove_rmap - take down pte mapping from a page
644 * @page: page to remove mapping from 648 * @page: page to remove mapping from
649 * @vma: the vm area in which the mapping is removed
645 * 650 *
646 * The caller needs to hold the pte lock. 651 * The caller needs to hold the pte lock.
647 */ 652 */
@@ -890,6 +895,7 @@ static int try_to_unmap_anon(struct page *page, int migration)
890/** 895/**
891 * try_to_unmap_file - unmap file page using the object-based rmap method 896 * try_to_unmap_file - unmap file page using the object-based rmap method
892 * @page: the page to unmap 897 * @page: the page to unmap
898 * @migration: migration flag
893 * 899 *
894 * Find all the mappings of a page using the mapping pointer and the vma chains 900 * Find all the mappings of a page using the mapping pointer and the vma chains
895 * contained in the address_space struct it points to. 901 * contained in the address_space struct it points to.
@@ -986,6 +992,7 @@ out:
986/** 992/**
987 * try_to_unmap - try to remove all page table mappings to a page 993 * try_to_unmap - try to remove all page table mappings to a page
988 * @page: the page to get unmapped 994 * @page: the page to get unmapped
995 * @migration: migration flag
989 * 996 *
990 * Tries to remove all the page table entries which are mapping this 997 * Tries to remove all the page table entries which are mapping this
991 * page, used in the pageout path. Caller must hold the page lock. 998 * page, used in the pageout path. Caller must hold the page lock.
diff --git a/mm/shmem.c b/mm/shmem.c
index 3372bc579e89..f514dd392cd9 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -244,9 +244,8 @@ static void shmem_free_inode(struct super_block *sb)
244 } 244 }
245} 245}
246 246
247/* 247/**
248 * shmem_recalc_inode - recalculate the size of an inode 248 * shmem_recalc_inode - recalculate the size of an inode
249 *
250 * @inode: inode to recalc 249 * @inode: inode to recalc
251 * 250 *
252 * We have to calculate the free blocks since the mm can drop 251 * We have to calculate the free blocks since the mm can drop
@@ -270,9 +269,8 @@ static void shmem_recalc_inode(struct inode *inode)
270 } 269 }
271} 270}
272 271
273/* 272/**
274 * shmem_swp_entry - find the swap vector position in the info structure 273 * shmem_swp_entry - find the swap vector position in the info structure
275 *
276 * @info: info structure for the inode 274 * @info: info structure for the inode
277 * @index: index of the page to find 275 * @index: index of the page to find
278 * @page: optional page to add to the structure. Has to be preset to 276 * @page: optional page to add to the structure. Has to be preset to
@@ -374,13 +372,13 @@ static void shmem_swp_set(struct shmem_inode_info *info, swp_entry_t *entry, uns
374 } 372 }
375} 373}
376 374
377/* 375/**
378 * shmem_swp_alloc - get the position of the swap entry for the page. 376 * shmem_swp_alloc - get the position of the swap entry for the page.
379 * If it does not exist allocate the entry.
380 *
381 * @info: info structure for the inode 377 * @info: info structure for the inode
382 * @index: index of the page to find 378 * @index: index of the page to find
383 * @sgp: check and recheck i_size? skip allocation? 379 * @sgp: check and recheck i_size? skip allocation?
380 *
381 * If the entry does not exist, allocate it.
384 */ 382 */
385static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp) 383static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp)
386{ 384{
@@ -440,9 +438,8 @@ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long
440 return entry; 438 return entry;
441} 439}
442 440
443/* 441/**
444 * shmem_free_swp - free some swap entries in a directory 442 * shmem_free_swp - free some swap entries in a directory
445 *
446 * @dir: pointer to the directory 443 * @dir: pointer to the directory
447 * @edir: pointer after last entry of the directory 444 * @edir: pointer after last entry of the directory
448 * @punch_lock: pointer to spinlock when needed for the holepunch case 445 * @punch_lock: pointer to spinlock when needed for the holepunch case
@@ -2022,7 +2019,7 @@ static const struct inode_operations shmem_symlink_inode_operations = {
2022}; 2019};
2023 2020
2024#ifdef CONFIG_TMPFS_POSIX_ACL 2021#ifdef CONFIG_TMPFS_POSIX_ACL
2025/** 2022/*
2026 * Superblocks without xattr inode operations will get security.* xattr 2023 * Superblocks without xattr inode operations will get security.* xattr
2027 * support from the VFS "for free". As soon as we have any other xattrs 2024 * support from the VFS "for free". As soon as we have any other xattrs
2028 * like ACLs, we also need to implement the security.* handlers at 2025 * like ACLs, we also need to implement the security.* handlers at
@@ -2561,12 +2558,11 @@ out4:
2561} 2558}
2562module_init(init_tmpfs) 2559module_init(init_tmpfs)
2563 2560
2564/* 2561/**
2565 * shmem_file_setup - get an unlinked file living in tmpfs 2562 * shmem_file_setup - get an unlinked file living in tmpfs
2566 *
2567 * @name: name for dentry (to be seen in /proc/<pid>/maps 2563 * @name: name for dentry (to be seen in /proc/<pid>/maps
2568 * @size: size to be set for the file 2564 * @size: size to be set for the file
2569 * 2565 * @flags: vm_flags
2570 */ 2566 */
2571struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) 2567struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags)
2572{ 2568{
@@ -2621,9 +2617,8 @@ put_memory:
2621 return ERR_PTR(error); 2617 return ERR_PTR(error);
2622} 2618}
2623 2619
2624/* 2620/**
2625 * shmem_zero_setup - setup a shared anonymous mapping 2621 * shmem_zero_setup - setup a shared anonymous mapping
2626 *
2627 * @vma: the vma to be mmapped is prepared by do_mmap_pgoff 2622 * @vma: the vma to be mmapped is prepared by do_mmap_pgoff
2628 */ 2623 */
2629int shmem_zero_setup(struct vm_area_struct *vma) 2624int shmem_zero_setup(struct vm_area_struct *vma)
diff --git a/mm/slab.c b/mm/slab.c
index e6c698f55674..04b308c3bc54 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1481,7 +1481,7 @@ void __init kmem_cache_init(void)
1481 list_add(&cache_cache.next, &cache_chain); 1481 list_add(&cache_cache.next, &cache_chain);
1482 cache_cache.colour_off = cache_line_size(); 1482 cache_cache.colour_off = cache_line_size();
1483 cache_cache.array[smp_processor_id()] = &initarray_cache.cache; 1483 cache_cache.array[smp_processor_id()] = &initarray_cache.cache;
1484 cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE]; 1484 cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE + node];
1485 1485
1486 /* 1486 /*
1487 * struct kmem_cache size depends on nr_node_ids, which 1487 * struct kmem_cache size depends on nr_node_ids, which
@@ -1602,7 +1602,7 @@ void __init kmem_cache_init(void)
1602 int nid; 1602 int nid;
1603 1603
1604 for_each_online_node(nid) { 1604 for_each_online_node(nid) {
1605 init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], nid); 1605 init_list(&cache_cache, &initkmem_list3[CACHE_CACHE + nid], nid);
1606 1606
1607 init_list(malloc_sizes[INDEX_AC].cs_cachep, 1607 init_list(malloc_sizes[INDEX_AC].cs_cachep,
1608 &initkmem_list3[SIZE_AC + nid], nid); 1608 &initkmem_list3[SIZE_AC + nid], nid);
@@ -3624,12 +3624,11 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
3624EXPORT_SYMBOL(kmem_cache_alloc); 3624EXPORT_SYMBOL(kmem_cache_alloc);
3625 3625
3626/** 3626/**
3627 * kmem_ptr_validate - check if an untrusted pointer might 3627 * kmem_ptr_validate - check if an untrusted pointer might be a slab entry.
3628 * be a slab entry.
3629 * @cachep: the cache we're checking against 3628 * @cachep: the cache we're checking against
3630 * @ptr: pointer to validate 3629 * @ptr: pointer to validate
3631 * 3630 *
3632 * This verifies that the untrusted pointer looks sane: 3631 * This verifies that the untrusted pointer looks sane;
3633 * it is _not_ a guarantee that the pointer is actually 3632 * it is _not_ a guarantee that the pointer is actually
3634 * part of the slab cache in question, but it at least 3633 * part of the slab cache in question, but it at least
3635 * validates that the pointer can be dereferenced and 3634 * validates that the pointer can be dereferenced and
diff --git a/mm/slub.c b/mm/slub.c
index 96d63eb3ab17..84ed734b96b3 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1470,6 +1470,9 @@ static void *__slab_alloc(struct kmem_cache *s,
1470 void **object; 1470 void **object;
1471 struct page *new; 1471 struct page *new;
1472 1472
1473 /* We handle __GFP_ZERO in the caller */
1474 gfpflags &= ~__GFP_ZERO;
1475
1473 if (!c->page) 1476 if (!c->page)
1474 goto new_slab; 1477 goto new_slab;
1475 1478
@@ -1536,9 +1539,15 @@ new_slab:
1536 * That is only possible if certain conditions are met that are being 1539 * That is only possible if certain conditions are met that are being
1537 * checked when a slab is created. 1540 * checked when a slab is created.
1538 */ 1541 */
1539 if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) 1542 if (!(gfpflags & __GFP_NORETRY) &&
1540 return kmalloc_large(s->objsize, gfpflags); 1543 (s->flags & __PAGE_ALLOC_FALLBACK)) {
1541 1544 if (gfpflags & __GFP_WAIT)
1545 local_irq_enable();
1546 object = kmalloc_large(s->objsize, gfpflags);
1547 if (gfpflags & __GFP_WAIT)
1548 local_irq_disable();
1549 return object;
1550 }
1542 return NULL; 1551 return NULL;
1543debug: 1552debug:
1544 if (!alloc_debug_processing(s, c->page, object, addr)) 1553 if (!alloc_debug_processing(s, c->page, object, addr))
@@ -2679,6 +2688,7 @@ void kfree(const void *x)
2679} 2688}
2680EXPORT_SYMBOL(kfree); 2689EXPORT_SYMBOL(kfree);
2681 2690
2691#if defined(SLUB_DEBUG) || defined(CONFIG_SLABINFO)
2682static unsigned long count_partial(struct kmem_cache_node *n) 2692static unsigned long count_partial(struct kmem_cache_node *n)
2683{ 2693{
2684 unsigned long flags; 2694 unsigned long flags;
@@ -2691,6 +2701,7 @@ static unsigned long count_partial(struct kmem_cache_node *n)
2691 spin_unlock_irqrestore(&n->list_lock, flags); 2701 spin_unlock_irqrestore(&n->list_lock, flags);
2692 return x; 2702 return x;
2693} 2703}
2704#endif
2694 2705
2695/* 2706/*
2696 * kmem_cache_shrink removes empty slabs from the partial lists and sorts 2707 * kmem_cache_shrink removes empty slabs from the partial lists and sorts
diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
index cd75b21dd4c3..99c4f36eb8a3 100644
--- a/mm/sparse-vmemmap.c
+++ b/mm/sparse-vmemmap.c
@@ -76,7 +76,7 @@ pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node)
76 pte_t entry; 76 pte_t entry;
77 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 77 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
78 if (!p) 78 if (!p)
79 return 0; 79 return NULL;
80 entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL); 80 entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL);
81 set_pte_at(&init_mm, addr, pte, entry); 81 set_pte_at(&init_mm, addr, pte, entry);
82 } 82 }
@@ -89,7 +89,7 @@ pmd_t * __meminit vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node)
89 if (pmd_none(*pmd)) { 89 if (pmd_none(*pmd)) {
90 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 90 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
91 if (!p) 91 if (!p)
92 return 0; 92 return NULL;
93 pmd_populate_kernel(&init_mm, pmd, p); 93 pmd_populate_kernel(&init_mm, pmd, p);
94 } 94 }
95 return pmd; 95 return pmd;
@@ -101,7 +101,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
101 if (pud_none(*pud)) { 101 if (pud_none(*pud)) {
102 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 102 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
103 if (!p) 103 if (!p)
104 return 0; 104 return NULL;
105 pud_populate(&init_mm, pud, p); 105 pud_populate(&init_mm, pud, p);
106 } 106 }
107 return pud; 107 return pud;
@@ -113,7 +113,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
113 if (pgd_none(*pgd)) { 113 if (pgd_none(*pgd)) {
114 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 114 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
115 if (!p) 115 if (!p)
116 return 0; 116 return NULL;
117 pgd_populate(&init_mm, pgd, p); 117 pgd_populate(&init_mm, pgd, p);
118 } 118 }
119 return pgd; 119 return pgd;
diff --git a/mm/swap.c b/mm/swap.c
index d4ec59aa5c46..aa1139ccf3a7 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -78,12 +78,11 @@ void put_page(struct page *page)
78EXPORT_SYMBOL(put_page); 78EXPORT_SYMBOL(put_page);
79 79
80/** 80/**
81 * put_pages_list(): release a list of pages 81 * put_pages_list() - release a list of pages
82 * @pages: list of pages threaded on page->lru
82 * 83 *
83 * Release a list of pages which are strung together on page.lru. Currently 84 * Release a list of pages which are strung together on page.lru. Currently
84 * used by read_cache_pages() and related error recovery code. 85 * used by read_cache_pages() and related error recovery code.
85 *
86 * @pages: list of pages threaded on page->lru
87 */ 86 */
88void put_pages_list(struct list_head *pages) 87void put_pages_list(struct list_head *pages)
89{ 88{
diff --git a/mm/swap_state.c b/mm/swap_state.c
index ec42f01a8d02..50757ee3f9f3 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -115,6 +115,7 @@ void __delete_from_swap_cache(struct page *page)
115/** 115/**
116 * add_to_swap - allocate swap space for a page 116 * add_to_swap - allocate swap space for a page
117 * @page: page we want to move to swap 117 * @page: page we want to move to swap
118 * @gfp_mask: memory allocation flags
118 * 119 *
119 * Allocate swap space for the page and add the page to the 120 * Allocate swap space for the page and add the page to the
120 * swap cache. Caller needs to hold the page lock. 121 * swap cache. Caller needs to hold the page lock.
@@ -315,6 +316,7 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
315/** 316/**
316 * swapin_readahead - swap in pages in hope we need them soon 317 * swapin_readahead - swap in pages in hope we need them soon
317 * @entry: swap entry of this memory 318 * @entry: swap entry of this memory
319 * @gfp_mask: memory allocation flags
318 * @vma: user vma this address belongs to 320 * @vma: user vma this address belongs to
319 * @addr: target address for mempolicy 321 * @addr: target address for mempolicy
320 * 322 *
diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c
index 702083638c16..ae532f501943 100644
--- a/mm/tiny-shmem.c
+++ b/mm/tiny-shmem.c
@@ -39,12 +39,11 @@ static int __init init_tmpfs(void)
39} 39}
40module_init(init_tmpfs) 40module_init(init_tmpfs)
41 41
42/* 42/**
43 * shmem_file_setup - get an unlinked file living in tmpfs 43 * shmem_file_setup - get an unlinked file living in tmpfs
44 *
45 * @name: name for dentry (to be seen in /proc/<pid>/maps 44 * @name: name for dentry (to be seen in /proc/<pid>/maps
46 * @size: size to be set for the file 45 * @size: size to be set for the file
47 * 46 * @flags: vm_flags
48 */ 47 */
49struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) 48struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags)
50{ 49{
@@ -89,15 +88,16 @@ struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags)
89 88
90close_file: 89close_file:
91 put_filp(file); 90 put_filp(file);
91 return ERR_PTR(error);
92
92put_dentry: 93put_dentry:
93 dput(dentry); 94 dput(dentry);
94put_memory: 95put_memory:
95 return ERR_PTR(error); 96 return ERR_PTR(error);
96} 97}
97 98
98/* 99/**
99 * shmem_zero_setup - setup a shared anonymous mapping 100 * shmem_zero_setup - setup a shared anonymous mapping
100 *
101 * @vma: the vma to be mmapped is prepared by do_mmap_pgoff 101 * @vma: the vma to be mmapped is prepared by do_mmap_pgoff
102 */ 102 */
103int shmem_zero_setup(struct vm_area_struct *vma) 103int shmem_zero_setup(struct vm_area_struct *vma)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 950c0be9ca81..ecf91f8034bf 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -757,7 +757,8 @@ finished:
757 * @vma: vma to cover (map full range of vma) 757 * @vma: vma to cover (map full range of vma)
758 * @addr: vmalloc memory 758 * @addr: vmalloc memory
759 * @pgoff: number of pages into addr before first page to map 759 * @pgoff: number of pages into addr before first page to map
760 * @returns: 0 for success, -Exxx on failure 760 *
761 * Returns: 0 for success, -Exxx on failure
761 * 762 *
762 * This function checks that addr is a valid vmalloc'ed area, and 763 * This function checks that addr is a valid vmalloc'ed area, and
763 * that it is big enough to cover the vma. Will return failure if 764 * that it is big enough to cover the vma. Will return failure if
@@ -829,7 +830,8 @@ static int f(pte_t *pte, pgtable_t table, unsigned long addr, void *data)
829/** 830/**
830 * alloc_vm_area - allocate a range of kernel address space 831 * alloc_vm_area - allocate a range of kernel address space
831 * @size: size of the area 832 * @size: size of the area
832 * @returns: NULL on failure, vm_struct on success 833 *
834 * Returns: NULL on failure, vm_struct on success
833 * 835 *
834 * This function reserves a range of kernel address space, and 836 * This function reserves a range of kernel address space, and
835 * allocates pagetables to map that range. No actual mappings 837 * allocates pagetables to map that range. No actual mappings
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 45711585684e..4046434046e6 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -70,13 +70,6 @@ struct scan_control {
70 70
71 int order; 71 int order;
72 72
73 /*
74 * Pages that have (or should have) IO pending. If we run into
75 * a lot of these, we're better off waiting a little for IO to
76 * finish rather than scanning more pages in the VM.
77 */
78 int nr_io_pages;
79
80 /* Which cgroup do we reclaim from */ 73 /* Which cgroup do we reclaim from */
81 struct mem_cgroup *mem_cgroup; 74 struct mem_cgroup *mem_cgroup;
82 75
@@ -512,10 +505,8 @@ static unsigned long shrink_page_list(struct list_head *page_list,
512 */ 505 */
513 if (sync_writeback == PAGEOUT_IO_SYNC && may_enter_fs) 506 if (sync_writeback == PAGEOUT_IO_SYNC && may_enter_fs)
514 wait_on_page_writeback(page); 507 wait_on_page_writeback(page);
515 else { 508 else
516 sc->nr_io_pages++;
517 goto keep_locked; 509 goto keep_locked;
518 }
519 } 510 }
520 511
521 referenced = page_referenced(page, 1, sc->mem_cgroup); 512 referenced = page_referenced(page, 1, sc->mem_cgroup);
@@ -554,10 +545,8 @@ static unsigned long shrink_page_list(struct list_head *page_list,
554 if (PageDirty(page)) { 545 if (PageDirty(page)) {
555 if (sc->order <= PAGE_ALLOC_COSTLY_ORDER && referenced) 546 if (sc->order <= PAGE_ALLOC_COSTLY_ORDER && referenced)
556 goto keep_locked; 547 goto keep_locked;
557 if (!may_enter_fs) { 548 if (!may_enter_fs)
558 sc->nr_io_pages++;
559 goto keep_locked; 549 goto keep_locked;
560 }
561 if (!sc->may_writepage) 550 if (!sc->may_writepage)
562 goto keep_locked; 551 goto keep_locked;
563 552
@@ -568,10 +557,8 @@ static unsigned long shrink_page_list(struct list_head *page_list,
568 case PAGE_ACTIVATE: 557 case PAGE_ACTIVATE:
569 goto activate_locked; 558 goto activate_locked;
570 case PAGE_SUCCESS: 559 case PAGE_SUCCESS:
571 if (PageWriteback(page) || PageDirty(page)) { 560 if (PageWriteback(page) || PageDirty(page))
572 sc->nr_io_pages++;
573 goto keep; 561 goto keep;
574 }
575 /* 562 /*
576 * A synchronous write - probably a ramdisk. Go 563 * A synchronous write - probably a ramdisk. Go
577 * ahead and try to reclaim the page. 564 * ahead and try to reclaim the page.
@@ -1344,7 +1331,6 @@ static unsigned long do_try_to_free_pages(struct zone **zones, gfp_t gfp_mask,
1344 1331
1345 for (priority = DEF_PRIORITY; priority >= 0; priority--) { 1332 for (priority = DEF_PRIORITY; priority >= 0; priority--) {
1346 sc->nr_scanned = 0; 1333 sc->nr_scanned = 0;
1347 sc->nr_io_pages = 0;
1348 if (!priority) 1334 if (!priority)
1349 disable_swap_token(); 1335 disable_swap_token();
1350 nr_reclaimed += shrink_zones(priority, zones, sc); 1336 nr_reclaimed += shrink_zones(priority, zones, sc);
@@ -1379,8 +1365,7 @@ static unsigned long do_try_to_free_pages(struct zone **zones, gfp_t gfp_mask,
1379 } 1365 }
1380 1366
1381 /* Take a nap, wait for some writeback to complete */ 1367 /* Take a nap, wait for some writeback to complete */
1382 if (sc->nr_scanned && priority < DEF_PRIORITY - 2 && 1368 if (sc->nr_scanned && priority < DEF_PRIORITY - 2)
1383 sc->nr_io_pages > sc->swap_cluster_max)
1384 congestion_wait(WRITE, HZ/10); 1369 congestion_wait(WRITE, HZ/10);
1385 } 1370 }
1386 /* top priority shrink_caches still had more to do? don't OOM, then */ 1371 /* top priority shrink_caches still had more to do? don't OOM, then */
@@ -1514,7 +1499,6 @@ loop_again:
1514 if (!priority) 1499 if (!priority)
1515 disable_swap_token(); 1500 disable_swap_token();
1516 1501
1517 sc.nr_io_pages = 0;
1518 all_zones_ok = 1; 1502 all_zones_ok = 1;
1519 1503
1520 /* 1504 /*
@@ -1607,8 +1591,7 @@ loop_again:
1607 * OK, kswapd is getting into trouble. Take a nap, then take 1591 * OK, kswapd is getting into trouble. Take a nap, then take
1608 * another pass across the zones. 1592 * another pass across the zones.
1609 */ 1593 */
1610 if (total_scanned && priority < DEF_PRIORITY - 2 && 1594 if (total_scanned && priority < DEF_PRIORITY - 2)
1611 sc.nr_io_pages > sc.swap_cluster_max)
1612 congestion_wait(WRITE, HZ/10); 1595 congestion_wait(WRITE, HZ/10);
1613 1596
1614 /* 1597 /*
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 77f04e49a1a0..480ea90e7dcd 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -382,7 +382,7 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
382 vlan_dev_info(dev)->cnt_encap_on_xmit++; 382 vlan_dev_info(dev)->cnt_encap_on_xmit++;
383 383
384 pr_debug("%s: proto to encap: 0x%hx\n", 384 pr_debug("%s: proto to encap: 0x%hx\n",
385 __FUNCTION__, htons(veth->h_vlan_proto)); 385 __FUNCTION__, ntohs(veth->h_vlan_proto));
386 /* Construct the second two bytes. This field looks something 386 /* Construct the second two bytes. This field looks something
387 * like: 387 * like:
388 * usr_priority: 3 bits (high bits) 388 * usr_priority: 3 bits (high bits)
@@ -660,7 +660,7 @@ static int vlan_dev_init(struct net_device *dev)
660 int subclass = 0; 660 int subclass = 0;
661 661
662 /* IFF_BROADCAST|IFF_MULTICAST; ??? */ 662 /* IFF_BROADCAST|IFF_MULTICAST; ??? */
663 dev->flags = real_dev->flags & ~IFF_UP; 663 dev->flags = real_dev->flags & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI);
664 dev->iflink = real_dev->ifindex; 664 dev->iflink = real_dev->ifindex;
665 dev->state = (real_dev->state & ((1<<__LINK_STATE_NOCARRIER) | 665 dev->state = (real_dev->state & ((1<<__LINK_STATE_NOCARRIER) |
666 (1<<__LINK_STATE_DORMANT))) | 666 (1<<__LINK_STATE_DORMANT))) |
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
index 1aa9d5175398..f624dff76852 100644
--- a/net/9p/trans_fd.c
+++ b/net/9p/trans_fd.c
@@ -861,7 +861,6 @@ static void p9_mux_free_request(struct p9_conn *m, struct p9_req *req)
861 861
862static void p9_mux_flush_cb(struct p9_req *freq, void *a) 862static void p9_mux_flush_cb(struct p9_req *freq, void *a)
863{ 863{
864 p9_conn_req_callback cb;
865 int tag; 864 int tag;
866 struct p9_conn *m; 865 struct p9_conn *m;
867 struct p9_req *req, *rreq, *rptr; 866 struct p9_req *req, *rreq, *rptr;
@@ -872,7 +871,6 @@ static void p9_mux_flush_cb(struct p9_req *freq, void *a)
872 freq->tcall->params.tflush.oldtag); 871 freq->tcall->params.tflush.oldtag);
873 872
874 spin_lock(&m->lock); 873 spin_lock(&m->lock);
875 cb = NULL;
876 tag = freq->tcall->params.tflush.oldtag; 874 tag = freq->tcall->params.tflush.oldtag;
877 req = NULL; 875 req = NULL;
878 list_for_each_entry_safe(rreq, rptr, &m->req_list, req_list) { 876 list_for_each_entry_safe(rreq, rptr, &m->req_list, req_list) {
@@ -1522,7 +1520,7 @@ static int __init p9_trans_fd_init(void)
1522 v9fs_register_trans(&p9_unix_trans); 1520 v9fs_register_trans(&p9_unix_trans);
1523 v9fs_register_trans(&p9_fd_trans); 1521 v9fs_register_trans(&p9_fd_trans);
1524 1522
1525 return 1; 1523 return 0;
1526} 1524}
1527 1525
1528module_init(p9_trans_fd_init); 1526module_init(p9_trans_fd_init);
diff --git a/net/atm/clip.c b/net/atm/clip.c
index d30167c0b48e..2ab1e36098fd 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -947,6 +947,8 @@ static const struct file_operations arp_seq_fops = {
947}; 947};
948#endif 948#endif
949 949
950static void atm_clip_exit_noproc(void);
951
950static int __init atm_clip_init(void) 952static int __init atm_clip_init(void)
951{ 953{
952 neigh_table_init_no_netlink(&clip_tbl); 954 neigh_table_init_no_netlink(&clip_tbl);
@@ -963,18 +965,22 @@ static int __init atm_clip_init(void)
963 struct proc_dir_entry *p; 965 struct proc_dir_entry *p;
964 966
965 p = proc_create("arp", S_IRUGO, atm_proc_root, &arp_seq_fops); 967 p = proc_create("arp", S_IRUGO, atm_proc_root, &arp_seq_fops);
968 if (!p) {
969 printk(KERN_ERR "Unable to initialize "
970 "/proc/net/atm/arp\n");
971 atm_clip_exit_noproc();
972 return -ENOMEM;
973 }
966 } 974 }
967#endif 975#endif
968 976
969 return 0; 977 return 0;
970} 978}
971 979
972static void __exit atm_clip_exit(void) 980static void atm_clip_exit_noproc(void)
973{ 981{
974 struct net_device *dev, *next; 982 struct net_device *dev, *next;
975 983
976 remove_proc_entry("arp", atm_proc_root);
977
978 unregister_inetaddr_notifier(&clip_inet_notifier); 984 unregister_inetaddr_notifier(&clip_inet_notifier);
979 unregister_netdevice_notifier(&clip_dev_notifier); 985 unregister_netdevice_notifier(&clip_dev_notifier);
980 986
@@ -1005,6 +1011,13 @@ static void __exit atm_clip_exit(void)
1005 clip_tbl_hook = NULL; 1011 clip_tbl_hook = NULL;
1006} 1012}
1007 1013
1014static void __exit atm_clip_exit(void)
1015{
1016 remove_proc_entry("arp", atm_proc_root);
1017
1018 atm_clip_exit_noproc();
1019}
1020
1008module_init(atm_clip_init); 1021module_init(atm_clip_init);
1009module_exit(atm_clip_exit); 1022module_exit(atm_clip_exit);
1010MODULE_AUTHOR("Werner Almesberger"); 1023MODULE_AUTHOR("Werner Almesberger");
diff --git a/net/atm/lec.c b/net/atm/lec.c
index 0e450d12f035..a2efa7ff41f1 100644
--- a/net/atm/lec.c
+++ b/net/atm/lec.c
@@ -1250,6 +1250,10 @@ static int __init lane_module_init(void)
1250 struct proc_dir_entry *p; 1250 struct proc_dir_entry *p;
1251 1251
1252 p = proc_create("lec", S_IRUGO, atm_proc_root, &lec_seq_fops); 1252 p = proc_create("lec", S_IRUGO, atm_proc_root, &lec_seq_fops);
1253 if (!p) {
1254 printk(KERN_ERR "Unable to initialize /proc/net/atm/lec\n");
1255 return -ENOMEM;
1256 }
1253#endif 1257#endif
1254 1258
1255 register_atm_ioctl(&lane_ioctl_ops); 1259 register_atm_ioctl(&lane_ioctl_ops);
diff --git a/net/ax25/TODO b/net/ax25/TODO
index 4089c49e45cc..69fb4e368d92 100644
--- a/net/ax25/TODO
+++ b/net/ax25/TODO
@@ -9,10 +9,6 @@ being used.
9Routes to a device being taken down might be deleted by ax25_rt_device_down 9Routes to a device being taken down might be deleted by ax25_rt_device_down
10but added by somebody else before the device has been deleted fully. 10but added by somebody else before the device has been deleted fully.
11 11
12Massive amounts of lock_kernel / unlock_kernel are just a temporary solution to
13get around the removal of SOCKOPS_WRAP. A serious locking strategy has to be
14implemented.
15
16The ax25_rt_find_route synopsys is pervert but I somehow had to deal with 12The ax25_rt_find_route synopsys is pervert but I somehow had to deal with
17the race caused by the static variable in it's previous implementation. 13the race caused by the static variable in it's previous implementation.
18 14
diff --git a/net/bluetooth/bnep/bnep.h b/net/bluetooth/bnep/bnep.h
index a2992280c3d1..e69244dd8de8 100644
--- a/net/bluetooth/bnep/bnep.h
+++ b/net/bluetooth/bnep/bnep.h
@@ -174,7 +174,7 @@ struct bnep_session {
174 174
175void bnep_net_setup(struct net_device *dev); 175void bnep_net_setup(struct net_device *dev);
176int bnep_sock_init(void); 176int bnep_sock_init(void);
177int bnep_sock_cleanup(void); 177void bnep_sock_cleanup(void);
178 178
179static inline int bnep_mc_hash(__u8 *addr) 179static inline int bnep_mc_hash(__u8 *addr)
180{ 180{
diff --git a/net/bluetooth/bnep/sock.c b/net/bluetooth/bnep/sock.c
index 81065e548a1f..201e5b1ce473 100644
--- a/net/bluetooth/bnep/sock.c
+++ b/net/bluetooth/bnep/sock.c
@@ -257,12 +257,10 @@ error:
257 return err; 257 return err;
258} 258}
259 259
260int __exit bnep_sock_cleanup(void) 260void __exit bnep_sock_cleanup(void)
261{ 261{
262 if (bt_sock_unregister(BTPROTO_BNEP) < 0) 262 if (bt_sock_unregister(BTPROTO_BNEP) < 0)
263 BT_ERR("Can't unregister BNEP socket"); 263 BT_ERR("Can't unregister BNEP socket");
264 264
265 proto_unregister(&bnep_proto); 265 proto_unregister(&bnep_proto);
266
267 return 0;
268} 266}
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 930b58e7149a..aec6929f5c16 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -902,8 +902,6 @@ int hci_unregister_dev(struct hci_dev *hdev)
902 902
903 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type); 903 BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type);
904 904
905 hci_unregister_sysfs(hdev);
906
907 write_lock_bh(&hci_dev_list_lock); 905 write_lock_bh(&hci_dev_list_lock);
908 list_del(&hdev->list); 906 list_del(&hdev->list);
909 write_unlock_bh(&hci_dev_list_lock); 907 write_unlock_bh(&hci_dev_list_lock);
@@ -915,6 +913,8 @@ int hci_unregister_dev(struct hci_dev *hdev)
915 913
916 hci_notify(hdev, HCI_DEV_UNREG); 914 hci_notify(hdev, HCI_DEV_UNREG);
917 915
916 hci_unregister_sysfs(hdev);
917
918 __hci_dev_put(hdev); 918 __hci_dev_put(hdev);
919 919
920 return 0; 920 return 0;
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
index 14991323c273..b5d4019d3572 100644
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
@@ -734,7 +734,7 @@ error:
734 return err; 734 return err;
735} 735}
736 736
737int __exit hci_sock_cleanup(void) 737void __exit hci_sock_cleanup(void)
738{ 738{
739 if (bt_sock_unregister(BTPROTO_HCI) < 0) 739 if (bt_sock_unregister(BTPROTO_HCI) < 0)
740 BT_ERR("HCI socket unregistration failed"); 740 BT_ERR("HCI socket unregistration failed");
@@ -742,6 +742,4 @@ int __exit hci_sock_cleanup(void)
742 hci_unregister_notifier(&hci_sock_nblock); 742 hci_unregister_notifier(&hci_sock_nblock);
743 743
744 proto_unregister(&hci_sk_proto); 744 proto_unregister(&hci_sk_proto);
745
746 return 0;
747} 745}
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index bc40377136a2..9326c377822e 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -136,7 +136,7 @@ void br_fdb_cleanup(unsigned long _data)
136 this_timer = f->ageing_timer + delay; 136 this_timer = f->ageing_timer + delay;
137 if (time_before_eq(this_timer, jiffies)) 137 if (time_before_eq(this_timer, jiffies))
138 fdb_delete(f); 138 fdb_delete(f);
139 else if (this_timer < next_timer) 139 else if (time_before(this_timer, next_timer))
140 next_timer = this_timer; 140 next_timer = this_timer;
141 } 141 }
142 } 142 }
diff --git a/net/core/dev.c b/net/core/dev.c
index fcdf03cf3b3f..460e7f99ce3e 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3329,7 +3329,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
3329 return -EOPNOTSUPP; 3329 return -EOPNOTSUPP;
3330 3330
3331 case SIOCADDMULTI: 3331 case SIOCADDMULTI:
3332 if (!dev->set_multicast_list || 3332 if ((!dev->set_multicast_list && !dev->set_rx_mode) ||
3333 ifr->ifr_hwaddr.sa_family != AF_UNSPEC) 3333 ifr->ifr_hwaddr.sa_family != AF_UNSPEC)
3334 return -EINVAL; 3334 return -EINVAL;
3335 if (!netif_device_present(dev)) 3335 if (!netif_device_present(dev))
@@ -3338,7 +3338,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
3338 dev->addr_len, 1); 3338 dev->addr_len, 1);
3339 3339
3340 case SIOCDELMULTI: 3340 case SIOCDELMULTI:
3341 if (!dev->set_multicast_list || 3341 if ((!dev->set_multicast_list && !dev->set_rx_mode) ||
3342 ifr->ifr_hwaddr.sa_family != AF_UNSPEC) 3342 ifr->ifr_hwaddr.sa_family != AF_UNSPEC)
3343 return -EINVAL; 3343 return -EINVAL;
3344 if (!netif_device_present(dev)) 3344 if (!netif_device_present(dev))
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index d9a02b2cc289..19b8e003f150 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -466,6 +466,28 @@ out_neigh_release:
466 goto out; 466 goto out;
467} 467}
468 468
469struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl,
470 struct net *net, const void *pkey, struct net_device *dev)
471{
472 struct pneigh_entry *n;
473 int key_len = tbl->key_len;
474 u32 hash_val = *(u32 *)(pkey + key_len - 4);
475
476 hash_val ^= (hash_val >> 16);
477 hash_val ^= hash_val >> 8;
478 hash_val ^= hash_val >> 4;
479 hash_val &= PNEIGH_HASHMASK;
480
481 for (n = tbl->phash_buckets[hash_val]; n; n = n->next) {
482 if (!memcmp(n->key, pkey, key_len) &&
483 (n->net == net) &&
484 (n->dev == dev || !n->dev))
485 break;
486 }
487
488 return n;
489}
490
469struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl, 491struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl,
470 struct net *net, const void *pkey, 492 struct net *net, const void *pkey,
471 struct net_device *dev, int creat) 493 struct net_device *dev, int creat)
@@ -2803,6 +2825,7 @@ EXPORT_SYMBOL(neigh_table_init_no_netlink);
2803EXPORT_SYMBOL(neigh_update); 2825EXPORT_SYMBOL(neigh_update);
2804EXPORT_SYMBOL(pneigh_enqueue); 2826EXPORT_SYMBOL(pneigh_enqueue);
2805EXPORT_SYMBOL(pneigh_lookup); 2827EXPORT_SYMBOL(pneigh_lookup);
2828EXPORT_SYMBOL_GPL(__pneigh_lookup);
2806 2829
2807#ifdef CONFIG_ARPD 2830#ifdef CONFIG_ARPD
2808EXPORT_SYMBOL(neigh_app_ns); 2831EXPORT_SYMBOL(neigh_app_ns);
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 4b7e756181c9..c635de52526c 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -215,10 +215,12 @@ static void zap_completion_queue(void)
215 while (clist != NULL) { 215 while (clist != NULL) {
216 struct sk_buff *skb = clist; 216 struct sk_buff *skb = clist;
217 clist = clist->next; 217 clist = clist->next;
218 if (skb->destructor) 218 if (skb->destructor) {
219 atomic_inc(&skb->users);
219 dev_kfree_skb_any(skb); /* put this one back */ 220 dev_kfree_skb_any(skb); /* put this one back */
220 else 221 } else {
221 __kfree_skb(skb); 222 __kfree_skb(skb);
223 }
222 } 224 }
223 } 225 }
224 226
diff --git a/net/core/sock.c b/net/core/sock.c
index 09cb3a74de7f..2654c147c004 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1621,7 +1621,7 @@ static void sock_def_readable(struct sock *sk, int len)
1621{ 1621{
1622 read_lock(&sk->sk_callback_lock); 1622 read_lock(&sk->sk_callback_lock);
1623 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) 1623 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
1624 wake_up_interruptible(sk->sk_sleep); 1624 wake_up_interruptible_sync(sk->sk_sleep);
1625 sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN); 1625 sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
1626 read_unlock(&sk->sk_callback_lock); 1626 read_unlock(&sk->sk_callback_lock);
1627} 1627}
@@ -1635,7 +1635,7 @@ static void sock_def_write_space(struct sock *sk)
1635 */ 1635 */
1636 if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) { 1636 if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) {
1637 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) 1637 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
1638 wake_up_interruptible(sk->sk_sleep); 1638 wake_up_interruptible_sync(sk->sk_sleep);
1639 1639
1640 /* Should agree with poll, otherwise some programs break */ 1640 /* Should agree with poll, otherwise some programs break */
1641 if (sock_writeable(sk)) 1641 if (sock_writeable(sk))
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 09ca5293d08f..0d109504ed86 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -458,7 +458,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
458 err = -EADDRNOTAVAIL; 458 err = -EADDRNOTAVAIL;
459 if (!sysctl_ip_nonlocal_bind && 459 if (!sysctl_ip_nonlocal_bind &&
460 !inet->freebind && 460 !inet->freebind &&
461 addr->sin_addr.s_addr != INADDR_ANY && 461 addr->sin_addr.s_addr != htonl(INADDR_ANY) &&
462 chk_addr_ret != RTN_LOCAL && 462 chk_addr_ret != RTN_LOCAL &&
463 chk_addr_ret != RTN_MULTICAST && 463 chk_addr_ret != RTN_MULTICAST &&
464 chk_addr_ret != RTN_BROADCAST) 464 chk_addr_ret != RTN_BROADCAST)
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 091e6709f831..f3ceca31aa45 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -168,7 +168,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
168 struct xfrm_encap_tmpl *encap = x->encap; 168 struct xfrm_encap_tmpl *encap = x->encap;
169 struct udphdr *uh; 169 struct udphdr *uh;
170 __be32 *udpdata32; 170 __be32 *udpdata32;
171 unsigned int sport, dport; 171 __be16 sport, dport;
172 int encap_type; 172 int encap_type;
173 173
174 spin_lock_bh(&x->lock); 174 spin_lock_bh(&x->lock);
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index 1ff446d0fa8b..f6cdc012eec5 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -177,10 +177,13 @@ static inline struct tnode *node_parent_rcu(struct node *node)
177 return rcu_dereference(ret); 177 return rcu_dereference(ret);
178} 178}
179 179
180/* Same as rcu_assign_pointer
181 * but that macro() assumes that value is a pointer.
182 */
180static inline void node_set_parent(struct node *node, struct tnode *ptr) 183static inline void node_set_parent(struct node *node, struct tnode *ptr)
181{ 184{
182 rcu_assign_pointer(node->parent, 185 smp_wmb();
183 (unsigned long)ptr | NODE_TYPE(node)); 186 node->parent = (unsigned long)ptr | NODE_TYPE(node);
184} 187}
185 188
186static inline struct node *tnode_get_child(struct tnode *tn, unsigned int i) 189static inline struct node *tnode_get_child(struct tnode *tn, unsigned int i)
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index a13c074dac09..a944e8053e28 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -591,7 +591,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
591 } 591 }
592 592
593 if (xfrm_decode_session_reverse(skb_in, &fl, AF_INET)) 593 if (xfrm_decode_session_reverse(skb_in, &fl, AF_INET))
594 goto out_unlock; 594 goto ende;
595 595
596 if (inet_addr_type(net, fl.fl4_src) == RTN_LOCAL) 596 if (inet_addr_type(net, fl.fl4_src) == RTN_LOCAL)
597 err = __ip_route_output_key(net, &rt2, &fl); 597 err = __ip_route_output_key(net, &rt2, &fl);
@@ -601,7 +601,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
601 601
602 fl2.fl4_dst = fl.fl4_src; 602 fl2.fl4_dst = fl.fl4_src;
603 if (ip_route_output_key(net, &rt2, &fl2)) 603 if (ip_route_output_key(net, &rt2, &fl2))
604 goto out_unlock; 604 goto ende;
605 605
606 /* Ugh! */ 606 /* Ugh! */
607 odst = skb_in->dst; 607 odst = skb_in->dst;
@@ -614,7 +614,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
614 } 614 }
615 615
616 if (err) 616 if (err)
617 goto out_unlock; 617 goto ende;
618 618
619 err = xfrm_lookup((struct dst_entry **)&rt2, &fl, NULL, 619 err = xfrm_lookup((struct dst_entry **)&rt2, &fl, NULL,
620 XFRM_LOOKUP_ICMP); 620 XFRM_LOOKUP_ICMP);
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index a2e92f9709db..3b2e5adca838 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -568,7 +568,7 @@ int ip_defrag(struct sk_buff *skb, u32 user)
568 568
569 IP_INC_STATS_BH(IPSTATS_MIB_REASMREQDS); 569 IP_INC_STATS_BH(IPSTATS_MIB_REASMREQDS);
570 570
571 net = skb->dev->nd_net; 571 net = skb->dev ? skb->dev->nd_net : skb->dst->dev->nd_net;
572 /* Start by cleaning up the memory. */ 572 /* Start by cleaning up the memory. */
573 if (atomic_read(&net->ipv4.frags.mem) > net->ipv4.frags.high_thresh) 573 if (atomic_read(&net->ipv4.frags.mem) > net->ipv4.frags.high_thresh)
574 ip_evictor(net); 574 ip_evictor(net);
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
index de0572c88859..f72457b4b0a7 100644
--- a/net/ipv4/ip_sockglue.c
+++ b/net/ipv4/ip_sockglue.c
@@ -583,7 +583,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
583 } 583 }
584 584
585 if (!mreq.imr_ifindex) { 585 if (!mreq.imr_ifindex) {
586 if (mreq.imr_address.s_addr == INADDR_ANY) { 586 if (mreq.imr_address.s_addr == htonl(INADDR_ANY)) {
587 inet->mc_index = 0; 587 inet->mc_index = 0;
588 inet->mc_addr = 0; 588 inet->mc_addr = 0;
589 err = 0; 589 err = 0;
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 5dd938579eeb..7c992fbbc2c3 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -103,6 +103,7 @@
103 - '3' from resolv.h */ 103 - '3' from resolv.h */
104 104
105#define NONE __constant_htonl(INADDR_NONE) 105#define NONE __constant_htonl(INADDR_NONE)
106#define ANY __constant_htonl(INADDR_ANY)
106 107
107/* 108/*
108 * Public IP configuration 109 * Public IP configuration
@@ -1479,19 +1480,19 @@ static int __init ip_auto_config_setup(char *addrs)
1479 DBG(("IP-Config: Parameter #%d: `%s'\n", num, ip)); 1480 DBG(("IP-Config: Parameter #%d: `%s'\n", num, ip));
1480 switch (num) { 1481 switch (num) {
1481 case 0: 1482 case 0:
1482 if ((ic_myaddr = in_aton(ip)) == INADDR_ANY) 1483 if ((ic_myaddr = in_aton(ip)) == ANY)
1483 ic_myaddr = NONE; 1484 ic_myaddr = NONE;
1484 break; 1485 break;
1485 case 1: 1486 case 1:
1486 if ((ic_servaddr = in_aton(ip)) == INADDR_ANY) 1487 if ((ic_servaddr = in_aton(ip)) == ANY)
1487 ic_servaddr = NONE; 1488 ic_servaddr = NONE;
1488 break; 1489 break;
1489 case 2: 1490 case 2:
1490 if ((ic_gateway = in_aton(ip)) == INADDR_ANY) 1491 if ((ic_gateway = in_aton(ip)) == ANY)
1491 ic_gateway = NONE; 1492 ic_gateway = NONE;
1492 break; 1493 break;
1493 case 3: 1494 case 3:
1494 if ((ic_netmask = in_aton(ip)) == INADDR_ANY) 1495 if ((ic_netmask = in_aton(ip)) == ANY)
1495 ic_netmask = NONE; 1496 ic_netmask = NONE;
1496 break; 1497 break;
1497 case 4: 1498 case 4:
diff --git a/net/ipv4/netfilter/ipt_recent.c b/net/ipv4/netfilter/ipt_recent.c
index 68cbe3ca01ce..8e8f0425a8ed 100644
--- a/net/ipv4/netfilter/ipt_recent.c
+++ b/net/ipv4/netfilter/ipt_recent.c
@@ -252,6 +252,8 @@ recent_mt_check(const char *tablename, const void *ip,
252 if ((info->check_set & (IPT_RECENT_SET | IPT_RECENT_REMOVE)) && 252 if ((info->check_set & (IPT_RECENT_SET | IPT_RECENT_REMOVE)) &&
253 (info->seconds || info->hit_count)) 253 (info->seconds || info->hit_count))
254 return false; 254 return false;
255 if (info->hit_count > ip_pkt_list_tot)
256 return false;
255 if (info->name[0] == '\0' || 257 if (info->name[0] == '\0' ||
256 strnlen(info->name, IPT_RECENT_NAME_LEN) == IPT_RECENT_NAME_LEN) 258 strnlen(info->name, IPT_RECENT_NAME_LEN) == IPT_RECENT_NAME_LEN)
257 return false; 259 return false;
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 071e83a894ad..39b629ac2404 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -735,7 +735,7 @@ new_segment:
735 if (!(psize -= copy)) 735 if (!(psize -= copy))
736 goto out; 736 goto out;
737 737
738 if (skb->len < mss_now || (flags & MSG_OOB)) 738 if (skb->len < size_goal || (flags & MSG_OOB))
739 continue; 739 continue;
740 740
741 if (forced_push(tp)) { 741 if (forced_push(tp)) {
@@ -981,7 +981,7 @@ new_segment:
981 if ((seglen -= copy) == 0 && iovlen == 0) 981 if ((seglen -= copy) == 0 && iovlen == 0)
982 goto out; 982 goto out;
983 983
984 if (skb->len < mss_now || (flags & MSG_OOB)) 984 if (skb->len < size_goal || (flags & MSG_OOB))
985 continue; 985 continue;
986 986
987 if (forced_push(tp)) { 987 if (forced_push(tp)) {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index ed750f9ceb07..72b9350006fe 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -255,7 +255,7 @@ static u16 tcp_select_window(struct sock *sk)
255 * 255 *
256 * Relax Will Robinson. 256 * Relax Will Robinson.
257 */ 257 */
258 new_win = cur_win; 258 new_win = ALIGN(cur_win, 1 << tp->rx_opt.rcv_wscale);
259 } 259 }
260 tp->rcv_wnd = new_win; 260 tp->rcv_wnd = new_win;
261 tp->rcv_wup = tp->rcv_nxt; 261 tp->rcv_wup = tp->rcv_nxt;
@@ -1035,6 +1035,13 @@ static void tcp_cwnd_validate(struct sock *sk)
1035 * introducing MSS oddities to segment boundaries. In rare cases where 1035 * introducing MSS oddities to segment boundaries. In rare cases where
1036 * mss_now != mss_cache, we will request caller to create a small skb 1036 * mss_now != mss_cache, we will request caller to create a small skb
1037 * per input skb which could be mostly avoided here (if desired). 1037 * per input skb which could be mostly avoided here (if desired).
1038 *
1039 * We explicitly want to create a request for splitting write queue tail
1040 * to a small skb for Nagle purposes while avoiding unnecessary modulos,
1041 * thus all the complexity (cwnd_len is always MSS multiple which we
1042 * return whenever allowed by the other factors). Basically we need the
1043 * modulo only when the receiver window alone is the limiting factor or
1044 * when we would be allowed to send the split-due-to-Nagle skb fully.
1038 */ 1045 */
1039static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb, 1046static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb,
1040 unsigned int mss_now, unsigned int cwnd) 1047 unsigned int mss_now, unsigned int cwnd)
@@ -1048,10 +1055,11 @@ static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb,
1048 if (likely(cwnd_len <= window && skb != tcp_write_queue_tail(sk))) 1055 if (likely(cwnd_len <= window && skb != tcp_write_queue_tail(sk)))
1049 return cwnd_len; 1056 return cwnd_len;
1050 1057
1051 if (skb == tcp_write_queue_tail(sk) && cwnd_len <= skb->len) 1058 needed = min(skb->len, window);
1059
1060 if (skb == tcp_write_queue_tail(sk) && cwnd_len <= needed)
1052 return cwnd_len; 1061 return cwnd_len;
1053 1062
1054 needed = min(skb->len, window);
1055 return needed - needed % mss_now; 1063 return needed - needed % mss_now;
1056} 1064}
1057 1065
diff --git a/net/ipv4/xfrm4_mode_beet.c b/net/ipv4/xfrm4_mode_beet.c
index b47030ba162b..9c798abce736 100644
--- a/net/ipv4/xfrm4_mode_beet.c
+++ b/net/ipv4/xfrm4_mode_beet.c
@@ -39,13 +39,11 @@ static void xfrm4_beet_make_header(struct sk_buff *skb)
39static int xfrm4_beet_output(struct xfrm_state *x, struct sk_buff *skb) 39static int xfrm4_beet_output(struct xfrm_state *x, struct sk_buff *skb)
40{ 40{
41 struct ip_beet_phdr *ph; 41 struct ip_beet_phdr *ph;
42 struct iphdr *iph, *top_iph; 42 struct iphdr *top_iph;
43 int hdrlen, optlen; 43 int hdrlen, optlen;
44 44
45 iph = ip_hdr(skb);
46
47 hdrlen = 0; 45 hdrlen = 0;
48 optlen = iph->ihl * 4 - sizeof(*iph); 46 optlen = XFRM_MODE_SKB_CB(skb)->optlen;
49 if (unlikely(optlen)) 47 if (unlikely(optlen))
50 hdrlen += IPV4_BEET_PHMAXLEN - (optlen & 4); 48 hdrlen += IPV4_BEET_PHMAXLEN - (optlen & 4);
51 49
@@ -53,11 +51,12 @@ static int xfrm4_beet_output(struct xfrm_state *x, struct sk_buff *skb)
53 hdrlen); 51 hdrlen);
54 skb->mac_header = skb->network_header + 52 skb->mac_header = skb->network_header +
55 offsetof(struct iphdr, protocol); 53 offsetof(struct iphdr, protocol);
56 skb->transport_header = skb->network_header + sizeof(*iph); 54 skb->transport_header = skb->network_header + sizeof(*top_iph);
57 55
58 xfrm4_beet_make_header(skb); 56 xfrm4_beet_make_header(skb);
59 57
60 ph = (struct ip_beet_phdr *)__skb_pull(skb, sizeof(*iph) - hdrlen); 58 ph = (struct ip_beet_phdr *)
59 __skb_pull(skb, XFRM_MODE_SKB_CB(skb)->ihl - hdrlen);
61 60
62 top_iph = ip_hdr(skb); 61 top_iph = ip_hdr(skb);
63 62
diff --git a/net/ipv4/xfrm4_mode_tunnel.c b/net/ipv4/xfrm4_mode_tunnel.c
index 8dee617ee900..584e6d74e3a9 100644
--- a/net/ipv4/xfrm4_mode_tunnel.c
+++ b/net/ipv4/xfrm4_mode_tunnel.c
@@ -41,7 +41,7 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
41 top_iph->ihl = 5; 41 top_iph->ihl = 5;
42 top_iph->version = 4; 42 top_iph->version = 4;
43 43
44 top_iph->protocol = x->inner_mode->afinfo->proto; 44 top_iph->protocol = xfrm_af2proto(skb->dst->ops->family);
45 45
46 /* DS disclosed */ 46 /* DS disclosed */
47 top_iph->tos = INET_ECN_encapsulate(XFRM_MODE_SKB_CB(skb)->tos, 47 top_iph->tos = INET_ECN_encapsulate(XFRM_MODE_SKB_CB(skb)->tos,
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c
index d5a58a818021..8c3180adddbf 100644
--- a/net/ipv4/xfrm4_output.c
+++ b/net/ipv4/xfrm4_output.c
@@ -56,7 +56,7 @@ int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
56{ 56{
57 int err; 57 int err;
58 58
59 err = x->inner_mode->afinfo->extract_output(x, skb); 59 err = xfrm_inner_extract_output(x, skb);
60 if (err) 60 if (err)
61 return err; 61 return err;
62 62
diff --git a/net/ipv4/xfrm4_state.c b/net/ipv4/xfrm4_state.c
index fdeebe68a379..07735ed280d7 100644
--- a/net/ipv4/xfrm4_state.c
+++ b/net/ipv4/xfrm4_state.c
@@ -52,10 +52,12 @@ int xfrm4_extract_header(struct sk_buff *skb)
52{ 52{
53 struct iphdr *iph = ip_hdr(skb); 53 struct iphdr *iph = ip_hdr(skb);
54 54
55 XFRM_MODE_SKB_CB(skb)->ihl = sizeof(*iph);
55 XFRM_MODE_SKB_CB(skb)->id = iph->id; 56 XFRM_MODE_SKB_CB(skb)->id = iph->id;
56 XFRM_MODE_SKB_CB(skb)->frag_off = iph->frag_off; 57 XFRM_MODE_SKB_CB(skb)->frag_off = iph->frag_off;
57 XFRM_MODE_SKB_CB(skb)->tos = iph->tos; 58 XFRM_MODE_SKB_CB(skb)->tos = iph->tos;
58 XFRM_MODE_SKB_CB(skb)->ttl = iph->ttl; 59 XFRM_MODE_SKB_CB(skb)->ttl = iph->ttl;
60 XFRM_MODE_SKB_CB(skb)->optlen = iph->ihl * 4 - sizeof(*iph);
59 memset(XFRM_MODE_SKB_CB(skb)->flow_lbl, 0, 61 memset(XFRM_MODE_SKB_CB(skb)->flow_lbl, 0,
60 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl)); 62 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl));
61 63
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
index 58219dfffef8..47263e45bacb 100644
--- a/net/ipv6/Kconfig
+++ b/net/ipv6/Kconfig
@@ -179,11 +179,12 @@ config IPV6_SIT
179 Saying M here will produce a module called sit.ko. If unsure, say Y. 179 Saying M here will produce a module called sit.ko. If unsure, say Y.
180 180
181config IPV6_TUNNEL 181config IPV6_TUNNEL
182 tristate "IPv6: IPv6-in-IPv6 tunnel" 182 tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)"
183 select INET6_TUNNEL 183 select INET6_TUNNEL
184 depends on IPV6 184 depends on IPV6
185 ---help--- 185 ---help---
186 Support for IPv6-in-IPv6 tunnels described in RFC 2473. 186 Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
187 RFC 2473.
187 188
188 If unsure, say N. 189 If unsure, say N.
189 190
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
index 0d33a7d32125..452a2ac4eec8 100644
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -676,6 +676,20 @@ static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb)
676 } 676 }
677} 677}
678 678
679static struct pneigh_entry *pndisc_check_router(struct net_device *dev,
680 struct in6_addr *addr, int *is_router)
681{
682 struct pneigh_entry *n;
683
684 read_lock_bh(&nd_tbl.lock);
685 n = __pneigh_lookup(&nd_tbl, &init_net, addr, dev);
686 if (n != NULL)
687 *is_router = (n->flags & NTF_ROUTER);
688 read_unlock_bh(&nd_tbl.lock);
689
690 return n;
691}
692
679static void ndisc_recv_ns(struct sk_buff *skb) 693static void ndisc_recv_ns(struct sk_buff *skb)
680{ 694{
681 struct nd_msg *msg = (struct nd_msg *)skb_transport_header(skb); 695 struct nd_msg *msg = (struct nd_msg *)skb_transport_header(skb);
@@ -692,7 +706,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)
692 struct pneigh_entry *pneigh = NULL; 706 struct pneigh_entry *pneigh = NULL;
693 int dad = ipv6_addr_any(saddr); 707 int dad = ipv6_addr_any(saddr);
694 int inc; 708 int inc;
695 int is_router; 709 int is_router = 0;
696 710
697 if (ipv6_addr_is_multicast(&msg->target)) { 711 if (ipv6_addr_is_multicast(&msg->target)) {
698 ND_PRINTK2(KERN_WARNING 712 ND_PRINTK2(KERN_WARNING
@@ -790,8 +804,8 @@ static void ndisc_recv_ns(struct sk_buff *skb)
790 if (ipv6_chk_acast_addr(dev, &msg->target) || 804 if (ipv6_chk_acast_addr(dev, &msg->target) ||
791 (idev->cnf.forwarding && 805 (idev->cnf.forwarding &&
792 (ipv6_devconf.proxy_ndp || idev->cnf.proxy_ndp) && 806 (ipv6_devconf.proxy_ndp || idev->cnf.proxy_ndp) &&
793 (pneigh = pneigh_lookup(&nd_tbl, &init_net, 807 (pneigh = pndisc_check_router(dev, &msg->target,
794 &msg->target, dev, 0)) != NULL)) { 808 &is_router)) != NULL)) {
795 if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) && 809 if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) &&
796 skb->pkt_type != PACKET_HOST && 810 skb->pkt_type != PACKET_HOST &&
797 inc != 0 && 811 inc != 0 &&
@@ -812,7 +826,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)
812 goto out; 826 goto out;
813 } 827 }
814 828
815 is_router = !!(pneigh ? pneigh->flags & NTF_ROUTER : idev->cnf.forwarding); 829 is_router = !!(pneigh ? is_router : idev->cnf.forwarding);
816 830
817 if (dad) { 831 if (dad) {
818 struct in6_addr maddr; 832 struct in6_addr maddr;
@@ -1420,7 +1434,6 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,
1420 u8 *opt; 1434 u8 *opt;
1421 int rd_len; 1435 int rd_len;
1422 int err; 1436 int err;
1423 int hlen;
1424 u8 ha_buf[MAX_ADDR_LEN], *ha = NULL; 1437 u8 ha_buf[MAX_ADDR_LEN], *ha = NULL;
1425 1438
1426 dev = skb->dev; 1439 dev = skb->dev;
@@ -1491,7 +1504,6 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,
1491 return; 1504 return;
1492 } 1505 }
1493 1506
1494 hlen = 0;
1495 1507
1496 skb_reserve(buff, LL_RESERVED_SPACE(dev)); 1508 skb_reserve(buff, LL_RESERVED_SPACE(dev));
1497 ip6_nd_hdr(sk, buff, dev, &saddr_buf, &ipv6_hdr(skb)->saddr, 1509 ip6_nd_hdr(sk, buff, dev, &saddr_buf, &ipv6_hdr(skb)->saddr,
diff --git a/net/ipv6/xfrm6_mode_beet.c b/net/ipv6/xfrm6_mode_beet.c
index 0527d11c1ae3..d6ce400f585f 100644
--- a/net/ipv6/xfrm6_mode_beet.c
+++ b/net/ipv6/xfrm6_mode_beet.c
@@ -45,6 +45,7 @@ static int xfrm6_beet_output(struct xfrm_state *x, struct sk_buff *skb)
45 skb->mac_header = skb->network_header + 45 skb->mac_header = skb->network_header +
46 offsetof(struct ipv6hdr, nexthdr); 46 offsetof(struct ipv6hdr, nexthdr);
47 skb->transport_header = skb->network_header + sizeof(*top_iph); 47 skb->transport_header = skb->network_header + sizeof(*top_iph);
48 __skb_pull(skb, XFRM_MODE_SKB_CB(skb)->ihl);
48 49
49 xfrm6_beet_make_header(skb); 50 xfrm6_beet_make_header(skb);
50 51
diff --git a/net/ipv6/xfrm6_mode_tunnel.c b/net/ipv6/xfrm6_mode_tunnel.c
index 0c742faaa30b..e20529b4c825 100644
--- a/net/ipv6/xfrm6_mode_tunnel.c
+++ b/net/ipv6/xfrm6_mode_tunnel.c
@@ -45,7 +45,7 @@ static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
45 45
46 memcpy(top_iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl, 46 memcpy(top_iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl,
47 sizeof(top_iph->flow_lbl)); 47 sizeof(top_iph->flow_lbl));
48 top_iph->nexthdr = x->inner_mode->afinfo->proto; 48 top_iph->nexthdr = xfrm_af2proto(skb->dst->ops->family);
49 49
50 dsfield = XFRM_MODE_SKB_CB(skb)->tos; 50 dsfield = XFRM_MODE_SKB_CB(skb)->tos;
51 dsfield = INET_ECN_encapsulate(dsfield, dsfield); 51 dsfield = INET_ECN_encapsulate(dsfield, dsfield);
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
index 79ccfb080733..0af823cf7f1f 100644
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -62,7 +62,7 @@ int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
62{ 62{
63 int err; 63 int err;
64 64
65 err = x->inner_mode->afinfo->extract_output(x, skb); 65 err = xfrm_inner_extract_output(x, skb);
66 if (err) 66 if (err)
67 return err; 67 return err;
68 68
diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c
index dc817e035e23..ff1e1db8e236 100644
--- a/net/ipv6/xfrm6_state.c
+++ b/net/ipv6/xfrm6_state.c
@@ -174,10 +174,12 @@ int xfrm6_extract_header(struct sk_buff *skb)
174{ 174{
175 struct ipv6hdr *iph = ipv6_hdr(skb); 175 struct ipv6hdr *iph = ipv6_hdr(skb);
176 176
177 XFRM_MODE_SKB_CB(skb)->ihl = sizeof(*iph);
177 XFRM_MODE_SKB_CB(skb)->id = 0; 178 XFRM_MODE_SKB_CB(skb)->id = 0;
178 XFRM_MODE_SKB_CB(skb)->frag_off = htons(IP_DF); 179 XFRM_MODE_SKB_CB(skb)->frag_off = htons(IP_DF);
179 XFRM_MODE_SKB_CB(skb)->tos = ipv6_get_dsfield(iph); 180 XFRM_MODE_SKB_CB(skb)->tos = ipv6_get_dsfield(iph);
180 XFRM_MODE_SKB_CB(skb)->ttl = iph->hop_limit; 181 XFRM_MODE_SKB_CB(skb)->ttl = iph->hop_limit;
182 XFRM_MODE_SKB_CB(skb)->optlen = 0;
181 memcpy(XFRM_MODE_SKB_CB(skb)->flow_lbl, iph->flow_lbl, 183 memcpy(XFRM_MODE_SKB_CB(skb)->flow_lbl, iph->flow_lbl,
182 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl)); 184 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl));
183 185
diff --git a/net/irda/irnet/irnet.h b/net/irda/irnet/irnet.h
index bc2e15ce7004..7873c392ab4c 100644
--- a/net/irda/irnet/irnet.h
+++ b/net/irda/irnet/irnet.h
@@ -405,7 +405,7 @@ typedef struct irnet_socket
405 /* "pppd" interact directly with us on a /dev/ file */ 405 /* "pppd" interact directly with us on a /dev/ file */
406 struct file * file; /* File descriptor of this instance */ 406 struct file * file; /* File descriptor of this instance */
407 /* TTY stuff - to keep "pppd" happy */ 407 /* TTY stuff - to keep "pppd" happy */
408 struct termios termios; /* Various tty flags */ 408 struct ktermios termios; /* Various tty flags */
409 /* Stuff for the control channel */ 409 /* Stuff for the control channel */
410 int event_index; /* Last read in the event log */ 410 int event_index; /* Last read in the event log */
411 411
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 8b5f486ac80f..e9ef9af4a53b 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1219,7 +1219,7 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct sadb_msg *hdr,
1219 x->sel.prefixlen_s = addr->sadb_address_prefixlen; 1219 x->sel.prefixlen_s = addr->sadb_address_prefixlen;
1220 } 1220 }
1221 1221
1222 if (!x->sel.family) 1222 if (x->props.mode == XFRM_MODE_TRANSPORT)
1223 x->sel.family = x->props.family; 1223 x->sel.family = x->props.family;
1224 1224
1225 if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) { 1225 if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) {
diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c
index e06bf0028bb1..684ec9c1ad38 100644
--- a/net/netfilter/nf_conntrack_expect.c
+++ b/net/netfilter/nf_conntrack_expect.c
@@ -381,7 +381,7 @@ int nf_ct_expect_related(struct nf_conntrack_expect *expect)
381 if (nf_ct_expect_count >= nf_ct_expect_max) { 381 if (nf_ct_expect_count >= nf_ct_expect_max) {
382 if (net_ratelimit()) 382 if (net_ratelimit())
383 printk(KERN_WARNING 383 printk(KERN_WARNING
384 "nf_conntrack: expectation table full"); 384 "nf_conntrack: expectation table full\n");
385 ret = -EMFILE; 385 ret = -EMFILE;
386 goto out; 386 goto out;
387 } 387 }
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index 8b9be1e978cd..2bd9963b5b3e 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -19,14 +19,6 @@
19static struct nf_ct_ext_type *nf_ct_ext_types[NF_CT_EXT_NUM]; 19static struct nf_ct_ext_type *nf_ct_ext_types[NF_CT_EXT_NUM];
20static DEFINE_MUTEX(nf_ct_ext_type_mutex); 20static DEFINE_MUTEX(nf_ct_ext_type_mutex);
21 21
22/* Horrible trick to figure out smallest amount worth kmallocing. */
23#define CACHE(x) (x) + 0 *
24enum {
25 NF_CT_EXT_MIN_SIZE =
26#include <linux/kmalloc_sizes.h>
27 1 };
28#undef CACHE
29
30void __nf_ct_ext_destroy(struct nf_conn *ct) 22void __nf_ct_ext_destroy(struct nf_conn *ct)
31{ 23{
32 unsigned int i; 24 unsigned int i;
@@ -53,7 +45,7 @@ EXPORT_SYMBOL(__nf_ct_ext_destroy);
53static void * 45static void *
54nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp) 46nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp)
55{ 47{
56 unsigned int off, len, real_len; 48 unsigned int off, len;
57 struct nf_ct_ext_type *t; 49 struct nf_ct_ext_type *t;
58 50
59 rcu_read_lock(); 51 rcu_read_lock();
@@ -61,16 +53,14 @@ nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp)
61 BUG_ON(t == NULL); 53 BUG_ON(t == NULL);
62 off = ALIGN(sizeof(struct nf_ct_ext), t->align); 54 off = ALIGN(sizeof(struct nf_ct_ext), t->align);
63 len = off + t->len; 55 len = off + t->len;
64 real_len = t->alloc_size;
65 rcu_read_unlock(); 56 rcu_read_unlock();
66 57
67 *ext = kzalloc(real_len, gfp); 58 *ext = kzalloc(t->alloc_size, gfp);
68 if (!*ext) 59 if (!*ext)
69 return NULL; 60 return NULL;
70 61
71 (*ext)->offset[id] = off; 62 (*ext)->offset[id] = off;
72 (*ext)->len = len; 63 (*ext)->len = len;
73 (*ext)->real_len = real_len;
74 64
75 return (void *)(*ext) + off; 65 return (void *)(*ext) + off;
76} 66}
@@ -95,7 +85,7 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
95 newlen = newoff + t->len; 85 newlen = newoff + t->len;
96 rcu_read_unlock(); 86 rcu_read_unlock();
97 87
98 if (newlen >= ct->ext->real_len) { 88 if (newlen >= ksize(ct->ext)) {
99 new = kmalloc(newlen, gfp); 89 new = kmalloc(newlen, gfp);
100 if (!new) 90 if (!new)
101 return NULL; 91 return NULL;
@@ -114,7 +104,6 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
114 rcu_read_unlock(); 104 rcu_read_unlock();
115 } 105 }
116 kfree(ct->ext); 106 kfree(ct->ext);
117 new->real_len = newlen;
118 ct->ext = new; 107 ct->ext = new;
119 } 108 }
120 109
@@ -156,8 +145,6 @@ static void update_alloc_size(struct nf_ct_ext_type *type)
156 t1->alloc_size = ALIGN(t1->alloc_size, t2->align) 145 t1->alloc_size = ALIGN(t1->alloc_size, t2->align)
157 + t2->len; 146 + t2->len;
158 } 147 }
159 if (t1->alloc_size < NF_CT_EXT_MIN_SIZE)
160 t1->alloc_size = NF_CT_EXT_MIN_SIZE;
161 } 148 }
162} 149}
163 150
diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c
index 62137879e6aa..898f1922b5b8 100644
--- a/net/netfilter/nf_conntrack_h323_main.c
+++ b/net/netfilter/nf_conntrack_h323_main.c
@@ -842,7 +842,7 @@ static int process_setup(struct sk_buff *skb, struct nf_conn *ct,
842 842
843 set_h225_addr = rcu_dereference(set_h225_addr_hook); 843 set_h225_addr = rcu_dereference(set_h225_addr_hook);
844 if ((setup->options & eSetup_UUIE_destCallSignalAddress) && 844 if ((setup->options & eSetup_UUIE_destCallSignalAddress) &&
845 (set_h225_addr) && ct->status && IPS_NAT_MASK && 845 (set_h225_addr) && ct->status & IPS_NAT_MASK &&
846 get_h225_addr(ct, *data, &setup->destCallSignalAddress, 846 get_h225_addr(ct, *data, &setup->destCallSignalAddress,
847 &addr, &port) && 847 &addr, &port) &&
848 memcmp(&addr, &ct->tuplehash[!dir].tuple.src.u3, sizeof(addr))) { 848 memcmp(&addr, &ct->tuplehash[!dir].tuple.src.u3, sizeof(addr))) {
diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c
index bfc2928c1912..ddc80ea114cd 100644
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
@@ -51,7 +51,7 @@ int nf_unregister_queue_handler(int pf, const struct nf_queue_handler *qh)
51 return -EINVAL; 51 return -EINVAL;
52 52
53 mutex_lock(&queue_handler_mutex); 53 mutex_lock(&queue_handler_mutex);
54 if (queue_handler[pf] != qh) { 54 if (queue_handler[pf] && queue_handler[pf] != qh) {
55 mutex_unlock(&queue_handler_mutex); 55 mutex_unlock(&queue_handler_mutex);
56 return -EINVAL; 56 return -EINVAL;
57 } 57 }
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index 7efa40d47393..bf3f19b21fe4 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -556,7 +556,7 @@ nfulnl_log_packet(unsigned int pf,
556 /* FIXME: do we want to make the size calculation conditional based on 556 /* FIXME: do we want to make the size calculation conditional based on
557 * what is actually present? way more branches and checks, but more 557 * what is actually present? way more branches and checks, but more
558 * memory efficient... */ 558 * memory efficient... */
559 size = NLMSG_ALIGN(sizeof(struct nfgenmsg)) 559 size = NLMSG_SPACE(sizeof(struct nfgenmsg))
560 + nla_total_size(sizeof(struct nfulnl_msg_packet_hdr)) 560 + nla_total_size(sizeof(struct nfulnl_msg_packet_hdr))
561 + nla_total_size(sizeof(u_int32_t)) /* ifindex */ 561 + nla_total_size(sizeof(u_int32_t)) /* ifindex */
562 + nla_total_size(sizeof(u_int32_t)) /* ifindex */ 562 + nla_total_size(sizeof(u_int32_t)) /* ifindex */
@@ -702,20 +702,30 @@ nfulnl_recv_config(struct sock *ctnl, struct sk_buff *skb,
702 struct nfgenmsg *nfmsg = NLMSG_DATA(nlh); 702 struct nfgenmsg *nfmsg = NLMSG_DATA(nlh);
703 u_int16_t group_num = ntohs(nfmsg->res_id); 703 u_int16_t group_num = ntohs(nfmsg->res_id);
704 struct nfulnl_instance *inst; 704 struct nfulnl_instance *inst;
705 struct nfulnl_msg_config_cmd *cmd = NULL;
705 int ret = 0; 706 int ret = 0;
706 707
708 if (nfula[NFULA_CFG_CMD]) {
709 u_int8_t pf = nfmsg->nfgen_family;
710 cmd = nla_data(nfula[NFULA_CFG_CMD]);
711
712 /* Commands without queue context */
713 switch (cmd->command) {
714 case NFULNL_CFG_CMD_PF_BIND:
715 return nf_log_register(pf, &nfulnl_logger);
716 case NFULNL_CFG_CMD_PF_UNBIND:
717 nf_log_unregister_pf(pf);
718 return 0;
719 }
720 }
721
707 inst = instance_lookup_get(group_num); 722 inst = instance_lookup_get(group_num);
708 if (inst && inst->peer_pid != NETLINK_CB(skb).pid) { 723 if (inst && inst->peer_pid != NETLINK_CB(skb).pid) {
709 ret = -EPERM; 724 ret = -EPERM;
710 goto out_put; 725 goto out_put;
711 } 726 }
712 727
713 if (nfula[NFULA_CFG_CMD]) { 728 if (cmd != NULL) {
714 u_int8_t pf = nfmsg->nfgen_family;
715 struct nfulnl_msg_config_cmd *cmd;
716
717 cmd = nla_data(nfula[NFULA_CFG_CMD]);
718
719 switch (cmd->command) { 729 switch (cmd->command) {
720 case NFULNL_CFG_CMD_BIND: 730 case NFULNL_CFG_CMD_BIND:
721 if (inst) { 731 if (inst) {
@@ -738,14 +748,6 @@ nfulnl_recv_config(struct sock *ctnl, struct sk_buff *skb,
738 748
739 instance_destroy(inst); 749 instance_destroy(inst);
740 goto out; 750 goto out;
741 case NFULNL_CFG_CMD_PF_BIND:
742 ret = nf_log_register(pf, &nfulnl_logger);
743 break;
744 case NFULNL_CFG_CMD_PF_UNBIND:
745 /* This is a bug and a feature. We cannot unregister
746 * other handlers, like nfnetlink_inst can */
747 nf_log_unregister_pf(pf);
748 break;
749 default: 751 default:
750 ret = -ENOTSUPP; 752 ret = -ENOTSUPP;
751 break; 753 break;
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index 0043d3a9f87e..012cb6910820 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -224,7 +224,7 @@ nfqnl_build_packet_message(struct nfqnl_instance *queue,
224 struct net_device *indev; 224 struct net_device *indev;
225 struct net_device *outdev; 225 struct net_device *outdev;
226 226
227 size = NLMSG_ALIGN(sizeof(struct nfgenmsg)) 227 size = NLMSG_SPACE(sizeof(struct nfgenmsg))
228 + nla_total_size(sizeof(struct nfqnl_msg_packet_hdr)) 228 + nla_total_size(sizeof(struct nfqnl_msg_packet_hdr))
229 + nla_total_size(sizeof(u_int32_t)) /* ifindex */ 229 + nla_total_size(sizeof(u_int32_t)) /* ifindex */
230 + nla_total_size(sizeof(u_int32_t)) /* ifindex */ 230 + nla_total_size(sizeof(u_int32_t)) /* ifindex */
@@ -703,19 +703,12 @@ nfqnl_recv_config(struct sock *ctnl, struct sk_buff *skb,
703 /* Commands without queue context - might sleep */ 703 /* Commands without queue context - might sleep */
704 switch (cmd->command) { 704 switch (cmd->command) {
705 case NFQNL_CFG_CMD_PF_BIND: 705 case NFQNL_CFG_CMD_PF_BIND:
706 ret = nf_register_queue_handler(ntohs(cmd->pf), 706 return nf_register_queue_handler(ntohs(cmd->pf),
707 &nfqh); 707 &nfqh);
708 break;
709 case NFQNL_CFG_CMD_PF_UNBIND: 708 case NFQNL_CFG_CMD_PF_UNBIND:
710 ret = nf_unregister_queue_handler(ntohs(cmd->pf), 709 return nf_unregister_queue_handler(ntohs(cmd->pf),
711 &nfqh); 710 &nfqh);
712 break;
713 default:
714 break;
715 } 711 }
716
717 if (ret < 0)
718 return ret;
719 } 712 }
720 713
721 rcu_read_lock(); 714 rcu_read_lock();
diff --git a/net/netfilter/xt_time.c b/net/netfilter/xt_time.c
index e9a8794bc3ab..9fa2e0824708 100644
--- a/net/netfilter/xt_time.c
+++ b/net/netfilter/xt_time.c
@@ -95,8 +95,11 @@ static inline void localtime_2(struct xtm *r, time_t time)
95 */ 95 */
96 r->dse = time / 86400; 96 r->dse = time / 86400;
97 97
98 /* 1970-01-01 (w=0) was a Thursday (4). */ 98 /*
99 r->weekday = (4 + r->dse) % 7; 99 * 1970-01-01 (w=0) was a Thursday (4).
100 * -1 and +1 map Sunday properly onto 7.
101 */
102 r->weekday = (4 + r->dse - 1) % 7 + 1;
100} 103}
101 104
102static void localtime_3(struct xtm *r, time_t time) 105static void localtime_3(struct xtm *r, time_t time)
diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
index 1aaa2e804b0d..126ca777b410 100644
--- a/net/rxrpc/ar-internal.h
+++ b/net/rxrpc/ar-internal.h
@@ -23,7 +23,7 @@
23struct rxrpc_crypt { 23struct rxrpc_crypt {
24 union { 24 union {
25 u8 x[FCRYPT_BSIZE]; 25 u8 x[FCRYPT_BSIZE];
26 u32 n[2]; 26 __be32 n[2];
27 }; 27 };
28} __attribute__((aligned(8))); 28} __attribute__((aligned(8)));
29 29
diff --git a/net/rxrpc/ar-recvmsg.c b/net/rxrpc/ar-recvmsg.c
index f19121d4795b..a39bf97f8830 100644
--- a/net/rxrpc/ar-recvmsg.c
+++ b/net/rxrpc/ar-recvmsg.c
@@ -143,7 +143,8 @@ int rxrpc_recvmsg(struct kiocb *iocb, struct socket *sock,
143 /* copy the peer address and timestamp */ 143 /* copy the peer address and timestamp */
144 if (!continue_call) { 144 if (!continue_call) {
145 if (msg->msg_name && msg->msg_namelen > 0) 145 if (msg->msg_name && msg->msg_namelen > 0)
146 memcpy(&msg->msg_name, &call->conn->trans->peer->srx, 146 memcpy(msg->msg_name,
147 &call->conn->trans->peer->srx,
147 sizeof(call->conn->trans->peer->srx)); 148 sizeof(call->conn->trans->peer->srx));
148 sock_recv_timestamp(msg, &rx->sk, skb); 149 sock_recv_timestamp(msg, &rx->sk, skb);
149 } 150 }
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index f48434adb7c2..d1c296f2d617 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -261,6 +261,7 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
261 __be32 x[2]; 261 __be32 x[2];
262 } tmpbuf __attribute__((aligned(8))); /* must all be in same page */ 262 } tmpbuf __attribute__((aligned(8))); /* must all be in same page */
263 __be32 x; 263 __be32 x;
264 u32 y;
264 int ret; 265 int ret;
265 266
266 sp = rxrpc_skb(skb); 267 sp = rxrpc_skb(skb);
@@ -292,11 +293,11 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
292 sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf)); 293 sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf));
293 crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf)); 294 crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf));
294 295
295 x = ntohl(tmpbuf.x[1]); 296 y = ntohl(tmpbuf.x[1]);
296 x = (x >> 16) & 0xffff; 297 y = (y >> 16) & 0xffff;
297 if (x == 0) 298 if (y == 0)
298 x = 1; /* zero checksums are not permitted */ 299 y = 1; /* zero checksums are not permitted */
299 sp->hdr.cksum = htons(x); 300 sp->hdr.cksum = htons(y);
300 301
301 switch (call->conn->security_level) { 302 switch (call->conn->security_level) {
302 case RXRPC_SECURITY_PLAIN: 303 case RXRPC_SECURITY_PLAIN:
@@ -314,7 +315,7 @@ static int rxkad_secure_packet(const struct rxrpc_call *call,
314 break; 315 break;
315 } 316 }
316 317
317 _leave(" = %d [set %hx]", ret, x); 318 _leave(" = %d [set %hx]", ret, y);
318 return ret; 319 return ret;
319} 320}
320 321
@@ -492,6 +493,7 @@ static int rxkad_verify_packet(const struct rxrpc_call *call,
492 __be32 x[2]; 493 __be32 x[2];
493 } tmpbuf __attribute__((aligned(8))); /* must all be in same page */ 494 } tmpbuf __attribute__((aligned(8))); /* must all be in same page */
494 __be32 x; 495 __be32 x;
496 u16 y;
495 __be16 cksum; 497 __be16 cksum;
496 int ret; 498 int ret;
497 499
@@ -526,12 +528,12 @@ static int rxkad_verify_packet(const struct rxrpc_call *call,
526 sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf)); 528 sg_init_one(&sg[1], &tmpbuf, sizeof(tmpbuf));
527 crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf)); 529 crypto_blkcipher_encrypt_iv(&desc, &sg[0], &sg[1], sizeof(tmpbuf));
528 530
529 x = ntohl(tmpbuf.x[1]); 531 y = ntohl(tmpbuf.x[1]);
530 x = (x >> 16) & 0xffff; 532 y = (y >> 16) & 0xffff;
531 if (x == 0) 533 if (y == 0)
532 x = 1; /* zero checksums are not permitted */ 534 y = 1; /* zero checksums are not permitted */
533 535
534 cksum = htons(x); 536 cksum = htons(y);
535 if (sp->hdr.cksum != cksum) { 537 if (sp->hdr.cksum != cksum) {
536 *_abort_code = RXKADSEALEDINCON; 538 *_abort_code = RXKADSEALEDINCON;
537 _leave(" = -EPROTO [csum failed]"); 539 _leave(" = -EPROTO [csum failed]");
@@ -1001,7 +1003,8 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
1001 struct rxrpc_crypt session_key; 1003 struct rxrpc_crypt session_key;
1002 time_t expiry; 1004 time_t expiry;
1003 void *ticket; 1005 void *ticket;
1004 u32 abort_code, version, kvno, ticket_len, csum, level; 1006 u32 abort_code, version, kvno, ticket_len, level;
1007 __be32 csum;
1005 int ret; 1008 int ret;
1006 1009
1007 _enter("{%d,%x}", conn->debug_id, key_serial(conn->server_key)); 1010 _enter("{%d,%x}", conn->debug_id, key_serial(conn->server_key));
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c
index b18fa95ef248..c5c16b4b6e98 100644
--- a/net/sched/cls_u32.c
+++ b/net/sched/cls_u32.c
@@ -89,7 +89,7 @@ static const struct tcf_ext_map u32_ext_map = {
89 89
90static struct tc_u_common *u32_list; 90static struct tc_u_common *u32_list;
91 91
92static __inline__ unsigned u32_hash_fold(u32 key, struct tc_u32_sel *sel, u8 fshift) 92static __inline__ unsigned u32_hash_fold(__be32 key, struct tc_u32_sel *sel, u8 fshift)
93{ 93{
94 unsigned h = ntohl(key & sel->hmask)>>fshift; 94 unsigned h = ntohl(key & sel->hmask)>>fshift;
95 95
@@ -137,7 +137,7 @@ next_knode:
137 137
138 for (i = n->sel.nkeys; i>0; i--, key++) { 138 for (i = n->sel.nkeys; i>0; i--, key++) {
139 139
140 if ((*(u32*)(ptr+key->off+(off2&key->offmask))^key->val)&key->mask) { 140 if ((*(__be32*)(ptr+key->off+(off2&key->offmask))^key->val)&key->mask) {
141 n = n->next; 141 n = n->next;
142 goto next_knode; 142 goto next_knode;
143 } 143 }
@@ -182,7 +182,7 @@ check_terminal:
182 ht = n->ht_down; 182 ht = n->ht_down;
183 sel = 0; 183 sel = 0;
184 if (ht->divisor) 184 if (ht->divisor)
185 sel = ht->divisor&u32_hash_fold(*(u32*)(ptr+n->sel.hoff), &n->sel,n->fshift); 185 sel = ht->divisor&u32_hash_fold(*(__be32*)(ptr+n->sel.hoff), &n->sel,n->fshift);
186 186
187 if (!(n->sel.flags&(TC_U32_VAROFFSET|TC_U32_OFFSET|TC_U32_EAT))) 187 if (!(n->sel.flags&(TC_U32_VAROFFSET|TC_U32_OFFSET|TC_U32_EAT)))
188 goto next_ht; 188 goto next_ht;
@@ -190,7 +190,7 @@ check_terminal:
190 if (n->sel.flags&(TC_U32_OFFSET|TC_U32_VAROFFSET)) { 190 if (n->sel.flags&(TC_U32_OFFSET|TC_U32_VAROFFSET)) {
191 off2 = n->sel.off + 3; 191 off2 = n->sel.off + 3;
192 if (n->sel.flags&TC_U32_VAROFFSET) 192 if (n->sel.flags&TC_U32_VAROFFSET)
193 off2 += ntohs(n->sel.offmask & *(u16*)(ptr+n->sel.offoff)) >>n->sel.offshift; 193 off2 += ntohs(n->sel.offmask & *(__be16*)(ptr+n->sel.offoff)) >>n->sel.offshift;
194 off2 &= ~3; 194 off2 &= ~3;
195 } 195 }
196 if (n->sel.flags&TC_U32_EAT) { 196 if (n->sel.flags&TC_U32_EAT) {
diff --git a/net/sched/em_u32.c b/net/sched/em_u32.c
index 112796e4a7c4..953f1479f7da 100644
--- a/net/sched/em_u32.c
+++ b/net/sched/em_u32.c
@@ -35,7 +35,7 @@ static int em_u32_match(struct sk_buff *skb, struct tcf_ematch *em,
35 if (!tcf_valid_offset(skb, ptr, sizeof(u32))) 35 if (!tcf_valid_offset(skb, ptr, sizeof(u32)))
36 return 0; 36 return 0;
37 37
38 return !(((*(u32*) ptr) ^ key->val) & key->mask); 38 return !(((*(__be32*) ptr) ^ key->val) & key->mask);
39} 39}
40 40
41static struct tcf_ematch_ops em_u32_ops = { 41static struct tcf_ematch_ops em_u32_ops = {
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 795c761ad99f..66148cc4759e 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -711,9 +711,11 @@ static void htb_charge_class(struct htb_sched *q, struct htb_class *cl,
711 */ 711 */
712static psched_time_t htb_do_events(struct htb_sched *q, int level) 712static psched_time_t htb_do_events(struct htb_sched *q, int level)
713{ 713{
714 int i; 714 /* don't run for longer than 2 jiffies; 2 is used instead of
715 715 1 to simplify things when jiffy is going to be incremented
716 for (i = 0; i < 500; i++) { 716 too soon */
717 unsigned long stop_at = jiffies + 2;
718 while (time_before(jiffies, stop_at)) {
717 struct htb_class *cl; 719 struct htb_class *cl;
718 long diff; 720 long diff;
719 struct rb_node *p = rb_first(&q->wait_pq[level]); 721 struct rb_node *p = rb_first(&q->wait_pq[level]);
@@ -731,9 +733,8 @@ static psched_time_t htb_do_events(struct htb_sched *q, int level)
731 if (cl->cmode != HTB_CAN_SEND) 733 if (cl->cmode != HTB_CAN_SEND)
732 htb_add_to_wait_tree(q, cl, diff); 734 htb_add_to_wait_tree(q, cl, diff);
733 } 735 }
734 if (net_ratelimit()) 736 /* too much load - let's continue on next jiffie */
735 printk(KERN_WARNING "htb: too many events !\n"); 737 return q->now + PSCHED_TICKS_PER_SEC / HZ;
736 return q->now + PSCHED_TICKS_PER_SEC / 10;
737} 738}
738 739
739/* Returns class->node+prio from id-tree where classe's id is >= id. NULL 740/* Returns class->node+prio from id-tree where classe's id is >= id. NULL
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index a27511ebc4cb..ceefda025e2d 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -209,6 +209,7 @@ int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
209int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr) 209int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
210{ 210{
211 struct sctp_sockaddr_entry *addr, *temp; 211 struct sctp_sockaddr_entry *addr, *temp;
212 int found = 0;
212 213
213 /* We hold the socket lock when calling this function, 214 /* We hold the socket lock when calling this function,
214 * and that acts as a writer synchronizing lock. 215 * and that acts as a writer synchronizing lock.
@@ -216,13 +217,14 @@ int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
216 list_for_each_entry_safe(addr, temp, &bp->address_list, list) { 217 list_for_each_entry_safe(addr, temp, &bp->address_list, list) {
217 if (sctp_cmp_addr_exact(&addr->a, del_addr)) { 218 if (sctp_cmp_addr_exact(&addr->a, del_addr)) {
218 /* Found the exact match. */ 219 /* Found the exact match. */
220 found = 1;
219 addr->valid = 0; 221 addr->valid = 0;
220 list_del_rcu(&addr->list); 222 list_del_rcu(&addr->list);
221 break; 223 break;
222 } 224 }
223 } 225 }
224 226
225 if (addr && !addr->valid) { 227 if (found) {
226 call_rcu(&addr->rcu, sctp_local_addr_free); 228 call_rcu(&addr->rcu, sctp_local_addr_free);
227 SCTP_DBG_OBJCNT_DEC(addr); 229 SCTP_DBG_OBJCNT_DEC(addr);
228 return 0; 230 return 0;
diff --git a/net/sctp/input.c b/net/sctp/input.c
index 57fe2f81eca8..812ff1756c3e 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -944,7 +944,7 @@ static struct sctp_association *__sctp_rcv_init_lookup(struct sk_buff *skb,
944static struct sctp_association *__sctp_rcv_asconf_lookup( 944static struct sctp_association *__sctp_rcv_asconf_lookup(
945 sctp_chunkhdr_t *ch, 945 sctp_chunkhdr_t *ch,
946 const union sctp_addr *laddr, 946 const union sctp_addr *laddr,
947 __be32 peer_port, 947 __be16 peer_port,
948 struct sctp_transport **transportp) 948 struct sctp_transport **transportp)
949{ 949{
950 sctp_addip_chunk_t *asconf = (struct sctp_addip_chunk *)ch; 950 sctp_addip_chunk_t *asconf = (struct sctp_addip_chunk *)ch;
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
index 87f940587d5f..b1e05d719f9b 100644
--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -89,6 +89,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
89 struct inet6_ifaddr *ifa = (struct inet6_ifaddr *)ptr; 89 struct inet6_ifaddr *ifa = (struct inet6_ifaddr *)ptr;
90 struct sctp_sockaddr_entry *addr = NULL; 90 struct sctp_sockaddr_entry *addr = NULL;
91 struct sctp_sockaddr_entry *temp; 91 struct sctp_sockaddr_entry *temp;
92 int found = 0;
92 93
93 switch (ev) { 94 switch (ev) {
94 case NETDEV_UP: 95 case NETDEV_UP:
@@ -111,13 +112,14 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
111 &sctp_local_addr_list, list) { 112 &sctp_local_addr_list, list) {
112 if (ipv6_addr_equal(&addr->a.v6.sin6_addr, 113 if (ipv6_addr_equal(&addr->a.v6.sin6_addr,
113 &ifa->addr)) { 114 &ifa->addr)) {
115 found = 1;
114 addr->valid = 0; 116 addr->valid = 0;
115 list_del_rcu(&addr->list); 117 list_del_rcu(&addr->list);
116 break; 118 break;
117 } 119 }
118 } 120 }
119 spin_unlock_bh(&sctp_local_addr_lock); 121 spin_unlock_bh(&sctp_local_addr_lock);
120 if (addr && !addr->valid) 122 if (found)
121 call_rcu(&addr->rcu, sctp_local_addr_free); 123 call_rcu(&addr->rcu, sctp_local_addr_free);
122 break; 124 break;
123 } 125 }
@@ -1012,15 +1014,24 @@ static struct sctp_pf sctp_pf_inet6 = {
1012}; 1014};
1013 1015
1014/* Initialize IPv6 support and register with socket layer. */ 1016/* Initialize IPv6 support and register with socket layer. */
1015int sctp_v6_init(void) 1017void sctp_v6_pf_init(void)
1016{ 1018{
1017 int rc;
1018
1019 /* Register the SCTP specific PF_INET6 functions. */ 1019 /* Register the SCTP specific PF_INET6 functions. */
1020 sctp_register_pf(&sctp_pf_inet6, PF_INET6); 1020 sctp_register_pf(&sctp_pf_inet6, PF_INET6);
1021 1021
1022 /* Register the SCTP specific AF_INET6 functions. */ 1022 /* Register the SCTP specific AF_INET6 functions. */
1023 sctp_register_af(&sctp_af_inet6); 1023 sctp_register_af(&sctp_af_inet6);
1024}
1025
1026void sctp_v6_pf_exit(void)
1027{
1028 list_del(&sctp_af_inet6.list);
1029}
1030
1031/* Initialize IPv6 support and register with socket layer. */
1032int sctp_v6_protosw_init(void)
1033{
1034 int rc;
1024 1035
1025 rc = proto_register(&sctpv6_prot, 1); 1036 rc = proto_register(&sctpv6_prot, 1);
1026 if (rc) 1037 if (rc)
@@ -1033,6 +1044,14 @@ int sctp_v6_init(void)
1033 return 0; 1044 return 0;
1034} 1045}
1035 1046
1047void sctp_v6_protosw_exit(void)
1048{
1049 inet6_unregister_protosw(&sctpv6_seqpacket_protosw);
1050 inet6_unregister_protosw(&sctpv6_stream_protosw);
1051 proto_unregister(&sctpv6_prot);
1052}
1053
1054
1036/* Register with inet6 layer. */ 1055/* Register with inet6 layer. */
1037int sctp_v6_add_protocol(void) 1056int sctp_v6_add_protocol(void)
1038{ 1057{
@@ -1045,15 +1064,6 @@ int sctp_v6_add_protocol(void)
1045 return 0; 1064 return 0;
1046} 1065}
1047 1066
1048/* IPv6 specific exit support. */
1049void sctp_v6_exit(void)
1050{
1051 inet6_unregister_protosw(&sctpv6_seqpacket_protosw);
1052 inet6_unregister_protosw(&sctpv6_stream_protosw);
1053 proto_unregister(&sctpv6_prot);
1054 list_del(&sctp_af_inet6.list);
1055}
1056
1057/* Unregister with inet6 layer. */ 1067/* Unregister with inet6 layer. */
1058void sctp_v6_del_protocol(void) 1068void sctp_v6_del_protocol(void)
1059{ 1069{
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 688546dccd82..f90091a1b9ce 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -337,14 +337,14 @@ static int sctp_v4_cmp_addr(const union sctp_addr *addr1,
337static void sctp_v4_inaddr_any(union sctp_addr *addr, __be16 port) 337static void sctp_v4_inaddr_any(union sctp_addr *addr, __be16 port)
338{ 338{
339 addr->v4.sin_family = AF_INET; 339 addr->v4.sin_family = AF_INET;
340 addr->v4.sin_addr.s_addr = INADDR_ANY; 340 addr->v4.sin_addr.s_addr = htonl(INADDR_ANY);
341 addr->v4.sin_port = port; 341 addr->v4.sin_port = port;
342} 342}
343 343
344/* Is this a wildcard address? */ 344/* Is this a wildcard address? */
345static int sctp_v4_is_any(const union sctp_addr *addr) 345static int sctp_v4_is_any(const union sctp_addr *addr)
346{ 346{
347 return INADDR_ANY == addr->v4.sin_addr.s_addr; 347 return htonl(INADDR_ANY) == addr->v4.sin_addr.s_addr;
348} 348}
349 349
350/* This function checks if the address is a valid address to be used for 350/* This function checks if the address is a valid address to be used for
@@ -375,7 +375,7 @@ static int sctp_v4_available(union sctp_addr *addr, struct sctp_sock *sp)
375 int ret = inet_addr_type(&init_net, addr->v4.sin_addr.s_addr); 375 int ret = inet_addr_type(&init_net, addr->v4.sin_addr.s_addr);
376 376
377 377
378 if (addr->v4.sin_addr.s_addr != INADDR_ANY && 378 if (addr->v4.sin_addr.s_addr != htonl(INADDR_ANY) &&
379 ret != RTN_LOCAL && 379 ret != RTN_LOCAL &&
380 !sp->inet.freebind && 380 !sp->inet.freebind &&
381 !sysctl_ip_nonlocal_bind) 381 !sysctl_ip_nonlocal_bind)
@@ -628,6 +628,7 @@ static int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev,
628 struct in_ifaddr *ifa = (struct in_ifaddr *)ptr; 628 struct in_ifaddr *ifa = (struct in_ifaddr *)ptr;
629 struct sctp_sockaddr_entry *addr = NULL; 629 struct sctp_sockaddr_entry *addr = NULL;
630 struct sctp_sockaddr_entry *temp; 630 struct sctp_sockaddr_entry *temp;
631 int found = 0;
631 632
632 switch (ev) { 633 switch (ev) {
633 case NETDEV_UP: 634 case NETDEV_UP:
@@ -647,13 +648,14 @@ static int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev,
647 list_for_each_entry_safe(addr, temp, 648 list_for_each_entry_safe(addr, temp,
648 &sctp_local_addr_list, list) { 649 &sctp_local_addr_list, list) {
649 if (addr->a.v4.sin_addr.s_addr == ifa->ifa_local) { 650 if (addr->a.v4.sin_addr.s_addr == ifa->ifa_local) {
651 found = 1;
650 addr->valid = 0; 652 addr->valid = 0;
651 list_del_rcu(&addr->list); 653 list_del_rcu(&addr->list);
652 break; 654 break;
653 } 655 }
654 } 656 }
655 spin_unlock_bh(&sctp_local_addr_lock); 657 spin_unlock_bh(&sctp_local_addr_lock);
656 if (addr && !addr->valid) 658 if (found)
657 call_rcu(&addr->rcu, sctp_local_addr_free); 659 call_rcu(&addr->rcu, sctp_local_addr_free);
658 break; 660 break;
659 } 661 }
@@ -783,8 +785,8 @@ static int sctp_inet_cmp_addr(const union sctp_addr *addr1,
783 /* PF_INET only supports AF_INET addresses. */ 785 /* PF_INET only supports AF_INET addresses. */
784 if (addr1->sa.sa_family != addr2->sa.sa_family) 786 if (addr1->sa.sa_family != addr2->sa.sa_family)
785 return 0; 787 return 0;
786 if (INADDR_ANY == addr1->v4.sin_addr.s_addr || 788 if (htonl(INADDR_ANY) == addr1->v4.sin_addr.s_addr ||
787 INADDR_ANY == addr2->v4.sin_addr.s_addr) 789 htonl(INADDR_ANY) == addr2->v4.sin_addr.s_addr)
788 return 1; 790 return 1;
789 if (addr1->v4.sin_addr.s_addr == addr2->v4.sin_addr.s_addr) 791 if (addr1->v4.sin_addr.s_addr == addr2->v4.sin_addr.s_addr)
790 return 1; 792 return 1;
@@ -990,6 +992,58 @@ static void cleanup_sctp_mibs(void)
990 free_percpu(sctp_statistics[1]); 992 free_percpu(sctp_statistics[1]);
991} 993}
992 994
995static void sctp_v4_pf_init(void)
996{
997 /* Initialize the SCTP specific PF functions. */
998 sctp_register_pf(&sctp_pf_inet, PF_INET);
999 sctp_register_af(&sctp_af_inet);
1000}
1001
1002static void sctp_v4_pf_exit(void)
1003{
1004 list_del(&sctp_af_inet.list);
1005}
1006
1007static int sctp_v4_protosw_init(void)
1008{
1009 int rc;
1010
1011 rc = proto_register(&sctp_prot, 1);
1012 if (rc)
1013 return rc;
1014
1015 /* Register SCTP(UDP and TCP style) with socket layer. */
1016 inet_register_protosw(&sctp_seqpacket_protosw);
1017 inet_register_protosw(&sctp_stream_protosw);
1018
1019 return 0;
1020}
1021
1022static void sctp_v4_protosw_exit(void)
1023{
1024 inet_unregister_protosw(&sctp_stream_protosw);
1025 inet_unregister_protosw(&sctp_seqpacket_protosw);
1026 proto_unregister(&sctp_prot);
1027}
1028
1029static int sctp_v4_add_protocol(void)
1030{
1031 /* Register notifier for inet address additions/deletions. */
1032 register_inetaddr_notifier(&sctp_inetaddr_notifier);
1033
1034 /* Register SCTP with inet layer. */
1035 if (inet_add_protocol(&sctp_protocol, IPPROTO_SCTP) < 0)
1036 return -EAGAIN;
1037
1038 return 0;
1039}
1040
1041static void sctp_v4_del_protocol(void)
1042{
1043 inet_del_protocol(&sctp_protocol, IPPROTO_SCTP);
1044 unregister_inetaddr_notifier(&sctp_inetaddr_notifier);
1045}
1046
993/* Initialize the universe into something sensible. */ 1047/* Initialize the universe into something sensible. */
994SCTP_STATIC __init int sctp_init(void) 1048SCTP_STATIC __init int sctp_init(void)
995{ 1049{
@@ -1033,8 +1087,6 @@ SCTP_STATIC __init int sctp_init(void)
1033 /* Initialize object count debugging. */ 1087 /* Initialize object count debugging. */
1034 sctp_dbg_objcnt_init(); 1088 sctp_dbg_objcnt_init();
1035 1089
1036 /* Initialize the SCTP specific PF functions. */
1037 sctp_register_pf(&sctp_pf_inet, PF_INET);
1038 /* 1090 /*
1039 * 14. Suggested SCTP Protocol Parameter Values 1091 * 14. Suggested SCTP Protocol Parameter Values
1040 */ 1092 */
@@ -1192,19 +1244,22 @@ SCTP_STATIC __init int sctp_init(void)
1192 sctp_sysctl_register(); 1244 sctp_sysctl_register();
1193 1245
1194 INIT_LIST_HEAD(&sctp_address_families); 1246 INIT_LIST_HEAD(&sctp_address_families);
1195 sctp_register_af(&sctp_af_inet); 1247 sctp_v4_pf_init();
1248 sctp_v6_pf_init();
1196 1249
1197 status = proto_register(&sctp_prot, 1); 1250 /* Initialize the local address list. */
1198 if (status) 1251 INIT_LIST_HEAD(&sctp_local_addr_list);
1199 goto err_proto_register; 1252 spin_lock_init(&sctp_local_addr_lock);
1253 sctp_get_local_addr_list();
1200 1254
1201 /* Register SCTP(UDP and TCP style) with socket layer. */ 1255 status = sctp_v4_protosw_init();
1202 inet_register_protosw(&sctp_seqpacket_protosw);
1203 inet_register_protosw(&sctp_stream_protosw);
1204 1256
1205 status = sctp_v6_init();
1206 if (status) 1257 if (status)
1207 goto err_v6_init; 1258 goto err_protosw_init;
1259
1260 status = sctp_v6_protosw_init();
1261 if (status)
1262 goto err_v6_protosw_init;
1208 1263
1209 /* Initialize the control inode/socket for handling OOTB packets. */ 1264 /* Initialize the control inode/socket for handling OOTB packets. */
1210 if ((status = sctp_ctl_sock_init())) { 1265 if ((status = sctp_ctl_sock_init())) {
@@ -1213,19 +1268,9 @@ SCTP_STATIC __init int sctp_init(void)
1213 goto err_ctl_sock_init; 1268 goto err_ctl_sock_init;
1214 } 1269 }
1215 1270
1216 /* Initialize the local address list. */ 1271 status = sctp_v4_add_protocol();
1217 INIT_LIST_HEAD(&sctp_local_addr_list); 1272 if (status)
1218 spin_lock_init(&sctp_local_addr_lock);
1219 sctp_get_local_addr_list();
1220
1221 /* Register notifier for inet address additions/deletions. */
1222 register_inetaddr_notifier(&sctp_inetaddr_notifier);
1223
1224 /* Register SCTP with inet layer. */
1225 if (inet_add_protocol(&sctp_protocol, IPPROTO_SCTP) < 0) {
1226 status = -EAGAIN;
1227 goto err_add_protocol; 1273 goto err_add_protocol;
1228 }
1229 1274
1230 /* Register SCTP with inet6 layer. */ 1275 /* Register SCTP with inet6 layer. */
1231 status = sctp_v6_add_protocol(); 1276 status = sctp_v6_add_protocol();
@@ -1236,18 +1281,18 @@ SCTP_STATIC __init int sctp_init(void)
1236out: 1281out:
1237 return status; 1282 return status;
1238err_v6_add_protocol: 1283err_v6_add_protocol:
1239 inet_del_protocol(&sctp_protocol, IPPROTO_SCTP); 1284 sctp_v6_del_protocol();
1240 unregister_inetaddr_notifier(&sctp_inetaddr_notifier);
1241err_add_protocol: 1285err_add_protocol:
1242 sctp_free_local_addr_list(); 1286 sctp_v4_del_protocol();
1243 sock_release(sctp_ctl_socket); 1287 sock_release(sctp_ctl_socket);
1244err_ctl_sock_init: 1288err_ctl_sock_init:
1245 sctp_v6_exit(); 1289 sctp_v6_protosw_exit();
1246err_v6_init: 1290err_v6_protosw_init:
1247 inet_unregister_protosw(&sctp_stream_protosw); 1291 sctp_v4_protosw_exit();
1248 inet_unregister_protosw(&sctp_seqpacket_protosw); 1292err_protosw_init:
1249 proto_unregister(&sctp_prot); 1293 sctp_free_local_addr_list();
1250err_proto_register: 1294 sctp_v4_pf_exit();
1295 sctp_v6_pf_exit();
1251 sctp_sysctl_unregister(); 1296 sctp_sysctl_unregister();
1252 list_del(&sctp_af_inet.list); 1297 list_del(&sctp_af_inet.list);
1253 free_pages((unsigned long)sctp_port_hashtable, 1298 free_pages((unsigned long)sctp_port_hashtable,
@@ -1280,23 +1325,21 @@ SCTP_STATIC __exit void sctp_exit(void)
1280 1325
1281 /* Unregister with inet6/inet layers. */ 1326 /* Unregister with inet6/inet layers. */
1282 sctp_v6_del_protocol(); 1327 sctp_v6_del_protocol();
1283 inet_del_protocol(&sctp_protocol, IPPROTO_SCTP); 1328 sctp_v4_del_protocol();
1284
1285 /* Unregister notifier for inet address additions/deletions. */
1286 unregister_inetaddr_notifier(&sctp_inetaddr_notifier);
1287
1288 /* Free the local address list. */
1289 sctp_free_local_addr_list();
1290 1329
1291 /* Free the control endpoint. */ 1330 /* Free the control endpoint. */
1292 sock_release(sctp_ctl_socket); 1331 sock_release(sctp_ctl_socket);
1293 1332
1294 /* Cleanup v6 initializations. */ 1333 /* Free protosw registrations */
1295 sctp_v6_exit(); 1334 sctp_v6_protosw_exit();
1335 sctp_v4_protosw_exit();
1336
1337 /* Free the local address list. */
1338 sctp_free_local_addr_list();
1296 1339
1297 /* Unregister with socket layer. */ 1340 /* Unregister with socket layer. */
1298 inet_unregister_protosw(&sctp_stream_protosw); 1341 sctp_v6_pf_exit();
1299 inet_unregister_protosw(&sctp_seqpacket_protosw); 1342 sctp_v4_pf_exit();
1300 1343
1301 sctp_sysctl_unregister(); 1344 sctp_sysctl_unregister();
1302 list_del(&sctp_af_inet.list); 1345 list_del(&sctp_af_inet.list);
@@ -1315,8 +1358,6 @@ SCTP_STATIC __exit void sctp_exit(void)
1315 1358
1316 kmem_cache_destroy(sctp_chunk_cachep); 1359 kmem_cache_destroy(sctp_chunk_cachep);
1317 kmem_cache_destroy(sctp_bucket_cachep); 1360 kmem_cache_destroy(sctp_bucket_cachep);
1318
1319 proto_unregister(&sctp_prot);
1320} 1361}
1321 1362
1322module_init(sctp_init); 1363module_init(sctp_init);
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index e45be4e3f80d..578630e8e00d 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -2375,6 +2375,14 @@ static int sctp_process_param(struct sctp_association *asoc,
2375 asoc->peer.ipv4_address = 0; 2375 asoc->peer.ipv4_address = 0;
2376 asoc->peer.ipv6_address = 0; 2376 asoc->peer.ipv6_address = 0;
2377 2377
2378 /* Assume that peer supports the address family
2379 * by which it sends a packet.
2380 */
2381 if (peer_addr->sa.sa_family == AF_INET6)
2382 asoc->peer.ipv6_address = 1;
2383 else if (peer_addr->sa.sa_family == AF_INET)
2384 asoc->peer.ipv4_address = 1;
2385
2378 /* Cycle through address types; avoid divide by 0. */ 2386 /* Cycle through address types; avoid divide by 0. */
2379 sat = ntohs(param.p->length) - sizeof(sctp_paramhdr_t); 2387 sat = ntohs(param.p->length) - sizeof(sctp_paramhdr_t);
2380 if (sat) 2388 if (sat)
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 939892691a26..d994d822900d 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -2933,17 +2933,39 @@ static int sctp_setsockopt_maxburst(struct sock *sk,
2933 char __user *optval, 2933 char __user *optval,
2934 int optlen) 2934 int optlen)
2935{ 2935{
2936 struct sctp_assoc_value params;
2937 struct sctp_sock *sp;
2938 struct sctp_association *asoc;
2936 int val; 2939 int val;
2940 int assoc_id = 0;
2937 2941
2938 if (optlen != sizeof(int)) 2942 if (optlen < sizeof(int))
2939 return -EINVAL; 2943 return -EINVAL;
2940 if (get_user(val, (int __user *)optval))
2941 return -EFAULT;
2942 2944
2943 if (val < 0) 2945 if (optlen == sizeof(int)) {
2946 printk(KERN_WARNING
2947 "SCTP: Use of int in max_burst socket option deprecated\n");
2948 printk(KERN_WARNING
2949 "SCTP: Use struct sctp_assoc_value instead\n");
2950 if (copy_from_user(&val, optval, optlen))
2951 return -EFAULT;
2952 } else if (optlen == sizeof(struct sctp_assoc_value)) {
2953 if (copy_from_user(&params, optval, optlen))
2954 return -EFAULT;
2955 val = params.assoc_value;
2956 assoc_id = params.assoc_id;
2957 } else
2944 return -EINVAL; 2958 return -EINVAL;
2945 2959
2946 sctp_sk(sk)->max_burst = val; 2960 sp = sctp_sk(sk);
2961
2962 if (assoc_id != 0) {
2963 asoc = sctp_id2assoc(sk, assoc_id);
2964 if (!asoc)
2965 return -EINVAL;
2966 asoc->max_burst = val;
2967 } else
2968 sp->max_burst = val;
2947 2969
2948 return 0; 2970 return 0;
2949} 2971}
@@ -5005,20 +5027,45 @@ static int sctp_getsockopt_maxburst(struct sock *sk, int len,
5005 char __user *optval, 5027 char __user *optval,
5006 int __user *optlen) 5028 int __user *optlen)
5007{ 5029{
5008 int val; 5030 struct sctp_assoc_value params;
5031 struct sctp_sock *sp;
5032 struct sctp_association *asoc;
5009 5033
5010 if (len < sizeof(int)) 5034 if (len < sizeof(int))
5011 return -EINVAL; 5035 return -EINVAL;
5012 5036
5013 len = sizeof(int); 5037 if (len == sizeof(int)) {
5038 printk(KERN_WARNING
5039 "SCTP: Use of int in max_burst socket option deprecated\n");
5040 printk(KERN_WARNING
5041 "SCTP: Use struct sctp_assoc_value instead\n");
5042 params.assoc_id = 0;
5043 } else if (len == sizeof (struct sctp_assoc_value)) {
5044 if (copy_from_user(&params, optval, len))
5045 return -EFAULT;
5046 } else
5047 return -EINVAL;
5014 5048
5015 val = sctp_sk(sk)->max_burst; 5049 sp = sctp_sk(sk);
5016 if (put_user(len, optlen)) 5050
5017 return -EFAULT; 5051 if (params.assoc_id != 0) {
5018 if (copy_to_user(optval, &val, len)) 5052 asoc = sctp_id2assoc(sk, params.assoc_id);
5019 return -EFAULT; 5053 if (!asoc)
5054 return -EINVAL;
5055 params.assoc_value = asoc->max_burst;
5056 } else
5057 params.assoc_value = sp->max_burst;
5058
5059 if (len == sizeof(int)) {
5060 if (copy_to_user(optval, &params.assoc_value, len))
5061 return -EFAULT;
5062 } else {
5063 if (copy_to_user(optval, &params, len))
5064 return -EFAULT;
5065 }
5066
5067 return 0;
5020 5068
5021 return -ENOTSUPP;
5022} 5069}
5023 5070
5024static int sctp_getsockopt_hmac_ident(struct sock *sk, int len, 5071static int sctp_getsockopt_hmac_ident(struct sock *sk, int len,
diff --git a/net/socket.c b/net/socket.c
index b6d35cd72a50..9d3fbfbc8535 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -909,11 +909,10 @@ static long sock_ioctl(struct file *file, unsigned cmd, unsigned long arg)
909 if (!dlci_ioctl_hook) 909 if (!dlci_ioctl_hook)
910 request_module("dlci"); 910 request_module("dlci");
911 911
912 if (dlci_ioctl_hook) { 912 mutex_lock(&dlci_ioctl_mutex);
913 mutex_lock(&dlci_ioctl_mutex); 913 if (dlci_ioctl_hook)
914 err = dlci_ioctl_hook(cmd, argp); 914 err = dlci_ioctl_hook(cmd, argp);
915 mutex_unlock(&dlci_ioctl_mutex); 915 mutex_unlock(&dlci_ioctl_mutex);
916 }
917 break; 916 break;
918 default: 917 default:
919 err = sock->ops->ioctl(sock, cmd, arg); 918 err = sock->ops->ioctl(sock, cmd, arg);
diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c
index 61801a069ff0..bce9d527af08 100644
--- a/net/sunrpc/auth_gss/gss_mech_switch.c
+++ b/net/sunrpc/auth_gss/gss_mech_switch.c
@@ -317,7 +317,7 @@ gss_delete_sec_context(struct gss_ctx **context_handle)
317 317
318 if (!*context_handle) 318 if (!*context_handle)
319 return(GSS_S_NO_CONTEXT); 319 return(GSS_S_NO_CONTEXT);
320 if ((*context_handle)->internal_ctx_id != 0) 320 if ((*context_handle)->internal_ctx_id)
321 (*context_handle)->mech_type->gm_ops 321 (*context_handle)->mech_type->gm_ops
322 ->gss_delete_sec_context((*context_handle) 322 ->gss_delete_sec_context((*context_handle)
323 ->internal_ctx_id); 323 ->internal_ctx_id);
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index ea377e06afae..332eb47539e1 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -185,7 +185,7 @@ int svc_create_xprt(struct svc_serv *serv, char *xprt_name, unsigned short port,
185 struct svc_xprt_class *xcl; 185 struct svc_xprt_class *xcl;
186 struct sockaddr_in sin = { 186 struct sockaddr_in sin = {
187 .sin_family = AF_INET, 187 .sin_family = AF_INET,
188 .sin_addr.s_addr = INADDR_ANY, 188 .sin_addr.s_addr = htonl(INADDR_ANY),
189 .sin_port = htons(port), 189 .sin_port = htons(port),
190 }; 190 };
191 dprintk("svc: creating transport %s[%d]\n", xprt_name, port); 191 dprintk("svc: creating transport %s[%d]\n", xprt_name, port);
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index ab54a736486e..c22d6b6f2db4 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -237,14 +237,12 @@ static void rdma_set_ctxt_sge(struct svc_rdma_op_ctxt *ctxt,
237 237
238static int rdma_read_max_sge(struct svcxprt_rdma *xprt, int sge_count) 238static int rdma_read_max_sge(struct svcxprt_rdma *xprt, int sge_count)
239{ 239{
240#ifdef RDMA_TRANSPORT_IWARP
241 if ((RDMA_TRANSPORT_IWARP == 240 if ((RDMA_TRANSPORT_IWARP ==
242 rdma_node_get_transport(xprt->sc_cm_id-> 241 rdma_node_get_transport(xprt->sc_cm_id->
243 device->node_type)) 242 device->node_type))
244 && sge_count > 1) 243 && sge_count > 1)
245 return 1; 244 return 1;
246 else 245 else
247#endif
248 return min_t(int, sge_count, xprt->sc_max_sge); 246 return min_t(int, sge_count, xprt->sc_max_sge);
249} 247}
250 248
@@ -324,15 +322,6 @@ next_sge:
324 ctxt->direction = DMA_FROM_DEVICE; 322 ctxt->direction = DMA_FROM_DEVICE;
325 clear_bit(RDMACTXT_F_READ_DONE, &ctxt->flags); 323 clear_bit(RDMACTXT_F_READ_DONE, &ctxt->flags);
326 clear_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags); 324 clear_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags);
327 if ((ch+1)->rc_discrim == 0) {
328 /*
329 * Checked in sq_cq_reap to see if we need to
330 * be enqueued
331 */
332 set_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags);
333 ctxt->next = hdr_ctxt;
334 hdr_ctxt->next = head;
335 }
336 325
337 /* Prepare READ WR */ 326 /* Prepare READ WR */
338 memset(&read_wr, 0, sizeof read_wr); 327 memset(&read_wr, 0, sizeof read_wr);
@@ -350,7 +339,17 @@ next_sge:
350 rdma_set_ctxt_sge(ctxt, &sge[ch_sge_ary[ch_no].start], 339 rdma_set_ctxt_sge(ctxt, &sge[ch_sge_ary[ch_no].start],
351 &sgl_offset, 340 &sgl_offset,
352 read_wr.num_sge); 341 read_wr.num_sge);
353 342 if (((ch+1)->rc_discrim == 0) &&
343 (read_wr.num_sge == ch_sge_ary[ch_no].count)) {
344 /*
345 * Mark the last RDMA_READ with a bit to
346 * indicate all RPC data has been fetched from
347 * the client and the RPC needs to be enqueued.
348 */
349 set_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags);
350 ctxt->next = hdr_ctxt;
351 hdr_ctxt->next = head;
352 }
354 /* Post the read */ 353 /* Post the read */
355 err = svc_rdma_send(xprt, &read_wr); 354 err = svc_rdma_send(xprt, &read_wr);
356 if (err) { 355 if (err) {
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
index 0598b229c11d..981f190c1b39 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
@@ -156,7 +156,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
156 struct svc_rdma_op_ctxt *ctxt; 156 struct svc_rdma_op_ctxt *ctxt;
157 int ret = 0; 157 int ret = 0;
158 158
159 BUG_ON(sge_count >= 32); 159 BUG_ON(sge_count > RPCSVC_MAXPAGES);
160 dprintk("svcrdma: RDMA_WRITE rmr=%x, to=%llx, xdr_off=%d, " 160 dprintk("svcrdma: RDMA_WRITE rmr=%x, to=%llx, xdr_off=%d, "
161 "write_len=%d, xdr_sge=%p, sge_count=%d\n", 161 "write_len=%d, xdr_sge=%p, sge_count=%d\n",
162 rmr, (unsigned long long)to, xdr_off, 162 rmr, (unsigned long long)to, xdr_off,
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index f09444c451bc..16fd3f6718ff 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -54,7 +54,6 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
54 int flags); 54 int flags);
55static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt); 55static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt);
56static void svc_rdma_release_rqst(struct svc_rqst *); 56static void svc_rdma_release_rqst(struct svc_rqst *);
57static void rdma_destroy_xprt(struct svcxprt_rdma *xprt);
58static void dto_tasklet_func(unsigned long data); 57static void dto_tasklet_func(unsigned long data);
59static void svc_rdma_detach(struct svc_xprt *xprt); 58static void svc_rdma_detach(struct svc_xprt *xprt);
60static void svc_rdma_free(struct svc_xprt *xprt); 59static void svc_rdma_free(struct svc_xprt *xprt);
@@ -247,6 +246,7 @@ static void dto_tasklet_func(unsigned long data)
247 sq_cq_reap(xprt); 246 sq_cq_reap(xprt);
248 } 247 }
249 248
249 svc_xprt_put(&xprt->sc_xprt);
250 spin_lock_irqsave(&dto_lock, flags); 250 spin_lock_irqsave(&dto_lock, flags);
251 } 251 }
252 spin_unlock_irqrestore(&dto_lock, flags); 252 spin_unlock_irqrestore(&dto_lock, flags);
@@ -275,8 +275,10 @@ static void rq_comp_handler(struct ib_cq *cq, void *cq_context)
275 * add it 275 * add it
276 */ 276 */
277 spin_lock_irqsave(&dto_lock, flags); 277 spin_lock_irqsave(&dto_lock, flags);
278 if (list_empty(&xprt->sc_dto_q)) 278 if (list_empty(&xprt->sc_dto_q)) {
279 svc_xprt_get(&xprt->sc_xprt);
279 list_add_tail(&xprt->sc_dto_q, &dto_xprt_q); 280 list_add_tail(&xprt->sc_dto_q, &dto_xprt_q);
281 }
280 spin_unlock_irqrestore(&dto_lock, flags); 282 spin_unlock_irqrestore(&dto_lock, flags);
281 283
282 /* Tasklet does all the work to avoid irqsave locks. */ 284 /* Tasklet does all the work to avoid irqsave locks. */
@@ -386,8 +388,10 @@ static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
386 * add it 388 * add it
387 */ 389 */
388 spin_lock_irqsave(&dto_lock, flags); 390 spin_lock_irqsave(&dto_lock, flags);
389 if (list_empty(&xprt->sc_dto_q)) 391 if (list_empty(&xprt->sc_dto_q)) {
392 svc_xprt_get(&xprt->sc_xprt);
390 list_add_tail(&xprt->sc_dto_q, &dto_xprt_q); 393 list_add_tail(&xprt->sc_dto_q, &dto_xprt_q);
394 }
391 spin_unlock_irqrestore(&dto_lock, flags); 395 spin_unlock_irqrestore(&dto_lock, flags);
392 396
393 /* Tasklet does all the work to avoid irqsave locks. */ 397 /* Tasklet does all the work to avoid irqsave locks. */
@@ -611,6 +615,7 @@ static int rdma_cma_handler(struct rdma_cm_id *cma_id,
611 switch (event->event) { 615 switch (event->event) {
612 case RDMA_CM_EVENT_ESTABLISHED: 616 case RDMA_CM_EVENT_ESTABLISHED:
613 /* Accept complete */ 617 /* Accept complete */
618 svc_xprt_get(xprt);
614 dprintk("svcrdma: Connection completed on DTO xprt=%p, " 619 dprintk("svcrdma: Connection completed on DTO xprt=%p, "
615 "cm_id=%p\n", xprt, cma_id); 620 "cm_id=%p\n", xprt, cma_id);
616 clear_bit(RDMAXPRT_CONN_PENDING, &rdma->sc_flags); 621 clear_bit(RDMAXPRT_CONN_PENDING, &rdma->sc_flags);
@@ -661,15 +666,15 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
661 666
662 listen_id = rdma_create_id(rdma_listen_handler, cma_xprt, RDMA_PS_TCP); 667 listen_id = rdma_create_id(rdma_listen_handler, cma_xprt, RDMA_PS_TCP);
663 if (IS_ERR(listen_id)) { 668 if (IS_ERR(listen_id)) {
664 rdma_destroy_xprt(cma_xprt); 669 svc_xprt_put(&cma_xprt->sc_xprt);
665 dprintk("svcrdma: rdma_create_id failed = %ld\n", 670 dprintk("svcrdma: rdma_create_id failed = %ld\n",
666 PTR_ERR(listen_id)); 671 PTR_ERR(listen_id));
667 return (void *)listen_id; 672 return (void *)listen_id;
668 } 673 }
669 ret = rdma_bind_addr(listen_id, sa); 674 ret = rdma_bind_addr(listen_id, sa);
670 if (ret) { 675 if (ret) {
671 rdma_destroy_xprt(cma_xprt);
672 rdma_destroy_id(listen_id); 676 rdma_destroy_id(listen_id);
677 svc_xprt_put(&cma_xprt->sc_xprt);
673 dprintk("svcrdma: rdma_bind_addr failed = %d\n", ret); 678 dprintk("svcrdma: rdma_bind_addr failed = %d\n", ret);
674 return ERR_PTR(ret); 679 return ERR_PTR(ret);
675 } 680 }
@@ -678,8 +683,9 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
678 ret = rdma_listen(listen_id, RPCRDMA_LISTEN_BACKLOG); 683 ret = rdma_listen(listen_id, RPCRDMA_LISTEN_BACKLOG);
679 if (ret) { 684 if (ret) {
680 rdma_destroy_id(listen_id); 685 rdma_destroy_id(listen_id);
681 rdma_destroy_xprt(cma_xprt); 686 svc_xprt_put(&cma_xprt->sc_xprt);
682 dprintk("svcrdma: rdma_listen failed = %d\n", ret); 687 dprintk("svcrdma: rdma_listen failed = %d\n", ret);
688 return ERR_PTR(ret);
683 } 689 }
684 690
685 /* 691 /*
@@ -820,6 +826,7 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
820 newxprt->sc_sq_depth = qp_attr.cap.max_send_wr; 826 newxprt->sc_sq_depth = qp_attr.cap.max_send_wr;
821 newxprt->sc_max_requests = qp_attr.cap.max_recv_wr; 827 newxprt->sc_max_requests = qp_attr.cap.max_recv_wr;
822 } 828 }
829 svc_xprt_get(&newxprt->sc_xprt);
823 newxprt->sc_qp = newxprt->sc_cm_id->qp; 830 newxprt->sc_qp = newxprt->sc_cm_id->qp;
824 831
825 /* Register all of physical memory */ 832 /* Register all of physical memory */
@@ -891,8 +898,15 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
891 898
892 errout: 899 errout:
893 dprintk("svcrdma: failure accepting new connection rc=%d.\n", ret); 900 dprintk("svcrdma: failure accepting new connection rc=%d.\n", ret);
901 /* Take a reference in case the DTO handler runs */
902 svc_xprt_get(&newxprt->sc_xprt);
903 if (newxprt->sc_qp && !IS_ERR(newxprt->sc_qp)) {
904 ib_destroy_qp(newxprt->sc_qp);
905 svc_xprt_put(&newxprt->sc_xprt);
906 }
894 rdma_destroy_id(newxprt->sc_cm_id); 907 rdma_destroy_id(newxprt->sc_cm_id);
895 rdma_destroy_xprt(newxprt); 908 /* This call to put will destroy the transport */
909 svc_xprt_put(&newxprt->sc_xprt);
896 return NULL; 910 return NULL;
897} 911}
898 912
@@ -919,54 +933,60 @@ static void svc_rdma_release_rqst(struct svc_rqst *rqstp)
919 rqstp->rq_xprt_ctxt = NULL; 933 rqstp->rq_xprt_ctxt = NULL;
920} 934}
921 935
922/* Disable data ready events for this connection */ 936/*
937 * When connected, an svc_xprt has at least three references:
938 *
939 * - A reference held by the QP. We still hold that here because this
940 * code deletes the QP and puts the reference.
941 *
942 * - A reference held by the cm_id between the ESTABLISHED and
943 * DISCONNECTED events. If the remote peer disconnected first, this
944 * reference could be gone.
945 *
946 * - A reference held by the svc_recv code that called this function
947 * as part of close processing.
948 *
949 * At a minimum two references should still be held.
950 */
923static void svc_rdma_detach(struct svc_xprt *xprt) 951static void svc_rdma_detach(struct svc_xprt *xprt)
924{ 952{
925 struct svcxprt_rdma *rdma = 953 struct svcxprt_rdma *rdma =
926 container_of(xprt, struct svcxprt_rdma, sc_xprt); 954 container_of(xprt, struct svcxprt_rdma, sc_xprt);
927 unsigned long flags;
928
929 dprintk("svc: svc_rdma_detach(%p)\n", xprt); 955 dprintk("svc: svc_rdma_detach(%p)\n", xprt);
930 /* 956
931 * Shutdown the connection. This will ensure we don't get any 957 /* Disconnect and flush posted WQE */
932 * more events from the provider.
933 */
934 rdma_disconnect(rdma->sc_cm_id); 958 rdma_disconnect(rdma->sc_cm_id);
935 rdma_destroy_id(rdma->sc_cm_id);
936 959
937 /* We may already be on the DTO list */ 960 /* Destroy the QP if present (not a listener) */
938 spin_lock_irqsave(&dto_lock, flags); 961 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) {
939 if (!list_empty(&rdma->sc_dto_q)) 962 ib_destroy_qp(rdma->sc_qp);
940 list_del_init(&rdma->sc_dto_q); 963 svc_xprt_put(xprt);
941 spin_unlock_irqrestore(&dto_lock, flags); 964 }
965
966 /* Destroy the CM ID */
967 rdma_destroy_id(rdma->sc_cm_id);
942} 968}
943 969
944static void svc_rdma_free(struct svc_xprt *xprt) 970static void svc_rdma_free(struct svc_xprt *xprt)
945{ 971{
946 struct svcxprt_rdma *rdma = (struct svcxprt_rdma *)xprt; 972 struct svcxprt_rdma *rdma = (struct svcxprt_rdma *)xprt;
947 dprintk("svcrdma: svc_rdma_free(%p)\n", rdma); 973 dprintk("svcrdma: svc_rdma_free(%p)\n", rdma);
948 rdma_destroy_xprt(rdma); 974 /* We should only be called from kref_put */
949 kfree(rdma); 975 BUG_ON(atomic_read(&xprt->xpt_ref.refcount) != 0);
950} 976 if (rdma->sc_sq_cq && !IS_ERR(rdma->sc_sq_cq))
951 977 ib_destroy_cq(rdma->sc_sq_cq);
952static void rdma_destroy_xprt(struct svcxprt_rdma *xprt)
953{
954 if (xprt->sc_qp && !IS_ERR(xprt->sc_qp))
955 ib_destroy_qp(xprt->sc_qp);
956
957 if (xprt->sc_sq_cq && !IS_ERR(xprt->sc_sq_cq))
958 ib_destroy_cq(xprt->sc_sq_cq);
959 978
960 if (xprt->sc_rq_cq && !IS_ERR(xprt->sc_rq_cq)) 979 if (rdma->sc_rq_cq && !IS_ERR(rdma->sc_rq_cq))
961 ib_destroy_cq(xprt->sc_rq_cq); 980 ib_destroy_cq(rdma->sc_rq_cq);
962 981
963 if (xprt->sc_phys_mr && !IS_ERR(xprt->sc_phys_mr)) 982 if (rdma->sc_phys_mr && !IS_ERR(rdma->sc_phys_mr))
964 ib_dereg_mr(xprt->sc_phys_mr); 983 ib_dereg_mr(rdma->sc_phys_mr);
965 984
966 if (xprt->sc_pd && !IS_ERR(xprt->sc_pd)) 985 if (rdma->sc_pd && !IS_ERR(rdma->sc_pd))
967 ib_dealloc_pd(xprt->sc_pd); 986 ib_dealloc_pd(rdma->sc_pd);
968 987
969 destroy_context_cache(xprt->sc_ctxt_head); 988 destroy_context_cache(rdma->sc_ctxt_head);
989 kfree(rdma);
970} 990}
971 991
972static int svc_rdma_has_wspace(struct svc_xprt *xprt) 992static int svc_rdma_has_wspace(struct svc_xprt *xprt)
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index 62188c6a06dd..75279402ccf4 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -84,14 +84,21 @@ int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq)
84 84
85int xfrm_prepare_input(struct xfrm_state *x, struct sk_buff *skb) 85int xfrm_prepare_input(struct xfrm_state *x, struct sk_buff *skb)
86{ 86{
87 struct xfrm_mode *inner_mode = x->inner_mode;
87 int err; 88 int err;
88 89
89 err = x->outer_mode->afinfo->extract_input(x, skb); 90 err = x->outer_mode->afinfo->extract_input(x, skb);
90 if (err) 91 if (err)
91 return err; 92 return err;
92 93
93 skb->protocol = x->inner_mode->afinfo->eth_proto; 94 if (x->sel.family == AF_UNSPEC) {
94 return x->inner_mode->input2(x, skb); 95 inner_mode = xfrm_ip2inner_mode(x, XFRM_MODE_SKB_CB(skb)->protocol);
96 if (inner_mode == NULL)
97 return -EAFNOSUPPORT;
98 }
99
100 skb->protocol = inner_mode->afinfo->eth_proto;
101 return inner_mode->input2(x, skb);
95} 102}
96EXPORT_SYMBOL(xfrm_prepare_input); 103EXPORT_SYMBOL(xfrm_prepare_input);
97 104
@@ -101,6 +108,7 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
101 __be32 seq; 108 __be32 seq;
102 struct xfrm_state *x; 109 struct xfrm_state *x;
103 xfrm_address_t *daddr; 110 xfrm_address_t *daddr;
111 struct xfrm_mode *inner_mode;
104 unsigned int family; 112 unsigned int family;
105 int decaps = 0; 113 int decaps = 0;
106 int async = 0; 114 int async = 0;
@@ -207,7 +215,15 @@ resume:
207 215
208 XFRM_MODE_SKB_CB(skb)->protocol = nexthdr; 216 XFRM_MODE_SKB_CB(skb)->protocol = nexthdr;
209 217
210 if (x->inner_mode->input(x, skb)) { 218 inner_mode = x->inner_mode;
219
220 if (x->sel.family == AF_UNSPEC) {
221 inner_mode = xfrm_ip2inner_mode(x, XFRM_MODE_SKB_CB(skb)->protocol);
222 if (inner_mode == NULL)
223 goto drop;
224 }
225
226 if (inner_mode->input(x, skb)) {
211 XFRM_INC_STATS(LINUX_MIB_XFRMINSTATEMODEERROR); 227 XFRM_INC_STATS(LINUX_MIB_XFRMINSTATEMODEERROR);
212 goto drop; 228 goto drop;
213 } 229 }
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 569d377932c4..2519129c6d21 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -124,7 +124,7 @@ int xfrm_output_resume(struct sk_buff *skb, int err)
124 if (!x) 124 if (!x)
125 return dst_output(skb); 125 return dst_output(skb);
126 126
127 err = nf_hook(x->inner_mode->afinfo->family, 127 err = nf_hook(skb->dst->ops->family,
128 NF_INET_POST_ROUTING, skb, 128 NF_INET_POST_ROUTING, skb,
129 NULL, skb->dst->dev, xfrm_output2); 129 NULL, skb->dst->dev, xfrm_output2);
130 if (unlikely(err != 1)) 130 if (unlikely(err != 1))
@@ -193,4 +193,20 @@ int xfrm_output(struct sk_buff *skb)
193 193
194 return xfrm_output2(skb); 194 return xfrm_output2(skb);
195} 195}
196
197int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb)
198{
199 struct xfrm_mode *inner_mode;
200 if (x->sel.family == AF_UNSPEC)
201 inner_mode = xfrm_ip2inner_mode(x,
202 xfrm_af2proto(skb->dst->ops->family));
203 else
204 inner_mode = x->inner_mode;
205
206 if (inner_mode == NULL)
207 return -EAFNOSUPPORT;
208 return inner_mode->afinfo->extract_output(x, skb);
209}
210
196EXPORT_SYMBOL_GPL(xfrm_output); 211EXPORT_SYMBOL_GPL(xfrm_output);
212EXPORT_SYMBOL_GPL(xfrm_inner_extract_output);
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 7ba65e82941c..58f1f9347b54 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -388,6 +388,8 @@ static void xfrm_state_gc_destroy(struct xfrm_state *x)
388 kfree(x->coaddr); 388 kfree(x->coaddr);
389 if (x->inner_mode) 389 if (x->inner_mode)
390 xfrm_put_mode(x->inner_mode); 390 xfrm_put_mode(x->inner_mode);
391 if (x->inner_mode_iaf)
392 xfrm_put_mode(x->inner_mode_iaf);
391 if (x->outer_mode) 393 if (x->outer_mode)
392 xfrm_put_mode(x->outer_mode); 394 xfrm_put_mode(x->outer_mode);
393 if (x->type) { 395 if (x->type) {
@@ -523,6 +525,8 @@ struct xfrm_state *xfrm_state_alloc(void)
523 x->lft.hard_packet_limit = XFRM_INF; 525 x->lft.hard_packet_limit = XFRM_INF;
524 x->replay_maxage = 0; 526 x->replay_maxage = 0;
525 x->replay_maxdiff = 0; 527 x->replay_maxdiff = 0;
528 x->inner_mode = NULL;
529 x->inner_mode_iaf = NULL;
526 spin_lock_init(&x->lock); 530 spin_lock_init(&x->lock);
527 } 531 }
528 return x; 532 return x;
@@ -796,7 +800,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
796 selector. 800 selector.
797 */ 801 */
798 if (x->km.state == XFRM_STATE_VALID) { 802 if (x->km.state == XFRM_STATE_VALID) {
799 if (!xfrm_selector_match(&x->sel, fl, x->sel.family) || 803 if ((x->sel.family && !xfrm_selector_match(&x->sel, fl, x->sel.family)) ||
800 !security_xfrm_state_pol_flow_match(x, pol, fl)) 804 !security_xfrm_state_pol_flow_match(x, pol, fl))
801 continue; 805 continue;
802 if (!best || 806 if (!best ||
@@ -1944,6 +1948,7 @@ int xfrm_state_mtu(struct xfrm_state *x, int mtu)
1944int xfrm_init_state(struct xfrm_state *x) 1948int xfrm_init_state(struct xfrm_state *x)
1945{ 1949{
1946 struct xfrm_state_afinfo *afinfo; 1950 struct xfrm_state_afinfo *afinfo;
1951 struct xfrm_mode *inner_mode;
1947 int family = x->props.family; 1952 int family = x->props.family;
1948 int err; 1953 int err;
1949 1954
@@ -1962,13 +1967,48 @@ int xfrm_init_state(struct xfrm_state *x)
1962 goto error; 1967 goto error;
1963 1968
1964 err = -EPROTONOSUPPORT; 1969 err = -EPROTONOSUPPORT;
1965 x->inner_mode = xfrm_get_mode(x->props.mode, x->sel.family);
1966 if (x->inner_mode == NULL)
1967 goto error;
1968 1970
1969 if (!(x->inner_mode->flags & XFRM_MODE_FLAG_TUNNEL) && 1971 if (x->sel.family != AF_UNSPEC) {
1970 family != x->sel.family) 1972 inner_mode = xfrm_get_mode(x->props.mode, x->sel.family);
1971 goto error; 1973 if (inner_mode == NULL)
1974 goto error;
1975
1976 if (!(inner_mode->flags & XFRM_MODE_FLAG_TUNNEL) &&
1977 family != x->sel.family) {
1978 xfrm_put_mode(inner_mode);
1979 goto error;
1980 }
1981
1982 x->inner_mode = inner_mode;
1983 } else {
1984 struct xfrm_mode *inner_mode_iaf;
1985
1986 inner_mode = xfrm_get_mode(x->props.mode, AF_INET);
1987 if (inner_mode == NULL)
1988 goto error;
1989
1990 if (!(inner_mode->flags & XFRM_MODE_FLAG_TUNNEL)) {
1991 xfrm_put_mode(inner_mode);
1992 goto error;
1993 }
1994
1995 inner_mode_iaf = xfrm_get_mode(x->props.mode, AF_INET6);
1996 if (inner_mode_iaf == NULL)
1997 goto error;
1998
1999 if (!(inner_mode_iaf->flags & XFRM_MODE_FLAG_TUNNEL)) {
2000 xfrm_put_mode(inner_mode_iaf);
2001 goto error;
2002 }
2003
2004 if (x->props.family == AF_INET) {
2005 x->inner_mode = inner_mode;
2006 x->inner_mode_iaf = inner_mode_iaf;
2007 } else {
2008 x->inner_mode = inner_mode_iaf;
2009 x->inner_mode_iaf = inner_mode;
2010 }
2011 }
1972 2012
1973 x->type = xfrm_get_type(x->id.proto, family); 2013 x->type = xfrm_get_type(x->id.proto, family);
1974 if (x->type == NULL) 2014 if (x->type == NULL)
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index f971ca5645f8..5d96f2728dc6 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -288,12 +288,9 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
288 memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr)); 288 memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr));
289 x->props.flags = p->flags; 289 x->props.flags = p->flags;
290 290
291 /* 291 if (x->props.mode == XFRM_MODE_TRANSPORT)
292 * Set inner address family if the KM left it as zero.
293 * See comment in validate_tmpl.
294 */
295 if (!x->sel.family)
296 x->sel.family = p->family; 292 x->sel.family = p->family;
293
297} 294}
298 295
299/* 296/*
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
index cfc004e04417..2d20640854b7 100644
--- a/scripts/Makefile.modpost
+++ b/scripts/Makefile.modpost
@@ -58,6 +58,9 @@ modules := $(patsubst %.o,%.ko, $(wildcard $(__modules:.ko=.o)))
58# Stop after building .o files if NOFINAL is set. Makes compile tests quicker 58# Stop after building .o files if NOFINAL is set. Makes compile tests quicker
59_modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules)) 59_modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules))
60 60
61ifneq ($(KBUILD_BUILDHOST),$(ARCH))
62 cross_build := 1
63endif
61 64
62# Step 2), invoke modpost 65# Step 2), invoke modpost
63# Includes step 3,4 66# Includes step 3,4
@@ -70,7 +73,8 @@ modpost = scripts/mod/modpost \
70 $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \ 73 $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \
71 $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \ 74 $(if $(CONFIG_MARKERS),-K $(kernelmarkersfile)) \
72 $(if $(CONFIG_MARKERS),-M $(markersfile)) \ 75 $(if $(CONFIG_MARKERS),-M $(markersfile)) \
73 $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) 76 $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
77 $(if $(cross_build),-c)
74 78
75quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules 79quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules
76 cmd_modpost = $(modpost) -s 80 cmd_modpost = $(modpost) -s
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2a7cef9726e4..58a94947d655 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -9,7 +9,7 @@ use strict;
9my $P = $0; 9my $P = $0;
10$P =~ s@.*/@@g; 10$P =~ s@.*/@@g;
11 11
12my $V = '0.15'; 12my $V = '0.16';
13 13
14use Getopt::Long qw(:config no_auto_abbrev); 14use Getopt::Long qw(:config no_auto_abbrev);
15 15
@@ -18,6 +18,7 @@ my $tree = 1;
18my $chk_signoff = 1; 18my $chk_signoff = 1;
19my $chk_patch = 1; 19my $chk_patch = 1;
20my $tst_type = 0; 20my $tst_type = 0;
21my $tst_only;
21my $emacs = 0; 22my $emacs = 0;
22my $terse = 0; 23my $terse = 0;
23my $file = 0; 24my $file = 0;
@@ -44,6 +45,7 @@ GetOptions(
44 45
45 'debug=s' => \%debug, 46 'debug=s' => \%debug,
46 'test-type!' => \$tst_type, 47 'test-type!' => \$tst_type,
48 'test-only=s' => \$tst_only,
47) or exit; 49) or exit;
48 50
49my $exit = 0; 51my $exit = 0;
@@ -263,17 +265,7 @@ sub expand_tabs {
263 return $res; 265 return $res;
264} 266}
265sub copy_spacing { 267sub copy_spacing {
266 my ($str) = @_; 268 (my $res = shift) =~ tr/\t/ /c;
267
268 my $res = '';
269 for my $c (split(//, $str)) {
270 if ($c eq "\t") {
271 $res .= $c;
272 } else {
273 $res .= ' ';
274 }
275 }
276
277 return $res; 269 return $res;
278} 270}
279 271
@@ -290,53 +282,76 @@ sub line_stats {
290 return (length($line), length($white)); 282 return (length($line), length($white));
291} 283}
292 284
285my $sanitise_quote = '';
286
287sub sanitise_line_reset {
288 my ($in_comment) = @_;
289
290 if ($in_comment) {
291 $sanitise_quote = '*/';
292 } else {
293 $sanitise_quote = '';
294 }
295}
293sub sanitise_line { 296sub sanitise_line {
294 my ($line) = @_; 297 my ($line) = @_;
295 298
296 my $res = ''; 299 my $res = '';
297 my $l = ''; 300 my $l = '';
298 301
299 my $quote = '';
300 my $qlen = 0; 302 my $qlen = 0;
303 my $off = 0;
304 my $c;
301 305
302 foreach my $c (split(//, $line)) { 306 # Always copy over the diff marker.
303 # The second backslash of a pair is not a "quote". 307 $res = substr($line, 0, 1);
304 if ($l eq "\\" && $c eq "\\") { 308
305 $c = 'X'; 309 for ($off = 1; $off < length($line); $off++) {
306 } 310 $c = substr($line, $off, 1);
307 if ($l ne "\\" && ($c eq "'" || $c eq '"')) { 311
308 if ($quote eq '') { 312 # Comments we are wacking completly including the begin
309 $quote = $c; 313 # and end, all to $;.
310 $res .= $c; 314 if ($sanitise_quote eq '' && substr($line, $off, 2) eq '/*') {
311 $l = $c; 315 $sanitise_quote = '*/';
312 $qlen = 0; 316
313 next; 317 substr($res, $off, 2, "$;$;");
314 } elsif ($quote eq $c) { 318 $off++;
315 $quote = ''; 319 next;
316 }
317 } 320 }
318 if ($quote eq "'" && $qlen > 1) { 321 if (substr($line, $off, 2) eq $sanitise_quote) {
319 $quote = ''; 322 $sanitise_quote = '';
323 substr($res, $off, 2, "$;$;");
324 $off++;
325 next;
320 } 326 }
321 if ($quote && $c ne "\t") { 327
322 $res .= "X"; 328 # A \ in a string means ignore the next character.
323 $qlen++; 329 if (($sanitise_quote eq "'" || $sanitise_quote eq '"') &&
324 } else { 330 $c eq "\\") {
325 $res .= $c; 331 substr($res, $off, 2, 'XX');
332 $off++;
333 next;
326 } 334 }
335 # Regular quotes.
336 if ($c eq "'" || $c eq '"') {
337 if ($sanitise_quote eq '') {
338 $sanitise_quote = $c;
327 339
328 $l = $c; 340 substr($res, $off, 1, $c);
329 } 341 next;
342 } elsif ($sanitise_quote eq $c) {
343 $sanitise_quote = '';
344 }
345 }
330 346
331 # Clear out the comments. 347 #print "SQ:$sanitise_quote\n";
332 while ($res =~ m@(/\*.*?\*/)@g) { 348 if ($off != 0 && $sanitise_quote eq '*/' && $c ne "\t") {
333 substr($res, $-[1], $+[1] - $-[1]) = $; x ($+[1] - $-[1]); 349 substr($res, $off, 1, $;);
334 } 350 } elsif ($off != 0 && $sanitise_quote && $c ne "\t") {
335 if ($res =~ m@(/\*.*)@) { 351 substr($res, $off, 1, 'X');
336 substr($res, $-[1], $+[1] - $-[1]) = $; x ($+[1] - $-[1]); 352 } else {
337 } 353 substr($res, $off, 1, $c);
338 if ($res =~ m@^.(.*\*/)@) { 354 }
339 substr($res, $-[1], $+[1] - $-[1]) = $; x ($+[1] - $-[1]);
340 } 355 }
341 356
342 # The pathname on a #include may be surrounded by '<' and '>'. 357 # The pathname on a #include may be surrounded by '<' and '>'.
@@ -359,6 +374,7 @@ sub ctx_statement_block {
359 my $blk = ''; 374 my $blk = '';
360 my $soff = $off; 375 my $soff = $off;
361 my $coff = $off - 1; 376 my $coff = $off - 1;
377 my $coff_set = 0;
362 378
363 my $loff = 0; 379 my $loff = 0;
364 380
@@ -370,7 +386,7 @@ sub ctx_statement_block {
370 386
371 my $remainder; 387 my $remainder;
372 while (1) { 388 while (1) {
373 #warn "CSB: blk<$blk>\n"; 389 #warn "CSB: blk<$blk> remain<$remain>\n";
374 # If we are about to drop off the end, pull in more 390 # If we are about to drop off the end, pull in more
375 # context. 391 # context.
376 if ($off >= $len) { 392 if ($off >= $len) {
@@ -393,7 +409,7 @@ sub ctx_statement_block {
393 $c = substr($blk, $off, 1); 409 $c = substr($blk, $off, 1);
394 $remainder = substr($blk, $off); 410 $remainder = substr($blk, $off);
395 411
396 #warn "CSB: c<$c> type<$type> level<$level>\n"; 412 #warn "CSB: c<$c> type<$type> level<$level> remainder<$remainder> coff_set<$coff_set>\n";
397 # Statement ends at the ';' or a close '}' at the 413 # Statement ends at the ';' or a close '}' at the
398 # outermost level. 414 # outermost level.
399 if ($level == 0 && $c eq ';') { 415 if ($level == 0 && $c eq ';') {
@@ -401,10 +417,14 @@ sub ctx_statement_block {
401 } 417 }
402 418
403 # An else is really a conditional as long as its not else if 419 # An else is really a conditional as long as its not else if
404 if ($level == 0 && (!defined($p) || $p =~ /(?:\s|\})/) && 420 if ($level == 0 && $coff_set == 0 &&
405 $remainder =~ /(else)(?:\s|{)/ && 421 (!defined($p) || $p =~ /(?:\s|\}|\+)/) &&
406 $remainder !~ /else\s+if\b/) { 422 $remainder =~ /^(else)(?:\s|{)/ &&
407 $coff = $off + length($1); 423 $remainder !~ /^else\s+if\b/) {
424 $coff = $off + length($1) - 1;
425 $coff_set = 1;
426 #warn "CSB: mark coff<$coff> soff<$soff> 1<$1>\n";
427 #warn "[" . substr($blk, $soff, $coff - $soff + 1) . "]\n";
408 } 428 }
409 429
410 if (($type eq '' || $type eq '(') && $c eq '(') { 430 if (($type eq '' || $type eq '(') && $c eq '(') {
@@ -417,6 +437,8 @@ sub ctx_statement_block {
417 437
418 if ($level == 0 && $coff < $soff) { 438 if ($level == 0 && $coff < $soff) {
419 $coff = $off; 439 $coff = $off;
440 $coff_set = 1;
441 #warn "CSB: mark coff<$coff>\n";
420 } 442 }
421 } 443 }
422 if (($type eq '' || $type eq '{') && $c eq '{') { 444 if (($type eq '' || $type eq '{') && $c eq '{') {
@@ -444,7 +466,7 @@ sub ctx_statement_block {
444 #warn "STATEMENT<$statement>\n"; 466 #warn "STATEMENT<$statement>\n";
445 #warn "CONDITION<$condition>\n"; 467 #warn "CONDITION<$condition>\n";
446 468
447 #print "off<$off> loff<$loff>\n"; 469 #print "coff<$coff> soff<$off> loff<$loff>\n";
448 470
449 return ($statement, $condition, 471 return ($statement, $condition,
450 $line, $remain + 1, $off - $loff + 1, $level); 472 $line, $remain + 1, $off - $loff + 1, $level);
@@ -502,7 +524,7 @@ sub ctx_statement_full {
502 # Grab the first conditional/block pair. 524 # Grab the first conditional/block pair.
503 ($statement, $condition, $linenr, $remain, $off, $level) = 525 ($statement, $condition, $linenr, $remain, $off, $level) =
504 ctx_statement_block($linenr, $remain, $off); 526 ctx_statement_block($linenr, $remain, $off);
505 #print "F: c<$condition> s<$statement>\n"; 527 #print "F: c<$condition> s<$statement> remain<$remain>\n";
506 push(@chunks, [ $condition, $statement ]); 528 push(@chunks, [ $condition, $statement ]);
507 if (!($remain > 0 && $condition =~ /^\s*(?:\n[+-])?\s*(?:if|else|do)\b/s)) { 529 if (!($remain > 0 && $condition =~ /^\s*(?:\n[+-])?\s*(?:if|else|do)\b/s)) {
508 return ($level, $linenr, @chunks); 530 return ($level, $linenr, @chunks);
@@ -514,7 +536,7 @@ sub ctx_statement_full {
514 ($statement, $condition, $linenr, $remain, $off, $level) = 536 ($statement, $condition, $linenr, $remain, $off, $level) =
515 ctx_statement_block($linenr, $remain, $off); 537 ctx_statement_block($linenr, $remain, $off);
516 #print "C: c<$condition> s<$statement> remain<$remain>\n"; 538 #print "C: c<$condition> s<$statement> remain<$remain>\n";
517 last if (!($remain > 0 && $condition =~ /^\s*(?:\n[+-])?\s*(?:else|do)\b/s)); 539 last if (!($remain > 0 && $condition =~ /^(?:\s*\n[+-])*\s*(?:else|do)\b/s));
518 #print "C: push\n"; 540 #print "C: push\n";
519 push(@chunks, [ $condition, $statement ]); 541 push(@chunks, [ $condition, $statement ]);
520 } 542 }
@@ -668,6 +690,7 @@ sub annotate_values {
668 print "$stream\n" if ($dbg_values > 1); 690 print "$stream\n" if ($dbg_values > 1);
669 691
670 while (length($cur)) { 692 while (length($cur)) {
693 @av_paren_type = ('E') if ($#av_paren_type < 0);
671 print " <" . join('', @av_paren_type) . 694 print " <" . join('', @av_paren_type) .
672 "> <$type> " if ($dbg_values > 1); 695 "> <$type> " if ($dbg_values > 1);
673 if ($cur =~ /^(\s+)/o) { 696 if ($cur =~ /^(\s+)/o) {
@@ -804,28 +827,34 @@ sub possible {
804my $prefix = ''; 827my $prefix = '';
805 828
806sub report { 829sub report {
830 if (defined $tst_only && $_[0] !~ /\Q$tst_only\E/) {
831 return 0;
832 }
807 my $line = $prefix . $_[0]; 833 my $line = $prefix . $_[0];
808 834
809 $line = (split('\n', $line))[0] . "\n" if ($terse); 835 $line = (split('\n', $line))[0] . "\n" if ($terse);
810 836
811 push(our @report, $line); 837 push(our @report, $line);
838
839 return 1;
812} 840}
813sub report_dump { 841sub report_dump {
814 our @report; 842 our @report;
815} 843}
816sub ERROR { 844sub ERROR {
817 report("ERROR: $_[0]\n"); 845 if (report("ERROR: $_[0]\n")) {
818 our $clean = 0; 846 our $clean = 0;
819 our $cnt_error++; 847 our $cnt_error++;
848 }
820} 849}
821sub WARN { 850sub WARN {
822 report("WARNING: $_[0]\n"); 851 if (report("WARNING: $_[0]\n")) {
823 our $clean = 0; 852 our $clean = 0;
824 our $cnt_warn++; 853 our $cnt_warn++;
854 }
825} 855}
826sub CHK { 856sub CHK {
827 if ($check) { 857 if ($check && report("CHECK: $_[0]\n")) {
828 report("CHECK: $_[0]\n");
829 our $clean = 0; 858 our $clean = 0;
830 our $cnt_chk++; 859 our $cnt_chk++;
831 } 860 }
@@ -867,30 +896,76 @@ sub process {
867 my $prev_values = 'E'; 896 my $prev_values = 'E';
868 897
869 # suppression flags 898 # suppression flags
870 my $suppress_ifbraces = 0; 899 my %suppress_ifbraces;
871 900
872 # Pre-scan the patch sanitizing the lines. 901 # Pre-scan the patch sanitizing the lines.
873 # Pre-scan the patch looking for any __setup documentation. 902 # Pre-scan the patch looking for any __setup documentation.
874 # 903 #
875 my @setup_docs = (); 904 my @setup_docs = ();
876 my $setup_docs = 0; 905 my $setup_docs = 0;
906
907 sanitise_line_reset();
877 my $line; 908 my $line;
878 foreach my $rawline (@rawlines) { 909 foreach my $rawline (@rawlines) {
879 # Standardise the strings and chars within the input to 910 $linenr++;
880 # simplify matching. 911 $line = $rawline;
881 $line = sanitise_line($rawline);
882 push(@lines, $line);
883
884 ##print "==>$rawline\n";
885 ##print "-->$line\n";
886 912
887 if ($line=~/^\+\+\+\s+(\S+)/) { 913 if ($rawline=~/^\+\+\+\s+(\S+)/) {
888 $setup_docs = 0; 914 $setup_docs = 0;
889 if ($1 =~ m@Documentation/kernel-parameters.txt$@) { 915 if ($1 =~ m@Documentation/kernel-parameters.txt$@) {
890 $setup_docs = 1; 916 $setup_docs = 1;
891 } 917 }
892 next; 918 #next;
919 }
920 if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
921 $realline=$1-1;
922 if (defined $2) {
923 $realcnt=$3+1;
924 } else {
925 $realcnt=1+1;
926 }
927
928 # Guestimate if this is a continuing comment. Run
929 # the context looking for a comment "edge". If this
930 # edge is a close comment then we must be in a comment
931 # at context start.
932 my $edge;
933 for (my $ln = $linenr; $ln < ($linenr + $realcnt); $ln++) {
934 next if ($line =~ /^-/);
935 ($edge) = ($rawlines[$ln - 1] =~ m@(/\*|\*/)@);
936 last if (defined $edge);
937 }
938 if (defined $edge && $edge eq '*/') {
939 $in_comment = 1;
940 }
941
942 # Guestimate if this is a continuing comment. If this
943 # is the start of a diff block and this line starts
944 # ' *' then it is very likely a comment.
945 if (!defined $edge &&
946 $rawlines[$linenr] =~ m@^.\s* \*(?:\s|$)@)
947 {
948 $in_comment = 1;
949 }
950
951 ##print "COMMENT:$in_comment edge<$edge> $rawline\n";
952 sanitise_line_reset($in_comment);
953
954 } elsif ($realcnt) {
955 # Standardise the strings and chars within the input to
956 # simplify matching.
957 $line = sanitise_line($rawline);
893 } 958 }
959 push(@lines, $line);
960
961 if ($realcnt > 1) {
962 $realcnt-- if ($line =~ /^(?:\+| |$)/);
963 } else {
964 $realcnt = 0;
965 }
966
967 #print "==>$rawline\n";
968 #print "-->$line\n";
894 969
895 if ($setup_docs && $line =~ /^\+/) { 970 if ($setup_docs && $line =~ /^\+/) {
896 push(@setup_docs, $line); 971 push(@setup_docs, $line);
@@ -899,23 +974,17 @@ sub process {
899 974
900 $prefix = ''; 975 $prefix = '';
901 976
977 $realcnt = 0;
978 $linenr = 0;
902 foreach my $line (@lines) { 979 foreach my $line (@lines) {
903 $linenr++; 980 $linenr++;
904 981
905 my $rawline = $rawlines[$linenr - 1]; 982 my $rawline = $rawlines[$linenr - 1];
906 983
907#extract the filename as it passes
908 if ($line=~/^\+\+\+\s+(\S+)/) {
909 $realfile=$1;
910 $realfile =~ s@^[^/]*/@@;
911 $in_comment = 0;
912 next;
913 }
914#extract the line range in the file after the patch is applied 984#extract the line range in the file after the patch is applied
915 if ($line=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) { 985 if ($line=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
916 $is_patch = 1; 986 $is_patch = 1;
917 $first_line = $linenr + 1; 987 $first_line = $linenr + 1;
918 $in_comment = 0;
919 $realline=$1-1; 988 $realline=$1-1;
920 if (defined $2) { 989 if (defined $2) {
921 $realcnt=$3+1; 990 $realcnt=$3+1;
@@ -925,50 +994,16 @@ sub process {
925 annotate_reset(); 994 annotate_reset();
926 $prev_values = 'E'; 995 $prev_values = 'E';
927 996
928 $suppress_ifbraces = $linenr - 1; 997 %suppress_ifbraces = ();
929 next; 998 next;
930 }
931 999
932# track the line number as we move through the hunk, note that 1000# track the line number as we move through the hunk, note that
933# new versions of GNU diff omit the leading space on completely 1001# new versions of GNU diff omit the leading space on completely
934# blank context lines so we need to count that too. 1002# blank context lines so we need to count that too.
935 if ($line =~ /^( |\+|$)/) { 1003 } elsif ($line =~ /^( |\+|$)/) {
936 $realline++; 1004 $realline++;
937 $realcnt-- if ($realcnt != 0); 1005 $realcnt-- if ($realcnt != 0);
938 1006
939 # Guestimate if this is a continuing comment. Run
940 # the context looking for a comment "edge". If this
941 # edge is a close comment then we must be in a comment
942 # at context start.
943 if ($linenr == $first_line) {
944 my $edge;
945 for (my $ln = $first_line; $ln < ($linenr + $realcnt); $ln++) {
946 ($edge) = ($rawlines[$ln - 1] =~ m@(/\*|\*/)@);
947 last if (defined $edge);
948 }
949 if (defined $edge && $edge eq '*/') {
950 $in_comment = 1;
951 }
952 }
953
954 # Guestimate if this is a continuing comment. If this
955 # is the start of a diff block and this line starts
956 # ' *' then it is very likely a comment.
957 if ($linenr == $first_line and $rawline =~ m@^.\s* \*(?:\s|$)@) {
958 $in_comment = 1;
959 }
960
961 # Find the last comment edge on _this_ line.
962 $comment_edge = 0;
963 while (($rawline =~ m@(/\*|\*/)@g)) {
964 if ($1 eq '/*') {
965 $in_comment = 1;
966 } else {
967 $in_comment = 0;
968 }
969 $comment_edge = 1;
970 }
971
972 # Measure the line length and indent. 1007 # Measure the line length and indent.
973 ($length, $indent) = line_stats($rawline); 1008 ($length, $indent) = line_stats($rawline);
974 1009
@@ -977,23 +1012,36 @@ sub process {
977 ($previndent, $stashindent) = ($stashindent, $indent); 1012 ($previndent, $stashindent) = ($stashindent, $indent);
978 ($prevrawline, $stashrawline) = ($stashrawline, $rawline); 1013 ($prevrawline, $stashrawline) = ($stashrawline, $rawline);
979 1014
980 #warn "ic<$in_comment> ce<$comment_edge> line<$line>\n"; 1015 #warn "line<$line>\n";
981 1016
982 } elsif ($realcnt == 1) { 1017 } elsif ($realcnt == 1) {
983 $realcnt--; 1018 $realcnt--;
984 } 1019 }
985 1020
986#make up the handle for any error we report on this line 1021#make up the handle for any error we report on this line
1022 $prefix = "$filename:$realline: " if ($emacs && $file);
1023 $prefix = "$filename:$linenr: " if ($emacs && !$file);
1024
987 $here = "#$linenr: " if (!$file); 1025 $here = "#$linenr: " if (!$file);
988 $here = "#$realline: " if ($file); 1026 $here = "#$realline: " if ($file);
1027
1028 # extract the filename as it passes
1029 if ($line=~/^\+\+\+\s+(\S+)/) {
1030 $realfile = $1;
1031 $realfile =~ s@^[^/]*/@@;
1032
1033 if ($realfile =~ m@include/asm/@) {
1034 ERROR("do not modify files in include/asm, change architecture specific files in include/asm-<architecture>\n" . "$here$rawline\n");
1035 }
1036 next;
1037 }
1038
989 $here .= "FILE: $realfile:$realline:" if ($realcnt != 0); 1039 $here .= "FILE: $realfile:$realline:" if ($realcnt != 0);
990 1040
991 my $hereline = "$here\n$rawline\n"; 1041 my $hereline = "$here\n$rawline\n";
992 my $herecurr = "$here\n$rawline\n"; 1042 my $herecurr = "$here\n$rawline\n";
993 my $hereprev = "$here\n$prevrawline\n$rawline\n"; 1043 my $hereprev = "$here\n$prevrawline\n$rawline\n";
994 1044
995 $prefix = "$filename:$realline: " if ($emacs && $file);
996 $prefix = "$filename:$linenr: " if ($emacs && !$file);
997 $cnt_lines++ if ($realcnt != 0); 1045 $cnt_lines++ if ($realcnt != 0);
998 1046
999#check the patch for a signoff: 1047#check the patch for a signoff:
@@ -1005,7 +1053,7 @@ sub process {
1005 $herecurr); 1053 $herecurr);
1006 } 1054 }
1007 if ($line =~ /^\s*signed-off-by:\S/i) { 1055 if ($line =~ /^\s*signed-off-by:\S/i) {
1008 WARN("need space after Signed-off-by:\n" . 1056 WARN("space required after Signed-off-by:\n" .
1009 $herecurr); 1057 $herecurr);
1010 } 1058 }
1011 } 1059 }
@@ -1072,11 +1120,6 @@ sub process {
1072 WARN("CVS style keyword markers, these will _not_ be updated\n". $herecurr); 1120 WARN("CVS style keyword markers, these will _not_ be updated\n". $herecurr);
1073 } 1121 }
1074 1122
1075# The rest of our checks refer specifically to C style
1076# only apply those _outside_ comments. Only skip
1077# lines in the middle of comments.
1078 next if (!$comment_edge && $in_comment);
1079
1080# Check for potential 'bare' types 1123# Check for potential 'bare' types
1081 if ($realcnt) { 1124 if ($realcnt) {
1082 my ($s, $c) = ctx_statement_block($linenr, $realcnt, 0); 1125 my ($s, $c) = ctx_statement_block($linenr, $realcnt, 0);
@@ -1110,7 +1153,7 @@ sub process {
1110 my ($name_len) = length($1); 1153 my ($name_len) = length($1);
1111 1154
1112 my $ctx = $s; 1155 my $ctx = $s;
1113 substr($ctx, 0, $name_len + 1) = ''; 1156 substr($ctx, 0, $name_len + 1, '');
1114 $ctx =~ s/\)[^\)]*$//; 1157 $ctx =~ s/\)[^\)]*$//;
1115 1158
1116 for my $arg (split(/\s*,\s*/, $ctx)) { 1159 for my $arg (split(/\s*,\s*/, $ctx)) {
@@ -1151,27 +1194,33 @@ sub process {
1151 1194
1152# if/while/etc brace do not go on next line, unless defining a do while loop, 1195# if/while/etc brace do not go on next line, unless defining a do while loop,
1153# or if that brace on the next line is for something else 1196# or if that brace on the next line is for something else
1154 if ($line =~ /\b(?:(if|while|for|switch)\s*\(|do\b|else\b)/ && $line !~ /^.#/) { 1197 if ($line =~ /(.*)\b((?:if|while|for|switch)\s*\(|do\b|else\b)/ && $line !~ /^.#/) {
1198 my $pre_ctx = "$1$2";
1199
1155 my ($level, @ctx) = ctx_statement_level($linenr, $realcnt, 0); 1200 my ($level, @ctx) = ctx_statement_level($linenr, $realcnt, 0);
1156 my $ctx_ln = $linenr + $#ctx + 1; 1201 my $ctx_ln = $linenr + $#ctx + 1;
1157 my $ctx_cnt = $realcnt - $#ctx - 1; 1202 my $ctx_cnt = $realcnt - $#ctx - 1;
1158 my $ctx = join("\n", @ctx); 1203 my $ctx = join("\n", @ctx);
1159 1204
1205 ##warn "realcnt<$realcnt> ctx_cnt<$ctx_cnt>\n";
1206
1160 # Skip over any removed lines in the context following statement. 1207 # Skip over any removed lines in the context following statement.
1161 while ($ctx_cnt > 0 && $lines[$ctx_ln - 1] =~ /^-/) { 1208 while (defined($lines[$ctx_ln - 1]) && $lines[$ctx_ln - 1] =~ /^-/) {
1162 $ctx_ln++; 1209 $ctx_ln++;
1163 $ctx_cnt--;
1164 } 1210 }
1165 ##warn "line<$line>\nctx<$ctx>\nnext<$lines[$ctx_ln - 1]>"; 1211 ##warn "pre<$pre_ctx>\nline<$line>\nctx<$ctx>\nnext<$lines[$ctx_ln - 1]>\n";
1166 1212
1167 if ($ctx !~ /{\s*/ && $ctx_cnt > 0 && $lines[$ctx_ln - 1] =~ /^\+\s*{/) { 1213 if ($ctx !~ /{\s*/ && defined($lines[$ctx_ln -1]) && $lines[$ctx_ln - 1] =~ /^\+\s*{/) {
1168 ERROR("That open brace { should be on the previous line\n" . 1214 ERROR("that open brace { should be on the previous line\n" .
1169 "$here\n$ctx\n$lines[$ctx_ln - 1]"); 1215 "$here\n$ctx\n$lines[$ctx_ln - 1]");
1170 } 1216 }
1171 if ($level == 0 && $ctx =~ /\)\s*\;\s*$/ && defined $lines[$ctx_ln - 1]) { 1217 if ($level == 0 && $pre_ctx !~ /}\s*while\s*\($/ &&
1218 $ctx =~ /\)\s*\;\s*$/ &&
1219 defined $lines[$ctx_ln - 1])
1220 {
1172 my ($nlength, $nindent) = line_stats($lines[$ctx_ln - 1]); 1221 my ($nlength, $nindent) = line_stats($lines[$ctx_ln - 1]);
1173 if ($nindent > $indent) { 1222 if ($nindent > $indent) {
1174 WARN("Trailing semicolon indicates no statements, indent implies otherwise\n" . 1223 WARN("trailing semicolon indicates no statements, indent implies otherwise\n" .
1175 "$here\n$ctx\n$lines[$ctx_ln - 1]"); 1224 "$here\n$ctx\n$lines[$ctx_ln - 1]");
1176 } 1225 }
1177 } 1226 }
@@ -1200,7 +1249,7 @@ sub process {
1200# check for initialisation to aggregates open brace on the next line 1249# check for initialisation to aggregates open brace on the next line
1201 if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ && 1250 if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ &&
1202 $line =~ /^.\s*{/) { 1251 $line =~ /^.\s*{/) {
1203 ERROR("That open brace { should be on the previous line\n" . $hereprev); 1252 ERROR("that open brace { should be on the previous line\n" . $hereprev);
1204 } 1253 }
1205 1254
1206# 1255#
@@ -1325,22 +1374,31 @@ sub process {
1325# check for spaces between functions and their parentheses. 1374# check for spaces between functions and their parentheses.
1326 while ($line =~ /($Ident)\s+\(/g) { 1375 while ($line =~ /($Ident)\s+\(/g) {
1327 my $name = $1; 1376 my $name = $1;
1328 my $ctx = substr($line, 0, $-[1]); 1377 my $ctx_before = substr($line, 0, $-[1]);
1378 my $ctx = "$ctx_before$name";
1329 1379
1330 # Ignore those directives where spaces _are_ permitted. 1380 # Ignore those directives where spaces _are_ permitted.
1331 if ($name =~ /^(?:if|for|while|switch|return|volatile|__volatile__|__attribute__|format|__extension__|Copyright|case|__asm__)$/) { 1381 if ($name =~ /^(?:
1382 if|for|while|switch|return|case|
1383 volatile|__volatile__|
1384 __attribute__|format|__extension__|
1385 asm|__asm__)$/x)
1386 {
1332 1387
1333 # cpp #define statements have non-optional spaces, ie 1388 # cpp #define statements have non-optional spaces, ie
1334 # if there is a space between the name and the open 1389 # if there is a space between the name and the open
1335 # parenthesis it is simply not a parameter group. 1390 # parenthesis it is simply not a parameter group.
1336 } elsif ($ctx =~ /^.\#\s*define\s*$/) { 1391 } elsif ($ctx_before =~ /^.\#\s*define\s*$/) {
1392
1393 # cpp #elif statement condition may start with a (
1394 } elsif ($ctx =~ /^.\#\s*elif\s*$/) {
1337 1395
1338 # If this whole things ends with a type its most 1396 # If this whole things ends with a type its most
1339 # likely a typedef for a function. 1397 # likely a typedef for a function.
1340 } elsif ("$ctx$name" =~ /$Type$/) { 1398 } elsif ($ctx =~ /$Type$/) {
1341 1399
1342 } else { 1400 } else {
1343 WARN("no space between function name and open parenthesis '('\n" . $herecurr); 1401 WARN("space prohibited between function name and open parenthesis '('\n" . $herecurr);
1344 } 1402 }
1345 } 1403 }
1346# Check operator spacing. 1404# Check operator spacing.
@@ -1359,13 +1417,21 @@ sub process {
1359 for (my $n = 0; $n < $#elements; $n += 2) { 1417 for (my $n = 0; $n < $#elements; $n += 2) {
1360 $off += length($elements[$n]); 1418 $off += length($elements[$n]);
1361 1419
1420 # Pick up the preceeding and succeeding characters.
1421 my $ca = substr($opline, 0, $off);
1422 my $cc = '';
1423 if (length($opline) >= ($off + length($elements[$n + 1]))) {
1424 $cc = substr($opline, $off + length($elements[$n + 1]));
1425 }
1426 my $cb = "$ca$;$cc";
1427
1362 my $a = ''; 1428 my $a = '';
1363 $a = 'V' if ($elements[$n] ne ''); 1429 $a = 'V' if ($elements[$n] ne '');
1364 $a = 'W' if ($elements[$n] =~ /\s$/); 1430 $a = 'W' if ($elements[$n] =~ /\s$/);
1365 $a = 'C' if ($elements[$n] =~ /$;$/); 1431 $a = 'C' if ($elements[$n] =~ /$;$/);
1366 $a = 'B' if ($elements[$n] =~ /(\[|\()$/); 1432 $a = 'B' if ($elements[$n] =~ /(\[|\()$/);
1367 $a = 'O' if ($elements[$n] eq ''); 1433 $a = 'O' if ($elements[$n] eq '');
1368 $a = 'E' if ($elements[$n] eq '' && $n == 0); 1434 $a = 'E' if ($ca =~ /^\s*$/);
1369 1435
1370 my $op = $elements[$n + 1]; 1436 my $op = $elements[$n + 1];
1371 1437
@@ -1381,14 +1447,6 @@ sub process {
1381 $c = 'E'; 1447 $c = 'E';
1382 } 1448 }
1383 1449
1384 # Pick up the preceeding and succeeding characters.
1385 my $ca = substr($opline, 0, $off);
1386 my $cc = '';
1387 if (length($opline) >= ($off + length($elements[$n + 1]))) {
1388 $cc = substr($opline, $off + length($elements[$n + 1]));
1389 }
1390 my $cb = "$ca$;$cc";
1391
1392 my $ctx = "${a}x${c}"; 1450 my $ctx = "${a}x${c}";
1393 1451
1394 my $at = "(ctx:$ctx)"; 1452 my $at = "(ctx:$ctx)";
@@ -1424,7 +1482,7 @@ sub process {
1424 } elsif ($op eq ';') { 1482 } elsif ($op eq ';') {
1425 if ($ctx !~ /.x[WEBC]/ && 1483 if ($ctx !~ /.x[WEBC]/ &&
1426 $cc !~ /^\\/ && $cc !~ /^;/) { 1484 $cc !~ /^\\/ && $cc !~ /^;/) {
1427 ERROR("need space after that '$op' $at\n" . $hereptr); 1485 ERROR("space required after that '$op' $at\n" . $hereptr);
1428 } 1486 }
1429 1487
1430 # // is a comment 1488 # // is a comment
@@ -1433,13 +1491,13 @@ sub process {
1433 # -> should have no spaces 1491 # -> should have no spaces
1434 } elsif ($op eq '->') { 1492 } elsif ($op eq '->') {
1435 if ($ctx =~ /Wx.|.xW/) { 1493 if ($ctx =~ /Wx.|.xW/) {
1436 ERROR("no spaces around that '$op' $at\n" . $hereptr); 1494 ERROR("spaces prohibited around that '$op' $at\n" . $hereptr);
1437 } 1495 }
1438 1496
1439 # , must have a space on the right. 1497 # , must have a space on the right.
1440 } elsif ($op eq ',') { 1498 } elsif ($op eq ',') {
1441 if ($ctx !~ /.x[WEC]/ && $cc !~ /^}/) { 1499 if ($ctx !~ /.x[WEC]/ && $cc !~ /^}/) {
1442 ERROR("need space after that '$op' $at\n" . $hereptr); 1500 ERROR("space required after that '$op' $at\n" . $hereptr);
1443 } 1501 }
1444 1502
1445 # '*' as part of a type definition -- reported already. 1503 # '*' as part of a type definition -- reported already.
@@ -1452,21 +1510,26 @@ sub process {
1452 } elsif ($op eq '!' || $op eq '~' || 1510 } elsif ($op eq '!' || $op eq '~' ||
1453 ($is_unary && ($op eq '*' || $op eq '-' || $op eq '&'))) { 1511 ($is_unary && ($op eq '*' || $op eq '-' || $op eq '&'))) {
1454 if ($ctx !~ /[WEBC]x./ && $ca !~ /(?:\)|!|~|\*|-|\&|\||\+\+|\-\-|\{)$/) { 1512 if ($ctx !~ /[WEBC]x./ && $ca !~ /(?:\)|!|~|\*|-|\&|\||\+\+|\-\-|\{)$/) {
1455 ERROR("need space before that '$op' $at\n" . $hereptr); 1513 ERROR("space required before that '$op' $at\n" . $hereptr);
1456 } 1514 }
1457 if ($ctx =~ /.xW/) { 1515 if ($ctx =~ /.xW/) {
1458 ERROR("no space after that '$op' $at\n" . $hereptr); 1516 ERROR("space prohibited after that '$op' $at\n" . $hereptr);
1459 } 1517 }
1460 1518
1461 # unary ++ and unary -- are allowed no space on one side. 1519 # unary ++ and unary -- are allowed no space on one side.
1462 } elsif ($op eq '++' or $op eq '--') { 1520 } elsif ($op eq '++' or $op eq '--') {
1463 if ($ctx !~ /[WOBC]x[^W]/ && $ctx !~ /[^W]x[WOBEC]/) { 1521 if ($ctx !~ /[WEOBC]x[^W]/ && $ctx !~ /[^W]x[WOBEC]/) {
1464 ERROR("need space one side of that '$op' $at\n" . $hereptr); 1522 ERROR("space required one side of that '$op' $at\n" . $hereptr);
1523 }
1524 if ($ctx =~ /Wx[BE]/ ||
1525 ($ctx =~ /Wx./ && $cc =~ /^;/)) {
1526 ERROR("space prohibited before that '$op' $at\n" . $hereptr);
1465 } 1527 }
1466 if ($ctx =~ /WxB/ || ($ctx =~ /Wx./ && $cc =~ /^;/)) { 1528 if ($ctx =~ /ExW/) {
1467 ERROR("no space before that '$op' $at\n" . $hereptr); 1529 ERROR("space prohibited after that '$op' $at\n" . $hereptr);
1468 } 1530 }
1469 1531
1532
1470 # << and >> may either have or not have spaces both sides 1533 # << and >> may either have or not have spaces both sides
1471 } elsif ($op eq '<<' or $op eq '>>' or 1534 } elsif ($op eq '<<' or $op eq '>>' or
1472 $op eq '&' or $op eq '^' or $op eq '|' or 1535 $op eq '&' or $op eq '^' or $op eq '|' or
@@ -1474,7 +1537,7 @@ sub process {
1474 $op eq '*' or $op eq '/' or 1537 $op eq '*' or $op eq '/' or
1475 $op eq '%') 1538 $op eq '%')
1476 { 1539 {
1477 if ($ctx !~ /VxV|WxW|VxE|WxE|VxO|Cx.|.xC/) { 1540 if ($ctx =~ /Wx[^WCE]|[^WCE]xW/) {
1478 ERROR("need consistent spacing around '$op' $at\n" . 1541 ERROR("need consistent spacing around '$op' $at\n" .
1479 $hereptr); 1542 $hereptr);
1480 } 1543 }
@@ -1484,7 +1547,7 @@ sub process {
1484 # Ignore email addresses <foo@bar> 1547 # Ignore email addresses <foo@bar>
1485 if (!($op eq '<' && $cb =~ /$;\S+\@\S+>/) && 1548 if (!($op eq '<' && $cb =~ /$;\S+\@\S+>/) &&
1486 !($op eq '>' && $cb =~ /<\S+\@\S+$;/)) { 1549 !($op eq '>' && $cb =~ /<\S+\@\S+$;/)) {
1487 ERROR("need spaces around that '$op' $at\n" . $hereptr); 1550 ERROR("spaces required around that '$op' $at\n" . $hereptr);
1488 } 1551 }
1489 } 1552 }
1490 $off += length($elements[$n + 1]); 1553 $off += length($elements[$n + 1]);
@@ -1514,31 +1577,31 @@ sub process {
1514#need space before brace following if, while, etc 1577#need space before brace following if, while, etc
1515 if (($line =~ /\(.*\){/ && $line !~ /\($Type\){/) || 1578 if (($line =~ /\(.*\){/ && $line !~ /\($Type\){/) ||
1516 $line =~ /do{/) { 1579 $line =~ /do{/) {
1517 ERROR("need a space before the open brace '{'\n" . $herecurr); 1580 ERROR("space required before the open brace '{'\n" . $herecurr);
1518 } 1581 }
1519 1582
1520# closing brace should have a space following it when it has anything 1583# closing brace should have a space following it when it has anything
1521# on the line 1584# on the line
1522 if ($line =~ /}(?!(?:,|;|\)))\S/) { 1585 if ($line =~ /}(?!(?:,|;|\)))\S/) {
1523 ERROR("need a space after that close brace '}'\n" . $herecurr); 1586 ERROR("space required after that close brace '}'\n" . $herecurr);
1524 } 1587 }
1525 1588
1526# check spacing on square brackets 1589# check spacing on square brackets
1527 if ($line =~ /\[\s/ && $line !~ /\[\s*$/) { 1590 if ($line =~ /\[\s/ && $line !~ /\[\s*$/) {
1528 ERROR("no space after that open square bracket '['\n" . $herecurr); 1591 ERROR("space prohibited after that open square bracket '['\n" . $herecurr);
1529 } 1592 }
1530 if ($line =~ /\s\]/) { 1593 if ($line =~ /\s\]/) {
1531 ERROR("no space before that close square bracket ']'\n" . $herecurr); 1594 ERROR("space prohibited before that close square bracket ']'\n" . $herecurr);
1532 } 1595 }
1533 1596
1534# check spacing on paretheses 1597# check spacing on paretheses
1535 if ($line =~ /\(\s/ && $line !~ /\(\s*(?:\\)?$/ && 1598 if ($line =~ /\(\s/ && $line !~ /\(\s*(?:\\)?$/ &&
1536 $line !~ /for\s*\(\s+;/) { 1599 $line !~ /for\s*\(\s+;/) {
1537 ERROR("no space after that open parenthesis '('\n" . $herecurr); 1600 ERROR("space prohibited after that open parenthesis '('\n" . $herecurr);
1538 } 1601 }
1539 if ($line =~ /(\s+)\)/ && $line !~ /^.\s*\)/ && 1602 if ($line =~ /(\s+)\)/ && $line !~ /^.\s*\)/ &&
1540 $line !~ /for\s*\(.*;\s+\)/) { 1603 $line !~ /for\s*\(.*;\s+\)/) {
1541 ERROR("no space before that close parenthesis ')'\n" . $herecurr); 1604 ERROR("space prohibited before that close parenthesis ')'\n" . $herecurr);
1542 } 1605 }
1543 1606
1544#goto labels aren't indented, allow a single space however 1607#goto labels aren't indented, allow a single space however
@@ -1549,7 +1612,7 @@ sub process {
1549 1612
1550# Need a space before open parenthesis after if, while etc 1613# Need a space before open parenthesis after if, while etc
1551 if ($line=~/\b(if|while|for|switch)\(/) { 1614 if ($line=~/\b(if|while|for|switch)\(/) {
1552 ERROR("need a space before the open parenthesis '('\n" . $herecurr); 1615 ERROR("space required before the open parenthesis '('\n" . $herecurr);
1553 } 1616 }
1554 1617
1555# Check for illegal assignment in if conditional. 1618# Check for illegal assignment in if conditional.
@@ -1562,10 +1625,12 @@ sub process {
1562 1625
1563 # Find out what is on the end of the line after the 1626 # Find out what is on the end of the line after the
1564 # conditional. 1627 # conditional.
1565 substr($s, 0, length($c)) = ''; 1628 substr($s, 0, length($c), '');
1566 $s =~ s/\n.*//g; 1629 $s =~ s/\n.*//g;
1567 $s =~ s/$;//g; # Remove any comments 1630 $s =~ s/$;//g; # Remove any comments
1568 if (length($c) && $s !~ /^\s*({|;|)\s*\\*\s*$/) { 1631 if (length($c) && $s !~ /^\s*({|;|)\s*\\*\s*$/ &&
1632 $c !~ /^.\#\s*if/)
1633 {
1569 ERROR("trailing statements should be on next line\n" . $herecurr); 1634 ERROR("trailing statements should be on next line\n" . $herecurr);
1570 } 1635 }
1571 } 1636 }
@@ -1607,7 +1672,7 @@ sub process {
1607 1672
1608 # Find out what is on the end of the line after the 1673 # Find out what is on the end of the line after the
1609 # conditional. 1674 # conditional.
1610 substr($s, 0, length($c)) = ''; 1675 substr($s, 0, length($c), '');
1611 $s =~ s/\n.*//g; 1676 $s =~ s/\n.*//g;
1612 1677
1613 if ($s =~ /^\s*;/) { 1678 if ($s =~ /^\s*;/) {
@@ -1631,7 +1696,7 @@ sub process {
1631 if ($tree && $rawline =~ m{^.\#\s*include\s*\<asm\/(.*)\.h\>}) { 1696 if ($tree && $rawline =~ m{^.\#\s*include\s*\<asm\/(.*)\.h\>}) {
1632 my $checkfile = "$root/include/linux/$1.h"; 1697 my $checkfile = "$root/include/linux/$1.h";
1633 if (-f $checkfile && $1 ne 'irq.h') { 1698 if (-f $checkfile && $1 ne 'irq.h') {
1634 CHK("Use #include <linux/$1.h> instead of <asm/$1.h>\n" . 1699 WARN("Use #include <linux/$1.h> instead of <asm/$1.h>\n" .
1635 $herecurr); 1700 $herecurr);
1636 } 1701 }
1637 } 1702 }
@@ -1692,15 +1757,24 @@ sub process {
1692 if ($#chunks > 0 && $level == 0) { 1757 if ($#chunks > 0 && $level == 0) {
1693 my $allowed = 0; 1758 my $allowed = 0;
1694 my $seen = 0; 1759 my $seen = 0;
1695 my $herectx = $here . "\n";; 1760 my $herectx = $here . "\n";
1696 my $ln = $linenr - 1; 1761 my $ln = $linenr - 1;
1697 for my $chunk (@chunks) { 1762 for my $chunk (@chunks) {
1698 my ($cond, $block) = @{$chunk}; 1763 my ($cond, $block) = @{$chunk};
1699 1764
1700 $herectx .= "$rawlines[$ln]\n[...]\n"; 1765 # If the condition carries leading newlines, then count those as offsets.
1766 my ($whitespace) = ($cond =~ /^((?:\s*\n[+-])*\s*)/s);
1767 my $offset = statement_rawlines($whitespace) - 1;
1768
1769 #print "COND<$cond> whitespace<$whitespace> offset<$offset>\n";
1770
1771 # We have looked at and allowed this specific line.
1772 $suppress_ifbraces{$ln + $offset} = 1;
1773
1774 $herectx .= "$rawlines[$ln + $offset]\n[...]\n";
1701 $ln += statement_rawlines($block) - 1; 1775 $ln += statement_rawlines($block) - 1;
1702 1776
1703 substr($block, 0, length($cond)) = ''; 1777 substr($block, 0, length($cond), '');
1704 1778
1705 $seen++ if ($block =~ /^\s*{/); 1779 $seen++ if ($block =~ /^\s*{/);
1706 1780
@@ -1721,16 +1795,10 @@ sub process {
1721 if ($seen && !$allowed) { 1795 if ($seen && !$allowed) {
1722 WARN("braces {} are not necessary for any arm of this statement\n" . $herectx); 1796 WARN("braces {} are not necessary for any arm of this statement\n" . $herectx);
1723 } 1797 }
1724 # Either way we have looked over this whole
1725 # statement and said what needs to be said.
1726 $suppress_ifbraces = $endln;
1727 } 1798 }
1728 } 1799 }
1729 if ($linenr > $suppress_ifbraces && 1800 if (!defined $suppress_ifbraces{$linenr - 1} &&
1730 $line =~ /\b(if|while|for|else)\b/) { 1801 $line =~ /\b(if|while|for|else)\b/) {
1731 my ($level, $endln, @chunks) =
1732 ctx_statement_full($linenr, $realcnt, $-[0]);
1733
1734 my $allowed = 0; 1802 my $allowed = 0;
1735 1803
1736 # Check the pre-context. 1804 # Check the pre-context.
@@ -1738,10 +1806,15 @@ sub process {
1738 #print "APW: ALLOWED: pre<$1>\n"; 1806 #print "APW: ALLOWED: pre<$1>\n";
1739 $allowed = 1; 1807 $allowed = 1;
1740 } 1808 }
1809
1810 my ($level, $endln, @chunks) =
1811 ctx_statement_full($linenr, $realcnt, $-[0]);
1812
1741 # Check the condition. 1813 # Check the condition.
1742 my ($cond, $block) = @{$chunks[0]}; 1814 my ($cond, $block) = @{$chunks[0]};
1815 #print "CHECKING<$linenr> cond<$cond> block<$block>\n";
1743 if (defined $cond) { 1816 if (defined $cond) {
1744 substr($block, 0, length($cond)) = ''; 1817 substr($block, 0, length($cond), '');
1745 } 1818 }
1746 if (statement_lines($cond) > 1) { 1819 if (statement_lines($cond) > 1) {
1747 #print "APW: ALLOWED: cond<$cond>\n"; 1820 #print "APW: ALLOWED: cond<$cond>\n";
@@ -1759,7 +1832,7 @@ sub process {
1759 if (defined $chunks[1]) { 1832 if (defined $chunks[1]) {
1760 my ($cond, $block) = @{$chunks[1]}; 1833 my ($cond, $block) = @{$chunks[1]};
1761 if (defined $cond) { 1834 if (defined $cond) {
1762 substr($block, 0, length($cond)) = ''; 1835 substr($block, 0, length($cond), '');
1763 } 1836 }
1764 if ($block =~ /^\s*\{/) { 1837 if ($block =~ /^\s*\{/) {
1765 #print "APW: ALLOWED: chunk-1 block<$block>\n"; 1838 #print "APW: ALLOWED: chunk-1 block<$block>\n";
@@ -1882,6 +1955,28 @@ sub process {
1882 if ($line =~ /__FUNCTION__/) { 1955 if ($line =~ /__FUNCTION__/) {
1883 WARN("__func__ should be used instead of gcc specific __FUNCTION__\n" . $herecurr); 1956 WARN("__func__ should be used instead of gcc specific __FUNCTION__\n" . $herecurr);
1884 } 1957 }
1958
1959# check for semaphores used as mutexes
1960 if ($line =~ /\b(DECLARE_MUTEX|init_MUTEX)\s*\(/) {
1961 WARN("mutexes are preferred for single holder semaphores\n" . $herecurr);
1962 }
1963# check for semaphores used as mutexes
1964 if ($line =~ /\binit_MUTEX_LOCKED\s*\(/) {
1965 WARN("consider using a completion\n" . $herecurr);
1966 }
1967# recommend strict_strto* over simple_strto*
1968 if ($line =~ /\bsimple_(strto.*?)\s*\(/) {
1969 WARN("consider using strict_$1 in preference to simple_$1\n" . $herecurr);
1970 }
1971
1972# use of NR_CPUS is usually wrong
1973# ignore definitions of NR_CPUS and usage to define arrays as likely right
1974 if ($line =~ /\bNR_CPUS\b/ &&
1975 $line !~ /^.#\s*define\s+NR_CPUS\s+/ &&
1976 $line !~ /^.\s*$Declare\s.*\[[^\]]*NR_CPUS[^\]]*\]/)
1977 {
1978 WARN("usage of NR_CPUS is often wrong - consider using cpu_possible(), num_possible_cpus(), for_each_possible_cpu(), etc\n" . $herecurr);
1979 }
1885 } 1980 }
1886 1981
1887 # If we have no input at all, then there is nothing to report on 1982 # If we have no input at all, then there is nothing to report on
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 74c2f9db2aac..263d04ab2d94 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -247,6 +247,10 @@ my ($function, %function_table,%parametertypes,$declaration_purpose);
247my ($type,$declaration_name,$return_type); 247my ($type,$declaration_name,$return_type);
248my ($newsection,$newcontents,$prototype,$filelist, $brcount, %source_map); 248my ($newsection,$newcontents,$prototype,$filelist, $brcount, %source_map);
249 249
250if (defined($ENV{'KBUILD_VERBOSE'})) {
251 $verbose = "$ENV{'KBUILD_VERBOSE'}";
252}
253
250# Generated docbook code is inserted in a template at a point where 254# Generated docbook code is inserted in a template at a point where
251# docbook v3.1 requires a non-zero sequence of RefEntry's; see: 255# docbook v3.1 requires a non-zero sequence of RefEntry's; see:
252# http://www.oasis-open.org/docbook/documentation/reference/html/refentry.html 256# http://www.oasis-open.org/docbook/documentation/reference/html/refentry.html
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 9ddf944cce29..348d8687b7c9 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -51,11 +51,13 @@ do { \
51 sprintf(str + strlen(str), "*"); \ 51 sprintf(str + strlen(str), "*"); \
52} while(0) 52} while(0)
53 53
54unsigned int cross_build = 0;
54/** 55/**
55 * Check that sizeof(device_id type) are consistent with size of section 56 * Check that sizeof(device_id type) are consistent with size of section
56 * in .o file. If in-consistent then userspace and kernel does not agree 57 * in .o file. If in-consistent then userspace and kernel does not agree
57 * on actual size which is a bug. 58 * on actual size which is a bug.
58 * Also verify that the final entry in the table is all zeros. 59 * Also verify that the final entry in the table is all zeros.
60 * Ignore both checks if build host differ from target host and size differs.
59 **/ 61 **/
60static void device_id_check(const char *modname, const char *device_id, 62static void device_id_check(const char *modname, const char *device_id,
61 unsigned long size, unsigned long id_size, 63 unsigned long size, unsigned long id_size,
@@ -64,6 +66,8 @@ static void device_id_check(const char *modname, const char *device_id,
64 int i; 66 int i;
65 67
66 if (size % id_size || size < id_size) { 68 if (size % id_size || size < id_size) {
69 if (cross_build != 0)
70 return;
67 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo " 71 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
68 "of the size of section __mod_%s_device_table=%lu.\n" 72 "of the size of section __mod_%s_device_table=%lu.\n"
69 "Fix definition of struct %s_device_id " 73 "Fix definition of struct %s_device_id "
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 695b5d657cf5..110cf243fa4e 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -2026,7 +2026,7 @@ int main(int argc, char **argv)
2026 int opt; 2026 int opt;
2027 int err; 2027 int err;
2028 2028
2029 while ((opt = getopt(argc, argv, "i:I:msSo:awM:K:")) != -1) { 2029 while ((opt = getopt(argc, argv, "i:I:cmsSo:awM:K:")) != -1) {
2030 switch (opt) { 2030 switch (opt) {
2031 case 'i': 2031 case 'i':
2032 kernel_read = optarg; 2032 kernel_read = optarg;
@@ -2035,6 +2035,9 @@ int main(int argc, char **argv)
2035 module_read = optarg; 2035 module_read = optarg;
2036 external_module = 1; 2036 external_module = 1;
2037 break; 2037 break;
2038 case 'c':
2039 cross_build = 1;
2040 break;
2038 case 'm': 2041 case 'm':
2039 modversions = 1; 2042 modversions = 1;
2040 break; 2043 break;
diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
index 565c5872407e..09f58e33d227 100644
--- a/scripts/mod/modpost.h
+++ b/scripts/mod/modpost.h
@@ -135,6 +135,7 @@ struct elf_info {
135}; 135};
136 136
137/* file2alias.c */ 137/* file2alias.c */
138extern unsigned int cross_build;
138void handle_moddevtable(struct module *mod, struct elf_info *info, 139void handle_moddevtable(struct module *mod, struct elf_info *info,
139 Elf_Sym *sym, const char *symname); 140 Elf_Sym *sym, const char *symname);
140void add_moddevtable(struct buffer *buf, struct module *mod); 141void add_moddevtable(struct buffer *buf, struct module *mod);
diff --git a/security/capability.c b/security/capability.c
index 9e99f36a8b5c..2c6e06d18fab 100644
--- a/security/capability.c
+++ b/security/capability.c
@@ -40,7 +40,6 @@ static struct security_operations capability_ops = {
40 .inode_need_killpriv = cap_inode_need_killpriv, 40 .inode_need_killpriv = cap_inode_need_killpriv,
41 .inode_killpriv = cap_inode_killpriv, 41 .inode_killpriv = cap_inode_killpriv,
42 42
43 .task_kill = cap_task_kill,
44 .task_setscheduler = cap_task_setscheduler, 43 .task_setscheduler = cap_task_setscheduler,
45 .task_setioprio = cap_task_setioprio, 44 .task_setioprio = cap_task_setioprio,
46 .task_setnice = cap_task_setnice, 45 .task_setnice = cap_task_setnice,
diff --git a/security/commoncap.c b/security/commoncap.c
index bb0c095f5761..06d5c9469ba3 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -540,41 +540,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
540 return cap_safe_nice(p); 540 return cap_safe_nice(p);
541} 541}
542 542
543int cap_task_kill(struct task_struct *p, struct siginfo *info,
544 int sig, u32 secid)
545{
546 if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info)))
547 return 0;
548
549 /*
550 * Running a setuid root program raises your capabilities.
551 * Killing your own setuid root processes was previously
552 * allowed.
553 * We must preserve legacy signal behavior in this case.
554 */
555 if (p->uid == current->uid)
556 return 0;
557
558 /* sigcont is permitted within same session */
559 if (sig == SIGCONT && (task_session_nr(current) == task_session_nr(p)))
560 return 0;
561
562 if (secid)
563 /*
564 * Signal sent as a particular user.
565 * Capabilities are ignored. May be wrong, but it's the
566 * only thing we can do at the moment.
567 * Used only by usb drivers?
568 */
569 return 0;
570 if (cap_issubset(p->cap_permitted, current->cap_permitted))
571 return 0;
572 if (capable(CAP_KILL))
573 return 0;
574
575 return -EPERM;
576}
577
578/* 543/*
579 * called from kernel/sys.c for prctl(PR_CABSET_DROP) 544 * called from kernel/sys.c for prctl(PR_CABSET_DROP)
580 * done without task_capability_lock() because it introduces 545 * done without task_capability_lock() because it introduces
@@ -605,11 +570,6 @@ int cap_task_setnice (struct task_struct *p, int nice)
605{ 570{
606 return 0; 571 return 0;
607} 572}
608int cap_task_kill(struct task_struct *p, struct siginfo *info,
609 int sig, u32 secid)
610{
611 return 0;
612}
613#endif 573#endif
614 574
615void cap_task_reparent_to_init (struct task_struct *p) 575void cap_task_reparent_to_init (struct task_struct *p)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 4bf4807f2d44..41a049f50f58 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -800,7 +800,8 @@ static void selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
800 mutex_unlock(&newsbsec->lock); 800 mutex_unlock(&newsbsec->lock);
801} 801}
802 802
803int selinux_parse_opts_str(char *options, struct security_mnt_opts *opts) 803static int selinux_parse_opts_str(char *options,
804 struct security_mnt_opts *opts)
804{ 805{
805 char *p; 806 char *p;
806 char *context = NULL, *defcontext = NULL; 807 char *context = NULL, *defcontext = NULL;
diff --git a/security/smack/smack.h b/security/smack/smack.h
index a21a0e907ab3..62c1e982849d 100644
--- a/security/smack/smack.h
+++ b/security/smack/smack.h
@@ -26,14 +26,6 @@
26#define SMK_MAXLEN 23 26#define SMK_MAXLEN 23
27#define SMK_LABELLEN (SMK_MAXLEN+1) 27#define SMK_LABELLEN (SMK_MAXLEN+1)
28 28
29/*
30 * How many kinds of access are there?
31 * Here's your answer.
32 */
33#define SMK_ACCESSDASH '-'
34#define SMK_ACCESSLOW "rwxa"
35#define SMK_ACCESSKINDS (sizeof(SMK_ACCESSLOW) - 1)
36
37struct superblock_smack { 29struct superblock_smack {
38 char *smk_root; 30 char *smk_root;
39 char *smk_floor; 31 char *smk_floor;
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 0241fd359675..732ba27923c4 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -1117,11 +1117,6 @@ static int smack_task_movememory(struct task_struct *p)
1117static int smack_task_kill(struct task_struct *p, struct siginfo *info, 1117static int smack_task_kill(struct task_struct *p, struct siginfo *info,
1118 int sig, u32 secid) 1118 int sig, u32 secid)
1119{ 1119{
1120 int rc;
1121
1122 rc = cap_task_kill(p, info, sig, secid);
1123 if (rc != 0)
1124 return rc;
1125 /* 1120 /*
1126 * Special cases where signals really ought to go through 1121 * Special cases where signals really ought to go through
1127 * in spite of policy. Stephen Smalley suggests it may 1122 * in spite of policy. Stephen Smalley suggests it may
@@ -1508,7 +1503,7 @@ static int smack_shm_associate(struct shmid_kernel *shp, int shmflg)
1508 */ 1503 */
1509static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd) 1504static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd)
1510{ 1505{
1511 char *ssp = smack_of_shm(shp); 1506 char *ssp;
1512 int may; 1507 int may;
1513 1508
1514 switch (cmd) { 1509 switch (cmd) {
@@ -1532,6 +1527,7 @@ static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd)
1532 return -EINVAL; 1527 return -EINVAL;
1533 } 1528 }
1534 1529
1530 ssp = smack_of_shm(shp);
1535 return smk_curacc(ssp, may); 1531 return smk_curacc(ssp, may);
1536} 1532}
1537 1533
@@ -1616,7 +1612,7 @@ static int smack_sem_associate(struct sem_array *sma, int semflg)
1616 */ 1612 */
1617static int smack_sem_semctl(struct sem_array *sma, int cmd) 1613static int smack_sem_semctl(struct sem_array *sma, int cmd)
1618{ 1614{
1619 char *ssp = smack_of_sem(sma); 1615 char *ssp;
1620 int may; 1616 int may;
1621 1617
1622 switch (cmd) { 1618 switch (cmd) {
@@ -1645,6 +1641,7 @@ static int smack_sem_semctl(struct sem_array *sma, int cmd)
1645 return -EINVAL; 1641 return -EINVAL;
1646 } 1642 }
1647 1643
1644 ssp = smack_of_sem(sma);
1648 return smk_curacc(ssp, may); 1645 return smk_curacc(ssp, may);
1649} 1646}
1650 1647
@@ -1730,7 +1727,7 @@ static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg)
1730 */ 1727 */
1731static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) 1728static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd)
1732{ 1729{
1733 char *msp = smack_of_msq(msq); 1730 char *msp;
1734 int may; 1731 int may;
1735 1732
1736 switch (cmd) { 1733 switch (cmd) {
@@ -1752,6 +1749,7 @@ static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd)
1752 return -EINVAL; 1749 return -EINVAL;
1753 } 1750 }
1754 1751
1752 msp = smack_of_msq(msq);
1755 return smk_curacc(msp, may); 1753 return smk_curacc(msp, may);
1756} 1754}
1757 1755
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 358c92c1a153..cfae8afcc262 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -74,17 +74,25 @@ struct smk_list_entry *smack_list;
74#define SEQ_READ_FINISHED 1 74#define SEQ_READ_FINISHED 1
75 75
76/* 76/*
77 * Disable concurrent writing open() operations
78 */
79static struct semaphore smack_write_sem;
80
81/*
82 * Values for parsing cipso rules 77 * Values for parsing cipso rules
83 * SMK_DIGITLEN: Length of a digit field in a rule. 78 * SMK_DIGITLEN: Length of a digit field in a rule.
84 * SMK_CIPSOMEN: Minimum possible cipso rule length. 79 * SMK_CIPSOMIN: Minimum possible cipso rule length.
80 * SMK_CIPSOMAX: Maximum possible cipso rule length.
85 */ 81 */
86#define SMK_DIGITLEN 4 82#define SMK_DIGITLEN 4
87#define SMK_CIPSOMIN (SMK_MAXLEN + 2 * SMK_DIGITLEN) 83#define SMK_CIPSOMIN (SMK_LABELLEN + 2 * SMK_DIGITLEN)
84#define SMK_CIPSOMAX (SMK_CIPSOMIN + SMACK_CIPSO_MAXCATNUM * SMK_DIGITLEN)
85
86/*
87 * Values for parsing MAC rules
88 * SMK_ACCESS: Maximum possible combination of access permissions
89 * SMK_ACCESSLEN: Maximum length for a rule access field
90 * SMK_LOADLEN: Smack rule length
91 */
92#define SMK_ACCESS "rwxa"
93#define SMK_ACCESSLEN (sizeof(SMK_ACCESS) - 1)
94#define SMK_LOADLEN (SMK_LABELLEN + SMK_LABELLEN + SMK_ACCESSLEN)
95
88 96
89/* 97/*
90 * Seq_file read operations for /smack/load 98 * Seq_file read operations for /smack/load
@@ -155,32 +163,7 @@ static struct seq_operations load_seq_ops = {
155 */ 163 */
156static int smk_open_load(struct inode *inode, struct file *file) 164static int smk_open_load(struct inode *inode, struct file *file)
157{ 165{
158 if ((file->f_flags & O_ACCMODE) == O_RDONLY) 166 return seq_open(file, &load_seq_ops);
159 return seq_open(file, &load_seq_ops);
160
161 if (down_interruptible(&smack_write_sem))
162 return -ERESTARTSYS;
163
164 return 0;
165}
166
167/**
168 * smk_release_load - release() for /smack/load
169 * @inode: inode structure representing file
170 * @file: "load" file pointer
171 *
172 * For a reading session, use the seq_file release
173 * implementation.
174 * Otherwise, we are at the end of a writing session so
175 * clean everything up.
176 */
177static int smk_release_load(struct inode *inode, struct file *file)
178{
179 if ((file->f_flags & O_ACCMODE) == O_RDONLY)
180 return seq_release(inode, file);
181
182 up(&smack_write_sem);
183 return 0;
184} 167}
185 168
186/** 169/**
@@ -229,14 +212,10 @@ static void smk_set_access(struct smack_rule *srp)
229 * The format is exactly: 212 * The format is exactly:
230 * char subject[SMK_LABELLEN] 213 * char subject[SMK_LABELLEN]
231 * char object[SMK_LABELLEN] 214 * char object[SMK_LABELLEN]
232 * char access[SMK_ACCESSKINDS] 215 * char access[SMK_ACCESSLEN]
233 *
234 * Anything following is commentary and ignored.
235 * 216 *
236 * writes must be SMK_LABELLEN+SMK_LABELLEN+4 bytes. 217 * writes must be SMK_LABELLEN+SMK_LABELLEN+SMK_ACCESSLEN bytes.
237 */ 218 */
238#define MINIMUM_LOAD (SMK_LABELLEN + SMK_LABELLEN + SMK_ACCESSKINDS)
239
240static ssize_t smk_write_load(struct file *file, const char __user *buf, 219static ssize_t smk_write_load(struct file *file, const char __user *buf,
241 size_t count, loff_t *ppos) 220 size_t count, loff_t *ppos)
242{ 221{
@@ -253,7 +232,7 @@ static ssize_t smk_write_load(struct file *file, const char __user *buf,
253 return -EPERM; 232 return -EPERM;
254 if (*ppos != 0) 233 if (*ppos != 0)
255 return -EINVAL; 234 return -EINVAL;
256 if (count < MINIMUM_LOAD) 235 if (count != SMK_LOADLEN)
257 return -EINVAL; 236 return -EINVAL;
258 237
259 data = kzalloc(count, GFP_KERNEL); 238 data = kzalloc(count, GFP_KERNEL);
@@ -332,7 +311,7 @@ static const struct file_operations smk_load_ops = {
332 .read = seq_read, 311 .read = seq_read,
333 .llseek = seq_lseek, 312 .llseek = seq_lseek,
334 .write = smk_write_load, 313 .write = smk_write_load,
335 .release = smk_release_load, 314 .release = seq_release,
336}; 315};
337 316
338/** 317/**
@@ -513,7 +492,7 @@ static ssize_t smk_write_cipso(struct file *file, const char __user *buf,
513 return -EPERM; 492 return -EPERM;
514 if (*ppos != 0) 493 if (*ppos != 0)
515 return -EINVAL; 494 return -EINVAL;
516 if (count <= SMK_CIPSOMIN) 495 if (count < SMK_CIPSOMIN || count > SMK_CIPSOMAX)
517 return -EINVAL; 496 return -EINVAL;
518 497
519 data = kzalloc(count + 1, GFP_KERNEL); 498 data = kzalloc(count + 1, GFP_KERNEL);
@@ -547,7 +526,7 @@ static ssize_t smk_write_cipso(struct file *file, const char __user *buf,
547 if (ret != 1 || catlen > SMACK_CIPSO_MAXCATNUM) 526 if (ret != 1 || catlen > SMACK_CIPSO_MAXCATNUM)
548 goto out; 527 goto out;
549 528
550 if (count <= (SMK_CIPSOMIN + catlen * SMK_DIGITLEN)) 529 if (count != (SMK_CIPSOMIN + catlen * SMK_DIGITLEN))
551 goto out; 530 goto out;
552 531
553 memset(mapcatset, 0, sizeof(mapcatset)); 532 memset(mapcatset, 0, sizeof(mapcatset));
@@ -1002,7 +981,6 @@ static int __init init_smk_fs(void)
1002 } 981 }
1003 } 982 }
1004 983
1005 sema_init(&smack_write_sem, 1);
1006 smk_cipso_doi(); 984 smk_cipso_doi();
1007 smk_unlbl_ambient(NULL); 985 smk_unlbl_ambient(NULL);
1008 986
diff --git a/sound/oss/ac97_codec.c b/sound/oss/ac97_codec.c
index 87a672680761..b63839e8f9bd 100644
--- a/sound/oss/ac97_codec.c
+++ b/sound/oss/ac97_codec.c
@@ -1202,3 +1202,5 @@ static int pt101_init(struct ac97_codec * codec)
1202 1202
1203EXPORT_SYMBOL(ac97_probe_codec); 1203EXPORT_SYMBOL(ac97_probe_codec);
1204 1204
1205MODULE_LICENSE("GPL");
1206
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 569ecaca0e8b..889a897d41ac 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -1187,10 +1187,8 @@ static struct i2c_driver aic3x_i2c_driver = {
1187 .name = "aic3x I2C Codec", 1187 .name = "aic3x I2C Codec",
1188 .owner = THIS_MODULE, 1188 .owner = THIS_MODULE,
1189 }, 1189 },
1190 .id = I2C_DRIVERID_I2CDEV,
1191 .attach_adapter = aic3x_i2c_attach, 1190 .attach_adapter = aic3x_i2c_attach,
1192 .detach_client = aic3x_i2c_detach, 1191 .detach_client = aic3x_i2c_detach,
1193 .command = NULL,
1194}; 1192};
1195 1193
1196static struct i2c_client client_template = { 1194static struct i2c_client client_template = {