aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-05-14 09:29:52 -0400
committerSteven Rostedt <rostedt@goodmis.org>2010-05-14 09:29:52 -0400
commit23e117fa44429cc054cb27d5621d64e4ced91e52 (patch)
treea4b9d0902b9c6f009b2c297515221c1b9bed3af8
parent668eb65f092902eb7dd526af73d4a7f025a94612 (diff)
parenta93d2f1744206827ccf416e2cdc5018aa503314e (diff)
Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-4
-rw-r--r--Documentation/HOWTO2
-rw-r--r--Documentation/RCU/torture.txt10
-rw-r--r--Documentation/cgroups/cgroups.txt3
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--Documentation/scheduler/sched-design-CFS.txt54
-rw-r--r--Documentation/scheduler/sched-rt-group.txt20
-rw-r--r--Documentation/stable_kernel_rules.txt9
-rw-r--r--MAINTAINERS13
-rw-r--r--Makefile2
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/configs/bcmring_defconfig126
-rw-r--r--arch/arm/configs/n8x0_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom2_defconfig2
-rw-r--r--arch/arm/configs/omap_zoom3_defconfig2
-rw-r--r--arch/arm/configs/rx51_defconfig3
-rw-r--r--arch/arm/include/asm/assembler.h12
-rw-r--r--arch/arm/include/asm/futex.h16
-rw-r--r--arch/arm/include/asm/uaccess.h40
-rw-r--r--arch/arm/kernel/entry-armv.S10
-rw-r--r--arch/arm/kernel/ftrace.c8
-rw-r--r--arch/arm/kernel/process.c8
-rw-r--r--arch/arm/lib/backtrace.S4
-rw-r--r--arch/arm/lib/clear_user.S4
-rw-r--r--arch/arm/lib/copy_from_user.S4
-rw-r--r--arch/arm/lib/copy_to_user.S4
-rw-r--r--arch/arm/lib/csumpartialcopyuser.S4
-rw-r--r--arch/arm/lib/getuser.S4
-rw-r--r--arch/arm/lib/putuser.S4
-rw-r--r--arch/arm/lib/strncpy_from_user.S4
-rw-r--r--arch/arm/lib/strnlen_user.S4
-rw-r--r--arch/arm/lib/uaccess.S8
-rw-r--r--arch/arm/mach-omap1/timer32k.c15
-rw-r--r--arch/arm/mach-omap2/Kconfig6
-rw-r--r--arch/arm/mach-omap2/board-3630sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c4
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c39
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c8
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c18
-rw-r--r--arch/arm/mach-omap2/board-sdp-flash.c8
-rw-r--r--arch/arm/mach-omap2/board-zoom-debugboard.c2
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c1
-rw-r--r--arch/arm/mach-omap2/clock3xxx_data.c2
-rw-r--r--arch/arm/mach-omap2/clock44xx_data.c8
-rw-r--r--arch/arm/mach-omap2/clockdomain.c6
-rw-r--r--arch/arm/mach-omap2/devices.c2
-rw-r--r--arch/arm/mach-omap2/gpmc-nand.c3
-rw-r--r--arch/arm/mach-omap2/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-omap2/omap-headsmp.S6
-rw-r--r--arch/arm/mach-omap2/omap44xx-smc.S2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c3
-rw-r--r--arch/arm/mach-omap2/powerdomain.c2
-rw-r--r--arch/arm/mach-omap2/prcm.c4
-rw-r--r--arch/arm/mach-omap2/serial.c35
-rw-r--r--arch/arm/mach-realview/core.c2
-rw-r--r--arch/arm/mm/alignment.c24
-rw-r--r--arch/arm/mm/proc-sa1100.S2
-rw-r--r--arch/arm/nwfpe/entry.S8
-rw-r--r--arch/arm/plat-omap/common.c22
-rw-r--r--arch/arm/plat-omap/dma.c9
-rw-r--r--arch/arm/plat-omap/gpio.c6
-rw-r--r--arch/arm/plat-omap/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-omap/include/plat/mcbsp.h2
-rw-r--r--arch/arm/plat-omap/include/plat/nand.h7
-rw-r--r--arch/arm/plat-omap/include/plat/omap44xx.h2
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h2
-rw-r--r--arch/avr32/kernel/ptrace.c2
-rw-r--r--arch/ia64/kvm/kvm-ia64.c9
-rw-r--r--arch/m68k/include/asm/mcfuart.h5
-rw-r--r--arch/m68knommu/Makefile2
-rw-r--r--arch/m68knommu/kernel/entry.S2
-rw-r--r--arch/m68knommu/platform/68360/ints.c1
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/kmeter1_defconfig28
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig50
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig43
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig51
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig44
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig23
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig34
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/socrates_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig48
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig47
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/xes_mpc85xx_defconfig59
-rw-r--r--arch/powerpc/configs/86xx/gef_ppc9a_defconfig102
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc310_defconfig53
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig96
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig34
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig48
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig40
-rw-r--r--arch/powerpc/configs/adder875_defconfig18
-rw-r--r--arch/powerpc/configs/c2k_defconfig55
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig20
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig17
-rw-r--r--arch/powerpc/configs/linkstation_defconfig48
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig31
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig19
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig26
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig23
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig124
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig62
-rw-r--r--arch/powerpc/configs/mpc85xx_smp_defconfig64
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig20
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig57
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig20
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig22
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig52
-rw-r--r--arch/powerpc/configs/ps3_defconfig189
-rw-r--r--arch/powerpc/configs/storcenter_defconfig33
-rw-r--r--arch/powerpc/include/asm/page.h15
-rw-r--r--arch/powerpc/kernel/prom_init.c3
-rw-r--r--arch/powerpc/kvm/book3s.c5
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c9
-rw-r--r--arch/powerpc/mm/numa.c17
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/86xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c7
-rw-r--r--arch/powerpc/sysdev/cpm1.c14
-rw-r--r--arch/powerpc/sysdev/cpm2.c11
-rw-r--r--arch/s390/include/asm/vdso.h1
-rw-r--r--arch/s390/kernel/asm-offsets.c1
-rw-r--r--arch/s390/kernel/swsusp_asm64.S3
-rw-r--r--arch/s390/kernel/time.c2
-rw-r--r--arch/s390/kernel/vdso32/clock_gettime.S12
-rw-r--r--arch/s390/kernel/vdso32/gettimeofday.S6
-rw-r--r--arch/s390/kernel/vdso64/clock_gettime.S4
-rw-r--r--arch/s390/kernel/vdso64/gettimeofday.S2
-rw-r--r--arch/sparc/include/asm/thread_info_64.h2
-rw-r--r--arch/sparc/kernel/irq_64.c20
-rw-r--r--arch/sparc/kernel/kstack.h19
-rw-r--r--arch/sparc/kernel/nmi.c7
-rw-r--r--arch/sparc/kernel/rtrap_64.S12
-rw-r--r--arch/sparc/kernel/unaligned_64.c6
-rw-r--r--arch/sparc/lib/mcount.S8
-rw-r--r--arch/um/drivers/line.c1
-rw-r--r--arch/um/os-Linux/helper.c1
-rw-r--r--arch/x86/ia32/ia32entry.S2
-rw-r--r--arch/x86/kernel/apb_timer.c2
-rw-r--r--arch/x86/kernel/cpu/intel.c21
-rw-r--r--arch/x86/kernel/cpu/vmware.c2
-rw-r--r--arch/x86/kernel/dumpstack.h8
-rw-r--r--arch/x86/kernel/process_64.c4
-rw-r--r--arch/x86/kvm/mmu.c11
-rw-r--r--arch/x86/kvm/svm.c25
-rw-r--r--arch/x86/kvm/vmx.c24
-rw-r--r--arch/x86/kvm/x86.c48
-rw-r--r--arch/x86/pci/acpi.c84
-rw-r--r--arch/x86/pci/i386.c3
-rw-r--r--block/blk-timeout.c12
-rw-r--r--crypto/authenc.c16
-rw-r--r--drivers/ata/libata-eh.c5
-rw-r--r--drivers/ata/pata_pcmcia.c4
-rw-r--r--drivers/block/drbd/drbd_main.c1
-rw-r--r--drivers/block/drbd/drbd_receiver.c3
-rw-r--r--drivers/block/pktcdvd.c17
-rw-r--r--drivers/char/pcmcia/cm4000_cs.c8
-rw-r--r--drivers/cpufreq/cpufreq.c19
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c8
-rw-r--r--drivers/cpufreq/cpufreq_ondemand.c75
-rw-r--r--drivers/firewire/core-iso.c14
-rw-r--r--drivers/firewire/ohci.c23
-rw-r--r--drivers/gpio/pca953x.c14
-rw-r--r--drivers/gpio/pl061.c14
-rw-r--r--drivers/gpu/drm/drm_irq.c1
-rw-r--r--drivers/gpu/drm/drm_stub.c4
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c14
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c5
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h10
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c151
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c22
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c8
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c54
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h13
-rw-r--r--drivers/gpu/drm/i915/intel_display.c11
-rw-r--r--drivers/gpu/drm/radeon/r300.c5
-rw-r--r--drivers/gpu/drm/radeon/r300_cmdbuf.c2
-rw-r--r--drivers/gpu/drm/radeon/r420.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c8
-rw-r--r--drivers/gpu/drm/radeon/radeon_encoders.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c6
-rw-r--r--drivers/hwmon/asus_atk0110.c4
-rw-r--r--drivers/hwmon/hp_accel.c4
-rw-r--r--drivers/i2c/busses/i2c-imx.c6
-rw-r--r--drivers/i2c/busses/i2c-omap.c10
-rw-r--r--drivers/i2c/busses/i2c-pnx.c8
-rw-r--r--drivers/i2c/busses/i2c-stu300.c2
-rw-r--r--drivers/ide/ide-cs.c4
-rw-r--r--drivers/md/raid5.c52
-rw-r--r--drivers/misc/Kconfig16
-rw-r--r--drivers/misc/Makefile1
-rw-r--r--drivers/misc/vmware_balloon.c832
-rw-r--r--drivers/mtd/Makefile2
-rw-r--r--drivers/mtd/internal.h17
-rw-r--r--drivers/mtd/mtdbdi.c43
-rw-r--r--drivers/mtd/mtdcore.c79
-rw-r--r--drivers/mtd/mtdsuper.c2
-rw-r--r--drivers/mtd/nand/orion_nand.c8
-rw-r--r--drivers/net/8139too.c2
-rw-r--r--drivers/net/Makefile1
-rw-r--r--drivers/net/bnx2.c48
-rw-r--r--drivers/net/can/usb/ems_usb.c8
-rw-r--r--drivers/net/cxgb3/ael1002.c2
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c2
-rw-r--r--drivers/net/e100.c10
-rw-r--r--drivers/net/e1000e/82571.c20
-rw-r--r--drivers/net/e1000e/e1000.h5
-rw-r--r--drivers/net/e1000e/netdev.c70
-rw-r--r--drivers/net/fsl_pq_mdio.c20
-rw-r--r--drivers/net/gianfar.c12
-rw-r--r--drivers/net/ixgbe/ixgbe_82599.c62
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c22
-rw-r--r--drivers/net/ixgbe/ixgbe_type.h2
-rw-r--r--drivers/net/ks8851.c12
-rw-r--r--drivers/net/pcmcia/3c574_cs.c7
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c31
-rw-r--r--drivers/net/r8169.c32
-rw-r--r--drivers/net/sfc/efx.c4
-rw-r--r--drivers/net/sfc/falcon.c4
-rw-r--r--drivers/net/sfc/falcon_boards.c13
-rw-r--r--drivers/net/sfc/nic.h2
-rw-r--r--drivers/net/sfc/siena.c13
-rw-r--r--drivers/net/tg3.c1
-rw-r--r--drivers/net/usb/Kconfig22
-rw-r--r--drivers/net/usb/Makefile2
-rw-r--r--drivers/net/usb/cdc_ether.c1
-rw-r--r--drivers/net/usb/ipheth.c569
-rw-r--r--drivers/net/usb/kaweth.c1
-rw-r--r--drivers/net/usb/sierra_net.c1001
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c31
-rw-r--r--drivers/pci/hotplug/rpadlpar_core.c3
-rw-r--r--drivers/pci/hotplug/rpaphp_core.c3
-rw-r--r--drivers/pci/pci.c6
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c10
-rw-r--r--drivers/pci/probe.c23
-rw-r--r--drivers/pcmcia/cistpl.c9
-rw-r--r--drivers/pcmcia/db1xxx_ss.c4
-rw-r--r--drivers/pcmcia/ds.c76
-rw-r--r--drivers/pcmcia/pcmcia_resource.c10
-rw-r--r--drivers/pcmcia/rsrc_nonstatic.c16
-rw-r--r--drivers/platform/x86/Kconfig1
-rw-r--r--drivers/platform/x86/asus-laptop.c8
-rw-r--r--drivers/platform/x86/dell-wmi.c3
-rw-r--r--drivers/platform/x86/eeepc-laptop.c3
-rw-r--r--drivers/platform/x86/eeepc-wmi.c333
-rw-r--r--drivers/regulator/max8925-regulator.c2
-rw-r--r--drivers/regulator/mc13783-regulator.c3
-rw-r--r--drivers/s390/block/dasd.c3
-rw-r--r--drivers/s390/block/dasd_3990_erp.c7
-rw-r--r--drivers/s390/char/zcore.c6
-rw-r--r--drivers/s390/cio/chsc.c29
-rw-r--r--drivers/s390/cio/chsc_sch.c2
-rw-r--r--drivers/s390/cio/cio.c18
-rw-r--r--drivers/s390/cio/css.c16
-rw-r--r--drivers/s390/cio/device_fsm.c2
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c6
-rw-r--r--drivers/scsi/be2iscsi/be_mgmt.c1
-rw-r--r--drivers/scsi/bnx2i/bnx2i.h2
-rw-r--r--drivers/scsi/bnx2i/bnx2i_init.c13
-rw-r--r--drivers/scsi/bnx2i/bnx2i_iscsi.c13
-rw-r--r--drivers/scsi/dpt_i2o.c15
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c29
-rw-r--r--drivers/scsi/iscsi_tcp.c2
-rw-r--r--drivers/scsi/lpfc/lpfc_bsg.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c1
-rw-r--r--drivers/scsi/qla4xxx/ql4_mbx.c2
-rw-r--r--drivers/scsi/wd7000.c2
-rw-r--r--drivers/serial/mcf.c6
-rw-r--r--drivers/serial/serial_cs.c9
-rw-r--r--drivers/serial/serial_ks8695.c1
-rw-r--r--drivers/staging/dt3155/dt3155_drv.c14
-rw-r--r--drivers/usb/core/driver.c49
-rw-r--r--drivers/usb/host/ehci-hcd.c1
-rw-r--r--drivers/usb/host/ehci-hub.c2
-rw-r--r--drivers/usb/host/ehci-mem.c2
-rw-r--r--drivers/usb/host/ehci-omap.c6
-rw-r--r--drivers/usb/host/ehci-sched.c40
-rw-r--r--drivers/usb/host/ehci.h5
-rw-r--r--drivers/usb/host/ohci-da8xx.c2
-rw-r--r--drivers/usb/misc/usbsevseg.c15
-rw-r--r--drivers/usb/serial/pl2303.c1
-rw-r--r--drivers/usb/serial/pl2303.h4
-rw-r--r--drivers/usb/serial/qcaux.c10
-rw-r--r--drivers/usb/serial/sierra.c1
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c26
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.h3
-rw-r--r--drivers/usb/wusbcore/devconnect.c2
-rw-r--r--drivers/video/efifb.c3
-rw-r--r--drivers/virtio/virtio_balloon.c3
-rw-r--r--drivers/w1/masters/omap_hdq.c1
-rw-r--r--drivers/w1/slaves/w1_therm.c5
-rw-r--r--drivers/watchdog/booke_wdt.c2
-rw-r--r--drivers/watchdog/sb_wdog.c4
-rw-r--r--drivers/watchdog/sbc_fitpc2_wdt.c14
-rw-r--r--drivers/xen/manage.c14
-rw-r--r--fs/9p/v9fs.c10
-rw-r--r--fs/9p/v9fs.h2
-rw-r--r--fs/9p/vfs_super.c1
-rw-r--r--fs/afs/internal.h2
-rw-r--r--fs/afs/mntpt.c24
-rw-r--r--fs/afs/super.c1
-rw-r--r--fs/afs/volume.c7
-rw-r--r--fs/binfmt_elf_fdpic.c7
-rw-r--r--fs/binfmt_flat.c2
-rw-r--r--fs/block_dev.c17
-rw-r--r--fs/btrfs/disk-io.c12
-rw-r--r--fs/cifs/cifs_fs_sb.h3
-rw-r--r--fs/cifs/cifsfs.c10
-rw-r--r--fs/coda/inode.c8
-rw-r--r--fs/compat_ioctl.c3
-rw-r--r--fs/ecryptfs/ecryptfs_kernel.h2
-rw-r--r--fs/ecryptfs/main.c10
-rw-r--r--fs/ecryptfs/super.c1
-rw-r--r--fs/eventpoll.c3
-rw-r--r--fs/exofs/exofs.h2
-rw-r--r--fs/exofs/super.c8
-rw-r--r--fs/ext4/extents.c1
-rw-r--r--fs/ext4/inode.c3
-rw-r--r--fs/ext4/mballoc.c21
-rw-r--r--fs/ioctl.c92
-rw-r--r--fs/jfs/inode.c2
-rw-r--r--fs/jfs/jfs_dmap.c16
-rw-r--r--fs/jfs/jfs_dmap.h6
-rw-r--r--fs/jfs/jfs_inode.h1
-rw-r--r--fs/jfs/namei.c4
-rw-r--r--fs/jfs/resize.c6
-rw-r--r--fs/jfs/symlink.c14
-rw-r--r--fs/logfs/gc.c8
-rw-r--r--fs/logfs/journal.c29
-rw-r--r--fs/logfs/logfs.h15
-rw-r--r--fs/logfs/readwrite.c75
-rw-r--r--fs/logfs/segment.c8
-rw-r--r--fs/logfs/super.c11
-rw-r--r--fs/ncpfs/inode.c8
-rw-r--r--fs/nfs/client.c2
-rw-r--r--fs/nfs/dir.c4
-rw-r--r--fs/nfs/nfs4proc.c5
-rw-r--r--fs/nfs/super.c3
-rw-r--r--fs/nfs/write.c55
-rw-r--r--fs/nfsd/nfs4xdr.c8
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/quota/Kconfig8
-rw-r--r--fs/quota/dquot.c16
-rw-r--r--fs/reiserfs/dir.c2
-rw-r--r--fs/reiserfs/xattr.c19
-rw-r--r--fs/smbfs/inode.c8
-rw-r--r--fs/squashfs/block.c5
-rw-r--r--fs/squashfs/super.c4
-rw-r--r--fs/squashfs/zlib_wrapper.c3
-rw-r--r--fs/super.c9
-rw-r--r--fs/sync.c3
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c5
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.c112
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.h7
-rw-r--r--fs/xfs/quota/xfs_qm_syscalls.c3
-rw-r--r--fs/xfs/xfs_ag.h1
-rw-r--r--fs/xfs/xfs_dfrag.c22
-rw-r--r--fs/xfs/xfs_mount.h1
-rw-r--r--include/linux/backing-dev.h2
-rw-r--r--include/linux/coda_psdev.h3
-rw-r--r--include/linux/cpuset.h16
-rw-r--r--include/linux/firewire-cdev.h2
-rw-r--r--include/linux/firewire-constants.h2
-rw-r--r--include/linux/fs.h5
-rw-r--r--include/linux/kvm_host.h7
-rw-r--r--include/linux/ncp_fs_sb.h2
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/poison.h9
-rw-r--r--include/linux/rcutiny.h2
-rw-r--r--include/linux/rcutree.h1
-rw-r--r--include/linux/regulator/consumer.h8
-rw-r--r--include/linux/sched.h70
-rw-r--r--include/linux/smb_fs_sb.h3
-rw-r--r--include/linux/stop_machine.h122
-rw-r--r--include/linux/tick.h5
-rw-r--r--include/linux/wait.h35
-rw-r--r--include/net/sctp/command.h1
-rw-r--r--include/net/sctp/sctp.h1
-rw-r--r--include/pcmcia/ds.h7
-rw-r--r--include/pcmcia/ss.h8
-rw-r--r--include/trace/events/sched.h32
-rw-r--r--init/Kconfig3
-rw-r--r--init/initramfs.c3
-rw-r--r--kernel/Makefile2
-rw-r--r--kernel/capability.c1
-rw-r--r--kernel/cgroup.c2
-rw-r--r--kernel/cpu.c26
-rw-r--r--kernel/cpuset.c67
-rw-r--r--kernel/cred-internals.h21
-rw-r--r--kernel/cred.c7
-rw-r--r--kernel/exit.c1
-rw-r--r--kernel/module.c14
-rw-r--r--kernel/rcutorture.c2
-rw-r--r--kernel/sched.c726
-rw-r--r--kernel/sched_debug.c108
-rw-r--r--kernel/sched_fair.c350
-rw-r--r--kernel/sched_features.h55
-rw-r--r--kernel/sched_idletask.c8
-rw-r--r--kernel/sched_rt.c15
-rw-r--r--kernel/stop_machine.c534
-rw-r--r--kernel/sys.c2
-rw-r--r--kernel/time/tick-sched.c84
-rw-r--r--kernel/time/timer_list.c1
-rw-r--r--kernel/trace/ftrace.c3
-rw-r--r--kernel/trace/trace_sched_switch.c5
-rw-r--r--kernel/trace/trace_sched_wakeup.c5
-rw-r--r--kernel/user.c11
-rw-r--r--lib/decompress_unlzo.c22
-rw-r--r--lib/flex_array.c2
-rw-r--r--lib/vsprintf.c1
-rw-r--r--mm/backing-dev.c34
-rw-r--r--mm/hugetlb.c5
-rw-r--r--mm/ksm.c12
-rw-r--r--mm/memcontrol.c4
-rw-r--r--mm/mmap.c3
-rw-r--r--mm/rmap.c9
-rw-r--r--net/bluetooth/l2cap.c5
-rw-r--r--net/bridge/br_multicast.c8
-rw-r--r--net/core/dev.c2
-rw-r--r--net/core/rtnetlink.c5
-rw-r--r--net/ieee802154/af_ieee802154.c3
-rw-r--r--net/ipv6/ip6_output.c2
-rw-r--r--net/ipv6/route.c2
-rw-r--r--net/ipv6/tcp_ipv6.c2
-rw-r--r--net/ipv6/xfrm6_policy.c2
-rw-r--r--net/mac80211/agg-tx.c1
-rw-r--r--net/mac80211/mlme.c2
-rw-r--r--net/rds/rdma_transport.c2
-rw-r--r--net/sctp/associola.c6
-rw-r--r--net/sctp/endpointola.c1
-rw-r--r--net/sctp/sm_make_chunk.c32
-rw-r--r--net/sctp/sm_sideeffect.c26
-rw-r--r--net/sctp/sm_statefuns.c8
-rw-r--r--net/sctp/socket.c14
-rw-r--r--net/sunrpc/auth.c2
-rw-r--r--net/x25/af_x25.c1
-rw-r--r--security/inode.c4
-rw-r--r--security/keys/keyring.c2
-rw-r--r--security/keys/request_key.c22
-rw-r--r--sound/pci/hda/hda_intel.c1
-rw-r--r--sound/pci/hda/patch_analog.c9
-rw-r--r--sound/pci/hda/patch_realtek.c2
-rw-r--r--sound/pci/hda/patch_sigmatel.c4
-rw-r--r--sound/pci/maestro3.c9
-rw-r--r--virt/kvm/kvm_main.c17
466 files changed, 8042 insertions, 3630 deletions
diff --git a/Documentation/HOWTO b/Documentation/HOWTO
index f5395af88a41..40ada93b820a 100644
--- a/Documentation/HOWTO
+++ b/Documentation/HOWTO
@@ -234,7 +234,7 @@ process is as follows:
234 Linus, usually the patches that have already been included in the 234 Linus, usually the patches that have already been included in the
235 -next kernel for a few weeks. The preferred way to submit big changes 235 -next kernel for a few weeks. The preferred way to submit big changes
236 is using git (the kernel's source management tool, more information 236 is using git (the kernel's source management tool, more information
237 can be found at http://git.or.cz/) but plain patches are also just 237 can be found at http://git-scm.com/) but plain patches are also just
238 fine. 238 fine.
239 - After two weeks a -rc1 kernel is released it is now possible to push 239 - After two weeks a -rc1 kernel is released it is now possible to push
240 only patches that do not include new features that could affect the 240 only patches that do not include new features that could affect the
diff --git a/Documentation/RCU/torture.txt b/Documentation/RCU/torture.txt
index 0e50bc2aa1e2..5d9016795fd8 100644
--- a/Documentation/RCU/torture.txt
+++ b/Documentation/RCU/torture.txt
@@ -182,16 +182,6 @@ Similarly, sched_expedited RCU provides the following:
182 sched_expedited-torture: Reader Pipe: 12660320201 95875 0 0 0 0 0 0 0 0 0 182 sched_expedited-torture: Reader Pipe: 12660320201 95875 0 0 0 0 0 0 0 0 0
183 sched_expedited-torture: Reader Batch: 12660424885 0 0 0 0 0 0 0 0 0 0 183 sched_expedited-torture: Reader Batch: 12660424885 0 0 0 0 0 0 0 0 0 0
184 sched_expedited-torture: Free-Block Circulation: 1090795 1090795 1090794 1090793 1090792 1090791 1090790 1090789 1090788 1090787 0 184 sched_expedited-torture: Free-Block Circulation: 1090795 1090795 1090794 1090793 1090792 1090791 1090790 1090789 1090788 1090787 0
185 state: -1 / 0:0 3:0 4:0
186
187As before, the first four lines are similar to those for RCU.
188The last line shows the task-migration state. The first number is
189-1 if synchronize_sched_expedited() is idle, -2 if in the process of
190posting wakeups to the migration kthreads, and N when waiting on CPU N.
191Each of the colon-separated fields following the "/" is a CPU:state pair.
192Valid states are "0" for idle, "1" for waiting for quiescent state,
193"2" for passed through quiescent state, and "3" when a race with a
194CPU-hotplug event forces use of the synchronize_sched() primitive.
195 185
196 186
197USAGE 187USAGE
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt
index fd588ff0e296..a1ca5924faff 100644
--- a/Documentation/cgroups/cgroups.txt
+++ b/Documentation/cgroups/cgroups.txt
@@ -235,8 +235,7 @@ containing the following files describing that cgroup:
235 - cgroup.procs: list of tgids in the cgroup. This list is not 235 - cgroup.procs: list of tgids in the cgroup. This list is not
236 guaranteed to be sorted or free of duplicate tgids, and userspace 236 guaranteed to be sorted or free of duplicate tgids, and userspace
237 should sort/uniquify the list if this property is required. 237 should sort/uniquify the list if this property is required.
238 Writing a tgid into this file moves all threads with that tgid into 238 This is a read-only file, for now.
239 this cgroup.
240 - notify_on_release flag: run the release agent on exit? 239 - notify_on_release flag: run the release agent on exit?
241 - release_agent: the path to use for release notifications (this file 240 - release_agent: the path to use for release notifications (this file
242 exists in the top cgroup only) 241 exists in the top cgroup only)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 21a99474df93..907010cea9ad 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1198,7 +1198,7 @@ and is between 256 and 4096 characters. It is defined in the file
1198 1198
1199 libata.force= [LIBATA] Force configurations. The format is comma 1199 libata.force= [LIBATA] Force configurations. The format is comma
1200 separated list of "[ID:]VAL" where ID is 1200 separated list of "[ID:]VAL" where ID is
1201 PORT[:DEVICE]. PORT and DEVICE are decimal numbers 1201 PORT[.DEVICE]. PORT and DEVICE are decimal numbers
1202 matching port, link or device. Basically, it matches 1202 matching port, link or device. Basically, it matches
1203 the ATA ID string printed on console by libata. If 1203 the ATA ID string printed on console by libata. If
1204 the whole ID part is omitted, the last PORT and DEVICE 1204 the whole ID part is omitted, the last PORT and DEVICE
diff --git a/Documentation/scheduler/sched-design-CFS.txt b/Documentation/scheduler/sched-design-CFS.txt
index 6f33593e59e2..8239ebbcddce 100644
--- a/Documentation/scheduler/sched-design-CFS.txt
+++ b/Documentation/scheduler/sched-design-CFS.txt
@@ -211,7 +211,7 @@ provide fair CPU time to each such task group. For example, it may be
211desirable to first provide fair CPU time to each user on the system and then to 211desirable to first provide fair CPU time to each user on the system and then to
212each task belonging to a user. 212each task belonging to a user.
213 213
214CONFIG_GROUP_SCHED strives to achieve exactly that. It lets tasks to be 214CONFIG_CGROUP_SCHED strives to achieve exactly that. It lets tasks to be
215grouped and divides CPU time fairly among such groups. 215grouped and divides CPU time fairly among such groups.
216 216
217CONFIG_RT_GROUP_SCHED permits to group real-time (i.e., SCHED_FIFO and 217CONFIG_RT_GROUP_SCHED permits to group real-time (i.e., SCHED_FIFO and
@@ -220,38 +220,11 @@ SCHED_RR) tasks.
220CONFIG_FAIR_GROUP_SCHED permits to group CFS (i.e., SCHED_NORMAL and 220CONFIG_FAIR_GROUP_SCHED permits to group CFS (i.e., SCHED_NORMAL and
221SCHED_BATCH) tasks. 221SCHED_BATCH) tasks.
222 222
223At present, there are two (mutually exclusive) mechanisms to group tasks for 223 These options need CONFIG_CGROUPS to be defined, and let the administrator
224CPU bandwidth control purposes:
225
226 - Based on user id (CONFIG_USER_SCHED)
227
228 With this option, tasks are grouped according to their user id.
229
230 - Based on "cgroup" pseudo filesystem (CONFIG_CGROUP_SCHED)
231
232 This options needs CONFIG_CGROUPS to be defined, and lets the administrator
233 create arbitrary groups of tasks, using the "cgroup" pseudo filesystem. See 224 create arbitrary groups of tasks, using the "cgroup" pseudo filesystem. See
234 Documentation/cgroups/cgroups.txt for more information about this filesystem. 225 Documentation/cgroups/cgroups.txt for more information about this filesystem.
235 226
236Only one of these options to group tasks can be chosen and not both. 227When CONFIG_FAIR_GROUP_SCHED is defined, a "cpu.shares" file is created for each
237
238When CONFIG_USER_SCHED is defined, a directory is created in sysfs for each new
239user and a "cpu_share" file is added in that directory.
240
241 # cd /sys/kernel/uids
242 # cat 512/cpu_share # Display user 512's CPU share
243 1024
244 # echo 2048 > 512/cpu_share # Modify user 512's CPU share
245 # cat 512/cpu_share # Display user 512's CPU share
246 2048
247 #
248
249CPU bandwidth between two users is divided in the ratio of their CPU shares.
250For example: if you would like user "root" to get twice the bandwidth of user
251"guest," then set the cpu_share for both the users such that "root"'s cpu_share
252is twice "guest"'s cpu_share.
253
254When CONFIG_CGROUP_SCHED is defined, a "cpu.shares" file is created for each
255group created using the pseudo filesystem. See example steps below to create 228group created using the pseudo filesystem. See example steps below to create
256task groups and modify their CPU share using the "cgroups" pseudo filesystem. 229task groups and modify their CPU share using the "cgroups" pseudo filesystem.
257 230
@@ -273,24 +246,3 @@ task groups and modify their CPU share using the "cgroups" pseudo filesystem.
273 246
274 # #Launch gmplayer (or your favourite movie player) 247 # #Launch gmplayer (or your favourite movie player)
275 # echo <movie_player_pid> > multimedia/tasks 248 # echo <movie_player_pid> > multimedia/tasks
276
2778. Implementation note: user namespaces
278
279User namespaces are intended to be hierarchical. But they are currently
280only partially implemented. Each of those has ramifications for CFS.
281
282First, since user namespaces are hierarchical, the /sys/kernel/uids
283presentation is inadequate. Eventually we will likely want to use sysfs
284tagging to provide private views of /sys/kernel/uids within each user
285namespace.
286
287Second, the hierarchical nature is intended to support completely
288unprivileged use of user namespaces. So if using user groups, then
289we want the users in a user namespace to be children of the user
290who created it.
291
292That is currently unimplemented. So instead, every user in a new
293user namespace will receive 1024 shares just like any user in the
294initial user namespace. Note that at the moment creation of a new
295user namespace requires each of CAP_SYS_ADMIN, CAP_SETUID, and
296CAP_SETGID.
diff --git a/Documentation/scheduler/sched-rt-group.txt b/Documentation/scheduler/sched-rt-group.txt
index 86eabe6c3419..605b0d40329d 100644
--- a/Documentation/scheduler/sched-rt-group.txt
+++ b/Documentation/scheduler/sched-rt-group.txt
@@ -126,23 +126,12 @@ priority!
1262.3 Basis for grouping tasks 1262.3 Basis for grouping tasks
127---------------------------- 127----------------------------
128 128
129There are two compile-time settings for allocating CPU bandwidth. These are 129Enabling CONFIG_RT_GROUP_SCHED lets you explicitly allocate real
130configured using the "Basis for grouping tasks" multiple choice menu under 130CPU bandwidth to task groups.
131General setup > Group CPU Scheduler:
132
133a. CONFIG_USER_SCHED (aka "Basis for grouping tasks" = "user id")
134
135This lets you use the virtual files under
136"/sys/kernel/uids/<uid>/cpu_rt_runtime_us" to control he CPU time reserved for
137each user .
138
139The other option is:
140
141.o CONFIG_CGROUP_SCHED (aka "Basis for grouping tasks" = "Control groups")
142 131
143This uses the /cgroup virtual file system and 132This uses the /cgroup virtual file system and
144"/cgroup/<cgroup>/cpu.rt_runtime_us" to control the CPU time reserved for each 133"/cgroup/<cgroup>/cpu.rt_runtime_us" to control the CPU time reserved for each
145control group instead. 134control group.
146 135
147For more information on working with control groups, you should read 136For more information on working with control groups, you should read
148Documentation/cgroups/cgroups.txt as well. 137Documentation/cgroups/cgroups.txt as well.
@@ -161,8 +150,7 @@ For now, this can be simplified to just the following (but see Future plans):
161=============== 150===============
162 151
163There is work in progress to make the scheduling period for each group 152There is work in progress to make the scheduling period for each group
164("/sys/kernel/uids/<uid>/cpu_rt_period_us" or 153("/cgroup/<cgroup>/cpu.rt_period_us") configurable as well.
165"/cgroup/<cgroup>/cpu.rt_period_us" respectively) configurable as well.
166 154
167The constraint on the period is that a subgroup must have a smaller or 155The constraint on the period is that a subgroup must have a smaller or
168equal period to its parent. But realistically its not very useful _yet_ 156equal period to its parent. But realistically its not very useful _yet_
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt
index 5effa5bd993b..e213f45cf9d7 100644
--- a/Documentation/stable_kernel_rules.txt
+++ b/Documentation/stable_kernel_rules.txt
@@ -18,16 +18,15 @@ Rules on what kind of patches are accepted, and which ones are not, into the
18 - It cannot contain any "trivial" fixes in it (spelling changes, 18 - It cannot contain any "trivial" fixes in it (spelling changes,
19 whitespace cleanups, etc). 19 whitespace cleanups, etc).
20 - It must follow the Documentation/SubmittingPatches rules. 20 - It must follow the Documentation/SubmittingPatches rules.
21 - It or an equivalent fix must already exist in Linus' tree. Quote the 21 - It or an equivalent fix must already exist in Linus' tree (upstream).
22 respective commit ID in Linus' tree in your patch submission to -stable.
23 22
24 23
25Procedure for submitting patches to the -stable tree: 24Procedure for submitting patches to the -stable tree:
26 25
27 - Send the patch, after verifying that it follows the above rules, to 26 - Send the patch, after verifying that it follows the above rules, to
28 stable@kernel.org. 27 stable@kernel.org. You must note the upstream commit ID in the changelog
29 - To have the patch automatically included in the stable tree, add the 28 of your submission.
30 the tag 29 - To have the patch automatically included in the stable tree, add the tag
31 Cc: stable@kernel.org 30 Cc: stable@kernel.org
32 in the sign-off area. Once the patch is merged it will be applied to 31 in the sign-off area. Once the patch is merged it will be applied to
33 the stable tree without anything else needing to be done by the author 32 the stable tree without anything else needing to be done by the author
diff --git a/MAINTAINERS b/MAINTAINERS
index a0e3c3a47a51..d5b0b1b6dc52 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1960,7 +1960,7 @@ F: lib/kobj*
1960 1960
1961DRM DRIVERS 1961DRM DRIVERS
1962M: David Airlie <airlied@linux.ie> 1962M: David Airlie <airlied@linux.ie>
1963L: dri-devel@lists.sourceforge.net 1963L: dri-devel@lists.freedesktop.org
1964T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git 1964T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
1965S: Maintained 1965S: Maintained
1966F: drivers/gpu/drm/ 1966F: drivers/gpu/drm/
@@ -4482,17 +4482,17 @@ S: Maintained
4482F: drivers/ata/sata_promise.* 4482F: drivers/ata/sata_promise.*
4483 4483
4484PS3 NETWORK SUPPORT 4484PS3 NETWORK SUPPORT
4485M: Geoff Levand <geoffrey.levand@am.sony.com> 4485M: Geoff Levand <geoff@infradead.org>
4486L: netdev@vger.kernel.org 4486L: netdev@vger.kernel.org
4487L: cbe-oss-dev@ozlabs.org 4487L: cbe-oss-dev@ozlabs.org
4488S: Supported 4488S: Maintained
4489F: drivers/net/ps3_gelic_net.* 4489F: drivers/net/ps3_gelic_net.*
4490 4490
4491PS3 PLATFORM SUPPORT 4491PS3 PLATFORM SUPPORT
4492M: Geoff Levand <geoffrey.levand@am.sony.com> 4492M: Geoff Levand <geoff@infradead.org>
4493L: linuxppc-dev@ozlabs.org 4493L: linuxppc-dev@ozlabs.org
4494L: cbe-oss-dev@ozlabs.org 4494L: cbe-oss-dev@ozlabs.org
4495S: Supported 4495S: Maintained
4496F: arch/powerpc/boot/ps3* 4496F: arch/powerpc/boot/ps3*
4497F: arch/powerpc/include/asm/lv1call.h 4497F: arch/powerpc/include/asm/lv1call.h
4498F: arch/powerpc/include/asm/ps3*.h 4498F: arch/powerpc/include/asm/ps3*.h
@@ -4791,12 +4791,11 @@ F: drivers/s390/crypto/
4791 4791
4792S390 ZFCP DRIVER 4792S390 ZFCP DRIVER
4793M: Christof Schmitt <christof.schmitt@de.ibm.com> 4793M: Christof Schmitt <christof.schmitt@de.ibm.com>
4794M: Martin Peschke <mp3@de.ibm.com> 4794M: Swen Schillig <swen@vnet.ibm.com>
4795M: linux390@de.ibm.com 4795M: linux390@de.ibm.com
4796L: linux-s390@vger.kernel.org 4796L: linux-s390@vger.kernel.org
4797W: http://www.ibm.com/developerworks/linux/linux390/ 4797W: http://www.ibm.com/developerworks/linux/linux390/
4798S: Supported 4798S: Supported
4799F: Documentation/s390/zfcpdump.txt
4800F: drivers/s390/scsi/zfcp_* 4799F: drivers/s390/scsi/zfcp_*
4801 4800
4802S390 IUCV NETWORK LAYER 4801S390 IUCV NETWORK LAYER
diff --git a/Makefile b/Makefile
index fa1db9001754..5f05f8cbeda4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 34 3SUBLEVEL = 34
4EXTRAVERSION = -rc5 4EXTRAVERSION = -rc6
5NAME = Sheep on Meth 5NAME = Sheep on Meth
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5408bf1bf43..92622eb5cc0d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -253,6 +253,7 @@ config ARCH_REALVIEW
253 select GENERIC_TIME 253 select GENERIC_TIME
254 select GENERIC_CLOCKEVENTS 254 select GENERIC_CLOCKEVENTS
255 select ARCH_WANT_OPTIONAL_GPIOLIB 255 select ARCH_WANT_OPTIONAL_GPIOLIB
256 select GPIO_PL061 if GPIOLIB
256 help 257 help
257 This enables support for ARM Ltd RealView boards. 258 This enables support for ARM Ltd RealView boards.
258 259
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
index 1e12167c89b7..6ac6693299bc 100644
--- a/arch/arm/configs/bcmring_defconfig
+++ b/arch/arm/configs/bcmring_defconfig
@@ -1,13 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc3 3# Linux kernel version: 2.6.34-rc2
4# Fri Jul 17 12:07:28 2009 4# Mon Mar 29 12:01:41 2010
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_TIME=y 8CONFIG_GENERIC_TIME=y
9CONFIG_GENERIC_CLOCKEVENTS=y 9CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_MMU=y 10CONFIG_HAVE_PROC_CPU=y
11CONFIG_GENERIC_HARDIRQS=y 11CONFIG_GENERIC_HARDIRQS=y
12CONFIG_STACKTRACE_SUPPORT=y 12CONFIG_STACKTRACE_SUPPORT=y
13CONFIG_HAVE_LATENCYTOP_SUPPORT=y 13CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -18,6 +18,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_RWSEM_GENERIC_SPINLOCK=y 18CONFIG_RWSEM_GENERIC_SPINLOCK=y
19CONFIG_GENERIC_HWEIGHT=y 19CONFIG_GENERIC_HWEIGHT=y
20CONFIG_GENERIC_CALIBRATE_DELAY=y 20CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_NEED_DMA_MAP_STATE=y
21CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 22CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
22CONFIG_VECTORS_BASE=0xffff0000 23CONFIG_VECTORS_BASE=0xffff0000
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -32,6 +33,12 @@ CONFIG_LOCK_KERNEL=y
32CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
33CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
34# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
36CONFIG_HAVE_KERNEL_GZIP=y
37CONFIG_HAVE_KERNEL_LZO=y
38CONFIG_KERNEL_GZIP=y
39# CONFIG_KERNEL_BZIP2 is not set
40# CONFIG_KERNEL_LZMA is not set
41# CONFIG_KERNEL_LZO is not set
35# CONFIG_SWAP is not set 42# CONFIG_SWAP is not set
36CONFIG_SYSVIPC=y 43CONFIG_SYSVIPC=y
37CONFIG_SYSVIPC_SYSCTL=y 44CONFIG_SYSVIPC_SYSCTL=y
@@ -43,21 +50,22 @@ CONFIG_SYSVIPC_SYSCTL=y
43# 50#
44# RCU Subsystem 51# RCU Subsystem
45# 52#
46CONFIG_CLASSIC_RCU=y 53CONFIG_TREE_RCU=y
47# CONFIG_TREE_RCU is not set 54# CONFIG_TREE_PREEMPT_RCU is not set
48# CONFIG_PREEMPT_RCU is not set 55# CONFIG_TINY_RCU is not set
56# CONFIG_RCU_TRACE is not set
57CONFIG_RCU_FANOUT=32
58# CONFIG_RCU_FANOUT_EXACT is not set
49# CONFIG_TREE_RCU_TRACE is not set 59# CONFIG_TREE_RCU_TRACE is not set
50# CONFIG_PREEMPT_RCU_TRACE is not set
51# CONFIG_IKCONFIG is not set 60# CONFIG_IKCONFIG is not set
52CONFIG_LOG_BUF_SHIFT=17 61CONFIG_LOG_BUF_SHIFT=17
53# CONFIG_GROUP_SCHED is not set
54# CONFIG_CGROUPS is not set
55# CONFIG_SYSFS_DEPRECATED_V2 is not set 62# CONFIG_SYSFS_DEPRECATED_V2 is not set
56# CONFIG_RELAY is not set 63# CONFIG_RELAY is not set
57# CONFIG_NAMESPACES is not set 64# CONFIG_NAMESPACES is not set
58# CONFIG_BLK_DEV_INITRD is not set 65# CONFIG_BLK_DEV_INITRD is not set
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 66CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60CONFIG_SYSCTL=y 67CONFIG_SYSCTL=y
68CONFIG_ANON_INODES=y
61CONFIG_EMBEDDED=y 69CONFIG_EMBEDDED=y
62CONFIG_UID16=y 70CONFIG_UID16=y
63CONFIG_SYSCTL_SYSCALL=y 71CONFIG_SYSCTL_SYSCALL=y
@@ -75,19 +83,21 @@ CONFIG_FUTEX=y
75# CONFIG_EVENTFD is not set 83# CONFIG_EVENTFD is not set
76CONFIG_SHMEM=y 84CONFIG_SHMEM=y
77# CONFIG_AIO is not set 85# CONFIG_AIO is not set
86CONFIG_HAVE_PERF_EVENTS=y
87CONFIG_PERF_USE_VMALLOC=y
78 88
79# 89#
80# Performance Counters 90# Kernel Performance Events And Counters
81# 91#
92CONFIG_PERF_EVENTS=y
93CONFIG_PERF_COUNTERS=y
82# CONFIG_VM_EVENT_COUNTERS is not set 94# CONFIG_VM_EVENT_COUNTERS is not set
83# CONFIG_SLUB_DEBUG is not set 95# CONFIG_SLUB_DEBUG is not set
84# CONFIG_STRIP_ASM_SYMS is not set
85# CONFIG_COMPAT_BRK is not set 96# CONFIG_COMPAT_BRK is not set
86# CONFIG_SLAB is not set 97# CONFIG_SLAB is not set
87CONFIG_SLUB=y 98CONFIG_SLUB=y
88# CONFIG_SLOB is not set 99# CONFIG_SLOB is not set
89# CONFIG_PROFILING is not set 100# CONFIG_PROFILING is not set
90# CONFIG_MARKERS is not set
91CONFIG_HAVE_OPROFILE=y 101CONFIG_HAVE_OPROFILE=y
92# CONFIG_KPROBES is not set 102# CONFIG_KPROBES is not set
93CONFIG_HAVE_KPROBES=y 103CONFIG_HAVE_KPROBES=y
@@ -115,24 +125,53 @@ CONFIG_LBDAF=y
115# IO Schedulers 125# IO Schedulers
116# 126#
117CONFIG_IOSCHED_NOOP=y 127CONFIG_IOSCHED_NOOP=y
118# CONFIG_IOSCHED_AS is not set
119# CONFIG_IOSCHED_DEADLINE is not set 128# CONFIG_IOSCHED_DEADLINE is not set
120# CONFIG_IOSCHED_CFQ is not set 129# CONFIG_IOSCHED_CFQ is not set
121# CONFIG_DEFAULT_AS is not set
122# CONFIG_DEFAULT_DEADLINE is not set 130# CONFIG_DEFAULT_DEADLINE is not set
123# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
124CONFIG_DEFAULT_NOOP=y 132CONFIG_DEFAULT_NOOP=y
125CONFIG_DEFAULT_IOSCHED="noop" 133CONFIG_DEFAULT_IOSCHED="noop"
134# CONFIG_INLINE_SPIN_TRYLOCK is not set
135# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
136# CONFIG_INLINE_SPIN_LOCK is not set
137# CONFIG_INLINE_SPIN_LOCK_BH is not set
138# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
139# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
140# CONFIG_INLINE_SPIN_UNLOCK is not set
141# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
142# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
143# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
144# CONFIG_INLINE_READ_TRYLOCK is not set
145# CONFIG_INLINE_READ_LOCK is not set
146# CONFIG_INLINE_READ_LOCK_BH is not set
147# CONFIG_INLINE_READ_LOCK_IRQ is not set
148# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
149# CONFIG_INLINE_READ_UNLOCK is not set
150# CONFIG_INLINE_READ_UNLOCK_BH is not set
151# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
152# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
153# CONFIG_INLINE_WRITE_TRYLOCK is not set
154# CONFIG_INLINE_WRITE_LOCK is not set
155# CONFIG_INLINE_WRITE_LOCK_BH is not set
156# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
157# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
158# CONFIG_INLINE_WRITE_UNLOCK is not set
159# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
160# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
161# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
162# CONFIG_MUTEX_SPIN_ON_OWNER is not set
126# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
127 164
128# 165#
129# System Type 166# System Type
130# 167#
168CONFIG_MMU=y
131# CONFIG_ARCH_AAEC2000 is not set 169# CONFIG_ARCH_AAEC2000 is not set
132# CONFIG_ARCH_INTEGRATOR is not set 170# CONFIG_ARCH_INTEGRATOR is not set
133# CONFIG_ARCH_REALVIEW is not set 171# CONFIG_ARCH_REALVIEW is not set
134# CONFIG_ARCH_VERSATILE is not set 172# CONFIG_ARCH_VERSATILE is not set
135# CONFIG_ARCH_AT91 is not set 173# CONFIG_ARCH_AT91 is not set
174CONFIG_ARCH_BCMRING=y
136# CONFIG_ARCH_CLPS711X is not set 175# CONFIG_ARCH_CLPS711X is not set
137# CONFIG_ARCH_GEMINI is not set 176# CONFIG_ARCH_GEMINI is not set
138# CONFIG_ARCH_EBSA110 is not set 177# CONFIG_ARCH_EBSA110 is not set
@@ -149,6 +188,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
149# CONFIG_ARCH_IXP2000 is not set 188# CONFIG_ARCH_IXP2000 is not set
150# CONFIG_ARCH_IXP4XX is not set 189# CONFIG_ARCH_IXP4XX is not set
151# CONFIG_ARCH_L7200 is not set 190# CONFIG_ARCH_L7200 is not set
191# CONFIG_ARCH_DOVE is not set
152# CONFIG_ARCH_KIRKWOOD is not set 192# CONFIG_ARCH_KIRKWOOD is not set
153# CONFIG_ARCH_LOKI is not set 193# CONFIG_ARCH_LOKI is not set
154# CONFIG_ARCH_MV78XX0 is not set 194# CONFIG_ARCH_MV78XX0 is not set
@@ -157,19 +197,26 @@ CONFIG_DEFAULT_IOSCHED="noop"
157# CONFIG_ARCH_KS8695 is not set 197# CONFIG_ARCH_KS8695 is not set
158# CONFIG_ARCH_NS9XXX is not set 198# CONFIG_ARCH_NS9XXX is not set
159# CONFIG_ARCH_W90X900 is not set 199# CONFIG_ARCH_W90X900 is not set
200# CONFIG_ARCH_NUC93X is not set
160# CONFIG_ARCH_PNX4008 is not set 201# CONFIG_ARCH_PNX4008 is not set
161# CONFIG_ARCH_PXA is not set 202# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MSM is not set 203# CONFIG_ARCH_MSM is not set
204# CONFIG_ARCH_SHMOBILE is not set
163# CONFIG_ARCH_RPC is not set 205# CONFIG_ARCH_RPC is not set
164# CONFIG_ARCH_SA1100 is not set 206# CONFIG_ARCH_SA1100 is not set
165# CONFIG_ARCH_S3C2410 is not set 207# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set 208# CONFIG_ARCH_S3C64XX is not set
209# CONFIG_ARCH_S5P6440 is not set
210# CONFIG_ARCH_S5P6442 is not set
211# CONFIG_ARCH_S5PC1XX is not set
212# CONFIG_ARCH_S5PV210 is not set
167# CONFIG_ARCH_SHARK is not set 213# CONFIG_ARCH_SHARK is not set
168# CONFIG_ARCH_LH7A40X is not set 214# CONFIG_ARCH_LH7A40X is not set
169# CONFIG_ARCH_U300 is not set 215# CONFIG_ARCH_U300 is not set
216# CONFIG_ARCH_U8500 is not set
217# CONFIG_ARCH_NOMADIK is not set
170# CONFIG_ARCH_DAVINCI is not set 218# CONFIG_ARCH_DAVINCI is not set
171# CONFIG_ARCH_OMAP is not set 219# CONFIG_ARCH_OMAP is not set
172CONFIG_ARCH_BCMRING=y
173# CONFIG_ARCH_FPGA11107 is not set 220# CONFIG_ARCH_FPGA11107 is not set
174CONFIG_ARCH_BCM11107=y 221CONFIG_ARCH_BCM11107=y
175 222
@@ -185,7 +232,7 @@ CONFIG_CPU_V6=y
185CONFIG_CPU_32v6K=y 232CONFIG_CPU_32v6K=y
186CONFIG_CPU_32v6=y 233CONFIG_CPU_32v6=y
187CONFIG_CPU_ABRT_EV6=y 234CONFIG_CPU_ABRT_EV6=y
188CONFIG_CPU_PABRT_NOIFAR=y 235CONFIG_CPU_PABRT_V6=y
189CONFIG_CPU_CACHE_V6=y 236CONFIG_CPU_CACHE_V6=y
190CONFIG_CPU_CACHE_VIPT=y 237CONFIG_CPU_CACHE_VIPT=y
191CONFIG_CPU_COPY_V6=y 238CONFIG_CPU_COPY_V6=y
@@ -201,6 +248,8 @@ CONFIG_ARM_THUMB=y
201# CONFIG_CPU_ICACHE_DISABLE is not set 248# CONFIG_CPU_ICACHE_DISABLE is not set
202# CONFIG_CPU_DCACHE_DISABLE is not set 249# CONFIG_CPU_DCACHE_DISABLE is not set
203# CONFIG_CPU_BPREDICT_DISABLE is not set 250# CONFIG_CPU_BPREDICT_DISABLE is not set
251CONFIG_ARM_L1_CACHE_SHIFT=5
252CONFIG_CPU_HAS_PMU=y
204# CONFIG_ARM_ERRATA_411920 is not set 253# CONFIG_ARM_ERRATA_411920 is not set
205CONFIG_COMMON_CLKDEV=y 254CONFIG_COMMON_CLKDEV=y
206 255
@@ -222,6 +271,8 @@ CONFIG_VMSPLIT_3G=y
222# CONFIG_VMSPLIT_2G is not set 271# CONFIG_VMSPLIT_2G is not set
223# CONFIG_VMSPLIT_1G is not set 272# CONFIG_VMSPLIT_1G is not set
224CONFIG_PAGE_OFFSET=0xC0000000 273CONFIG_PAGE_OFFSET=0xC0000000
274# CONFIG_PREEMPT_NONE is not set
275# CONFIG_PREEMPT_VOLUNTARY is not set
225CONFIG_PREEMPT=y 276CONFIG_PREEMPT=y
226CONFIG_HZ=100 277CONFIG_HZ=100
227CONFIG_AEABI=y 278CONFIG_AEABI=y
@@ -229,6 +280,7 @@ CONFIG_AEABI=y
229# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 280# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
230# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 281# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
231# CONFIG_HIGHMEM is not set 282# CONFIG_HIGHMEM is not set
283CONFIG_HW_PERF_EVENTS=y
232CONFIG_SELECT_MEMORY_MODEL=y 284CONFIG_SELECT_MEMORY_MODEL=y
233CONFIG_FLATMEM_MANUAL=y 285CONFIG_FLATMEM_MANUAL=y
234# CONFIG_DISCONTIGMEM_MANUAL is not set 286# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -240,8 +292,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
240# CONFIG_PHYS_ADDR_T_64BIT is not set 292# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=0 293CONFIG_ZONE_DMA_FLAG=0
242CONFIG_VIRT_TO_BUS=y 294CONFIG_VIRT_TO_BUS=y
243CONFIG_HAVE_MLOCK=y 295# CONFIG_KSM is not set
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 296CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
246CONFIG_ALIGNMENT_TRAP=y 297CONFIG_ALIGNMENT_TRAP=y
247CONFIG_UACCESS_WITH_MEMCPY=y 298CONFIG_UACCESS_WITH_MEMCPY=y
@@ -335,9 +386,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
335# CONFIG_CONNECTOR is not set 386# CONFIG_CONNECTOR is not set
336CONFIG_MTD=y 387CONFIG_MTD=y
337# CONFIG_MTD_DEBUG is not set 388# CONFIG_MTD_DEBUG is not set
389# CONFIG_MTD_TESTS is not set
338CONFIG_MTD_CONCAT=y 390CONFIG_MTD_CONCAT=y
339CONFIG_MTD_PARTITIONS=y 391CONFIG_MTD_PARTITIONS=y
340# CONFIG_MTD_TESTS is not set
341# CONFIG_MTD_REDBOOT_PARTS is not set 392# CONFIG_MTD_REDBOOT_PARTS is not set
342CONFIG_MTD_CMDLINE_PARTS=y 393CONFIG_MTD_CMDLINE_PARTS=y
343# CONFIG_MTD_AFS_PARTS is not set 394# CONFIG_MTD_AFS_PARTS is not set
@@ -433,6 +484,10 @@ CONFIG_MTD_NAND_BCM_UMI_HWCS=y
433CONFIG_BLK_DEV=y 484CONFIG_BLK_DEV=y
434# CONFIG_BLK_DEV_COW_COMMON is not set 485# CONFIG_BLK_DEV_COW_COMMON is not set
435# CONFIG_BLK_DEV_LOOP is not set 486# CONFIG_BLK_DEV_LOOP is not set
487
488#
489# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
490#
436# CONFIG_BLK_DEV_NBD is not set 491# CONFIG_BLK_DEV_NBD is not set
437# CONFIG_BLK_DEV_RAM is not set 492# CONFIG_BLK_DEV_RAM is not set
438# CONFIG_CDROM_PKTCDVD is not set 493# CONFIG_CDROM_PKTCDVD is not set
@@ -444,6 +499,7 @@ CONFIG_HAVE_IDE=y
444# 499#
445# SCSI device support 500# SCSI device support
446# 501#
502CONFIG_SCSI_MOD=y
447# CONFIG_RAID_ATTRS is not set 503# CONFIG_RAID_ATTRS is not set
448# CONFIG_SCSI is not set 504# CONFIG_SCSI is not set
449# CONFIG_SCSI_DMA is not set 505# CONFIG_SCSI_DMA is not set
@@ -452,6 +508,7 @@ CONFIG_HAVE_IDE=y
452# CONFIG_MD is not set 508# CONFIG_MD is not set
453# CONFIG_NETDEVICES is not set 509# CONFIG_NETDEVICES is not set
454# CONFIG_ISDN is not set 510# CONFIG_ISDN is not set
511# CONFIG_PHONE is not set
455 512
456# 513#
457# Input device support 514# Input device support
@@ -459,6 +516,7 @@ CONFIG_HAVE_IDE=y
459CONFIG_INPUT=y 516CONFIG_INPUT=y
460# CONFIG_INPUT_FF_MEMLESS is not set 517# CONFIG_INPUT_FF_MEMLESS is not set
461# CONFIG_INPUT_POLLDEV is not set 518# CONFIG_INPUT_POLLDEV is not set
519# CONFIG_INPUT_SPARSEKMAP is not set
462 520
463# 521#
464# Userland interfaces 522# Userland interfaces
@@ -508,6 +566,7 @@ CONFIG_SERIAL_AMBA_PL011=y
508CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 566CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
509CONFIG_SERIAL_CORE=y 567CONFIG_SERIAL_CORE=y
510CONFIG_SERIAL_CORE_CONSOLE=y 568CONFIG_SERIAL_CORE_CONSOLE=y
569# CONFIG_SERIAL_TIMBERDALE is not set
511CONFIG_UNIX98_PTYS=y 570CONFIG_UNIX98_PTYS=y
512# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 571# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
513CONFIG_LEGACY_PTYS=y 572CONFIG_LEGACY_PTYS=y
@@ -519,13 +578,17 @@ CONFIG_LEGACY_PTY_COUNT=64
519# CONFIG_TCG_TPM is not set 578# CONFIG_TCG_TPM is not set
520# CONFIG_I2C is not set 579# CONFIG_I2C is not set
521# CONFIG_SPI is not set 580# CONFIG_SPI is not set
581
582#
583# PPS support
584#
585# CONFIG_PPS is not set
522CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 586CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
523# CONFIG_GPIOLIB is not set 587# CONFIG_GPIOLIB is not set
524# CONFIG_W1 is not set 588# CONFIG_W1 is not set
525# CONFIG_POWER_SUPPLY is not set 589# CONFIG_POWER_SUPPLY is not set
526# CONFIG_HWMON is not set 590# CONFIG_HWMON is not set
527# CONFIG_THERMAL is not set 591# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 592# CONFIG_WATCHDOG is not set
530CONFIG_SSB_POSSIBLE=y 593CONFIG_SSB_POSSIBLE=y
531 594
@@ -541,6 +604,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 604# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 605# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 606# CONFIG_MFD_TMIO is not set
607# CONFIG_REGULATOR is not set
544# CONFIG_MEDIA_SUPPORT is not set 608# CONFIG_MEDIA_SUPPORT is not set
545 609
546# 610#
@@ -566,14 +630,17 @@ CONFIG_DUMMY_CONSOLE=y
566# CONFIG_USB_SUPPORT is not set 630# CONFIG_USB_SUPPORT is not set
567# CONFIG_MMC is not set 631# CONFIG_MMC is not set
568# CONFIG_MEMSTICK is not set 632# CONFIG_MEMSTICK is not set
569# CONFIG_ACCESSIBILITY is not set
570# CONFIG_NEW_LEDS is not set 633# CONFIG_NEW_LEDS is not set
634# CONFIG_ACCESSIBILITY is not set
571CONFIG_RTC_LIB=y 635CONFIG_RTC_LIB=y
572# CONFIG_RTC_CLASS is not set 636# CONFIG_RTC_CLASS is not set
573# CONFIG_DMADEVICES is not set 637# CONFIG_DMADEVICES is not set
574# CONFIG_AUXDISPLAY is not set 638# CONFIG_AUXDISPLAY is not set
575# CONFIG_REGULATOR is not set
576# CONFIG_UIO is not set 639# CONFIG_UIO is not set
640
641#
642# TI VLYNQ
643#
577# CONFIG_STAGING is not set 644# CONFIG_STAGING is not set
578 645
579# 646#
@@ -589,9 +656,12 @@ CONFIG_FS_POSIX_ACL=y
589# CONFIG_GFS2_FS is not set 656# CONFIG_GFS2_FS is not set
590# CONFIG_OCFS2_FS is not set 657# CONFIG_OCFS2_FS is not set
591# CONFIG_BTRFS_FS is not set 658# CONFIG_BTRFS_FS is not set
659# CONFIG_NILFS2_FS is not set
592# CONFIG_FILE_LOCKING is not set 660# CONFIG_FILE_LOCKING is not set
593# CONFIG_FSNOTIFY is not set 661# CONFIG_FSNOTIFY is not set
662# CONFIG_DNOTIFY is not set
594# CONFIG_INOTIFY is not set 663# CONFIG_INOTIFY is not set
664# CONFIG_INOTIFY_USER is not set
595# CONFIG_QUOTA is not set 665# CONFIG_QUOTA is not set
596# CONFIG_AUTOFS_FS is not set 666# CONFIG_AUTOFS_FS is not set
597# CONFIG_AUTOFS4_FS is not set 667# CONFIG_AUTOFS4_FS is not set
@@ -647,6 +717,7 @@ CONFIG_JFFS2_ZLIB=y
647# CONFIG_JFFS2_LZO is not set 717# CONFIG_JFFS2_LZO is not set
648CONFIG_JFFS2_RTIME=y 718CONFIG_JFFS2_RTIME=y
649# CONFIG_JFFS2_RUBIN is not set 719# CONFIG_JFFS2_RUBIN is not set
720# CONFIG_LOGFS is not set
650# CONFIG_CRAMFS is not set 721# CONFIG_CRAMFS is not set
651# CONFIG_SQUASHFS is not set 722# CONFIG_SQUASHFS is not set
652# CONFIG_VXFS_FS is not set 723# CONFIG_VXFS_FS is not set
@@ -657,7 +728,6 @@ CONFIG_JFFS2_RTIME=y
657# CONFIG_ROMFS_FS is not set 728# CONFIG_ROMFS_FS is not set
658# CONFIG_SYSV_FS is not set 729# CONFIG_SYSV_FS is not set
659# CONFIG_UFS_FS is not set 730# CONFIG_UFS_FS is not set
660# CONFIG_NILFS2_FS is not set
661# CONFIG_NETWORK_FILESYSTEMS is not set 731# CONFIG_NETWORK_FILESYSTEMS is not set
662 732
663# 733#
@@ -675,11 +745,12 @@ CONFIG_MSDOS_PARTITION=y
675CONFIG_ENABLE_MUST_CHECK=y 745CONFIG_ENABLE_MUST_CHECK=y
676CONFIG_FRAME_WARN=1024 746CONFIG_FRAME_WARN=1024
677CONFIG_MAGIC_SYSRQ=y 747CONFIG_MAGIC_SYSRQ=y
748# CONFIG_STRIP_ASM_SYMS is not set
678# CONFIG_UNUSED_SYMBOLS is not set 749# CONFIG_UNUSED_SYMBOLS is not set
679# CONFIG_DEBUG_FS is not set 750# CONFIG_DEBUG_FS is not set
680CONFIG_HEADERS_CHECK=y 751CONFIG_HEADERS_CHECK=y
681# CONFIG_DEBUG_KERNEL is not set 752# CONFIG_DEBUG_KERNEL is not set
682# CONFIG_DEBUG_BUGVERBOSE is not set 753CONFIG_DEBUG_BUGVERBOSE=y
683# CONFIG_DEBUG_MEMORY_INIT is not set 754# CONFIG_DEBUG_MEMORY_INIT is not set
684CONFIG_FRAME_POINTER=y 755CONFIG_FRAME_POINTER=y
685# CONFIG_RCU_CPU_STALL_DETECTOR is not set 756# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -693,6 +764,7 @@ CONFIG_TRACING_SUPPORT=y
693CONFIG_HAVE_ARCH_KGDB=y 764CONFIG_HAVE_ARCH_KGDB=y
694# CONFIG_ARM_UNWIND is not set 765# CONFIG_ARM_UNWIND is not set
695# CONFIG_DEBUG_USER is not set 766# CONFIG_DEBUG_USER is not set
767# CONFIG_OC_ETM is not set
696 768
697# 769#
698# Security options 770# Security options
@@ -700,7 +772,11 @@ CONFIG_HAVE_ARCH_KGDB=y
700# CONFIG_KEYS is not set 772# CONFIG_KEYS is not set
701# CONFIG_SECURITY is not set 773# CONFIG_SECURITY is not set
702# CONFIG_SECURITYFS is not set 774# CONFIG_SECURITYFS is not set
703# CONFIG_SECURITY_FILE_CAPABILITIES is not set 775# CONFIG_DEFAULT_SECURITY_SELINUX is not set
776# CONFIG_DEFAULT_SECURITY_SMACK is not set
777# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
778CONFIG_DEFAULT_SECURITY_DAC=y
779CONFIG_DEFAULT_SECURITY=""
704# CONFIG_CRYPTO is not set 780# CONFIG_CRYPTO is not set
705# CONFIG_BINARY_PRINTF is not set 781# CONFIG_BINARY_PRINTF is not set
706 782
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 216ad00948af..9405e32783de 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -1058,7 +1058,6 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
1058# CONFIG_ROMFS_FS is not set 1058# CONFIG_ROMFS_FS is not set
1059# CONFIG_SYSV_FS is not set 1059# CONFIG_SYSV_FS is not set
1060# CONFIG_UFS_FS is not set 1060# CONFIG_UFS_FS is not set
1061# CONFIG_NILFS2_FS is not set
1062CONFIG_NETWORK_FILESYSTEMS=y 1061CONFIG_NETWORK_FILESYSTEMS=y
1063# CONFIG_NFS_FS is not set 1062# CONFIG_NFS_FS is not set
1064# CONFIG_NFSD is not set 1063# CONFIG_NFSD is not set
diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig
index f5c6e11cf189..881faea03d79 100644
--- a/arch/arm/configs/omap_zoom2_defconfig
+++ b/arch/arm/configs/omap_zoom2_defconfig
@@ -661,7 +661,7 @@ CONFIG_DEVKMEM=y
661CONFIG_SERIAL_8250=y 661CONFIG_SERIAL_8250=y
662CONFIG_SERIAL_8250_CONSOLE=y 662CONFIG_SERIAL_8250_CONSOLE=y
663CONFIG_SERIAL_8250_NR_UARTS=32 663CONFIG_SERIAL_8250_NR_UARTS=32
664CONFIG_SERIAL_8250_RUNTIME_UARTS=4 664CONFIG_SERIAL_8250_RUNTIME_UARTS=1
665CONFIG_SERIAL_8250_EXTENDED=y 665CONFIG_SERIAL_8250_EXTENDED=y
666CONFIG_SERIAL_8250_MANY_PORTS=y 666CONFIG_SERIAL_8250_MANY_PORTS=y
667CONFIG_SERIAL_8250_SHARE_IRQ=y 667CONFIG_SERIAL_8250_SHARE_IRQ=y
diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig
index ea9a5012d332..5e55b550a408 100644
--- a/arch/arm/configs/omap_zoom3_defconfig
+++ b/arch/arm/configs/omap_zoom3_defconfig
@@ -680,7 +680,7 @@ CONFIG_DEVKMEM=y
680CONFIG_SERIAL_8250=y 680CONFIG_SERIAL_8250=y
681CONFIG_SERIAL_8250_CONSOLE=y 681CONFIG_SERIAL_8250_CONSOLE=y
682CONFIG_SERIAL_8250_NR_UARTS=32 682CONFIG_SERIAL_8250_NR_UARTS=32
683CONFIG_SERIAL_8250_RUNTIME_UARTS=4 683CONFIG_SERIAL_8250_RUNTIME_UARTS=1
684CONFIG_SERIAL_8250_EXTENDED=y 684CONFIG_SERIAL_8250_EXTENDED=y
685CONFIG_SERIAL_8250_MANY_PORTS=y 685CONFIG_SERIAL_8250_MANY_PORTS=y
686CONFIG_SERIAL_8250_SHARE_IRQ=y 686CONFIG_SERIAL_8250_SHARE_IRQ=y
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 45135ffadc57..473f9e13f08b 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -59,8 +59,6 @@ CONFIG_FAIR_GROUP_SCHED=y
59CONFIG_USER_SCHED=y 59CONFIG_USER_SCHED=y
60# CONFIG_CGROUP_SCHED is not set 60# CONFIG_CGROUP_SCHED is not set
61# CONFIG_CGROUPS is not set 61# CONFIG_CGROUPS is not set
62CONFIG_SYSFS_DEPRECATED=y
63CONFIG_SYSFS_DEPRECATED_V2=y
64# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
65# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
66CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
@@ -480,7 +478,6 @@ CONFIG_BT_HIDP=m
480# CONFIG_BT_HCIBFUSB is not set 478# CONFIG_BT_HCIBFUSB is not set
481# CONFIG_BT_HCIVHCI is not set 479# CONFIG_BT_HCIVHCI is not set
482# CONFIG_AF_RXRPC is not set 480# CONFIG_AF_RXRPC is not set
483# CONFIG_PHONET is not set
484CONFIG_WIRELESS=y 481CONFIG_WIRELESS=y
485CONFIG_CFG80211=y 482CONFIG_CFG80211=y
486# CONFIG_CFG80211_REG_DEBUG is not set 483# CONFIG_CFG80211_REG_DEBUG is not set
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index 00f46d9ce299..6e8f05c8a1c8 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -149,10 +149,10 @@
149 149
150#define USER(x...) \ 150#define USER(x...) \
1519999: x; \ 1519999: x; \
152 .section __ex_table,"a"; \ 152 .pushsection __ex_table,"a"; \
153 .align 3; \ 153 .align 3; \
154 .long 9999b,9001f; \ 154 .long 9999b,9001f; \
155 .previous 155 .popsection
156 156
157/* 157/*
158 * SMP data memory barrier 158 * SMP data memory barrier
@@ -193,10 +193,10 @@
193 .error "Unsupported inc macro argument" 193 .error "Unsupported inc macro argument"
194 .endif 194 .endif
195 195
196 .section __ex_table,"a" 196 .pushsection __ex_table,"a"
197 .align 3 197 .align 3
198 .long 9999b, \abort 198 .long 9999b, \abort
199 .previous 199 .popsection
200 .endm 200 .endm
201 201
202 .macro usracc, instr, reg, ptr, inc, cond, rept, abort 202 .macro usracc, instr, reg, ptr, inc, cond, rept, abort
@@ -234,10 +234,10 @@
234 .error "Unsupported inc macro argument" 234 .error "Unsupported inc macro argument"
235 .endif 235 .endif
236 236
237 .section __ex_table,"a" 237 .pushsection __ex_table,"a"
238 .align 3 238 .align 3
239 .long 9999b, \abort 239 .long 9999b, \abort
240 .previous 240 .popsection
241 .endr 241 .endr
242 .endm 242 .endm
243 243
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
index bfcc15929a7f..540a044153a5 100644
--- a/arch/arm/include/asm/futex.h
+++ b/arch/arm/include/asm/futex.h
@@ -21,14 +21,14 @@
21 "2: strt %0, [%2]\n" \ 21 "2: strt %0, [%2]\n" \
22 " mov %0, #0\n" \ 22 " mov %0, #0\n" \
23 "3:\n" \ 23 "3:\n" \
24 " .section __ex_table,\"a\"\n" \ 24 " .pushsection __ex_table,\"a\"\n" \
25 " .align 3\n" \ 25 " .align 3\n" \
26 " .long 1b, 4f, 2b, 4f\n" \ 26 " .long 1b, 4f, 2b, 4f\n" \
27 " .previous\n" \ 27 " .popsection\n" \
28 " .section .fixup,\"ax\"\n" \ 28 " .pushsection .fixup,\"ax\"\n" \
29 "4: mov %0, %4\n" \ 29 "4: mov %0, %4\n" \
30 " b 3b\n" \ 30 " b 3b\n" \
31 " .previous" \ 31 " .popsection" \
32 : "=&r" (ret), "=&r" (oldval) \ 32 : "=&r" (ret), "=&r" (oldval) \
33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ 33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \
34 : "cc", "memory") 34 : "cc", "memory")
@@ -102,14 +102,14 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
102 " it eq @ explicit IT needed for the 2b label\n" 102 " it eq @ explicit IT needed for the 2b label\n"
103 "2: streqt %2, [%3]\n" 103 "2: streqt %2, [%3]\n"
104 "3:\n" 104 "3:\n"
105 " .section __ex_table,\"a\"\n" 105 " .pushsection __ex_table,\"a\"\n"
106 " .align 3\n" 106 " .align 3\n"
107 " .long 1b, 4f, 2b, 4f\n" 107 " .long 1b, 4f, 2b, 4f\n"
108 " .previous\n" 108 " .popsection\n"
109 " .section .fixup,\"ax\"\n" 109 " .pushsection .fixup,\"ax\"\n"
110 "4: mov %0, %4\n" 110 "4: mov %0, %4\n"
111 " b 3b\n" 111 " b 3b\n"
112 " .previous" 112 " .popsection"
113 : "=&r" (val) 113 : "=&r" (val)
114 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) 114 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
115 : "cc", "memory"); 115 : "cc", "memory");
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index 1d6bd40a4322..33e4a48fe103 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -229,16 +229,16 @@ do { \
229 __asm__ __volatile__( \ 229 __asm__ __volatile__( \
230 "1: ldrbt %1,[%2]\n" \ 230 "1: ldrbt %1,[%2]\n" \
231 "2:\n" \ 231 "2:\n" \
232 " .section .fixup,\"ax\"\n" \ 232 " .pushsection .fixup,\"ax\"\n" \
233 " .align 2\n" \ 233 " .align 2\n" \
234 "3: mov %0, %3\n" \ 234 "3: mov %0, %3\n" \
235 " mov %1, #0\n" \ 235 " mov %1, #0\n" \
236 " b 2b\n" \ 236 " b 2b\n" \
237 " .previous\n" \ 237 " .popsection\n" \
238 " .section __ex_table,\"a\"\n" \ 238 " .pushsection __ex_table,\"a\"\n" \
239 " .align 3\n" \ 239 " .align 3\n" \
240 " .long 1b, 3b\n" \ 240 " .long 1b, 3b\n" \
241 " .previous" \ 241 " .popsection" \
242 : "+r" (err), "=&r" (x) \ 242 : "+r" (err), "=&r" (x) \
243 : "r" (addr), "i" (-EFAULT) \ 243 : "r" (addr), "i" (-EFAULT) \
244 : "cc") 244 : "cc")
@@ -265,16 +265,16 @@ do { \
265 __asm__ __volatile__( \ 265 __asm__ __volatile__( \
266 "1: ldrt %1,[%2]\n" \ 266 "1: ldrt %1,[%2]\n" \
267 "2:\n" \ 267 "2:\n" \
268 " .section .fixup,\"ax\"\n" \ 268 " .pushsection .fixup,\"ax\"\n" \
269 " .align 2\n" \ 269 " .align 2\n" \
270 "3: mov %0, %3\n" \ 270 "3: mov %0, %3\n" \
271 " mov %1, #0\n" \ 271 " mov %1, #0\n" \
272 " b 2b\n" \ 272 " b 2b\n" \
273 " .previous\n" \ 273 " .popsection\n" \
274 " .section __ex_table,\"a\"\n" \ 274 " .pushsection __ex_table,\"a\"\n" \
275 " .align 3\n" \ 275 " .align 3\n" \
276 " .long 1b, 3b\n" \ 276 " .long 1b, 3b\n" \
277 " .previous" \ 277 " .popsection" \
278 : "+r" (err), "=&r" (x) \ 278 : "+r" (err), "=&r" (x) \
279 : "r" (addr), "i" (-EFAULT) \ 279 : "r" (addr), "i" (-EFAULT) \
280 : "cc") 280 : "cc")
@@ -310,15 +310,15 @@ do { \
310 __asm__ __volatile__( \ 310 __asm__ __volatile__( \
311 "1: strbt %1,[%2]\n" \ 311 "1: strbt %1,[%2]\n" \
312 "2:\n" \ 312 "2:\n" \
313 " .section .fixup,\"ax\"\n" \ 313 " .pushsection .fixup,\"ax\"\n" \
314 " .align 2\n" \ 314 " .align 2\n" \
315 "3: mov %0, %3\n" \ 315 "3: mov %0, %3\n" \
316 " b 2b\n" \ 316 " b 2b\n" \
317 " .previous\n" \ 317 " .popsection\n" \
318 " .section __ex_table,\"a\"\n" \ 318 " .pushsection __ex_table,\"a\"\n" \
319 " .align 3\n" \ 319 " .align 3\n" \
320 " .long 1b, 3b\n" \ 320 " .long 1b, 3b\n" \
321 " .previous" \ 321 " .popsection" \
322 : "+r" (err) \ 322 : "+r" (err) \
323 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 323 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \
324 : "cc") 324 : "cc")
@@ -343,15 +343,15 @@ do { \
343 __asm__ __volatile__( \ 343 __asm__ __volatile__( \
344 "1: strt %1,[%2]\n" \ 344 "1: strt %1,[%2]\n" \
345 "2:\n" \ 345 "2:\n" \
346 " .section .fixup,\"ax\"\n" \ 346 " .pushsection .fixup,\"ax\"\n" \
347 " .align 2\n" \ 347 " .align 2\n" \
348 "3: mov %0, %3\n" \ 348 "3: mov %0, %3\n" \
349 " b 2b\n" \ 349 " b 2b\n" \
350 " .previous\n" \ 350 " .popsection\n" \
351 " .section __ex_table,\"a\"\n" \ 351 " .pushsection __ex_table,\"a\"\n" \
352 " .align 3\n" \ 352 " .align 3\n" \
353 " .long 1b, 3b\n" \ 353 " .long 1b, 3b\n" \
354 " .previous" \ 354 " .popsection" \
355 : "+r" (err) \ 355 : "+r" (err) \
356 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 356 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \
357 : "cc") 357 : "cc")
@@ -371,16 +371,16 @@ do { \
371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \ 371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \
372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \ 372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \
373 "3:\n" \ 373 "3:\n" \
374 " .section .fixup,\"ax\"\n" \ 374 " .pushsection .fixup,\"ax\"\n" \
375 " .align 2\n" \ 375 " .align 2\n" \
376 "4: mov %0, %3\n" \ 376 "4: mov %0, %3\n" \
377 " b 3b\n" \ 377 " b 3b\n" \
378 " .previous\n" \ 378 " .popsection\n" \
379 " .section __ex_table,\"a\"\n" \ 379 " .pushsection __ex_table,\"a\"\n" \
380 " .align 3\n" \ 380 " .align 3\n" \
381 " .long 1b, 4b\n" \ 381 " .long 1b, 4b\n" \
382 " .long 2b, 4b\n" \ 382 " .long 2b, 4b\n" \
383 " .previous" \ 383 " .popsection" \
384 : "+r" (err), "+r" (__pu_addr) \ 384 : "+r" (err), "+r" (__pu_addr) \
385 : "r" (x), "i" (-EFAULT) \ 385 : "r" (x), "i" (-EFAULT) \
386 : "cc") 386 : "cc")
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 6c5cf369183b..e6a0fb0f392e 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -523,16 +523,16 @@ ENDPROC(__und_usr)
523/* 523/*
524 * The out of line fixup for the ldrt above. 524 * The out of line fixup for the ldrt above.
525 */ 525 */
526 .section .fixup, "ax" 526 .pushsection .fixup, "ax"
5274: mov pc, r9 5274: mov pc, r9
528 .previous 528 .popsection
529 .section __ex_table,"a" 529 .pushsection __ex_table,"a"
530 .long 1b, 4b 530 .long 1b, 4b
531#if __LINUX_ARM_ARCH__ >= 7 531#if __LINUX_ARM_ARCH__ >= 7
532 .long 2b, 4b 532 .long 2b, 4b
533 .long 3b, 4b 533 .long 3b, 4b
534#endif 534#endif
535 .previous 535 .popsection
536 536
537/* 537/*
538 * Check whether the instruction is a co-processor instruction. 538 * Check whether the instruction is a co-processor instruction.
@@ -679,7 +679,7 @@ do_fpe:
679 .data 679 .data
680ENTRY(fp_enter) 680ENTRY(fp_enter)
681 .word no_fp 681 .word no_fp
682 .previous 682 .text
683 683
684ENTRY(no_fp) 684ENTRY(no_fp)
685 mov pc, lr 685 mov pc, lr
diff --git a/arch/arm/kernel/ftrace.c b/arch/arm/kernel/ftrace.c
index c63842766229..0298286ad4ad 100644
--- a/arch/arm/kernel/ftrace.c
+++ b/arch/arm/kernel/ftrace.c
@@ -62,15 +62,15 @@ int ftrace_modify_code(unsigned long pc, unsigned char *old_code,
62 " movne %0, #2 \n" 62 " movne %0, #2 \n"
63 "3:\n" 63 "3:\n"
64 64
65 ".section .fixup, \"ax\"\n" 65 ".pushsection .fixup, \"ax\"\n"
66 "4: mov %0, #1 \n" 66 "4: mov %0, #1 \n"
67 " b 3b \n" 67 " b 3b \n"
68 ".previous\n" 68 ".popsection\n"
69 69
70 ".section __ex_table, \"a\"\n" 70 ".pushsection __ex_table, \"a\"\n"
71 " .long 1b, 4b \n" 71 " .long 1b, 4b \n"
72 " .long 2b, 4b \n" 72 " .long 2b, 4b \n"
73 ".previous\n" 73 ".popsection\n"
74 74
75 : "=r"(err), "=r"(replaced) 75 : "=r"(err), "=r"(replaced)
76 : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced) 76 : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 0e12e0acbf26..acf5e6fdb6dc 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -355,7 +355,7 @@ EXPORT_SYMBOL(dump_fpu);
355 * the thread function, and r3 points to the exit function. 355 * the thread function, and r3 points to the exit function.
356 */ 356 */
357extern void kernel_thread_helper(void); 357extern void kernel_thread_helper(void);
358asm( ".section .text\n" 358asm( ".pushsection .text\n"
359" .align\n" 359" .align\n"
360" .type kernel_thread_helper, #function\n" 360" .type kernel_thread_helper, #function\n"
361"kernel_thread_helper:\n" 361"kernel_thread_helper:\n"
@@ -363,11 +363,11 @@ asm( ".section .text\n"
363" mov lr, r3\n" 363" mov lr, r3\n"
364" mov pc, r2\n" 364" mov pc, r2\n"
365" .size kernel_thread_helper, . - kernel_thread_helper\n" 365" .size kernel_thread_helper, . - kernel_thread_helper\n"
366" .previous"); 366" .popsection");
367 367
368#ifdef CONFIG_ARM_UNWIND 368#ifdef CONFIG_ARM_UNWIND
369extern void kernel_thread_exit(long code); 369extern void kernel_thread_exit(long code);
370asm( ".section .text\n" 370asm( ".pushsection .text\n"
371" .align\n" 371" .align\n"
372" .type kernel_thread_exit, #function\n" 372" .type kernel_thread_exit, #function\n"
373"kernel_thread_exit:\n" 373"kernel_thread_exit:\n"
@@ -377,7 +377,7 @@ asm( ".section .text\n"
377" nop\n" 377" nop\n"
378" .fnend\n" 378" .fnend\n"
379" .size kernel_thread_exit, . - kernel_thread_exit\n" 379" .size kernel_thread_exit, . - kernel_thread_exit\n"
380" .previous"); 380" .popsection");
381#else 381#else
382#define kernel_thread_exit do_exit 382#define kernel_thread_exit do_exit
383#endif 383#endif
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S
index aaf7220d9e30..a673297b0cf1 100644
--- a/arch/arm/lib/backtrace.S
+++ b/arch/arm/lib/backtrace.S
@@ -110,13 +110,13 @@ no_frame: ldmfd sp!, {r4 - r8, pc}
110ENDPROC(__backtrace) 110ENDPROC(__backtrace)
111ENDPROC(c_backtrace) 111ENDPROC(c_backtrace)
112 112
113 .section __ex_table,"a" 113 .pushsection __ex_table,"a"
114 .align 3 114 .align 3
115 .long 1001b, 1006b 115 .long 1001b, 1006b
116 .long 1002b, 1006b 116 .long 1002b, 1006b
117 .long 1003b, 1006b 117 .long 1003b, 1006b
118 .long 1004b, 1006b 118 .long 1004b, 1006b
119 .previous 119 .popsection
120 120
121#define instr r4 121#define instr r4
122#define reg r5 122#define reg r5
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
index 1279abd8b886..5e3f99620c04 100644
--- a/arch/arm/lib/clear_user.S
+++ b/arch/arm/lib/clear_user.S
@@ -46,8 +46,8 @@ USER( strnebt r2, [r0])
46 ldmfd sp!, {r1, pc} 46 ldmfd sp!, {r1, pc}
47ENDPROC(__clear_user) 47ENDPROC(__clear_user)
48 48
49 .section .fixup,"ax" 49 .pushsection .fixup,"ax"
50 .align 0 50 .align 0
519001: ldmfd sp!, {r0, pc} 519001: ldmfd sp!, {r0, pc}
52 .previous 52 .popsection
53 53
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
index e4fe124acedc..66a477a3e3cc 100644
--- a/arch/arm/lib/copy_from_user.S
+++ b/arch/arm/lib/copy_from_user.S
@@ -90,7 +90,7 @@ ENTRY(__copy_from_user)
90 90
91ENDPROC(__copy_from_user) 91ENDPROC(__copy_from_user)
92 92
93 .section .fixup,"ax" 93 .pushsection .fixup,"ax"
94 .align 0 94 .align 0
95 copy_abort_preamble 95 copy_abort_preamble
96 ldmfd sp!, {r1, r2} 96 ldmfd sp!, {r1, r2}
@@ -100,5 +100,5 @@ ENDPROC(__copy_from_user)
100 bl __memzero 100 bl __memzero
101 ldr r0, [sp], #4 101 ldr r0, [sp], #4
102 copy_abort_end 102 copy_abort_end
103 .previous 103 .popsection
104 104
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
index 1a71e1584442..027b69bdbad1 100644
--- a/arch/arm/lib/copy_to_user.S
+++ b/arch/arm/lib/copy_to_user.S
@@ -94,12 +94,12 @@ WEAK(__copy_to_user)
94 94
95ENDPROC(__copy_to_user) 95ENDPROC(__copy_to_user)
96 96
97 .section .fixup,"ax" 97 .pushsection .fixup,"ax"
98 .align 0 98 .align 0
99 copy_abort_preamble 99 copy_abort_preamble
100 ldmfd sp!, {r1, r2, r3} 100 ldmfd sp!, {r1, r2, r3}
101 sub r0, r0, r1 101 sub r0, r0, r1
102 rsb r0, r0, r2 102 rsb r0, r0, r2
103 copy_abort_end 103 copy_abort_end
104 .previous 104 .popsection
105 105
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
index fd0e9dcd9fdc..59ff6fdc1e63 100644
--- a/arch/arm/lib/csumpartialcopyuser.S
+++ b/arch/arm/lib/csumpartialcopyuser.S
@@ -68,7 +68,7 @@
68 * so properly, we would have to add in whatever registers were loaded before 68 * so properly, we would have to add in whatever registers were loaded before
69 * the fault, which, with the current asm above is not predictable. 69 * the fault, which, with the current asm above is not predictable.
70 */ 70 */
71 .section .fixup,"ax" 71 .pushsection .fixup,"ax"
72 .align 4 72 .align 4
739001: mov r4, #-EFAULT 739001: mov r4, #-EFAULT
74 ldr r5, [fp, #4] @ *err_ptr 74 ldr r5, [fp, #4] @ *err_ptr
@@ -80,4 +80,4 @@
80 strneb r0, [r1], #1 80 strneb r0, [r1], #1
81 bne 9002b 81 bne 9002b
82 load_regs 82 load_regs
83 .previous 83 .popsection
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S
index a1814d927122..b1631a7dbe75 100644
--- a/arch/arm/lib/getuser.S
+++ b/arch/arm/lib/getuser.S
@@ -64,9 +64,9 @@ __get_user_bad:
64 mov pc, lr 64 mov pc, lr
65ENDPROC(__get_user_bad) 65ENDPROC(__get_user_bad)
66 66
67.section __ex_table, "a" 67.pushsection __ex_table, "a"
68 .long 1b, __get_user_bad 68 .long 1b, __get_user_bad
69 .long 2b, __get_user_bad 69 .long 2b, __get_user_bad
70 .long 3b, __get_user_bad 70 .long 3b, __get_user_bad
71 .long 4b, __get_user_bad 71 .long 4b, __get_user_bad
72.previous 72.popsection
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S
index 02fedbf07c0d..5a01a23c6c06 100644
--- a/arch/arm/lib/putuser.S
+++ b/arch/arm/lib/putuser.S
@@ -81,11 +81,11 @@ __put_user_bad:
81 mov pc, lr 81 mov pc, lr
82ENDPROC(__put_user_bad) 82ENDPROC(__put_user_bad)
83 83
84.section __ex_table, "a" 84.pushsection __ex_table, "a"
85 .long 1b, __put_user_bad 85 .long 1b, __put_user_bad
86 .long 2b, __put_user_bad 86 .long 2b, __put_user_bad
87 .long 3b, __put_user_bad 87 .long 3b, __put_user_bad
88 .long 4b, __put_user_bad 88 .long 4b, __put_user_bad
89 .long 5b, __put_user_bad 89 .long 5b, __put_user_bad
90 .long 6b, __put_user_bad 90 .long 6b, __put_user_bad
91.previous 91.popsection
diff --git a/arch/arm/lib/strncpy_from_user.S b/arch/arm/lib/strncpy_from_user.S
index 1c9814f346c6..f202d7bd1647 100644
--- a/arch/arm/lib/strncpy_from_user.S
+++ b/arch/arm/lib/strncpy_from_user.S
@@ -33,11 +33,11 @@ ENTRY(__strncpy_from_user)
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strncpy_from_user) 34ENDPROC(__strncpy_from_user)
35 35
36 .section .fixup,"ax" 36 .pushsection .fixup,"ax"
37 .align 0 37 .align 0
389001: mov r3, #0 389001: mov r3, #0
39 strb r3, [r0, #0] @ null terminate 39 strb r3, [r0, #0] @ null terminate
40 mov r0, #-EFAULT 40 mov r0, #-EFAULT
41 mov pc, lr 41 mov pc, lr
42 .previous 42 .popsection
43 43
diff --git a/arch/arm/lib/strnlen_user.S b/arch/arm/lib/strnlen_user.S
index 7855b2906659..0ecbb459c4f1 100644
--- a/arch/arm/lib/strnlen_user.S
+++ b/arch/arm/lib/strnlen_user.S
@@ -33,8 +33,8 @@ ENTRY(__strnlen_user)
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strnlen_user) 34ENDPROC(__strnlen_user)
35 35
36 .section .fixup,"ax" 36 .pushsection .fixup,"ax"
37 .align 0 37 .align 0
389001: mov r0, #0 389001: mov r0, #0
39 mov pc, lr 39 mov pc, lr
40 .previous 40 .popsection
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
index ffdd27498cee..fee9f6f88adb 100644
--- a/arch/arm/lib/uaccess.S
+++ b/arch/arm/lib/uaccess.S
@@ -279,10 +279,10 @@ USER( strgtbt r3, [r0], #1) @ May fault
279 b .Lc2u_finished 279 b .Lc2u_finished
280ENDPROC(__copy_to_user) 280ENDPROC(__copy_to_user)
281 281
282 .section .fixup,"ax" 282 .pushsection .fixup,"ax"
283 .align 0 283 .align 0
2849001: ldmfd sp!, {r0, r4 - r7, pc} 2849001: ldmfd sp!, {r0, r4 - r7, pc}
285 .previous 285 .popsection
286 286
287/* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n); 287/* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n);
288 * Purpose : copy a block from user memory to kernel memory 288 * Purpose : copy a block from user memory to kernel memory
@@ -545,7 +545,7 @@ USER( ldrgtbt r3, [r1], #1) @ May fault
545 b .Lcfu_finished 545 b .Lcfu_finished
546ENDPROC(__copy_from_user) 546ENDPROC(__copy_from_user)
547 547
548 .section .fixup,"ax" 548 .pushsection .fixup,"ax"
549 .align 0 549 .align 0
550 /* 550 /*
551 * We took an exception. r0 contains a pointer to 551 * We took an exception. r0 contains a pointer to
@@ -559,5 +559,5 @@ ENDPROC(__copy_from_user)
559 blne __memzero 559 blne __memzero
560 mov r0, r4 560 mov r0, r4
561 ldmfd sp!, {r4 - r7, pc} 561 ldmfd sp!, {r4 - r7, pc}
562 .previous 562 .popsection
563 563
diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c
index 9ad118563f7d..20cfbcc6c60c 100644
--- a/arch/arm/mach-omap1/timer32k.c
+++ b/arch/arm/mach-omap1/timer32k.c
@@ -68,12 +68,6 @@ struct sys_timer omap_timer;
68 * --------------------------------------------------------------------------- 68 * ---------------------------------------------------------------------------
69 */ 69 */
70 70
71#if defined(CONFIG_ARCH_OMAP16XX)
72#define TIMER_32K_SYNCHRONIZED 0xfffbc410
73#else
74#error OMAP 32KHz timer does not currently work on 15XX!
75#endif
76
77/* 16xx specific defines */ 71/* 16xx specific defines */
78#define OMAP1_32K_TIMER_BASE 0xfffb9000 72#define OMAP1_32K_TIMER_BASE 0xfffb9000
79#define OMAP1_32K_TIMER_CR 0x08 73#define OMAP1_32K_TIMER_CR 0x08
@@ -150,15 +144,6 @@ static struct clock_event_device clockevent_32k_timer = {
150 .set_mode = omap_32k_timer_set_mode, 144 .set_mode = omap_32k_timer_set_mode,
151}; 145};
152 146
153/*
154 * The 32KHz synchronized timer is an additional timer on 16xx.
155 * It is always running.
156 */
157static inline unsigned long omap_32k_sync_timer_read(void)
158{
159 return omap_readl(TIMER_32K_SYNCHRONIZED);
160}
161
162static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id) 147static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id)
163{ 148{
164 struct clock_event_device *evt = &clockevent_32k_timer; 149 struct clock_event_device *evt = &clockevent_32k_timer;
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index a8a3d1e23e26..2455dcc744a0 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -59,8 +59,10 @@ config MACH_OMAP3_BEAGLE
59 select OMAP_PACKAGE_CBB 59 select OMAP_PACKAGE_CBB
60 60
61config MACH_DEVKIT8000 61config MACH_DEVKIT8000
62 bool "DEVKIT8000 board" 62 bool "DEVKIT8000 board"
63 depends on ARCH_OMAP3 63 depends on ARCH_OMAP3
64 select OMAP_PACKAGE_CUS
65 select OMAP_MUX
64 66
65config MACH_OMAP_LDP 67config MACH_OMAP_LDP
66 bool "OMAP3 LDP board" 68 bool "OMAP3 LDP board"
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index a0a2a113465c..504d2bd222fe 100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -96,6 +96,7 @@ static struct omap_board_mux board_mux[] __initdata = {
96static void __init omap_sdp_init(void) 96static void __init omap_sdp_init(void)
97{ 97{
98 omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); 98 omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);
99 omap_serial_init();
99 zoom_peripherals_init(); 100 zoom_peripherals_init();
100 board_smc91x_init(); 101 board_smc91x_init();
101 enable_board_wakeup_source(); 102 enable_board_wakeup_source();
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 6ae880585d54..c1c4389fbd8f 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -294,9 +294,9 @@ static struct omap_board_mux board_mux[] __initdata = {
294 294
295static void __init am3517_evm_init(void) 295static void __init am3517_evm_init(void)
296{ 296{
297 am3517_evm_i2c_init();
298
299 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 297 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
298
299 am3517_evm_i2c_init();
300 platform_add_devices(am3517_evm_devices, 300 platform_add_devices(am3517_evm_devices,
301 ARRAY_SIZE(am3517_evm_devices)); 301 ARRAY_SIZE(am3517_evm_devices));
302 302
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 5bfc13b3176c..47e3af2166d4 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -50,7 +50,6 @@
50#include <linux/input/matrix_keypad.h> 50#include <linux/input/matrix_keypad.h>
51#include <linux/spi/spi.h> 51#include <linux/spi/spi.h>
52#include <linux/spi/ads7846.h> 52#include <linux/spi/ads7846.h>
53#include <linux/usb/otg.h>
54#include <linux/dm9000.h> 53#include <linux/dm9000.h>
55#include <linux/interrupt.h> 54#include <linux/interrupt.h>
56 55
@@ -269,20 +268,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
269 devkit8000_vmmc1_supply.dev = mmc[0].dev; 268 devkit8000_vmmc1_supply.dev = mmc[0].dev;
270 devkit8000_vsim_supply.dev = mmc[0].dev; 269 devkit8000_vsim_supply.dev = mmc[0].dev;
271 270
272 /* REVISIT: need ehci-omap hooks for external VBUS
273 * power switch and overcurrent detect
274 */
275
276 gpio_request(gpio + 1, "EHCI_nOC");
277 gpio_direction_input(gpio + 1);
278
279 /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
280 gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
281 gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
282
283 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
284 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
285
286 return 0; 271 return 0;
287} 272}
288 273
@@ -303,7 +288,7 @@ static struct regulator_consumer_supply devkit8000_vpll2_supplies[] = {
303 .dev = &devkit8000_lcd_device.dev, 288 .dev = &devkit8000_lcd_device.dev,
304 }, 289 },
305 { 290 {
306 .supply = "vdss_dsi", 291 .supply = "vdds_dsi",
307 .dev = &devkit8000_dss_device.dev, 292 .dev = &devkit8000_dss_device.dev,
308 } 293 }
309}; 294};
@@ -639,17 +624,21 @@ static struct omap_musb_board_data musb_board_data = {
639static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 624static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
640 625
641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 626 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 627 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
643 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 628 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
644 629
645 .phy_reset = true, 630 .phy_reset = true,
646 .reset_gpio_port[0] = -EINVAL, 631 .reset_gpio_port[0] = -EINVAL,
647 .reset_gpio_port[1] = 147, 632 .reset_gpio_port[1] = -EINVAL,
648 .reset_gpio_port[2] = -EINVAL 633 .reset_gpio_port[2] = -EINVAL
649}; 634};
650 635
651static void __init devkit8000_init(void) 636static void __init devkit8000_init(void)
652{ 637{
638 omap_serial_init();
639
640 omap_dm9000_init();
641
653 devkit8000_i2c_init(); 642 devkit8000_i2c_init();
654 platform_add_devices(devkit8000_devices, 643 platform_add_devices(devkit8000_devices,
655 ARRAY_SIZE(devkit8000_devices)); 644 ARRAY_SIZE(devkit8000_devices));
@@ -659,25 +648,15 @@ static void __init devkit8000_init(void)
659 spi_register_board_info(devkit8000_spi_board_info, 648 spi_register_board_info(devkit8000_spi_board_info,
660 ARRAY_SIZE(devkit8000_spi_board_info)); 649 ARRAY_SIZE(devkit8000_spi_board_info));
661 650
662 omap_serial_init();
663
664 omap_dm9000_init();
665
666 devkit8000_ads7846_init(); 651 devkit8000_ads7846_init();
667 652
668 omap_mux_init_gpio(170, OMAP_PIN_INPUT);
669
670 gpio_request(170, "DVI_nPD");
671 /* REVISIT leave DVI powered down until it's needed ... */
672 gpio_direction_output(170, true);
673
674 usb_musb_init(&musb_board_data); 653 usb_musb_init(&musb_board_data);
675 usb_ehci_init(&ehci_pdata); 654 usb_ehci_init(&ehci_pdata);
676 devkit8000_flash_init(); 655 devkit8000_flash_init();
677 656
678 /* Ensure SDRC pins are mux'd for self-refresh */ 657 /* Ensure SDRC pins are mux'd for self-refresh */
679 omap_mux_init_signal("sdr_cke0", OMAP_PIN_OUTPUT); 658 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
680 omap_mux_init_signal("sdr_cke1", OMAP_PIN_OUTPUT); 659 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
681} 660}
682 661
683static void __init devkit8000_map_io(void) 662static void __init devkit8000_map_io(void)
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 3c7789d45051..d55c57b761a9 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data = {
458}; 458};
459 459
460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
461 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 461 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
462 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 462 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
464 464
465 .phy_reset = true, 465 .phy_reset = true,
466 .reset_gpio_port[0] = -EINVAL, 466 .reset_gpio_port[0] = IGEP2_GPIO_USBH_NRESET,
467 .reset_gpio_port[1] = IGEP2_GPIO_USBH_NRESET, 467 .reset_gpio_port[1] = -EINVAL,
468 .reset_gpio_port[2] = -EINVAL, 468 .reset_gpio_port[2] = -EINVAL,
469}; 469};
470 470
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index da9bcb898991..3ccc34ebdcc7 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -216,7 +216,7 @@ static void __init n8x0_onenand_init(void) {}
216 */ 216 */
217#define N8X0_SLOT_SWITCH_GPIO 96 217#define N8X0_SLOT_SWITCH_GPIO 96
218#define N810_EMMC_VSD_GPIO 23 218#define N810_EMMC_VSD_GPIO 23
219#define NN810_EMMC_VIO_GPIO 9 219#define N810_EMMC_VIO_GPIO 9
220 220
221static int n8x0_mmc_switch_slot(struct device *dev, int slot) 221static int n8x0_mmc_switch_slot(struct device *dev, int slot)
222{ 222{
@@ -304,10 +304,10 @@ static void n810_set_power_emmc(struct device *dev,
304 if (power_on) { 304 if (power_on) {
305 gpio_set_value(N810_EMMC_VSD_GPIO, 1); 305 gpio_set_value(N810_EMMC_VSD_GPIO, 1);
306 msleep(1); 306 msleep(1);
307 gpio_set_value(NN810_EMMC_VIO_GPIO, 1); 307 gpio_set_value(N810_EMMC_VIO_GPIO, 1);
308 msleep(1); 308 msleep(1);
309 } else { 309 } else {
310 gpio_set_value(NN810_EMMC_VIO_GPIO, 0); 310 gpio_set_value(N810_EMMC_VIO_GPIO, 0);
311 msleep(50); 311 msleep(50);
312 gpio_set_value(N810_EMMC_VSD_GPIO, 0); 312 gpio_set_value(N810_EMMC_VSD_GPIO, 0);
313 msleep(50); 313 msleep(50);
@@ -468,7 +468,7 @@ static void n8x0_mmc_cleanup(struct device *dev)
468 468
469 if (machine_is_nokia_n810()) { 469 if (machine_is_nokia_n810()) {
470 gpio_free(N810_EMMC_VSD_GPIO); 470 gpio_free(N810_EMMC_VSD_GPIO);
471 gpio_free(NN810_EMMC_VIO_GPIO); 471 gpio_free(N810_EMMC_VIO_GPIO);
472 } 472 }
473} 473}
474 474
@@ -529,7 +529,7 @@ void __init n8x0_mmc_init(void)
529 529
530 err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch"); 530 err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch");
531 if (err) 531 if (err)
532 return err; 532 return;
533 533
534 gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0); 534 gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0);
535 535
@@ -537,17 +537,17 @@ void __init n8x0_mmc_init(void)
537 err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf"); 537 err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf");
538 if (err) { 538 if (err) {
539 gpio_free(N8X0_SLOT_SWITCH_GPIO); 539 gpio_free(N8X0_SLOT_SWITCH_GPIO);
540 return err; 540 return;
541 } 541 }
542 gpio_direction_output(N810_EMMC_VSD_GPIO, 0); 542 gpio_direction_output(N810_EMMC_VSD_GPIO, 0);
543 543
544 err = gpio_request(NN810_EMMC_VIO_GPIO, "MMC slot 2 Vdd"); 544 err = gpio_request(N810_EMMC_VIO_GPIO, "MMC slot 2 Vdd");
545 if (err) { 545 if (err) {
546 gpio_free(N8X0_SLOT_SWITCH_GPIO); 546 gpio_free(N8X0_SLOT_SWITCH_GPIO);
547 gpio_free(N810_EMMC_VSD_GPIO); 547 gpio_free(N810_EMMC_VSD_GPIO);
548 return err; 548 return;
549 } 549 }
550 gpio_direction_output(NN810_EMMC_VIO_GPIO, 0); 550 gpio_direction_output(N810_EMMC_VIO_GPIO, 0);
551 } 551 }
552 552
553 mmc_data[0] = &mmc1_data; 553 mmc_data[0] = &mmc1_data;
diff --git a/arch/arm/mach-omap2/board-sdp-flash.c b/arch/arm/mach-omap2/board-sdp-flash.c
index b1b88deec7f2..2d026328e385 100644
--- a/arch/arm/mach-omap2/board-sdp-flash.c
+++ b/arch/arm/mach-omap2/board-sdp-flash.c
@@ -253,20 +253,20 @@ void __init sdp_flash_init(struct flash_partitions sdp_partition_info[])
253 } 253 }
254 254
255 if (norcs > GPMC_CS_NUM) 255 if (norcs > GPMC_CS_NUM)
256 printk(KERN_INFO "OneNAND: Unable to find configuration " 256 printk(KERN_INFO "NOR: Unable to find configuration "
257 " in GPMC\n "); 257 "in GPMC\n");
258 else 258 else
259 board_nor_init(sdp_partition_info[0], norcs); 259 board_nor_init(sdp_partition_info[0], norcs);
260 260
261 if (onenandcs > GPMC_CS_NUM) 261 if (onenandcs > GPMC_CS_NUM)
262 printk(KERN_INFO "OneNAND: Unable to find configuration " 262 printk(KERN_INFO "OneNAND: Unable to find configuration "
263 " in GPMC\n "); 263 "in GPMC\n");
264 else 264 else
265 board_onenand_init(sdp_partition_info[1], onenandcs); 265 board_onenand_init(sdp_partition_info[1], onenandcs);
266 266
267 if (nandcs > GPMC_CS_NUM) 267 if (nandcs > GPMC_CS_NUM)
268 printk(KERN_INFO "NAND: Unable to find configuration " 268 printk(KERN_INFO "NAND: Unable to find configuration "
269 " in GPMC\n "); 269 "in GPMC\n");
270 else 270 else
271 board_nand_init(sdp_partition_info[2], nandcs); 271 board_nand_init(sdp_partition_info[2], nandcs);
272} 272}
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
index bb4018b60642..e15d2e87cfc1 100644
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
96 96
97static struct platform_device zoom_debugboard_serial_device = { 97static struct platform_device zoom_debugboard_serial_device = {
98 .name = "serial8250", 98 .name = "serial8250",
99 .id = 3, 99 .id = PLAT8250_DEV_PLATFORM,
100 .dev = { 100 .dev = {
101 .platform_data = serial_platform_data, 101 .platform_data = serial_platform_data,
102 }, 102 },
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index ca95d8d64136..6b3984964cc5 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -280,7 +280,6 @@ static void enable_board_wakeup_source(void)
280void __init zoom_peripherals_init(void) 280void __init zoom_peripherals_init(void)
281{ 281{
282 omap_i2c_init(); 282 omap_i2c_init();
283 omap_serial_init();
284 usb_musb_init(&musb_board_data); 283 usb_musb_init(&musb_board_data);
285 enable_board_wakeup_source(); 284 enable_board_wakeup_source();
286} 285}
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c
index d5153b6bd6cb..9cba5560519b 100644
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -895,7 +895,7 @@ static struct clk dpll4_m4x2_ck = {
895 .ops = &clkops_omap2_dflt_wait, 895 .ops = &clkops_omap2_dflt_wait,
896 .parent = &dpll4_m4_ck, 896 .parent = &dpll4_m4_ck,
897 .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), 897 .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN),
898 .enable_bit = OMAP3430_PWRDN_CAM_SHIFT, 898 .enable_bit = OMAP3430_PWRDN_DSS1_SHIFT,
899 .flags = INVERT_ENABLE, 899 .flags = INVERT_ENABLE,
900 .clkdm_name = "dpll4_clkdm", 900 .clkdm_name = "dpll4_clkdm",
901 .recalc = &omap3_clkoutx2_recalc, 901 .recalc = &omap3_clkoutx2_recalc,
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c
index 28b107967c86..a5c0c9c8e496 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -2671,10 +2671,10 @@ static struct omap_clk omap44xx_clks[] = {
2671 CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X), 2671 CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X),
2672 CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X), 2672 CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X),
2673 CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X), 2673 CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X),
2674 CLK("omap-mcspi.1", "ick", &dummy_ck, CK_443X), 2674 CLK("omap2_mcspi.1", "ick", &dummy_ck, CK_443X),
2675 CLK("omap-mcspi.2", "ick", &dummy_ck, CK_443X), 2675 CLK("omap2_mcspi.2", "ick", &dummy_ck, CK_443X),
2676 CLK("omap-mcspi.3", "ick", &dummy_ck, CK_443X), 2676 CLK("omap2_mcspi.3", "ick", &dummy_ck, CK_443X),
2677 CLK("omap-mcspi.4", "ick", &dummy_ck, CK_443X), 2677 CLK("omap2_mcspi.4", "ick", &dummy_ck, CK_443X),
2678 CLK(NULL, "uart1_ick", &dummy_ck, CK_443X), 2678 CLK(NULL, "uart1_ick", &dummy_ck, CK_443X),
2679 CLK(NULL, "uart2_ick", &dummy_ck, CK_443X), 2679 CLK(NULL, "uart2_ick", &dummy_ck, CK_443X),
2680 CLK(NULL, "uart3_ick", &dummy_ck, CK_443X), 2680 CLK(NULL, "uart3_ick", &dummy_ck, CK_443X),
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index b87ad66f083e..6e568ec995ee 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -240,7 +240,7 @@ static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable)
240 bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO; 240 bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
241 else 241 else
242 bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO; 242 bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
243 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 243 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
244 if (enable) 244 if (enable)
245 bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO; 245 bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
246 else 246 else
@@ -812,7 +812,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
812 cm_set_mod_reg_bits(OMAP24XX_FORCESTATE, 812 cm_set_mod_reg_bits(OMAP24XX_FORCESTATE,
813 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); 813 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
814 814
815 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 815 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
816 816
817 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP << 817 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP <<
818 __ffs(clkdm->clktrctrl_mask)); 818 __ffs(clkdm->clktrctrl_mask));
@@ -856,7 +856,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
856 cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE, 856 cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE,
857 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); 857 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
858 858
859 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 859 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
860 860
861 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP << 861 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP <<
862 __ffs(clkdm->clktrctrl_mask)); 862 __ffs(clkdm->clktrctrl_mask));
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 23e4d7733610..2271b9bd1f50 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -726,7 +726,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
726 if (!cpu_is_omap44xx()) 726 if (!cpu_is_omap44xx())
727 return; 727 return;
728 base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET; 728 base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
729 irq = OMAP44XX_IRQ_MMC4; 729 irq = OMAP44XX_IRQ_MMC5;
730 break; 730 break;
731 default: 731 default:
732 continue; 732 continue;
diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
index 64d74f05abbe..e57fb29ff855 100644
--- a/arch/arm/mach-omap2/gpmc-nand.c
+++ b/arch/arm/mach-omap2/gpmc-nand.c
@@ -39,6 +39,9 @@ static int omap2_nand_gpmc_retime(void)
39 struct gpmc_timings t; 39 struct gpmc_timings t;
40 int err; 40 int err;
41 41
42 if (!gpmc_nand_data->gpmc_t)
43 return 0;
44
42 memset(&t, 0, sizeof(t)); 45 memset(&t, 0, sizeof(t));
43 t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk); 46 t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk);
44 t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on); 47 t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on);
diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S b/arch/arm/mach-omap2/include/mach/entry-macro.S
index ff25c7e4e606..50fd74916643 100644
--- a/arch/arm/mach-omap2/include/mach/entry-macro.S
+++ b/arch/arm/mach-omap2/include/mach/entry-macro.S
@@ -52,7 +52,7 @@ omap_irq_base: .word 0
52 52
53 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision 53 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
54 and \tmp, \tmp, #0x000f0000 @ only check architecture 54 and \tmp, \tmp, #0x000f0000 @ only check architecture
55 cmp \tmp, #0x00060000 @ is v6? 55 cmp \tmp, #0x00070000 @ is v6?
56 beq 2400f @ found v6 so it's omap24xx 56 beq 2400f @ found v6 so it's omap24xx
57 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision 57 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
58 and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9 58 and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9
diff --git a/arch/arm/mach-omap2/omap-headsmp.S b/arch/arm/mach-omap2/omap-headsmp.S
index aa3f65c2ac97..ef0e7a00dd6c 100644
--- a/arch/arm/mach-omap2/omap-headsmp.S
+++ b/arch/arm/mach-omap2/omap-headsmp.S
@@ -33,7 +33,7 @@
33ENTRY(omap_secondary_startup) 33ENTRY(omap_secondary_startup)
34hold: ldr r12,=0x103 34hold: ldr r12,=0x103
35 dsb 35 dsb
36 smc @ read from AuxCoreBoot0 36 smc #0 @ read from AuxCoreBoot0
37 mov r0, r0, lsr #9 37 mov r0, r0, lsr #9
38 mrc p15, 0, r4, c0, c0, 5 38 mrc p15, 0, r4, c0, c0, 5
39 and r4, r4, #0x0f 39 and r4, r4, #0x0f
@@ -52,7 +52,7 @@ ENTRY(omap_modify_auxcoreboot0)
52 stmfd sp!, {r1-r12, lr} 52 stmfd sp!, {r1-r12, lr}
53 ldr r12, =0x104 53 ldr r12, =0x104
54 dsb 54 dsb
55 smc 55 smc #0
56 ldmfd sp!, {r1-r12, pc} 56 ldmfd sp!, {r1-r12, pc}
57END(omap_modify_auxcoreboot0) 57END(omap_modify_auxcoreboot0)
58 58
@@ -60,6 +60,6 @@ ENTRY(omap_auxcoreboot_addr)
60 stmfd sp!, {r2-r12, lr} 60 stmfd sp!, {r2-r12, lr}
61 ldr r12, =0x105 61 ldr r12, =0x105
62 dsb 62 dsb
63 smc 63 smc #0
64 ldmfd sp!, {r2-r12, pc} 64 ldmfd sp!, {r2-r12, pc}
65END(omap_auxcoreboot_addr) 65END(omap_auxcoreboot_addr)
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S
index 89bb2b141473..f61c7771ca47 100644
--- a/arch/arm/mach-omap2/omap44xx-smc.S
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -27,6 +27,6 @@ ENTRY(omap_smc1)
27 mov r12, r0 27 mov r12, r0
28 mov r0, r1 28 mov r0, r1
29 dsb 29 dsb
30 smc 30 smc #0
31 ldmfd sp!, {r2-r12, pc} 31 ldmfd sp!, {r2-r12, pc}
32END(omap_smc1) 32END(omap_smc1)
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index c6649472ce0d..e436dcb19795 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1511,6 +1511,9 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh)
1511 c = oh->slaves[oh->_mpu_port_index]->_clk; 1511 c = oh->slaves[oh->_mpu_port_index]->_clk;
1512 } 1512 }
1513 1513
1514 if (!c->clkdm)
1515 return NULL;
1516
1514 return c->clkdm->pwrdm.ptr; 1517 return c->clkdm->pwrdm.ptr;
1515 1518
1516} 1519}
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 9a0fb385622b..ebfce7d1a5d3 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -222,7 +222,7 @@ void pwrdm_init(struct powerdomain **pwrdm_list)
222{ 222{
223 struct powerdomain **p = NULL; 223 struct powerdomain **p = NULL;
224 224
225 if (cpu_is_omap24xx() | cpu_is_omap34xx()) { 225 if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
226 pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL; 226 pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL;
227 pwrstst_reg_offs = OMAP2_PM_PWSTST; 227 pwrstst_reg_offs = OMAP2_PM_PWSTST;
228 } else if (cpu_is_omap44xx()) { 228 } else if (cpu_is_omap44xx()) {
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 9537f6f2352d..07a60f1204ca 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -123,7 +123,7 @@ struct omap3_prcm_regs prcm_context;
123u32 omap_prcm_get_reset_sources(void) 123u32 omap_prcm_get_reset_sources(void)
124{ 124{
125 /* XXX This presumably needs modification for 34XX */ 125 /* XXX This presumably needs modification for 34XX */
126 if (cpu_is_omap24xx() | cpu_is_omap34xx()) 126 if (cpu_is_omap24xx() || cpu_is_omap34xx())
127 return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f; 127 return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f;
128 if (cpu_is_omap44xx()) 128 if (cpu_is_omap44xx())
129 return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f; 129 return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f;
@@ -157,7 +157,7 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
157 else 157 else
158 WARN_ON(1); 158 WARN_ON(1);
159 159
160 if (cpu_is_omap24xx() | cpu_is_omap34xx()) 160 if (cpu_is_omap24xx() || cpu_is_omap34xx())
161 prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs, 161 prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
162 OMAP2_RM_RSTCTRL); 162 OMAP2_RM_RSTCTRL);
163 if (cpu_is_omap44xx()) 163 if (cpu_is_omap44xx())
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index da77930480e9..3771254dfa81 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -115,7 +115,6 @@ static struct plat_serial8250_port serial_platform_data2[] = {
115 } 115 }
116}; 116};
117 117
118#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
119static struct plat_serial8250_port serial_platform_data3[] = { 118static struct plat_serial8250_port serial_platform_data3[] = {
120 { 119 {
121 .irq = 70, 120 .irq = 70,
@@ -128,23 +127,12 @@ static struct plat_serial8250_port serial_platform_data3[] = {
128 } 127 }
129}; 128};
130 129
131static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
132{
133 serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
134}
135#else
136static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
137{
138}
139#endif
140
141void __init omap2_set_globals_uart(struct omap_globals *omap2_globals) 130void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
142{ 131{
143 serial_platform_data0[0].mapbase = omap2_globals->uart1_phys; 132 serial_platform_data0[0].mapbase = omap2_globals->uart1_phys;
144 serial_platform_data1[0].mapbase = omap2_globals->uart2_phys; 133 serial_platform_data1[0].mapbase = omap2_globals->uart2_phys;
145 serial_platform_data2[0].mapbase = omap2_globals->uart3_phys; 134 serial_platform_data2[0].mapbase = omap2_globals->uart3_phys;
146 if (cpu_is_omap3630() || cpu_is_omap44xx()) 135 serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
147 omap2_set_globals_uart4(omap2_globals);
148} 136}
149 137
150static inline unsigned int __serial_read_reg(struct uart_port *up, 138static inline unsigned int __serial_read_reg(struct uart_port *up,
@@ -550,7 +538,7 @@ static ssize_t sleep_timeout_store(struct device *dev,
550 unsigned int value; 538 unsigned int value;
551 539
552 if (sscanf(buf, "%u", &value) != 1) { 540 if (sscanf(buf, "%u", &value) != 1) {
553 printk(KERN_ERR "sleep_timeout_store: Invalid value\n"); 541 dev_err(dev, "sleep_timeout_store: Invalid value\n");
554 return -EINVAL; 542 return -EINVAL;
555 } 543 }
556 544
@@ -664,27 +652,33 @@ void __init omap_serial_early_init(void)
664 struct device *dev = &pdev->dev; 652 struct device *dev = &pdev->dev;
665 struct plat_serial8250_port *p = dev->platform_data; 653 struct plat_serial8250_port *p = dev->platform_data;
666 654
655 /* Don't map zero-based physical address */
656 if (p->mapbase == 0) {
657 dev_warn(dev, "no physical address for uart#%d,"
658 " so skipping early_init...\n", i);
659 continue;
660 }
667 /* 661 /*
668 * Module 4KB + L4 interconnect 4KB 662 * Module 4KB + L4 interconnect 4KB
669 * Static mapping, never released 663 * Static mapping, never released
670 */ 664 */
671 p->membase = ioremap(p->mapbase, SZ_8K); 665 p->membase = ioremap(p->mapbase, SZ_8K);
672 if (!p->membase) { 666 if (!p->membase) {
673 printk(KERN_ERR "ioremap failed for uart%i\n", i + 1); 667 dev_err(dev, "ioremap failed for uart%i\n", i + 1);
674 continue; 668 continue;
675 } 669 }
676 670
677 sprintf(name, "uart%d_ick", i + 1); 671 sprintf(name, "uart%d_ick", i + 1);
678 uart->ick = clk_get(NULL, name); 672 uart->ick = clk_get(NULL, name);
679 if (IS_ERR(uart->ick)) { 673 if (IS_ERR(uart->ick)) {
680 printk(KERN_ERR "Could not get uart%d_ick\n", i + 1); 674 dev_err(dev, "Could not get uart%d_ick\n", i + 1);
681 uart->ick = NULL; 675 uart->ick = NULL;
682 } 676 }
683 677
684 sprintf(name, "uart%d_fck", i+1); 678 sprintf(name, "uart%d_fck", i+1);
685 uart->fck = clk_get(NULL, name); 679 uart->fck = clk_get(NULL, name);
686 if (IS_ERR(uart->fck)) { 680 if (IS_ERR(uart->fck)) {
687 printk(KERN_ERR "Could not get uart%d_fck\n", i + 1); 681 dev_err(dev, "Could not get uart%d_fck\n", i + 1);
688 uart->fck = NULL; 682 uart->fck = NULL;
689 } 683 }
690 684
@@ -727,6 +721,13 @@ void __init omap_serial_init_port(int port)
727 pdev = &uart->pdev; 721 pdev = &uart->pdev;
728 dev = &pdev->dev; 722 dev = &pdev->dev;
729 723
724 /* Don't proceed if there's no clocks available */
725 if (unlikely(!uart->ick || !uart->fck)) {
726 WARN(1, "%s: can't init uart%d, no clocks available\n",
727 kobject_name(&dev->kobj), port);
728 return;
729 }
730
730 omap_uart_enable_clocks(uart); 731 omap_uart_enable_clocks(uart);
731 732
732 omap_uart_reset(uart); 733 omap_uart_reset(uart);
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index f2dbce5f3cd4..d5a95738f85b 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -254,7 +254,7 @@ static unsigned int realview_mmc_status(struct device *dev)
254 else 254 else
255 mask = 2; 255 mask = 2;
256 256
257 return readl(REALVIEW_SYSMCI) & mask; 257 return !(readl(REALVIEW_SYSMCI) & mask);
258} 258}
259 259
260struct mmci_platform_data realview_mmc0_plat_data = { 260struct mmci_platform_data realview_mmc0_plat_data = {
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index edddd66faac6..a2ab51fa73e2 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -166,15 +166,15 @@ union offset_union {
166 THUMB( "1: "ins" %1, [%2]\n" ) \ 166 THUMB( "1: "ins" %1, [%2]\n" ) \
167 THUMB( " add %2, %2, #1\n" ) \ 167 THUMB( " add %2, %2, #1\n" ) \
168 "2:\n" \ 168 "2:\n" \
169 " .section .fixup,\"ax\"\n" \ 169 " .pushsection .fixup,\"ax\"\n" \
170 " .align 2\n" \ 170 " .align 2\n" \
171 "3: mov %0, #1\n" \ 171 "3: mov %0, #1\n" \
172 " b 2b\n" \ 172 " b 2b\n" \
173 " .previous\n" \ 173 " .popsection\n" \
174 " .section __ex_table,\"a\"\n" \ 174 " .pushsection __ex_table,\"a\"\n" \
175 " .align 3\n" \ 175 " .align 3\n" \
176 " .long 1b, 3b\n" \ 176 " .long 1b, 3b\n" \
177 " .previous\n" \ 177 " .popsection\n" \
178 : "=r" (err), "=&r" (val), "=r" (addr) \ 178 : "=r" (err), "=&r" (val), "=r" (addr) \
179 : "0" (err), "2" (addr)) 179 : "0" (err), "2" (addr))
180 180
@@ -226,16 +226,16 @@ union offset_union {
226 " mov %1, %1, "NEXT_BYTE"\n" \ 226 " mov %1, %1, "NEXT_BYTE"\n" \
227 "2: "ins" %1, [%2]\n" \ 227 "2: "ins" %1, [%2]\n" \
228 "3:\n" \ 228 "3:\n" \
229 " .section .fixup,\"ax\"\n" \ 229 " .pushsection .fixup,\"ax\"\n" \
230 " .align 2\n" \ 230 " .align 2\n" \
231 "4: mov %0, #1\n" \ 231 "4: mov %0, #1\n" \
232 " b 3b\n" \ 232 " b 3b\n" \
233 " .previous\n" \ 233 " .popsection\n" \
234 " .section __ex_table,\"a\"\n" \ 234 " .pushsection __ex_table,\"a\"\n" \
235 " .align 3\n" \ 235 " .align 3\n" \
236 " .long 1b, 4b\n" \ 236 " .long 1b, 4b\n" \
237 " .long 2b, 4b\n" \ 237 " .long 2b, 4b\n" \
238 " .previous\n" \ 238 " .popsection\n" \
239 : "=r" (err), "=&r" (v), "=&r" (a) \ 239 : "=r" (err), "=&r" (v), "=&r" (a) \
240 : "0" (err), "1" (v), "2" (a)); \ 240 : "0" (err), "1" (v), "2" (a)); \
241 if (err) \ 241 if (err) \
@@ -266,18 +266,18 @@ union offset_union {
266 " mov %1, %1, "NEXT_BYTE"\n" \ 266 " mov %1, %1, "NEXT_BYTE"\n" \
267 "4: "ins" %1, [%2]\n" \ 267 "4: "ins" %1, [%2]\n" \
268 "5:\n" \ 268 "5:\n" \
269 " .section .fixup,\"ax\"\n" \ 269 " .pushsection .fixup,\"ax\"\n" \
270 " .align 2\n" \ 270 " .align 2\n" \
271 "6: mov %0, #1\n" \ 271 "6: mov %0, #1\n" \
272 " b 5b\n" \ 272 " b 5b\n" \
273 " .previous\n" \ 273 " .popsection\n" \
274 " .section __ex_table,\"a\"\n" \ 274 " .pushsection __ex_table,\"a\"\n" \
275 " .align 3\n" \ 275 " .align 3\n" \
276 " .long 1b, 6b\n" \ 276 " .long 1b, 6b\n" \
277 " .long 2b, 6b\n" \ 277 " .long 2b, 6b\n" \
278 " .long 3b, 6b\n" \ 278 " .long 3b, 6b\n" \
279 " .long 4b, 6b\n" \ 279 " .long 4b, 6b\n" \
280 " .previous\n" \ 280 " .popsection\n" \
281 : "=r" (err), "=&r" (v), "=&r" (a) \ 281 : "=r" (err), "=&r" (v), "=&r" (a) \
282 : "0" (err), "1" (v), "2" (a)); \ 282 : "0" (err), "1" (v), "2" (a)); \
283 if (err) \ 283 if (err) \
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S
index ee7700242c19..5c47760c2064 100644
--- a/arch/arm/mm/proc-sa1100.S
+++ b/arch/arm/mm/proc-sa1100.S
@@ -45,7 +45,7 @@ ENTRY(cpu_sa1100_proc_init)
45 mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland 45 mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland
46 mov pc, lr 46 mov pc, lr
47 47
48 .previous 48 .section .text
49 49
50/* 50/*
51 * cpu_sa1100_proc_fin() 51 * cpu_sa1100_proc_fin()
diff --git a/arch/arm/nwfpe/entry.S b/arch/arm/nwfpe/entry.S
index 48bca0db4607..cafa18354339 100644
--- a/arch/arm/nwfpe/entry.S
+++ b/arch/arm/nwfpe/entry.S
@@ -111,12 +111,12 @@ next:
111 @ to fault. Emit the appropriate exception gunk to fix things up. 111 @ to fault. Emit the appropriate exception gunk to fix things up.
112 @ ??? For some reason, faults can happen at .Lx2 even with a 112 @ ??? For some reason, faults can happen at .Lx2 even with a
113 @ plain LDR instruction. Weird, but it seems harmless. 113 @ plain LDR instruction. Weird, but it seems harmless.
114 .section .fixup,"ax" 114 .pushsection .fixup,"ax"
115 .align 2 115 .align 2
116.Lfix: mov pc, r9 @ let the user eat segfaults 116.Lfix: mov pc, r9 @ let the user eat segfaults
117 .previous 117 .popsection
118 118
119 .section __ex_table,"a" 119 .pushsection __ex_table,"a"
120 .align 3 120 .align 3
121 .long .Lx1, .Lfix 121 .long .Lx1, .Lfix
122 .previous 122 .popsection
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 088c1a03b946..f12f0e39ddf2 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -44,9 +44,6 @@
44 44
45#define NO_LENGTH_CHECK 0xffffffff 45#define NO_LENGTH_CHECK 0xffffffff
46 46
47unsigned char omap_bootloader_tag[512];
48int omap_bootloader_tag_len;
49
50struct omap_board_config_kernel *omap_board_config; 47struct omap_board_config_kernel *omap_board_config;
51int omap_board_config_size; 48int omap_board_config_size;
52 49
@@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config);
100 97
101#include <linux/clocksource.h> 98#include <linux/clocksource.h>
102 99
100/*
101 * offset_32k holds the init time counter value. It is then subtracted
102 * from every counter read to achieve a counter that counts time from the
103 * kernel boot (needed for sched_clock()).
104 */
105static u32 offset_32k __read_mostly;
106
103#ifdef CONFIG_ARCH_OMAP16XX 107#ifdef CONFIG_ARCH_OMAP16XX
104static cycle_t omap16xx_32k_read(struct clocksource *cs) 108static cycle_t omap16xx_32k_read(struct clocksource *cs)
105{ 109{
106 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED); 110 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k;
107} 111}
108#else 112#else
109#define omap16xx_32k_read NULL 113#define omap16xx_32k_read NULL
@@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs)
112#ifdef CONFIG_ARCH_OMAP2420 116#ifdef CONFIG_ARCH_OMAP2420
113static cycle_t omap2420_32k_read(struct clocksource *cs) 117static cycle_t omap2420_32k_read(struct clocksource *cs)
114{ 118{
115 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10); 119 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k;
116} 120}
117#else 121#else
118#define omap2420_32k_read NULL 122#define omap2420_32k_read NULL
@@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs)
121#ifdef CONFIG_ARCH_OMAP2430 125#ifdef CONFIG_ARCH_OMAP2430
122static cycle_t omap2430_32k_read(struct clocksource *cs) 126static cycle_t omap2430_32k_read(struct clocksource *cs)
123{ 127{
124 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10); 128 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k;
125} 129}
126#else 130#else
127#define omap2430_32k_read NULL 131#define omap2430_32k_read NULL
@@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)
130#ifdef CONFIG_ARCH_OMAP3 134#ifdef CONFIG_ARCH_OMAP3
131static cycle_t omap34xx_32k_read(struct clocksource *cs) 135static cycle_t omap34xx_32k_read(struct clocksource *cs)
132{ 136{
133 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10); 137 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k;
134} 138}
135#else 139#else
136#define omap34xx_32k_read NULL 140#define omap34xx_32k_read NULL
@@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs)
139#ifdef CONFIG_ARCH_OMAP4 143#ifdef CONFIG_ARCH_OMAP4
140static cycle_t omap44xx_32k_read(struct clocksource *cs) 144static cycle_t omap44xx_32k_read(struct clocksource *cs)
141{ 145{
142 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10); 146 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k;
143} 147}
144#else 148#else
145#define omap44xx_32k_read NULL 149#define omap44xx_32k_read NULL
@@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void)
227 clocksource_32k.mult = clocksource_hz2mult(32768, 231 clocksource_32k.mult = clocksource_hz2mult(32768,
228 clocksource_32k.shift); 232 clocksource_32k.shift);
229 233
234 offset_32k = clocksource_32k.read(&clocksource_32k);
235
230 if (clocksource_register(&clocksource_32k)) 236 if (clocksource_register(&clocksource_32k))
231 printk(err, clocksource_32k.name); 237 printk(err, clocksource_32k.name);
232 } 238 }
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 5c6c342c53f5..1d959965ff52 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -937,6 +937,15 @@ void omap_start_dma(int lch)
937{ 937{
938 u32 l; 938 u32 l;
939 939
940 /*
941 * The CPC/CDAC register needs to be initialized to zero
942 * before starting dma transfer.
943 */
944 if (cpu_is_omap15xx())
945 dma_write(0, CPC(lch));
946 else
947 dma_write(0, CDAC(lch));
948
940 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { 949 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
941 int next_lch, cur_lch; 950 int next_lch, cur_lch;
942 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; 951 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 76a347b3ce07..45a225d09125 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
798 case METHOD_MPUIO: 798 case METHOD_MPUIO:
799 reg += OMAP_MPUIO_GPIO_INT_EDGE; 799 reg += OMAP_MPUIO_GPIO_INT_EDGE;
800 l = __raw_readl(reg); 800 l = __raw_readl(reg);
801 if (trigger & IRQ_TYPE_EDGE_BOTH) 801 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
802 bank->toggle_mask |= 1 << gpio; 802 bank->toggle_mask |= 1 << gpio;
803 if (trigger & IRQ_TYPE_EDGE_RISING) 803 if (trigger & IRQ_TYPE_EDGE_RISING)
804 l |= 1 << gpio; 804 l |= 1 << gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
812 case METHOD_GPIO_1510: 812 case METHOD_GPIO_1510:
813 reg += OMAP1510_GPIO_INT_CONTROL; 813 reg += OMAP1510_GPIO_INT_CONTROL;
814 l = __raw_readl(reg); 814 l = __raw_readl(reg);
815 if (trigger & IRQ_TYPE_EDGE_BOTH) 815 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
816 bank->toggle_mask |= 1 << gpio; 816 bank->toggle_mask |= 1 << gpio;
817 if (trigger & IRQ_TYPE_EDGE_RISING) 817 if (trigger & IRQ_TYPE_EDGE_RISING)
818 l |= 1 << gpio; 818 l |= 1 << gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
846 case METHOD_GPIO_7XX: 846 case METHOD_GPIO_7XX:
847 reg += OMAP7XX_GPIO_INT_CONTROL; 847 reg += OMAP7XX_GPIO_INT_CONTROL;
848 l = __raw_readl(reg); 848 l = __raw_readl(reg);
849 if (trigger & IRQ_TYPE_EDGE_BOTH) 849 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
850 bank->toggle_mask |= 1 << gpio; 850 bank->toggle_mask |= 1 << gpio;
851 if (trigger & IRQ_TYPE_EDGE_RISING) 851 if (trigger & IRQ_TYPE_EDGE_RISING)
852 l |= 1 << gpio; 852 l |= 1 << gpio;
diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h
index b65088a869e9..401701977dbb 100644
--- a/arch/arm/plat-omap/include/plat/irqs.h
+++ b/arch/arm/plat-omap/include/plat/irqs.h
@@ -345,8 +345,6 @@
345#define INT_34XX_MMC3_IRQ 94 345#define INT_34XX_MMC3_IRQ 94
346#define INT_34XX_GPT12_IRQ 95 346#define INT_34XX_GPT12_IRQ 95
347 347
348#define INT_34XX_BENCH_MPU_EMUL 3
349
350#define INT_35XX_HECC0_IRQ 24 348#define INT_35XX_HECC0_IRQ 24
351#define INT_35XX_HECC1_IRQ 28 349#define INT_35XX_HECC1_IRQ 28
352#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 350#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h
index 39748354ce45..7de903d7c1ce 100644
--- a/arch/arm/plat-omap/include/plat/mcbsp.h
+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
@@ -59,7 +59,7 @@
59#define OMAP44XX_MCBSP1_BASE 0x49022000 59#define OMAP44XX_MCBSP1_BASE 0x49022000
60#define OMAP44XX_MCBSP2_BASE 0x49024000 60#define OMAP44XX_MCBSP2_BASE 0x49024000
61#define OMAP44XX_MCBSP3_BASE 0x49026000 61#define OMAP44XX_MCBSP3_BASE 0x49026000
62#define OMAP44XX_MCBSP4_BASE 0x48074000 62#define OMAP44XX_MCBSP4_BASE 0x48096000
63 63
64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) 64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
65 65
diff --git a/arch/arm/plat-omap/include/plat/nand.h b/arch/arm/plat-omap/include/plat/nand.h
index 6ba88d2630d9..f8efd5466b1d 100644
--- a/arch/arm/plat-omap/include/plat/nand.h
+++ b/arch/arm/plat-omap/include/plat/nand.h
@@ -29,4 +29,11 @@ struct omap_nand_platform_data {
29/* size (4 KiB) for IO mapping */ 29/* size (4 KiB) for IO mapping */
30#define NAND_IO_SIZE SZ_4K 30#define NAND_IO_SIZE SZ_4K
31 31
32#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
32extern int gpmc_nand_init(struct omap_nand_platform_data *d); 33extern int gpmc_nand_init(struct omap_nand_platform_data *d);
34#else
35static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
36{
37 return 0;
38}
39#endif
diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h
index 2302474a3748..b3ef1a7f53cc 100644
--- a/arch/arm/plat-omap/include/plat/omap44xx.h
+++ b/arch/arm/plat-omap/include/plat/omap44xx.h
@@ -32,7 +32,7 @@
32#define OMAP4430_PRM_BASE 0x4a306000 32#define OMAP4430_PRM_BASE 0x4a306000
33#define OMAP44XX_GPMC_BASE 0x50000000 33#define OMAP44XX_GPMC_BASE 0x50000000
34#define OMAP443X_SCM_BASE 0x4a002000 34#define OMAP443X_SCM_BASE 0x4a002000
35#define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE 35#define OMAP443X_CTRL_BASE 0x4a100000
36#define OMAP44XX_IC_BASE 0x48200000 36#define OMAP44XX_IC_BASE 0x48200000
37#define OMAP44XX_IVA_INTC_BASE 0x40000000 37#define OMAP44XX_IVA_INTC_BASE 0x40000000
38#define IRQ_SIR_IRQ 0x0040 38#define IRQ_SIR_IRQ 0x0040
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 440b4164f2f6..36d6ea56ab51 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig {
294 u16 rev_offs; 294 u16 rev_offs;
295 u16 sysc_offs; 295 u16 sysc_offs;
296 u16 syss_offs; 296 u16 syss_offs;
297 u16 sysc_flags;
297 u8 idlemodes; 298 u8 idlemodes;
298 u8 sysc_flags;
299 u8 clockact; 299 u8 clockact;
300 struct omap_hwmod_sysc_fields *sysc_fields; 300 struct omap_hwmod_sysc_fields *sysc_fields;
301}; 301};
diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c
index dd5b882aab40..5e73c25f8f85 100644
--- a/arch/avr32/kernel/ptrace.c
+++ b/arch/avr32/kernel/ptrace.c
@@ -28,7 +28,7 @@ static struct pt_regs *get_user_regs(struct task_struct *tsk)
28 THREAD_SIZE - sizeof(struct pt_regs)); 28 THREAD_SIZE - sizeof(struct pt_regs));
29} 29}
30 30
31static void user_enable_single_step(struct task_struct *tsk) 31void user_enable_single_step(struct task_struct *tsk)
32{ 32{
33 pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n", 33 pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n",
34 tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr); 34 tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr);
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 73c5c2b05f64..7f3c0a2e60cd 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -1802,7 +1802,8 @@ static int kvm_ia64_sync_dirty_log(struct kvm *kvm,
1802{ 1802{
1803 struct kvm_memory_slot *memslot; 1803 struct kvm_memory_slot *memslot;
1804 int r, i; 1804 int r, i;
1805 long n, base; 1805 long base;
1806 unsigned long n;
1806 unsigned long *dirty_bitmap = (unsigned long *)(kvm->arch.vm_base + 1807 unsigned long *dirty_bitmap = (unsigned long *)(kvm->arch.vm_base +
1807 offsetof(struct kvm_vm_data, kvm_mem_dirty_log)); 1808 offsetof(struct kvm_vm_data, kvm_mem_dirty_log));
1808 1809
@@ -1815,7 +1816,7 @@ static int kvm_ia64_sync_dirty_log(struct kvm *kvm,
1815 if (!memslot->dirty_bitmap) 1816 if (!memslot->dirty_bitmap)
1816 goto out; 1817 goto out;
1817 1818
1818 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1819 n = kvm_dirty_bitmap_bytes(memslot);
1819 base = memslot->base_gfn / BITS_PER_LONG; 1820 base = memslot->base_gfn / BITS_PER_LONG;
1820 1821
1821 for (i = 0; i < n/sizeof(long); ++i) { 1822 for (i = 0; i < n/sizeof(long); ++i) {
@@ -1831,7 +1832,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1831 struct kvm_dirty_log *log) 1832 struct kvm_dirty_log *log)
1832{ 1833{
1833 int r; 1834 int r;
1834 int n; 1835 unsigned long n;
1835 struct kvm_memory_slot *memslot; 1836 struct kvm_memory_slot *memslot;
1836 int is_dirty = 0; 1837 int is_dirty = 0;
1837 1838
@@ -1850,7 +1851,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1850 if (is_dirty) { 1851 if (is_dirty) {
1851 kvm_flush_remote_tlbs(kvm); 1852 kvm_flush_remote_tlbs(kvm);
1852 memslot = &kvm->memslots->memslots[log->slot]; 1853 memslot = &kvm->memslots->memslots[log->slot];
1853 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1854 n = kvm_dirty_bitmap_bytes(memslot);
1854 memset(memslot->dirty_bitmap, 0, n); 1855 memset(memslot->dirty_bitmap, 0, n);
1855 } 1856 }
1856 r = 0; 1857 r = 0;
diff --git a/arch/m68k/include/asm/mcfuart.h b/arch/m68k/include/asm/mcfuart.h
index ef2293873612..01a8716c5fc5 100644
--- a/arch/m68k/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
@@ -212,5 +212,10 @@ struct mcf_platform_uart {
212#define MCFUART_URF_RXS 0xc0 /* Receiver status */ 212#define MCFUART_URF_RXS 0xc0 /* Receiver status */
213#endif 213#endif
214 214
215#if defined(CONFIG_M5272)
216#define MCFUART_TXFIFOSIZE 25
217#else
218#define MCFUART_TXFIFOSIZE 1
219#endif
215/****************************************************************************/ 220/****************************************************************************/
216#endif /* mcfuart_h */ 221#endif /* mcfuart_h */
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile
index ce404bc9ccbd..14042574ac21 100644
--- a/arch/m68knommu/Makefile
+++ b/arch/m68knommu/Makefile
@@ -94,7 +94,7 @@ cflags-$(CONFIG_M520x) := $(call cc-option,-mcpu=5208,-m5200)
94cflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307) 94cflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307)
95cflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200) 95cflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200)
96cflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307) 96cflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307)
97cflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5271,-m5200) 97cflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5272,-m5307)
98cflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307) 98cflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307)
99cflags-$(CONFIG_M528x) := $(call cc-option,-m528x,-m5307) 99cflags-$(CONFIG_M528x) := $(call cc-option,-m528x,-m5307)
100cflags-$(CONFIG_M5307) := $(call cc-option,-m5307,-m5200) 100cflags-$(CONFIG_M5307) := $(call cc-option,-m5307,-m5200)
diff --git a/arch/m68knommu/kernel/entry.S b/arch/m68knommu/kernel/entry.S
index 56043ade3941..aff6f57ef8b5 100644
--- a/arch/m68knommu/kernel/entry.S
+++ b/arch/m68knommu/kernel/entry.S
@@ -145,6 +145,6 @@ ENTRY(ret_from_user_signal)
145 trap #0 145 trap #0
146 146
147ENTRY(ret_from_user_rt_signal) 147ENTRY(ret_from_user_rt_signal)
148 move #__NR_rt_sigreturn,%d0 148 movel #__NR_rt_sigreturn,%d0
149 trap #0 149 trap #0
150 150
diff --git a/arch/m68knommu/platform/68360/ints.c b/arch/m68knommu/platform/68360/ints.c
index 1143f77caca4..6f22970d8c20 100644
--- a/arch/m68knommu/platform/68360/ints.c
+++ b/arch/m68knommu/platform/68360/ints.c
@@ -107,7 +107,6 @@ void init_IRQ(void)
107 _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */ 107 _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */
108 _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */ 108 _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */
109 _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */ 109 _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */
110 _ramvec[vba+CPMVEC_RISCTIMER] = inthandler; /* reserved */
111 _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */ 110 _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */
112 _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */ 111 _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */
113 _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */ 112 _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index baa2bbb6c096..04f16268e1c3 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:38 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368CONFIG_XFRM_USER=m 362CONFIG_XFRM_USER=m
@@ -543,6 +537,8 @@ CONFIG_MTD_PHYSMAP_OF=y
543# UBI - Unsorted block images 537# UBI - Unsorted block images
544# 538#
545# CONFIG_MTD_UBI is not set 539# CONFIG_MTD_UBI is not set
540CONFIG_OF_FLATTREE=y
541CONFIG_OF_DYNAMIC=y
546CONFIG_OF_DEVICE=y 542CONFIG_OF_DEVICE=y
547CONFIG_OF_I2C=y 543CONFIG_OF_I2C=y
548CONFIG_OF_MDIO=y 544CONFIG_OF_MDIO=y
@@ -579,6 +575,7 @@ CONFIG_MISC_DEVICES=y
579# CONFIG_ENCLOSURE_SERVICES is not set 575# CONFIG_ENCLOSURE_SERVICES is not set
580# CONFIG_HP_ILO is not set 576# CONFIG_HP_ILO is not set
581# CONFIG_ISL29003 is not set 577# CONFIG_ISL29003 is not set
578# CONFIG_SENSORS_TSL2550 is not set
582# CONFIG_DS1682 is not set 579# CONFIG_DS1682 is not set
583# CONFIG_C2PORT is not set 580# CONFIG_C2PORT is not set
584 581
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600# CONFIG_SCSI is not set 598# CONFIG_SCSI is not set
601# CONFIG_SCSI_DMA is not set 599# CONFIG_SCSI_DMA is not set
@@ -788,6 +786,7 @@ CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y 786CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_JSM is not set 787# CONFIG_SERIAL_JSM is not set
790# CONFIG_SERIAL_OF_PLATFORM is not set 788# CONFIG_SERIAL_OF_PLATFORM is not set
789# CONFIG_SERIAL_TIMBERDALE is not set
791# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 790# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
792CONFIG_UNIX98_PTYS=y 791CONFIG_UNIX98_PTYS=y
793# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 792# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -836,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
836CONFIG_I2C_MPC=y 835CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set 836# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set 837# CONFIG_I2C_SIMTEC is not set
838# CONFIG_I2C_XILINX is not set
839 839
840# 840#
841# External I2C/SMBus adapter drivers 841# External I2C/SMBus adapter drivers
@@ -849,15 +849,9 @@ CONFIG_I2C_MPC=y
849# 849#
850# CONFIG_I2C_PCA_PLATFORM is not set 850# CONFIG_I2C_PCA_PLATFORM is not set
851# CONFIG_I2C_STUB is not set 851# CONFIG_I2C_STUB is not set
852
853#
854# Miscellaneous I2C Chip support
855#
856# CONFIG_SENSORS_TSL2550 is not set
857# CONFIG_I2C_DEBUG_CORE is not set 852# CONFIG_I2C_DEBUG_CORE is not set
858# CONFIG_I2C_DEBUG_ALGO is not set 853# CONFIG_I2C_DEBUG_ALGO is not set
859# CONFIG_I2C_DEBUG_BUS is not set 854# CONFIG_I2C_DEBUG_BUS is not set
860# CONFIG_I2C_DEBUG_CHIP is not set
861# CONFIG_SPI is not set 855# CONFIG_SPI is not set
862 856
863# 857#
@@ -883,10 +877,11 @@ CONFIG_HWMON=y
883# CONFIG_SENSORS_ADM1029 is not set 877# CONFIG_SENSORS_ADM1029 is not set
884# CONFIG_SENSORS_ADM1031 is not set 878# CONFIG_SENSORS_ADM1031 is not set
885# CONFIG_SENSORS_ADM9240 is not set 879# CONFIG_SENSORS_ADM9240 is not set
880# CONFIG_SENSORS_ADT7411 is not set
886# CONFIG_SENSORS_ADT7462 is not set 881# CONFIG_SENSORS_ADT7462 is not set
887# CONFIG_SENSORS_ADT7470 is not set 882# CONFIG_SENSORS_ADT7470 is not set
888# CONFIG_SENSORS_ADT7473 is not set
889# CONFIG_SENSORS_ADT7475 is not set 883# CONFIG_SENSORS_ADT7475 is not set
884# CONFIG_SENSORS_ASC7621 is not set
890# CONFIG_SENSORS_ATXP1 is not set 885# CONFIG_SENSORS_ATXP1 is not set
891# CONFIG_SENSORS_DS1621 is not set 886# CONFIG_SENSORS_DS1621 is not set
892# CONFIG_SENSORS_I5K_AMB is not set 887# CONFIG_SENSORS_I5K_AMB is not set
@@ -923,6 +918,7 @@ CONFIG_HWMON=y
923# CONFIG_SENSORS_SMSC47M192 is not set 918# CONFIG_SENSORS_SMSC47M192 is not set
924# CONFIG_SENSORS_SMSC47B397 is not set 919# CONFIG_SENSORS_SMSC47B397 is not set
925# CONFIG_SENSORS_ADS7828 is not set 920# CONFIG_SENSORS_ADS7828 is not set
921# CONFIG_SENSORS_AMC6821 is not set
926# CONFIG_SENSORS_THMC50 is not set 922# CONFIG_SENSORS_THMC50 is not set
927# CONFIG_SENSORS_TMP401 is not set 923# CONFIG_SENSORS_TMP401 is not set
928# CONFIG_SENSORS_TMP421 is not set 924# CONFIG_SENSORS_TMP421 is not set
@@ -971,18 +967,21 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 967# Multifunction device drivers
972# 968#
973# CONFIG_MFD_CORE is not set 969# CONFIG_MFD_CORE is not set
970# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 971# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 972# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 973# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 974# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 975# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 976# CONFIG_PMIC_ADP5520 is not set
977# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 978# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 979# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 980# CONFIG_MFD_WM8350_I2C is not set
981# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 982# CONFIG_MFD_PCF50633 is not set
984# CONFIG_AB3100_CORE is not set 983# CONFIG_AB3100_CORE is not set
985# CONFIG_MFD_88PM8607 is not set 984# CONFIG_LPC_SCH is not set
986# CONFIG_REGULATOR is not set 985# CONFIG_REGULATOR is not set
987# CONFIG_MEDIA_SUPPORT is not set 986# CONFIG_MEDIA_SUPPORT is not set
988 987
@@ -991,6 +990,7 @@ CONFIG_SSB_POSSIBLE=y
991# 990#
992# CONFIG_AGP is not set 991# CONFIG_AGP is not set
993CONFIG_VGA_ARB=y 992CONFIG_VGA_ARB=y
993CONFIG_VGA_ARB_MAX_GPUS=16
994# CONFIG_DRM is not set 994# CONFIG_DRM is not set
995# CONFIG_VGASTATE is not set 995# CONFIG_VGASTATE is not set
996CONFIG_VIDEO_OUTPUT_CONTROL=m 996CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1083,7 +1083,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1083# CONFIG_USB_RIO500 is not set 1083# CONFIG_USB_RIO500 is not set
1084# CONFIG_USB_LEGOTOWER is not set 1084# CONFIG_USB_LEGOTOWER is not set
1085# CONFIG_USB_LCD is not set 1085# CONFIG_USB_LCD is not set
1086# CONFIG_USB_BERRY_CHARGE is not set
1087# CONFIG_USB_LED is not set 1086# CONFIG_USB_LED is not set
1088# CONFIG_USB_CYPRESS_CY7C63 is not set 1087# CONFIG_USB_CYPRESS_CY7C63 is not set
1089# CONFIG_USB_CYTHERM is not set 1088# CONFIG_USB_CYTHERM is not set
@@ -1096,7 +1095,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1096# CONFIG_USB_IOWARRIOR is not set 1095# CONFIG_USB_IOWARRIOR is not set
1097# CONFIG_USB_TEST is not set 1096# CONFIG_USB_TEST is not set
1098# CONFIG_USB_ISIGHTFW is not set 1097# CONFIG_USB_ISIGHTFW is not set
1099# CONFIG_USB_VST is not set
1100# CONFIG_USB_GADGET is not set 1098# CONFIG_USB_GADGET is not set
1101 1099
1102# 1100#
@@ -1259,6 +1257,7 @@ CONFIG_JFFS2_ZLIB=y
1259# CONFIG_JFFS2_LZO is not set 1257# CONFIG_JFFS2_LZO is not set
1260CONFIG_JFFS2_RTIME=y 1258CONFIG_JFFS2_RTIME=y
1261# CONFIG_JFFS2_RUBIN is not set 1259# CONFIG_JFFS2_RUBIN is not set
1260# CONFIG_LOGFS is not set
1262# CONFIG_CRAMFS is not set 1261# CONFIG_CRAMFS is not set
1263# CONFIG_SQUASHFS is not set 1262# CONFIG_SQUASHFS is not set
1264# CONFIG_VXFS_FS is not set 1263# CONFIG_VXFS_FS is not set
@@ -1285,6 +1284,7 @@ CONFIG_SUNRPC_GSS=y
1285CONFIG_RPCSEC_GSS_KRB5=y 1284CONFIG_RPCSEC_GSS_KRB5=y
1286# CONFIG_RPCSEC_GSS_SPKM3 is not set 1285# CONFIG_RPCSEC_GSS_SPKM3 is not set
1287# CONFIG_SMB_FS is not set 1286# CONFIG_SMB_FS is not set
1287# CONFIG_CEPH_FS is not set
1288# CONFIG_CIFS is not set 1288# CONFIG_CIFS is not set
1289# CONFIG_NCP_FS is not set 1289# CONFIG_NCP_FS is not set
1290# CONFIG_CODA_FS is not set 1290# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/kmeter1_defconfig b/arch/powerpc/configs/83xx/kmeter1_defconfig
index 8b1aa806e548..1843ee11823b 100644
--- a/arch/powerpc/configs/83xx/kmeter1_defconfig
+++ b/arch/powerpc/configs/83xx/kmeter1_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:39 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,7 +98,6 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101# CONFIG_GROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
103# CONFIG_SYSFS_DEPRECATED_V2 is not set 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
104# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351# CONFIG_NET_KEY is not set 350# CONFIG_NET_KEY is not set
352CONFIG_INET=y 351CONFIG_INET=y
@@ -387,6 +386,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
387# CONFIG_ATM is not set 386# CONFIG_ATM is not set
388CONFIG_STP=m 387CONFIG_STP=m
389CONFIG_BRIDGE=m 388CONFIG_BRIDGE=m
389CONFIG_BRIDGE_IGMP_SNOOPING=y
390# CONFIG_NET_DSA is not set 390# CONFIG_NET_DSA is not set
391CONFIG_VLAN_8021Q=y 391CONFIG_VLAN_8021Q=y
392# CONFIG_VLAN_8021Q_GVRP is not set 392# CONFIG_VLAN_8021Q_GVRP is not set
@@ -539,6 +539,8 @@ CONFIG_MTD_UBI_DEBUG=y
539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set 539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set
540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set 540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set
541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set 541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set
542CONFIG_OF_FLATTREE=y
543CONFIG_OF_DYNAMIC=y
542CONFIG_OF_DEVICE=y 544CONFIG_OF_DEVICE=y
543CONFIG_OF_I2C=y 545CONFIG_OF_I2C=y
544CONFIG_OF_MDIO=y 546CONFIG_OF_MDIO=y
@@ -563,6 +565,7 @@ CONFIG_HAVE_IDE=y
563# 565#
564# SCSI device support 566# SCSI device support
565# 567#
568CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 569# CONFIG_RAID_ATTRS is not set
567# CONFIG_SCSI is not set 570# CONFIG_SCSI is not set
568# CONFIG_SCSI_DMA is not set 571# CONFIG_SCSI_DMA is not set
@@ -690,6 +693,7 @@ CONFIG_SERIAL_CORE=y
690CONFIG_SERIAL_CORE_CONSOLE=y 693CONFIG_SERIAL_CORE_CONSOLE=y
691# CONFIG_SERIAL_OF_PLATFORM is not set 694# CONFIG_SERIAL_OF_PLATFORM is not set
692# CONFIG_SERIAL_QE is not set 695# CONFIG_SERIAL_QE is not set
696# CONFIG_SERIAL_TIMBERDALE is not set
693# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 697# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
694CONFIG_UNIX98_PTYS=y 698CONFIG_UNIX98_PTYS=y
695# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 699# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -720,6 +724,7 @@ CONFIG_I2C_HELPER_AUTO=y
720CONFIG_I2C_MPC=y 724CONFIG_I2C_MPC=y
721# CONFIG_I2C_OCORES is not set 725# CONFIG_I2C_OCORES is not set
722# CONFIG_I2C_SIMTEC is not set 726# CONFIG_I2C_SIMTEC is not set
727# CONFIG_I2C_XILINX is not set
723 728
724# 729#
725# External I2C/SMBus adapter drivers 730# External I2C/SMBus adapter drivers
@@ -732,15 +737,9 @@ CONFIG_I2C_MPC=y
732# 737#
733# CONFIG_I2C_PCA_PLATFORM is not set 738# CONFIG_I2C_PCA_PLATFORM is not set
734# CONFIG_I2C_STUB is not set 739# CONFIG_I2C_STUB is not set
735
736#
737# Miscellaneous I2C Chip support
738#
739# CONFIG_SENSORS_TSL2550 is not set
740# CONFIG_I2C_DEBUG_CORE is not set 740# CONFIG_I2C_DEBUG_CORE is not set
741# CONFIG_I2C_DEBUG_ALGO is not set 741# CONFIG_I2C_DEBUG_ALGO is not set
742# CONFIG_I2C_DEBUG_BUS is not set 742# CONFIG_I2C_DEBUG_BUS is not set
743# CONFIG_I2C_DEBUG_CHIP is not set
744# CONFIG_SPI is not set 743# CONFIG_SPI is not set
745 744
746# 745#
@@ -765,18 +764,20 @@ CONFIG_SSB_POSSIBLE=y
765# Multifunction device drivers 764# Multifunction device drivers
766# 765#
767# CONFIG_MFD_CORE is not set 766# CONFIG_MFD_CORE is not set
767# CONFIG_MFD_88PM860X is not set
768# CONFIG_MFD_SM501 is not set 768# CONFIG_MFD_SM501 is not set
769# CONFIG_HTC_PASIC3 is not set 769# CONFIG_HTC_PASIC3 is not set
770# CONFIG_TWL4030_CORE is not set 770# CONFIG_TWL4030_CORE is not set
771# CONFIG_MFD_TMIO is not set 771# CONFIG_MFD_TMIO is not set
772# CONFIG_PMIC_DA903X is not set 772# CONFIG_PMIC_DA903X is not set
773# CONFIG_PMIC_ADP5520 is not set 773# CONFIG_PMIC_ADP5520 is not set
774# CONFIG_MFD_MAX8925 is not set
774# CONFIG_MFD_WM8400 is not set 775# CONFIG_MFD_WM8400 is not set
775# CONFIG_MFD_WM831X is not set 776# CONFIG_MFD_WM831X is not set
776# CONFIG_MFD_WM8350_I2C is not set 777# CONFIG_MFD_WM8350_I2C is not set
778# CONFIG_MFD_WM8994 is not set
777# CONFIG_MFD_PCF50633 is not set 779# CONFIG_MFD_PCF50633 is not set
778# CONFIG_AB3100_CORE is not set 780# CONFIG_AB3100_CORE is not set
779# CONFIG_MFD_88PM8607 is not set
780# CONFIG_REGULATOR is not set 781# CONFIG_REGULATOR is not set
781# CONFIG_MEDIA_SUPPORT is not set 782# CONFIG_MEDIA_SUPPORT is not set
782 783
@@ -805,8 +806,6 @@ CONFIG_SSB_POSSIBLE=y
805CONFIG_UIO=y 806CONFIG_UIO=y
806# CONFIG_UIO_PDRV is not set 807# CONFIG_UIO_PDRV is not set
807# CONFIG_UIO_PDRV_GENIRQ is not set 808# CONFIG_UIO_PDRV_GENIRQ is not set
808# CONFIG_UIO_SMX is not set
809# CONFIG_UIO_SERCOS3 is not set
810 809
811# 810#
812# TI VLYNQ 811# TI VLYNQ
@@ -887,6 +886,7 @@ CONFIG_JFFS2_ZLIB=y
887CONFIG_JFFS2_RTIME=y 886CONFIG_JFFS2_RTIME=y
888# CONFIG_JFFS2_RUBIN is not set 887# CONFIG_JFFS2_RUBIN is not set
889# CONFIG_UBIFS_FS is not set 888# CONFIG_UBIFS_FS is not set
889# CONFIG_LOGFS is not set
890# CONFIG_CRAMFS is not set 890# CONFIG_CRAMFS is not set
891# CONFIG_SQUASHFS is not set 891# CONFIG_SQUASHFS is not set
892# CONFIG_VXFS_FS is not set 892# CONFIG_VXFS_FS is not set
@@ -911,6 +911,7 @@ CONFIG_SUNRPC=y
911# CONFIG_RPCSEC_GSS_KRB5 is not set 911# CONFIG_RPCSEC_GSS_KRB5 is not set
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 912# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 913# CONFIG_SMB_FS is not set
914# CONFIG_CEPH_FS is not set
914# CONFIG_CIFS is not set 915# CONFIG_CIFS is not set
915# CONFIG_NCP_FS is not set 916# CONFIG_NCP_FS is not set
916# CONFIG_CODA_FS is not set 917# CONFIG_CODA_FS is not set
@@ -976,6 +977,7 @@ CONFIG_DEBUG_FS=y
976CONFIG_DEBUG_BUGVERBOSE=y 977CONFIG_DEBUG_BUGVERBOSE=y
977# CONFIG_DEBUG_MEMORY_INIT is not set 978# CONFIG_DEBUG_MEMORY_INIT is not set
978# CONFIG_RCU_CPU_STALL_DETECTOR is not set 979# CONFIG_RCU_CPU_STALL_DETECTOR is not set
980# CONFIG_LKDTM is not set
979# CONFIG_LATENCYTOP is not set 981# CONFIG_LATENCYTOP is not set
980CONFIG_SYSCTL_SYSCALL_CHECK=y 982CONFIG_SYSCTL_SYSCALL_CHECK=y
981CONFIG_HAVE_FUNCTION_TRACER=y 983CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 2f2d98558e44..78ae3bf1e9c5 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:15 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -772,6 +770,7 @@ CONFIG_NET_PCI=y
772# CONFIG_PCNET32 is not set 770# CONFIG_PCNET32 is not set
773# CONFIG_AMD8111_ETH is not set 771# CONFIG_AMD8111_ETH is not set
774# CONFIG_ADAPTEC_STARFIRE is not set 772# CONFIG_ADAPTEC_STARFIRE is not set
773# CONFIG_KSZ884X_PCI is not set
775# CONFIG_B44 is not set 774# CONFIG_B44 is not set
776# CONFIG_FORCEDETH is not set 775# CONFIG_FORCEDETH is not set
777CONFIG_E100=y 776CONFIG_E100=y
@@ -824,6 +823,8 @@ CONFIG_NETDEV_10000=y
824# CONFIG_CHELSIO_T1 is not set 823# CONFIG_CHELSIO_T1 is not set
825CONFIG_CHELSIO_T3_DEPENDS=y 824CONFIG_CHELSIO_T3_DEPENDS=y
826# CONFIG_CHELSIO_T3 is not set 825# CONFIG_CHELSIO_T3 is not set
826CONFIG_CHELSIO_T4_DEPENDS=y
827# CONFIG_CHELSIO_T4 is not set
827# CONFIG_ENIC is not set 828# CONFIG_ENIC is not set
828# CONFIG_IXGBE is not set 829# CONFIG_IXGBE is not set
829# CONFIG_IXGB is not set 830# CONFIG_IXGB is not set
@@ -836,6 +837,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
836# CONFIG_MLX4_CORE is not set 837# CONFIG_MLX4_CORE is not set
837# CONFIG_TEHUTI is not set 838# CONFIG_TEHUTI is not set
838# CONFIG_BNX2X is not set 839# CONFIG_BNX2X is not set
840# CONFIG_QLCNIC is not set
839# CONFIG_QLGE is not set 841# CONFIG_QLGE is not set
840# CONFIG_SFC is not set 842# CONFIG_SFC is not set
841# CONFIG_BE2NET is not set 843# CONFIG_BE2NET is not set
@@ -931,6 +933,7 @@ CONFIG_SERIAL_CORE=y
931CONFIG_SERIAL_CORE_CONSOLE=y 933CONFIG_SERIAL_CORE_CONSOLE=y
932# CONFIG_SERIAL_JSM is not set 934# CONFIG_SERIAL_JSM is not set
933# CONFIG_SERIAL_OF_PLATFORM is not set 935# CONFIG_SERIAL_OF_PLATFORM is not set
936# CONFIG_SERIAL_TIMBERDALE is not set
934# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 937# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
935CONFIG_UNIX98_PTYS=y 938CONFIG_UNIX98_PTYS=y
936# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 939# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,6 +983,7 @@ CONFIG_I2C_HELPER_AUTO=y
980CONFIG_I2C_MPC=y 983CONFIG_I2C_MPC=y
981# CONFIG_I2C_OCORES is not set 984# CONFIG_I2C_OCORES is not set
982# CONFIG_I2C_SIMTEC is not set 985# CONFIG_I2C_SIMTEC is not set
986# CONFIG_I2C_XILINX is not set
983 987
984# 988#
985# External I2C/SMBus adapter drivers 989# External I2C/SMBus adapter drivers
@@ -993,15 +997,9 @@ CONFIG_I2C_MPC=y
993# 997#
994# CONFIG_I2C_PCA_PLATFORM is not set 998# CONFIG_I2C_PCA_PLATFORM is not set
995# CONFIG_I2C_STUB is not set 999# CONFIG_I2C_STUB is not set
996
997#
998# Miscellaneous I2C Chip support
999#
1000# CONFIG_SENSORS_TSL2550 is not set
1001# CONFIG_I2C_DEBUG_CORE is not set 1000# CONFIG_I2C_DEBUG_CORE is not set
1002# CONFIG_I2C_DEBUG_ALGO is not set 1001# CONFIG_I2C_DEBUG_ALGO is not set
1003# CONFIG_I2C_DEBUG_BUS is not set 1002# CONFIG_I2C_DEBUG_BUS is not set
1004# CONFIG_I2C_DEBUG_CHIP is not set
1005CONFIG_SPI=y 1003CONFIG_SPI=y
1006# CONFIG_SPI_DEBUG is not set 1004# CONFIG_SPI_DEBUG is not set
1007CONFIG_SPI_MASTER=y 1005CONFIG_SPI_MASTER=y
@@ -1044,10 +1042,11 @@ CONFIG_HWMON=y
1044# CONFIG_SENSORS_ADM1029 is not set 1042# CONFIG_SENSORS_ADM1029 is not set
1045# CONFIG_SENSORS_ADM1031 is not set 1043# CONFIG_SENSORS_ADM1031 is not set
1046# CONFIG_SENSORS_ADM9240 is not set 1044# CONFIG_SENSORS_ADM9240 is not set
1045# CONFIG_SENSORS_ADT7411 is not set
1047# CONFIG_SENSORS_ADT7462 is not set 1046# CONFIG_SENSORS_ADT7462 is not set
1048# CONFIG_SENSORS_ADT7470 is not set 1047# CONFIG_SENSORS_ADT7470 is not set
1049# CONFIG_SENSORS_ADT7473 is not set
1050# CONFIG_SENSORS_ADT7475 is not set 1048# CONFIG_SENSORS_ADT7475 is not set
1049# CONFIG_SENSORS_ASC7621 is not set
1051# CONFIG_SENSORS_ATXP1 is not set 1050# CONFIG_SENSORS_ATXP1 is not set
1052# CONFIG_SENSORS_DS1621 is not set 1051# CONFIG_SENSORS_DS1621 is not set
1053# CONFIG_SENSORS_I5K_AMB is not set 1052# CONFIG_SENSORS_I5K_AMB is not set
@@ -1086,6 +1085,7 @@ CONFIG_HWMON=y
1086# CONFIG_SENSORS_SMSC47M192 is not set 1085# CONFIG_SENSORS_SMSC47M192 is not set
1087# CONFIG_SENSORS_SMSC47B397 is not set 1086# CONFIG_SENSORS_SMSC47B397 is not set
1088# CONFIG_SENSORS_ADS7828 is not set 1087# CONFIG_SENSORS_ADS7828 is not set
1088# CONFIG_SENSORS_AMC6821 is not set
1089# CONFIG_SENSORS_THMC50 is not set 1089# CONFIG_SENSORS_THMC50 is not set
1090# CONFIG_SENSORS_TMP401 is not set 1090# CONFIG_SENSORS_TMP401 is not set
1091# CONFIG_SENSORS_TMP421 is not set 1091# CONFIG_SENSORS_TMP421 is not set
@@ -1134,21 +1134,24 @@ CONFIG_SSB_POSSIBLE=y
1134# Multifunction device drivers 1134# Multifunction device drivers
1135# 1135#
1136# CONFIG_MFD_CORE is not set 1136# CONFIG_MFD_CORE is not set
1137# CONFIG_MFD_88PM860X is not set
1137# CONFIG_MFD_SM501 is not set 1138# CONFIG_MFD_SM501 is not set
1138# CONFIG_HTC_PASIC3 is not set 1139# CONFIG_HTC_PASIC3 is not set
1139# CONFIG_TWL4030_CORE is not set 1140# CONFIG_TWL4030_CORE is not set
1140# CONFIG_MFD_TMIO is not set 1141# CONFIG_MFD_TMIO is not set
1141# CONFIG_PMIC_DA903X is not set 1142# CONFIG_PMIC_DA903X is not set
1142# CONFIG_PMIC_ADP5520 is not set 1143# CONFIG_PMIC_ADP5520 is not set
1144# CONFIG_MFD_MAX8925 is not set
1143# CONFIG_MFD_WM8400 is not set 1145# CONFIG_MFD_WM8400 is not set
1144# CONFIG_MFD_WM831X is not set 1146# CONFIG_MFD_WM831X is not set
1145# CONFIG_MFD_WM8350_I2C is not set 1147# CONFIG_MFD_WM8350_I2C is not set
1148# CONFIG_MFD_WM8994 is not set
1146# CONFIG_MFD_PCF50633 is not set 1149# CONFIG_MFD_PCF50633 is not set
1147# CONFIG_MFD_MC13783 is not set 1150# CONFIG_MFD_MC13783 is not set
1148# CONFIG_AB3100_CORE is not set 1151# CONFIG_AB3100_CORE is not set
1149# CONFIG_EZX_PCAP is not set 1152# CONFIG_EZX_PCAP is not set
1150# CONFIG_MFD_88PM8607 is not set
1151# CONFIG_AB4500_CORE is not set 1153# CONFIG_AB4500_CORE is not set
1154# CONFIG_LPC_SCH is not set
1152# CONFIG_REGULATOR is not set 1155# CONFIG_REGULATOR is not set
1153# CONFIG_MEDIA_SUPPORT is not set 1156# CONFIG_MEDIA_SUPPORT is not set
1154 1157
@@ -1157,6 +1160,7 @@ CONFIG_SSB_POSSIBLE=y
1157# 1160#
1158# CONFIG_AGP is not set 1161# CONFIG_AGP is not set
1159CONFIG_VGA_ARB=y 1162CONFIG_VGA_ARB=y
1163CONFIG_VGA_ARB_MAX_GPUS=16
1160# CONFIG_DRM is not set 1164# CONFIG_DRM is not set
1161# CONFIG_VGASTATE is not set 1165# CONFIG_VGASTATE is not set
1162CONFIG_VIDEO_OUTPUT_CONTROL=m 1166CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1289,7 +1293,6 @@ CONFIG_USB_STORAGE=y
1289# CONFIG_USB_RIO500 is not set 1293# CONFIG_USB_RIO500 is not set
1290# CONFIG_USB_LEGOTOWER is not set 1294# CONFIG_USB_LEGOTOWER is not set
1291# CONFIG_USB_LCD is not set 1295# CONFIG_USB_LCD is not set
1292# CONFIG_USB_BERRY_CHARGE is not set
1293# CONFIG_USB_LED is not set 1296# CONFIG_USB_LED is not set
1294# CONFIG_USB_CYPRESS_CY7C63 is not set 1297# CONFIG_USB_CYPRESS_CY7C63 is not set
1295# CONFIG_USB_CYTHERM is not set 1298# CONFIG_USB_CYTHERM is not set
@@ -1302,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1302# CONFIG_USB_IOWARRIOR is not set 1305# CONFIG_USB_IOWARRIOR is not set
1303# CONFIG_USB_TEST is not set 1306# CONFIG_USB_TEST is not set
1304# CONFIG_USB_ISIGHTFW is not set 1307# CONFIG_USB_ISIGHTFW is not set
1305# CONFIG_USB_VST is not set
1306CONFIG_USB_GADGET=y 1308CONFIG_USB_GADGET=y
1307# CONFIG_USB_GADGET_DEBUG is not set 1309# CONFIG_USB_GADGET_DEBUG is not set
1308# CONFIG_USB_GADGET_DEBUG_FILES is not set 1310# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1341,6 +1343,7 @@ CONFIG_USB_ETH_RNDIS=y
1341# CONFIG_USB_MIDI_GADGET is not set 1343# CONFIG_USB_MIDI_GADGET is not set
1342# CONFIG_USB_G_PRINTER is not set 1344# CONFIG_USB_G_PRINTER is not set
1343# CONFIG_USB_CDC_COMPOSITE is not set 1345# CONFIG_USB_CDC_COMPOSITE is not set
1346# CONFIG_USB_G_NOKIA is not set
1344# CONFIG_USB_G_MULTI is not set 1347# CONFIG_USB_G_MULTI is not set
1345 1348
1346# 1349#
@@ -1511,6 +1514,7 @@ CONFIG_JFFS2_ZLIB=y
1511# CONFIG_JFFS2_LZO is not set 1514# CONFIG_JFFS2_LZO is not set
1512CONFIG_JFFS2_RTIME=y 1515CONFIG_JFFS2_RTIME=y
1513# CONFIG_JFFS2_RUBIN is not set 1516# CONFIG_JFFS2_RUBIN is not set
1517# CONFIG_LOGFS is not set
1514# CONFIG_CRAMFS is not set 1518# CONFIG_CRAMFS is not set
1515# CONFIG_SQUASHFS is not set 1519# CONFIG_SQUASHFS is not set
1516# CONFIG_VXFS_FS is not set 1520# CONFIG_VXFS_FS is not set
@@ -1537,6 +1541,7 @@ CONFIG_SUNRPC_GSS=y
1537CONFIG_RPCSEC_GSS_KRB5=y 1541CONFIG_RPCSEC_GSS_KRB5=y
1538# CONFIG_RPCSEC_GSS_SPKM3 is not set 1542# CONFIG_RPCSEC_GSS_SPKM3 is not set
1539# CONFIG_SMB_FS is not set 1543# CONFIG_SMB_FS is not set
1544# CONFIG_CEPH_FS is not set
1540# CONFIG_CIFS is not set 1545# CONFIG_CIFS is not set
1541# CONFIG_NCP_FS is not set 1546# CONFIG_NCP_FS is not set
1542# CONFIG_CODA_FS is not set 1547# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 633e61194603..cccb71393aca 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:16 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_IDS=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -735,6 +733,7 @@ CONFIG_ATA_SFF=y
735# CONFIG_PATA_IT821X is not set 733# CONFIG_PATA_IT821X is not set
736# CONFIG_PATA_IT8213 is not set 734# CONFIG_PATA_IT8213 is not set
737# CONFIG_PATA_JMICRON is not set 735# CONFIG_PATA_JMICRON is not set
736# CONFIG_PATA_LEGACY is not set
738# CONFIG_PATA_TRIFLEX is not set 737# CONFIG_PATA_TRIFLEX is not set
739# CONFIG_PATA_MARVELL is not set 738# CONFIG_PATA_MARVELL is not set
740# CONFIG_PATA_MPIIX is not set 739# CONFIG_PATA_MPIIX is not set
@@ -837,6 +836,7 @@ CONFIG_NET_PCI=y
837# CONFIG_PCNET32 is not set 836# CONFIG_PCNET32 is not set
838# CONFIG_AMD8111_ETH is not set 837# CONFIG_AMD8111_ETH is not set
839# CONFIG_ADAPTEC_STARFIRE is not set 838# CONFIG_ADAPTEC_STARFIRE is not set
839# CONFIG_KSZ884X_PCI is not set
840# CONFIG_B44 is not set 840# CONFIG_B44 is not set
841# CONFIG_FORCEDETH is not set 841# CONFIG_FORCEDETH is not set
842CONFIG_E100=y 842CONFIG_E100=y
@@ -889,6 +889,8 @@ CONFIG_NETDEV_10000=y
889# CONFIG_CHELSIO_T1 is not set 889# CONFIG_CHELSIO_T1 is not set
890CONFIG_CHELSIO_T3_DEPENDS=y 890CONFIG_CHELSIO_T3_DEPENDS=y
891# CONFIG_CHELSIO_T3 is not set 891# CONFIG_CHELSIO_T3 is not set
892CONFIG_CHELSIO_T4_DEPENDS=y
893# CONFIG_CHELSIO_T4 is not set
892# CONFIG_ENIC is not set 894# CONFIG_ENIC is not set
893# CONFIG_IXGBE is not set 895# CONFIG_IXGBE is not set
894# CONFIG_IXGB is not set 896# CONFIG_IXGB is not set
@@ -901,6 +903,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
901# CONFIG_MLX4_CORE is not set 903# CONFIG_MLX4_CORE is not set
902# CONFIG_TEHUTI is not set 904# CONFIG_TEHUTI is not set
903# CONFIG_BNX2X is not set 905# CONFIG_BNX2X is not set
906# CONFIG_QLCNIC is not set
904# CONFIG_QLGE is not set 907# CONFIG_QLGE is not set
905# CONFIG_SFC is not set 908# CONFIG_SFC is not set
906# CONFIG_BE2NET is not set 909# CONFIG_BE2NET is not set
@@ -996,6 +999,7 @@ CONFIG_SERIAL_CORE=y
996CONFIG_SERIAL_CORE_CONSOLE=y 999CONFIG_SERIAL_CORE_CONSOLE=y
997# CONFIG_SERIAL_JSM is not set 1000# CONFIG_SERIAL_JSM is not set
998# CONFIG_SERIAL_OF_PLATFORM is not set 1001# CONFIG_SERIAL_OF_PLATFORM is not set
1002# CONFIG_SERIAL_TIMBERDALE is not set
999# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1003# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1000CONFIG_UNIX98_PTYS=y 1004CONFIG_UNIX98_PTYS=y
1001# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1005# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1045,6 +1049,7 @@ CONFIG_I2C_HELPER_AUTO=y
1045CONFIG_I2C_MPC=y 1049CONFIG_I2C_MPC=y
1046# CONFIG_I2C_OCORES is not set 1050# CONFIG_I2C_OCORES is not set
1047# CONFIG_I2C_SIMTEC is not set 1051# CONFIG_I2C_SIMTEC is not set
1052# CONFIG_I2C_XILINX is not set
1048 1053
1049# 1054#
1050# External I2C/SMBus adapter drivers 1055# External I2C/SMBus adapter drivers
@@ -1058,15 +1063,9 @@ CONFIG_I2C_MPC=y
1058# 1063#
1059# CONFIG_I2C_PCA_PLATFORM is not set 1064# CONFIG_I2C_PCA_PLATFORM is not set
1060# CONFIG_I2C_STUB is not set 1065# CONFIG_I2C_STUB is not set
1061
1062#
1063# Miscellaneous I2C Chip support
1064#
1065# CONFIG_SENSORS_TSL2550 is not set
1066# CONFIG_I2C_DEBUG_CORE is not set 1066# CONFIG_I2C_DEBUG_CORE is not set
1067# CONFIG_I2C_DEBUG_ALGO is not set 1067# CONFIG_I2C_DEBUG_ALGO is not set
1068# CONFIG_I2C_DEBUG_BUS is not set 1068# CONFIG_I2C_DEBUG_BUS is not set
1069# CONFIG_I2C_DEBUG_CHIP is not set
1070CONFIG_SPI=y 1069CONFIG_SPI=y
1071# CONFIG_SPI_DEBUG is not set 1070# CONFIG_SPI_DEBUG is not set
1072CONFIG_SPI_MASTER=y 1071CONFIG_SPI_MASTER=y
@@ -1109,10 +1108,11 @@ CONFIG_HWMON=y
1109# CONFIG_SENSORS_ADM1029 is not set 1108# CONFIG_SENSORS_ADM1029 is not set
1110# CONFIG_SENSORS_ADM1031 is not set 1109# CONFIG_SENSORS_ADM1031 is not set
1111# CONFIG_SENSORS_ADM9240 is not set 1110# CONFIG_SENSORS_ADM9240 is not set
1111# CONFIG_SENSORS_ADT7411 is not set
1112# CONFIG_SENSORS_ADT7462 is not set 1112# CONFIG_SENSORS_ADT7462 is not set
1113# CONFIG_SENSORS_ADT7470 is not set 1113# CONFIG_SENSORS_ADT7470 is not set
1114# CONFIG_SENSORS_ADT7473 is not set
1115# CONFIG_SENSORS_ADT7475 is not set 1114# CONFIG_SENSORS_ADT7475 is not set
1115# CONFIG_SENSORS_ASC7621 is not set
1116# CONFIG_SENSORS_ATXP1 is not set 1116# CONFIG_SENSORS_ATXP1 is not set
1117# CONFIG_SENSORS_DS1621 is not set 1117# CONFIG_SENSORS_DS1621 is not set
1118# CONFIG_SENSORS_I5K_AMB is not set 1118# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1151,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1151# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1152# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1153# CONFIG_SENSORS_ADS7828 is not set
1154# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1155# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1156# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1157# CONFIG_SENSORS_TMP421 is not set
@@ -1199,21 +1200,24 @@ CONFIG_SSB_POSSIBLE=y
1199# Multifunction device drivers 1200# Multifunction device drivers
1200# 1201#
1201# CONFIG_MFD_CORE is not set 1202# CONFIG_MFD_CORE is not set
1203# CONFIG_MFD_88PM860X is not set
1202# CONFIG_MFD_SM501 is not set 1204# CONFIG_MFD_SM501 is not set
1203# CONFIG_HTC_PASIC3 is not set 1205# CONFIG_HTC_PASIC3 is not set
1204# CONFIG_TWL4030_CORE is not set 1206# CONFIG_TWL4030_CORE is not set
1205# CONFIG_MFD_TMIO is not set 1207# CONFIG_MFD_TMIO is not set
1206# CONFIG_PMIC_DA903X is not set 1208# CONFIG_PMIC_DA903X is not set
1207# CONFIG_PMIC_ADP5520 is not set 1209# CONFIG_PMIC_ADP5520 is not set
1210# CONFIG_MFD_MAX8925 is not set
1208# CONFIG_MFD_WM8400 is not set 1211# CONFIG_MFD_WM8400 is not set
1209# CONFIG_MFD_WM831X is not set 1212# CONFIG_MFD_WM831X is not set
1210# CONFIG_MFD_WM8350_I2C is not set 1213# CONFIG_MFD_WM8350_I2C is not set
1214# CONFIG_MFD_WM8994 is not set
1211# CONFIG_MFD_PCF50633 is not set 1215# CONFIG_MFD_PCF50633 is not set
1212# CONFIG_MFD_MC13783 is not set 1216# CONFIG_MFD_MC13783 is not set
1213# CONFIG_AB3100_CORE is not set 1217# CONFIG_AB3100_CORE is not set
1214# CONFIG_EZX_PCAP is not set 1218# CONFIG_EZX_PCAP is not set
1215# CONFIG_MFD_88PM8607 is not set
1216# CONFIG_AB4500_CORE is not set 1219# CONFIG_AB4500_CORE is not set
1220# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1221# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1222# CONFIG_MEDIA_SUPPORT is not set
1219 1223
@@ -1222,6 +1226,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1226#
1223# CONFIG_AGP is not set 1227# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1228CONFIG_VGA_ARB=y
1229CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1230# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1231# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1232CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1354,7 +1359,6 @@ CONFIG_USB_STORAGE=y
1354# CONFIG_USB_RIO500 is not set 1359# CONFIG_USB_RIO500 is not set
1355# CONFIG_USB_LEGOTOWER is not set 1360# CONFIG_USB_LEGOTOWER is not set
1356# CONFIG_USB_LCD is not set 1361# CONFIG_USB_LCD is not set
1357# CONFIG_USB_BERRY_CHARGE is not set
1358# CONFIG_USB_LED is not set 1362# CONFIG_USB_LED is not set
1359# CONFIG_USB_CYPRESS_CY7C63 is not set 1363# CONFIG_USB_CYPRESS_CY7C63 is not set
1360# CONFIG_USB_CYTHERM is not set 1364# CONFIG_USB_CYTHERM is not set
@@ -1367,7 +1371,6 @@ CONFIG_USB_STORAGE=y
1367# CONFIG_USB_IOWARRIOR is not set 1371# CONFIG_USB_IOWARRIOR is not set
1368# CONFIG_USB_TEST is not set 1372# CONFIG_USB_TEST is not set
1369# CONFIG_USB_ISIGHTFW is not set 1373# CONFIG_USB_ISIGHTFW is not set
1370# CONFIG_USB_VST is not set
1371CONFIG_USB_GADGET=y 1374CONFIG_USB_GADGET=y
1372# CONFIG_USB_GADGET_DEBUG is not set 1375# CONFIG_USB_GADGET_DEBUG is not set
1373# CONFIG_USB_GADGET_DEBUG_FILES is not set 1376# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1406,6 +1409,7 @@ CONFIG_USB_ETH_RNDIS=y
1406# CONFIG_USB_MIDI_GADGET is not set 1409# CONFIG_USB_MIDI_GADGET is not set
1407# CONFIG_USB_G_PRINTER is not set 1410# CONFIG_USB_G_PRINTER is not set
1408# CONFIG_USB_CDC_COMPOSITE is not set 1411# CONFIG_USB_CDC_COMPOSITE is not set
1412# CONFIG_USB_G_NOKIA is not set
1409# CONFIG_USB_G_MULTI is not set 1413# CONFIG_USB_G_MULTI is not set
1410 1414
1411# 1415#
@@ -1576,6 +1580,7 @@ CONFIG_JFFS2_ZLIB=y
1576# CONFIG_JFFS2_LZO is not set 1580# CONFIG_JFFS2_LZO is not set
1577CONFIG_JFFS2_RTIME=y 1581CONFIG_JFFS2_RTIME=y
1578# CONFIG_JFFS2_RUBIN is not set 1582# CONFIG_JFFS2_RUBIN is not set
1583# CONFIG_LOGFS is not set
1579# CONFIG_CRAMFS is not set 1584# CONFIG_CRAMFS is not set
1580# CONFIG_SQUASHFS is not set 1585# CONFIG_SQUASHFS is not set
1581# CONFIG_VXFS_FS is not set 1586# CONFIG_VXFS_FS is not set
@@ -1602,6 +1607,7 @@ CONFIG_SUNRPC_GSS=y
1602CONFIG_RPCSEC_GSS_KRB5=y 1607CONFIG_RPCSEC_GSS_KRB5=y
1603# CONFIG_RPCSEC_GSS_SPKM3 is not set 1608# CONFIG_RPCSEC_GSS_SPKM3 is not set
1604# CONFIG_SMB_FS is not set 1609# CONFIG_SMB_FS is not set
1610# CONFIG_CEPH_FS is not set
1605# CONFIG_CIFS is not set 1611# CONFIG_CIFS is not set
1606# CONFIG_NCP_FS is not set 1612# CONFIG_NCP_FS is not set
1607# CONFIG_CODA_FS is not set 1613# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 0b4262bd4917..74cb27aa9d17 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:17 2010 4# Mon Apr 19 23:16:41 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_MDIO=y 458CONFIG_OF_MDIO=y
@@ -492,6 +488,7 @@ CONFIG_MISC_DEVICES=y
492# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
493# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
494# CONFIG_ISL29003 is not set 490# CONFIG_ISL29003 is not set
491# CONFIG_SENSORS_TSL2550 is not set
495# CONFIG_DS1682 is not set 492# CONFIG_DS1682 is not set
496# CONFIG_C2PORT is not set 493# CONFIG_C2PORT is not set
497 494
@@ -509,6 +506,7 @@ CONFIG_HAVE_IDE=y
509# 506#
510# SCSI device support 507# SCSI device support
511# 508#
509CONFIG_SCSI_MOD=y
512# CONFIG_RAID_ATTRS is not set 510# CONFIG_RAID_ATTRS is not set
513CONFIG_SCSI=y 511CONFIG_SCSI=y
514CONFIG_SCSI_DMA=y 512CONFIG_SCSI_DMA=y
@@ -693,6 +691,8 @@ CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 691# CONFIG_CHELSIO_T1 is not set
694CONFIG_CHELSIO_T3_DEPENDS=y 692CONFIG_CHELSIO_T3_DEPENDS=y
695# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
694CONFIG_CHELSIO_T4_DEPENDS=y
695# CONFIG_CHELSIO_T4 is not set
696# CONFIG_ENIC is not set 696# CONFIG_ENIC is not set
697# CONFIG_IXGBE is not set 697# CONFIG_IXGBE is not set
698# CONFIG_IXGB is not set 698# CONFIG_IXGB is not set
@@ -705,6 +705,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
705# CONFIG_MLX4_CORE is not set 705# CONFIG_MLX4_CORE is not set
706# CONFIG_TEHUTI is not set 706# CONFIG_TEHUTI is not set
707# CONFIG_BNX2X is not set 707# CONFIG_BNX2X is not set
708# CONFIG_QLCNIC is not set
708# CONFIG_QLGE is not set 709# CONFIG_QLGE is not set
709# CONFIG_SFC is not set 710# CONFIG_SFC is not set
710# CONFIG_BE2NET is not set 711# CONFIG_BE2NET is not set
@@ -790,6 +791,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
790# CONFIG_SERIAL_JSM is not set 791# CONFIG_SERIAL_JSM is not set
791# CONFIG_SERIAL_OF_PLATFORM is not set 792# CONFIG_SERIAL_OF_PLATFORM is not set
792# CONFIG_SERIAL_QE is not set 793# CONFIG_SERIAL_QE is not set
794# CONFIG_SERIAL_TIMBERDALE is not set
793# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 795# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
794CONFIG_UNIX98_PTYS=y 796CONFIG_UNIX98_PTYS=y
795# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 797# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -839,6 +841,7 @@ CONFIG_I2C_HELPER_AUTO=y
839CONFIG_I2C_MPC=y 841CONFIG_I2C_MPC=y
840# CONFIG_I2C_OCORES is not set 842# CONFIG_I2C_OCORES is not set
841# CONFIG_I2C_SIMTEC is not set 843# CONFIG_I2C_SIMTEC is not set
844# CONFIG_I2C_XILINX is not set
842 845
843# 846#
844# External I2C/SMBus adapter drivers 847# External I2C/SMBus adapter drivers
@@ -851,15 +854,9 @@ CONFIG_I2C_MPC=y
851# 854#
852# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
853# CONFIG_I2C_STUB is not set 856# CONFIG_I2C_STUB is not set
854
855#
856# Miscellaneous I2C Chip support
857#
858# CONFIG_SENSORS_TSL2550 is not set
859# CONFIG_I2C_DEBUG_CORE is not set 857# CONFIG_I2C_DEBUG_CORE is not set
860# CONFIG_I2C_DEBUG_ALGO is not set 858# CONFIG_I2C_DEBUG_ALGO is not set
861# CONFIG_I2C_DEBUG_BUS is not set 859# CONFIG_I2C_DEBUG_BUS is not set
862# CONFIG_I2C_DEBUG_CHIP is not set
863# CONFIG_SPI is not set 860# CONFIG_SPI is not set
864 861
865# 862#
@@ -885,10 +882,11 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
886# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
887# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7411 is not set
888# CONFIG_SENSORS_ADT7462 is not set 886# CONFIG_SENSORS_ADT7462 is not set
889# CONFIG_SENSORS_ADT7470 is not set 887# CONFIG_SENSORS_ADT7470 is not set
890# CONFIG_SENSORS_ADT7473 is not set
891# CONFIG_SENSORS_ADT7475 is not set 888# CONFIG_SENSORS_ADT7475 is not set
889# CONFIG_SENSORS_ASC7621 is not set
892# CONFIG_SENSORS_ATXP1 is not set 890# CONFIG_SENSORS_ATXP1 is not set
893# CONFIG_SENSORS_DS1621 is not set 891# CONFIG_SENSORS_DS1621 is not set
894# CONFIG_SENSORS_I5K_AMB is not set 892# CONFIG_SENSORS_I5K_AMB is not set
@@ -925,6 +923,7 @@ CONFIG_HWMON=y
925# CONFIG_SENSORS_SMSC47M192 is not set 923# CONFIG_SENSORS_SMSC47M192 is not set
926# CONFIG_SENSORS_SMSC47B397 is not set 924# CONFIG_SENSORS_SMSC47B397 is not set
927# CONFIG_SENSORS_ADS7828 is not set 925# CONFIG_SENSORS_ADS7828 is not set
926# CONFIG_SENSORS_AMC6821 is not set
928# CONFIG_SENSORS_THMC50 is not set 927# CONFIG_SENSORS_THMC50 is not set
929# CONFIG_SENSORS_TMP401 is not set 928# CONFIG_SENSORS_TMP401 is not set
930# CONFIG_SENSORS_TMP421 is not set 929# CONFIG_SENSORS_TMP421 is not set
@@ -967,18 +966,21 @@ CONFIG_SSB_POSSIBLE=y
967# Multifunction device drivers 966# Multifunction device drivers
968# 967#
969# CONFIG_MFD_CORE is not set 968# CONFIG_MFD_CORE is not set
969# CONFIG_MFD_88PM860X is not set
970# CONFIG_MFD_SM501 is not set 970# CONFIG_MFD_SM501 is not set
971# CONFIG_HTC_PASIC3 is not set 971# CONFIG_HTC_PASIC3 is not set
972# CONFIG_TWL4030_CORE is not set 972# CONFIG_TWL4030_CORE is not set
973# CONFIG_MFD_TMIO is not set 973# CONFIG_MFD_TMIO is not set
974# CONFIG_PMIC_DA903X is not set 974# CONFIG_PMIC_DA903X is not set
975# CONFIG_PMIC_ADP5520 is not set 975# CONFIG_PMIC_ADP5520 is not set
976# CONFIG_MFD_MAX8925 is not set
976# CONFIG_MFD_WM8400 is not set 977# CONFIG_MFD_WM8400 is not set
977# CONFIG_MFD_WM831X is not set 978# CONFIG_MFD_WM831X is not set
978# CONFIG_MFD_WM8350_I2C is not set 979# CONFIG_MFD_WM8350_I2C is not set
980# CONFIG_MFD_WM8994 is not set
979# CONFIG_MFD_PCF50633 is not set 981# CONFIG_MFD_PCF50633 is not set
980# CONFIG_AB3100_CORE is not set 982# CONFIG_AB3100_CORE is not set
981# CONFIG_MFD_88PM8607 is not set 983# CONFIG_LPC_SCH is not set
982# CONFIG_REGULATOR is not set 984# CONFIG_REGULATOR is not set
983# CONFIG_MEDIA_SUPPORT is not set 985# CONFIG_MEDIA_SUPPORT is not set
984 986
@@ -987,6 +989,7 @@ CONFIG_SSB_POSSIBLE=y
987# 989#
988# CONFIG_AGP is not set 990# CONFIG_AGP is not set
989CONFIG_VGA_ARB=y 991CONFIG_VGA_ARB=y
992CONFIG_VGA_ARB_MAX_GPUS=16
990# CONFIG_DRM is not set 993# CONFIG_DRM is not set
991# CONFIG_VGASTATE is not set 994# CONFIG_VGASTATE is not set
992CONFIG_VIDEO_OUTPUT_CONTROL=m 995CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1171,6 +1174,7 @@ CONFIG_MISC_FILESYSTEMS=y
1171# CONFIG_BEFS_FS is not set 1174# CONFIG_BEFS_FS is not set
1172# CONFIG_BFS_FS is not set 1175# CONFIG_BFS_FS is not set
1173# CONFIG_EFS_FS is not set 1176# CONFIG_EFS_FS is not set
1177# CONFIG_LOGFS is not set
1174# CONFIG_CRAMFS is not set 1178# CONFIG_CRAMFS is not set
1175# CONFIG_SQUASHFS is not set 1179# CONFIG_SQUASHFS is not set
1176# CONFIG_VXFS_FS is not set 1180# CONFIG_VXFS_FS is not set
@@ -1197,6 +1201,7 @@ CONFIG_SUNRPC_GSS=y
1197CONFIG_RPCSEC_GSS_KRB5=y 1201CONFIG_RPCSEC_GSS_KRB5=y
1198# CONFIG_RPCSEC_GSS_SPKM3 is not set 1202# CONFIG_RPCSEC_GSS_SPKM3 is not set
1199# CONFIG_SMB_FS is not set 1203# CONFIG_SMB_FS is not set
1204# CONFIG_CEPH_FS is not set
1200# CONFIG_CIFS is not set 1205# CONFIG_CIFS is not set
1201# CONFIG_NCP_FS is not set 1206# CONFIG_NCP_FS is not set
1202# CONFIG_CODA_FS is not set 1207# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 155af009f7b5..10412a9c7f90 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:18 2010 4# Mon Apr 19 23:16:42 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_SPI=y 458CONFIG_OF_SPI=y
@@ -494,6 +490,7 @@ CONFIG_MISC_DEVICES=y
494# CONFIG_ENCLOSURE_SERVICES is not set 490# CONFIG_ENCLOSURE_SERVICES is not set
495# CONFIG_HP_ILO is not set 491# CONFIG_HP_ILO is not set
496# CONFIG_ISL29003 is not set 492# CONFIG_ISL29003 is not set
493# CONFIG_SENSORS_TSL2550 is not set
497# CONFIG_DS1682 is not set 494# CONFIG_DS1682 is not set
498# CONFIG_TI_DAC7512 is not set 495# CONFIG_TI_DAC7512 is not set
499# CONFIG_C2PORT is not set 496# CONFIG_C2PORT is not set
@@ -514,6 +511,7 @@ CONFIG_HAVE_IDE=y
514# 511#
515# SCSI device support 512# SCSI device support
516# 513#
514CONFIG_SCSI_MOD=y
517# CONFIG_RAID_ATTRS is not set 515# CONFIG_RAID_ATTRS is not set
518CONFIG_SCSI=y 516CONFIG_SCSI=y
519CONFIG_SCSI_DMA=y 517CONFIG_SCSI_DMA=y
@@ -700,6 +698,8 @@ CONFIG_NETDEV_10000=y
700# CONFIG_CHELSIO_T1 is not set 698# CONFIG_CHELSIO_T1 is not set
701CONFIG_CHELSIO_T3_DEPENDS=y 699CONFIG_CHELSIO_T3_DEPENDS=y
702# CONFIG_CHELSIO_T3 is not set 700# CONFIG_CHELSIO_T3 is not set
701CONFIG_CHELSIO_T4_DEPENDS=y
702# CONFIG_CHELSIO_T4 is not set
703# CONFIG_ENIC is not set 703# CONFIG_ENIC is not set
704# CONFIG_IXGBE is not set 704# CONFIG_IXGBE is not set
705# CONFIG_IXGB is not set 705# CONFIG_IXGB is not set
@@ -712,6 +712,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
712# CONFIG_MLX4_CORE is not set 712# CONFIG_MLX4_CORE is not set
713# CONFIG_TEHUTI is not set 713# CONFIG_TEHUTI is not set
714# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
715# CONFIG_QLCNIC is not set
715# CONFIG_QLGE is not set 716# CONFIG_QLGE is not set
716# CONFIG_SFC is not set 717# CONFIG_SFC is not set
717# CONFIG_BE2NET is not set 718# CONFIG_BE2NET is not set
@@ -808,6 +809,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
808# CONFIG_SERIAL_JSM is not set 809# CONFIG_SERIAL_JSM is not set
809# CONFIG_SERIAL_OF_PLATFORM is not set 810# CONFIG_SERIAL_OF_PLATFORM is not set
810# CONFIG_SERIAL_QE is not set 811# CONFIG_SERIAL_QE is not set
812# CONFIG_SERIAL_TIMBERDALE is not set
811# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 813# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
812CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
813# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -859,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
859CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
860# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
861# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
862 865
863# 866#
864# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -872,15 +875,9 @@ CONFIG_I2C_MPC=y
872# 875#
873# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884CONFIG_SPI=y 881CONFIG_SPI=y
885CONFIG_SPI_MASTER=y 882CONFIG_SPI_MASTER=y
886 883
@@ -922,10 +919,11 @@ CONFIG_HWMON=y
922# CONFIG_SENSORS_ADM1029 is not set 919# CONFIG_SENSORS_ADM1029 is not set
923# CONFIG_SENSORS_ADM1031 is not set 920# CONFIG_SENSORS_ADM1031 is not set
924# CONFIG_SENSORS_ADM9240 is not set 921# CONFIG_SENSORS_ADM9240 is not set
922# CONFIG_SENSORS_ADT7411 is not set
925# CONFIG_SENSORS_ADT7462 is not set 923# CONFIG_SENSORS_ADT7462 is not set
926# CONFIG_SENSORS_ADT7470 is not set 924# CONFIG_SENSORS_ADT7470 is not set
927# CONFIG_SENSORS_ADT7473 is not set
928# CONFIG_SENSORS_ADT7475 is not set 925# CONFIG_SENSORS_ADT7475 is not set
926# CONFIG_SENSORS_ASC7621 is not set
929# CONFIG_SENSORS_ATXP1 is not set 927# CONFIG_SENSORS_ATXP1 is not set
930# CONFIG_SENSORS_DS1621 is not set 928# CONFIG_SENSORS_DS1621 is not set
931# CONFIG_SENSORS_I5K_AMB is not set 929# CONFIG_SENSORS_I5K_AMB is not set
@@ -964,6 +962,7 @@ CONFIG_HWMON=y
964# CONFIG_SENSORS_SMSC47M192 is not set 962# CONFIG_SENSORS_SMSC47M192 is not set
965# CONFIG_SENSORS_SMSC47B397 is not set 963# CONFIG_SENSORS_SMSC47B397 is not set
966# CONFIG_SENSORS_ADS7828 is not set 964# CONFIG_SENSORS_ADS7828 is not set
965# CONFIG_SENSORS_AMC6821 is not set
967# CONFIG_SENSORS_THMC50 is not set 966# CONFIG_SENSORS_THMC50 is not set
968# CONFIG_SENSORS_TMP401 is not set 967# CONFIG_SENSORS_TMP401 is not set
969# CONFIG_SENSORS_TMP421 is not set 968# CONFIG_SENSORS_TMP421 is not set
@@ -1012,21 +1011,24 @@ CONFIG_SSB_POSSIBLE=y
1012# Multifunction device drivers 1011# Multifunction device drivers
1013# 1012#
1014# CONFIG_MFD_CORE is not set 1013# CONFIG_MFD_CORE is not set
1014# CONFIG_MFD_88PM860X is not set
1015# CONFIG_MFD_SM501 is not set 1015# CONFIG_MFD_SM501 is not set
1016# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_TWL4030_CORE is not set 1017# CONFIG_TWL4030_CORE is not set
1018# CONFIG_MFD_TMIO is not set 1018# CONFIG_MFD_TMIO is not set
1019# CONFIG_PMIC_DA903X is not set 1019# CONFIG_PMIC_DA903X is not set
1020# CONFIG_PMIC_ADP5520 is not set 1020# CONFIG_PMIC_ADP5520 is not set
1021# CONFIG_MFD_MAX8925 is not set
1021# CONFIG_MFD_WM8400 is not set 1022# CONFIG_MFD_WM8400 is not set
1022# CONFIG_MFD_WM831X is not set 1023# CONFIG_MFD_WM831X is not set
1023# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
1025# CONFIG_MFD_WM8994 is not set
1024# CONFIG_MFD_PCF50633 is not set 1026# CONFIG_MFD_PCF50633 is not set
1025# CONFIG_MFD_MC13783 is not set 1027# CONFIG_MFD_MC13783 is not set
1026# CONFIG_AB3100_CORE is not set 1028# CONFIG_AB3100_CORE is not set
1027# CONFIG_EZX_PCAP is not set 1029# CONFIG_EZX_PCAP is not set
1028# CONFIG_MFD_88PM8607 is not set
1029# CONFIG_AB4500_CORE is not set 1030# CONFIG_AB4500_CORE is not set
1031# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1032# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1033# CONFIG_MEDIA_SUPPORT is not set
1032 1034
@@ -1035,6 +1037,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1037#
1036# CONFIG_AGP is not set 1038# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1039CONFIG_VGA_ARB=y
1040CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1041# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1042# CONFIG_VGASTATE is not set
1040CONFIG_VIDEO_OUTPUT_CONTROL=m 1043CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1166,7 +1169,6 @@ CONFIG_USB_STORAGE=y
1166# CONFIG_USB_RIO500 is not set 1169# CONFIG_USB_RIO500 is not set
1167# CONFIG_USB_LEGOTOWER is not set 1170# CONFIG_USB_LEGOTOWER is not set
1168# CONFIG_USB_LCD is not set 1171# CONFIG_USB_LCD is not set
1169# CONFIG_USB_BERRY_CHARGE is not set
1170# CONFIG_USB_LED is not set 1172# CONFIG_USB_LED is not set
1171# CONFIG_USB_CYPRESS_CY7C63 is not set 1173# CONFIG_USB_CYPRESS_CY7C63 is not set
1172# CONFIG_USB_CYTHERM is not set 1174# CONFIG_USB_CYTHERM is not set
@@ -1179,7 +1181,6 @@ CONFIG_USB_STORAGE=y
1179# CONFIG_USB_IOWARRIOR is not set 1181# CONFIG_USB_IOWARRIOR is not set
1180# CONFIG_USB_TEST is not set 1182# CONFIG_USB_TEST is not set
1181# CONFIG_USB_ISIGHTFW is not set 1183# CONFIG_USB_ISIGHTFW is not set
1182# CONFIG_USB_VST is not set
1183# CONFIG_USB_GADGET is not set 1184# CONFIG_USB_GADGET is not set
1184 1185
1185# 1186#
@@ -1204,8 +1205,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1204# 1205#
1205# CONFIG_MMC_SDHCI is not set 1206# CONFIG_MMC_SDHCI is not set
1206# CONFIG_MMC_WBSD is not set 1207# CONFIG_MMC_WBSD is not set
1207# CONFIG_MMC_AT91 is not set
1208# CONFIG_MMC_ATMELMCI is not set
1209# CONFIG_MMC_TIFM_SD is not set 1208# CONFIG_MMC_TIFM_SD is not set
1210CONFIG_MMC_SPI=y 1209CONFIG_MMC_SPI=y
1211# CONFIG_MMC_CB710 is not set 1210# CONFIG_MMC_CB710 is not set
@@ -1298,6 +1297,7 @@ CONFIG_MISC_FILESYSTEMS=y
1298# CONFIG_BEFS_FS is not set 1297# CONFIG_BEFS_FS is not set
1299# CONFIG_BFS_FS is not set 1298# CONFIG_BFS_FS is not set
1300# CONFIG_EFS_FS is not set 1299# CONFIG_EFS_FS is not set
1300# CONFIG_LOGFS is not set
1301# CONFIG_CRAMFS is not set 1301# CONFIG_CRAMFS is not set
1302# CONFIG_SQUASHFS is not set 1302# CONFIG_SQUASHFS is not set
1303# CONFIG_VXFS_FS is not set 1303# CONFIG_VXFS_FS is not set
@@ -1324,6 +1324,7 @@ CONFIG_SUNRPC_GSS=y
1324CONFIG_RPCSEC_GSS_KRB5=y 1324CONFIG_RPCSEC_GSS_KRB5=y
1325# CONFIG_RPCSEC_GSS_SPKM3 is not set 1325# CONFIG_RPCSEC_GSS_SPKM3 is not set
1326# CONFIG_SMB_FS is not set 1326# CONFIG_SMB_FS is not set
1327# CONFIG_CEPH_FS is not set
1327# CONFIG_CIFS is not set 1328# CONFIG_CIFS is not set
1328# CONFIG_NCP_FS is not set 1329# CONFIG_NCP_FS is not set
1329# CONFIG_CODA_FS is not set 1330# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index ff45f4904488..7b31fc3f3545 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:19 2010 4# Mon Apr 19 23:16:43 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -644,6 +641,7 @@ CONFIG_IDE_PROC_FS=y
644# 641#
645# SCSI device support 642# SCSI device support
646# 643#
644CONFIG_SCSI_MOD=y
647# CONFIG_RAID_ATTRS is not set 645# CONFIG_RAID_ATTRS is not set
648CONFIG_SCSI=y 646CONFIG_SCSI=y
649CONFIG_SCSI_DMA=y 647CONFIG_SCSI_DMA=y
@@ -767,6 +765,7 @@ CONFIG_SATA_SIL=y
767# CONFIG_PATA_IT821X is not set 765# CONFIG_PATA_IT821X is not set
768# CONFIG_PATA_IT8213 is not set 766# CONFIG_PATA_IT8213 is not set
769# CONFIG_PATA_JMICRON is not set 767# CONFIG_PATA_JMICRON is not set
768# CONFIG_PATA_LEGACY is not set
770# CONFIG_PATA_TRIFLEX is not set 769# CONFIG_PATA_TRIFLEX is not set
771# CONFIG_PATA_MARVELL is not set 770# CONFIG_PATA_MARVELL is not set
772# CONFIG_PATA_MPIIX is not set 771# CONFIG_PATA_MPIIX is not set
@@ -880,6 +879,8 @@ CONFIG_NETDEV_10000=y
880# CONFIG_CHELSIO_T1 is not set 879# CONFIG_CHELSIO_T1 is not set
881CONFIG_CHELSIO_T3_DEPENDS=y 880CONFIG_CHELSIO_T3_DEPENDS=y
882# CONFIG_CHELSIO_T3 is not set 881# CONFIG_CHELSIO_T3 is not set
882CONFIG_CHELSIO_T4_DEPENDS=y
883# CONFIG_CHELSIO_T4 is not set
883# CONFIG_ENIC is not set 884# CONFIG_ENIC is not set
884# CONFIG_IXGBE is not set 885# CONFIG_IXGBE is not set
885# CONFIG_IXGB is not set 886# CONFIG_IXGB is not set
@@ -892,6 +893,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
892# CONFIG_MLX4_CORE is not set 893# CONFIG_MLX4_CORE is not set
893# CONFIG_TEHUTI is not set 894# CONFIG_TEHUTI is not set
894# CONFIG_BNX2X is not set 895# CONFIG_BNX2X is not set
896# CONFIG_QLCNIC is not set
895# CONFIG_QLGE is not set 897# CONFIG_QLGE is not set
896# CONFIG_SFC is not set 898# CONFIG_SFC is not set
897# CONFIG_BE2NET is not set 899# CONFIG_BE2NET is not set
@@ -966,6 +968,7 @@ CONFIG_SERIAL_CORE=y
966CONFIG_SERIAL_CORE_CONSOLE=y 968CONFIG_SERIAL_CORE_CONSOLE=y
967# CONFIG_SERIAL_JSM is not set 969# CONFIG_SERIAL_JSM is not set
968# CONFIG_SERIAL_OF_PLATFORM is not set 970# CONFIG_SERIAL_OF_PLATFORM is not set
971# CONFIG_SERIAL_TIMBERDALE is not set
969# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 972# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
970CONFIG_UNIX98_PTYS=y 973CONFIG_UNIX98_PTYS=y
971# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 974# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1015,6 +1018,7 @@ CONFIG_I2C_HELPER_AUTO=y
1015CONFIG_I2C_MPC=y 1018CONFIG_I2C_MPC=y
1016# CONFIG_I2C_OCORES is not set 1019# CONFIG_I2C_OCORES is not set
1017# CONFIG_I2C_SIMTEC is not set 1020# CONFIG_I2C_SIMTEC is not set
1021# CONFIG_I2C_XILINX is not set
1018 1022
1019# 1023#
1020# External I2C/SMBus adapter drivers 1024# External I2C/SMBus adapter drivers
@@ -1028,15 +1032,9 @@ CONFIG_I2C_MPC=y
1028# 1032#
1029# CONFIG_I2C_PCA_PLATFORM is not set 1033# CONFIG_I2C_PCA_PLATFORM is not set
1030# CONFIG_I2C_STUB is not set 1034# CONFIG_I2C_STUB is not set
1031
1032#
1033# Miscellaneous I2C Chip support
1034#
1035# CONFIG_SENSORS_TSL2550 is not set
1036# CONFIG_I2C_DEBUG_CORE is not set 1035# CONFIG_I2C_DEBUG_CORE is not set
1037# CONFIG_I2C_DEBUG_ALGO is not set 1036# CONFIG_I2C_DEBUG_ALGO is not set
1038# CONFIG_I2C_DEBUG_BUS is not set 1037# CONFIG_I2C_DEBUG_BUS is not set
1039# CONFIG_I2C_DEBUG_CHIP is not set
1040CONFIG_SPI=y 1038CONFIG_SPI=y
1041CONFIG_SPI_MASTER=y 1039CONFIG_SPI_MASTER=y
1042 1040
@@ -1095,21 +1093,24 @@ CONFIG_SSB_POSSIBLE=y
1095# Multifunction device drivers 1093# Multifunction device drivers
1096# 1094#
1097# CONFIG_MFD_CORE is not set 1095# CONFIG_MFD_CORE is not set
1096# CONFIG_MFD_88PM860X is not set
1098# CONFIG_MFD_SM501 is not set 1097# CONFIG_MFD_SM501 is not set
1099# CONFIG_HTC_PASIC3 is not set 1098# CONFIG_HTC_PASIC3 is not set
1100# CONFIG_TWL4030_CORE is not set 1099# CONFIG_TWL4030_CORE is not set
1101# CONFIG_MFD_TMIO is not set 1100# CONFIG_MFD_TMIO is not set
1102# CONFIG_PMIC_DA903X is not set 1101# CONFIG_PMIC_DA903X is not set
1103# CONFIG_PMIC_ADP5520 is not set 1102# CONFIG_PMIC_ADP5520 is not set
1103# CONFIG_MFD_MAX8925 is not set
1104# CONFIG_MFD_WM8400 is not set 1104# CONFIG_MFD_WM8400 is not set
1105# CONFIG_MFD_WM831X is not set 1105# CONFIG_MFD_WM831X is not set
1106# CONFIG_MFD_WM8350_I2C is not set 1106# CONFIG_MFD_WM8350_I2C is not set
1107# CONFIG_MFD_WM8994 is not set
1107# CONFIG_MFD_PCF50633 is not set 1108# CONFIG_MFD_PCF50633 is not set
1108# CONFIG_MFD_MC13783 is not set 1109# CONFIG_MFD_MC13783 is not set
1109# CONFIG_AB3100_CORE is not set 1110# CONFIG_AB3100_CORE is not set
1110# CONFIG_EZX_PCAP is not set 1111# CONFIG_EZX_PCAP is not set
1111# CONFIG_MFD_88PM8607 is not set
1112# CONFIG_AB4500_CORE is not set 1112# CONFIG_AB4500_CORE is not set
1113# CONFIG_LPC_SCH is not set
1113# CONFIG_REGULATOR is not set 1114# CONFIG_REGULATOR is not set
1114# CONFIG_MEDIA_SUPPORT is not set 1115# CONFIG_MEDIA_SUPPORT is not set
1115 1116
@@ -1118,6 +1119,7 @@ CONFIG_SSB_POSSIBLE=y
1118# 1119#
1119# CONFIG_AGP is not set 1120# CONFIG_AGP is not set
1120CONFIG_VGA_ARB=y 1121CONFIG_VGA_ARB=y
1122CONFIG_VGA_ARB_MAX_GPUS=16
1121# CONFIG_DRM is not set 1123# CONFIG_DRM is not set
1122# CONFIG_VGASTATE is not set 1124# CONFIG_VGASTATE is not set
1123CONFIG_VIDEO_OUTPUT_CONTROL=m 1125CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1222,7 +1224,6 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_RIO500 is not set 1224# CONFIG_USB_RIO500 is not set
1223# CONFIG_USB_LEGOTOWER is not set 1225# CONFIG_USB_LEGOTOWER is not set
1224# CONFIG_USB_LCD is not set 1226# CONFIG_USB_LCD is not set
1225# CONFIG_USB_BERRY_CHARGE is not set
1226# CONFIG_USB_LED is not set 1227# CONFIG_USB_LED is not set
1227# CONFIG_USB_CYPRESS_CY7C63 is not set 1228# CONFIG_USB_CYPRESS_CY7C63 is not set
1228# CONFIG_USB_CYTHERM is not set 1229# CONFIG_USB_CYTHERM is not set
@@ -1235,7 +1236,6 @@ CONFIG_USB_STORAGE=y
1235# CONFIG_USB_IOWARRIOR is not set 1236# CONFIG_USB_IOWARRIOR is not set
1236# CONFIG_USB_TEST is not set 1237# CONFIG_USB_TEST is not set
1237# CONFIG_USB_ISIGHTFW is not set 1238# CONFIG_USB_ISIGHTFW is not set
1238# CONFIG_USB_VST is not set
1239# CONFIG_USB_GADGET is not set 1239# CONFIG_USB_GADGET is not set
1240 1240
1241# 1241#
@@ -1399,6 +1399,7 @@ CONFIG_MISC_FILESYSTEMS=y
1399# CONFIG_BFS_FS is not set 1399# CONFIG_BFS_FS is not set
1400# CONFIG_EFS_FS is not set 1400# CONFIG_EFS_FS is not set
1401# CONFIG_JFFS2_FS is not set 1401# CONFIG_JFFS2_FS is not set
1402# CONFIG_LOGFS is not set
1402# CONFIG_CRAMFS is not set 1403# CONFIG_CRAMFS is not set
1403# CONFIG_SQUASHFS is not set 1404# CONFIG_SQUASHFS is not set
1404# CONFIG_VXFS_FS is not set 1405# CONFIG_VXFS_FS is not set
@@ -1425,6 +1426,7 @@ CONFIG_SUNRPC_GSS=y
1425CONFIG_RPCSEC_GSS_KRB5=y 1426CONFIG_RPCSEC_GSS_KRB5=y
1426# CONFIG_RPCSEC_GSS_SPKM3 is not set 1427# CONFIG_RPCSEC_GSS_SPKM3 is not set
1427# CONFIG_SMB_FS is not set 1428# CONFIG_SMB_FS is not set
1429# CONFIG_CEPH_FS is not set
1428# CONFIG_CIFS is not set 1430# CONFIG_CIFS is not set
1429# CONFIG_NCP_FS is not set 1431# CONFIG_NCP_FS is not set
1430# CONFIG_CODA_FS is not set 1432# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 28d8ff3e8fca..41401a9b355e 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:20 2010 4# Mon Apr 19 23:16:44 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600CONFIG_SCSI=y 598CONFIG_SCSI=y
601CONFIG_SCSI_DMA=y 599CONFIG_SCSI_DMA=y
@@ -756,6 +754,8 @@ CONFIG_NETDEV_10000=y
756# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
757CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
758# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
759# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
760# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -768,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
768# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
769# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
770# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
771# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
772# CONFIG_SFC is not set 773# CONFIG_SFC is not set
773# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -842,6 +843,7 @@ CONFIG_SERIAL_CORE=y
842CONFIG_SERIAL_CORE_CONSOLE=y 843CONFIG_SERIAL_CORE_CONSOLE=y
843# CONFIG_SERIAL_JSM is not set 844# CONFIG_SERIAL_JSM is not set
844# CONFIG_SERIAL_OF_PLATFORM is not set 845# CONFIG_SERIAL_OF_PLATFORM is not set
846# CONFIG_SERIAL_TIMBERDALE is not set
845# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 847# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
846CONFIG_UNIX98_PTYS=y 848CONFIG_UNIX98_PTYS=y
847# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 849# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -891,6 +893,7 @@ CONFIG_I2C_HELPER_AUTO=y
891CONFIG_I2C_MPC=y 893CONFIG_I2C_MPC=y
892# CONFIG_I2C_OCORES is not set 894# CONFIG_I2C_OCORES is not set
893# CONFIG_I2C_SIMTEC is not set 895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_XILINX is not set
894 897
895# 898#
896# External I2C/SMBus adapter drivers 899# External I2C/SMBus adapter drivers
@@ -904,15 +907,9 @@ CONFIG_I2C_MPC=y
904# 907#
905# CONFIG_I2C_PCA_PLATFORM is not set 908# CONFIG_I2C_PCA_PLATFORM is not set
906# CONFIG_I2C_STUB is not set 909# CONFIG_I2C_STUB is not set
907
908#
909# Miscellaneous I2C Chip support
910#
911# CONFIG_SENSORS_TSL2550 is not set
912# CONFIG_I2C_DEBUG_CORE is not set 910# CONFIG_I2C_DEBUG_CORE is not set
913# CONFIG_I2C_DEBUG_ALGO is not set 911# CONFIG_I2C_DEBUG_ALGO is not set
914# CONFIG_I2C_DEBUG_BUS is not set 912# CONFIG_I2C_DEBUG_BUS is not set
915# CONFIG_I2C_DEBUG_CHIP is not set
916CONFIG_SPI=y 913CONFIG_SPI=y
917CONFIG_SPI_MASTER=y 914CONFIG_SPI_MASTER=y
918 915
@@ -971,21 +968,24 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 968# Multifunction device drivers
972# 969#
973# CONFIG_MFD_CORE is not set 970# CONFIG_MFD_CORE is not set
971# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 972# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 973# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 974# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 975# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 976# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 977# CONFIG_PMIC_ADP5520 is not set
978# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 979# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 980# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 983# CONFIG_MFD_PCF50633 is not set
984# CONFIG_MFD_MC13783 is not set 984# CONFIG_MFD_MC13783 is not set
985# CONFIG_AB3100_CORE is not set 985# CONFIG_AB3100_CORE is not set
986# CONFIG_EZX_PCAP is not set 986# CONFIG_EZX_PCAP is not set
987# CONFIG_MFD_88PM8607 is not set
988# CONFIG_AB4500_CORE is not set 987# CONFIG_AB4500_CORE is not set
988# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 989# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 990# CONFIG_MEDIA_SUPPORT is not set
991 991
@@ -994,6 +994,7 @@ CONFIG_SSB_POSSIBLE=y
994# 994#
995# CONFIG_AGP is not set 995# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 996CONFIG_VGA_ARB=y
997CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 998# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 999# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=m 1000CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1098,7 +1099,6 @@ CONFIG_USB_STORAGE=y
1098# CONFIG_USB_RIO500 is not set 1099# CONFIG_USB_RIO500 is not set
1099# CONFIG_USB_LEGOTOWER is not set 1100# CONFIG_USB_LEGOTOWER is not set
1100# CONFIG_USB_LCD is not set 1101# CONFIG_USB_LCD is not set
1101# CONFIG_USB_BERRY_CHARGE is not set
1102# CONFIG_USB_LED is not set 1102# CONFIG_USB_LED is not set
1103# CONFIG_USB_CYPRESS_CY7C63 is not set 1103# CONFIG_USB_CYPRESS_CY7C63 is not set
1104# CONFIG_USB_CYTHERM is not set 1104# CONFIG_USB_CYTHERM is not set
@@ -1111,7 +1111,6 @@ CONFIG_USB_STORAGE=y
1111# CONFIG_USB_IOWARRIOR is not set 1111# CONFIG_USB_IOWARRIOR is not set
1112# CONFIG_USB_TEST is not set 1112# CONFIG_USB_TEST is not set
1113# CONFIG_USB_ISIGHTFW is not set 1113# CONFIG_USB_ISIGHTFW is not set
1114# CONFIG_USB_VST is not set
1115# CONFIG_USB_GADGET is not set 1114# CONFIG_USB_GADGET is not set
1116 1115
1117# 1116#
@@ -1275,6 +1274,7 @@ CONFIG_MISC_FILESYSTEMS=y
1275# CONFIG_BFS_FS is not set 1274# CONFIG_BFS_FS is not set
1276# CONFIG_EFS_FS is not set 1275# CONFIG_EFS_FS is not set
1277# CONFIG_JFFS2_FS is not set 1276# CONFIG_JFFS2_FS is not set
1277# CONFIG_LOGFS is not set
1278# CONFIG_CRAMFS is not set 1278# CONFIG_CRAMFS is not set
1279# CONFIG_SQUASHFS is not set 1279# CONFIG_SQUASHFS is not set
1280# CONFIG_VXFS_FS is not set 1280# CONFIG_VXFS_FS is not set
@@ -1301,6 +1301,7 @@ CONFIG_SUNRPC_GSS=y
1301CONFIG_RPCSEC_GSS_KRB5=y 1301CONFIG_RPCSEC_GSS_KRB5=y
1302# CONFIG_RPCSEC_GSS_SPKM3 is not set 1302# CONFIG_RPCSEC_GSS_SPKM3 is not set
1303# CONFIG_SMB_FS is not set 1303# CONFIG_SMB_FS is not set
1304# CONFIG_CEPH_FS is not set
1304# CONFIG_CIFS is not set 1305# CONFIG_CIFS is not set
1305# CONFIG_NCP_FS is not set 1306# CONFIG_NCP_FS is not set
1306# CONFIG_CODA_FS is not set 1307# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 6252ab5bf181..dc176b676dce 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:45 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512# CONFIG_SCSI is not set 510# CONFIG_SCSI is not set
513# CONFIG_SCSI_DMA is not set 511# CONFIG_SCSI_DMA is not set
@@ -580,6 +578,7 @@ CONFIG_NET_PCI=y
580# CONFIG_PCNET32 is not set 578# CONFIG_PCNET32 is not set
581# CONFIG_AMD8111_ETH is not set 579# CONFIG_AMD8111_ETH is not set
582# CONFIG_ADAPTEC_STARFIRE is not set 580# CONFIG_ADAPTEC_STARFIRE is not set
581# CONFIG_KSZ884X_PCI is not set
583# CONFIG_B44 is not set 582# CONFIG_B44 is not set
584# CONFIG_FORCEDETH is not set 583# CONFIG_FORCEDETH is not set
585CONFIG_E100=y 584CONFIG_E100=y
@@ -631,6 +630,8 @@ CONFIG_NETDEV_10000=y
631# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
632CONFIG_CHELSIO_T3_DEPENDS=y 631CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_CHELSIO_T3 is not set 632# CONFIG_CHELSIO_T3 is not set
633CONFIG_CHELSIO_T4_DEPENDS=y
634# CONFIG_CHELSIO_T4 is not set
634# CONFIG_ENIC is not set 635# CONFIG_ENIC is not set
635# CONFIG_IXGBE is not set 636# CONFIG_IXGBE is not set
636# CONFIG_IXGB is not set 637# CONFIG_IXGB is not set
@@ -643,6 +644,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
643# CONFIG_MLX4_CORE is not set 644# CONFIG_MLX4_CORE is not set
644# CONFIG_TEHUTI is not set 645# CONFIG_TEHUTI is not set
645# CONFIG_BNX2X is not set 646# CONFIG_BNX2X is not set
647# CONFIG_QLCNIC is not set
646# CONFIG_QLGE is not set 648# CONFIG_QLGE is not set
647# CONFIG_SFC is not set 649# CONFIG_SFC is not set
648# CONFIG_BE2NET is not set 650# CONFIG_BE2NET is not set
@@ -726,6 +728,7 @@ CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 728CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_JSM is not set 729# CONFIG_SERIAL_JSM is not set
728# CONFIG_SERIAL_OF_PLATFORM is not set 730# CONFIG_SERIAL_OF_PLATFORM is not set
731# CONFIG_SERIAL_TIMBERDALE is not set
729# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 732# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
730CONFIG_UNIX98_PTYS=y 733CONFIG_UNIX98_PTYS=y
731# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 734# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -774,6 +777,7 @@ CONFIG_I2C_HELPER_AUTO=y
774CONFIG_I2C_MPC=y 777CONFIG_I2C_MPC=y
775# CONFIG_I2C_OCORES is not set 778# CONFIG_I2C_OCORES is not set
776# CONFIG_I2C_SIMTEC is not set 779# CONFIG_I2C_SIMTEC is not set
780# CONFIG_I2C_XILINX is not set
777 781
778# 782#
779# External I2C/SMBus adapter drivers 783# External I2C/SMBus adapter drivers
@@ -786,15 +790,9 @@ CONFIG_I2C_MPC=y
786# 790#
787# CONFIG_I2C_PCA_PLATFORM is not set 791# CONFIG_I2C_PCA_PLATFORM is not set
788# CONFIG_I2C_STUB is not set 792# CONFIG_I2C_STUB is not set
789
790#
791# Miscellaneous I2C Chip support
792#
793# CONFIG_SENSORS_TSL2550 is not set
794# CONFIG_I2C_DEBUG_CORE is not set 793# CONFIG_I2C_DEBUG_CORE is not set
795# CONFIG_I2C_DEBUG_ALGO is not set 794# CONFIG_I2C_DEBUG_ALGO is not set
796# CONFIG_I2C_DEBUG_BUS is not set 795# CONFIG_I2C_DEBUG_BUS is not set
797# CONFIG_I2C_DEBUG_CHIP is not set
798# CONFIG_SPI is not set 796# CONFIG_SPI is not set
799 797
800# 798#
@@ -820,10 +818,11 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_ADM1029 is not set 818# CONFIG_SENSORS_ADM1029 is not set
821# CONFIG_SENSORS_ADM1031 is not set 819# CONFIG_SENSORS_ADM1031 is not set
822# CONFIG_SENSORS_ADM9240 is not set 820# CONFIG_SENSORS_ADM9240 is not set
821# CONFIG_SENSORS_ADT7411 is not set
823# CONFIG_SENSORS_ADT7462 is not set 822# CONFIG_SENSORS_ADT7462 is not set
824# CONFIG_SENSORS_ADT7470 is not set 823# CONFIG_SENSORS_ADT7470 is not set
825# CONFIG_SENSORS_ADT7473 is not set
826# CONFIG_SENSORS_ADT7475 is not set 824# CONFIG_SENSORS_ADT7475 is not set
825# CONFIG_SENSORS_ASC7621 is not set
827# CONFIG_SENSORS_ATXP1 is not set 826# CONFIG_SENSORS_ATXP1 is not set
828# CONFIG_SENSORS_DS1621 is not set 827# CONFIG_SENSORS_DS1621 is not set
829# CONFIG_SENSORS_I5K_AMB is not set 828# CONFIG_SENSORS_I5K_AMB is not set
@@ -860,6 +859,7 @@ CONFIG_HWMON=y
860# CONFIG_SENSORS_SMSC47M192 is not set 859# CONFIG_SENSORS_SMSC47M192 is not set
861# CONFIG_SENSORS_SMSC47B397 is not set 860# CONFIG_SENSORS_SMSC47B397 is not set
862# CONFIG_SENSORS_ADS7828 is not set 861# CONFIG_SENSORS_ADS7828 is not set
862# CONFIG_SENSORS_AMC6821 is not set
863# CONFIG_SENSORS_THMC50 is not set 863# CONFIG_SENSORS_THMC50 is not set
864# CONFIG_SENSORS_TMP401 is not set 864# CONFIG_SENSORS_TMP401 is not set
865# CONFIG_SENSORS_TMP421 is not set 865# CONFIG_SENSORS_TMP421 is not set
@@ -902,18 +902,21 @@ CONFIG_SSB_POSSIBLE=y
902# Multifunction device drivers 902# Multifunction device drivers
903# 903#
904# CONFIG_MFD_CORE is not set 904# CONFIG_MFD_CORE is not set
905# CONFIG_MFD_88PM860X is not set
905# CONFIG_MFD_SM501 is not set 906# CONFIG_MFD_SM501 is not set
906# CONFIG_HTC_PASIC3 is not set 907# CONFIG_HTC_PASIC3 is not set
907# CONFIG_TWL4030_CORE is not set 908# CONFIG_TWL4030_CORE is not set
908# CONFIG_MFD_TMIO is not set 909# CONFIG_MFD_TMIO is not set
909# CONFIG_PMIC_DA903X is not set 910# CONFIG_PMIC_DA903X is not set
910# CONFIG_PMIC_ADP5520 is not set 911# CONFIG_PMIC_ADP5520 is not set
912# CONFIG_MFD_MAX8925 is not set
911# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
912# CONFIG_MFD_WM831X is not set 914# CONFIG_MFD_WM831X is not set
913# CONFIG_MFD_WM8350_I2C is not set 915# CONFIG_MFD_WM8350_I2C is not set
916# CONFIG_MFD_WM8994 is not set
914# CONFIG_MFD_PCF50633 is not set 917# CONFIG_MFD_PCF50633 is not set
915# CONFIG_AB3100_CORE is not set 918# CONFIG_AB3100_CORE is not set
916# CONFIG_MFD_88PM8607 is not set 919# CONFIG_LPC_SCH is not set
917# CONFIG_REGULATOR is not set 920# CONFIG_REGULATOR is not set
918# CONFIG_MEDIA_SUPPORT is not set 921# CONFIG_MEDIA_SUPPORT is not set
919 922
@@ -922,6 +925,7 @@ CONFIG_SSB_POSSIBLE=y
922# 925#
923# CONFIG_AGP is not set 926# CONFIG_AGP is not set
924CONFIG_VGA_ARB=y 927CONFIG_VGA_ARB=y
928CONFIG_VGA_ARB_MAX_GPUS=16
925# CONFIG_DRM is not set 929# CONFIG_DRM is not set
926# CONFIG_VGASTATE is not set 930# CONFIG_VGASTATE is not set
927CONFIG_VIDEO_OUTPUT_CONTROL=m 931CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1106,6 +1110,7 @@ CONFIG_MISC_FILESYSTEMS=y
1106# CONFIG_BEFS_FS is not set 1110# CONFIG_BEFS_FS is not set
1107# CONFIG_BFS_FS is not set 1111# CONFIG_BFS_FS is not set
1108# CONFIG_EFS_FS is not set 1112# CONFIG_EFS_FS is not set
1113# CONFIG_LOGFS is not set
1109# CONFIG_CRAMFS is not set 1114# CONFIG_CRAMFS is not set
1110# CONFIG_SQUASHFS is not set 1115# CONFIG_SQUASHFS is not set
1111# CONFIG_VXFS_FS is not set 1116# CONFIG_VXFS_FS is not set
@@ -1132,6 +1137,7 @@ CONFIG_SUNRPC_GSS=y
1132CONFIG_RPCSEC_GSS_KRB5=y 1137CONFIG_RPCSEC_GSS_KRB5=y
1133# CONFIG_RPCSEC_GSS_SPKM3 is not set 1138# CONFIG_RPCSEC_GSS_SPKM3 is not set
1134# CONFIG_SMB_FS is not set 1139# CONFIG_SMB_FS is not set
1140# CONFIG_CEPH_FS is not set
1135# CONFIG_CIFS is not set 1141# CONFIG_CIFS is not set
1136# CONFIG_NCP_FS is not set 1142# CONFIG_NCP_FS is not set
1137# CONFIG_CODA_FS is not set 1143# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 78227378e678..f512972c7176 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:46 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -334,7 +330,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 330# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 331CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 332# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
339# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
340# CONFIG_PCCARD is not set 335# CONFIG_PCCARD is not set
@@ -360,7 +355,6 @@ CONFIG_NET=y
360# Networking options 355# Networking options
361# 356#
362CONFIG_PACKET=y 357CONFIG_PACKET=y
363# CONFIG_PACKET_MMAP is not set
364CONFIG_UNIX=y 358CONFIG_UNIX=y
365CONFIG_XFRM=y 359CONFIG_XFRM=y
366# CONFIG_XFRM_USER is not set 360# CONFIG_XFRM_USER is not set
@@ -538,6 +532,8 @@ CONFIG_MTD_PHYSMAP_OF=y
538# UBI - Unsorted block images 532# UBI - Unsorted block images
539# 533#
540# CONFIG_MTD_UBI is not set 534# CONFIG_MTD_UBI is not set
535CONFIG_OF_FLATTREE=y
536CONFIG_OF_DYNAMIC=y
541CONFIG_OF_DEVICE=y 537CONFIG_OF_DEVICE=y
542CONFIG_OF_I2C=y 538CONFIG_OF_I2C=y
543CONFIG_OF_MDIO=y 539CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -774,6 +772,8 @@ CONFIG_NETDEV_10000=y
774# CONFIG_CHELSIO_T1 is not set 772# CONFIG_CHELSIO_T1 is not set
775CONFIG_CHELSIO_T3_DEPENDS=y 773CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_CHELSIO_T3 is not set 774# CONFIG_CHELSIO_T3 is not set
775CONFIG_CHELSIO_T4_DEPENDS=y
776# CONFIG_CHELSIO_T4 is not set
777# CONFIG_ENIC is not set 777# CONFIG_ENIC is not set
778# CONFIG_IXGBE is not set 778# CONFIG_IXGBE is not set
779# CONFIG_IXGB is not set 779# CONFIG_IXGB is not set
@@ -786,6 +786,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
786# CONFIG_MLX4_CORE is not set 786# CONFIG_MLX4_CORE is not set
787# CONFIG_TEHUTI is not set 787# CONFIG_TEHUTI is not set
788# CONFIG_BNX2X is not set 788# CONFIG_BNX2X is not set
789# CONFIG_QLCNIC is not set
789# CONFIG_QLGE is not set 790# CONFIG_QLGE is not set
790# CONFIG_SFC is not set 791# CONFIG_SFC is not set
791# CONFIG_BE2NET is not set 792# CONFIG_BE2NET is not set
@@ -871,6 +872,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
871# CONFIG_SERIAL_JSM is not set 872# CONFIG_SERIAL_JSM is not set
872# CONFIG_SERIAL_OF_PLATFORM is not set 873# CONFIG_SERIAL_OF_PLATFORM is not set
873# CONFIG_SERIAL_QE is not set 874# CONFIG_SERIAL_QE is not set
875# CONFIG_SERIAL_TIMBERDALE is not set
874# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 876# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
875CONFIG_UNIX98_PTYS=y 877CONFIG_UNIX98_PTYS=y
876# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 878# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -920,6 +922,7 @@ CONFIG_I2C_HELPER_AUTO=y
920CONFIG_I2C_MPC=y 922CONFIG_I2C_MPC=y
921# CONFIG_I2C_OCORES is not set 923# CONFIG_I2C_OCORES is not set
922# CONFIG_I2C_SIMTEC is not set 924# CONFIG_I2C_SIMTEC is not set
925# CONFIG_I2C_XILINX is not set
923 926
924# 927#
925# External I2C/SMBus adapter drivers 928# External I2C/SMBus adapter drivers
@@ -932,15 +935,9 @@ CONFIG_I2C_MPC=y
932# 935#
933# CONFIG_I2C_PCA_PLATFORM is not set 936# CONFIG_I2C_PCA_PLATFORM is not set
934# CONFIG_I2C_STUB is not set 937# CONFIG_I2C_STUB is not set
935
936#
937# Miscellaneous I2C Chip support
938#
939# CONFIG_SENSORS_TSL2550 is not set
940# CONFIG_I2C_DEBUG_CORE is not set 938# CONFIG_I2C_DEBUG_CORE is not set
941# CONFIG_I2C_DEBUG_ALGO is not set 939# CONFIG_I2C_DEBUG_ALGO is not set
942# CONFIG_I2C_DEBUG_BUS is not set 940# CONFIG_I2C_DEBUG_BUS is not set
943# CONFIG_I2C_DEBUG_CHIP is not set
944# CONFIG_SPI is not set 941# CONFIG_SPI is not set
945 942
946# 943#
@@ -966,10 +963,11 @@ CONFIG_HWMON=y
966# CONFIG_SENSORS_ADM1029 is not set 963# CONFIG_SENSORS_ADM1029 is not set
967# CONFIG_SENSORS_ADM1031 is not set 964# CONFIG_SENSORS_ADM1031 is not set
968# CONFIG_SENSORS_ADM9240 is not set 965# CONFIG_SENSORS_ADM9240 is not set
966# CONFIG_SENSORS_ADT7411 is not set
969# CONFIG_SENSORS_ADT7462 is not set 967# CONFIG_SENSORS_ADT7462 is not set
970# CONFIG_SENSORS_ADT7470 is not set 968# CONFIG_SENSORS_ADT7470 is not set
971# CONFIG_SENSORS_ADT7473 is not set
972# CONFIG_SENSORS_ADT7475 is not set 969# CONFIG_SENSORS_ADT7475 is not set
970# CONFIG_SENSORS_ASC7621 is not set
973# CONFIG_SENSORS_ATXP1 is not set 971# CONFIG_SENSORS_ATXP1 is not set
974# CONFIG_SENSORS_DS1621 is not set 972# CONFIG_SENSORS_DS1621 is not set
975# CONFIG_SENSORS_I5K_AMB is not set 973# CONFIG_SENSORS_I5K_AMB is not set
@@ -1006,6 +1004,7 @@ CONFIG_HWMON=y
1006# CONFIG_SENSORS_SMSC47M192 is not set 1004# CONFIG_SENSORS_SMSC47M192 is not set
1007# CONFIG_SENSORS_SMSC47B397 is not set 1005# CONFIG_SENSORS_SMSC47B397 is not set
1008# CONFIG_SENSORS_ADS7828 is not set 1006# CONFIG_SENSORS_ADS7828 is not set
1007# CONFIG_SENSORS_AMC6821 is not set
1009# CONFIG_SENSORS_THMC50 is not set 1008# CONFIG_SENSORS_THMC50 is not set
1010# CONFIG_SENSORS_TMP401 is not set 1009# CONFIG_SENSORS_TMP401 is not set
1011# CONFIG_SENSORS_TMP421 is not set 1010# CONFIG_SENSORS_TMP421 is not set
@@ -1048,18 +1047,21 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1047# Multifunction device drivers
1049# 1048#
1050# CONFIG_MFD_CORE is not set 1049# CONFIG_MFD_CORE is not set
1050# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1051# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1052# CONFIG_HTC_PASIC3 is not set
1053# CONFIG_TWL4030_CORE is not set 1053# CONFIG_TWL4030_CORE is not set
1054# CONFIG_MFD_TMIO is not set 1054# CONFIG_MFD_TMIO is not set
1055# CONFIG_PMIC_DA903X is not set 1055# CONFIG_PMIC_DA903X is not set
1056# CONFIG_PMIC_ADP5520 is not set 1056# CONFIG_PMIC_ADP5520 is not set
1057# CONFIG_MFD_MAX8925 is not set
1057# CONFIG_MFD_WM8400 is not set 1058# CONFIG_MFD_WM8400 is not set
1058# CONFIG_MFD_WM831X is not set 1059# CONFIG_MFD_WM831X is not set
1059# CONFIG_MFD_WM8350_I2C is not set 1060# CONFIG_MFD_WM8350_I2C is not set
1061# CONFIG_MFD_WM8994 is not set
1060# CONFIG_MFD_PCF50633 is not set 1062# CONFIG_MFD_PCF50633 is not set
1061# CONFIG_AB3100_CORE is not set 1063# CONFIG_AB3100_CORE is not set
1062# CONFIG_MFD_88PM8607 is not set 1064# CONFIG_LPC_SCH is not set
1063# CONFIG_REGULATOR is not set 1065# CONFIG_REGULATOR is not set
1064# CONFIG_MEDIA_SUPPORT is not set 1066# CONFIG_MEDIA_SUPPORT is not set
1065 1067
@@ -1068,6 +1070,7 @@ CONFIG_SSB_POSSIBLE=y
1068# 1070#
1069# CONFIG_AGP is not set 1071# CONFIG_AGP is not set
1070CONFIG_VGA_ARB=y 1072CONFIG_VGA_ARB=y
1073CONFIG_VGA_ARB_MAX_GPUS=16
1071# CONFIG_DRM is not set 1074# CONFIG_DRM is not set
1072# CONFIG_VGASTATE is not set 1075# CONFIG_VGASTATE is not set
1073CONFIG_VIDEO_OUTPUT_CONTROL=m 1076CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1253,6 +1256,7 @@ CONFIG_MISC_FILESYSTEMS=y
1253# CONFIG_BFS_FS is not set 1256# CONFIG_BFS_FS is not set
1254# CONFIG_EFS_FS is not set 1257# CONFIG_EFS_FS is not set
1255# CONFIG_JFFS2_FS is not set 1258# CONFIG_JFFS2_FS is not set
1259# CONFIG_LOGFS is not set
1256# CONFIG_CRAMFS is not set 1260# CONFIG_CRAMFS is not set
1257# CONFIG_SQUASHFS is not set 1261# CONFIG_SQUASHFS is not set
1258# CONFIG_VXFS_FS is not set 1262# CONFIG_VXFS_FS is not set
@@ -1279,6 +1283,7 @@ CONFIG_SUNRPC_GSS=y
1279CONFIG_RPCSEC_GSS_KRB5=y 1283CONFIG_RPCSEC_GSS_KRB5=y
1280# CONFIG_RPCSEC_GSS_SPKM3 is not set 1284# CONFIG_RPCSEC_GSS_SPKM3 is not set
1281# CONFIG_SMB_FS is not set 1285# CONFIG_SMB_FS is not set
1286# CONFIG_CEPH_FS is not set
1282# CONFIG_CIFS is not set 1287# CONFIG_CIFS is not set
1283# CONFIG_NCP_FS is not set 1288# CONFIG_NCP_FS is not set
1284# CONFIG_CODA_FS is not set 1289# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index 9451d6e5c802..77abfe8ff198 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:23 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101CONFIG_FAIR_GROUP_SCHED=y
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -550,6 +544,8 @@ CONFIG_MTD_PHYSMAP_OF=y
550# UBI - Unsorted block images 544# UBI - Unsorted block images
551# 545#
552# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
547CONFIG_OF_FLATTREE=y
548CONFIG_OF_DYNAMIC=y
553CONFIG_OF_DEVICE=y 549CONFIG_OF_DEVICE=y
554CONFIG_OF_GPIO=y 550CONFIG_OF_GPIO=y
555CONFIG_OF_I2C=y 551CONFIG_OF_I2C=y
@@ -587,6 +583,7 @@ CONFIG_MISC_DEVICES=y
587# CONFIG_ENCLOSURE_SERVICES is not set 583# CONFIG_ENCLOSURE_SERVICES is not set
588# CONFIG_HP_ILO is not set 584# CONFIG_HP_ILO is not set
589# CONFIG_ISL29003 is not set 585# CONFIG_ISL29003 is not set
586# CONFIG_SENSORS_TSL2550 is not set
590# CONFIG_DS1682 is not set 587# CONFIG_DS1682 is not set
591# CONFIG_TI_DAC7512 is not set 588# CONFIG_TI_DAC7512 is not set
592# CONFIG_C2PORT is not set 589# CONFIG_C2PORT is not set
@@ -606,6 +603,7 @@ CONFIG_HAVE_IDE=y
606# 603#
607# SCSI device support 604# SCSI device support
608# 605#
606CONFIG_SCSI_MOD=y
609# CONFIG_RAID_ATTRS is not set 607# CONFIG_RAID_ATTRS is not set
610# CONFIG_SCSI is not set 608# CONFIG_SCSI is not set
611# CONFIG_SCSI_DMA is not set 609# CONFIG_SCSI_DMA is not set
@@ -774,6 +772,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
775# CONFIG_SERIAL_OF_PLATFORM is not set 773# CONFIG_SERIAL_OF_PLATFORM is not set
776CONFIG_SERIAL_QE=y 774CONFIG_SERIAL_QE=y
775# CONFIG_SERIAL_TIMBERDALE is not set
777# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 776# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
778CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
779# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,6 +824,7 @@ CONFIG_I2C_HELPER_AUTO=y
825CONFIG_I2C_MPC=y 824CONFIG_I2C_MPC=y
826# CONFIG_I2C_OCORES is not set 825# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set 826# CONFIG_I2C_SIMTEC is not set
827# CONFIG_I2C_XILINX is not set
828 828
829# 829#
830# External I2C/SMBus adapter drivers 830# External I2C/SMBus adapter drivers
@@ -837,15 +837,9 @@ CONFIG_I2C_MPC=y
837# 837#
838# CONFIG_I2C_PCA_PLATFORM is not set 838# CONFIG_I2C_PCA_PLATFORM is not set
839# CONFIG_I2C_STUB is not set 839# CONFIG_I2C_STUB is not set
840
841#
842# Miscellaneous I2C Chip support
843#
844# CONFIG_SENSORS_TSL2550 is not set
845# CONFIG_I2C_DEBUG_CORE is not set 840# CONFIG_I2C_DEBUG_CORE is not set
846# CONFIG_I2C_DEBUG_ALGO is not set 841# CONFIG_I2C_DEBUG_ALGO is not set
847# CONFIG_I2C_DEBUG_BUS is not set 842# CONFIG_I2C_DEBUG_BUS is not set
848# CONFIG_I2C_DEBUG_CHIP is not set
849CONFIG_SPI=y 843CONFIG_SPI=y
850CONFIG_SPI_MASTER=y 844CONFIG_SPI_MASTER=y
851 845
@@ -876,14 +870,18 @@ CONFIG_GPIOLIB=y
876# 870#
877# Memory mapped GPIO expanders: 871# Memory mapped GPIO expanders:
878# 872#
873# CONFIG_GPIO_IT8761E is not set
879# CONFIG_GPIO_XILINX is not set 874# CONFIG_GPIO_XILINX is not set
875# CONFIG_GPIO_SCH is not set
880 876
881# 877#
882# I2C GPIO expanders: 878# I2C GPIO expanders:
883# 879#
880# CONFIG_GPIO_MAX7300 is not set
884# CONFIG_GPIO_MAX732X is not set 881# CONFIG_GPIO_MAX732X is not set
885# CONFIG_GPIO_PCA953X is not set 882# CONFIG_GPIO_PCA953X is not set
886# CONFIG_GPIO_PCF857X is not set 883# CONFIG_GPIO_PCF857X is not set
884# CONFIG_GPIO_ADP5588 is not set
887 885
888# 886#
889# PCI GPIO expanders: 887# PCI GPIO expanders:
@@ -932,22 +930,27 @@ CONFIG_SSB_POSSIBLE=y
932# Multifunction device drivers 930# Multifunction device drivers
933# 931#
934# CONFIG_MFD_CORE is not set 932# CONFIG_MFD_CORE is not set
933# CONFIG_MFD_88PM860X is not set
935# CONFIG_MFD_SM501 is not set 934# CONFIG_MFD_SM501 is not set
936# CONFIG_HTC_PASIC3 is not set 935# CONFIG_HTC_PASIC3 is not set
936# CONFIG_HTC_I2CPLD is not set
937# CONFIG_TPS65010 is not set 937# CONFIG_TPS65010 is not set
938# CONFIG_TWL4030_CORE is not set 938# CONFIG_TWL4030_CORE is not set
939# CONFIG_MFD_TMIO is not set 939# CONFIG_MFD_TMIO is not set
940# CONFIG_PMIC_DA903X is not set 940# CONFIG_PMIC_DA903X is not set
941# CONFIG_PMIC_ADP5520 is not set 941# CONFIG_PMIC_ADP5520 is not set
942# CONFIG_MFD_MAX8925 is not set
942# CONFIG_MFD_WM8400 is not set 943# CONFIG_MFD_WM8400 is not set
943# CONFIG_MFD_WM831X is not set 944# CONFIG_MFD_WM831X is not set
944# CONFIG_MFD_WM8350_I2C is not set 945# CONFIG_MFD_WM8350_I2C is not set
946# CONFIG_MFD_WM8994 is not set
945# CONFIG_MFD_PCF50633 is not set 947# CONFIG_MFD_PCF50633 is not set
946# CONFIG_MFD_MC13783 is not set 948# CONFIG_MFD_MC13783 is not set
947# CONFIG_AB3100_CORE is not set 949# CONFIG_AB3100_CORE is not set
948# CONFIG_EZX_PCAP is not set 950# CONFIG_EZX_PCAP is not set
949# CONFIG_MFD_88PM8607 is not set
950# CONFIG_AB4500_CORE is not set 951# CONFIG_AB4500_CORE is not set
952# CONFIG_MFD_TIMBERDALE is not set
953# CONFIG_LPC_SCH is not set
951# CONFIG_REGULATOR is not set 954# CONFIG_REGULATOR is not set
952# CONFIG_MEDIA_SUPPORT is not set 955# CONFIG_MEDIA_SUPPORT is not set
953 956
@@ -956,6 +959,7 @@ CONFIG_SSB_POSSIBLE=y
956# 959#
957# CONFIG_AGP is not set 960# CONFIG_AGP is not set
958CONFIG_VGA_ARB=y 961CONFIG_VGA_ARB=y
962CONFIG_VGA_ARB_MAX_GPUS=16
959# CONFIG_DRM is not set 963# CONFIG_DRM is not set
960# CONFIG_VGASTATE is not set 964# CONFIG_VGASTATE is not set
961# CONFIG_VIDEO_OUTPUT_CONTROL is not set 965# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1145,6 +1149,7 @@ CONFIG_JFFS2_ZLIB=y
1145# CONFIG_JFFS2_LZO is not set 1149# CONFIG_JFFS2_LZO is not set
1146CONFIG_JFFS2_RTIME=y 1150CONFIG_JFFS2_RTIME=y
1147# CONFIG_JFFS2_RUBIN is not set 1151# CONFIG_JFFS2_RUBIN is not set
1152# CONFIG_LOGFS is not set
1148# CONFIG_CRAMFS is not set 1153# CONFIG_CRAMFS is not set
1149# CONFIG_SQUASHFS is not set 1154# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1155# CONFIG_VXFS_FS is not set
@@ -1171,6 +1176,7 @@ CONFIG_SUNRPC_GSS=y
1171CONFIG_RPCSEC_GSS_KRB5=y 1176CONFIG_RPCSEC_GSS_KRB5=y
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set 1177# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set 1178# CONFIG_SMB_FS is not set
1179# CONFIG_CEPH_FS is not set
1174# CONFIG_CIFS is not set 1180# CONFIG_CIFS is not set
1175# CONFIG_NCP_FS is not set 1181# CONFIG_NCP_FS is not set
1176# CONFIG_CODA_FS is not set 1182# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f67b70d0b292..0cdb41418d58 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:22 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512CONFIG_SCSI=y 510CONFIG_SCSI=y
513CONFIG_SCSI_DMA=y 511CONFIG_SCSI_DMA=y
@@ -631,6 +629,7 @@ CONFIG_ATA_SFF=y
631# CONFIG_PATA_IT821X is not set 629# CONFIG_PATA_IT821X is not set
632# CONFIG_PATA_IT8213 is not set 630# CONFIG_PATA_IT8213 is not set
633# CONFIG_PATA_JMICRON is not set 631# CONFIG_PATA_JMICRON is not set
632# CONFIG_PATA_LEGACY is not set
634# CONFIG_PATA_TRIFLEX is not set 633# CONFIG_PATA_TRIFLEX is not set
635# CONFIG_PATA_MARVELL is not set 634# CONFIG_PATA_MARVELL is not set
636# CONFIG_PATA_MPIIX is not set 635# CONFIG_PATA_MPIIX is not set
@@ -755,6 +754,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -767,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 773# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -851,6 +853,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 853CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 854# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 855# CONFIG_SERIAL_OF_PLATFORM is not set
856# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 857# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 858CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 859# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -901,6 +904,7 @@ CONFIG_I2C_HELPER_AUTO=y
901CONFIG_I2C_MPC=y 904CONFIG_I2C_MPC=y
902# CONFIG_I2C_OCORES is not set 905# CONFIG_I2C_OCORES is not set
903# CONFIG_I2C_SIMTEC is not set 906# CONFIG_I2C_SIMTEC is not set
907# CONFIG_I2C_XILINX is not set
904 908
905# 909#
906# External I2C/SMBus adapter drivers 910# External I2C/SMBus adapter drivers
@@ -913,15 +917,9 @@ CONFIG_I2C_MPC=y
913# 917#
914# CONFIG_I2C_PCA_PLATFORM is not set 918# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 919# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 920# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 921# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 922# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 923# CONFIG_SPI is not set
926 924
927# 925#
@@ -947,10 +945,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 945# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 946# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 947# CONFIG_SENSORS_ADM9240 is not set
948# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 949# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 950# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 951# CONFIG_SENSORS_ADT7475 is not set
952# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 953# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 954# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 955# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +986,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 986# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 987# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 988# CONFIG_SENSORS_ADS7828 is not set
989# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 990# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 991# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 992# CONFIG_SENSORS_TMP421 is not set
@@ -1029,18 +1029,21 @@ CONFIG_SSB_POSSIBLE=y
1029# Multifunction device drivers 1029# Multifunction device drivers
1030# 1030#
1031# CONFIG_MFD_CORE is not set 1031# CONFIG_MFD_CORE is not set
1032# CONFIG_MFD_88PM860X is not set
1032# CONFIG_MFD_SM501 is not set 1033# CONFIG_MFD_SM501 is not set
1033# CONFIG_HTC_PASIC3 is not set 1034# CONFIG_HTC_PASIC3 is not set
1034# CONFIG_TWL4030_CORE is not set 1035# CONFIG_TWL4030_CORE is not set
1035# CONFIG_MFD_TMIO is not set 1036# CONFIG_MFD_TMIO is not set
1036# CONFIG_PMIC_DA903X is not set 1037# CONFIG_PMIC_DA903X is not set
1037# CONFIG_PMIC_ADP5520 is not set 1038# CONFIG_PMIC_ADP5520 is not set
1039# CONFIG_MFD_MAX8925 is not set
1038# CONFIG_MFD_WM8400 is not set 1040# CONFIG_MFD_WM8400 is not set
1039# CONFIG_MFD_WM831X is not set 1041# CONFIG_MFD_WM831X is not set
1040# CONFIG_MFD_WM8350_I2C is not set 1042# CONFIG_MFD_WM8350_I2C is not set
1043# CONFIG_MFD_WM8994 is not set
1041# CONFIG_MFD_PCF50633 is not set 1044# CONFIG_MFD_PCF50633 is not set
1042# CONFIG_AB3100_CORE is not set 1045# CONFIG_AB3100_CORE is not set
1043# CONFIG_MFD_88PM8607 is not set 1046# CONFIG_LPC_SCH is not set
1044# CONFIG_REGULATOR is not set 1047# CONFIG_REGULATOR is not set
1045# CONFIG_MEDIA_SUPPORT is not set 1048# CONFIG_MEDIA_SUPPORT is not set
1046 1049
@@ -1049,6 +1052,7 @@ CONFIG_SSB_POSSIBLE=y
1049# 1052#
1050# CONFIG_AGP is not set 1053# CONFIG_AGP is not set
1051CONFIG_VGA_ARB=y 1054CONFIG_VGA_ARB=y
1055CONFIG_VGA_ARB_MAX_GPUS=16
1052# CONFIG_DRM is not set 1056# CONFIG_DRM is not set
1053# CONFIG_VGASTATE is not set 1057# CONFIG_VGASTATE is not set
1054CONFIG_VIDEO_OUTPUT_CONTROL=m 1058CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1175,6 +1179,7 @@ CONFIG_MISC_FILESYSTEMS=y
1175# CONFIG_BEFS_FS is not set 1179# CONFIG_BEFS_FS is not set
1176# CONFIG_BFS_FS is not set 1180# CONFIG_BFS_FS is not set
1177# CONFIG_EFS_FS is not set 1181# CONFIG_EFS_FS is not set
1182# CONFIG_LOGFS is not set
1178# CONFIG_CRAMFS is not set 1183# CONFIG_CRAMFS is not set
1179# CONFIG_SQUASHFS is not set 1184# CONFIG_SQUASHFS is not set
1180# CONFIG_VXFS_FS is not set 1185# CONFIG_VXFS_FS is not set
@@ -1201,6 +1206,7 @@ CONFIG_SUNRPC_GSS=y
1201CONFIG_RPCSEC_GSS_KRB5=y 1206CONFIG_RPCSEC_GSS_KRB5=y
1202# CONFIG_RPCSEC_GSS_SPKM3 is not set 1207# CONFIG_RPCSEC_GSS_SPKM3 is not set
1203# CONFIG_SMB_FS is not set 1208# CONFIG_SMB_FS is not set
1209# CONFIG_CEPH_FS is not set
1204# CONFIG_CIFS is not set 1210# CONFIG_CIFS is not set
1205# CONFIG_NCP_FS is not set 1211# CONFIG_NCP_FS is not set
1206# CONFIG_CODA_FS is not set 1212# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index a84fd1194e2b..e69ed1b61425 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:24 2010 4# Mon Apr 19 23:16:48 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366# CONFIG_NET_KEY is not set 360# CONFIG_NET_KEY is not set
367CONFIG_INET=y 361CONFIG_INET=y
@@ -451,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
451# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
452# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
453# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
454CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
455CONFIG_OF_I2C=y 451CONFIG_OF_I2C=y
456CONFIG_OF_MDIO=y 452CONFIG_OF_MDIO=y
@@ -487,6 +483,7 @@ CONFIG_MISC_DEVICES=y
487# CONFIG_ENCLOSURE_SERVICES is not set 483# CONFIG_ENCLOSURE_SERVICES is not set
488# CONFIG_HP_ILO is not set 484# CONFIG_HP_ILO is not set
489# CONFIG_ISL29003 is not set 485# CONFIG_ISL29003 is not set
486# CONFIG_SENSORS_TSL2550 is not set
490# CONFIG_DS1682 is not set 487# CONFIG_DS1682 is not set
491# CONFIG_C2PORT is not set 488# CONFIG_C2PORT is not set
492 489
@@ -504,6 +501,7 @@ CONFIG_HAVE_IDE=y
504# 501#
505# SCSI device support 502# SCSI device support
506# 503#
504CONFIG_SCSI_MOD=y
507# CONFIG_RAID_ATTRS is not set 505# CONFIG_RAID_ATTRS is not set
508CONFIG_SCSI=y 506CONFIG_SCSI=y
509CONFIG_SCSI_DMA=y 507CONFIG_SCSI_DMA=y
@@ -626,6 +624,7 @@ CONFIG_ATA_SFF=y
626# CONFIG_PATA_IT821X is not set 624# CONFIG_PATA_IT821X is not set
627# CONFIG_PATA_IT8213 is not set 625# CONFIG_PATA_IT8213 is not set
628# CONFIG_PATA_JMICRON is not set 626# CONFIG_PATA_JMICRON is not set
627# CONFIG_PATA_LEGACY is not set
629# CONFIG_PATA_TRIFLEX is not set 628# CONFIG_PATA_TRIFLEX is not set
630# CONFIG_PATA_MARVELL is not set 629# CONFIG_PATA_MARVELL is not set
631# CONFIG_PATA_MPIIX is not set 630# CONFIG_PATA_MPIIX is not set
@@ -850,6 +849,7 @@ CONFIG_SERIAL_CORE=y
850CONFIG_SERIAL_CORE_CONSOLE=y 849CONFIG_SERIAL_CORE_CONSOLE=y
851# CONFIG_SERIAL_JSM is not set 850# CONFIG_SERIAL_JSM is not set
852# CONFIG_SERIAL_OF_PLATFORM is not set 851# CONFIG_SERIAL_OF_PLATFORM is not set
852# CONFIG_SERIAL_TIMBERDALE is not set
853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
854CONFIG_UNIX98_PTYS=y 854CONFIG_UNIX98_PTYS=y
855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -900,6 +900,7 @@ CONFIG_I2C_HELPER_AUTO=y
900CONFIG_I2C_MPC=y 900CONFIG_I2C_MPC=y
901# CONFIG_I2C_OCORES is not set 901# CONFIG_I2C_OCORES is not set
902# CONFIG_I2C_SIMTEC is not set 902# CONFIG_I2C_SIMTEC is not set
903# CONFIG_I2C_XILINX is not set
903 904
904# 905#
905# External I2C/SMBus adapter drivers 906# External I2C/SMBus adapter drivers
@@ -913,15 +914,9 @@ CONFIG_I2C_MPC=y
913# 914#
914# CONFIG_I2C_PCA_PLATFORM is not set 915# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 916# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 917# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 918# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 919# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 920# CONFIG_SPI is not set
926 921
927# 922#
@@ -947,10 +942,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 942# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 943# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 944# CONFIG_SENSORS_ADM9240 is not set
945# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 946# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 947# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 948# CONFIG_SENSORS_ADT7475 is not set
949# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 950# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 951# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 952# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +983,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 983# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 984# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 985# CONFIG_SENSORS_ADS7828 is not set
986# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 987# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 988# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 989# CONFIG_SENSORS_TMP421 is not set
@@ -1034,18 +1031,21 @@ CONFIG_SSB_POSSIBLE=y
1034# Multifunction device drivers 1031# Multifunction device drivers
1035# 1032#
1036# CONFIG_MFD_CORE is not set 1033# CONFIG_MFD_CORE is not set
1034# CONFIG_MFD_88PM860X is not set
1037# CONFIG_MFD_SM501 is not set 1035# CONFIG_MFD_SM501 is not set
1038# CONFIG_HTC_PASIC3 is not set 1036# CONFIG_HTC_PASIC3 is not set
1039# CONFIG_TWL4030_CORE is not set 1037# CONFIG_TWL4030_CORE is not set
1040# CONFIG_MFD_TMIO is not set 1038# CONFIG_MFD_TMIO is not set
1041# CONFIG_PMIC_DA903X is not set 1039# CONFIG_PMIC_DA903X is not set
1042# CONFIG_PMIC_ADP5520 is not set 1040# CONFIG_PMIC_ADP5520 is not set
1041# CONFIG_MFD_MAX8925 is not set
1043# CONFIG_MFD_WM8400 is not set 1042# CONFIG_MFD_WM8400 is not set
1044# CONFIG_MFD_WM831X is not set 1043# CONFIG_MFD_WM831X is not set
1045# CONFIG_MFD_WM8350_I2C is not set 1044# CONFIG_MFD_WM8350_I2C is not set
1045# CONFIG_MFD_WM8994 is not set
1046# CONFIG_MFD_PCF50633 is not set 1046# CONFIG_MFD_PCF50633 is not set
1047# CONFIG_AB3100_CORE is not set 1047# CONFIG_AB3100_CORE is not set
1048# CONFIG_MFD_88PM8607 is not set 1048# CONFIG_LPC_SCH is not set
1049# CONFIG_REGULATOR is not set 1049# CONFIG_REGULATOR is not set
1050# CONFIG_MEDIA_SUPPORT is not set 1050# CONFIG_MEDIA_SUPPORT is not set
1051 1051
@@ -1054,6 +1054,7 @@ CONFIG_SSB_POSSIBLE=y
1054# 1054#
1055# CONFIG_AGP is not set 1055# CONFIG_AGP is not set
1056CONFIG_VGA_ARB=y 1056CONFIG_VGA_ARB=y
1057CONFIG_VGA_ARB_MAX_GPUS=16
1057# CONFIG_DRM is not set 1058# CONFIG_DRM is not set
1058# CONFIG_VGASTATE is not set 1059# CONFIG_VGASTATE is not set
1059CONFIG_VIDEO_OUTPUT_CONTROL=m 1060CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1079,6 +1080,7 @@ CONFIG_USB_HID=y
1079# 1080#
1080# Special HID drivers 1081# Special HID drivers
1081# 1082#
1083# CONFIG_HID_3M_PCT is not set
1082CONFIG_HID_A4TECH=y 1084CONFIG_HID_A4TECH=y
1083CONFIG_HID_APPLE=y 1085CONFIG_HID_APPLE=y
1084CONFIG_HID_BELKIN=y 1086CONFIG_HID_BELKIN=y
@@ -1094,14 +1096,19 @@ CONFIG_HID_GYRATION=y
1094CONFIG_HID_LOGITECH=y 1096CONFIG_HID_LOGITECH=y
1095# CONFIG_LOGITECH_FF is not set 1097# CONFIG_LOGITECH_FF is not set
1096# CONFIG_LOGIRUMBLEPAD2_FF is not set 1098# CONFIG_LOGIRUMBLEPAD2_FF is not set
1099# CONFIG_LOGIG940_FF is not set
1097CONFIG_HID_MICROSOFT=y 1100CONFIG_HID_MICROSOFT=y
1101# CONFIG_HID_MOSART is not set
1098CONFIG_HID_MONTEREY=y 1102CONFIG_HID_MONTEREY=y
1099# CONFIG_HID_NTRIG is not set 1103# CONFIG_HID_NTRIG is not set
1104# CONFIG_HID_ORTEK is not set
1100CONFIG_HID_PANTHERLORD=y 1105CONFIG_HID_PANTHERLORD=y
1101# CONFIG_PANTHERLORD_FF is not set 1106# CONFIG_PANTHERLORD_FF is not set
1102CONFIG_HID_PETALYNX=y 1107CONFIG_HID_PETALYNX=y
1108# CONFIG_HID_QUANTA is not set
1103CONFIG_HID_SAMSUNG=y 1109CONFIG_HID_SAMSUNG=y
1104CONFIG_HID_SONY=y 1110CONFIG_HID_SONY=y
1111# CONFIG_HID_STANTUM is not set
1105CONFIG_HID_SUNPLUS=y 1112CONFIG_HID_SUNPLUS=y
1106# CONFIG_HID_GREENASIA is not set 1113# CONFIG_HID_GREENASIA is not set
1107# CONFIG_HID_SMARTJOYPLUS is not set 1114# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1190,7 +1197,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1190# CONFIG_USB_RIO500 is not set 1197# CONFIG_USB_RIO500 is not set
1191# CONFIG_USB_LEGOTOWER is not set 1198# CONFIG_USB_LEGOTOWER is not set
1192# CONFIG_USB_LCD is not set 1199# CONFIG_USB_LCD is not set
1193# CONFIG_USB_BERRY_CHARGE is not set
1194# CONFIG_USB_LED is not set 1200# CONFIG_USB_LED is not set
1195# CONFIG_USB_CYPRESS_CY7C63 is not set 1201# CONFIG_USB_CYPRESS_CY7C63 is not set
1196# CONFIG_USB_CYTHERM is not set 1202# CONFIG_USB_CYTHERM is not set
@@ -1203,7 +1209,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1203# CONFIG_USB_IOWARRIOR is not set 1209# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set 1210# CONFIG_USB_TEST is not set
1205# CONFIG_USB_ISIGHTFW is not set 1211# CONFIG_USB_ISIGHTFW is not set
1206# CONFIG_USB_VST is not set
1207# CONFIG_USB_GADGET is not set 1212# CONFIG_USB_GADGET is not set
1208 1213
1209# 1214#
@@ -1297,6 +1302,7 @@ CONFIG_MISC_FILESYSTEMS=y
1297# CONFIG_BEFS_FS is not set 1302# CONFIG_BEFS_FS is not set
1298# CONFIG_BFS_FS is not set 1303# CONFIG_BFS_FS is not set
1299# CONFIG_EFS_FS is not set 1304# CONFIG_EFS_FS is not set
1305# CONFIG_LOGFS is not set
1300# CONFIG_CRAMFS is not set 1306# CONFIG_CRAMFS is not set
1301# CONFIG_SQUASHFS is not set 1307# CONFIG_SQUASHFS is not set
1302# CONFIG_VXFS_FS is not set 1308# CONFIG_VXFS_FS is not set
@@ -1323,6 +1329,7 @@ CONFIG_SUNRPC_GSS=y
1323CONFIG_RPCSEC_GSS_KRB5=y 1329CONFIG_RPCSEC_GSS_KRB5=y
1324# CONFIG_RPCSEC_GSS_SPKM3 is not set 1330# CONFIG_RPCSEC_GSS_SPKM3 is not set
1325# CONFIG_SMB_FS is not set 1331# CONFIG_SMB_FS is not set
1332# CONFIG_CEPH_FS is not set
1326# CONFIG_CIFS is not set 1333# CONFIG_CIFS is not set
1327# CONFIG_NCP_FS is not set 1334# CONFIG_NCP_FS is not set
1328# CONFIG_CODA_FS is not set 1335# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 72c2067137b9..56e3995d898f 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:25 2010 4# Mon Apr 19 23:16:49 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -322,6 +317,7 @@ CONFIG_ISA_DMA_API=y
322# Bus options 317# Bus options
323# 318#
324CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
325CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
326CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
327CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
@@ -333,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
333# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
334CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
335# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
336# CONFIG_PCI_LEGACY is not set
337# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
338# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
339# CONFIG_PCCARD is not set 334# CONFIG_PCCARD is not set
@@ -359,7 +354,6 @@ CONFIG_NET=y
359# Networking options 354# Networking options
360# 355#
361CONFIG_PACKET=y 356CONFIG_PACKET=y
362# CONFIG_PACKET_MMAP is not set
363CONFIG_UNIX=y 357CONFIG_UNIX=y
364CONFIG_XFRM=y 358CONFIG_XFRM=y
365CONFIG_XFRM_USER=m 359CONFIG_XFRM_USER=m
@@ -537,6 +531,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 531# UBI - Unsorted block images
538# 532#
539# CONFIG_MTD_UBI is not set 533# CONFIG_MTD_UBI is not set
534CONFIG_OF_FLATTREE=y
535CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 536CONFIG_OF_DEVICE=y
541CONFIG_OF_I2C=y 537CONFIG_OF_I2C=y
542CONFIG_OF_MDIO=y 538CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -812,6 +810,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 810CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 811# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 812# CONFIG_SERIAL_OF_PLATFORM is not set
813# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 814# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 815CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 816# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -862,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
862CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
863# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
864# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
865 865
866# 866#
867# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -875,15 +875,9 @@ CONFIG_I2C_MPC=y
875# 875#
876# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
877# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
878
879#
880# Miscellaneous I2C Chip support
881#
882# CONFIG_SENSORS_TSL2550 is not set
883# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
884# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
885# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
886# CONFIG_I2C_DEBUG_CHIP is not set
887# CONFIG_SPI is not set 881# CONFIG_SPI is not set
888 882
889# 883#
@@ -909,10 +903,11 @@ CONFIG_HWMON=y
909# CONFIG_SENSORS_ADM1029 is not set 903# CONFIG_SENSORS_ADM1029 is not set
910# CONFIG_SENSORS_ADM1031 is not set 904# CONFIG_SENSORS_ADM1031 is not set
911# CONFIG_SENSORS_ADM9240 is not set 905# CONFIG_SENSORS_ADM9240 is not set
906# CONFIG_SENSORS_ADT7411 is not set
912# CONFIG_SENSORS_ADT7462 is not set 907# CONFIG_SENSORS_ADT7462 is not set
913# CONFIG_SENSORS_ADT7470 is not set 908# CONFIG_SENSORS_ADT7470 is not set
914# CONFIG_SENSORS_ADT7473 is not set
915# CONFIG_SENSORS_ADT7475 is not set 909# CONFIG_SENSORS_ADT7475 is not set
910# CONFIG_SENSORS_ASC7621 is not set
916# CONFIG_SENSORS_ATXP1 is not set 911# CONFIG_SENSORS_ATXP1 is not set
917# CONFIG_SENSORS_DS1621 is not set 912# CONFIG_SENSORS_DS1621 is not set
918# CONFIG_SENSORS_I5K_AMB is not set 913# CONFIG_SENSORS_I5K_AMB is not set
@@ -949,6 +944,7 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_SMSC47M192 is not set 944# CONFIG_SENSORS_SMSC47M192 is not set
950# CONFIG_SENSORS_SMSC47B397 is not set 945# CONFIG_SENSORS_SMSC47B397 is not set
951# CONFIG_SENSORS_ADS7828 is not set 946# CONFIG_SENSORS_ADS7828 is not set
947# CONFIG_SENSORS_AMC6821 is not set
952# CONFIG_SENSORS_THMC50 is not set 948# CONFIG_SENSORS_THMC50 is not set
953# CONFIG_SENSORS_TMP401 is not set 949# CONFIG_SENSORS_TMP401 is not set
954# CONFIG_SENSORS_TMP421 is not set 950# CONFIG_SENSORS_TMP421 is not set
@@ -996,18 +992,21 @@ CONFIG_SSB_POSSIBLE=y
996# Multifunction device drivers 992# Multifunction device drivers
997# 993#
998# CONFIG_MFD_CORE is not set 994# CONFIG_MFD_CORE is not set
995# CONFIG_MFD_88PM860X is not set
999# CONFIG_MFD_SM501 is not set 996# CONFIG_MFD_SM501 is not set
1000# CONFIG_HTC_PASIC3 is not set 997# CONFIG_HTC_PASIC3 is not set
1001# CONFIG_TWL4030_CORE is not set 998# CONFIG_TWL4030_CORE is not set
1002# CONFIG_MFD_TMIO is not set 999# CONFIG_MFD_TMIO is not set
1003# CONFIG_PMIC_DA903X is not set 1000# CONFIG_PMIC_DA903X is not set
1004# CONFIG_PMIC_ADP5520 is not set 1001# CONFIG_PMIC_ADP5520 is not set
1002# CONFIG_MFD_MAX8925 is not set
1005# CONFIG_MFD_WM8400 is not set 1003# CONFIG_MFD_WM8400 is not set
1006# CONFIG_MFD_WM831X is not set 1004# CONFIG_MFD_WM831X is not set
1007# CONFIG_MFD_WM8350_I2C is not set 1005# CONFIG_MFD_WM8350_I2C is not set
1006# CONFIG_MFD_WM8994 is not set
1008# CONFIG_MFD_PCF50633 is not set 1007# CONFIG_MFD_PCF50633 is not set
1009# CONFIG_AB3100_CORE is not set 1008# CONFIG_AB3100_CORE is not set
1010# CONFIG_MFD_88PM8607 is not set 1009# CONFIG_LPC_SCH is not set
1011# CONFIG_REGULATOR is not set 1010# CONFIG_REGULATOR is not set
1012# CONFIG_MEDIA_SUPPORT is not set 1011# CONFIG_MEDIA_SUPPORT is not set
1013 1012
@@ -1016,6 +1015,7 @@ CONFIG_SSB_POSSIBLE=y
1016# 1015#
1017# CONFIG_AGP is not set 1016# CONFIG_AGP is not set
1018CONFIG_VGA_ARB=y 1017CONFIG_VGA_ARB=y
1018CONFIG_VGA_ARB_MAX_GPUS=16
1019# CONFIG_DRM is not set 1019# CONFIG_DRM is not set
1020# CONFIG_VGASTATE is not set 1020# CONFIG_VGASTATE is not set
1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1140,7 +1140,6 @@ CONFIG_USB_STORAGE=y
1140# CONFIG_USB_RIO500 is not set 1140# CONFIG_USB_RIO500 is not set
1141# CONFIG_USB_LEGOTOWER is not set 1141# CONFIG_USB_LEGOTOWER is not set
1142# CONFIG_USB_LCD is not set 1142# CONFIG_USB_LCD is not set
1143# CONFIG_USB_BERRY_CHARGE is not set
1144# CONFIG_USB_LED is not set 1143# CONFIG_USB_LED is not set
1145# CONFIG_USB_CYPRESS_CY7C63 is not set 1144# CONFIG_USB_CYPRESS_CY7C63 is not set
1146# CONFIG_USB_CYTHERM is not set 1145# CONFIG_USB_CYTHERM is not set
@@ -1153,7 +1152,6 @@ CONFIG_USB_STORAGE=y
1153# CONFIG_USB_IOWARRIOR is not set 1152# CONFIG_USB_IOWARRIOR is not set
1154# CONFIG_USB_TEST is not set 1153# CONFIG_USB_TEST is not set
1155# CONFIG_USB_ISIGHTFW is not set 1154# CONFIG_USB_ISIGHTFW is not set
1156# CONFIG_USB_VST is not set
1157# CONFIG_USB_GADGET is not set 1155# CONFIG_USB_GADGET is not set
1158 1156
1159# 1157#
@@ -1245,6 +1243,7 @@ CONFIG_MISC_FILESYSTEMS=y
1245# CONFIG_BFS_FS is not set 1243# CONFIG_BFS_FS is not set
1246# CONFIG_EFS_FS is not set 1244# CONFIG_EFS_FS is not set
1247# CONFIG_JFFS2_FS is not set 1245# CONFIG_JFFS2_FS is not set
1246# CONFIG_LOGFS is not set
1248# CONFIG_CRAMFS is not set 1247# CONFIG_CRAMFS is not set
1249# CONFIG_SQUASHFS is not set 1248# CONFIG_SQUASHFS is not set
1250# CONFIG_VXFS_FS is not set 1249# CONFIG_VXFS_FS is not set
@@ -1271,6 +1270,7 @@ CONFIG_SUNRPC_GSS=y
1271CONFIG_RPCSEC_GSS_KRB5=y 1270CONFIG_RPCSEC_GSS_KRB5=y
1272# CONFIG_RPCSEC_GSS_SPKM3 is not set 1271# CONFIG_RPCSEC_GSS_SPKM3 is not set
1273# CONFIG_SMB_FS is not set 1272# CONFIG_SMB_FS is not set
1273# CONFIG_CEPH_FS is not set
1274# CONFIG_CIFS is not set 1274# CONFIG_CIFS is not set
1275# CONFIG_NCP_FS is not set 1275# CONFIG_NCP_FS is not set
1276# CONFIG_CODA_FS is not set 1276# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 21dad38b156f..f67a8d1cd0b0 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:26 2010 4# Mon Apr 19 23:16:50 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,10 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102# CONFIG_GROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -110,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
113# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
114CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -315,6 +318,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 318# Bus options
316# 319#
317CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
319CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
320# CONFIG_PCI is not set 324# CONFIG_PCI is not set
@@ -345,7 +349,6 @@ CONFIG_NET=y
345# Networking options 349# Networking options
346# 350#
347CONFIG_PACKET=y 351CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 352CONFIG_UNIX=y
350CONFIG_XFRM=y 353CONFIG_XFRM=y
351# CONFIG_XFRM_USER is not set 354# CONFIG_XFRM_USER is not set
@@ -522,6 +525,8 @@ CONFIG_MTD_PHYSMAP_OF=y
522# UBI - Unsorted block images 525# UBI - Unsorted block images
523# 526#
524# CONFIG_MTD_UBI is not set 527# CONFIG_MTD_UBI is not set
528CONFIG_OF_FLATTREE=y
529CONFIG_OF_DYNAMIC=y
525CONFIG_OF_DEVICE=y 530CONFIG_OF_DEVICE=y
526CONFIG_OF_GPIO=y 531CONFIG_OF_GPIO=y
527CONFIG_OF_MDIO=y 532CONFIG_OF_MDIO=y
@@ -575,6 +580,7 @@ CONFIG_IDE_PROC_FS=y
575# 580#
576# SCSI device support 581# SCSI device support
577# 582#
583CONFIG_SCSI_MOD=y
578# CONFIG_RAID_ATTRS is not set 584# CONFIG_RAID_ATTRS is not set
579# CONFIG_SCSI is not set 585# CONFIG_SCSI is not set
580# CONFIG_SCSI_DMA is not set 586# CONFIG_SCSI_DMA is not set
@@ -701,6 +707,7 @@ CONFIG_SERIAL_CORE=y
701CONFIG_SERIAL_CORE_CONSOLE=y 707CONFIG_SERIAL_CORE_CONSOLE=y
702CONFIG_SERIAL_CPM=y 708CONFIG_SERIAL_CPM=y
703CONFIG_SERIAL_CPM_CONSOLE=y 709CONFIG_SERIAL_CPM_CONSOLE=y
710# CONFIG_SERIAL_TIMBERDALE is not set
704# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 711# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
705CONFIG_UNIX98_PTYS=y 712CONFIG_UNIX98_PTYS=y
706# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 713# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -732,6 +739,7 @@ CONFIG_GPIOLIB=y
732# 739#
733# Memory mapped GPIO expanders: 740# Memory mapped GPIO expanders:
734# 741#
742# CONFIG_GPIO_IT8761E is not set
735# CONFIG_GPIO_XILINX is not set 743# CONFIG_GPIO_XILINX is not set
736 744
737# 745#
@@ -915,6 +923,7 @@ CONFIG_MISC_FILESYSTEMS=y
915# CONFIG_BFS_FS is not set 923# CONFIG_BFS_FS is not set
916# CONFIG_EFS_FS is not set 924# CONFIG_EFS_FS is not set
917# CONFIG_JFFS2_FS is not set 925# CONFIG_JFFS2_FS is not set
926# CONFIG_LOGFS is not set
918# CONFIG_CRAMFS is not set 927# CONFIG_CRAMFS is not set
919# CONFIG_SQUASHFS is not set 928# CONFIG_SQUASHFS is not set
920# CONFIG_VXFS_FS is not set 929# CONFIG_VXFS_FS is not set
@@ -937,6 +946,7 @@ CONFIG_SUNRPC=y
937# CONFIG_RPCSEC_GSS_KRB5 is not set 946# CONFIG_RPCSEC_GSS_KRB5 is not set
938# CONFIG_RPCSEC_GSS_SPKM3 is not set 947# CONFIG_RPCSEC_GSS_SPKM3 is not set
939# CONFIG_SMB_FS is not set 948# CONFIG_SMB_FS is not set
949# CONFIG_CEPH_FS is not set
940# CONFIG_CIFS is not set 950# CONFIG_CIFS is not set
941# CONFIG_NCP_FS is not set 951# CONFIG_NCP_FS is not set
942# CONFIG_CODA_FS is not set 952# CONFIG_CODA_FS is not set
@@ -1036,6 +1046,7 @@ CONFIG_DEBUG_MUTEXES=y
1036# CONFIG_BACKTRACE_SELF_TEST is not set 1046# CONFIG_BACKTRACE_SELF_TEST is not set
1037# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1047# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1038# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1048# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1049# CONFIG_LKDTM is not set
1039# CONFIG_FAULT_INJECTION is not set 1050# CONFIG_FAULT_INJECTION is not set
1040# CONFIG_LATENCYTOP is not set 1051# CONFIG_LATENCYTOP is not set
1041CONFIG_SYSCTL_SYSCALL_CHECK=y 1052CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 5db54cd274c6..61b122a25cdb 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:27 2010 4# Mon Apr 19 23:16:51 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -316,6 +315,7 @@ CONFIG_ISA_DMA_API=y
316# Bus options 315# Bus options
317# 316#
318CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318# CONFIG_NEED_DMA_MAP_STATE is not set
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_PPC_PCI_CHOICE=y 320CONFIG_PPC_PCI_CHOICE=y
321# CONFIG_PCI is not set 321# CONFIG_PCI is not set
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351CONFIG_XFRM=y 350CONFIG_XFRM=y
352CONFIG_XFRM_USER=y 351CONFIG_XFRM_USER=y
@@ -443,6 +442,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
443# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
444# CONFIG_CONNECTOR is not set 443# CONFIG_CONNECTOR is not set
445# CONFIG_MTD is not set 444# CONFIG_MTD is not set
445CONFIG_OF_FLATTREE=y
446CONFIG_OF_DYNAMIC=y
446CONFIG_OF_DEVICE=y 447CONFIG_OF_DEVICE=y
447CONFIG_OF_MDIO=y 448CONFIG_OF_MDIO=y
448# CONFIG_PARPORT is not set 449# CONFIG_PARPORT is not set
@@ -477,6 +478,7 @@ CONFIG_HAVE_IDE=y
477# 478#
478# SCSI device support 479# SCSI device support
479# 480#
481CONFIG_SCSI_MOD=y
480# CONFIG_RAID_ATTRS is not set 482# CONFIG_RAID_ATTRS is not set
481# CONFIG_SCSI is not set 483# CONFIG_SCSI is not set
482# CONFIG_SCSI_DMA is not set 484# CONFIG_SCSI_DMA is not set
@@ -602,6 +604,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
602CONFIG_SERIAL_CORE=y 604CONFIG_SERIAL_CORE=y
603CONFIG_SERIAL_CORE_CONSOLE=y 605CONFIG_SERIAL_CORE_CONSOLE=y
604# CONFIG_SERIAL_OF_PLATFORM is not set 606# CONFIG_SERIAL_OF_PLATFORM is not set
607# CONFIG_SERIAL_TIMBERDALE is not set
605# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
606CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
607# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -788,6 +791,7 @@ CONFIG_MISC_FILESYSTEMS=y
788# CONFIG_BEFS_FS is not set 791# CONFIG_BEFS_FS is not set
789# CONFIG_BFS_FS is not set 792# CONFIG_BFS_FS is not set
790# CONFIG_EFS_FS is not set 793# CONFIG_EFS_FS is not set
794# CONFIG_LOGFS is not set
791# CONFIG_CRAMFS is not set 795# CONFIG_CRAMFS is not set
792# CONFIG_SQUASHFS is not set 796# CONFIG_SQUASHFS is not set
793# CONFIG_VXFS_FS is not set 797# CONFIG_VXFS_FS is not set
@@ -810,6 +814,7 @@ CONFIG_SUNRPC=y
810# CONFIG_RPCSEC_GSS_KRB5 is not set 814# CONFIG_RPCSEC_GSS_KRB5 is not set
811# CONFIG_RPCSEC_GSS_SPKM3 is not set 815# CONFIG_RPCSEC_GSS_SPKM3 is not set
812# CONFIG_SMB_FS is not set 816# CONFIG_SMB_FS is not set
817# CONFIG_CEPH_FS is not set
813# CONFIG_CIFS is not set 818# CONFIG_CIFS is not set
814# CONFIG_NCP_FS is not set 819# CONFIG_NCP_FS is not set
815# CONFIG_CODA_FS is not set 820# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 76c7018c5cd2..a5ceaa4b5e42 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:28 2010 4# Mon Apr 19 23:16:52 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103# CONFIG_FAIR_GROUP_SCHED is not set
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332# CONFIG_PCI_LEGACY is not set
333CONFIG_PCI_DEBUG=y 332CONFIG_PCI_DEBUG=y
334# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
335# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
@@ -358,7 +357,6 @@ CONFIG_NET=y
358# Networking options 357# Networking options
359# 358#
360CONFIG_PACKET=y 359CONFIG_PACKET=y
361# CONFIG_PACKET_MMAP is not set
362CONFIG_UNIX=y 360CONFIG_UNIX=y
363CONFIG_XFRM=y 361CONFIG_XFRM=y
364# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -455,6 +453,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
455# CONFIG_SYS_HYPERVISOR is not set 453# CONFIG_SYS_HYPERVISOR is not set
456# CONFIG_CONNECTOR is not set 454# CONFIG_CONNECTOR is not set
457# CONFIG_MTD is not set 455# CONFIG_MTD is not set
456CONFIG_OF_FLATTREE=y
457CONFIG_OF_DYNAMIC=y
458CONFIG_OF_DEVICE=y 458CONFIG_OF_DEVICE=y
459CONFIG_OF_GPIO=y 459CONFIG_OF_GPIO=y
460CONFIG_OF_MDIO=y 460CONFIG_OF_MDIO=y
@@ -500,6 +500,7 @@ CONFIG_HAVE_IDE=y
500# 500#
501# SCSI device support 501# SCSI device support
502# 502#
503CONFIG_SCSI_MOD=y
503# CONFIG_RAID_ATTRS is not set 504# CONFIG_RAID_ATTRS is not set
504# CONFIG_SCSI is not set 505# CONFIG_SCSI is not set
505# CONFIG_SCSI_DMA is not set 506# CONFIG_SCSI_DMA is not set
@@ -609,6 +610,8 @@ CONFIG_NETDEV_10000=y
609# CONFIG_CHELSIO_T1 is not set 610# CONFIG_CHELSIO_T1 is not set
610CONFIG_CHELSIO_T3_DEPENDS=y 611CONFIG_CHELSIO_T3_DEPENDS=y
611# CONFIG_CHELSIO_T3 is not set 612# CONFIG_CHELSIO_T3 is not set
613CONFIG_CHELSIO_T4_DEPENDS=y
614# CONFIG_CHELSIO_T4 is not set
612# CONFIG_ENIC is not set 615# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 616# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 617# CONFIG_IXGB is not set
@@ -621,6 +624,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
621# CONFIG_MLX4_CORE is not set 624# CONFIG_MLX4_CORE is not set
622# CONFIG_TEHUTI is not set 625# CONFIG_TEHUTI is not set
623# CONFIG_BNX2X is not set 626# CONFIG_BNX2X is not set
627# CONFIG_QLCNIC is not set
624# CONFIG_QLGE is not set 628# CONFIG_QLGE is not set
625# CONFIG_SFC is not set 629# CONFIG_SFC is not set
626# CONFIG_BE2NET is not set 630# CONFIG_BE2NET is not set
@@ -700,6 +704,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
700CONFIG_SERIAL_CPM=y 704CONFIG_SERIAL_CPM=y
701CONFIG_SERIAL_CPM_CONSOLE=y 705CONFIG_SERIAL_CPM_CONSOLE=y
702# CONFIG_SERIAL_JSM is not set 706# CONFIG_SERIAL_JSM is not set
707# CONFIG_SERIAL_TIMBERDALE is not set
703# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 708# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
704CONFIG_UNIX98_PTYS=y 709CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 710# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -733,7 +738,9 @@ CONFIG_GPIOLIB=y
733# 738#
734# Memory mapped GPIO expanders: 739# Memory mapped GPIO expanders:
735# 740#
741# CONFIG_GPIO_IT8761E is not set
736# CONFIG_GPIO_XILINX is not set 742# CONFIG_GPIO_XILINX is not set
743# CONFIG_GPIO_SCH is not set
737 744
738# 745#
739# I2C GPIO expanders: 746# I2C GPIO expanders:
@@ -793,6 +800,8 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 801# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 802# CONFIG_MFD_TMIO is not set
803# CONFIG_MFD_TIMBERDALE is not set
804# CONFIG_LPC_SCH is not set
796# CONFIG_REGULATOR is not set 805# CONFIG_REGULATOR is not set
797# CONFIG_MEDIA_SUPPORT is not set 806# CONFIG_MEDIA_SUPPORT is not set
798 807
@@ -801,6 +810,7 @@ CONFIG_SSB_POSSIBLE=y
801# 810#
802# CONFIG_AGP is not set 811# CONFIG_AGP is not set
803CONFIG_VGA_ARB=y 812CONFIG_VGA_ARB=y
813CONFIG_VGA_ARB_MAX_GPUS=16
804# CONFIG_DRM is not set 814# CONFIG_DRM is not set
805# CONFIG_VGASTATE is not set 815# CONFIG_VGASTATE is not set
806CONFIG_VIDEO_OUTPUT_CONTROL=y 816CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -927,6 +937,7 @@ CONFIG_MISC_FILESYSTEMS=y
927# CONFIG_BEFS_FS is not set 937# CONFIG_BEFS_FS is not set
928# CONFIG_BFS_FS is not set 938# CONFIG_BFS_FS is not set
929# CONFIG_EFS_FS is not set 939# CONFIG_EFS_FS is not set
940# CONFIG_LOGFS is not set
930# CONFIG_CRAMFS is not set 941# CONFIG_CRAMFS is not set
931# CONFIG_SQUASHFS is not set 942# CONFIG_SQUASHFS is not set
932# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
@@ -949,6 +960,7 @@ CONFIG_SUNRPC=y
949# CONFIG_RPCSEC_GSS_KRB5 is not set 960# CONFIG_RPCSEC_GSS_KRB5 is not set
950# CONFIG_RPCSEC_GSS_SPKM3 is not set 961# CONFIG_RPCSEC_GSS_SPKM3 is not set
951# CONFIG_SMB_FS is not set 962# CONFIG_SMB_FS is not set
963# CONFIG_CEPH_FS is not set
952# CONFIG_CIFS is not set 964# CONFIG_CIFS is not set
953# CONFIG_NCP_FS is not set 965# CONFIG_NCP_FS is not set
954# CONFIG_CODA_FS is not set 966# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index fab8adacbf79..4adb4eba2d4f 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:53 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -317,6 +316,7 @@ CONFIG_ISA_DMA_API=y
317# Bus options 316# Bus options
318# 317#
319CONFIG_ZONE_DMA=y 318CONFIG_ZONE_DMA=y
319# CONFIG_NEED_DMA_MAP_STATE is not set
320CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
321CONFIG_FSL_SOC=y 321CONFIG_FSL_SOC=y
322CONFIG_FSL_PCI=y 322CONFIG_FSL_PCI=y
@@ -327,7 +327,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 327# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 328CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 329# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 330# CONFIG_PCI_DEBUG is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
@@ -356,7 +355,6 @@ CONFIG_NET=y
356# Networking options 355# Networking options
357# 356#
358CONFIG_PACKET=y 357CONFIG_PACKET=y
359# CONFIG_PACKET_MMAP is not set
360CONFIG_UNIX=y 358CONFIG_UNIX=y
361CONFIG_XFRM=y 359CONFIG_XFRM=y
362CONFIG_XFRM_USER=y 360CONFIG_XFRM_USER=y
@@ -453,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
453# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
454# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
455# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
456CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
457CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
458# CONFIG_PARPORT is not set 458# CONFIG_PARPORT is not set
@@ -552,6 +552,7 @@ CONFIG_BLK_DEV_IDEDMA=y
552# 552#
553# SCSI device support 553# SCSI device support
554# 554#
555CONFIG_SCSI_MOD=y
555# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
556# CONFIG_SCSI is not set 557# CONFIG_SCSI is not set
557# CONFIG_SCSI_DMA is not set 558# CONFIG_SCSI_DMA is not set
@@ -657,6 +658,8 @@ CONFIG_NETDEV_10000=y
657# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
658CONFIG_CHELSIO_T3_DEPENDS=y 659CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
661CONFIG_CHELSIO_T4_DEPENDS=y
662# CONFIG_CHELSIO_T4 is not set
660# CONFIG_ENIC is not set 663# CONFIG_ENIC is not set
661# CONFIG_IXGBE is not set 664# CONFIG_IXGBE is not set
662# CONFIG_IXGB is not set 665# CONFIG_IXGB is not set
@@ -669,6 +672,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
669# CONFIG_MLX4_CORE is not set 672# CONFIG_MLX4_CORE is not set
670# CONFIG_TEHUTI is not set 673# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set 674# CONFIG_BNX2X is not set
675# CONFIG_QLCNIC is not set
672# CONFIG_QLGE is not set 676# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 677# CONFIG_SFC is not set
674# CONFIG_BE2NET is not set 678# CONFIG_BE2NET is not set
@@ -753,6 +757,7 @@ CONFIG_SERIAL_CORE=y
753CONFIG_SERIAL_CORE_CONSOLE=y 757CONFIG_SERIAL_CORE_CONSOLE=y
754# CONFIG_SERIAL_JSM is not set 758# CONFIG_SERIAL_JSM is not set
755# CONFIG_SERIAL_OF_PLATFORM is not set 759# CONFIG_SERIAL_OF_PLATFORM is not set
760# CONFIG_SERIAL_TIMBERDALE is not set
756# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 761# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
757CONFIG_UNIX98_PTYS=y 762CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 763# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -817,6 +822,7 @@ CONFIG_SSB_POSSIBLE=y
817# CONFIG_MFD_SM501 is not set 822# CONFIG_MFD_SM501 is not set
818# CONFIG_HTC_PASIC3 is not set 823# CONFIG_HTC_PASIC3 is not set
819# CONFIG_MFD_TMIO is not set 824# CONFIG_MFD_TMIO is not set
825# CONFIG_LPC_SCH is not set
820# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
821# CONFIG_MEDIA_SUPPORT is not set 827# CONFIG_MEDIA_SUPPORT is not set
822 828
@@ -825,6 +831,7 @@ CONFIG_SSB_POSSIBLE=y
825# 831#
826# CONFIG_AGP is not set 832# CONFIG_AGP is not set
827CONFIG_VGA_ARB=y 833CONFIG_VGA_ARB=y
834CONFIG_VGA_ARB_MAX_GPUS=16
828# CONFIG_DRM is not set 835# CONFIG_DRM is not set
829# CONFIG_VGASTATE is not set 836# CONFIG_VGASTATE is not set
830CONFIG_VIDEO_OUTPUT_CONTROL=y 837CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -951,6 +958,7 @@ CONFIG_MISC_FILESYSTEMS=y
951# CONFIG_BEFS_FS is not set 958# CONFIG_BEFS_FS is not set
952# CONFIG_BFS_FS is not set 959# CONFIG_BFS_FS is not set
953# CONFIG_EFS_FS is not set 960# CONFIG_EFS_FS is not set
961# CONFIG_LOGFS is not set
954# CONFIG_CRAMFS is not set 962# CONFIG_CRAMFS is not set
955# CONFIG_SQUASHFS is not set 963# CONFIG_SQUASHFS is not set
956# CONFIG_VXFS_FS is not set 964# CONFIG_VXFS_FS is not set
@@ -973,6 +981,7 @@ CONFIG_SUNRPC=y
973# CONFIG_RPCSEC_GSS_KRB5 is not set 981# CONFIG_RPCSEC_GSS_KRB5 is not set
974# CONFIG_RPCSEC_GSS_SPKM3 is not set 982# CONFIG_RPCSEC_GSS_SPKM3 is not set
975# CONFIG_SMB_FS is not set 983# CONFIG_SMB_FS is not set
984# CONFIG_CEPH_FS is not set
976# CONFIG_CIFS is not set 985# CONFIG_CIFS is not set
977# CONFIG_NCP_FS is not set 986# CONFIG_NCP_FS is not set
978# CONFIG_CODA_FS is not set 987# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 8290385e9b94..3de8450cd551 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_PPC_INDIRECT_PCI=y 317CONFIG_PPC_INDIRECT_PCI=y
318CONFIG_FSL_SOC=y 318CONFIG_FSL_SOC=y
319CONFIG_FSL_PCI=y 319CONFIG_FSL_PCI=y
@@ -324,7 +324,6 @@ CONFIG_PCI_SYSCALL=y
324# CONFIG_PCIEPORTBUS is not set 324# CONFIG_PCIEPORTBUS is not set
325CONFIG_ARCH_SUPPORTS_MSI=y 325CONFIG_ARCH_SUPPORTS_MSI=y
326# CONFIG_PCI_MSI is not set 326# CONFIG_PCI_MSI is not set
327# CONFIG_PCI_LEGACY is not set
328# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
329# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
330# CONFIG_PCCARD is not set 329# CONFIG_PCCARD is not set
@@ -352,7 +351,6 @@ CONFIG_NET=y
352# Networking options 351# Networking options
353# 352#
354CONFIG_PACKET=y 353CONFIG_PACKET=y
355# CONFIG_PACKET_MMAP is not set
356CONFIG_UNIX=y 354CONFIG_UNIX=y
357CONFIG_XFRM=y 355CONFIG_XFRM=y
358CONFIG_XFRM_USER=y 356CONFIG_XFRM_USER=y
@@ -447,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
447# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
448# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
449# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
450CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
451CONFIG_OF_MDIO=y 451CONFIG_OF_MDIO=y
452# CONFIG_PARPORT is not set 452# CONFIG_PARPORT is not set
@@ -491,6 +491,7 @@ CONFIG_HAVE_IDE=y
491# 491#
492# SCSI device support 492# SCSI device support
493# 493#
494CONFIG_SCSI_MOD=y
494# CONFIG_RAID_ATTRS is not set 495# CONFIG_RAID_ATTRS is not set
495# CONFIG_SCSI is not set 496# CONFIG_SCSI is not set
496# CONFIG_SCSI_DMA is not set 497# CONFIG_SCSI_DMA is not set
@@ -596,6 +597,8 @@ CONFIG_NETDEV_10000=y
596# CONFIG_CHELSIO_T1 is not set 597# CONFIG_CHELSIO_T1 is not set
597CONFIG_CHELSIO_T3_DEPENDS=y 598CONFIG_CHELSIO_T3_DEPENDS=y
598# CONFIG_CHELSIO_T3 is not set 599# CONFIG_CHELSIO_T3 is not set
600CONFIG_CHELSIO_T4_DEPENDS=y
601# CONFIG_CHELSIO_T4 is not set
599# CONFIG_ENIC is not set 602# CONFIG_ENIC is not set
600# CONFIG_IXGBE is not set 603# CONFIG_IXGBE is not set
601# CONFIG_IXGB is not set 604# CONFIG_IXGB is not set
@@ -608,6 +611,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
608# CONFIG_MLX4_CORE is not set 611# CONFIG_MLX4_CORE is not set
609# CONFIG_TEHUTI is not set 612# CONFIG_TEHUTI is not set
610# CONFIG_BNX2X is not set 613# CONFIG_BNX2X is not set
614# CONFIG_QLCNIC is not set
611# CONFIG_QLGE is not set 615# CONFIG_QLGE is not set
612# CONFIG_SFC is not set 616# CONFIG_SFC is not set
613# CONFIG_BE2NET is not set 617# CONFIG_BE2NET is not set
@@ -692,6 +696,7 @@ CONFIG_SERIAL_CORE=y
692CONFIG_SERIAL_CORE_CONSOLE=y 696CONFIG_SERIAL_CORE_CONSOLE=y
693# CONFIG_SERIAL_JSM is not set 697# CONFIG_SERIAL_JSM is not set
694# CONFIG_SERIAL_OF_PLATFORM is not set 698# CONFIG_SERIAL_OF_PLATFORM is not set
699# CONFIG_SERIAL_TIMBERDALE is not set
695# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 700# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
696CONFIG_UNIX98_PTYS=y 701CONFIG_UNIX98_PTYS=y
697# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 702# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -756,6 +761,7 @@ CONFIG_SSB_POSSIBLE=y
756# CONFIG_MFD_SM501 is not set 761# CONFIG_MFD_SM501 is not set
757# CONFIG_HTC_PASIC3 is not set 762# CONFIG_HTC_PASIC3 is not set
758# CONFIG_MFD_TMIO is not set 763# CONFIG_MFD_TMIO is not set
764# CONFIG_LPC_SCH is not set
759# CONFIG_REGULATOR is not set 765# CONFIG_REGULATOR is not set
760# CONFIG_MEDIA_SUPPORT is not set 766# CONFIG_MEDIA_SUPPORT is not set
761 767
@@ -764,6 +770,7 @@ CONFIG_SSB_POSSIBLE=y
764# 770#
765# CONFIG_AGP is not set 771# CONFIG_AGP is not set
766CONFIG_VGA_ARB=y 772CONFIG_VGA_ARB=y
773CONFIG_VGA_ARB_MAX_GPUS=16
767# CONFIG_DRM is not set 774# CONFIG_DRM is not set
768# CONFIG_VGASTATE is not set 775# CONFIG_VGASTATE is not set
769CONFIG_VIDEO_OUTPUT_CONTROL=y 776CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -856,6 +863,7 @@ CONFIG_MISC_FILESYSTEMS=y
856# CONFIG_BEFS_FS is not set 863# CONFIG_BEFS_FS is not set
857# CONFIG_BFS_FS is not set 864# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set 865# CONFIG_EFS_FS is not set
866# CONFIG_LOGFS is not set
859# CONFIG_CRAMFS is not set 867# CONFIG_CRAMFS is not set
860# CONFIG_SQUASHFS is not set 868# CONFIG_SQUASHFS is not set
861# CONFIG_VXFS_FS is not set 869# CONFIG_VXFS_FS is not set
@@ -878,6 +886,7 @@ CONFIG_SUNRPC=y
878# CONFIG_RPCSEC_GSS_KRB5 is not set 886# CONFIG_RPCSEC_GSS_KRB5 is not set
879# CONFIG_RPCSEC_GSS_SPKM3 is not set 887# CONFIG_RPCSEC_GSS_SPKM3 is not set
880# CONFIG_SMB_FS is not set 888# CONFIG_SMB_FS is not set
889# CONFIG_CEPH_FS is not set
881# CONFIG_CIFS is not set 890# CONFIG_CIFS is not set
882# CONFIG_NCP_FS is not set 891# CONFIG_NCP_FS is not set
883# CONFIG_CODA_FS is not set 892# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 2499b5ba7141..bd467fe13932 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:30 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_FSL_SOC=y 317CONFIG_FSL_SOC=y
318CONFIG_PPC_PCI_CHOICE=y 318CONFIG_PPC_PCI_CHOICE=y
319# CONFIG_PCI is not set 319# CONFIG_PCI is not set
@@ -344,7 +344,6 @@ CONFIG_NET=y
344# Networking options 344# Networking options
345# 345#
346CONFIG_PACKET=y 346CONFIG_PACKET=y
347# CONFIG_PACKET_MMAP is not set
348CONFIG_UNIX=y 347CONFIG_UNIX=y
349CONFIG_XFRM=y 348CONFIG_XFRM=y
350CONFIG_XFRM_USER=y 349CONFIG_XFRM_USER=y
@@ -441,6 +440,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
441# CONFIG_SYS_HYPERVISOR is not set 440# CONFIG_SYS_HYPERVISOR is not set
442# CONFIG_CONNECTOR is not set 441# CONFIG_CONNECTOR is not set
443# CONFIG_MTD is not set 442# CONFIG_MTD is not set
443CONFIG_OF_FLATTREE=y
444CONFIG_OF_DYNAMIC=y
444CONFIG_OF_DEVICE=y 445CONFIG_OF_DEVICE=y
445CONFIG_OF_MDIO=y 446CONFIG_OF_MDIO=y
446# CONFIG_PARPORT is not set 447# CONFIG_PARPORT is not set
@@ -475,6 +476,7 @@ CONFIG_HAVE_IDE=y
475# 476#
476# SCSI device support 477# SCSI device support
477# 478#
479CONFIG_SCSI_MOD=y
478# CONFIG_RAID_ATTRS is not set 480# CONFIG_RAID_ATTRS is not set
479# CONFIG_SCSI is not set 481# CONFIG_SCSI is not set
480# CONFIG_SCSI_DMA is not set 482# CONFIG_SCSI_DMA is not set
@@ -600,6 +602,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
600CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
601CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
602# CONFIG_SERIAL_OF_PLATFORM is not set 604# CONFIG_SERIAL_OF_PLATFORM is not set
605# CONFIG_SERIAL_TIMBERDALE is not set
603# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 606# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
604CONFIG_UNIX98_PTYS=y 607CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 608# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -815,6 +818,7 @@ CONFIG_MISC_FILESYSTEMS=y
815# CONFIG_BEFS_FS is not set 818# CONFIG_BEFS_FS is not set
816# CONFIG_BFS_FS is not set 819# CONFIG_BFS_FS is not set
817# CONFIG_EFS_FS is not set 820# CONFIG_EFS_FS is not set
821# CONFIG_LOGFS is not set
818# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
819# CONFIG_SQUASHFS is not set 823# CONFIG_SQUASHFS is not set
820# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
@@ -837,6 +841,7 @@ CONFIG_SUNRPC=y
837# CONFIG_RPCSEC_GSS_KRB5 is not set 841# CONFIG_RPCSEC_GSS_KRB5 is not set
838# CONFIG_RPCSEC_GSS_SPKM3 is not set 842# CONFIG_RPCSEC_GSS_SPKM3 is not set
839# CONFIG_SMB_FS is not set 843# CONFIG_SMB_FS is not set
844# CONFIG_CEPH_FS is not set
840# CONFIG_CIFS is not set 845# CONFIG_CIFS is not set
841# CONFIG_NCP_FS is not set 846# CONFIG_NCP_FS is not set
842# CONFIG_CODA_FS is not set 847# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig
index e2edb79cfd1a..9803e031165c 100644
--- a/arch/powerpc/configs/85xx/socrates_defconfig
+++ b/arch/powerpc/configs/85xx/socrates_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:31 2010 4# Mon Apr 19 23:16:55 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=16 104CONFIG_LOG_BUF_SHIFT=16
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332CONFIG_PCI_LEGACY=y
333# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
334# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
335# CONFIG_HAS_RAPIDIO is not set 334# CONFIG_HAS_RAPIDIO is not set
@@ -355,7 +354,6 @@ CONFIG_NET=y
355# Networking options 354# Networking options
356# 355#
357CONFIG_PACKET=y 356CONFIG_PACKET=y
358# CONFIG_PACKET_MMAP is not set
359CONFIG_UNIX=y 357CONFIG_UNIX=y
360CONFIG_XFRM=y 358CONFIG_XFRM=y
361# CONFIG_XFRM_USER is not set 359# CONFIG_XFRM_USER is not set
@@ -554,6 +552,8 @@ CONFIG_MTD_NAND_SOCRATES=y
554# UBI - Unsorted block images 552# UBI - Unsorted block images
555# 553#
556# CONFIG_MTD_UBI is not set 554# CONFIG_MTD_UBI is not set
555CONFIG_OF_FLATTREE=y
556CONFIG_OF_DYNAMIC=y
557CONFIG_OF_DEVICE=y 557CONFIG_OF_DEVICE=y
558CONFIG_OF_I2C=y 558CONFIG_OF_I2C=y
559CONFIG_OF_SPI=y 559CONFIG_OF_SPI=y
@@ -591,6 +591,7 @@ CONFIG_MISC_DEVICES=y
591# CONFIG_ENCLOSURE_SERVICES is not set 591# CONFIG_ENCLOSURE_SERVICES is not set
592# CONFIG_HP_ILO is not set 592# CONFIG_HP_ILO is not set
593# CONFIG_ISL29003 is not set 593# CONFIG_ISL29003 is not set
594# CONFIG_SENSORS_TSL2550 is not set
594# CONFIG_DS1682 is not set 595# CONFIG_DS1682 is not set
595# CONFIG_TI_DAC7512 is not set 596# CONFIG_TI_DAC7512 is not set
596# CONFIG_C2PORT is not set 597# CONFIG_C2PORT is not set
@@ -610,6 +611,7 @@ CONFIG_HAVE_IDE=y
610# 611#
611# SCSI device support 612# SCSI device support
612# 613#
614CONFIG_SCSI_MOD=y
613# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
614CONFIG_SCSI=y 616CONFIG_SCSI=y
615CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -867,6 +869,7 @@ CONFIG_SERIAL_CORE=y
867CONFIG_SERIAL_CORE_CONSOLE=y 869CONFIG_SERIAL_CORE_CONSOLE=y
868# CONFIG_SERIAL_JSM is not set 870# CONFIG_SERIAL_JSM is not set
869# CONFIG_SERIAL_OF_PLATFORM is not set 871# CONFIG_SERIAL_OF_PLATFORM is not set
872# CONFIG_SERIAL_TIMBERDALE is not set
870# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 873# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
871CONFIG_UNIX98_PTYS=y 874CONFIG_UNIX98_PTYS=y
872# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 875# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -916,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
916CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
917# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
918# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
919 923
920# 924#
921# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -929,15 +933,9 @@ CONFIG_I2C_MPC=y
929# 933#
930# CONFIG_I2C_PCA_PLATFORM is not set 934# CONFIG_I2C_PCA_PLATFORM is not set
931# CONFIG_I2C_STUB is not set 935# CONFIG_I2C_STUB is not set
932
933#
934# Miscellaneous I2C Chip support
935#
936# CONFIG_SENSORS_TSL2550 is not set
937# CONFIG_I2C_DEBUG_CORE is not set 936# CONFIG_I2C_DEBUG_CORE is not set
938# CONFIG_I2C_DEBUG_ALGO is not set 937# CONFIG_I2C_DEBUG_ALGO is not set
939# CONFIG_I2C_DEBUG_BUS is not set 938# CONFIG_I2C_DEBUG_BUS is not set
940# CONFIG_I2C_DEBUG_CHIP is not set
941CONFIG_SPI=y 939CONFIG_SPI=y
942CONFIG_SPI_MASTER=y 940CONFIG_SPI_MASTER=y
943 941
@@ -979,10 +977,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
979# CONFIG_SENSORS_ADM1029 is not set 977# CONFIG_SENSORS_ADM1029 is not set
980# CONFIG_SENSORS_ADM1031 is not set 978# CONFIG_SENSORS_ADM1031 is not set
981# CONFIG_SENSORS_ADM9240 is not set 979# CONFIG_SENSORS_ADM9240 is not set
980# CONFIG_SENSORS_ADT7411 is not set
982# CONFIG_SENSORS_ADT7462 is not set 981# CONFIG_SENSORS_ADT7462 is not set
983# CONFIG_SENSORS_ADT7470 is not set 982# CONFIG_SENSORS_ADT7470 is not set
984# CONFIG_SENSORS_ADT7473 is not set
985# CONFIG_SENSORS_ADT7475 is not set 983# CONFIG_SENSORS_ADT7475 is not set
984# CONFIG_SENSORS_ASC7621 is not set
986# CONFIG_SENSORS_ATXP1 is not set 985# CONFIG_SENSORS_ATXP1 is not set
987# CONFIG_SENSORS_DS1621 is not set 986# CONFIG_SENSORS_DS1621 is not set
988# CONFIG_SENSORS_I5K_AMB is not set 987# CONFIG_SENSORS_I5K_AMB is not set
@@ -1021,6 +1020,7 @@ CONFIG_SENSORS_LM75=y
1021# CONFIG_SENSORS_SMSC47M192 is not set 1020# CONFIG_SENSORS_SMSC47M192 is not set
1022# CONFIG_SENSORS_SMSC47B397 is not set 1021# CONFIG_SENSORS_SMSC47B397 is not set
1023# CONFIG_SENSORS_ADS7828 is not set 1022# CONFIG_SENSORS_ADS7828 is not set
1023# CONFIG_SENSORS_AMC6821 is not set
1024# CONFIG_SENSORS_THMC50 is not set 1024# CONFIG_SENSORS_THMC50 is not set
1025# CONFIG_SENSORS_TMP401 is not set 1025# CONFIG_SENSORS_TMP401 is not set
1026# CONFIG_SENSORS_TMP421 is not set 1026# CONFIG_SENSORS_TMP421 is not set
@@ -1050,21 +1050,24 @@ CONFIG_SSB_POSSIBLE=y
1050# Multifunction device drivers 1050# Multifunction device drivers
1051# 1051#
1052# CONFIG_MFD_CORE is not set 1052# CONFIG_MFD_CORE is not set
1053# CONFIG_MFD_88PM860X is not set
1053# CONFIG_MFD_SM501 is not set 1054# CONFIG_MFD_SM501 is not set
1054# CONFIG_HTC_PASIC3 is not set 1055# CONFIG_HTC_PASIC3 is not set
1055# CONFIG_TWL4030_CORE is not set 1056# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1057# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1058# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1059# CONFIG_PMIC_ADP5520 is not set
1060# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1061# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1062# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1063# CONFIG_MFD_WM8350_I2C is not set
1064# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1065# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_MFD_MC13783 is not set 1066# CONFIG_MFD_MC13783 is not set
1064# CONFIG_AB3100_CORE is not set 1067# CONFIG_AB3100_CORE is not set
1065# CONFIG_EZX_PCAP is not set 1068# CONFIG_EZX_PCAP is not set
1066# CONFIG_MFD_88PM8607 is not set
1067# CONFIG_AB4500_CORE is not set 1069# CONFIG_AB4500_CORE is not set
1070# CONFIG_LPC_SCH is not set
1068# CONFIG_REGULATOR is not set 1071# CONFIG_REGULATOR is not set
1069# CONFIG_MEDIA_SUPPORT is not set 1072# CONFIG_MEDIA_SUPPORT is not set
1070 1073
@@ -1073,6 +1076,7 @@ CONFIG_SSB_POSSIBLE=y
1073# 1076#
1074# CONFIG_AGP is not set 1077# CONFIG_AGP is not set
1075CONFIG_VGA_ARB=y 1078CONFIG_VGA_ARB=y
1079CONFIG_VGA_ARB_MAX_GPUS=16
1076# CONFIG_DRM is not set 1080# CONFIG_DRM is not set
1077# CONFIG_VGASTATE is not set 1081# CONFIG_VGASTATE is not set
1078# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1082# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1180,6 +1184,7 @@ CONFIG_USB_HID=y
1180# 1184#
1181# Special HID drivers 1185# Special HID drivers
1182# 1186#
1187# CONFIG_HID_3M_PCT is not set
1183# CONFIG_HID_A4TECH is not set 1188# CONFIG_HID_A4TECH is not set
1184# CONFIG_HID_APPLE is not set 1189# CONFIG_HID_APPLE is not set
1185# CONFIG_HID_BELKIN is not set 1190# CONFIG_HID_BELKIN is not set
@@ -1194,12 +1199,16 @@ CONFIG_USB_HID=y
1194# CONFIG_HID_KENSINGTON is not set 1199# CONFIG_HID_KENSINGTON is not set
1195# CONFIG_HID_LOGITECH is not set 1200# CONFIG_HID_LOGITECH is not set
1196# CONFIG_HID_MICROSOFT is not set 1201# CONFIG_HID_MICROSOFT is not set
1202# CONFIG_HID_MOSART is not set
1197# CONFIG_HID_MONTEREY is not set 1203# CONFIG_HID_MONTEREY is not set
1198# CONFIG_HID_NTRIG is not set 1204# CONFIG_HID_NTRIG is not set
1205# CONFIG_HID_ORTEK is not set
1199# CONFIG_HID_PANTHERLORD is not set 1206# CONFIG_HID_PANTHERLORD is not set
1200# CONFIG_HID_PETALYNX is not set 1207# CONFIG_HID_PETALYNX is not set
1208# CONFIG_HID_QUANTA is not set
1201# CONFIG_HID_SAMSUNG is not set 1209# CONFIG_HID_SAMSUNG is not set
1202# CONFIG_HID_SONY is not set 1210# CONFIG_HID_SONY is not set
1211# CONFIG_HID_STANTUM is not set
1203# CONFIG_HID_SUNPLUS is not set 1212# CONFIG_HID_SUNPLUS is not set
1204# CONFIG_HID_GREENASIA is not set 1213# CONFIG_HID_GREENASIA is not set
1205# CONFIG_HID_SMARTJOYPLUS is not set 1214# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1307,7 +1316,6 @@ CONFIG_USB_STORAGE=y
1307# CONFIG_USB_RIO500 is not set 1316# CONFIG_USB_RIO500 is not set
1308# CONFIG_USB_LEGOTOWER is not set 1317# CONFIG_USB_LEGOTOWER is not set
1309# CONFIG_USB_LCD is not set 1318# CONFIG_USB_LCD is not set
1310# CONFIG_USB_BERRY_CHARGE is not set
1311# CONFIG_USB_LED is not set 1319# CONFIG_USB_LED is not set
1312# CONFIG_USB_CYPRESS_CY7C63 is not set 1320# CONFIG_USB_CYPRESS_CY7C63 is not set
1313# CONFIG_USB_CYTHERM is not set 1321# CONFIG_USB_CYTHERM is not set
@@ -1320,7 +1328,6 @@ CONFIG_USB_STORAGE=y
1320# CONFIG_USB_IOWARRIOR is not set 1328# CONFIG_USB_IOWARRIOR is not set
1321# CONFIG_USB_TEST is not set 1329# CONFIG_USB_TEST is not set
1322# CONFIG_USB_ISIGHTFW is not set 1330# CONFIG_USB_ISIGHTFW is not set
1323# CONFIG_USB_VST is not set
1324# CONFIG_USB_GADGET is not set 1331# CONFIG_USB_GADGET is not set
1325 1332
1326# 1333#
@@ -1491,6 +1498,7 @@ CONFIG_JFFS2_ZLIB=y
1491# CONFIG_JFFS2_LZO is not set 1498# CONFIG_JFFS2_LZO is not set
1492CONFIG_JFFS2_RTIME=y 1499CONFIG_JFFS2_RTIME=y
1493# CONFIG_JFFS2_RUBIN is not set 1500# CONFIG_JFFS2_RUBIN is not set
1501# CONFIG_LOGFS is not set
1494CONFIG_CRAMFS=y 1502CONFIG_CRAMFS=y
1495# CONFIG_SQUASHFS is not set 1503# CONFIG_SQUASHFS is not set
1496# CONFIG_VXFS_FS is not set 1504# CONFIG_VXFS_FS is not set
@@ -1515,6 +1523,7 @@ CONFIG_SUNRPC=y
1515# CONFIG_RPCSEC_GSS_KRB5 is not set 1523# CONFIG_RPCSEC_GSS_KRB5 is not set
1516# CONFIG_RPCSEC_GSS_SPKM3 is not set 1524# CONFIG_RPCSEC_GSS_SPKM3 is not set
1517# CONFIG_SMB_FS is not set 1525# CONFIG_SMB_FS is not set
1526# CONFIG_CEPH_FS is not set
1518# CONFIG_CIFS is not set 1527# CONFIG_CIFS is not set
1519# CONFIG_NCP_FS is not set 1528# CONFIG_NCP_FS is not set
1520# CONFIG_CODA_FS is not set 1529# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index ce313259df14..880ab7aaf202 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:32 2010 4# Mon Apr 19 23:16:56 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -334,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
339# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -363,7 +362,6 @@ CONFIG_NET=y
363# Networking options 362# Networking options
364# 363#
365CONFIG_PACKET=y 364CONFIG_PACKET=y
366# CONFIG_PACKET_MMAP is not set
367CONFIG_UNIX=y 365CONFIG_UNIX=y
368CONFIG_XFRM=y 366CONFIG_XFRM=y
369# CONFIG_XFRM_USER is not set 367# CONFIG_XFRM_USER is not set
@@ -520,6 +518,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
520# CONFIG_SYS_HYPERVISOR is not set 518# CONFIG_SYS_HYPERVISOR is not set
521# CONFIG_CONNECTOR is not set 519# CONFIG_CONNECTOR is not set
522# CONFIG_MTD is not set 520# CONFIG_MTD is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
523CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
524CONFIG_OF_GPIO=y 524CONFIG_OF_GPIO=y
525CONFIG_OF_I2C=m 525CONFIG_OF_I2C=m
@@ -563,6 +563,7 @@ CONFIG_MISC_DEVICES=y
563# CONFIG_ENCLOSURE_SERVICES is not set 563# CONFIG_ENCLOSURE_SERVICES is not set
564# CONFIG_HP_ILO is not set 564# CONFIG_HP_ILO is not set
565# CONFIG_ISL29003 is not set 565# CONFIG_ISL29003 is not set
566# CONFIG_SENSORS_TSL2550 is not set
566# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
567# CONFIG_C2PORT is not set 568# CONFIG_C2PORT is not set
568 569
@@ -630,6 +631,7 @@ CONFIG_IDE_PROC_FS=y
630# 631#
631# SCSI device support 632# SCSI device support
632# 633#
634CONFIG_SCSI_MOD=m
633# CONFIG_RAID_ATTRS is not set 635# CONFIG_RAID_ATTRS is not set
634CONFIG_SCSI=m 636CONFIG_SCSI=m
635CONFIG_SCSI_DMA=y 637CONFIG_SCSI_DMA=y
@@ -817,6 +819,8 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 819# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 820CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
822CONFIG_CHELSIO_T4_DEPENDS=y
823# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 824# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 825# CONFIG_IXGBE is not set
822# CONFIG_IXGB is not set 826# CONFIG_IXGB is not set
@@ -829,6 +833,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 833# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 834# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 835# CONFIG_BNX2X is not set
836# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 837# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 838# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 839# CONFIG_BE2NET is not set
@@ -947,6 +952,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
947CONFIG_SERIAL_CPM=y 952CONFIG_SERIAL_CPM=y
948CONFIG_SERIAL_CPM_CONSOLE=y 953CONFIG_SERIAL_CPM_CONSOLE=y
949# CONFIG_SERIAL_JSM is not set 954# CONFIG_SERIAL_JSM is not set
955# CONFIG_SERIAL_TIMBERDALE is not set
950# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 956# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
951CONFIG_UNIX98_PTYS=y 957CONFIG_UNIX98_PTYS=y
952# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 958# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1004,6 +1010,7 @@ CONFIG_I2C_ALGOBIT=m
1004# CONFIG_I2C_MPC is not set 1010# CONFIG_I2C_MPC is not set
1005# CONFIG_I2C_OCORES is not set 1011# CONFIG_I2C_OCORES is not set
1006# CONFIG_I2C_SIMTEC is not set 1012# CONFIG_I2C_SIMTEC is not set
1013# CONFIG_I2C_XILINX is not set
1007 1014
1008# 1015#
1009# External I2C/SMBus adapter drivers 1016# External I2C/SMBus adapter drivers
@@ -1017,15 +1024,9 @@ CONFIG_I2C_ALGOBIT=m
1017# 1024#
1018# CONFIG_I2C_PCA_PLATFORM is not set 1025# CONFIG_I2C_PCA_PLATFORM is not set
1019# CONFIG_I2C_STUB is not set 1026# CONFIG_I2C_STUB is not set
1020
1021#
1022# Miscellaneous I2C Chip support
1023#
1024# CONFIG_SENSORS_TSL2550 is not set
1025# CONFIG_I2C_DEBUG_CORE is not set 1027# CONFIG_I2C_DEBUG_CORE is not set
1026# CONFIG_I2C_DEBUG_ALGO is not set 1028# CONFIG_I2C_DEBUG_ALGO is not set
1027# CONFIG_I2C_DEBUG_BUS is not set 1029# CONFIG_I2C_DEBUG_BUS is not set
1028# CONFIG_I2C_DEBUG_CHIP is not set
1029# CONFIG_SPI is not set 1030# CONFIG_SPI is not set
1030 1031
1031# 1032#
@@ -1041,14 +1042,18 @@ CONFIG_GPIOLIB=y
1041# 1042#
1042# Memory mapped GPIO expanders: 1043# Memory mapped GPIO expanders:
1043# 1044#
1045# CONFIG_GPIO_IT8761E is not set
1044# CONFIG_GPIO_XILINX is not set 1046# CONFIG_GPIO_XILINX is not set
1047# CONFIG_GPIO_SCH is not set
1045 1048
1046# 1049#
1047# I2C GPIO expanders: 1050# I2C GPIO expanders:
1048# 1051#
1052# CONFIG_GPIO_MAX7300 is not set
1049# CONFIG_GPIO_MAX732X is not set 1053# CONFIG_GPIO_MAX732X is not set
1050# CONFIG_GPIO_PCA953X is not set 1054# CONFIG_GPIO_PCA953X is not set
1051# CONFIG_GPIO_PCF857X is not set 1055# CONFIG_GPIO_PCF857X is not set
1056# CONFIG_GPIO_ADP5588 is not set
1052 1057
1053# 1058#
1054# PCI GPIO expanders: 1059# PCI GPIO expanders:
@@ -1081,10 +1086,11 @@ CONFIG_HWMON=y
1081# CONFIG_SENSORS_ADM1029 is not set 1086# CONFIG_SENSORS_ADM1029 is not set
1082# CONFIG_SENSORS_ADM1031 is not set 1087# CONFIG_SENSORS_ADM1031 is not set
1083# CONFIG_SENSORS_ADM9240 is not set 1088# CONFIG_SENSORS_ADM9240 is not set
1089# CONFIG_SENSORS_ADT7411 is not set
1084# CONFIG_SENSORS_ADT7462 is not set 1090# CONFIG_SENSORS_ADT7462 is not set
1085# CONFIG_SENSORS_ADT7470 is not set 1091# CONFIG_SENSORS_ADT7470 is not set
1086# CONFIG_SENSORS_ADT7473 is not set
1087# CONFIG_SENSORS_ADT7475 is not set 1092# CONFIG_SENSORS_ADT7475 is not set
1093# CONFIG_SENSORS_ASC7621 is not set
1088# CONFIG_SENSORS_ATXP1 is not set 1094# CONFIG_SENSORS_ATXP1 is not set
1089# CONFIG_SENSORS_DS1621 is not set 1095# CONFIG_SENSORS_DS1621 is not set
1090# CONFIG_SENSORS_I5K_AMB is not set 1096# CONFIG_SENSORS_I5K_AMB is not set
@@ -1122,6 +1128,7 @@ CONFIG_HWMON=y
1122# CONFIG_SENSORS_SMSC47M192 is not set 1128# CONFIG_SENSORS_SMSC47M192 is not set
1123# CONFIG_SENSORS_SMSC47B397 is not set 1129# CONFIG_SENSORS_SMSC47B397 is not set
1124# CONFIG_SENSORS_ADS7828 is not set 1130# CONFIG_SENSORS_ADS7828 is not set
1131# CONFIG_SENSORS_AMC6821 is not set
1125# CONFIG_SENSORS_THMC50 is not set 1132# CONFIG_SENSORS_THMC50 is not set
1126# CONFIG_SENSORS_TMP401 is not set 1133# CONFIG_SENSORS_TMP401 is not set
1127# CONFIG_SENSORS_TMP421 is not set 1134# CONFIG_SENSORS_TMP421 is not set
@@ -1155,9 +1162,10 @@ CONFIG_SSB_POSSIBLE=y
1155# CONFIG_TPS65010 is not set 1162# CONFIG_TPS65010 is not set
1156# CONFIG_MFD_TMIO is not set 1163# CONFIG_MFD_TMIO is not set
1157# CONFIG_MFD_WM8400 is not set 1164# CONFIG_MFD_WM8400 is not set
1158# CONFIG_MFD_WM8350_I2C is not set 1165# CONFIG_MFD_WM8994 is not set
1159# CONFIG_MFD_PCF50633 is not set 1166# CONFIG_MFD_PCF50633 is not set
1160# CONFIG_AB3100_CORE is not set 1167# CONFIG_MFD_TIMBERDALE is not set
1168# CONFIG_LPC_SCH is not set
1161# CONFIG_REGULATOR is not set 1169# CONFIG_REGULATOR is not set
1162# CONFIG_MEDIA_SUPPORT is not set 1170# CONFIG_MEDIA_SUPPORT is not set
1163 1171
@@ -1166,6 +1174,7 @@ CONFIG_SSB_POSSIBLE=y
1166# 1174#
1167CONFIG_AGP=m 1175CONFIG_AGP=m
1168CONFIG_VGA_ARB=y 1176CONFIG_VGA_ARB=y
1177CONFIG_VGA_ARB_MAX_GPUS=16
1169CONFIG_DRM=m 1178CONFIG_DRM=m
1170# CONFIG_DRM_TDFX is not set 1179# CONFIG_DRM_TDFX is not set
1171# CONFIG_DRM_R128 is not set 1180# CONFIG_DRM_R128 is not set
@@ -1308,6 +1317,7 @@ CONFIG_MISC_FILESYSTEMS=y
1308# CONFIG_BEFS_FS is not set 1317# CONFIG_BEFS_FS is not set
1309# CONFIG_BFS_FS is not set 1318# CONFIG_BFS_FS is not set
1310# CONFIG_EFS_FS is not set 1319# CONFIG_EFS_FS is not set
1320# CONFIG_LOGFS is not set
1311CONFIG_CRAMFS=m 1321CONFIG_CRAMFS=m
1312# CONFIG_SQUASHFS is not set 1322# CONFIG_SQUASHFS is not set
1313# CONFIG_VXFS_FS is not set 1323# CONFIG_VXFS_FS is not set
@@ -1333,6 +1343,7 @@ CONFIG_SUNRPC=y
1333# CONFIG_RPCSEC_GSS_SPKM3 is not set 1343# CONFIG_RPCSEC_GSS_SPKM3 is not set
1334CONFIG_SMB_FS=m 1344CONFIG_SMB_FS=m
1335# CONFIG_SMB_NLS_DEFAULT is not set 1345# CONFIG_SMB_NLS_DEFAULT is not set
1346# CONFIG_CEPH_FS is not set
1336# CONFIG_CIFS is not set 1347# CONFIG_CIFS is not set
1337# CONFIG_NCP_FS is not set 1348# CONFIG_NCP_FS is not set
1338# CONFIG_CODA_FS is not set 1349# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index 0824b4667229..230aa2fc0629 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:33 2010 4# Mon Apr 19 23:16:57 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -315,6 +314,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 314# Bus options
316# 315#
317CONFIG_ZONE_DMA=y 316CONFIG_ZONE_DMA=y
317# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_PPC_INDIRECT_PCI=y 318CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_FSL_PCI=y 320CONFIG_FSL_PCI=y
@@ -325,7 +325,6 @@ CONFIG_PCI_SYSCALL=y
325# CONFIG_PCIEPORTBUS is not set 325# CONFIG_PCIEPORTBUS is not set
326CONFIG_ARCH_SUPPORTS_MSI=y 326CONFIG_ARCH_SUPPORTS_MSI=y
327# CONFIG_PCI_MSI is not set 327# CONFIG_PCI_MSI is not set
328# CONFIG_PCI_LEGACY is not set
329# CONFIG_PCI_STUB is not set 328# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set 329# CONFIG_PCI_IOV is not set
331# CONFIG_HAS_RAPIDIO is not set 330# CONFIG_HAS_RAPIDIO is not set
@@ -351,7 +350,6 @@ CONFIG_NET=y
351# Networking options 350# Networking options
352# 351#
353CONFIG_PACKET=y 352CONFIG_PACKET=y
354# CONFIG_PACKET_MMAP is not set
355CONFIG_UNIX=y 353CONFIG_UNIX=y
356CONFIG_XFRM=y 354CONFIG_XFRM=y
357# CONFIG_XFRM_USER is not set 355# CONFIG_XFRM_USER is not set
@@ -525,6 +523,8 @@ CONFIG_MTD_CFI_UTIL=y
525# UBI - Unsorted block images 523# UBI - Unsorted block images
526# 524#
527# CONFIG_MTD_UBI is not set 525# CONFIG_MTD_UBI is not set
526CONFIG_OF_FLATTREE=y
527CONFIG_OF_DYNAMIC=y
528CONFIG_OF_DEVICE=y 528CONFIG_OF_DEVICE=y
529CONFIG_OF_I2C=y 529CONFIG_OF_I2C=y
530CONFIG_OF_MDIO=y 530CONFIG_OF_MDIO=y
@@ -560,6 +560,7 @@ CONFIG_MISC_DEVICES=y
560# CONFIG_ENCLOSURE_SERVICES is not set 560# CONFIG_ENCLOSURE_SERVICES is not set
561# CONFIG_HP_ILO is not set 561# CONFIG_HP_ILO is not set
562# CONFIG_ISL29003 is not set 562# CONFIG_ISL29003 is not set
563# CONFIG_SENSORS_TSL2550 is not set
563# CONFIG_DS1682 is not set 564# CONFIG_DS1682 is not set
564# CONFIG_C2PORT is not set 565# CONFIG_C2PORT is not set
565 566
@@ -632,6 +633,7 @@ CONFIG_BLK_DEV_IDEDMA=y
632# 633#
633# SCSI device support 634# SCSI device support
634# 635#
636CONFIG_SCSI_MOD=y
635# CONFIG_RAID_ATTRS is not set 637# CONFIG_RAID_ATTRS is not set
636# CONFIG_SCSI is not set 638# CONFIG_SCSI is not set
637# CONFIG_SCSI_DMA is not set 639# CONFIG_SCSI_DMA is not set
@@ -704,6 +706,7 @@ CONFIG_NET_PCI=y
704# CONFIG_PCNET32 is not set 706# CONFIG_PCNET32 is not set
705# CONFIG_AMD8111_ETH is not set 707# CONFIG_AMD8111_ETH is not set
706# CONFIG_ADAPTEC_STARFIRE is not set 708# CONFIG_ADAPTEC_STARFIRE is not set
709# CONFIG_KSZ884X_PCI is not set
707# CONFIG_B44 is not set 710# CONFIG_B44 is not set
708# CONFIG_FORCEDETH is not set 711# CONFIG_FORCEDETH is not set
709CONFIG_E100=y 712CONFIG_E100=y
@@ -755,6 +758,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 758# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 759CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 760# CONFIG_CHELSIO_T3 is not set
761CONFIG_CHELSIO_T4_DEPENDS=y
762# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 763# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 764# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 765# CONFIG_IXGB is not set
@@ -767,6 +772,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 772# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 773# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 774# CONFIG_BNX2X is not set
775# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 776# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 777# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 778# CONFIG_BE2NET is not set
@@ -851,6 +857,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 857CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 858# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 859# CONFIG_SERIAL_OF_PLATFORM is not set
860# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 862CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -902,6 +909,7 @@ CONFIG_I2C_HELPER_AUTO=y
902CONFIG_I2C_MPC=y 909CONFIG_I2C_MPC=y
903# CONFIG_I2C_OCORES is not set 910# CONFIG_I2C_OCORES is not set
904# CONFIG_I2C_SIMTEC is not set 911# CONFIG_I2C_SIMTEC is not set
912# CONFIG_I2C_XILINX is not set
905 913
906# 914#
907# External I2C/SMBus adapter drivers 915# External I2C/SMBus adapter drivers
@@ -913,15 +921,9 @@ CONFIG_I2C_MPC=y
913# Other I2C/SMBus bus drivers 921# Other I2C/SMBus bus drivers
914# 922#
915# CONFIG_I2C_PCA_PLATFORM is not set 923# CONFIG_I2C_PCA_PLATFORM is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 924# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 925# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 926# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 927# CONFIG_SPI is not set
926 928
927# 929#
@@ -947,10 +949,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
947# CONFIG_SENSORS_ADM1029 is not set 949# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 950# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 951# CONFIG_SENSORS_ADM9240 is not set
952# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 953# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 954# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 955# CONFIG_SENSORS_ADT7475 is not set
956# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 957# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 958# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 959# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +990,7 @@ CONFIG_SENSORS_LM75=y
987# CONFIG_SENSORS_SMSC47M192 is not set 990# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 991# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 992# CONFIG_SENSORS_ADS7828 is not set
993# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 994# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 995# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 996# CONFIG_SENSORS_TMP421 is not set
@@ -1015,18 +1019,21 @@ CONFIG_SSB_POSSIBLE=y
1015# Multifunction device drivers 1019# Multifunction device drivers
1016# 1020#
1017# CONFIG_MFD_CORE is not set 1021# CONFIG_MFD_CORE is not set
1022# CONFIG_MFD_88PM860X is not set
1018# CONFIG_MFD_SM501 is not set 1023# CONFIG_MFD_SM501 is not set
1019# CONFIG_HTC_PASIC3 is not set 1024# CONFIG_HTC_PASIC3 is not set
1020# CONFIG_TWL4030_CORE is not set 1025# CONFIG_TWL4030_CORE is not set
1021# CONFIG_MFD_TMIO is not set 1026# CONFIG_MFD_TMIO is not set
1022# CONFIG_PMIC_DA903X is not set 1027# CONFIG_PMIC_DA903X is not set
1023# CONFIG_PMIC_ADP5520 is not set 1028# CONFIG_PMIC_ADP5520 is not set
1029# CONFIG_MFD_MAX8925 is not set
1024# CONFIG_MFD_WM8400 is not set 1030# CONFIG_MFD_WM8400 is not set
1025# CONFIG_MFD_WM831X is not set 1031# CONFIG_MFD_WM831X is not set
1026# CONFIG_MFD_WM8350_I2C is not set 1032# CONFIG_MFD_WM8350_I2C is not set
1033# CONFIG_MFD_WM8994 is not set
1027# CONFIG_MFD_PCF50633 is not set 1034# CONFIG_MFD_PCF50633 is not set
1028# CONFIG_AB3100_CORE is not set 1035# CONFIG_AB3100_CORE is not set
1029# CONFIG_MFD_88PM8607 is not set 1036# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1037# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1038# CONFIG_MEDIA_SUPPORT is not set
1032 1039
@@ -1035,6 +1042,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1042#
1036# CONFIG_AGP is not set 1043# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1044CONFIG_VGA_ARB=y
1045CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1046# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1047# CONFIG_VGASTATE is not set
1040# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1048# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1172,6 +1180,7 @@ CONFIG_JFFS2_ZLIB=y
1172# CONFIG_JFFS2_LZO is not set 1180# CONFIG_JFFS2_LZO is not set
1173CONFIG_JFFS2_RTIME=y 1181CONFIG_JFFS2_RTIME=y
1174# CONFIG_JFFS2_RUBIN is not set 1182# CONFIG_JFFS2_RUBIN is not set
1183# CONFIG_LOGFS is not set
1175CONFIG_CRAMFS=y 1184CONFIG_CRAMFS=y
1176# CONFIG_SQUASHFS is not set 1185# CONFIG_SQUASHFS is not set
1177# CONFIG_VXFS_FS is not set 1186# CONFIG_VXFS_FS is not set
@@ -1194,6 +1203,7 @@ CONFIG_SUNRPC=y
1194# CONFIG_RPCSEC_GSS_KRB5 is not set 1203# CONFIG_RPCSEC_GSS_KRB5 is not set
1195# CONFIG_RPCSEC_GSS_SPKM3 is not set 1204# CONFIG_RPCSEC_GSS_SPKM3 is not set
1196# CONFIG_SMB_FS is not set 1205# CONFIG_SMB_FS is not set
1206# CONFIG_CEPH_FS is not set
1197# CONFIG_CIFS is not set 1207# CONFIG_CIFS is not set
1198# CONFIG_NCP_FS is not set 1208# CONFIG_NCP_FS is not set
1199# CONFIG_CODA_FS is not set 1209# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index 2137be4100ed..dbe04b981b87 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:34 2010 4# Mon Apr 19 23:16:58 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 5cc89aac3fec..845efa79dd20 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:35 2010 4# Mon Apr 19 23:16:59 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -339,7 +339,6 @@ CONFIG_PCIEAER=y
339# CONFIG_PCIEASPM is not set 339# CONFIG_PCIEASPM is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 340CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 341# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 342# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
@@ -368,7 +367,6 @@ CONFIG_NET=y
368# Networking options 367# Networking options
369# 368#
370CONFIG_PACKET=y 369CONFIG_PACKET=y
371# CONFIG_PACKET_MMAP is not set
372CONFIG_UNIX=y 370CONFIG_UNIX=y
373CONFIG_XFRM=y 371CONFIG_XFRM=y
374CONFIG_XFRM_USER=y 372CONFIG_XFRM_USER=y
@@ -559,6 +557,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
559# UBI - Unsorted block images 557# UBI - Unsorted block images
560# 558#
561# CONFIG_MTD_UBI is not set 559# CONFIG_MTD_UBI is not set
560CONFIG_OF_FLATTREE=y
561CONFIG_OF_DYNAMIC=y
562CONFIG_OF_DEVICE=y 562CONFIG_OF_DEVICE=y
563CONFIG_OF_I2C=y 563CONFIG_OF_I2C=y
564CONFIG_OF_MDIO=y 564CONFIG_OF_MDIO=y
@@ -594,6 +594,7 @@ CONFIG_MISC_DEVICES=y
594# CONFIG_ENCLOSURE_SERVICES is not set 594# CONFIG_ENCLOSURE_SERVICES is not set
595# CONFIG_HP_ILO is not set 595# CONFIG_HP_ILO is not set
596# CONFIG_ISL29003 is not set 596# CONFIG_ISL29003 is not set
597# CONFIG_SENSORS_TSL2550 is not set
597# CONFIG_DS1682 is not set 598# CONFIG_DS1682 is not set
598# CONFIG_C2PORT is not set 599# CONFIG_C2PORT is not set
599 600
@@ -611,6 +612,7 @@ CONFIG_HAVE_IDE=y
611# 612#
612# SCSI device support 613# SCSI device support
613# 614#
615CONFIG_SCSI_MOD=y
614# CONFIG_RAID_ATTRS is not set 616# CONFIG_RAID_ATTRS is not set
615# CONFIG_SCSI is not set 617# CONFIG_SCSI is not set
616# CONFIG_SCSI_DMA is not set 618# CONFIG_SCSI_DMA is not set
@@ -716,6 +718,8 @@ CONFIG_NETDEV_10000=y
716# CONFIG_CHELSIO_T1 is not set 718# CONFIG_CHELSIO_T1 is not set
717CONFIG_CHELSIO_T3_DEPENDS=y 719CONFIG_CHELSIO_T3_DEPENDS=y
718# CONFIG_CHELSIO_T3 is not set 720# CONFIG_CHELSIO_T3 is not set
721CONFIG_CHELSIO_T4_DEPENDS=y
722# CONFIG_CHELSIO_T4 is not set
719# CONFIG_ENIC is not set 723# CONFIG_ENIC is not set
720# CONFIG_IXGBE is not set 724# CONFIG_IXGBE is not set
721# CONFIG_IXGB is not set 725# CONFIG_IXGB is not set
@@ -728,6 +732,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
728# CONFIG_MLX4_CORE is not set 732# CONFIG_MLX4_CORE is not set
729# CONFIG_TEHUTI is not set 733# CONFIG_TEHUTI is not set
730# CONFIG_BNX2X is not set 734# CONFIG_BNX2X is not set
735# CONFIG_QLCNIC is not set
731# CONFIG_QLGE is not set 736# CONFIG_QLGE is not set
732# CONFIG_SFC is not set 737# CONFIG_SFC is not set
733# CONFIG_BE2NET is not set 738# CONFIG_BE2NET is not set
@@ -812,6 +817,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 817CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 818# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 819# CONFIG_SERIAL_OF_PLATFORM is not set
820# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 821# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 822CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 823# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -860,6 +866,7 @@ CONFIG_I2C_HELPER_AUTO=y
860CONFIG_I2C_MPC=y 866CONFIG_I2C_MPC=y
861# CONFIG_I2C_OCORES is not set 867# CONFIG_I2C_OCORES is not set
862# CONFIG_I2C_SIMTEC is not set 868# CONFIG_I2C_SIMTEC is not set
869# CONFIG_I2C_XILINX is not set
863 870
864# 871#
865# External I2C/SMBus adapter drivers 872# External I2C/SMBus adapter drivers
@@ -872,15 +879,9 @@ CONFIG_I2C_MPC=y
872# 879#
873# CONFIG_I2C_PCA_PLATFORM is not set 880# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 881# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 882# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 883# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 884# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884# CONFIG_SPI is not set 885# CONFIG_SPI is not set
885 886
886# 887#
@@ -906,10 +907,11 @@ CONFIG_HWMON=y
906# CONFIG_SENSORS_ADM1029 is not set 907# CONFIG_SENSORS_ADM1029 is not set
907# CONFIG_SENSORS_ADM1031 is not set 908# CONFIG_SENSORS_ADM1031 is not set
908# CONFIG_SENSORS_ADM9240 is not set 909# CONFIG_SENSORS_ADM9240 is not set
910# CONFIG_SENSORS_ADT7411 is not set
909# CONFIG_SENSORS_ADT7462 is not set 911# CONFIG_SENSORS_ADT7462 is not set
910# CONFIG_SENSORS_ADT7470 is not set 912# CONFIG_SENSORS_ADT7470 is not set
911# CONFIG_SENSORS_ADT7473 is not set
912# CONFIG_SENSORS_ADT7475 is not set 913# CONFIG_SENSORS_ADT7475 is not set
914# CONFIG_SENSORS_ASC7621 is not set
913# CONFIG_SENSORS_ATXP1 is not set 915# CONFIG_SENSORS_ATXP1 is not set
914# CONFIG_SENSORS_DS1621 is not set 916# CONFIG_SENSORS_DS1621 is not set
915# CONFIG_SENSORS_I5K_AMB is not set 917# CONFIG_SENSORS_I5K_AMB is not set
@@ -946,6 +948,7 @@ CONFIG_SENSORS_LM75=y
946# CONFIG_SENSORS_SMSC47M192 is not set 948# CONFIG_SENSORS_SMSC47M192 is not set
947# CONFIG_SENSORS_SMSC47B397 is not set 949# CONFIG_SENSORS_SMSC47B397 is not set
948# CONFIG_SENSORS_ADS7828 is not set 950# CONFIG_SENSORS_ADS7828 is not set
951# CONFIG_SENSORS_AMC6821 is not set
949# CONFIG_SENSORS_THMC50 is not set 952# CONFIG_SENSORS_THMC50 is not set
950# CONFIG_SENSORS_TMP401 is not set 953# CONFIG_SENSORS_TMP401 is not set
951# CONFIG_SENSORS_TMP421 is not set 954# CONFIG_SENSORS_TMP421 is not set
@@ -974,18 +977,21 @@ CONFIG_SSB_POSSIBLE=y
974# Multifunction device drivers 977# Multifunction device drivers
975# 978#
976# CONFIG_MFD_CORE is not set 979# CONFIG_MFD_CORE is not set
980# CONFIG_MFD_88PM860X is not set
977# CONFIG_MFD_SM501 is not set 981# CONFIG_MFD_SM501 is not set
978# CONFIG_HTC_PASIC3 is not set 982# CONFIG_HTC_PASIC3 is not set
979# CONFIG_TWL4030_CORE is not set 983# CONFIG_TWL4030_CORE is not set
980# CONFIG_MFD_TMIO is not set 984# CONFIG_MFD_TMIO is not set
981# CONFIG_PMIC_DA903X is not set 985# CONFIG_PMIC_DA903X is not set
982# CONFIG_PMIC_ADP5520 is not set 986# CONFIG_PMIC_ADP5520 is not set
987# CONFIG_MFD_MAX8925 is not set
983# CONFIG_MFD_WM8400 is not set 988# CONFIG_MFD_WM8400 is not set
984# CONFIG_MFD_WM831X is not set 989# CONFIG_MFD_WM831X is not set
985# CONFIG_MFD_WM8350_I2C is not set 990# CONFIG_MFD_WM8350_I2C is not set
991# CONFIG_MFD_WM8994 is not set
986# CONFIG_MFD_PCF50633 is not set 992# CONFIG_MFD_PCF50633 is not set
987# CONFIG_AB3100_CORE is not set 993# CONFIG_AB3100_CORE is not set
988# CONFIG_MFD_88PM8607 is not set 994# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 995# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 996# CONFIG_MEDIA_SUPPORT is not set
991 997
@@ -994,6 +1000,7 @@ CONFIG_SSB_POSSIBLE=y
994# 1000#
995# CONFIG_AGP is not set 1001# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 1002CONFIG_VGA_ARB=y
1003CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 1004# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 1005# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=y 1006CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1162,6 +1169,7 @@ CONFIG_JFFS2_ZLIB=y
1162# CONFIG_JFFS2_LZO is not set 1169# CONFIG_JFFS2_LZO is not set
1163CONFIG_JFFS2_RTIME=y 1170CONFIG_JFFS2_RTIME=y
1164# CONFIG_JFFS2_RUBIN is not set 1171# CONFIG_JFFS2_RUBIN is not set
1172# CONFIG_LOGFS is not set
1165# CONFIG_CRAMFS is not set 1173# CONFIG_CRAMFS is not set
1166# CONFIG_SQUASHFS is not set 1174# CONFIG_SQUASHFS is not set
1167# CONFIG_VXFS_FS is not set 1175# CONFIG_VXFS_FS is not set
@@ -1184,6 +1192,7 @@ CONFIG_SUNRPC=y
1184# CONFIG_RPCSEC_GSS_KRB5 is not set 1192# CONFIG_RPCSEC_GSS_KRB5 is not set
1185# CONFIG_RPCSEC_GSS_SPKM3 is not set 1193# CONFIG_RPCSEC_GSS_SPKM3 is not set
1186# CONFIG_SMB_FS is not set 1194# CONFIG_SMB_FS is not set
1195# CONFIG_CEPH_FS is not set
1187# CONFIG_CIFS is not set 1196# CONFIG_CIFS is not set
1188# CONFIG_NCP_FS is not set 1197# CONFIG_NCP_FS is not set
1189# CONFIG_CODA_FS is not set 1198# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index e7b9148e58cf..b958136a12f0 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:00 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index a998e401bbfc..008bc9754927 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
index fc656af04ea1..2cf80dba0286 100644
--- a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
+++ b/arch/powerpc/configs/85xx/xes_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:37 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -104,10 +108,8 @@ CONFIG_RCU_FANOUT=32
104CONFIG_IKCONFIG=y 108CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 109CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 110CONFIG_LOG_BUF_SHIFT=14
107# CONFIG_GROUP_SCHED is not set
108# CONFIG_CGROUPS is not set 111# CONFIG_CGROUPS is not set
109CONFIG_SYSFS_DEPRECATED=y 112# CONFIG_SYSFS_DEPRECATED_V2 is not set
110CONFIG_SYSFS_DEPRECATED_V2=y
111# CONFIG_RELAY is not set 113# CONFIG_RELAY is not set
112# CONFIG_NAMESPACES is not set 114# CONFIG_NAMESPACES is not set
113CONFIG_BLK_DEV_INITRD=y 115CONFIG_BLK_DEV_INITRD=y
@@ -115,6 +117,7 @@ CONFIG_INITRAMFS_SOURCE=""
115CONFIG_RD_GZIP=y 117CONFIG_RD_GZIP=y
116# CONFIG_RD_BZIP2 is not set 118# CONFIG_RD_BZIP2 is not set
117# CONFIG_RD_LZMA is not set 119# CONFIG_RD_LZMA is not set
120# CONFIG_RD_LZO is not set
118# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
119CONFIG_SYSCTL=y 122CONFIG_SYSCTL=y
120CONFIG_ANON_INODES=y 123CONFIG_ANON_INODES=y
@@ -328,6 +331,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 331# Bus options
329# 332#
330CONFIG_ZONE_DMA=y 333CONFIG_ZONE_DMA=y
334# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_PPC_INDIRECT_PCI=y 335CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 336CONFIG_FSL_SOC=y
333CONFIG_FSL_PCI=y 337CONFIG_FSL_PCI=y
@@ -343,7 +347,6 @@ CONFIG_PCIEAER=y
343# CONFIG_PCIEASPM is not set 347# CONFIG_PCIEASPM is not set
344CONFIG_ARCH_SUPPORTS_MSI=y 348CONFIG_ARCH_SUPPORTS_MSI=y
345CONFIG_PCI_MSI=y 349CONFIG_PCI_MSI=y
346CONFIG_PCI_LEGACY=y
347# CONFIG_PCI_DEBUG is not set 350# CONFIG_PCI_DEBUG is not set
348# CONFIG_PCI_STUB is not set 351# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 352# CONFIG_PCI_IOV is not set
@@ -375,7 +378,6 @@ CONFIG_NET=y
375# Networking options 378# Networking options
376# 379#
377CONFIG_PACKET=y 380CONFIG_PACKET=y
378# CONFIG_PACKET_MMAP is not set
379CONFIG_UNIX=y 381CONFIG_UNIX=y
380CONFIG_XFRM=y 382CONFIG_XFRM=y
381CONFIG_XFRM_USER=y 383CONFIG_XFRM_USER=y
@@ -600,6 +602,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
600# UBI - Unsorted block images 602# UBI - Unsorted block images
601# 603#
602# CONFIG_MTD_UBI is not set 604# CONFIG_MTD_UBI is not set
605CONFIG_OF_FLATTREE=y
606CONFIG_OF_DYNAMIC=y
603CONFIG_OF_DEVICE=y 607CONFIG_OF_DEVICE=y
604CONFIG_OF_GPIO=y 608CONFIG_OF_GPIO=y
605CONFIG_OF_I2C=y 609CONFIG_OF_I2C=y
@@ -637,6 +641,7 @@ CONFIG_MISC_DEVICES=y
637# CONFIG_ENCLOSURE_SERVICES is not set 641# CONFIG_ENCLOSURE_SERVICES is not set
638# CONFIG_HP_ILO is not set 642# CONFIG_HP_ILO is not set
639# CONFIG_ISL29003 is not set 643# CONFIG_ISL29003 is not set
644# CONFIG_SENSORS_TSL2550 is not set
640# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
641# CONFIG_C2PORT is not set 646# CONFIG_C2PORT is not set
642 647
@@ -654,6 +659,7 @@ CONFIG_HAVE_IDE=y
654# 659#
655# SCSI device support 660# SCSI device support
656# 661#
662CONFIG_SCSI_MOD=y
657# CONFIG_RAID_ATTRS is not set 663# CONFIG_RAID_ATTRS is not set
658CONFIG_SCSI=y 664CONFIG_SCSI=y
659CONFIG_SCSI_DMA=y 665CONFIG_SCSI_DMA=y
@@ -777,6 +783,7 @@ CONFIG_PATA_ALI=y
777# CONFIG_PATA_IT821X is not set 783# CONFIG_PATA_IT821X is not set
778# CONFIG_PATA_IT8213 is not set 784# CONFIG_PATA_IT8213 is not set
779# CONFIG_PATA_JMICRON is not set 785# CONFIG_PATA_JMICRON is not set
786# CONFIG_PATA_LEGACY is not set
780# CONFIG_PATA_TRIFLEX is not set 787# CONFIG_PATA_TRIFLEX is not set
781# CONFIG_PATA_MARVELL is not set 788# CONFIG_PATA_MARVELL is not set
782# CONFIG_PATA_MPIIX is not set 789# CONFIG_PATA_MPIIX is not set
@@ -1004,6 +1011,7 @@ CONFIG_SERIAL_CORE=y
1004CONFIG_SERIAL_CORE_CONSOLE=y 1011CONFIG_SERIAL_CORE_CONSOLE=y
1005# CONFIG_SERIAL_JSM is not set 1012# CONFIG_SERIAL_JSM is not set
1006# CONFIG_SERIAL_OF_PLATFORM is not set 1013# CONFIG_SERIAL_OF_PLATFORM is not set
1014# CONFIG_SERIAL_TIMBERDALE is not set
1007# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1015# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1008CONFIG_UNIX98_PTYS=y 1016CONFIG_UNIX98_PTYS=y
1009# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1017# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1053,6 +1061,7 @@ CONFIG_I2C_HELPER_AUTO=y
1053CONFIG_I2C_MPC=y 1061CONFIG_I2C_MPC=y
1054# CONFIG_I2C_OCORES is not set 1062# CONFIG_I2C_OCORES is not set
1055# CONFIG_I2C_SIMTEC is not set 1063# CONFIG_I2C_SIMTEC is not set
1064# CONFIG_I2C_XILINX is not set
1056 1065
1057# 1066#
1058# External I2C/SMBus adapter drivers 1067# External I2C/SMBus adapter drivers
@@ -1066,15 +1075,9 @@ CONFIG_I2C_MPC=y
1066# 1075#
1067# CONFIG_I2C_PCA_PLATFORM is not set 1076# CONFIG_I2C_PCA_PLATFORM is not set
1068# CONFIG_I2C_STUB is not set 1077# CONFIG_I2C_STUB is not set
1069
1070#
1071# Miscellaneous I2C Chip support
1072#
1073# CONFIG_SENSORS_TSL2550 is not set
1074# CONFIG_I2C_DEBUG_CORE is not set 1078# CONFIG_I2C_DEBUG_CORE is not set
1075# CONFIG_I2C_DEBUG_ALGO is not set 1079# CONFIG_I2C_DEBUG_ALGO is not set
1076# CONFIG_I2C_DEBUG_BUS is not set 1080# CONFIG_I2C_DEBUG_BUS is not set
1077# CONFIG_I2C_DEBUG_CHIP is not set
1078# CONFIG_SPI is not set 1081# CONFIG_SPI is not set
1079 1082
1080# 1083#
@@ -1090,14 +1093,19 @@ CONFIG_GPIO_SYSFS=y
1090# 1093#
1091# Memory mapped GPIO expanders: 1094# Memory mapped GPIO expanders:
1092# 1095#
1096# CONFIG_GPIO_IT8761E is not set
1093# CONFIG_GPIO_XILINX is not set 1097# CONFIG_GPIO_XILINX is not set
1098# CONFIG_GPIO_SCH is not set
1094 1099
1095# 1100#
1096# I2C GPIO expanders: 1101# I2C GPIO expanders:
1097# 1102#
1103# CONFIG_GPIO_MAX7300 is not set
1098# CONFIG_GPIO_MAX732X is not set 1104# CONFIG_GPIO_MAX732X is not set
1099CONFIG_GPIO_PCA953X=y 1105CONFIG_GPIO_PCA953X=y
1106# CONFIG_GPIO_PCA953X_IRQ is not set
1100# CONFIG_GPIO_PCF857X is not set 1107# CONFIG_GPIO_PCF857X is not set
1108# CONFIG_GPIO_ADP5588 is not set
1101 1109
1102# 1110#
1103# PCI GPIO expanders: 1111# PCI GPIO expanders:
@@ -1130,10 +1138,11 @@ CONFIG_HWMON=y
1130# CONFIG_SENSORS_ADM1029 is not set 1138# CONFIG_SENSORS_ADM1029 is not set
1131# CONFIG_SENSORS_ADM1031 is not set 1139# CONFIG_SENSORS_ADM1031 is not set
1132# CONFIG_SENSORS_ADM9240 is not set 1140# CONFIG_SENSORS_ADM9240 is not set
1141# CONFIG_SENSORS_ADT7411 is not set
1133# CONFIG_SENSORS_ADT7462 is not set 1142# CONFIG_SENSORS_ADT7462 is not set
1134# CONFIG_SENSORS_ADT7470 is not set 1143# CONFIG_SENSORS_ADT7470 is not set
1135# CONFIG_SENSORS_ADT7473 is not set
1136# CONFIG_SENSORS_ADT7475 is not set 1144# CONFIG_SENSORS_ADT7475 is not set
1145# CONFIG_SENSORS_ASC7621 is not set
1137# CONFIG_SENSORS_ATXP1 is not set 1146# CONFIG_SENSORS_ATXP1 is not set
1138CONFIG_SENSORS_DS1621=y 1147CONFIG_SENSORS_DS1621=y
1139# CONFIG_SENSORS_I5K_AMB is not set 1148# CONFIG_SENSORS_I5K_AMB is not set
@@ -1171,6 +1180,7 @@ CONFIG_SENSORS_LM90=y
1171# CONFIG_SENSORS_SMSC47M192 is not set 1180# CONFIG_SENSORS_SMSC47M192 is not set
1172# CONFIG_SENSORS_SMSC47B397 is not set 1181# CONFIG_SENSORS_SMSC47B397 is not set
1173# CONFIG_SENSORS_ADS7828 is not set 1182# CONFIG_SENSORS_ADS7828 is not set
1183# CONFIG_SENSORS_AMC6821 is not set
1174# CONFIG_SENSORS_THMC50 is not set 1184# CONFIG_SENSORS_THMC50 is not set
1175# CONFIG_SENSORS_TMP401 is not set 1185# CONFIG_SENSORS_TMP401 is not set
1176# CONFIG_SENSORS_TMP421 is not set 1186# CONFIG_SENSORS_TMP421 is not set
@@ -1218,19 +1228,24 @@ CONFIG_SSB_POSSIBLE=y
1218# Multifunction device drivers 1228# Multifunction device drivers
1219# 1229#
1220# CONFIG_MFD_CORE is not set 1230# CONFIG_MFD_CORE is not set
1231# CONFIG_MFD_88PM860X is not set
1221# CONFIG_MFD_SM501 is not set 1232# CONFIG_MFD_SM501 is not set
1222# CONFIG_HTC_PASIC3 is not set 1233# CONFIG_HTC_PASIC3 is not set
1234# CONFIG_HTC_I2CPLD is not set
1223# CONFIG_TPS65010 is not set 1235# CONFIG_TPS65010 is not set
1224# CONFIG_TWL4030_CORE is not set 1236# CONFIG_TWL4030_CORE is not set
1225# CONFIG_MFD_TMIO is not set 1237# CONFIG_MFD_TMIO is not set
1226# CONFIG_PMIC_DA903X is not set 1238# CONFIG_PMIC_DA903X is not set
1227# CONFIG_PMIC_ADP5520 is not set 1239# CONFIG_PMIC_ADP5520 is not set
1240# CONFIG_MFD_MAX8925 is not set
1228# CONFIG_MFD_WM8400 is not set 1241# CONFIG_MFD_WM8400 is not set
1229# CONFIG_MFD_WM831X is not set 1242# CONFIG_MFD_WM831X is not set
1230# CONFIG_MFD_WM8350_I2C is not set 1243# CONFIG_MFD_WM8350_I2C is not set
1244# CONFIG_MFD_WM8994 is not set
1231# CONFIG_MFD_PCF50633 is not set 1245# CONFIG_MFD_PCF50633 is not set
1232# CONFIG_AB3100_CORE is not set 1246# CONFIG_AB3100_CORE is not set
1233# CONFIG_MFD_88PM8607 is not set 1247# CONFIG_MFD_TIMBERDALE is not set
1248# CONFIG_LPC_SCH is not set
1234# CONFIG_REGULATOR is not set 1249# CONFIG_REGULATOR is not set
1235# CONFIG_MEDIA_SUPPORT is not set 1250# CONFIG_MEDIA_SUPPORT is not set
1236 1251
@@ -1239,6 +1254,7 @@ CONFIG_SSB_POSSIBLE=y
1239# 1254#
1240# CONFIG_AGP is not set 1255# CONFIG_AGP is not set
1241CONFIG_VGA_ARB=y 1256CONFIG_VGA_ARB=y
1257CONFIG_VGA_ARB_MAX_GPUS=16
1242# CONFIG_DRM is not set 1258# CONFIG_DRM is not set
1243# CONFIG_VGASTATE is not set 1259# CONFIG_VGASTATE is not set
1244CONFIG_VIDEO_OUTPUT_CONTROL=y 1260CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1271,6 +1287,7 @@ CONFIG_USB_HID=y
1271# 1287#
1272# Special HID drivers 1288# Special HID drivers
1273# 1289#
1290# CONFIG_HID_3M_PCT is not set
1274# CONFIG_HID_A4TECH is not set 1291# CONFIG_HID_A4TECH is not set
1275# CONFIG_HID_APPLE is not set 1292# CONFIG_HID_APPLE is not set
1276# CONFIG_HID_BELKIN is not set 1293# CONFIG_HID_BELKIN is not set
@@ -1285,12 +1302,16 @@ CONFIG_USB_HID=y
1285# CONFIG_HID_KENSINGTON is not set 1302# CONFIG_HID_KENSINGTON is not set
1286# CONFIG_HID_LOGITECH is not set 1303# CONFIG_HID_LOGITECH is not set
1287# CONFIG_HID_MICROSOFT is not set 1304# CONFIG_HID_MICROSOFT is not set
1305# CONFIG_HID_MOSART is not set
1288# CONFIG_HID_MONTEREY is not set 1306# CONFIG_HID_MONTEREY is not set
1289# CONFIG_HID_NTRIG is not set 1307# CONFIG_HID_NTRIG is not set
1308# CONFIG_HID_ORTEK is not set
1290# CONFIG_HID_PANTHERLORD is not set 1309# CONFIG_HID_PANTHERLORD is not set
1291# CONFIG_HID_PETALYNX is not set 1310# CONFIG_HID_PETALYNX is not set
1311# CONFIG_HID_QUANTA is not set
1292# CONFIG_HID_SAMSUNG is not set 1312# CONFIG_HID_SAMSUNG is not set
1293# CONFIG_HID_SONY is not set 1313# CONFIG_HID_SONY is not set
1314# CONFIG_HID_STANTUM is not set
1294# CONFIG_HID_SUNPLUS is not set 1315# CONFIG_HID_SUNPLUS is not set
1295# CONFIG_HID_GREENASIA is not set 1316# CONFIG_HID_GREENASIA is not set
1296# CONFIG_HID_SMARTJOYPLUS is not set 1317# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1386,7 +1407,6 @@ CONFIG_USB_STORAGE=y
1386# CONFIG_USB_RIO500 is not set 1407# CONFIG_USB_RIO500 is not set
1387# CONFIG_USB_LEGOTOWER is not set 1408# CONFIG_USB_LEGOTOWER is not set
1388# CONFIG_USB_LCD is not set 1409# CONFIG_USB_LCD is not set
1389# CONFIG_USB_BERRY_CHARGE is not set
1390# CONFIG_USB_LED is not set 1410# CONFIG_USB_LED is not set
1391# CONFIG_USB_CYPRESS_CY7C63 is not set 1411# CONFIG_USB_CYPRESS_CY7C63 is not set
1392# CONFIG_USB_CYTHERM is not set 1412# CONFIG_USB_CYTHERM is not set
@@ -1398,7 +1418,6 @@ CONFIG_USB_STORAGE=y
1398# CONFIG_USB_IOWARRIOR is not set 1418# CONFIG_USB_IOWARRIOR is not set
1399# CONFIG_USB_TEST is not set 1419# CONFIG_USB_TEST is not set
1400# CONFIG_USB_ISIGHTFW is not set 1420# CONFIG_USB_ISIGHTFW is not set
1401# CONFIG_USB_VST is not set
1402# CONFIG_USB_GADGET is not set 1421# CONFIG_USB_GADGET is not set
1403 1422
1404# 1423#
@@ -1423,11 +1442,11 @@ CONFIG_LEDS_GPIO_OF=y
1423CONFIG_LEDS_PCA955X=y 1442CONFIG_LEDS_PCA955X=y
1424# CONFIG_LEDS_BD2802 is not set 1443# CONFIG_LEDS_BD2802 is not set
1425# CONFIG_LEDS_LT3593 is not set 1444# CONFIG_LEDS_LT3593 is not set
1445CONFIG_LEDS_TRIGGERS=y
1426 1446
1427# 1447#
1428# LED Triggers 1448# LED Triggers
1429# 1449#
1430CONFIG_LEDS_TRIGGERS=y
1431CONFIG_LEDS_TRIGGER_TIMER=y 1450CONFIG_LEDS_TRIGGER_TIMER=y
1432CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1451CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1433# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1452# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
@@ -1506,6 +1525,7 @@ CONFIG_RTC_DRV_CMOS=y
1506# 1525#
1507# CONFIG_RTC_DRV_GENERIC is not set 1526# CONFIG_RTC_DRV_GENERIC is not set
1508CONFIG_DMADEVICES=y 1527CONFIG_DMADEVICES=y
1528# CONFIG_DMADEVICES_DEBUG is not set
1509 1529
1510# 1530#
1511# DMA Devices 1531# DMA Devices
@@ -1614,6 +1634,7 @@ CONFIG_JFFS2_ZLIB=y
1614# CONFIG_JFFS2_LZO is not set 1634# CONFIG_JFFS2_LZO is not set
1615CONFIG_JFFS2_RTIME=y 1635CONFIG_JFFS2_RTIME=y
1616# CONFIG_JFFS2_RUBIN is not set 1636# CONFIG_JFFS2_RUBIN is not set
1637# CONFIG_LOGFS is not set
1617# CONFIG_CRAMFS is not set 1638# CONFIG_CRAMFS is not set
1618# CONFIG_SQUASHFS is not set 1639# CONFIG_SQUASHFS is not set
1619# CONFIG_VXFS_FS is not set 1640# CONFIG_VXFS_FS is not set
@@ -1641,6 +1662,7 @@ CONFIG_SUNRPC=y
1641# CONFIG_RPCSEC_GSS_KRB5 is not set 1662# CONFIG_RPCSEC_GSS_KRB5 is not set
1642# CONFIG_RPCSEC_GSS_SPKM3 is not set 1663# CONFIG_RPCSEC_GSS_SPKM3 is not set
1643# CONFIG_SMB_FS is not set 1664# CONFIG_SMB_FS is not set
1665# CONFIG_CEPH_FS is not set
1644# CONFIG_CIFS is not set 1666# CONFIG_CIFS is not set
1645# CONFIG_NCP_FS is not set 1667# CONFIG_NCP_FS is not set
1646# CONFIG_CODA_FS is not set 1668# CONFIG_CODA_FS is not set
@@ -1851,6 +1873,7 @@ CONFIG_CRYPTO_MANAGER=y
1851CONFIG_CRYPTO_MANAGER2=y 1873CONFIG_CRYPTO_MANAGER2=y
1852# CONFIG_CRYPTO_GF128MUL is not set 1874# CONFIG_CRYPTO_GF128MUL is not set
1853# CONFIG_CRYPTO_NULL is not set 1875# CONFIG_CRYPTO_NULL is not set
1876# CONFIG_CRYPTO_PCRYPT is not set
1854CONFIG_CRYPTO_WORKQUEUE=y 1877CONFIG_CRYPTO_WORKQUEUE=y
1855# CONFIG_CRYPTO_CRYPTD is not set 1878# CONFIG_CRYPTO_CRYPTD is not set
1856# CONFIG_CRYPTO_AUTHENC is not set 1879# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
index 622d84f48aba..183c59c6d896 100644
--- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
+++ b/arch/powerpc/configs/86xx/gef_ppc9a_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:43 2010 4# Mon Apr 19 23:17:07 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -325,6 +321,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 321# Bus options
326# 322#
327CONFIG_ZONE_DMA=y 323CONFIG_ZONE_DMA=y
324# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 325CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 326CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 327CONFIG_FSL_SOC=y
@@ -340,13 +337,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 337# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 338CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 339# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 342CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 343CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 344# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 345# CONFIG_CARDBUS is not set
351 346
352# 347#
@@ -382,7 +377,6 @@ CONFIG_NET=y
382# Networking options 377# Networking options
383# 378#
384CONFIG_PACKET=y 379CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 380CONFIG_UNIX=y
387CONFIG_XFRM=y 381CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 382CONFIG_XFRM_USER=m
@@ -592,6 +586,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 586# UBI - Unsorted block images
593# 587#
594# CONFIG_MTD_UBI is not set 588# CONFIG_MTD_UBI is not set
589CONFIG_OF_FLATTREE=y
590CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 591CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 592CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 593CONFIG_OF_I2C=y
@@ -629,6 +625,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 625# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 626# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 627# CONFIG_ISL29003 is not set
628# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 629CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 630# CONFIG_C2PORT is not set
634 631
@@ -695,6 +692,7 @@ CONFIG_IDE_PROC_FS=y
695# 692#
696# SCSI device support 693# SCSI device support
697# 694#
695CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 696# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 697CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 698CONFIG_SCSI_DMA=y
@@ -819,6 +817,7 @@ CONFIG_SATA_SIL=y
819# CONFIG_PATA_IT821X is not set 817# CONFIG_PATA_IT821X is not set
820# CONFIG_PATA_IT8213 is not set 818# CONFIG_PATA_IT8213 is not set
821# CONFIG_PATA_JMICRON is not set 819# CONFIG_PATA_JMICRON is not set
820# CONFIG_PATA_LEGACY is not set
822# CONFIG_PATA_TRIFLEX is not set 821# CONFIG_PATA_TRIFLEX is not set
823# CONFIG_PATA_MARVELL is not set 822# CONFIG_PATA_MARVELL is not set
824# CONFIG_PATA_MPIIX is not set 823# CONFIG_PATA_MPIIX is not set
@@ -1059,6 +1058,7 @@ CONFIG_SERIAL_CORE=y
1059CONFIG_SERIAL_CORE_CONSOLE=y 1058CONFIG_SERIAL_CORE_CONSOLE=y
1060# CONFIG_SERIAL_JSM is not set 1059# CONFIG_SERIAL_JSM is not set
1061# CONFIG_SERIAL_OF_PLATFORM is not set 1060# CONFIG_SERIAL_OF_PLATFORM is not set
1061# CONFIG_SERIAL_TIMBERDALE is not set
1062# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1062# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1063CONFIG_UNIX98_PTYS=y 1063CONFIG_UNIX98_PTYS=y
1064# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1064# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1116,6 +1116,7 @@ CONFIG_I2C_HELPER_AUTO=y
1116CONFIG_I2C_MPC=y 1116CONFIG_I2C_MPC=y
1117# CONFIG_I2C_OCORES is not set 1117# CONFIG_I2C_OCORES is not set
1118# CONFIG_I2C_SIMTEC is not set 1118# CONFIG_I2C_SIMTEC is not set
1119# CONFIG_I2C_XILINX is not set
1119 1120
1120# 1121#
1121# External I2C/SMBus adapter drivers 1122# External I2C/SMBus adapter drivers
@@ -1129,15 +1130,9 @@ CONFIG_I2C_MPC=y
1129# 1130#
1130# CONFIG_I2C_PCA_PLATFORM is not set 1131# CONFIG_I2C_PCA_PLATFORM is not set
1131# CONFIG_I2C_STUB is not set 1132# CONFIG_I2C_STUB is not set
1132
1133#
1134# Miscellaneous I2C Chip support
1135#
1136# CONFIG_SENSORS_TSL2550 is not set
1137# CONFIG_I2C_DEBUG_CORE is not set 1133# CONFIG_I2C_DEBUG_CORE is not set
1138# CONFIG_I2C_DEBUG_ALGO is not set 1134# CONFIG_I2C_DEBUG_ALGO is not set
1139# CONFIG_I2C_DEBUG_BUS is not set 1135# CONFIG_I2C_DEBUG_BUS is not set
1140# CONFIG_I2C_DEBUG_CHIP is not set
1141# CONFIG_SPI is not set 1136# CONFIG_SPI is not set
1142 1137
1143# 1138#
@@ -1152,14 +1147,18 @@ CONFIG_GPIO_SYSFS=y
1152# 1147#
1153# Memory mapped GPIO expanders: 1148# Memory mapped GPIO expanders:
1154# 1149#
1150# CONFIG_GPIO_IT8761E is not set
1155# CONFIG_GPIO_XILINX is not set 1151# CONFIG_GPIO_XILINX is not set
1152# CONFIG_GPIO_SCH is not set
1156 1153
1157# 1154#
1158# I2C GPIO expanders: 1155# I2C GPIO expanders:
1159# 1156#
1157# CONFIG_GPIO_MAX7300 is not set
1160# CONFIG_GPIO_MAX732X is not set 1158# CONFIG_GPIO_MAX732X is not set
1161# CONFIG_GPIO_PCA953X is not set 1159# CONFIG_GPIO_PCA953X is not set
1162# CONFIG_GPIO_PCF857X is not set 1160# CONFIG_GPIO_PCF857X is not set
1161# CONFIG_GPIO_ADP5588 is not set
1163 1162
1164# 1163#
1165# PCI GPIO expanders: 1164# PCI GPIO expanders:
@@ -1192,10 +1191,11 @@ CONFIG_HWMON=y
1192# CONFIG_SENSORS_ADM1029 is not set 1191# CONFIG_SENSORS_ADM1029 is not set
1193# CONFIG_SENSORS_ADM1031 is not set 1192# CONFIG_SENSORS_ADM1031 is not set
1194# CONFIG_SENSORS_ADM9240 is not set 1193# CONFIG_SENSORS_ADM9240 is not set
1194# CONFIG_SENSORS_ADT7411 is not set
1195# CONFIG_SENSORS_ADT7462 is not set 1195# CONFIG_SENSORS_ADT7462 is not set
1196# CONFIG_SENSORS_ADT7470 is not set 1196# CONFIG_SENSORS_ADT7470 is not set
1197# CONFIG_SENSORS_ADT7473 is not set
1198# CONFIG_SENSORS_ADT7475 is not set 1197# CONFIG_SENSORS_ADT7475 is not set
1198# CONFIG_SENSORS_ASC7621 is not set
1199# CONFIG_SENSORS_ATXP1 is not set 1199# CONFIG_SENSORS_ATXP1 is not set
1200# CONFIG_SENSORS_DS1621 is not set 1200# CONFIG_SENSORS_DS1621 is not set
1201# CONFIG_SENSORS_I5K_AMB is not set 1201# CONFIG_SENSORS_I5K_AMB is not set
@@ -1233,6 +1233,7 @@ CONFIG_SENSORS_LM92=y
1233# CONFIG_SENSORS_SMSC47M192 is not set 1233# CONFIG_SENSORS_SMSC47M192 is not set
1234# CONFIG_SENSORS_SMSC47B397 is not set 1234# CONFIG_SENSORS_SMSC47B397 is not set
1235# CONFIG_SENSORS_ADS7828 is not set 1235# CONFIG_SENSORS_ADS7828 is not set
1236# CONFIG_SENSORS_AMC6821 is not set
1236# CONFIG_SENSORS_THMC50 is not set 1237# CONFIG_SENSORS_THMC50 is not set
1237# CONFIG_SENSORS_TMP401 is not set 1238# CONFIG_SENSORS_TMP401 is not set
1238# CONFIG_SENSORS_TMP421 is not set 1239# CONFIG_SENSORS_TMP421 is not set
@@ -1281,19 +1282,24 @@ CONFIG_SSB_POSSIBLE=y
1281# Multifunction device drivers 1282# Multifunction device drivers
1282# 1283#
1283# CONFIG_MFD_CORE is not set 1284# CONFIG_MFD_CORE is not set
1285# CONFIG_MFD_88PM860X is not set
1284# CONFIG_MFD_SM501 is not set 1286# CONFIG_MFD_SM501 is not set
1285# CONFIG_HTC_PASIC3 is not set 1287# CONFIG_HTC_PASIC3 is not set
1288# CONFIG_HTC_I2CPLD is not set
1286# CONFIG_TPS65010 is not set 1289# CONFIG_TPS65010 is not set
1287# CONFIG_TWL4030_CORE is not set 1290# CONFIG_TWL4030_CORE is not set
1288# CONFIG_MFD_TMIO is not set 1291# CONFIG_MFD_TMIO is not set
1289# CONFIG_PMIC_DA903X is not set 1292# CONFIG_PMIC_DA903X is not set
1290# CONFIG_PMIC_ADP5520 is not set 1293# CONFIG_PMIC_ADP5520 is not set
1294# CONFIG_MFD_MAX8925 is not set
1291# CONFIG_MFD_WM8400 is not set 1295# CONFIG_MFD_WM8400 is not set
1292# CONFIG_MFD_WM831X is not set 1296# CONFIG_MFD_WM831X is not set
1293# CONFIG_MFD_WM8350_I2C is not set 1297# CONFIG_MFD_WM8350_I2C is not set
1298# CONFIG_MFD_WM8994 is not set
1294# CONFIG_MFD_PCF50633 is not set 1299# CONFIG_MFD_PCF50633 is not set
1295# CONFIG_AB3100_CORE is not set 1300# CONFIG_AB3100_CORE is not set
1296# CONFIG_MFD_88PM8607 is not set 1301# CONFIG_MFD_TIMBERDALE is not set
1302# CONFIG_LPC_SCH is not set
1297# CONFIG_REGULATOR is not set 1303# CONFIG_REGULATOR is not set
1298# CONFIG_MEDIA_SUPPORT is not set 1304# CONFIG_MEDIA_SUPPORT is not set
1299 1305
@@ -1302,6 +1308,7 @@ CONFIG_SSB_POSSIBLE=y
1302# 1308#
1303# CONFIG_AGP is not set 1309# CONFIG_AGP is not set
1304CONFIG_VGA_ARB=y 1310CONFIG_VGA_ARB=y
1311CONFIG_VGA_ARB_MAX_GPUS=16
1305# CONFIG_DRM is not set 1312# CONFIG_DRM is not set
1306# CONFIG_VGASTATE is not set 1313# CONFIG_VGASTATE is not set
1307CONFIG_VIDEO_OUTPUT_CONTROL=m 1314CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1334,6 +1341,7 @@ CONFIG_USB_HID=y
1334# 1341#
1335# Special HID drivers 1342# Special HID drivers
1336# 1343#
1344# CONFIG_HID_3M_PCT is not set
1337CONFIG_HID_A4TECH=y 1345CONFIG_HID_A4TECH=y
1338CONFIG_HID_APPLE=y 1346CONFIG_HID_APPLE=y
1339CONFIG_HID_BELKIN=y 1347CONFIG_HID_BELKIN=y
@@ -1349,14 +1357,19 @@ CONFIG_HID_GYRATION=y
1349CONFIG_HID_LOGITECH=y 1357CONFIG_HID_LOGITECH=y
1350# CONFIG_LOGITECH_FF is not set 1358# CONFIG_LOGITECH_FF is not set
1351# CONFIG_LOGIRUMBLEPAD2_FF is not set 1359# CONFIG_LOGIRUMBLEPAD2_FF is not set
1360# CONFIG_LOGIG940_FF is not set
1352CONFIG_HID_MICROSOFT=y 1361CONFIG_HID_MICROSOFT=y
1362# CONFIG_HID_MOSART is not set
1353CONFIG_HID_MONTEREY=y 1363CONFIG_HID_MONTEREY=y
1354# CONFIG_HID_NTRIG is not set 1364# CONFIG_HID_NTRIG is not set
1365# CONFIG_HID_ORTEK is not set
1355CONFIG_HID_PANTHERLORD=y 1366CONFIG_HID_PANTHERLORD=y
1356# CONFIG_PANTHERLORD_FF is not set 1367# CONFIG_PANTHERLORD_FF is not set
1357CONFIG_HID_PETALYNX=y 1368CONFIG_HID_PETALYNX=y
1369# CONFIG_HID_QUANTA is not set
1358CONFIG_HID_SAMSUNG=y 1370CONFIG_HID_SAMSUNG=y
1359CONFIG_HID_SONY=y 1371CONFIG_HID_SONY=y
1372# CONFIG_HID_STANTUM is not set
1360CONFIG_HID_SUNPLUS=y 1373CONFIG_HID_SUNPLUS=y
1361# CONFIG_HID_GREENASIA is not set 1374# CONFIG_HID_GREENASIA is not set
1362# CONFIG_HID_SMARTJOYPLUS is not set 1375# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1463,7 +1476,6 @@ CONFIG_USB_STORAGE=y
1463# CONFIG_USB_RIO500 is not set 1476# CONFIG_USB_RIO500 is not set
1464# CONFIG_USB_LEGOTOWER is not set 1477# CONFIG_USB_LEGOTOWER is not set
1465# CONFIG_USB_LCD is not set 1478# CONFIG_USB_LCD is not set
1466# CONFIG_USB_BERRY_CHARGE is not set
1467# CONFIG_USB_LED is not set 1479# CONFIG_USB_LED is not set
1468# CONFIG_USB_CYPRESS_CY7C63 is not set 1480# CONFIG_USB_CYPRESS_CY7C63 is not set
1469# CONFIG_USB_CYTHERM is not set 1481# CONFIG_USB_CYTHERM is not set
@@ -1476,7 +1488,6 @@ CONFIG_USB_STORAGE=y
1476# CONFIG_USB_IOWARRIOR is not set 1488# CONFIG_USB_IOWARRIOR is not set
1477# CONFIG_USB_TEST is not set 1489# CONFIG_USB_TEST is not set
1478# CONFIG_USB_ISIGHTFW is not set 1490# CONFIG_USB_ISIGHTFW is not set
1479# CONFIG_USB_VST is not set
1480# CONFIG_USB_GADGET is not set 1491# CONFIG_USB_GADGET is not set
1481 1492
1482# 1493#
@@ -1560,43 +1571,35 @@ CONFIG_RTC_DRV_RX8581=y
1560CONFIG_STAGING=y 1571CONFIG_STAGING=y
1561# CONFIG_STAGING_EXCLUDE_BUILD is not set 1572# CONFIG_STAGING_EXCLUDE_BUILD is not set
1562# CONFIG_ET131X is not set 1573# CONFIG_ET131X is not set
1563# CONFIG_ME4000 is not set
1564# CONFIG_MEILHAUS is not set
1565# CONFIG_USB_IP_COMMON is not set 1574# CONFIG_USB_IP_COMMON is not set
1575# CONFIG_PRISM2_USB is not set
1566# CONFIG_ECHO is not set 1576# CONFIG_ECHO is not set
1567# CONFIG_COMEDI is not set 1577# CONFIG_COMEDI is not set
1568# CONFIG_ASUS_OLED is not set 1578# CONFIG_ASUS_OLED is not set
1569# CONFIG_ALTERA_PCIE_CHDMA is not set 1579# CONFIG_R8187SE is not set
1570# CONFIG_INPUT_MIMIO is not set 1580# CONFIG_RTL8192SU is not set
1581# CONFIG_RTL8192U is not set
1582# CONFIG_RTL8192E is not set
1571# CONFIG_TRANZPORT is not set 1583# CONFIG_TRANZPORT is not set
1572 1584
1573# 1585#
1574# Android
1575#
1576# CONFIG_ANDROID is not set
1577# CONFIG_DST is not set
1578# CONFIG_POHMELFS is not set
1579# CONFIG_B3DFG is not set
1580# CONFIG_IDE_PHISON is not set
1581# CONFIG_PLAN9AUTH is not set
1582# CONFIG_HECI is not set
1583# CONFIG_USB_CPC is not set
1584
1585#
1586# Qualcomm MSM Camera And Video 1586# Qualcomm MSM Camera And Video
1587# 1587#
1588 1588
1589# 1589#
1590# Camera Sensor Selection 1590# Camera Sensor Selection
1591# 1591#
1592# CONFIG_HYPERV_STORAGE is not set 1592# CONFIG_INPUT_GPIO is not set
1593# CONFIG_HYPERV_BLOCK is not set 1593# CONFIG_POHMELFS is not set
1594# CONFIG_HYPERV_NET is not set 1594# CONFIG_IDE_PHISON is not set
1595# CONFIG_VT6655 is not set
1596# CONFIG_VT6656 is not set
1595CONFIG_VME_BUS=y 1597CONFIG_VME_BUS=y
1596 1598
1597# 1599#
1598# VME Bridge Drivers 1600# VME Bridge Drivers
1599# 1601#
1602# CONFIG_VME_CA91CX42 is not set
1600CONFIG_VME_TSI148=y 1603CONFIG_VME_TSI148=y
1601 1604
1602# 1605#
@@ -1605,6 +1608,24 @@ CONFIG_VME_TSI148=y
1605# CONFIG_VME_USER is not set 1608# CONFIG_VME_USER is not set
1606 1609
1607# 1610#
1611# VME Board Drivers
1612#
1613# CONFIG_VMIVME_7805 is not set
1614
1615#
1616# RAR Register Driver
1617#
1618# CONFIG_RAR_REGISTER is not set
1619# CONFIG_IIO is not set
1620# CONFIG_RAMZSWAP is not set
1621# CONFIG_BATMAN_ADV is not set
1622# CONFIG_STRIP is not set
1623# CONFIG_PCMCIA_WAVELAN is not set
1624# CONFIG_PCMCIA_NETWAVE is not set
1625# CONFIG_DT3155 is not set
1626# CONFIG_CRYSTALHD is not set
1627
1628#
1608# File systems 1629# File systems
1609# 1630#
1610CONFIG_EXT2_FS=y 1631CONFIG_EXT2_FS=y
@@ -1693,6 +1714,7 @@ CONFIG_JFFS2_ZLIB=y
1693# CONFIG_JFFS2_LZO is not set 1714# CONFIG_JFFS2_LZO is not set
1694CONFIG_JFFS2_RTIME=y 1715CONFIG_JFFS2_RTIME=y
1695# CONFIG_JFFS2_RUBIN is not set 1716# CONFIG_JFFS2_RUBIN is not set
1717# CONFIG_LOGFS is not set
1696# CONFIG_CRAMFS is not set 1718# CONFIG_CRAMFS is not set
1697# CONFIG_SQUASHFS is not set 1719# CONFIG_SQUASHFS is not set
1698# CONFIG_VXFS_FS is not set 1720# CONFIG_VXFS_FS is not set
@@ -1719,6 +1741,7 @@ CONFIG_SUNRPC_GSS=y
1719CONFIG_RPCSEC_GSS_KRB5=y 1741CONFIG_RPCSEC_GSS_KRB5=y
1720# CONFIG_RPCSEC_GSS_SPKM3 is not set 1742# CONFIG_RPCSEC_GSS_SPKM3 is not set
1721# CONFIG_SMB_FS is not set 1743# CONFIG_SMB_FS is not set
1744# CONFIG_CEPH_FS is not set
1722CONFIG_CIFS=m 1745CONFIG_CIFS=m
1723# CONFIG_CIFS_STATS is not set 1746# CONFIG_CIFS_STATS is not set
1724# CONFIG_CIFS_WEAK_PW_HASH is not set 1747# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1864,6 +1887,7 @@ CONFIG_CRYPTO_MANAGER=y
1864CONFIG_CRYPTO_MANAGER2=y 1887CONFIG_CRYPTO_MANAGER2=y
1865# CONFIG_CRYPTO_GF128MUL is not set 1888# CONFIG_CRYPTO_GF128MUL is not set
1866# CONFIG_CRYPTO_NULL is not set 1889# CONFIG_CRYPTO_NULL is not set
1890# CONFIG_CRYPTO_PCRYPT is not set
1867CONFIG_CRYPTO_WORKQUEUE=y 1891CONFIG_CRYPTO_WORKQUEUE=y
1868# CONFIG_CRYPTO_CRYPTD is not set 1892# CONFIG_CRYPTO_CRYPTD is not set
1869CONFIG_CRYPTO_AUTHENC=m 1893CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
index eb58dec11a61..1524d948a2ba 100644
--- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc310_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:41 2010 4# Mon Apr 19 23:17:05 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -325,6 +321,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 321# Bus options
326# 322#
327CONFIG_ZONE_DMA=y 323CONFIG_ZONE_DMA=y
324# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 325CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 326CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 327CONFIG_FSL_SOC=y
@@ -340,13 +337,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 337# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 338CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 339# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 342CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 343CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 344# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 345# CONFIG_CARDBUS is not set
351 346
352# 347#
@@ -382,7 +377,6 @@ CONFIG_NET=y
382# Networking options 377# Networking options
383# 378#
384CONFIG_PACKET=y 379CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 380CONFIG_UNIX=y
387CONFIG_XFRM=y 381CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 382CONFIG_XFRM_USER=m
@@ -592,6 +586,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 586# UBI - Unsorted block images
593# 587#
594# CONFIG_MTD_UBI is not set 588# CONFIG_MTD_UBI is not set
589CONFIG_OF_FLATTREE=y
590CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 591CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 592CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 593CONFIG_OF_I2C=y
@@ -629,6 +625,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 625# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 626# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 627# CONFIG_ISL29003 is not set
628# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 629CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 630# CONFIG_C2PORT is not set
634 631
@@ -695,6 +692,7 @@ CONFIG_IDE_PROC_FS=y
695# 692#
696# SCSI device support 693# SCSI device support
697# 694#
695CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 696# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 697CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 698CONFIG_SCSI_DMA=y
@@ -1001,6 +999,7 @@ CONFIG_SERIAL_CORE=y
1001CONFIG_SERIAL_CORE_CONSOLE=y 999CONFIG_SERIAL_CORE_CONSOLE=y
1002# CONFIG_SERIAL_JSM is not set 1000# CONFIG_SERIAL_JSM is not set
1003# CONFIG_SERIAL_OF_PLATFORM is not set 1001# CONFIG_SERIAL_OF_PLATFORM is not set
1002# CONFIG_SERIAL_TIMBERDALE is not set
1004# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1003# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1005CONFIG_UNIX98_PTYS=y 1004CONFIG_UNIX98_PTYS=y
1006# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1005# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1058,6 +1057,7 @@ CONFIG_I2C_HELPER_AUTO=y
1058CONFIG_I2C_MPC=y 1057CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set 1058# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set 1059# CONFIG_I2C_SIMTEC is not set
1060# CONFIG_I2C_XILINX is not set
1061 1061
1062# 1062#
1063# External I2C/SMBus adapter drivers 1063# External I2C/SMBus adapter drivers
@@ -1071,15 +1071,9 @@ CONFIG_I2C_MPC=y
1071# 1071#
1072# CONFIG_I2C_PCA_PLATFORM is not set 1072# CONFIG_I2C_PCA_PLATFORM is not set
1073# CONFIG_I2C_STUB is not set 1073# CONFIG_I2C_STUB is not set
1074
1075#
1076# Miscellaneous I2C Chip support
1077#
1078# CONFIG_SENSORS_TSL2550 is not set
1079# CONFIG_I2C_DEBUG_CORE is not set 1074# CONFIG_I2C_DEBUG_CORE is not set
1080# CONFIG_I2C_DEBUG_ALGO is not set 1075# CONFIG_I2C_DEBUG_ALGO is not set
1081# CONFIG_I2C_DEBUG_BUS is not set 1076# CONFIG_I2C_DEBUG_BUS is not set
1082# CONFIG_I2C_DEBUG_CHIP is not set
1083# CONFIG_SPI is not set 1077# CONFIG_SPI is not set
1084 1078
1085# 1079#
@@ -1094,14 +1088,18 @@ CONFIG_GPIO_SYSFS=y
1094# 1088#
1095# Memory mapped GPIO expanders: 1089# Memory mapped GPIO expanders:
1096# 1090#
1091# CONFIG_GPIO_IT8761E is not set
1097# CONFIG_GPIO_XILINX is not set 1092# CONFIG_GPIO_XILINX is not set
1093# CONFIG_GPIO_SCH is not set
1098 1094
1099# 1095#
1100# I2C GPIO expanders: 1096# I2C GPIO expanders:
1101# 1097#
1098# CONFIG_GPIO_MAX7300 is not set
1102# CONFIG_GPIO_MAX732X is not set 1099# CONFIG_GPIO_MAX732X is not set
1103# CONFIG_GPIO_PCA953X is not set 1100# CONFIG_GPIO_PCA953X is not set
1104# CONFIG_GPIO_PCF857X is not set 1101# CONFIG_GPIO_PCF857X is not set
1102# CONFIG_GPIO_ADP5588 is not set
1105 1103
1106# 1104#
1107# PCI GPIO expanders: 1105# PCI GPIO expanders:
@@ -1134,10 +1132,11 @@ CONFIG_HWMON=y
1134# CONFIG_SENSORS_ADM1029 is not set 1132# CONFIG_SENSORS_ADM1029 is not set
1135# CONFIG_SENSORS_ADM1031 is not set 1133# CONFIG_SENSORS_ADM1031 is not set
1136# CONFIG_SENSORS_ADM9240 is not set 1134# CONFIG_SENSORS_ADM9240 is not set
1135# CONFIG_SENSORS_ADT7411 is not set
1137# CONFIG_SENSORS_ADT7462 is not set 1136# CONFIG_SENSORS_ADT7462 is not set
1138# CONFIG_SENSORS_ADT7470 is not set 1137# CONFIG_SENSORS_ADT7470 is not set
1139# CONFIG_SENSORS_ADT7473 is not set
1140# CONFIG_SENSORS_ADT7475 is not set 1138# CONFIG_SENSORS_ADT7475 is not set
1139# CONFIG_SENSORS_ASC7621 is not set
1141# CONFIG_SENSORS_ATXP1 is not set 1140# CONFIG_SENSORS_ATXP1 is not set
1142# CONFIG_SENSORS_DS1621 is not set 1141# CONFIG_SENSORS_DS1621 is not set
1143# CONFIG_SENSORS_I5K_AMB is not set 1142# CONFIG_SENSORS_I5K_AMB is not set
@@ -1175,6 +1174,7 @@ CONFIG_SENSORS_LM92=y
1175# CONFIG_SENSORS_SMSC47M192 is not set 1174# CONFIG_SENSORS_SMSC47M192 is not set
1176# CONFIG_SENSORS_SMSC47B397 is not set 1175# CONFIG_SENSORS_SMSC47B397 is not set
1177# CONFIG_SENSORS_ADS7828 is not set 1176# CONFIG_SENSORS_ADS7828 is not set
1177# CONFIG_SENSORS_AMC6821 is not set
1178# CONFIG_SENSORS_THMC50 is not set 1178# CONFIG_SENSORS_THMC50 is not set
1179# CONFIG_SENSORS_TMP401 is not set 1179# CONFIG_SENSORS_TMP401 is not set
1180# CONFIG_SENSORS_TMP421 is not set 1180# CONFIG_SENSORS_TMP421 is not set
@@ -1223,19 +1223,24 @@ CONFIG_SSB_POSSIBLE=y
1223# Multifunction device drivers 1223# Multifunction device drivers
1224# 1224#
1225# CONFIG_MFD_CORE is not set 1225# CONFIG_MFD_CORE is not set
1226# CONFIG_MFD_88PM860X is not set
1226# CONFIG_MFD_SM501 is not set 1227# CONFIG_MFD_SM501 is not set
1227# CONFIG_HTC_PASIC3 is not set 1228# CONFIG_HTC_PASIC3 is not set
1229# CONFIG_HTC_I2CPLD is not set
1228# CONFIG_TPS65010 is not set 1230# CONFIG_TPS65010 is not set
1229# CONFIG_TWL4030_CORE is not set 1231# CONFIG_TWL4030_CORE is not set
1230# CONFIG_MFD_TMIO is not set 1232# CONFIG_MFD_TMIO is not set
1231# CONFIG_PMIC_DA903X is not set 1233# CONFIG_PMIC_DA903X is not set
1232# CONFIG_PMIC_ADP5520 is not set 1234# CONFIG_PMIC_ADP5520 is not set
1235# CONFIG_MFD_MAX8925 is not set
1233# CONFIG_MFD_WM8400 is not set 1236# CONFIG_MFD_WM8400 is not set
1234# CONFIG_MFD_WM831X is not set 1237# CONFIG_MFD_WM831X is not set
1235# CONFIG_MFD_WM8350_I2C is not set 1238# CONFIG_MFD_WM8350_I2C is not set
1239# CONFIG_MFD_WM8994 is not set
1236# CONFIG_MFD_PCF50633 is not set 1240# CONFIG_MFD_PCF50633 is not set
1237# CONFIG_AB3100_CORE is not set 1241# CONFIG_AB3100_CORE is not set
1238# CONFIG_MFD_88PM8607 is not set 1242# CONFIG_MFD_TIMBERDALE is not set
1243# CONFIG_LPC_SCH is not set
1239# CONFIG_REGULATOR is not set 1244# CONFIG_REGULATOR is not set
1240# CONFIG_MEDIA_SUPPORT is not set 1245# CONFIG_MEDIA_SUPPORT is not set
1241 1246
@@ -1244,6 +1249,7 @@ CONFIG_SSB_POSSIBLE=y
1244# 1249#
1245# CONFIG_AGP is not set 1250# CONFIG_AGP is not set
1246CONFIG_VGA_ARB=y 1251CONFIG_VGA_ARB=y
1252CONFIG_VGA_ARB_MAX_GPUS=16
1247# CONFIG_DRM is not set 1253# CONFIG_DRM is not set
1248# CONFIG_VGASTATE is not set 1254# CONFIG_VGASTATE is not set
1249CONFIG_VIDEO_OUTPUT_CONTROL=m 1255CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1276,6 +1282,7 @@ CONFIG_USB_HID=y
1276# 1282#
1277# Special HID drivers 1283# Special HID drivers
1278# 1284#
1285# CONFIG_HID_3M_PCT is not set
1279CONFIG_HID_A4TECH=y 1286CONFIG_HID_A4TECH=y
1280CONFIG_HID_APPLE=y 1287CONFIG_HID_APPLE=y
1281CONFIG_HID_BELKIN=y 1288CONFIG_HID_BELKIN=y
@@ -1291,14 +1298,19 @@ CONFIG_HID_GYRATION=y
1291CONFIG_HID_LOGITECH=y 1298CONFIG_HID_LOGITECH=y
1292# CONFIG_LOGITECH_FF is not set 1299# CONFIG_LOGITECH_FF is not set
1293# CONFIG_LOGIRUMBLEPAD2_FF is not set 1300# CONFIG_LOGIRUMBLEPAD2_FF is not set
1301# CONFIG_LOGIG940_FF is not set
1294CONFIG_HID_MICROSOFT=y 1302CONFIG_HID_MICROSOFT=y
1303# CONFIG_HID_MOSART is not set
1295CONFIG_HID_MONTEREY=y 1304CONFIG_HID_MONTEREY=y
1296# CONFIG_HID_NTRIG is not set 1305# CONFIG_HID_NTRIG is not set
1306# CONFIG_HID_ORTEK is not set
1297CONFIG_HID_PANTHERLORD=y 1307CONFIG_HID_PANTHERLORD=y
1298# CONFIG_PANTHERLORD_FF is not set 1308# CONFIG_PANTHERLORD_FF is not set
1299CONFIG_HID_PETALYNX=y 1309CONFIG_HID_PETALYNX=y
1310# CONFIG_HID_QUANTA is not set
1300CONFIG_HID_SAMSUNG=y 1311CONFIG_HID_SAMSUNG=y
1301CONFIG_HID_SONY=y 1312CONFIG_HID_SONY=y
1313# CONFIG_HID_STANTUM is not set
1302CONFIG_HID_SUNPLUS=y 1314CONFIG_HID_SUNPLUS=y
1303# CONFIG_HID_GREENASIA is not set 1315# CONFIG_HID_GREENASIA is not set
1304# CONFIG_HID_SMARTJOYPLUS is not set 1316# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1405,7 +1417,6 @@ CONFIG_USB_STORAGE=y
1405# CONFIG_USB_RIO500 is not set 1417# CONFIG_USB_RIO500 is not set
1406# CONFIG_USB_LEGOTOWER is not set 1418# CONFIG_USB_LEGOTOWER is not set
1407# CONFIG_USB_LCD is not set 1419# CONFIG_USB_LCD is not set
1408# CONFIG_USB_BERRY_CHARGE is not set
1409# CONFIG_USB_LED is not set 1420# CONFIG_USB_LED is not set
1410# CONFIG_USB_CYPRESS_CY7C63 is not set 1421# CONFIG_USB_CYPRESS_CY7C63 is not set
1411# CONFIG_USB_CYTHERM is not set 1422# CONFIG_USB_CYTHERM is not set
@@ -1418,7 +1429,6 @@ CONFIG_USB_STORAGE=y
1418# CONFIG_USB_IOWARRIOR is not set 1429# CONFIG_USB_IOWARRIOR is not set
1419# CONFIG_USB_TEST is not set 1430# CONFIG_USB_TEST is not set
1420# CONFIG_USB_ISIGHTFW is not set 1431# CONFIG_USB_ISIGHTFW is not set
1421# CONFIG_USB_VST is not set
1422# CONFIG_USB_GADGET is not set 1432# CONFIG_USB_GADGET is not set
1423 1433
1424# 1434#
@@ -1590,6 +1600,7 @@ CONFIG_JFFS2_ZLIB=y
1590# CONFIG_JFFS2_LZO is not set 1600# CONFIG_JFFS2_LZO is not set
1591CONFIG_JFFS2_RTIME=y 1601CONFIG_JFFS2_RTIME=y
1592# CONFIG_JFFS2_RUBIN is not set 1602# CONFIG_JFFS2_RUBIN is not set
1603# CONFIG_LOGFS is not set
1593# CONFIG_CRAMFS is not set 1604# CONFIG_CRAMFS is not set
1594# CONFIG_SQUASHFS is not set 1605# CONFIG_SQUASHFS is not set
1595# CONFIG_VXFS_FS is not set 1606# CONFIG_VXFS_FS is not set
@@ -1616,6 +1627,7 @@ CONFIG_SUNRPC_GSS=y
1616CONFIG_RPCSEC_GSS_KRB5=y 1627CONFIG_RPCSEC_GSS_KRB5=y
1617# CONFIG_RPCSEC_GSS_SPKM3 is not set 1628# CONFIG_RPCSEC_GSS_SPKM3 is not set
1618# CONFIG_SMB_FS is not set 1629# CONFIG_SMB_FS is not set
1630# CONFIG_CEPH_FS is not set
1619CONFIG_CIFS=m 1631CONFIG_CIFS=m
1620# CONFIG_CIFS_STATS is not set 1632# CONFIG_CIFS_STATS is not set
1621# CONFIG_CIFS_WEAK_PW_HASH is not set 1633# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1761,6 +1773,7 @@ CONFIG_CRYPTO_MANAGER=y
1761CONFIG_CRYPTO_MANAGER2=y 1773CONFIG_CRYPTO_MANAGER2=y
1762# CONFIG_CRYPTO_GF128MUL is not set 1774# CONFIG_CRYPTO_GF128MUL is not set
1763# CONFIG_CRYPTO_NULL is not set 1775# CONFIG_CRYPTO_NULL is not set
1776# CONFIG_CRYPTO_PCRYPT is not set
1764CONFIG_CRYPTO_WORKQUEUE=y 1777CONFIG_CRYPTO_WORKQUEUE=y
1765# CONFIG_CRYPTO_CRYPTD is not set 1778# CONFIG_CRYPTO_CRYPTD is not set
1766CONFIG_CRYPTO_AUTHENC=m 1779CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 62c2b81a4a8f..767c204c0603 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:42 2010 4# Mon Apr 19 23:17:06 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -326,6 +322,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 322# Bus options
327# 323#
328CONFIG_ZONE_DMA=y 324CONFIG_ZONE_DMA=y
325# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 326CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
@@ -341,7 +338,6 @@ CONFIG_PCIEAER=y
341# CONFIG_PCIEASPM is not set 338# CONFIG_PCIEASPM is not set
342CONFIG_ARCH_SUPPORTS_MSI=y 339CONFIG_ARCH_SUPPORTS_MSI=y
343# CONFIG_PCI_MSI is not set 340# CONFIG_PCI_MSI is not set
344# CONFIG_PCI_LEGACY is not set
345CONFIG_PCI_DEBUG=y 341CONFIG_PCI_DEBUG=y
346# CONFIG_PCI_STUB is not set 342# CONFIG_PCI_STUB is not set
347# CONFIG_PCI_IOV is not set 343# CONFIG_PCI_IOV is not set
@@ -369,7 +365,6 @@ CONFIG_NET=y
369# Networking options 365# Networking options
370# 366#
371CONFIG_PACKET=y 367CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 368CONFIG_UNIX=y
374CONFIG_XFRM=y 369CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -552,6 +547,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 547# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 548CONFIG_STP=m
554CONFIG_BRIDGE=m 549CONFIG_BRIDGE=m
550CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 551# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 552CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 553# CONFIG_VLAN_8021Q_GVRP is not set
@@ -728,6 +724,8 @@ CONFIG_MTD_PHYSMAP_OF=y
728# UBI - Unsorted block images 724# UBI - Unsorted block images
729# 725#
730# CONFIG_MTD_UBI is not set 726# CONFIG_MTD_UBI is not set
727CONFIG_OF_FLATTREE=y
728CONFIG_OF_DYNAMIC=y
731CONFIG_OF_DEVICE=y 729CONFIG_OF_DEVICE=y
732CONFIG_OF_GPIO=y 730CONFIG_OF_GPIO=y
733CONFIG_OF_I2C=y 731CONFIG_OF_I2C=y
@@ -765,6 +763,7 @@ CONFIG_MISC_DEVICES=y
765# CONFIG_ENCLOSURE_SERVICES is not set 763# CONFIG_ENCLOSURE_SERVICES is not set
766# CONFIG_HP_ILO is not set 764# CONFIG_HP_ILO is not set
767# CONFIG_ISL29003 is not set 765# CONFIG_ISL29003 is not set
766# CONFIG_SENSORS_TSL2550 is not set
768CONFIG_DS1682=y 767CONFIG_DS1682=y
769# CONFIG_C2PORT is not set 768# CONFIG_C2PORT is not set
770 769
@@ -782,6 +781,7 @@ CONFIG_HAVE_IDE=y
782# 781#
783# SCSI device support 782# SCSI device support
784# 783#
784CONFIG_SCSI_MOD=y
785# CONFIG_RAID_ATTRS is not set 785# CONFIG_RAID_ATTRS is not set
786CONFIG_SCSI=y 786CONFIG_SCSI=y
787CONFIG_SCSI_DMA=y 787CONFIG_SCSI_DMA=y
@@ -905,6 +905,7 @@ CONFIG_SATA_SIL=y
905# CONFIG_PATA_IT821X is not set 905# CONFIG_PATA_IT821X is not set
906# CONFIG_PATA_IT8213 is not set 906# CONFIG_PATA_IT8213 is not set
907# CONFIG_PATA_JMICRON is not set 907# CONFIG_PATA_JMICRON is not set
908# CONFIG_PATA_LEGACY is not set
908# CONFIG_PATA_TRIFLEX is not set 909# CONFIG_PATA_TRIFLEX is not set
909# CONFIG_PATA_MARVELL is not set 910# CONFIG_PATA_MARVELL is not set
910# CONFIG_PATA_MPIIX is not set 911# CONFIG_PATA_MPIIX is not set
@@ -1155,6 +1156,7 @@ CONFIG_SERIAL_CORE=y
1155CONFIG_SERIAL_CORE_CONSOLE=y 1156CONFIG_SERIAL_CORE_CONSOLE=y
1156# CONFIG_SERIAL_JSM is not set 1157# CONFIG_SERIAL_JSM is not set
1157# CONFIG_SERIAL_OF_PLATFORM is not set 1158# CONFIG_SERIAL_OF_PLATFORM is not set
1159# CONFIG_SERIAL_TIMBERDALE is not set
1158# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1160# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1159CONFIG_UNIX98_PTYS=y 1161CONFIG_UNIX98_PTYS=y
1160# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1162# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1204,6 +1206,7 @@ CONFIG_I2C_HELPER_AUTO=y
1204CONFIG_I2C_MPC=y 1206CONFIG_I2C_MPC=y
1205# CONFIG_I2C_OCORES is not set 1207# CONFIG_I2C_OCORES is not set
1206# CONFIG_I2C_SIMTEC is not set 1208# CONFIG_I2C_SIMTEC is not set
1209# CONFIG_I2C_XILINX is not set
1207 1210
1208# 1211#
1209# External I2C/SMBus adapter drivers 1212# External I2C/SMBus adapter drivers
@@ -1217,15 +1220,9 @@ CONFIG_I2C_MPC=y
1217# 1220#
1218# CONFIG_I2C_PCA_PLATFORM is not set 1221# CONFIG_I2C_PCA_PLATFORM is not set
1219# CONFIG_I2C_STUB is not set 1222# CONFIG_I2C_STUB is not set
1220
1221#
1222# Miscellaneous I2C Chip support
1223#
1224# CONFIG_SENSORS_TSL2550 is not set
1225# CONFIG_I2C_DEBUG_CORE is not set 1223# CONFIG_I2C_DEBUG_CORE is not set
1226# CONFIG_I2C_DEBUG_ALGO is not set 1224# CONFIG_I2C_DEBUG_ALGO is not set
1227# CONFIG_I2C_DEBUG_BUS is not set 1225# CONFIG_I2C_DEBUG_BUS is not set
1228# CONFIG_I2C_DEBUG_CHIP is not set
1229# CONFIG_SPI is not set 1226# CONFIG_SPI is not set
1230 1227
1231# 1228#
@@ -1241,14 +1238,18 @@ CONFIG_GPIOLIB=y
1241# 1238#
1242# Memory mapped GPIO expanders: 1239# Memory mapped GPIO expanders:
1243# 1240#
1241# CONFIG_GPIO_IT8761E is not set
1244# CONFIG_GPIO_XILINX is not set 1242# CONFIG_GPIO_XILINX is not set
1243# CONFIG_GPIO_SCH is not set
1245 1244
1246# 1245#
1247# I2C GPIO expanders: 1246# I2C GPIO expanders:
1248# 1247#
1248# CONFIG_GPIO_MAX7300 is not set
1249# CONFIG_GPIO_MAX732X is not set 1249# CONFIG_GPIO_MAX732X is not set
1250# CONFIG_GPIO_PCA953X is not set 1250# CONFIG_GPIO_PCA953X is not set
1251# CONFIG_GPIO_PCF857X is not set 1251# CONFIG_GPIO_PCF857X is not set
1252# CONFIG_GPIO_ADP5588 is not set
1252 1253
1253# 1254#
1254# PCI GPIO expanders: 1255# PCI GPIO expanders:
@@ -1281,10 +1282,11 @@ CONFIG_HWMON=y
1281# CONFIG_SENSORS_ADM1029 is not set 1282# CONFIG_SENSORS_ADM1029 is not set
1282# CONFIG_SENSORS_ADM1031 is not set 1283# CONFIG_SENSORS_ADM1031 is not set
1283# CONFIG_SENSORS_ADM9240 is not set 1284# CONFIG_SENSORS_ADM9240 is not set
1285# CONFIG_SENSORS_ADT7411 is not set
1284# CONFIG_SENSORS_ADT7462 is not set 1286# CONFIG_SENSORS_ADT7462 is not set
1285# CONFIG_SENSORS_ADT7470 is not set 1287# CONFIG_SENSORS_ADT7470 is not set
1286# CONFIG_SENSORS_ADT7473 is not set
1287# CONFIG_SENSORS_ADT7475 is not set 1288# CONFIG_SENSORS_ADT7475 is not set
1289# CONFIG_SENSORS_ASC7621 is not set
1288# CONFIG_SENSORS_ATXP1 is not set 1290# CONFIG_SENSORS_ATXP1 is not set
1289# CONFIG_SENSORS_DS1621 is not set 1291# CONFIG_SENSORS_DS1621 is not set
1290# CONFIG_SENSORS_I5K_AMB is not set 1292# CONFIG_SENSORS_I5K_AMB is not set
@@ -1322,6 +1324,7 @@ CONFIG_SENSORS_LM92=y
1322# CONFIG_SENSORS_SMSC47M192 is not set 1324# CONFIG_SENSORS_SMSC47M192 is not set
1323# CONFIG_SENSORS_SMSC47B397 is not set 1325# CONFIG_SENSORS_SMSC47B397 is not set
1324# CONFIG_SENSORS_ADS7828 is not set 1326# CONFIG_SENSORS_ADS7828 is not set
1327# CONFIG_SENSORS_AMC6821 is not set
1325# CONFIG_SENSORS_THMC50 is not set 1328# CONFIG_SENSORS_THMC50 is not set
1326# CONFIG_SENSORS_TMP401 is not set 1329# CONFIG_SENSORS_TMP401 is not set
1327# CONFIG_SENSORS_TMP421 is not set 1330# CONFIG_SENSORS_TMP421 is not set
@@ -1370,19 +1373,24 @@ CONFIG_SSB_POSSIBLE=y
1370# Multifunction device drivers 1373# Multifunction device drivers
1371# 1374#
1372# CONFIG_MFD_CORE is not set 1375# CONFIG_MFD_CORE is not set
1376# CONFIG_MFD_88PM860X is not set
1373# CONFIG_MFD_SM501 is not set 1377# CONFIG_MFD_SM501 is not set
1374# CONFIG_HTC_PASIC3 is not set 1378# CONFIG_HTC_PASIC3 is not set
1379# CONFIG_HTC_I2CPLD is not set
1375# CONFIG_TPS65010 is not set 1380# CONFIG_TPS65010 is not set
1376# CONFIG_TWL4030_CORE is not set 1381# CONFIG_TWL4030_CORE is not set
1377# CONFIG_MFD_TMIO is not set 1382# CONFIG_MFD_TMIO is not set
1378# CONFIG_PMIC_DA903X is not set 1383# CONFIG_PMIC_DA903X is not set
1379# CONFIG_PMIC_ADP5520 is not set 1384# CONFIG_PMIC_ADP5520 is not set
1385# CONFIG_MFD_MAX8925 is not set
1380# CONFIG_MFD_WM8400 is not set 1386# CONFIG_MFD_WM8400 is not set
1381# CONFIG_MFD_WM831X is not set 1387# CONFIG_MFD_WM831X is not set
1382# CONFIG_MFD_WM8350_I2C is not set 1388# CONFIG_MFD_WM8350_I2C is not set
1389# CONFIG_MFD_WM8994 is not set
1383# CONFIG_MFD_PCF50633 is not set 1390# CONFIG_MFD_PCF50633 is not set
1384# CONFIG_AB3100_CORE is not set 1391# CONFIG_AB3100_CORE is not set
1385# CONFIG_MFD_88PM8607 is not set 1392# CONFIG_MFD_TIMBERDALE is not set
1393# CONFIG_LPC_SCH is not set
1386# CONFIG_REGULATOR is not set 1394# CONFIG_REGULATOR is not set
1387# CONFIG_MEDIA_SUPPORT is not set 1395# CONFIG_MEDIA_SUPPORT is not set
1388 1396
@@ -1391,6 +1399,7 @@ CONFIG_SSB_POSSIBLE=y
1391# 1399#
1392# CONFIG_AGP is not set 1400# CONFIG_AGP is not set
1393CONFIG_VGA_ARB=y 1401CONFIG_VGA_ARB=y
1402CONFIG_VGA_ARB_MAX_GPUS=16
1394# CONFIG_DRM is not set 1403# CONFIG_DRM is not set
1395# CONFIG_VGASTATE is not set 1404# CONFIG_VGASTATE is not set
1396CONFIG_VIDEO_OUTPUT_CONTROL=m 1405CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1423,6 +1432,7 @@ CONFIG_USB_HID=y
1423# 1432#
1424# Special HID drivers 1433# Special HID drivers
1425# 1434#
1435# CONFIG_HID_3M_PCT is not set
1426CONFIG_HID_A4TECH=y 1436CONFIG_HID_A4TECH=y
1427CONFIG_HID_APPLE=y 1437CONFIG_HID_APPLE=y
1428CONFIG_HID_BELKIN=y 1438CONFIG_HID_BELKIN=y
@@ -1438,14 +1448,19 @@ CONFIG_HID_GYRATION=y
1438CONFIG_HID_LOGITECH=y 1448CONFIG_HID_LOGITECH=y
1439# CONFIG_LOGITECH_FF is not set 1449# CONFIG_LOGITECH_FF is not set
1440# CONFIG_LOGIRUMBLEPAD2_FF is not set 1450# CONFIG_LOGIRUMBLEPAD2_FF is not set
1451# CONFIG_LOGIG940_FF is not set
1441CONFIG_HID_MICROSOFT=y 1452CONFIG_HID_MICROSOFT=y
1453# CONFIG_HID_MOSART is not set
1442CONFIG_HID_MONTEREY=y 1454CONFIG_HID_MONTEREY=y
1443# CONFIG_HID_NTRIG is not set 1455# CONFIG_HID_NTRIG is not set
1456# CONFIG_HID_ORTEK is not set
1444CONFIG_HID_PANTHERLORD=y 1457CONFIG_HID_PANTHERLORD=y
1445# CONFIG_PANTHERLORD_FF is not set 1458# CONFIG_PANTHERLORD_FF is not set
1446CONFIG_HID_PETALYNX=y 1459CONFIG_HID_PETALYNX=y
1460# CONFIG_HID_QUANTA is not set
1447CONFIG_HID_SAMSUNG=y 1461CONFIG_HID_SAMSUNG=y
1448CONFIG_HID_SONY=y 1462CONFIG_HID_SONY=y
1463# CONFIG_HID_STANTUM is not set
1449CONFIG_HID_SUNPLUS=y 1464CONFIG_HID_SUNPLUS=y
1450# CONFIG_HID_GREENASIA is not set 1465# CONFIG_HID_GREENASIA is not set
1451# CONFIG_HID_SMARTJOYPLUS is not set 1466# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1552,7 +1567,6 @@ CONFIG_USB_STORAGE=y
1552# CONFIG_USB_RIO500 is not set 1567# CONFIG_USB_RIO500 is not set
1553# CONFIG_USB_LEGOTOWER is not set 1568# CONFIG_USB_LEGOTOWER is not set
1554# CONFIG_USB_LCD is not set 1569# CONFIG_USB_LCD is not set
1555# CONFIG_USB_BERRY_CHARGE is not set
1556# CONFIG_USB_LED is not set 1570# CONFIG_USB_LED is not set
1557# CONFIG_USB_CYPRESS_CY7C63 is not set 1571# CONFIG_USB_CYPRESS_CY7C63 is not set
1558# CONFIG_USB_CYTHERM is not set 1572# CONFIG_USB_CYTHERM is not set
@@ -1565,7 +1579,6 @@ CONFIG_USB_STORAGE=y
1565# CONFIG_USB_IOWARRIOR is not set 1579# CONFIG_USB_IOWARRIOR is not set
1566# CONFIG_USB_TEST is not set 1580# CONFIG_USB_TEST is not set
1567# CONFIG_USB_ISIGHTFW is not set 1581# CONFIG_USB_ISIGHTFW is not set
1568# CONFIG_USB_VST is not set
1569# CONFIG_USB_ATM is not set 1582# CONFIG_USB_ATM is not set
1570# CONFIG_USB_GADGET is not set 1583# CONFIG_USB_GADGET is not set
1571 1584
@@ -1650,29 +1663,29 @@ CONFIG_RTC_DRV_RX8581=y
1650CONFIG_STAGING=y 1663CONFIG_STAGING=y
1651# CONFIG_STAGING_EXCLUDE_BUILD is not set 1664# CONFIG_STAGING_EXCLUDE_BUILD is not set
1652# CONFIG_ET131X is not set 1665# CONFIG_ET131X is not set
1653# CONFIG_ME4000 is not set
1654# CONFIG_MEILHAUS is not set
1655# CONFIG_USB_IP_COMMON is not set 1666# CONFIG_USB_IP_COMMON is not set
1667# CONFIG_PRISM2_USB is not set
1656# CONFIG_ECHO is not set 1668# CONFIG_ECHO is not set
1657# CONFIG_COMEDI is not set 1669# CONFIG_COMEDI is not set
1658# CONFIG_ASUS_OLED is not set 1670# CONFIG_ASUS_OLED is not set
1659# CONFIG_ALTERA_PCIE_CHDMA is not set 1671# CONFIG_R8187SE is not set
1660# CONFIG_INPUT_MIMIO is not set 1672# CONFIG_RTL8192SU is not set
1673# CONFIG_RTL8192U is not set
1674# CONFIG_RTL8192E is not set
1661# CONFIG_TRANZPORT is not set 1675# CONFIG_TRANZPORT is not set
1662 1676
1663# 1677#
1664# Android 1678# Qualcomm MSM Camera And Video
1679#
1680
1681#
1682# Camera Sensor Selection
1665# 1683#
1666# CONFIG_ANDROID is not set 1684# CONFIG_INPUT_GPIO is not set
1667# CONFIG_DST is not set
1668# CONFIG_POHMELFS is not set 1685# CONFIG_POHMELFS is not set
1669# CONFIG_B3DFG is not set
1670# CONFIG_IDE_PHISON is not set 1686# CONFIG_IDE_PHISON is not set
1671# CONFIG_PLAN9AUTH is not set
1672# CONFIG_HECI is not set
1673# CONFIG_VT6655 is not set 1687# CONFIG_VT6655 is not set
1674# CONFIG_USB_CPC is not set 1688# CONFIG_VT6656 is not set
1675# CONFIG_RDC_17F3101X is not set
1676CONFIG_VME_BUS=y 1689CONFIG_VME_BUS=y
1677 1690
1678# 1691#
@@ -1687,6 +1700,22 @@ CONFIG_VME_TSI148=y
1687# CONFIG_VME_USER is not set 1700# CONFIG_VME_USER is not set
1688 1701
1689# 1702#
1703# VME Board Drivers
1704#
1705# CONFIG_VMIVME_7805 is not set
1706
1707#
1708# RAR Register Driver
1709#
1710# CONFIG_RAR_REGISTER is not set
1711# CONFIG_IIO is not set
1712# CONFIG_RAMZSWAP is not set
1713# CONFIG_BATMAN_ADV is not set
1714# CONFIG_STRIP is not set
1715# CONFIG_DT3155 is not set
1716# CONFIG_CRYSTALHD is not set
1717
1718#
1690# File systems 1719# File systems
1691# 1720#
1692CONFIG_EXT2_FS=y 1721CONFIG_EXT2_FS=y
@@ -1772,6 +1801,7 @@ CONFIG_JFFS2_ZLIB=y
1772# CONFIG_JFFS2_LZO is not set 1801# CONFIG_JFFS2_LZO is not set
1773CONFIG_JFFS2_RTIME=y 1802CONFIG_JFFS2_RTIME=y
1774# CONFIG_JFFS2_RUBIN is not set 1803# CONFIG_JFFS2_RUBIN is not set
1804# CONFIG_LOGFS is not set
1775# CONFIG_CRAMFS is not set 1805# CONFIG_CRAMFS is not set
1776# CONFIG_SQUASHFS is not set 1806# CONFIG_SQUASHFS is not set
1777# CONFIG_VXFS_FS is not set 1807# CONFIG_VXFS_FS is not set
@@ -1798,6 +1828,7 @@ CONFIG_SUNRPC_GSS=y
1798CONFIG_RPCSEC_GSS_KRB5=y 1828CONFIG_RPCSEC_GSS_KRB5=y
1799# CONFIG_RPCSEC_GSS_SPKM3 is not set 1829# CONFIG_RPCSEC_GSS_SPKM3 is not set
1800# CONFIG_SMB_FS is not set 1830# CONFIG_SMB_FS is not set
1831# CONFIG_CEPH_FS is not set
1801CONFIG_CIFS=m 1832CONFIG_CIFS=m
1802# CONFIG_CIFS_STATS is not set 1833# CONFIG_CIFS_STATS is not set
1803# CONFIG_CIFS_WEAK_PW_HASH is not set 1834# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1870,7 +1901,7 @@ CONFIG_CRC32=y
1870# CONFIG_CRC7 is not set 1901# CONFIG_CRC7 is not set
1871CONFIG_LIBCRC32C=m 1902CONFIG_LIBCRC32C=m
1872CONFIG_ZLIB_INFLATE=y 1903CONFIG_ZLIB_INFLATE=y
1873CONFIG_ZLIB_DEFLATE=m 1904CONFIG_ZLIB_DEFLATE=y
1874CONFIG_DECOMPRESS_GZIP=y 1905CONFIG_DECOMPRESS_GZIP=y
1875CONFIG_HAS_IOMEM=y 1906CONFIG_HAS_IOMEM=y
1876CONFIG_HAS_IOPORT=y 1907CONFIG_HAS_IOPORT=y
@@ -2006,6 +2037,7 @@ CONFIG_CRYPTO_MANAGER=y
2006CONFIG_CRYPTO_MANAGER2=y 2037CONFIG_CRYPTO_MANAGER2=y
2007# CONFIG_CRYPTO_GF128MUL is not set 2038# CONFIG_CRYPTO_GF128MUL is not set
2008CONFIG_CRYPTO_NULL=m 2039CONFIG_CRYPTO_NULL=m
2040# CONFIG_CRYPTO_PCRYPT is not set
2009CONFIG_CRYPTO_WORKQUEUE=y 2041CONFIG_CRYPTO_WORKQUEUE=y
2010# CONFIG_CRYPTO_CRYPTD is not set 2042# CONFIG_CRYPTO_CRYPTD is not set
2011CONFIG_CRYPTO_AUTHENC=m 2043CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index aab3baebab8c..55b9e4e867ac 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:39 2010 4# Mon Apr 19 23:17:03 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,11 +97,6 @@ CONFIG_RCU_FANOUT=32
97CONFIG_IKCONFIG=y 97CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y 98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101CONFIG_SYSFS_DEPRECATED=y
107CONFIG_SYSFS_DEPRECATED_V2=y 102CONFIG_SYSFS_DEPRECATED_V2=y
@@ -112,6 +107,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 107CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 108# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 109# CONFIG_RD_LZMA is not set
110# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 113CONFIG_ANON_INODES=y
@@ -320,6 +316,7 @@ CONFIG_ISA_DMA_API=y
320# Bus options 316# Bus options
321# 317#
322CONFIG_ZONE_DMA=y 318CONFIG_ZONE_DMA=y
319# CONFIG_NEED_DMA_MAP_STATE is not set
323CONFIG_GENERIC_ISA_DMA=y 320CONFIG_GENERIC_ISA_DMA=y
324CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
325CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
@@ -335,7 +332,6 @@ CONFIG_PCIEAER=y
335# CONFIG_PCIEASPM is not set 332# CONFIG_PCIEASPM is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339CONFIG_PCI_DEBUG=y 335CONFIG_PCI_DEBUG=y
340# CONFIG_PCI_STUB is not set 336# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 337# CONFIG_PCI_IOV is not set
@@ -362,7 +358,6 @@ CONFIG_NET=y
362# Networking options 358# Networking options
363# 359#
364CONFIG_PACKET=y 360CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 361CONFIG_UNIX=y
367CONFIG_XFRM=y 362CONFIG_XFRM=y
368CONFIG_XFRM_USER=y 363CONFIG_XFRM_USER=y
@@ -571,6 +566,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
571# UBI - Unsorted block images 566# UBI - Unsorted block images
572# 567#
573# CONFIG_MTD_UBI is not set 568# CONFIG_MTD_UBI is not set
569CONFIG_OF_FLATTREE=y
570CONFIG_OF_DYNAMIC=y
574CONFIG_OF_DEVICE=y 571CONFIG_OF_DEVICE=y
575CONFIG_OF_I2C=y 572CONFIG_OF_I2C=y
576# CONFIG_PARPORT is not set 573# CONFIG_PARPORT is not set
@@ -605,6 +602,7 @@ CONFIG_MISC_DEVICES=y
605# CONFIG_ENCLOSURE_SERVICES is not set 602# CONFIG_ENCLOSURE_SERVICES is not set
606# CONFIG_HP_ILO is not set 603# CONFIG_HP_ILO is not set
607# CONFIG_ISL29003 is not set 604# CONFIG_ISL29003 is not set
605# CONFIG_SENSORS_TSL2550 is not set
608# CONFIG_DS1682 is not set 606# CONFIG_DS1682 is not set
609# CONFIG_C2PORT is not set 607# CONFIG_C2PORT is not set
610 608
@@ -670,6 +668,7 @@ CONFIG_IDE_PROC_FS=y
670# 668#
671# SCSI device support 669# SCSI device support
672# 670#
671CONFIG_SCSI_MOD=y
673# CONFIG_RAID_ATTRS is not set 672# CONFIG_RAID_ATTRS is not set
674CONFIG_SCSI=y 673CONFIG_SCSI=y
675CONFIG_SCSI_DMA=y 674CONFIG_SCSI_DMA=y
@@ -792,6 +791,7 @@ CONFIG_PATA_ALI=y
792# CONFIG_PATA_IT821X is not set 791# CONFIG_PATA_IT821X is not set
793# CONFIG_PATA_IT8213 is not set 792# CONFIG_PATA_IT8213 is not set
794# CONFIG_PATA_JMICRON is not set 793# CONFIG_PATA_JMICRON is not set
794# CONFIG_PATA_LEGACY is not set
795# CONFIG_PATA_TRIFLEX is not set 795# CONFIG_PATA_TRIFLEX is not set
796# CONFIG_PATA_MARVELL is not set 796# CONFIG_PATA_MARVELL is not set
797# CONFIG_PATA_MPIIX is not set 797# CONFIG_PATA_MPIIX is not set
@@ -970,6 +970,7 @@ CONFIG_SERIAL_CORE=y
970CONFIG_SERIAL_CORE_CONSOLE=y 970CONFIG_SERIAL_CORE_CONSOLE=y
971# CONFIG_SERIAL_JSM is not set 971# CONFIG_SERIAL_JSM is not set
972# CONFIG_SERIAL_OF_PLATFORM is not set 972# CONFIG_SERIAL_OF_PLATFORM is not set
973# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 974# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 975CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 976# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1017,6 +1018,7 @@ CONFIG_I2C_HELPER_AUTO=y
1017CONFIG_I2C_MPC=y 1018CONFIG_I2C_MPC=y
1018# CONFIG_I2C_OCORES is not set 1019# CONFIG_I2C_OCORES is not set
1019# CONFIG_I2C_SIMTEC is not set 1020# CONFIG_I2C_SIMTEC is not set
1021# CONFIG_I2C_XILINX is not set
1020 1022
1021# 1023#
1022# External I2C/SMBus adapter drivers 1024# External I2C/SMBus adapter drivers
@@ -1029,15 +1031,9 @@ CONFIG_I2C_MPC=y
1029# 1031#
1030# CONFIG_I2C_PCA_PLATFORM is not set 1032# CONFIG_I2C_PCA_PLATFORM is not set
1031# CONFIG_I2C_STUB is not set 1033# CONFIG_I2C_STUB is not set
1032
1033#
1034# Miscellaneous I2C Chip support
1035#
1036# CONFIG_SENSORS_TSL2550 is not set
1037# CONFIG_I2C_DEBUG_CORE is not set 1034# CONFIG_I2C_DEBUG_CORE is not set
1038# CONFIG_I2C_DEBUG_ALGO is not set 1035# CONFIG_I2C_DEBUG_ALGO is not set
1039# CONFIG_I2C_DEBUG_BUS is not set 1036# CONFIG_I2C_DEBUG_BUS is not set
1040# CONFIG_I2C_DEBUG_CHIP is not set
1041# CONFIG_SPI is not set 1037# CONFIG_SPI is not set
1042 1038
1043# 1039#
@@ -1062,18 +1058,21 @@ CONFIG_SSB_POSSIBLE=y
1062# Multifunction device drivers 1058# Multifunction device drivers
1063# 1059#
1064# CONFIG_MFD_CORE is not set 1060# CONFIG_MFD_CORE is not set
1061# CONFIG_MFD_88PM860X is not set
1065# CONFIG_MFD_SM501 is not set 1062# CONFIG_MFD_SM501 is not set
1066# CONFIG_HTC_PASIC3 is not set 1063# CONFIG_HTC_PASIC3 is not set
1067# CONFIG_TWL4030_CORE is not set 1064# CONFIG_TWL4030_CORE is not set
1068# CONFIG_MFD_TMIO is not set 1065# CONFIG_MFD_TMIO is not set
1069# CONFIG_PMIC_DA903X is not set 1066# CONFIG_PMIC_DA903X is not set
1070# CONFIG_PMIC_ADP5520 is not set 1067# CONFIG_PMIC_ADP5520 is not set
1068# CONFIG_MFD_MAX8925 is not set
1071# CONFIG_MFD_WM8400 is not set 1069# CONFIG_MFD_WM8400 is not set
1072# CONFIG_MFD_WM831X is not set 1070# CONFIG_MFD_WM831X is not set
1073# CONFIG_MFD_WM8350_I2C is not set 1071# CONFIG_MFD_WM8350_I2C is not set
1072# CONFIG_MFD_WM8994 is not set
1074# CONFIG_MFD_PCF50633 is not set 1073# CONFIG_MFD_PCF50633 is not set
1075# CONFIG_AB3100_CORE is not set 1074# CONFIG_AB3100_CORE is not set
1076# CONFIG_MFD_88PM8607 is not set 1075# CONFIG_LPC_SCH is not set
1077# CONFIG_REGULATOR is not set 1076# CONFIG_REGULATOR is not set
1078# CONFIG_MEDIA_SUPPORT is not set 1077# CONFIG_MEDIA_SUPPORT is not set
1079 1078
@@ -1082,6 +1081,7 @@ CONFIG_SSB_POSSIBLE=y
1082# 1081#
1083# CONFIG_AGP is not set 1082# CONFIG_AGP is not set
1084CONFIG_VGA_ARB=y 1083CONFIG_VGA_ARB=y
1084CONFIG_VGA_ARB_MAX_GPUS=16
1085# CONFIG_DRM is not set 1085# CONFIG_DRM is not set
1086# CONFIG_VGASTATE is not set 1086# CONFIG_VGASTATE is not set
1087CONFIG_VIDEO_OUTPUT_CONTROL=y 1087CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1434,6 +1434,7 @@ CONFIG_MISC_FILESYSTEMS=y
1434# CONFIG_BFS_FS is not set 1434# CONFIG_BFS_FS is not set
1435# CONFIG_EFS_FS is not set 1435# CONFIG_EFS_FS is not set
1436# CONFIG_JFFS2_FS is not set 1436# CONFIG_JFFS2_FS is not set
1437# CONFIG_LOGFS is not set
1437# CONFIG_CRAMFS is not set 1438# CONFIG_CRAMFS is not set
1438# CONFIG_SQUASHFS is not set 1439# CONFIG_SQUASHFS is not set
1439# CONFIG_VXFS_FS is not set 1440# CONFIG_VXFS_FS is not set
@@ -1461,6 +1462,7 @@ CONFIG_SUNRPC=y
1461# CONFIG_RPCSEC_GSS_KRB5 is not set 1462# CONFIG_RPCSEC_GSS_KRB5 is not set
1462# CONFIG_RPCSEC_GSS_SPKM3 is not set 1463# CONFIG_RPCSEC_GSS_SPKM3 is not set
1463# CONFIG_SMB_FS is not set 1464# CONFIG_SMB_FS is not set
1465# CONFIG_CEPH_FS is not set
1464# CONFIG_CIFS is not set 1466# CONFIG_CIFS is not set
1465# CONFIG_NCP_FS is not set 1467# CONFIG_NCP_FS is not set
1466# CONFIG_CODA_FS is not set 1468# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 727a8c8d15b5..1be38eb05783 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:40 2010 4# Mon Apr 19 23:17:04 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,15 +97,11 @@ CONFIG_TREE_RCU=y
97# CONFIG_RCU_TRACE is not set 97# CONFIG_RCU_TRACE is not set
98CONFIG_RCU_FANOUT=32 98CONFIG_RCU_FANOUT=32
99# CONFIG_RCU_FANOUT_EXACT is not set 99# CONFIG_RCU_FANOUT_EXACT is not set
100# CONFIG_RCU_FAST_NO_HZ is not set
100# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
101CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105# CONFIG_FAIR_GROUP_SCHED is not set
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -326,6 +323,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 323# Bus options
327# 324#
328CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 327CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 328CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 329CONFIG_FSL_SOC=y
@@ -337,7 +335,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 335# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 336CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 337# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 338# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 339# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 340# CONFIG_PCI_IOV is not set
@@ -365,7 +362,6 @@ CONFIG_NET=y
365# Networking options 362# Networking options
366# 363#
367CONFIG_PACKET=y 364CONFIG_PACKET=y
368# CONFIG_PACKET_MMAP is not set
369CONFIG_UNIX=y 365CONFIG_UNIX=y
370CONFIG_XFRM=y 366CONFIG_XFRM=y
371CONFIG_XFRM_USER=y 367CONFIG_XFRM_USER=y
@@ -498,6 +494,8 @@ CONFIG_EXTRA_FIRMWARE=""
498# CONFIG_SYS_HYPERVISOR is not set 494# CONFIG_SYS_HYPERVISOR is not set
499# CONFIG_CONNECTOR is not set 495# CONFIG_CONNECTOR is not set
500# CONFIG_MTD is not set 496# CONFIG_MTD is not set
497CONFIG_OF_FLATTREE=y
498CONFIG_OF_DYNAMIC=y
501CONFIG_OF_DEVICE=y 499CONFIG_OF_DEVICE=y
502CONFIG_OF_I2C=y 500CONFIG_OF_I2C=y
503CONFIG_OF_MDIO=y 501CONFIG_OF_MDIO=y
@@ -534,6 +532,7 @@ CONFIG_MISC_DEVICES=y
534# CONFIG_ENCLOSURE_SERVICES is not set 532# CONFIG_ENCLOSURE_SERVICES is not set
535# CONFIG_HP_ILO is not set 533# CONFIG_HP_ILO is not set
536# CONFIG_ISL29003 is not set 534# CONFIG_ISL29003 is not set
535# CONFIG_SENSORS_TSL2550 is not set
537# CONFIG_DS1682 is not set 536# CONFIG_DS1682 is not set
538# CONFIG_C2PORT is not set 537# CONFIG_C2PORT is not set
539 538
@@ -551,6 +550,7 @@ CONFIG_HAVE_IDE=y
551# 550#
552# SCSI device support 551# SCSI device support
553# 552#
553CONFIG_SCSI_MOD=y
554# CONFIG_RAID_ATTRS is not set 554# CONFIG_RAID_ATTRS is not set
555CONFIG_SCSI=y 555CONFIG_SCSI=y
556CONFIG_SCSI_DMA=y 556CONFIG_SCSI_DMA=y
@@ -675,6 +675,7 @@ CONFIG_PATA_ALI=y
675# CONFIG_PATA_IT821X is not set 675# CONFIG_PATA_IT821X is not set
676# CONFIG_PATA_IT8213 is not set 676# CONFIG_PATA_IT8213 is not set
677# CONFIG_PATA_JMICRON is not set 677# CONFIG_PATA_JMICRON is not set
678# CONFIG_PATA_LEGACY is not set
678# CONFIG_PATA_TRIFLEX is not set 679# CONFIG_PATA_TRIFLEX is not set
679# CONFIG_PATA_MARVELL is not set 680# CONFIG_PATA_MARVELL is not set
680# CONFIG_PATA_MPIIX is not set 681# CONFIG_PATA_MPIIX is not set
@@ -799,6 +800,8 @@ CONFIG_NETDEV_10000=y
799# CONFIG_CHELSIO_T1 is not set 800# CONFIG_CHELSIO_T1 is not set
800CONFIG_CHELSIO_T3_DEPENDS=y 801CONFIG_CHELSIO_T3_DEPENDS=y
801# CONFIG_CHELSIO_T3 is not set 802# CONFIG_CHELSIO_T3 is not set
803CONFIG_CHELSIO_T4_DEPENDS=y
804# CONFIG_CHELSIO_T4 is not set
802# CONFIG_ENIC is not set 805# CONFIG_ENIC is not set
803# CONFIG_IXGBE is not set 806# CONFIG_IXGBE is not set
804# CONFIG_IXGB is not set 807# CONFIG_IXGB is not set
@@ -811,6 +814,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
811# CONFIG_MLX4_CORE is not set 814# CONFIG_MLX4_CORE is not set
812# CONFIG_TEHUTI is not set 815# CONFIG_TEHUTI is not set
813# CONFIG_BNX2X is not set 816# CONFIG_BNX2X is not set
817# CONFIG_QLCNIC is not set
814# CONFIG_QLGE is not set 818# CONFIG_QLGE is not set
815# CONFIG_SFC is not set 819# CONFIG_SFC is not set
816# CONFIG_BE2NET is not set 820# CONFIG_BE2NET is not set
@@ -920,6 +924,7 @@ CONFIG_SERIAL_CORE=y
920CONFIG_SERIAL_CORE_CONSOLE=y 924CONFIG_SERIAL_CORE_CONSOLE=y
921# CONFIG_SERIAL_JSM is not set 925# CONFIG_SERIAL_JSM is not set
922# CONFIG_SERIAL_OF_PLATFORM is not set 926# CONFIG_SERIAL_OF_PLATFORM is not set
927# CONFIG_SERIAL_TIMBERDALE is not set
923# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 928# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
924CONFIG_UNIX98_PTYS=y 929CONFIG_UNIX98_PTYS=y
925# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 930# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -968,6 +973,7 @@ CONFIG_I2C_HELPER_AUTO=y
968CONFIG_I2C_MPC=y 973CONFIG_I2C_MPC=y
969# CONFIG_I2C_OCORES is not set 974# CONFIG_I2C_OCORES is not set
970# CONFIG_I2C_SIMTEC is not set 975# CONFIG_I2C_SIMTEC is not set
976# CONFIG_I2C_XILINX is not set
971 977
972# 978#
973# External I2C/SMBus adapter drivers 979# External I2C/SMBus adapter drivers
@@ -981,15 +987,9 @@ CONFIG_I2C_MPC=y
981# 987#
982# CONFIG_I2C_PCA_PLATFORM is not set 988# CONFIG_I2C_PCA_PLATFORM is not set
983# CONFIG_I2C_STUB is not set 989# CONFIG_I2C_STUB is not set
984
985#
986# Miscellaneous I2C Chip support
987#
988# CONFIG_SENSORS_TSL2550 is not set
989# CONFIG_I2C_DEBUG_CORE is not set 990# CONFIG_I2C_DEBUG_CORE is not set
990# CONFIG_I2C_DEBUG_ALGO is not set 991# CONFIG_I2C_DEBUG_ALGO is not set
991# CONFIG_I2C_DEBUG_BUS is not set 992# CONFIG_I2C_DEBUG_BUS is not set
992# CONFIG_I2C_DEBUG_CHIP is not set
993# CONFIG_SPI is not set 993# CONFIG_SPI is not set
994 994
995# 995#
@@ -1014,18 +1014,21 @@ CONFIG_SSB_POSSIBLE=y
1014# Multifunction device drivers 1014# Multifunction device drivers
1015# 1015#
1016# CONFIG_MFD_CORE is not set 1016# CONFIG_MFD_CORE is not set
1017# CONFIG_MFD_88PM860X is not set
1017# CONFIG_MFD_SM501 is not set 1018# CONFIG_MFD_SM501 is not set
1018# CONFIG_HTC_PASIC3 is not set 1019# CONFIG_HTC_PASIC3 is not set
1019# CONFIG_TWL4030_CORE is not set 1020# CONFIG_TWL4030_CORE is not set
1020# CONFIG_MFD_TMIO is not set 1021# CONFIG_MFD_TMIO is not set
1021# CONFIG_PMIC_DA903X is not set 1022# CONFIG_PMIC_DA903X is not set
1022# CONFIG_PMIC_ADP5520 is not set 1023# CONFIG_PMIC_ADP5520 is not set
1024# CONFIG_MFD_MAX8925 is not set
1023# CONFIG_MFD_WM8400 is not set 1025# CONFIG_MFD_WM8400 is not set
1024# CONFIG_MFD_WM831X is not set 1026# CONFIG_MFD_WM831X is not set
1025# CONFIG_MFD_WM8350_I2C is not set 1027# CONFIG_MFD_WM8350_I2C is not set
1028# CONFIG_MFD_WM8994 is not set
1026# CONFIG_MFD_PCF50633 is not set 1029# CONFIG_MFD_PCF50633 is not set
1027# CONFIG_AB3100_CORE is not set 1030# CONFIG_AB3100_CORE is not set
1028# CONFIG_MFD_88PM8607 is not set 1031# CONFIG_LPC_SCH is not set
1029# CONFIG_REGULATOR is not set 1032# CONFIG_REGULATOR is not set
1030# CONFIG_MEDIA_SUPPORT is not set 1033# CONFIG_MEDIA_SUPPORT is not set
1031 1034
@@ -1034,6 +1037,7 @@ CONFIG_SSB_POSSIBLE=y
1034# 1037#
1035# CONFIG_AGP is not set 1038# CONFIG_AGP is not set
1036CONFIG_VGA_ARB=y 1039CONFIG_VGA_ARB=y
1040CONFIG_VGA_ARB_MAX_GPUS=16
1037# CONFIG_DRM is not set 1041# CONFIG_DRM is not set
1038# CONFIG_VGASTATE is not set 1042# CONFIG_VGASTATE is not set
1039CONFIG_VIDEO_OUTPUT_CONTROL=y 1043CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1151,6 +1155,7 @@ CONFIG_SND_INTEL8X0=y
1151CONFIG_SND_PPC=y 1155CONFIG_SND_PPC=y
1152CONFIG_SND_USB=y 1156CONFIG_SND_USB=y
1153# CONFIG_SND_USB_AUDIO is not set 1157# CONFIG_SND_USB_AUDIO is not set
1158# CONFIG_SND_USB_UA101 is not set
1154# CONFIG_SND_USB_USX2Y is not set 1159# CONFIG_SND_USB_USX2Y is not set
1155# CONFIG_SND_USB_CAIAQ is not set 1160# CONFIG_SND_USB_CAIAQ is not set
1156# CONFIG_SND_SOC is not set 1161# CONFIG_SND_SOC is not set
@@ -1170,6 +1175,7 @@ CONFIG_USB_HID=y
1170# 1175#
1171# Special HID drivers 1176# Special HID drivers
1172# 1177#
1178# CONFIG_HID_3M_PCT is not set
1173CONFIG_HID_A4TECH=y 1179CONFIG_HID_A4TECH=y
1174CONFIG_HID_APPLE=y 1180CONFIG_HID_APPLE=y
1175CONFIG_HID_BELKIN=y 1181CONFIG_HID_BELKIN=y
@@ -1185,14 +1191,19 @@ CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y 1191CONFIG_HID_LOGITECH=y
1186# CONFIG_LOGITECH_FF is not set 1192# CONFIG_LOGITECH_FF is not set
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set 1193# CONFIG_LOGIRUMBLEPAD2_FF is not set
1194# CONFIG_LOGIG940_FF is not set
1188CONFIG_HID_MICROSOFT=y 1195CONFIG_HID_MICROSOFT=y
1196# CONFIG_HID_MOSART is not set
1189CONFIG_HID_MONTEREY=y 1197CONFIG_HID_MONTEREY=y
1190# CONFIG_HID_NTRIG is not set 1198# CONFIG_HID_NTRIG is not set
1199# CONFIG_HID_ORTEK is not set
1191CONFIG_HID_PANTHERLORD=y 1200CONFIG_HID_PANTHERLORD=y
1192# CONFIG_PANTHERLORD_FF is not set 1201# CONFIG_PANTHERLORD_FF is not set
1193CONFIG_HID_PETALYNX=y 1202CONFIG_HID_PETALYNX=y
1203# CONFIG_HID_QUANTA is not set
1194CONFIG_HID_SAMSUNG=y 1204CONFIG_HID_SAMSUNG=y
1195CONFIG_HID_SONY=y 1205CONFIG_HID_SONY=y
1206# CONFIG_HID_STANTUM is not set
1196CONFIG_HID_SUNPLUS=y 1207CONFIG_HID_SUNPLUS=y
1197# CONFIG_HID_GREENASIA is not set 1208# CONFIG_HID_GREENASIA is not set
1198# CONFIG_HID_SMARTJOYPLUS is not set 1209# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1300,7 +1311,6 @@ CONFIG_USB_STORAGE=y
1300# CONFIG_USB_RIO500 is not set 1311# CONFIG_USB_RIO500 is not set
1301# CONFIG_USB_LEGOTOWER is not set 1312# CONFIG_USB_LEGOTOWER is not set
1302# CONFIG_USB_LCD is not set 1313# CONFIG_USB_LCD is not set
1303# CONFIG_USB_BERRY_CHARGE is not set
1304# CONFIG_USB_LED is not set 1314# CONFIG_USB_LED is not set
1305# CONFIG_USB_CYPRESS_CY7C63 is not set 1315# CONFIG_USB_CYPRESS_CY7C63 is not set
1306# CONFIG_USB_CYTHERM is not set 1316# CONFIG_USB_CYTHERM is not set
@@ -1313,7 +1323,6 @@ CONFIG_USB_STORAGE=y
1313# CONFIG_USB_IOWARRIOR is not set 1323# CONFIG_USB_IOWARRIOR is not set
1314# CONFIG_USB_TEST is not set 1324# CONFIG_USB_TEST is not set
1315# CONFIG_USB_ISIGHTFW is not set 1325# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set
1317# CONFIG_USB_GADGET is not set 1326# CONFIG_USB_GADGET is not set
1318 1327
1319# 1328#
@@ -1475,6 +1484,7 @@ CONFIG_BEFS_FS=m
1475# CONFIG_BEFS_DEBUG is not set 1484# CONFIG_BEFS_DEBUG is not set
1476CONFIG_BFS_FS=m 1485CONFIG_BFS_FS=m
1477CONFIG_EFS_FS=m 1486CONFIG_EFS_FS=m
1487# CONFIG_LOGFS is not set
1478CONFIG_CRAMFS=y 1488CONFIG_CRAMFS=y
1479# CONFIG_SQUASHFS is not set 1489# CONFIG_SQUASHFS is not set
1480CONFIG_VXFS_FS=m 1490CONFIG_VXFS_FS=m
@@ -1506,6 +1516,7 @@ CONFIG_SUNRPC_GSS=y
1506CONFIG_RPCSEC_GSS_KRB5=y 1516CONFIG_RPCSEC_GSS_KRB5=y
1507# CONFIG_RPCSEC_GSS_SPKM3 is not set 1517# CONFIG_RPCSEC_GSS_SPKM3 is not set
1508# CONFIG_SMB_FS is not set 1518# CONFIG_SMB_FS is not set
1519# CONFIG_CEPH_FS is not set
1509# CONFIG_CIFS is not set 1520# CONFIG_CIFS is not set
1510# CONFIG_NCP_FS is not set 1521# CONFIG_NCP_FS is not set
1511# CONFIG_CODA_FS is not set 1522# CONFIG_CODA_FS is not set
@@ -1717,6 +1728,7 @@ CONFIG_CRYPTO_MANAGER=y
1717CONFIG_CRYPTO_MANAGER2=y 1728CONFIG_CRYPTO_MANAGER2=y
1718# CONFIG_CRYPTO_GF128MUL is not set 1729# CONFIG_CRYPTO_GF128MUL is not set
1719# CONFIG_CRYPTO_NULL is not set 1730# CONFIG_CRYPTO_NULL is not set
1731# CONFIG_CRYPTO_PCRYPT is not set
1720CONFIG_CRYPTO_WORKQUEUE=y 1732CONFIG_CRYPTO_WORKQUEUE=y
1721# CONFIG_CRYPTO_CRYPTD is not set 1733# CONFIG_CRYPTO_CRYPTD is not set
1722# CONFIG_CRYPTO_AUTHENC is not set 1734# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index 4fb04dd2cde3..a63009457323 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:38 2010 4# Mon Apr 19 23:17:02 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,11 +101,6 @@ CONFIG_RCU_FANOUT=32
101CONFIG_IKCONFIG=y 101CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 102CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 103CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 106CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -327,6 +323,7 @@ CONFIG_ISA_DMA_API=y
327# Bus options 323# Bus options
328# 324#
329CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
330CONFIG_GENERIC_ISA_DMA=y 327CONFIG_GENERIC_ISA_DMA=y
331CONFIG_PPC_INDIRECT_PCI=y 328CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 329CONFIG_FSL_SOC=y
@@ -342,7 +339,6 @@ CONFIG_PCIEAER=y
342# CONFIG_PCIEASPM is not set 339# CONFIG_PCIEASPM is not set
343CONFIG_ARCH_SUPPORTS_MSI=y 340CONFIG_ARCH_SUPPORTS_MSI=y
344# CONFIG_PCI_MSI is not set 341# CONFIG_PCI_MSI is not set
345# CONFIG_PCI_LEGACY is not set
346# CONFIG_PCI_DEBUG is not set 342# CONFIG_PCI_DEBUG is not set
347# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
348# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
@@ -369,7 +365,6 @@ CONFIG_NET=y
369# Networking options 365# Networking options
370# 366#
371CONFIG_PACKET=y 367CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 368CONFIG_UNIX=y
374CONFIG_XFRM=y 369CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -552,6 +547,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 547# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 548CONFIG_STP=m
554CONFIG_BRIDGE=m 549CONFIG_BRIDGE=m
550CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 551# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 552CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 553# CONFIG_VLAN_8021Q_GVRP is not set
@@ -733,6 +729,8 @@ CONFIG_MTD_PHYSMAP_OF=y
733# UBI - Unsorted block images 729# UBI - Unsorted block images
734# 730#
735# CONFIG_MTD_UBI is not set 731# CONFIG_MTD_UBI is not set
732CONFIG_OF_FLATTREE=y
733CONFIG_OF_DYNAMIC=y
736CONFIG_OF_DEVICE=y 734CONFIG_OF_DEVICE=y
737CONFIG_OF_I2C=y 735CONFIG_OF_I2C=y
738CONFIG_OF_MDIO=y 736CONFIG_OF_MDIO=y
@@ -768,6 +766,7 @@ CONFIG_MISC_DEVICES=y
768# CONFIG_ENCLOSURE_SERVICES is not set 766# CONFIG_ENCLOSURE_SERVICES is not set
769# CONFIG_HP_ILO is not set 767# CONFIG_HP_ILO is not set
770# CONFIG_ISL29003 is not set 768# CONFIG_ISL29003 is not set
769# CONFIG_SENSORS_TSL2550 is not set
771# CONFIG_DS1682 is not set 770# CONFIG_DS1682 is not set
772# CONFIG_C2PORT is not set 771# CONFIG_C2PORT is not set
773 772
@@ -785,6 +784,7 @@ CONFIG_HAVE_IDE=y
785# 784#
786# SCSI device support 785# SCSI device support
787# 786#
787CONFIG_SCSI_MOD=y
788# CONFIG_RAID_ATTRS is not set 788# CONFIG_RAID_ATTRS is not set
789# CONFIG_SCSI is not set 789# CONFIG_SCSI is not set
790# CONFIG_SCSI_DMA is not set 790# CONFIG_SCSI_DMA is not set
@@ -1024,6 +1024,7 @@ CONFIG_SERIAL_CORE=y
1024CONFIG_SERIAL_CORE_CONSOLE=y 1024CONFIG_SERIAL_CORE_CONSOLE=y
1025# CONFIG_SERIAL_JSM is not set 1025# CONFIG_SERIAL_JSM is not set
1026# CONFIG_SERIAL_OF_PLATFORM is not set 1026# CONFIG_SERIAL_OF_PLATFORM is not set
1027# CONFIG_SERIAL_TIMBERDALE is not set
1027# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1028# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1028CONFIG_UNIX98_PTYS=y 1029CONFIG_UNIX98_PTYS=y
1029# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1030# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1074,6 +1075,7 @@ CONFIG_I2C_HELPER_AUTO=y
1074CONFIG_I2C_MPC=y 1075CONFIG_I2C_MPC=y
1075# CONFIG_I2C_OCORES is not set 1076# CONFIG_I2C_OCORES is not set
1076# CONFIG_I2C_SIMTEC is not set 1077# CONFIG_I2C_SIMTEC is not set
1078# CONFIG_I2C_XILINX is not set
1077 1079
1078# 1080#
1079# External I2C/SMBus adapter drivers 1081# External I2C/SMBus adapter drivers
@@ -1086,15 +1088,9 @@ CONFIG_I2C_MPC=y
1086# 1088#
1087# CONFIG_I2C_PCA_PLATFORM is not set 1089# CONFIG_I2C_PCA_PLATFORM is not set
1088# CONFIG_I2C_STUB is not set 1090# CONFIG_I2C_STUB is not set
1089
1090#
1091# Miscellaneous I2C Chip support
1092#
1093# CONFIG_SENSORS_TSL2550 is not set
1094# CONFIG_I2C_DEBUG_CORE is not set 1091# CONFIG_I2C_DEBUG_CORE is not set
1095# CONFIG_I2C_DEBUG_ALGO is not set 1092# CONFIG_I2C_DEBUG_ALGO is not set
1096# CONFIG_I2C_DEBUG_BUS is not set 1093# CONFIG_I2C_DEBUG_BUS is not set
1097# CONFIG_I2C_DEBUG_CHIP is not set
1098# CONFIG_SPI is not set 1094# CONFIG_SPI is not set
1099 1095
1100# 1096#
@@ -1120,10 +1116,11 @@ CONFIG_HWMON=y
1120# CONFIG_SENSORS_ADM1029 is not set 1116# CONFIG_SENSORS_ADM1029 is not set
1121# CONFIG_SENSORS_ADM1031 is not set 1117# CONFIG_SENSORS_ADM1031 is not set
1122# CONFIG_SENSORS_ADM9240 is not set 1118# CONFIG_SENSORS_ADM9240 is not set
1119# CONFIG_SENSORS_ADT7411 is not set
1123# CONFIG_SENSORS_ADT7462 is not set 1120# CONFIG_SENSORS_ADT7462 is not set
1124# CONFIG_SENSORS_ADT7470 is not set 1121# CONFIG_SENSORS_ADT7470 is not set
1125# CONFIG_SENSORS_ADT7473 is not set
1126# CONFIG_SENSORS_ADT7475 is not set 1122# CONFIG_SENSORS_ADT7475 is not set
1123# CONFIG_SENSORS_ASC7621 is not set
1127# CONFIG_SENSORS_ATXP1 is not set 1124# CONFIG_SENSORS_ATXP1 is not set
1128# CONFIG_SENSORS_DS1621 is not set 1125# CONFIG_SENSORS_DS1621 is not set
1129# CONFIG_SENSORS_I5K_AMB is not set 1126# CONFIG_SENSORS_I5K_AMB is not set
@@ -1160,6 +1157,7 @@ CONFIG_HWMON=y
1160# CONFIG_SENSORS_SMSC47M192 is not set 1157# CONFIG_SENSORS_SMSC47M192 is not set
1161# CONFIG_SENSORS_SMSC47B397 is not set 1158# CONFIG_SENSORS_SMSC47B397 is not set
1162# CONFIG_SENSORS_ADS7828 is not set 1159# CONFIG_SENSORS_ADS7828 is not set
1160# CONFIG_SENSORS_AMC6821 is not set
1163# CONFIG_SENSORS_THMC50 is not set 1161# CONFIG_SENSORS_THMC50 is not set
1164# CONFIG_SENSORS_TMP401 is not set 1162# CONFIG_SENSORS_TMP401 is not set
1165# CONFIG_SENSORS_TMP421 is not set 1163# CONFIG_SENSORS_TMP421 is not set
@@ -1202,18 +1200,21 @@ CONFIG_SSB_POSSIBLE=y
1202# Multifunction device drivers 1200# Multifunction device drivers
1203# 1201#
1204# CONFIG_MFD_CORE is not set 1202# CONFIG_MFD_CORE is not set
1203# CONFIG_MFD_88PM860X is not set
1205# CONFIG_MFD_SM501 is not set 1204# CONFIG_MFD_SM501 is not set
1206# CONFIG_HTC_PASIC3 is not set 1205# CONFIG_HTC_PASIC3 is not set
1207# CONFIG_TWL4030_CORE is not set 1206# CONFIG_TWL4030_CORE is not set
1208# CONFIG_MFD_TMIO is not set 1207# CONFIG_MFD_TMIO is not set
1209# CONFIG_PMIC_DA903X is not set 1208# CONFIG_PMIC_DA903X is not set
1210# CONFIG_PMIC_ADP5520 is not set 1209# CONFIG_PMIC_ADP5520 is not set
1210# CONFIG_MFD_MAX8925 is not set
1211# CONFIG_MFD_WM8400 is not set 1211# CONFIG_MFD_WM8400 is not set
1212# CONFIG_MFD_WM831X is not set 1212# CONFIG_MFD_WM831X is not set
1213# CONFIG_MFD_WM8350_I2C is not set 1213# CONFIG_MFD_WM8350_I2C is not set
1214# CONFIG_MFD_WM8994 is not set
1214# CONFIG_MFD_PCF50633 is not set 1215# CONFIG_MFD_PCF50633 is not set
1215# CONFIG_AB3100_CORE is not set 1216# CONFIG_AB3100_CORE is not set
1216# CONFIG_MFD_88PM8607 is not set 1217# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1218# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1219# CONFIG_MEDIA_SUPPORT is not set
1219 1220
@@ -1222,6 +1223,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1223#
1223# CONFIG_AGP is not set 1224# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1225CONFIG_VGA_ARB=y
1226CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1227# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1228# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1229CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1376,6 +1378,7 @@ CONFIG_MISC_FILESYSTEMS=y
1376# CONFIG_BFS_FS is not set 1378# CONFIG_BFS_FS is not set
1377# CONFIG_EFS_FS is not set 1379# CONFIG_EFS_FS is not set
1378# CONFIG_JFFS2_FS is not set 1380# CONFIG_JFFS2_FS is not set
1381# CONFIG_LOGFS is not set
1379# CONFIG_CRAMFS is not set 1382# CONFIG_CRAMFS is not set
1380# CONFIG_SQUASHFS is not set 1383# CONFIG_SQUASHFS is not set
1381# CONFIG_VXFS_FS is not set 1384# CONFIG_VXFS_FS is not set
@@ -1408,6 +1411,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
1408CONFIG_SMB_FS=m 1411CONFIG_SMB_FS=m
1409CONFIG_SMB_NLS_DEFAULT=y 1412CONFIG_SMB_NLS_DEFAULT=y
1410CONFIG_SMB_NLS_REMOTE="cp437" 1413CONFIG_SMB_NLS_REMOTE="cp437"
1414# CONFIG_CEPH_FS is not set
1411CONFIG_CIFS=m 1415CONFIG_CIFS=m
1412# CONFIG_CIFS_STATS is not set 1416# CONFIG_CIFS_STATS is not set
1413# CONFIG_CIFS_WEAK_PW_HASH is not set 1417# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1540,6 +1544,7 @@ CONFIG_DEBUG_INFO=y
1540# CONFIG_BACKTRACE_SELF_TEST is not set 1544# CONFIG_BACKTRACE_SELF_TEST is not set
1541# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1545# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1542# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1546# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1547# CONFIG_LKDTM is not set
1543# CONFIG_FAULT_INJECTION is not set 1548# CONFIG_FAULT_INJECTION is not set
1544# CONFIG_LATENCYTOP is not set 1549# CONFIG_LATENCYTOP is not set
1545CONFIG_SYSCTL_SYSCALL_CHECK=y 1550CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1618,6 +1623,7 @@ CONFIG_CRYPTO_MANAGER=y
1618CONFIG_CRYPTO_MANAGER2=y 1623CONFIG_CRYPTO_MANAGER2=y
1619# CONFIG_CRYPTO_GF128MUL is not set 1624# CONFIG_CRYPTO_GF128MUL is not set
1620CONFIG_CRYPTO_NULL=m 1625CONFIG_CRYPTO_NULL=m
1626# CONFIG_CRYPTO_PCRYPT is not set
1621CONFIG_CRYPTO_WORKQUEUE=y 1627CONFIG_CRYPTO_WORKQUEUE=y
1622# CONFIG_CRYPTO_CRYPTD is not set 1628# CONFIG_CRYPTO_CRYPTD is not set
1623CONFIG_CRYPTO_AUTHENC=m 1629CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 5c1dc768bbd8..9f89d5c9c0be 100644
--- a/arch/powerpc/configs/adder875_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:58 2010 4# Mon Apr 19 23:16:22 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -91,11 +91,6 @@ CONFIG_RCU_FANOUT=32
91# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
92# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
93CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
94CONFIG_GROUP_SCHED=y
95CONFIG_FAIR_GROUP_SCHED=y
96# CONFIG_RT_GROUP_SCHED is not set
97CONFIG_USER_SCHED=y
98# CONFIG_CGROUP_SCHED is not set
99# CONFIG_CGROUPS is not set 94# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 95CONFIG_SYSFS_DEPRECATED=y
101CONFIG_SYSFS_DEPRECATED_V2=y 96CONFIG_SYSFS_DEPRECATED_V2=y
@@ -307,6 +302,7 @@ CONFIG_ISA_DMA_API=y
307# Bus options 302# Bus options
308# 303#
309CONFIG_ZONE_DMA=y 304CONFIG_ZONE_DMA=y
305CONFIG_NEED_DMA_MAP_STATE=y
310CONFIG_FSL_SOC=y 306CONFIG_FSL_SOC=y
311# CONFIG_PCI is not set 307# CONFIG_PCI is not set
312# CONFIG_PCI_DOMAINS is not set 308# CONFIG_PCI_DOMAINS is not set
@@ -336,7 +332,6 @@ CONFIG_NET=y
336# Networking options 332# Networking options
337# 333#
338CONFIG_PACKET=y 334CONFIG_PACKET=y
339# CONFIG_PACKET_MMAP is not set
340CONFIG_UNIX=y 335CONFIG_UNIX=y
341# CONFIG_NET_KEY is not set 336# CONFIG_NET_KEY is not set
342CONFIG_INET=y 337CONFIG_INET=y
@@ -505,6 +500,8 @@ CONFIG_MTD_PHYSMAP_OF=y
505# UBI - Unsorted block images 500# UBI - Unsorted block images
506# 501#
507# CONFIG_MTD_UBI is not set 502# CONFIG_MTD_UBI is not set
503CONFIG_OF_FLATTREE=y
504CONFIG_OF_DYNAMIC=y
508CONFIG_OF_DEVICE=y 505CONFIG_OF_DEVICE=y
509CONFIG_OF_MDIO=y 506CONFIG_OF_MDIO=y
510# CONFIG_PARPORT is not set 507# CONFIG_PARPORT is not set
@@ -516,6 +513,7 @@ CONFIG_HAVE_IDE=y
516# 513#
517# SCSI device support 514# SCSI device support
518# 515#
516CONFIG_SCSI_MOD=y
519# CONFIG_RAID_ATTRS is not set 517# CONFIG_RAID_ATTRS is not set
520# CONFIG_SCSI is not set 518# CONFIG_SCSI is not set
521# CONFIG_SCSI_DMA is not set 519# CONFIG_SCSI_DMA is not set
@@ -664,6 +662,7 @@ CONFIG_SERIAL_CORE=y
664CONFIG_SERIAL_CORE_CONSOLE=y 662CONFIG_SERIAL_CORE_CONSOLE=y
665CONFIG_SERIAL_CPM=y 663CONFIG_SERIAL_CPM=y
666CONFIG_SERIAL_CPM_CONSOLE=y 664CONFIG_SERIAL_CPM_CONSOLE=y
665# CONFIG_SERIAL_TIMBERDALE is not set
667# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 666# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
668CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
669# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 668# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -802,6 +801,7 @@ CONFIG_MISC_FILESYSTEMS=y
802# CONFIG_BFS_FS is not set 801# CONFIG_BFS_FS is not set
803# CONFIG_EFS_FS is not set 802# CONFIG_EFS_FS is not set
804# CONFIG_JFFS2_FS is not set 803# CONFIG_JFFS2_FS is not set
804# CONFIG_LOGFS is not set
805CONFIG_CRAMFS=y 805CONFIG_CRAMFS=y
806# CONFIG_SQUASHFS is not set 806# CONFIG_SQUASHFS is not set
807# CONFIG_VXFS_FS is not set 807# CONFIG_VXFS_FS is not set
@@ -826,6 +826,7 @@ CONFIG_SUNRPC=y
826# CONFIG_RPCSEC_GSS_KRB5 is not set 826# CONFIG_RPCSEC_GSS_KRB5 is not set
827# CONFIG_RPCSEC_GSS_SPKM3 is not set 827# CONFIG_RPCSEC_GSS_SPKM3 is not set
828# CONFIG_SMB_FS is not set 828# CONFIG_SMB_FS is not set
829# CONFIG_CEPH_FS is not set
829# CONFIG_CIFS is not set 830# CONFIG_CIFS is not set
830# CONFIG_NCP_FS is not set 831# CONFIG_NCP_FS is not set
831# CONFIG_CODA_FS is not set 832# CONFIG_CODA_FS is not set
@@ -924,6 +925,7 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_BACKTRACE_SELF_TEST is not set 925# CONFIG_BACKTRACE_SELF_TEST is not set
925# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 926# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
926# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 927# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
928# CONFIG_LKDTM is not set
927# CONFIG_FAULT_INJECTION is not set 929# CONFIG_FAULT_INJECTION is not set
928# CONFIG_LATENCYTOP is not set 930# CONFIG_LATENCYTOP is not set
929# CONFIG_SYSCTL_SYSCALL_CHECK is not set 931# CONFIG_SYSCTL_SYSCALL_CHECK is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 72137cd881da..4ab6074db3cf 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:23 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,11 +101,6 @@ CONFIG_RCU_FANOUT=32
101# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
102# CONFIG_IKCONFIG is not set 102# CONFIG_IKCONFIG is not set
103CONFIG_LOG_BUF_SHIFT=17 103CONFIG_LOG_BUF_SHIFT=17
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 106CONFIG_SYSFS_DEPRECATED_V2=y
@@ -121,6 +116,7 @@ CONFIG_INITRAMFS_SOURCE=""
121CONFIG_RD_GZIP=y 116CONFIG_RD_GZIP=y
122CONFIG_RD_BZIP2=y 117CONFIG_RD_BZIP2=y
123CONFIG_RD_LZMA=y 118CONFIG_RD_LZMA=y
119CONFIG_RD_LZO=y
124CONFIG_CC_OPTIMIZE_FOR_SIZE=y 120CONFIG_CC_OPTIMIZE_FOR_SIZE=y
125CONFIG_SYSCTL=y 121CONFIG_SYSCTL=y
126CONFIG_ANON_INODES=y 122CONFIG_ANON_INODES=y
@@ -147,7 +143,6 @@ CONFIG_HAVE_PERF_EVENTS=y
147# Kernel Performance Events And Counters 143# Kernel Performance Events And Counters
148# 144#
149CONFIG_PERF_EVENTS=y 145CONFIG_PERF_EVENTS=y
150CONFIG_EVENT_PROFILE=y
151# CONFIG_PERF_COUNTERS is not set 146# CONFIG_PERF_COUNTERS is not set
152# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 147# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
153CONFIG_VM_EVENT_COUNTERS=y 148CONFIG_VM_EVENT_COUNTERS=y
@@ -158,7 +153,6 @@ CONFIG_COMPAT_BRK=y
158CONFIG_SLUB=y 153CONFIG_SLUB=y
159# CONFIG_SLOB is not set 154# CONFIG_SLOB is not set
160CONFIG_PROFILING=y 155CONFIG_PROFILING=y
161CONFIG_TRACEPOINTS=y
162CONFIG_OPROFILE=m 156CONFIG_OPROFILE=m
163CONFIG_HAVE_OPROFILE=y 157CONFIG_HAVE_OPROFILE=y
164CONFIG_KPROBES=y 158CONFIG_KPROBES=y
@@ -357,6 +351,7 @@ CONFIG_ISA_DMA_API=y
357# Bus options 351# Bus options
358# 352#
359CONFIG_ZONE_DMA=y 353CONFIG_ZONE_DMA=y
354CONFIG_NEED_DMA_MAP_STATE=y
360CONFIG_GENERIC_ISA_DMA=y 355CONFIG_GENERIC_ISA_DMA=y
361CONFIG_PPC_INDIRECT_PCI=y 356CONFIG_PPC_INDIRECT_PCI=y
362CONFIG_PCI=y 357CONFIG_PCI=y
@@ -365,7 +360,6 @@ CONFIG_PCI_SYSCALL=y
365# CONFIG_PCIEPORTBUS is not set 360# CONFIG_PCIEPORTBUS is not set
366CONFIG_ARCH_SUPPORTS_MSI=y 361CONFIG_ARCH_SUPPORTS_MSI=y
367CONFIG_PCI_MSI=y 362CONFIG_PCI_MSI=y
368# CONFIG_PCI_LEGACY is not set
369# CONFIG_PCI_DEBUG is not set 363# CONFIG_PCI_DEBUG is not set
370# CONFIG_PCI_STUB is not set 364# CONFIG_PCI_STUB is not set
371# CONFIG_PCI_IOV is not set 365# CONFIG_PCI_IOV is not set
@@ -396,7 +390,6 @@ CONFIG_NET=y
396# Networking options 390# Networking options
397# 391#
398CONFIG_PACKET=y 392CONFIG_PACKET=y
399CONFIG_PACKET_MMAP=y
400CONFIG_UNIX=y 393CONFIG_UNIX=y
401CONFIG_XFRM=y 394CONFIG_XFRM=y
402CONFIG_XFRM_USER=y 395CONFIG_XFRM_USER=y
@@ -527,6 +520,7 @@ CONFIG_IP_VS_PROTO_UDP=y
527CONFIG_IP_VS_PROTO_AH_ESP=y 520CONFIG_IP_VS_PROTO_AH_ESP=y
528CONFIG_IP_VS_PROTO_ESP=y 521CONFIG_IP_VS_PROTO_ESP=y
529CONFIG_IP_VS_PROTO_AH=y 522CONFIG_IP_VS_PROTO_AH=y
523# CONFIG_IP_VS_PROTO_SCTP is not set
530 524
531# 525#
532# IPVS scheduler 526# IPVS scheduler
@@ -630,6 +624,7 @@ CONFIG_ATM_BR2684=m
630# CONFIG_ATM_BR2684_IPFILTER is not set 624# CONFIG_ATM_BR2684_IPFILTER is not set
631CONFIG_STP=m 625CONFIG_STP=m
632CONFIG_BRIDGE=m 626CONFIG_BRIDGE=m
627CONFIG_BRIDGE_IGMP_SNOOPING=y
633# CONFIG_NET_DSA is not set 628# CONFIG_NET_DSA is not set
634CONFIG_VLAN_8021Q=m 629CONFIG_VLAN_8021Q=m
635# CONFIG_VLAN_8021Q_GVRP is not set 630# CONFIG_VLAN_8021Q_GVRP is not set
@@ -690,7 +685,6 @@ CONFIG_NET_SCH_FIFO=y
690# 685#
691# CONFIG_NET_PKTGEN is not set 686# CONFIG_NET_PKTGEN is not set
692# CONFIG_NET_TCPPROBE is not set 687# CONFIG_NET_TCPPROBE is not set
693# CONFIG_NET_DROP_MONITOR is not set
694# CONFIG_HAMRADIO is not set 688# CONFIG_HAMRADIO is not set
695# CONFIG_CAN is not set 689# CONFIG_CAN is not set
696# CONFIG_IRDA is not set 690# CONFIG_IRDA is not set
@@ -833,6 +827,8 @@ CONFIG_MTD_PHYSMAP_OF=y
833# UBI - Unsorted block images 827# UBI - Unsorted block images
834# 828#
835# CONFIG_MTD_UBI is not set 829# CONFIG_MTD_UBI is not set
830CONFIG_OF_FLATTREE=y
831CONFIG_OF_DYNAMIC=y
836CONFIG_OF_DEVICE=y 832CONFIG_OF_DEVICE=y
837CONFIG_OF_I2C=m 833CONFIG_OF_I2C=m
838CONFIG_OF_MDIO=y 834CONFIG_OF_MDIO=y
@@ -867,6 +863,7 @@ CONFIG_HAVE_IDE=y
867# 863#
868# SCSI device support 864# SCSI device support
869# 865#
866CONFIG_SCSI_MOD=m
870# CONFIG_RAID_ATTRS is not set 867# CONFIG_RAID_ATTRS is not set
871CONFIG_SCSI=m 868CONFIG_SCSI=m
872CONFIG_SCSI_DMA=y 869CONFIG_SCSI_DMA=y
@@ -1179,6 +1176,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1179CONFIG_SERIAL_CORE=y 1176CONFIG_SERIAL_CORE=y
1180CONFIG_SERIAL_CORE_CONSOLE=y 1177CONFIG_SERIAL_CORE_CONSOLE=y
1181# CONFIG_SERIAL_JSM is not set 1178# CONFIG_SERIAL_JSM is not set
1179# CONFIG_SERIAL_TIMBERDALE is not set
1182# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1180# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1183CONFIG_UNIX98_PTYS=y 1181CONFIG_UNIX98_PTYS=y
1184# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1182# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1231,6 +1229,7 @@ CONFIG_I2C_HELPER_AUTO=y
1231CONFIG_I2C_MV64XXX=m 1229CONFIG_I2C_MV64XXX=m
1232# CONFIG_I2C_OCORES is not set 1230# CONFIG_I2C_OCORES is not set
1233# CONFIG_I2C_SIMTEC is not set 1231# CONFIG_I2C_SIMTEC is not set
1232# CONFIG_I2C_XILINX is not set
1234 1233
1235# 1234#
1236# External I2C/SMBus adapter drivers 1235# External I2C/SMBus adapter drivers
@@ -1244,15 +1243,9 @@ CONFIG_I2C_MV64XXX=m
1244# 1243#
1245# CONFIG_I2C_PCA_PLATFORM is not set 1244# CONFIG_I2C_PCA_PLATFORM is not set
1246# CONFIG_I2C_STUB is not set 1245# CONFIG_I2C_STUB is not set
1247
1248#
1249# Miscellaneous I2C Chip support
1250#
1251# CONFIG_SENSORS_TSL2550 is not set
1252# CONFIG_I2C_DEBUG_CORE is not set 1246# CONFIG_I2C_DEBUG_CORE is not set
1253# CONFIG_I2C_DEBUG_ALGO is not set 1247# CONFIG_I2C_DEBUG_ALGO is not set
1254# CONFIG_I2C_DEBUG_BUS is not set 1248# CONFIG_I2C_DEBUG_BUS is not set
1255# CONFIG_I2C_DEBUG_CHIP is not set
1256# CONFIG_SPI is not set 1249# CONFIG_SPI is not set
1257 1250
1258# 1251#
@@ -1278,10 +1271,11 @@ CONFIG_SENSORS_ADM1026=m
1278# CONFIG_SENSORS_ADM1029 is not set 1271# CONFIG_SENSORS_ADM1029 is not set
1279CONFIG_SENSORS_ADM1031=m 1272CONFIG_SENSORS_ADM1031=m
1280# CONFIG_SENSORS_ADM9240 is not set 1273# CONFIG_SENSORS_ADM9240 is not set
1274# CONFIG_SENSORS_ADT7411 is not set
1281# CONFIG_SENSORS_ADT7462 is not set 1275# CONFIG_SENSORS_ADT7462 is not set
1282# CONFIG_SENSORS_ADT7470 is not set 1276# CONFIG_SENSORS_ADT7470 is not set
1283# CONFIG_SENSORS_ADT7473 is not set
1284# CONFIG_SENSORS_ADT7475 is not set 1277# CONFIG_SENSORS_ADT7475 is not set
1278# CONFIG_SENSORS_ASC7621 is not set
1285# CONFIG_SENSORS_ATXP1 is not set 1279# CONFIG_SENSORS_ATXP1 is not set
1286CONFIG_SENSORS_DS1621=m 1280CONFIG_SENSORS_DS1621=m
1287# CONFIG_SENSORS_I5K_AMB is not set 1281# CONFIG_SENSORS_I5K_AMB is not set
@@ -1318,6 +1312,7 @@ CONFIG_SENSORS_SMSC47M1=m
1318# CONFIG_SENSORS_SMSC47M192 is not set 1312# CONFIG_SENSORS_SMSC47M192 is not set
1319CONFIG_SENSORS_SMSC47B397=m 1313CONFIG_SENSORS_SMSC47B397=m
1320# CONFIG_SENSORS_ADS7828 is not set 1314# CONFIG_SENSORS_ADS7828 is not set
1315# CONFIG_SENSORS_AMC6821 is not set
1321# CONFIG_SENSORS_THMC50 is not set 1316# CONFIG_SENSORS_THMC50 is not set
1322# CONFIG_SENSORS_TMP401 is not set 1317# CONFIG_SENSORS_TMP401 is not set
1323# CONFIG_SENSORS_TMP421 is not set 1318# CONFIG_SENSORS_TMP421 is not set
@@ -1369,9 +1364,9 @@ CONFIG_SSB_POSSIBLE=y
1369# CONFIG_HTC_PASIC3 is not set 1364# CONFIG_HTC_PASIC3 is not set
1370# CONFIG_MFD_TMIO is not set 1365# CONFIG_MFD_TMIO is not set
1371# CONFIG_MFD_WM8400 is not set 1366# CONFIG_MFD_WM8400 is not set
1372# CONFIG_MFD_WM8350_I2C is not set 1367# CONFIG_MFD_WM8994 is not set
1373# CONFIG_MFD_PCF50633 is not set 1368# CONFIG_MFD_PCF50633 is not set
1374# CONFIG_AB3100_CORE is not set 1369# CONFIG_LPC_SCH is not set
1375# CONFIG_REGULATOR is not set 1370# CONFIG_REGULATOR is not set
1376# CONFIG_MEDIA_SUPPORT is not set 1371# CONFIG_MEDIA_SUPPORT is not set
1377 1372
@@ -1380,6 +1375,7 @@ CONFIG_SSB_POSSIBLE=y
1380# 1375#
1381# CONFIG_AGP is not set 1376# CONFIG_AGP is not set
1382CONFIG_VGA_ARB=y 1377CONFIG_VGA_ARB=y
1378CONFIG_VGA_ARB_MAX_GPUS=16
1383# CONFIG_DRM is not set 1379# CONFIG_DRM is not set
1384# CONFIG_VGASTATE is not set 1380# CONFIG_VGASTATE is not set
1385# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1381# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1413,7 +1409,6 @@ CONFIG_USB=m
1413CONFIG_USB_DEVICEFS=y 1409CONFIG_USB_DEVICEFS=y
1414# CONFIG_USB_DEVICE_CLASS is not set 1410# CONFIG_USB_DEVICE_CLASS is not set
1415# CONFIG_USB_DYNAMIC_MINORS is not set 1411# CONFIG_USB_DYNAMIC_MINORS is not set
1416CONFIG_USB_SUSPEND=y
1417# CONFIG_USB_OTG is not set 1412# CONFIG_USB_OTG is not set
1418CONFIG_USB_MON=m 1413CONFIG_USB_MON=m
1419# CONFIG_USB_WUSB is not set 1414# CONFIG_USB_WUSB is not set
@@ -1535,6 +1530,7 @@ CONFIG_USB_SERIAL_MCT_U232=m
1535# CONFIG_USB_SERIAL_NAVMAN is not set 1530# CONFIG_USB_SERIAL_NAVMAN is not set
1536CONFIG_USB_SERIAL_PL2303=m 1531CONFIG_USB_SERIAL_PL2303=m
1537# CONFIG_USB_SERIAL_OTI6858 is not set 1532# CONFIG_USB_SERIAL_OTI6858 is not set
1533# CONFIG_USB_SERIAL_QCAUX is not set
1538# CONFIG_USB_SERIAL_QUALCOMM is not set 1534# CONFIG_USB_SERIAL_QUALCOMM is not set
1539# CONFIG_USB_SERIAL_SPCP8X5 is not set 1535# CONFIG_USB_SERIAL_SPCP8X5 is not set
1540# CONFIG_USB_SERIAL_HP4X is not set 1536# CONFIG_USB_SERIAL_HP4X is not set
@@ -1549,6 +1545,7 @@ CONFIG_USB_SERIAL_XIRCOM=m
1549# CONFIG_USB_SERIAL_OPTION is not set 1545# CONFIG_USB_SERIAL_OPTION is not set
1550CONFIG_USB_SERIAL_OMNINET=m 1546CONFIG_USB_SERIAL_OMNINET=m
1551# CONFIG_USB_SERIAL_OPTICON is not set 1547# CONFIG_USB_SERIAL_OPTICON is not set
1548# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1552# CONFIG_USB_SERIAL_DEBUG is not set 1549# CONFIG_USB_SERIAL_DEBUG is not set
1553 1550
1554# 1551#
@@ -1561,7 +1558,6 @@ CONFIG_USB_EMI62=m
1561CONFIG_USB_RIO500=m 1558CONFIG_USB_RIO500=m
1562CONFIG_USB_LEGOTOWER=m 1559CONFIG_USB_LEGOTOWER=m
1563CONFIG_USB_LCD=m 1560CONFIG_USB_LCD=m
1564# CONFIG_USB_BERRY_CHARGE is not set
1565CONFIG_USB_LED=m 1561CONFIG_USB_LED=m
1566# CONFIG_USB_CYPRESS_CY7C63 is not set 1562# CONFIG_USB_CYPRESS_CY7C63 is not set
1567# CONFIG_USB_CYTHERM is not set 1563# CONFIG_USB_CYTHERM is not set
@@ -1574,7 +1570,6 @@ CONFIG_USB_LED=m
1574# CONFIG_USB_IOWARRIOR is not set 1570# CONFIG_USB_IOWARRIOR is not set
1575CONFIG_USB_TEST=m 1571CONFIG_USB_TEST=m
1576# CONFIG_USB_ISIGHTFW is not set 1572# CONFIG_USB_ISIGHTFW is not set
1577# CONFIG_USB_VST is not set
1578CONFIG_USB_ATM=m 1573CONFIG_USB_ATM=m
1579CONFIG_USB_SPEEDTOUCH=m 1574CONFIG_USB_SPEEDTOUCH=m
1580# CONFIG_USB_CXACRU is not set 1575# CONFIG_USB_CXACRU is not set
@@ -1611,6 +1606,7 @@ CONFIG_INFINIBAND_SRP=m
1611# CONFIG_EDAC is not set 1606# CONFIG_EDAC is not set
1612# CONFIG_RTC_CLASS is not set 1607# CONFIG_RTC_CLASS is not set
1613CONFIG_DMADEVICES=y 1608CONFIG_DMADEVICES=y
1609# CONFIG_DMADEVICES_DEBUG is not set
1614 1610
1615# 1611#
1616# DMA Devices 1612# DMA Devices
@@ -1714,6 +1710,7 @@ CONFIG_JFFS2_ZLIB=y
1714# CONFIG_JFFS2_LZO is not set 1710# CONFIG_JFFS2_LZO is not set
1715CONFIG_JFFS2_RTIME=y 1711CONFIG_JFFS2_RTIME=y
1716# CONFIG_JFFS2_RUBIN is not set 1712# CONFIG_JFFS2_RUBIN is not set
1713# CONFIG_LOGFS is not set
1717CONFIG_CRAMFS=m 1714CONFIG_CRAMFS=m
1718# CONFIG_SQUASHFS is not set 1715# CONFIG_SQUASHFS is not set
1719CONFIG_VXFS_FS=m 1716CONFIG_VXFS_FS=m
@@ -1742,6 +1739,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m
1742CONFIG_RPCSEC_GSS_KRB5=y 1739CONFIG_RPCSEC_GSS_KRB5=y
1743CONFIG_RPCSEC_GSS_SPKM3=m 1740CONFIG_RPCSEC_GSS_SPKM3=m
1744# CONFIG_SMB_FS is not set 1741# CONFIG_SMB_FS is not set
1742# CONFIG_CEPH_FS is not set
1745CONFIG_CIFS=m 1743CONFIG_CIFS=m
1746# CONFIG_CIFS_STATS is not set 1744# CONFIG_CIFS_STATS is not set
1747# CONFIG_CIFS_WEAK_PW_HASH is not set 1745# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1817,7 +1815,7 @@ CONFIG_NLS_KOI8_R=m
1817CONFIG_NLS_KOI8_U=m 1815CONFIG_NLS_KOI8_U=m
1818CONFIG_NLS_UTF8=m 1816CONFIG_NLS_UTF8=m
1819# CONFIG_DLM is not set 1817# CONFIG_DLM is not set
1820CONFIG_BINARY_PRINTF=y 1818# CONFIG_BINARY_PRINTF is not set
1821 1819
1822# 1820#
1823# Library routines 1821# Library routines
@@ -1833,9 +1831,11 @@ CONFIG_CRC32=y
1833CONFIG_LIBCRC32C=m 1831CONFIG_LIBCRC32C=m
1834CONFIG_ZLIB_INFLATE=y 1832CONFIG_ZLIB_INFLATE=y
1835CONFIG_ZLIB_DEFLATE=y 1833CONFIG_ZLIB_DEFLATE=y
1834CONFIG_LZO_DECOMPRESS=y
1836CONFIG_DECOMPRESS_GZIP=y 1835CONFIG_DECOMPRESS_GZIP=y
1837CONFIG_DECOMPRESS_BZIP2=y 1836CONFIG_DECOMPRESS_BZIP2=y
1838CONFIG_DECOMPRESS_LZMA=y 1837CONFIG_DECOMPRESS_LZMA=y
1838CONFIG_DECOMPRESS_LZO=y
1839CONFIG_HAS_IOMEM=y 1839CONFIG_HAS_IOMEM=y
1840CONFIG_HAS_IOPORT=y 1840CONFIG_HAS_IOPORT=y
1841CONFIG_HAS_DMA=y 1841CONFIG_HAS_DMA=y
@@ -1880,7 +1880,6 @@ CONFIG_DEBUG_SPINLOCK=y
1880# CONFIG_LOCK_STAT is not set 1880# CONFIG_LOCK_STAT is not set
1881CONFIG_DEBUG_SPINLOCK_SLEEP=y 1881CONFIG_DEBUG_SPINLOCK_SLEEP=y
1882# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1882# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1883CONFIG_STACKTRACE=y
1884# CONFIG_DEBUG_KOBJECT is not set 1883# CONFIG_DEBUG_KOBJECT is not set
1885CONFIG_DEBUG_HIGHMEM=y 1884CONFIG_DEBUG_HIGHMEM=y
1886CONFIG_DEBUG_BUGVERBOSE=y 1885CONFIG_DEBUG_BUGVERBOSE=y
@@ -1903,16 +1902,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1903# CONFIG_LATENCYTOP is not set 1902# CONFIG_LATENCYTOP is not set
1904CONFIG_SYSCTL_SYSCALL_CHECK=y 1903CONFIG_SYSCTL_SYSCALL_CHECK=y
1905# CONFIG_DEBUG_PAGEALLOC is not set 1904# CONFIG_DEBUG_PAGEALLOC is not set
1906CONFIG_NOP_TRACER=y
1907CONFIG_HAVE_FUNCTION_TRACER=y 1905CONFIG_HAVE_FUNCTION_TRACER=y
1908CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1906CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1909CONFIG_HAVE_DYNAMIC_FTRACE=y 1907CONFIG_HAVE_DYNAMIC_FTRACE=y
1910CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1908CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1911CONFIG_RING_BUFFER=y 1909CONFIG_RING_BUFFER=y
1912CONFIG_EVENT_TRACING=y
1913CONFIG_CONTEXT_SWITCH_TRACER=y
1914CONFIG_RING_BUFFER_ALLOW_SWAP=y 1910CONFIG_RING_BUFFER_ALLOW_SWAP=y
1915CONFIG_TRACING=y
1916CONFIG_TRACING_SUPPORT=y 1911CONFIG_TRACING_SUPPORT=y
1917CONFIG_FTRACE=y 1912CONFIG_FTRACE=y
1918# CONFIG_FUNCTION_TRACER is not set 1913# CONFIG_FUNCTION_TRACER is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index 79105413884e..81e904e9f392 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -298,6 +298,7 @@ CONFIG_ISA_DMA_API=y
298# Bus options 298# Bus options
299# 299#
300CONFIG_ZONE_DMA=y 300CONFIG_ZONE_DMA=y
301# CONFIG_NEED_DMA_MAP_STATE is not set
301CONFIG_PPC_INDIRECT_PCI=y 302CONFIG_PPC_INDIRECT_PCI=y
302CONFIG_FSL_SOC=y 303CONFIG_FSL_SOC=y
303CONFIG_PPC_PCI_CHOICE=y 304CONFIG_PPC_PCI_CHOICE=y
@@ -308,7 +309,6 @@ CONFIG_PCI_8260=y
308# CONFIG_PCIEPORTBUS is not set 309# CONFIG_PCIEPORTBUS is not set
309CONFIG_ARCH_SUPPORTS_MSI=y 310CONFIG_ARCH_SUPPORTS_MSI=y
310# CONFIG_PCI_MSI is not set 311# CONFIG_PCI_MSI is not set
311# CONFIG_PCI_LEGACY is not set
312# CONFIG_PCI_DEBUG is not set 312# CONFIG_PCI_DEBUG is not set
313# CONFIG_PCI_STUB is not set 313# CONFIG_PCI_STUB is not set
314# CONFIG_PCI_IOV is not set 314# CONFIG_PCI_IOV is not set
@@ -335,7 +335,6 @@ CONFIG_NET=y
335# Networking options 335# Networking options
336# 336#
337CONFIG_PACKET=y 337CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 338CONFIG_UNIX=y
340CONFIG_XFRM=y 339CONFIG_XFRM=y
341# CONFIG_XFRM_USER is not set 340# CONFIG_XFRM_USER is not set
@@ -537,6 +536,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 536# UBI - Unsorted block images
538# 537#
539# CONFIG_MTD_UBI is not set 538# CONFIG_MTD_UBI is not set
539CONFIG_OF_FLATTREE=y
540CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 541CONFIG_OF_DEVICE=y
541CONFIG_OF_GPIO=y 542CONFIG_OF_GPIO=y
542CONFIG_OF_MDIO=y 543CONFIG_OF_MDIO=y
@@ -566,6 +567,7 @@ CONFIG_HAVE_IDE=y
566# 567#
567# SCSI device support 568# SCSI device support
568# 569#
570CONFIG_SCSI_MOD=y
569# CONFIG_RAID_ATTRS is not set 571# CONFIG_RAID_ATTRS is not set
570# CONFIG_SCSI is not set 572# CONFIG_SCSI is not set
571# CONFIG_SCSI_DMA is not set 573# CONFIG_SCSI_DMA is not set
@@ -671,6 +673,8 @@ CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
672CONFIG_CHELSIO_T3_DEPENDS=y 674CONFIG_CHELSIO_T3_DEPENDS=y
673# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
676CONFIG_CHELSIO_T4_DEPENDS=y
677# CONFIG_CHELSIO_T4 is not set
674# CONFIG_ENIC is not set 678# CONFIG_ENIC is not set
675# CONFIG_IXGBE is not set 679# CONFIG_IXGBE is not set
676# CONFIG_IXGB is not set 680# CONFIG_IXGB is not set
@@ -683,6 +687,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
683# CONFIG_MLX4_CORE is not set 687# CONFIG_MLX4_CORE is not set
684# CONFIG_TEHUTI is not set 688# CONFIG_TEHUTI is not set
685# CONFIG_BNX2X is not set 689# CONFIG_BNX2X is not set
690# CONFIG_QLCNIC is not set
686# CONFIG_QLGE is not set 691# CONFIG_QLGE is not set
687# CONFIG_SFC is not set 692# CONFIG_SFC is not set
688# CONFIG_BE2NET is not set 693# CONFIG_BE2NET is not set
@@ -737,6 +742,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
737CONFIG_SERIAL_CPM=y 742CONFIG_SERIAL_CPM=y
738CONFIG_SERIAL_CPM_CONSOLE=y 743CONFIG_SERIAL_CPM_CONSOLE=y
739# CONFIG_SERIAL_JSM is not set 744# CONFIG_SERIAL_JSM is not set
745# CONFIG_SERIAL_TIMBERDALE is not set
740# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 746# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
741CONFIG_UNIX98_PTYS=y 747CONFIG_UNIX98_PTYS=y
742# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 748# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -765,7 +771,9 @@ CONFIG_GPIOLIB=y
765# 771#
766# Memory mapped GPIO expanders: 772# Memory mapped GPIO expanders:
767# 773#
774# CONFIG_GPIO_IT8761E is not set
768# CONFIG_GPIO_XILINX is not set 775# CONFIG_GPIO_XILINX is not set
776# CONFIG_GPIO_SCH is not set
769 777
770# 778#
771# I2C GPIO expanders: 779# I2C GPIO expanders:
@@ -804,6 +812,8 @@ CONFIG_SSB_POSSIBLE=y
804# CONFIG_MFD_SM501 is not set 812# CONFIG_MFD_SM501 is not set
805# CONFIG_HTC_PASIC3 is not set 813# CONFIG_HTC_PASIC3 is not set
806# CONFIG_MFD_TMIO is not set 814# CONFIG_MFD_TMIO is not set
815# CONFIG_MFD_TIMBERDALE is not set
816# CONFIG_LPC_SCH is not set
807# CONFIG_REGULATOR is not set 817# CONFIG_REGULATOR is not set
808# CONFIG_MEDIA_SUPPORT is not set 818# CONFIG_MEDIA_SUPPORT is not set
809 819
@@ -812,6 +822,7 @@ CONFIG_SSB_POSSIBLE=y
812# 822#
813# CONFIG_AGP is not set 823# CONFIG_AGP is not set
814CONFIG_VGA_ARB=y 824CONFIG_VGA_ARB=y
825CONFIG_VGA_ARB_MAX_GPUS=16
815# CONFIG_DRM is not set 826# CONFIG_DRM is not set
816# CONFIG_VGASTATE is not set 827# CONFIG_VGASTATE is not set
817# CONFIG_VIDEO_OUTPUT_CONTROL is not set 828# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -869,6 +880,7 @@ CONFIG_AUTOFS4_FS=y
869# 880#
870# Caches 881# Caches
871# 882#
883# CONFIG_FSCACHE is not set
872 884
873# 885#
874# CD-ROM/DVD Filesystems 886# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 58f7ca71a59d..c5af46ef5f40 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:00 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,11 +90,6 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94CONFIG_SYSFS_DEPRECATED=y
100CONFIG_SYSFS_DEPRECATED_V2=y 95CONFIG_SYSFS_DEPRECATED_V2=y
@@ -306,6 +301,7 @@ CONFIG_ISA_DMA_API=y
306# Bus options 301# Bus options
307# 302#
308CONFIG_ZONE_DMA=y 303CONFIG_ZONE_DMA=y
304CONFIG_NEED_DMA_MAP_STATE=y
309CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
310# CONFIG_PCI is not set 306# CONFIG_PCI is not set
311# CONFIG_PCI_DOMAINS is not set 307# CONFIG_PCI_DOMAINS is not set
@@ -335,7 +331,6 @@ CONFIG_NET=y
335# Networking options 331# Networking options
336# 332#
337CONFIG_PACKET=y 333CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 334CONFIG_UNIX=y
340# CONFIG_NET_KEY is not set 335# CONFIG_NET_KEY is not set
341CONFIG_INET=y 336CONFIG_INET=y
@@ -504,6 +499,8 @@ CONFIG_MTD_PHYSMAP_OF=y
504# UBI - Unsorted block images 499# UBI - Unsorted block images
505# 500#
506# CONFIG_MTD_UBI is not set 501# CONFIG_MTD_UBI is not set
502CONFIG_OF_FLATTREE=y
503CONFIG_OF_DYNAMIC=y
507CONFIG_OF_DEVICE=y 504CONFIG_OF_DEVICE=y
508CONFIG_OF_MDIO=y 505CONFIG_OF_MDIO=y
509# CONFIG_PARPORT is not set 506# CONFIG_PARPORT is not set
@@ -515,6 +512,7 @@ CONFIG_HAVE_IDE=y
515# 512#
516# SCSI device support 513# SCSI device support
517# 514#
515CONFIG_SCSI_MOD=y
518# CONFIG_RAID_ATTRS is not set 516# CONFIG_RAID_ATTRS is not set
519# CONFIG_SCSI is not set 517# CONFIG_SCSI is not set
520# CONFIG_SCSI_DMA is not set 518# CONFIG_SCSI_DMA is not set
@@ -616,6 +614,7 @@ CONFIG_SERIAL_CORE=y
616CONFIG_SERIAL_CORE_CONSOLE=y 614CONFIG_SERIAL_CORE_CONSOLE=y
617CONFIG_SERIAL_CPM=y 615CONFIG_SERIAL_CPM=y
618CONFIG_SERIAL_CPM_CONSOLE=y 616CONFIG_SERIAL_CPM_CONSOLE=y
617# CONFIG_SERIAL_TIMBERDALE is not set
619# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 618# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
620CONFIG_UNIX98_PTYS=y 619CONFIG_UNIX98_PTYS=y
621# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 620# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -753,6 +752,7 @@ CONFIG_MISC_FILESYSTEMS=y
753# CONFIG_BFS_FS is not set 752# CONFIG_BFS_FS is not set
754# CONFIG_EFS_FS is not set 753# CONFIG_EFS_FS is not set
755# CONFIG_JFFS2_FS is not set 754# CONFIG_JFFS2_FS is not set
755# CONFIG_LOGFS is not set
756CONFIG_CRAMFS=y 756CONFIG_CRAMFS=y
757# CONFIG_SQUASHFS is not set 757# CONFIG_SQUASHFS is not set
758# CONFIG_VXFS_FS is not set 758# CONFIG_VXFS_FS is not set
@@ -777,6 +777,7 @@ CONFIG_SUNRPC=y
777# CONFIG_RPCSEC_GSS_KRB5 is not set 777# CONFIG_RPCSEC_GSS_KRB5 is not set
778# CONFIG_RPCSEC_GSS_SPKM3 is not set 778# CONFIG_RPCSEC_GSS_SPKM3 is not set
779# CONFIG_SMB_FS is not set 779# CONFIG_SMB_FS is not set
780# CONFIG_CEPH_FS is not set
780# CONFIG_CIFS is not set 781# CONFIG_CIFS is not set
781# CONFIG_NCP_FS is not set 782# CONFIG_NCP_FS is not set
782# CONFIG_CODA_FS is not set 783# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 9a0c981277eb..588a2add393f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:01 2010 4# Mon Apr 19 23:16:25 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,11 +96,6 @@ CONFIG_RCU_FANOUT=32
96CONFIG_IKCONFIG=y 96CONFIG_IKCONFIG=y
97CONFIG_IKCONFIG_PROC=y 97CONFIG_IKCONFIG_PROC=y
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100CONFIG_SYSFS_DEPRECATED=y
106CONFIG_SYSFS_DEPRECATED_V2=y 101CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
117CONFIG_RD_BZIP2=y 112CONFIG_RD_BZIP2=y
118CONFIG_RD_LZMA=y 113CONFIG_RD_LZMA=y
114CONFIG_RD_LZO=y
119CONFIG_CC_OPTIMIZE_FOR_SIZE=y 115CONFIG_CC_OPTIMIZE_FOR_SIZE=y
120CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -328,6 +324,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 324# Bus options
329# 325#
330CONFIG_ZONE_DMA=y 326CONFIG_ZONE_DMA=y
327# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 328CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 329CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 330CONFIG_FSL_SOC=y
@@ -337,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -364,7 +360,6 @@ CONFIG_NET=y
364# Networking options 360# Networking options
365# 361#
366CONFIG_PACKET=y 362CONFIG_PACKET=y
367CONFIG_PACKET_MMAP=y
368CONFIG_UNIX=y 363CONFIG_UNIX=y
369CONFIG_XFRM=y 364CONFIG_XFRM=y
370# CONFIG_XFRM_USER is not set 365# CONFIG_XFRM_USER is not set
@@ -433,6 +428,7 @@ CONFIG_NF_CONNTRACK_TFTP=m
433CONFIG_NETFILTER_XTABLES=m 428CONFIG_NETFILTER_XTABLES=m
434# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 429# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
435# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 430# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
431# CONFIG_NETFILTER_XT_TARGET_CT is not set
436# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 432# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
437CONFIG_NETFILTER_XT_TARGET_HL=m 433CONFIG_NETFILTER_XT_TARGET_HL=m
438# CONFIG_NETFILTER_XT_TARGET_MARK is not set 434# CONFIG_NETFILTER_XT_TARGET_MARK is not set
@@ -665,6 +661,8 @@ CONFIG_MTD_PHYSMAP=y
665# UBI - Unsorted block images 661# UBI - Unsorted block images
666# 662#
667# CONFIG_MTD_UBI is not set 663# CONFIG_MTD_UBI is not set
664CONFIG_OF_FLATTREE=y
665CONFIG_OF_DYNAMIC=y
668CONFIG_OF_DEVICE=y 666CONFIG_OF_DEVICE=y
669CONFIG_OF_I2C=y 667CONFIG_OF_I2C=y
670# CONFIG_PARPORT is not set 668# CONFIG_PARPORT is not set
@@ -700,6 +698,7 @@ CONFIG_MISC_DEVICES=y
700# CONFIG_ENCLOSURE_SERVICES is not set 698# CONFIG_ENCLOSURE_SERVICES is not set
701# CONFIG_HP_ILO is not set 699# CONFIG_HP_ILO is not set
702# CONFIG_ISL29003 is not set 700# CONFIG_ISL29003 is not set
701# CONFIG_SENSORS_TSL2550 is not set
703# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
704# CONFIG_C2PORT is not set 703# CONFIG_C2PORT is not set
705 704
@@ -717,6 +716,7 @@ CONFIG_HAVE_IDE=y
717# 716#
718# SCSI device support 717# SCSI device support
719# 718#
719CONFIG_SCSI_MOD=y
720# CONFIG_RAID_ATTRS is not set 720# CONFIG_RAID_ATTRS is not set
721CONFIG_SCSI=y 721CONFIG_SCSI=y
722CONFIG_SCSI_DMA=y 722CONFIG_SCSI_DMA=y
@@ -840,6 +840,7 @@ CONFIG_ATA_SFF=y
840CONFIG_PATA_IT821X=y 840CONFIG_PATA_IT821X=y
841# CONFIG_PATA_IT8213 is not set 841# CONFIG_PATA_IT8213 is not set
842# CONFIG_PATA_JMICRON is not set 842# CONFIG_PATA_JMICRON is not set
843# CONFIG_PATA_LEGACY is not set
843# CONFIG_PATA_TRIFLEX is not set 844# CONFIG_PATA_TRIFLEX is not set
844# CONFIG_PATA_MARVELL is not set 845# CONFIG_PATA_MARVELL is not set
845# CONFIG_PATA_MPIIX is not set 846# CONFIG_PATA_MPIIX is not set
@@ -954,6 +955,8 @@ CONFIG_NETDEV_10000=y
954# CONFIG_CHELSIO_T1 is not set 955# CONFIG_CHELSIO_T1 is not set
955CONFIG_CHELSIO_T3_DEPENDS=y 956CONFIG_CHELSIO_T3_DEPENDS=y
956# CONFIG_CHELSIO_T3 is not set 957# CONFIG_CHELSIO_T3 is not set
958CONFIG_CHELSIO_T4_DEPENDS=y
959# CONFIG_CHELSIO_T4 is not set
957# CONFIG_ENIC is not set 960# CONFIG_ENIC is not set
958# CONFIG_IXGBE is not set 961# CONFIG_IXGBE is not set
959# CONFIG_IXGB is not set 962# CONFIG_IXGB is not set
@@ -966,6 +969,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
966# CONFIG_MLX4_CORE is not set 969# CONFIG_MLX4_CORE is not set
967# CONFIG_TEHUTI is not set 970# CONFIG_TEHUTI is not set
968# CONFIG_BNX2X is not set 971# CONFIG_BNX2X is not set
972# CONFIG_QLCNIC is not set
969# CONFIG_QLGE is not set 973# CONFIG_QLGE is not set
970# CONFIG_SFC is not set 974# CONFIG_SFC is not set
971# CONFIG_BE2NET is not set 975# CONFIG_BE2NET is not set
@@ -1082,6 +1086,7 @@ CONFIG_SERIAL_CORE=y
1082CONFIG_SERIAL_CORE_CONSOLE=y 1086CONFIG_SERIAL_CORE_CONSOLE=y
1083# CONFIG_SERIAL_JSM is not set 1087# CONFIG_SERIAL_JSM is not set
1084# CONFIG_SERIAL_OF_PLATFORM is not set 1088# CONFIG_SERIAL_OF_PLATFORM is not set
1089# CONFIG_SERIAL_TIMBERDALE is not set
1085# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1090# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1086CONFIG_UNIX98_PTYS=y 1091CONFIG_UNIX98_PTYS=y
1087# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1092# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1131,6 +1136,7 @@ CONFIG_I2C_HELPER_AUTO=y
1131CONFIG_I2C_MPC=y 1136CONFIG_I2C_MPC=y
1132# CONFIG_I2C_OCORES is not set 1137# CONFIG_I2C_OCORES is not set
1133# CONFIG_I2C_SIMTEC is not set 1138# CONFIG_I2C_SIMTEC is not set
1139# CONFIG_I2C_XILINX is not set
1134 1140
1135# 1141#
1136# External I2C/SMBus adapter drivers 1142# External I2C/SMBus adapter drivers
@@ -1144,15 +1150,9 @@ CONFIG_I2C_MPC=y
1144# 1150#
1145# CONFIG_I2C_PCA_PLATFORM is not set 1151# CONFIG_I2C_PCA_PLATFORM is not set
1146# CONFIG_I2C_STUB is not set 1152# CONFIG_I2C_STUB is not set
1147
1148#
1149# Miscellaneous I2C Chip support
1150#
1151# CONFIG_SENSORS_TSL2550 is not set
1152# CONFIG_I2C_DEBUG_CORE is not set 1153# CONFIG_I2C_DEBUG_CORE is not set
1153# CONFIG_I2C_DEBUG_ALGO is not set 1154# CONFIG_I2C_DEBUG_ALGO is not set
1154# CONFIG_I2C_DEBUG_BUS is not set 1155# CONFIG_I2C_DEBUG_BUS is not set
1155# CONFIG_I2C_DEBUG_CHIP is not set
1156# CONFIG_SPI is not set 1156# CONFIG_SPI is not set
1157 1157
1158# 1158#
@@ -1178,10 +1178,11 @@ CONFIG_HWMON=y
1178# CONFIG_SENSORS_ADM1029 is not set 1178# CONFIG_SENSORS_ADM1029 is not set
1179# CONFIG_SENSORS_ADM1031 is not set 1179# CONFIG_SENSORS_ADM1031 is not set
1180# CONFIG_SENSORS_ADM9240 is not set 1180# CONFIG_SENSORS_ADM9240 is not set
1181# CONFIG_SENSORS_ADT7411 is not set
1181# CONFIG_SENSORS_ADT7462 is not set 1182# CONFIG_SENSORS_ADT7462 is not set
1182# CONFIG_SENSORS_ADT7470 is not set 1183# CONFIG_SENSORS_ADT7470 is not set
1183# CONFIG_SENSORS_ADT7473 is not set
1184# CONFIG_SENSORS_ADT7475 is not set 1184# CONFIG_SENSORS_ADT7475 is not set
1185# CONFIG_SENSORS_ASC7621 is not set
1185# CONFIG_SENSORS_ATXP1 is not set 1186# CONFIG_SENSORS_ATXP1 is not set
1186# CONFIG_SENSORS_DS1621 is not set 1187# CONFIG_SENSORS_DS1621 is not set
1187# CONFIG_SENSORS_I5K_AMB is not set 1188# CONFIG_SENSORS_I5K_AMB is not set
@@ -1218,6 +1219,7 @@ CONFIG_HWMON=y
1218# CONFIG_SENSORS_SMSC47M192 is not set 1219# CONFIG_SENSORS_SMSC47M192 is not set
1219# CONFIG_SENSORS_SMSC47B397 is not set 1220# CONFIG_SENSORS_SMSC47B397 is not set
1220# CONFIG_SENSORS_ADS7828 is not set 1221# CONFIG_SENSORS_ADS7828 is not set
1222# CONFIG_SENSORS_AMC6821 is not set
1221# CONFIG_SENSORS_THMC50 is not set 1223# CONFIG_SENSORS_THMC50 is not set
1222# CONFIG_SENSORS_TMP401 is not set 1224# CONFIG_SENSORS_TMP401 is not set
1223# CONFIG_SENSORS_TMP421 is not set 1225# CONFIG_SENSORS_TMP421 is not set
@@ -1246,18 +1248,21 @@ CONFIG_SSB_POSSIBLE=y
1246# Multifunction device drivers 1248# Multifunction device drivers
1247# 1249#
1248# CONFIG_MFD_CORE is not set 1250# CONFIG_MFD_CORE is not set
1251# CONFIG_MFD_88PM860X is not set
1249# CONFIG_MFD_SM501 is not set 1252# CONFIG_MFD_SM501 is not set
1250# CONFIG_HTC_PASIC3 is not set 1253# CONFIG_HTC_PASIC3 is not set
1251# CONFIG_TWL4030_CORE is not set 1254# CONFIG_TWL4030_CORE is not set
1252# CONFIG_MFD_TMIO is not set 1255# CONFIG_MFD_TMIO is not set
1253# CONFIG_PMIC_DA903X is not set 1256# CONFIG_PMIC_DA903X is not set
1254# CONFIG_PMIC_ADP5520 is not set 1257# CONFIG_PMIC_ADP5520 is not set
1258# CONFIG_MFD_MAX8925 is not set
1255# CONFIG_MFD_WM8400 is not set 1259# CONFIG_MFD_WM8400 is not set
1256# CONFIG_MFD_WM831X is not set 1260# CONFIG_MFD_WM831X is not set
1257# CONFIG_MFD_WM8350_I2C is not set 1261# CONFIG_MFD_WM8350_I2C is not set
1262# CONFIG_MFD_WM8994 is not set
1258# CONFIG_MFD_PCF50633 is not set 1263# CONFIG_MFD_PCF50633 is not set
1259# CONFIG_AB3100_CORE is not set 1264# CONFIG_AB3100_CORE is not set
1260# CONFIG_MFD_88PM8607 is not set 1265# CONFIG_LPC_SCH is not set
1261# CONFIG_REGULATOR is not set 1266# CONFIG_REGULATOR is not set
1262# CONFIG_MEDIA_SUPPORT is not set 1267# CONFIG_MEDIA_SUPPORT is not set
1263 1268
@@ -1266,6 +1271,7 @@ CONFIG_SSB_POSSIBLE=y
1266# 1271#
1267# CONFIG_AGP is not set 1272# CONFIG_AGP is not set
1268CONFIG_VGA_ARB=y 1273CONFIG_VGA_ARB=y
1274CONFIG_VGA_ARB_MAX_GPUS=16
1269# CONFIG_DRM is not set 1275# CONFIG_DRM is not set
1270# CONFIG_VGASTATE is not set 1276# CONFIG_VGASTATE is not set
1271CONFIG_VIDEO_OUTPUT_CONTROL=m 1277CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1417,6 +1423,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1417# CONFIG_USB_SERIAL_NAVMAN is not set 1423# CONFIG_USB_SERIAL_NAVMAN is not set
1418# CONFIG_USB_SERIAL_PL2303 is not set 1424# CONFIG_USB_SERIAL_PL2303 is not set
1419# CONFIG_USB_SERIAL_OTI6858 is not set 1425# CONFIG_USB_SERIAL_OTI6858 is not set
1426# CONFIG_USB_SERIAL_QCAUX is not set
1420# CONFIG_USB_SERIAL_QUALCOMM is not set 1427# CONFIG_USB_SERIAL_QUALCOMM is not set
1421# CONFIG_USB_SERIAL_SPCP8X5 is not set 1428# CONFIG_USB_SERIAL_SPCP8X5 is not set
1422# CONFIG_USB_SERIAL_HP4X is not set 1429# CONFIG_USB_SERIAL_HP4X is not set
@@ -1430,6 +1437,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1430# CONFIG_USB_SERIAL_OPTION is not set 1437# CONFIG_USB_SERIAL_OPTION is not set
1431# CONFIG_USB_SERIAL_OMNINET is not set 1438# CONFIG_USB_SERIAL_OMNINET is not set
1432# CONFIG_USB_SERIAL_OPTICON is not set 1439# CONFIG_USB_SERIAL_OPTICON is not set
1440# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1433# CONFIG_USB_SERIAL_DEBUG is not set 1441# CONFIG_USB_SERIAL_DEBUG is not set
1434 1442
1435# 1443#
@@ -1442,7 +1450,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1442# CONFIG_USB_RIO500 is not set 1450# CONFIG_USB_RIO500 is not set
1443# CONFIG_USB_LEGOTOWER is not set 1451# CONFIG_USB_LEGOTOWER is not set
1444# CONFIG_USB_LCD is not set 1452# CONFIG_USB_LCD is not set
1445# CONFIG_USB_BERRY_CHARGE is not set
1446# CONFIG_USB_LED is not set 1453# CONFIG_USB_LED is not set
1447# CONFIG_USB_CYPRESS_CY7C63 is not set 1454# CONFIG_USB_CYPRESS_CY7C63 is not set
1448# CONFIG_USB_CYTHERM is not set 1455# CONFIG_USB_CYTHERM is not set
@@ -1455,7 +1462,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1455# CONFIG_USB_IOWARRIOR is not set 1462# CONFIG_USB_IOWARRIOR is not set
1456# CONFIG_USB_TEST is not set 1463# CONFIG_USB_TEST is not set
1457# CONFIG_USB_ISIGHTFW is not set 1464# CONFIG_USB_ISIGHTFW is not set
1458# CONFIG_USB_VST is not set
1459# CONFIG_USB_GADGET is not set 1465# CONFIG_USB_GADGET is not set
1460 1466
1461# 1467#
@@ -1620,6 +1626,7 @@ CONFIG_MISC_FILESYSTEMS=y
1620# CONFIG_BFS_FS is not set 1626# CONFIG_BFS_FS is not set
1621# CONFIG_EFS_FS is not set 1627# CONFIG_EFS_FS is not set
1622# CONFIG_JFFS2_FS is not set 1628# CONFIG_JFFS2_FS is not set
1629# CONFIG_LOGFS is not set
1623# CONFIG_CRAMFS is not set 1630# CONFIG_CRAMFS is not set
1624# CONFIG_SQUASHFS is not set 1631# CONFIG_SQUASHFS is not set
1625# CONFIG_VXFS_FS is not set 1632# CONFIG_VXFS_FS is not set
@@ -1651,6 +1658,7 @@ CONFIG_SUNRPC_GSS=y
1651CONFIG_RPCSEC_GSS_KRB5=y 1658CONFIG_RPCSEC_GSS_KRB5=y
1652# CONFIG_RPCSEC_GSS_SPKM3 is not set 1659# CONFIG_RPCSEC_GSS_SPKM3 is not set
1653# CONFIG_SMB_FS is not set 1660# CONFIG_SMB_FS is not set
1661# CONFIG_CEPH_FS is not set
1654CONFIG_CIFS=m 1662CONFIG_CIFS=m
1655# CONFIG_CIFS_STATS is not set 1663# CONFIG_CIFS_STATS is not set
1656# CONFIG_CIFS_WEAK_PW_HASH is not set 1664# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1723,9 +1731,11 @@ CONFIG_CRC32=y
1723CONFIG_LIBCRC32C=m 1731CONFIG_LIBCRC32C=m
1724CONFIG_ZLIB_INFLATE=y 1732CONFIG_ZLIB_INFLATE=y
1725CONFIG_ZLIB_DEFLATE=m 1733CONFIG_ZLIB_DEFLATE=m
1734CONFIG_LZO_DECOMPRESS=y
1726CONFIG_DECOMPRESS_GZIP=y 1735CONFIG_DECOMPRESS_GZIP=y
1727CONFIG_DECOMPRESS_BZIP2=y 1736CONFIG_DECOMPRESS_BZIP2=y
1728CONFIG_DECOMPRESS_LZMA=y 1737CONFIG_DECOMPRESS_LZMA=y
1738CONFIG_DECOMPRESS_LZO=y
1729CONFIG_TEXTSEARCH=y 1739CONFIG_TEXTSEARCH=y
1730CONFIG_TEXTSEARCH_KMP=m 1740CONFIG_TEXTSEARCH_KMP=m
1731CONFIG_HAS_IOMEM=y 1741CONFIG_HAS_IOMEM=y
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index 4c2c877f9363..0cbd56fe2e1e 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:02 2010 4# Mon Apr 19 23:16:26 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -105,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -311,6 +312,7 @@ CONFIG_ISA_DMA_API=y
311# 312#
312# CONFIG_ISA is not set 313# CONFIG_ISA is not set
313CONFIG_ZONE_DMA=y 314CONFIG_ZONE_DMA=y
315# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_PPC_INDIRECT_PCI=y 316CONFIG_PPC_INDIRECT_PCI=y
315CONFIG_FSL_SOC=y 317CONFIG_FSL_SOC=y
316CONFIG_PPC_PCI_CHOICE=y 318CONFIG_PPC_PCI_CHOICE=y
@@ -321,7 +323,6 @@ CONFIG_PCI_8260=y
321# CONFIG_PCIEPORTBUS is not set 323# CONFIG_PCIEPORTBUS is not set
322CONFIG_ARCH_SUPPORTS_MSI=y 324CONFIG_ARCH_SUPPORTS_MSI=y
323# CONFIG_PCI_MSI is not set 325# CONFIG_PCI_MSI is not set
324# CONFIG_PCI_LEGACY is not set
325# CONFIG_PCI_DEBUG is not set 326# CONFIG_PCI_DEBUG is not set
326# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
327# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
@@ -348,7 +349,6 @@ CONFIG_NET=y
348# Networking options 349# Networking options
349# 350#
350CONFIG_PACKET=y 351CONFIG_PACKET=y
351# CONFIG_PACKET_MMAP is not set
352CONFIG_UNIX=y 352CONFIG_UNIX=y
353CONFIG_XFRM=y 353CONFIG_XFRM=y
354# CONFIG_XFRM_USER is not set 354# CONFIG_XFRM_USER is not set
@@ -536,6 +536,8 @@ CONFIG_MTD_PHYSMAP_OF=y
536# UBI - Unsorted block images 536# UBI - Unsorted block images
537# 537#
538# CONFIG_MTD_UBI is not set 538# CONFIG_MTD_UBI is not set
539CONFIG_OF_FLATTREE=y
540CONFIG_OF_DYNAMIC=y
539CONFIG_OF_DEVICE=y 541CONFIG_OF_DEVICE=y
540CONFIG_OF_GPIO=y 542CONFIG_OF_GPIO=y
541CONFIG_OF_I2C=y 543CONFIG_OF_I2C=y
@@ -570,6 +572,7 @@ CONFIG_HAVE_IDE=y
570# 572#
571# SCSI device support 573# SCSI device support
572# 574#
575CONFIG_SCSI_MOD=y
573# CONFIG_RAID_ATTRS is not set 576# CONFIG_RAID_ATTRS is not set
574# CONFIG_SCSI is not set 577# CONFIG_SCSI is not set
575# CONFIG_SCSI_DMA is not set 578# CONFIG_SCSI_DMA is not set
@@ -704,6 +707,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_SERIAL_CPM=y 707CONFIG_SERIAL_CPM=y
705CONFIG_SERIAL_CPM_CONSOLE=y 708CONFIG_SERIAL_CPM_CONSOLE=y
706# CONFIG_SERIAL_JSM is not set 709# CONFIG_SERIAL_JSM is not set
710# CONFIG_SERIAL_TIMBERDALE is not set
707# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 711# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
708CONFIG_UNIX98_PTYS=y 712CONFIG_UNIX98_PTYS=y
709# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 713# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -769,14 +773,9 @@ CONFIG_I2C_CPM=y
769# Other I2C/SMBus bus drivers 773# Other I2C/SMBus bus drivers
770# 774#
771# CONFIG_I2C_PCA_PLATFORM is not set 775# CONFIG_I2C_PCA_PLATFORM is not set
772
773#
774# Miscellaneous I2C Chip support
775#
776# CONFIG_I2C_DEBUG_CORE is not set 776# CONFIG_I2C_DEBUG_CORE is not set
777# CONFIG_I2C_DEBUG_ALGO is not set 777# CONFIG_I2C_DEBUG_ALGO is not set
778# CONFIG_I2C_DEBUG_BUS is not set 778# CONFIG_I2C_DEBUG_BUS is not set
779# CONFIG_I2C_DEBUG_CHIP is not set
780# CONFIG_SPI is not set 779# CONFIG_SPI is not set
781 780
782# 781#
@@ -790,14 +789,18 @@ CONFIG_GPIOLIB=y
790# 789#
791# Memory mapped GPIO expanders: 790# Memory mapped GPIO expanders:
792# 791#
792# CONFIG_GPIO_IT8761E is not set
793# CONFIG_GPIO_XILINX is not set 793# CONFIG_GPIO_XILINX is not set
794# CONFIG_GPIO_SCH is not set
794 795
795# 796#
796# I2C GPIO expanders: 797# I2C GPIO expanders:
797# 798#
799# CONFIG_GPIO_MAX7300 is not set
798# CONFIG_GPIO_MAX732X is not set 800# CONFIG_GPIO_MAX732X is not set
799# CONFIG_GPIO_PCA953X is not set 801# CONFIG_GPIO_PCA953X is not set
800# CONFIG_GPIO_PCF857X is not set 802# CONFIG_GPIO_PCF857X is not set
803# CONFIG_GPIO_ADP5588 is not set
801 804
802# 805#
803# PCI GPIO expanders: 806# PCI GPIO expanders:
@@ -829,19 +832,24 @@ CONFIG_SSB_POSSIBLE=y
829# Multifunction device drivers 832# Multifunction device drivers
830# 833#
831# CONFIG_MFD_CORE is not set 834# CONFIG_MFD_CORE is not set
835# CONFIG_MFD_88PM860X is not set
832# CONFIG_MFD_SM501 is not set 836# CONFIG_MFD_SM501 is not set
833# CONFIG_HTC_PASIC3 is not set 837# CONFIG_HTC_PASIC3 is not set
838# CONFIG_HTC_I2CPLD is not set
834# CONFIG_TPS65010 is not set 839# CONFIG_TPS65010 is not set
835# CONFIG_TWL4030_CORE is not set 840# CONFIG_TWL4030_CORE is not set
836# CONFIG_MFD_TMIO is not set 841# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set 842# CONFIG_PMIC_DA903X is not set
838# CONFIG_PMIC_ADP5520 is not set 843# CONFIG_PMIC_ADP5520 is not set
844# CONFIG_MFD_MAX8925 is not set
839# CONFIG_MFD_WM8400 is not set 845# CONFIG_MFD_WM8400 is not set
840# CONFIG_MFD_WM831X is not set 846# CONFIG_MFD_WM831X is not set
841# CONFIG_MFD_WM8350_I2C is not set 847# CONFIG_MFD_WM8350_I2C is not set
848# CONFIG_MFD_WM8994 is not set
842# CONFIG_MFD_PCF50633 is not set 849# CONFIG_MFD_PCF50633 is not set
843# CONFIG_AB3100_CORE is not set 850# CONFIG_AB3100_CORE is not set
844# CONFIG_MFD_88PM8607 is not set 851# CONFIG_MFD_TIMBERDALE is not set
852# CONFIG_LPC_SCH is not set
845# CONFIG_REGULATOR is not set 853# CONFIG_REGULATOR is not set
846# CONFIG_MEDIA_SUPPORT is not set 854# CONFIG_MEDIA_SUPPORT is not set
847 855
@@ -850,6 +858,7 @@ CONFIG_SSB_POSSIBLE=y
850# 858#
851# CONFIG_AGP is not set 859# CONFIG_AGP is not set
852CONFIG_VGA_ARB=y 860CONFIG_VGA_ARB=y
861CONFIG_VGA_ARB_MAX_GPUS=16
853# CONFIG_DRM is not set 862# CONFIG_DRM is not set
854# CONFIG_VGASTATE is not set 863# CONFIG_VGASTATE is not set
855# CONFIG_VIDEO_OUTPUT_CONTROL is not set 864# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -908,6 +917,7 @@ CONFIG_AUTOFS4_FS=y
908# 917#
909# Caches 918# Caches
910# 919#
920# CONFIG_FSCACHE is not set
911 921
912# 922#
913# CD-ROM/DVD Filesystems 923# CD-ROM/DVD Filesystems
@@ -1100,6 +1110,7 @@ CONFIG_DEBUG_INFO=y
1100# CONFIG_BACKTRACE_SELF_TEST is not set 1110# CONFIG_BACKTRACE_SELF_TEST is not set
1101# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1111# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1102# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1112# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1113# CONFIG_LKDTM is not set
1103# CONFIG_FAULT_INJECTION is not set 1114# CONFIG_FAULT_INJECTION is not set
1104# CONFIG_LATENCYTOP is not set 1115# CONFIG_LATENCYTOP is not set
1105CONFIG_SYSCTL_SYSCALL_CHECK=y 1116CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 9e090f2c7e36..c1be26151021 100644
--- a/arch/powerpc/configs/mgsuvd_defconfig
+++ b/arch/powerpc/configs/mgsuvd_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:03 2010 4# Mon Apr 19 23:16:27 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,11 +89,6 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=17 91CONFIG_LOG_BUF_SHIFT=17
92CONFIG_GROUP_SCHED=y
93CONFIG_FAIR_GROUP_SCHED=y
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93CONFIG_SYSFS_DEPRECATED=y
99CONFIG_SYSFS_DEPRECATED_V2=y 94CONFIG_SYSFS_DEPRECATED_V2=y
@@ -104,6 +99,7 @@ CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y 99CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set 100# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set 101# CONFIG_RD_LZMA is not set
102# CONFIG_RD_LZO is not set
107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
108CONFIG_SYSCTL=y 104CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y 105CONFIG_ANON_INODES=y
@@ -309,6 +305,7 @@ CONFIG_ISA_DMA_API=y
309# Bus options 305# Bus options
310# 306#
311CONFIG_ZONE_DMA=y 307CONFIG_ZONE_DMA=y
308CONFIG_NEED_DMA_MAP_STATE=y
312CONFIG_FSL_SOC=y 309CONFIG_FSL_SOC=y
313# CONFIG_PCI is not set 310# CONFIG_PCI is not set
314# CONFIG_PCI_DOMAINS is not set 311# CONFIG_PCI_DOMAINS is not set
@@ -337,7 +334,6 @@ CONFIG_NET=y
337# Networking options 334# Networking options
338# 335#
339CONFIG_PACKET=y 336CONFIG_PACKET=y
340# CONFIG_PACKET_MMAP is not set
341CONFIG_UNIX=y 337CONFIG_UNIX=y
342CONFIG_XFRM=y 338CONFIG_XFRM=y
343# CONFIG_XFRM_USER is not set 339# CONFIG_XFRM_USER is not set
@@ -515,6 +511,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 511# UBI - Unsorted block images
516# 512#
517# CONFIG_MTD_UBI is not set 513# CONFIG_MTD_UBI is not set
514CONFIG_OF_FLATTREE=y
515CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 516CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 517CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 518# CONFIG_PARPORT is not set
@@ -542,6 +540,7 @@ CONFIG_HAVE_IDE=y
542# 540#
543# SCSI device support 541# SCSI device support
544# 542#
543CONFIG_SCSI_MOD=y
545# CONFIG_RAID_ATTRS is not set 544# CONFIG_RAID_ATTRS is not set
546# CONFIG_SCSI is not set 545# CONFIG_SCSI is not set
547# CONFIG_SCSI_DMA is not set 546# CONFIG_SCSI_DMA is not set
@@ -643,6 +642,7 @@ CONFIG_SERIAL_CORE=y
643CONFIG_SERIAL_CORE_CONSOLE=y 642CONFIG_SERIAL_CORE_CONSOLE=y
644CONFIG_SERIAL_CPM=y 643CONFIG_SERIAL_CPM=y
645CONFIG_SERIAL_CPM_CONSOLE=y 644CONFIG_SERIAL_CPM_CONSOLE=y
645# CONFIG_SERIAL_TIMBERDALE is not set
646# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 646# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
647CONFIG_UNIX98_PTYS=y 647CONFIG_UNIX98_PTYS=y
648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -801,6 +801,7 @@ CONFIG_JFFS2_ZLIB=y
801# CONFIG_JFFS2_LZO is not set 801# CONFIG_JFFS2_LZO is not set
802CONFIG_JFFS2_RTIME=y 802CONFIG_JFFS2_RTIME=y
803# CONFIG_JFFS2_RUBIN is not set 803# CONFIG_JFFS2_RUBIN is not set
804# CONFIG_LOGFS is not set
804CONFIG_CRAMFS=y 805CONFIG_CRAMFS=y
805# CONFIG_SQUASHFS is not set 806# CONFIG_SQUASHFS is not set
806# CONFIG_VXFS_FS is not set 807# CONFIG_VXFS_FS is not set
@@ -825,6 +826,7 @@ CONFIG_SUNRPC=y
825# CONFIG_RPCSEC_GSS_KRB5 is not set 826# CONFIG_RPCSEC_GSS_KRB5 is not set
826# CONFIG_RPCSEC_GSS_SPKM3 is not set 827# CONFIG_RPCSEC_GSS_SPKM3 is not set
827# CONFIG_SMB_FS is not set 828# CONFIG_SMB_FS is not set
829# CONFIG_CEPH_FS is not set
828# CONFIG_CIFS is not set 830# CONFIG_CIFS is not set
829# CONFIG_NCP_FS is not set 831# CONFIG_NCP_FS is not set
830# CONFIG_CODA_FS is not set 832# CONFIG_CODA_FS is not set
@@ -892,6 +894,7 @@ CONFIG_DEBUG_FS=y
892# CONFIG_DEBUG_KERNEL is not set 894# CONFIG_DEBUG_KERNEL is not set
893# CONFIG_DEBUG_MEMORY_INIT is not set 895# CONFIG_DEBUG_MEMORY_INIT is not set
894# CONFIG_RCU_CPU_STALL_DETECTOR is not set 896# CONFIG_RCU_CPU_STALL_DETECTOR is not set
897# CONFIG_LKDTM is not set
895# CONFIG_LATENCYTOP is not set 898# CONFIG_LATENCYTOP is not set
896# CONFIG_SYSCTL_SYSCALL_CHECK is not set 899# CONFIG_SYSCTL_SYSCALL_CHECK is not set
897CONFIG_HAVE_FUNCTION_TRACER=y 900CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 1315b775a6d2..27c63ceeb45a 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:04 2010 4# Mon Apr 19 23:16:28 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98# CONFIG_FAIR_GROUP_SCHED is not set
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -109,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -311,6 +307,7 @@ CONFIG_ISA_DMA_API=y
311# Bus options 307# Bus options
312# 308#
313CONFIG_ZONE_DMA=y 309CONFIG_ZONE_DMA=y
310# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_GENERIC_ISA_DMA=y 311CONFIG_GENERIC_ISA_DMA=y
315# CONFIG_PPC_INDIRECT_PCI is not set 312# CONFIG_PPC_INDIRECT_PCI is not set
316CONFIG_PCI=y 313CONFIG_PCI=y
@@ -319,7 +316,6 @@ CONFIG_PCI_SYSCALL=y
319# CONFIG_PCIEPORTBUS is not set 316# CONFIG_PCIEPORTBUS is not set
320CONFIG_ARCH_SUPPORTS_MSI=y 317CONFIG_ARCH_SUPPORTS_MSI=y
321# CONFIG_PCI_MSI is not set 318# CONFIG_PCI_MSI is not set
322# CONFIG_PCI_LEGACY is not set
323# CONFIG_PCI_STUB is not set 319# CONFIG_PCI_STUB is not set
324# CONFIG_PCI_IOV is not set 320# CONFIG_PCI_IOV is not set
325# CONFIG_PCCARD is not set 321# CONFIG_PCCARD is not set
@@ -345,7 +341,6 @@ CONFIG_NET=y
345# Networking options 341# Networking options
346# 342#
347CONFIG_PACKET=y 343CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 344CONFIG_UNIX=y
350CONFIG_XFRM=y 345CONFIG_XFRM=y
351CONFIG_XFRM_USER=y 346CONFIG_XFRM_USER=y
@@ -440,6 +435,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
440# CONFIG_SYS_HYPERVISOR is not set 435# CONFIG_SYS_HYPERVISOR is not set
441# CONFIG_CONNECTOR is not set 436# CONFIG_CONNECTOR is not set
442# CONFIG_MTD is not set 437# CONFIG_MTD is not set
438CONFIG_OF_FLATTREE=y
439CONFIG_OF_DYNAMIC=y
443CONFIG_OF_DEVICE=y 440CONFIG_OF_DEVICE=y
444CONFIG_OF_MDIO=y 441CONFIG_OF_MDIO=y
445# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
@@ -484,6 +481,7 @@ CONFIG_HAVE_IDE=y
484# 481#
485# SCSI device support 482# SCSI device support
486# 483#
484CONFIG_SCSI_MOD=y
487# CONFIG_RAID_ATTRS is not set 485# CONFIG_RAID_ATTRS is not set
488CONFIG_SCSI=y 486CONFIG_SCSI=y
489CONFIG_SCSI_DMA=y 487CONFIG_SCSI_DMA=y
@@ -605,6 +603,7 @@ CONFIG_SATA_MV=y
605# CONFIG_PATA_IT821X is not set 603# CONFIG_PATA_IT821X is not set
606# CONFIG_PATA_IT8213 is not set 604# CONFIG_PATA_IT8213 is not set
607# CONFIG_PATA_JMICRON is not set 605# CONFIG_PATA_JMICRON is not set
606# CONFIG_PATA_LEGACY is not set
608# CONFIG_PATA_TRIFLEX is not set 607# CONFIG_PATA_TRIFLEX is not set
609# CONFIG_PATA_MARVELL is not set 608# CONFIG_PATA_MARVELL is not set
610# CONFIG_PATA_MPIIX is not set 609# CONFIG_PATA_MPIIX is not set
@@ -696,6 +695,7 @@ CONFIG_NET_PCI=y
696# CONFIG_PCNET32 is not set 695# CONFIG_PCNET32 is not set
697# CONFIG_AMD8111_ETH is not set 696# CONFIG_AMD8111_ETH is not set
698# CONFIG_ADAPTEC_STARFIRE is not set 697# CONFIG_ADAPTEC_STARFIRE is not set
698# CONFIG_KSZ884X_PCI is not set
699# CONFIG_B44 is not set 699# CONFIG_B44 is not set
700# CONFIG_FORCEDETH is not set 700# CONFIG_FORCEDETH is not set
701CONFIG_E100=y 701CONFIG_E100=y
@@ -750,6 +750,8 @@ CONFIG_NETDEV_10000=y
750# CONFIG_CHELSIO_T1 is not set 750# CONFIG_CHELSIO_T1 is not set
751CONFIG_CHELSIO_T3_DEPENDS=y 751CONFIG_CHELSIO_T3_DEPENDS=y
752# CONFIG_CHELSIO_T3 is not set 752# CONFIG_CHELSIO_T3 is not set
753CONFIG_CHELSIO_T4_DEPENDS=y
754# CONFIG_CHELSIO_T4 is not set
753# CONFIG_ENIC is not set 755# CONFIG_ENIC is not set
754# CONFIG_IXGBE is not set 756# CONFIG_IXGBE is not set
755# CONFIG_IXGB is not set 757# CONFIG_IXGB is not set
@@ -762,6 +764,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_MLX4_CORE is not set 764# CONFIG_MLX4_CORE is not set
763# CONFIG_TEHUTI is not set 765# CONFIG_TEHUTI is not set
764# CONFIG_BNX2X is not set 766# CONFIG_BNX2X is not set
767# CONFIG_QLCNIC is not set
765# CONFIG_QLGE is not set 768# CONFIG_QLGE is not set
766# CONFIG_SFC is not set 769# CONFIG_SFC is not set
767# CONFIG_BE2NET is not set 770# CONFIG_BE2NET is not set
@@ -846,6 +849,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 849CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 850# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 851# CONFIG_SERIAL_OF_PLATFORM is not set
852# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 854CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -910,6 +914,7 @@ CONFIG_SSB_POSSIBLE=y
910# CONFIG_MFD_SM501 is not set 914# CONFIG_MFD_SM501 is not set
911# CONFIG_HTC_PASIC3 is not set 915# CONFIG_HTC_PASIC3 is not set
912# CONFIG_MFD_TMIO is not set 916# CONFIG_MFD_TMIO is not set
917# CONFIG_LPC_SCH is not set
913# CONFIG_REGULATOR is not set 918# CONFIG_REGULATOR is not set
914# CONFIG_MEDIA_SUPPORT is not set 919# CONFIG_MEDIA_SUPPORT is not set
915 920
@@ -918,6 +923,7 @@ CONFIG_SSB_POSSIBLE=y
918# 923#
919# CONFIG_AGP is not set 924# CONFIG_AGP is not set
920CONFIG_VGA_ARB=y 925CONFIG_VGA_ARB=y
926CONFIG_VGA_ARB_MAX_GPUS=16
921# CONFIG_DRM is not set 927# CONFIG_DRM is not set
922# CONFIG_VGASTATE is not set 928# CONFIG_VGASTATE is not set
923CONFIG_VIDEO_OUTPUT_CONTROL=y 929CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1044,6 +1050,7 @@ CONFIG_MISC_FILESYSTEMS=y
1044# CONFIG_BEFS_FS is not set 1050# CONFIG_BEFS_FS is not set
1045# CONFIG_BFS_FS is not set 1051# CONFIG_BFS_FS is not set
1046# CONFIG_EFS_FS is not set 1052# CONFIG_EFS_FS is not set
1053# CONFIG_LOGFS is not set
1047# CONFIG_CRAMFS is not set 1054# CONFIG_CRAMFS is not set
1048# CONFIG_SQUASHFS is not set 1055# CONFIG_SQUASHFS is not set
1049# CONFIG_VXFS_FS is not set 1056# CONFIG_VXFS_FS is not set
@@ -1066,6 +1073,7 @@ CONFIG_SUNRPC=y
1066# CONFIG_RPCSEC_GSS_KRB5 is not set 1073# CONFIG_RPCSEC_GSS_KRB5 is not set
1067# CONFIG_RPCSEC_GSS_SPKM3 is not set 1074# CONFIG_RPCSEC_GSS_SPKM3 is not set
1068# CONFIG_SMB_FS is not set 1075# CONFIG_SMB_FS is not set
1076# CONFIG_CEPH_FS is not set
1069# CONFIG_CIFS is not set 1077# CONFIG_CIFS is not set
1070# CONFIG_NCP_FS is not set 1078# CONFIG_NCP_FS is not set
1071# CONFIG_CODA_FS is not set 1079# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 9073778d3575..6875fb89377e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:05 2010 4# Mon Apr 19 23:16:29 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 102# CONFIG_BLK_DEV_INITRD is not set
@@ -301,6 +300,7 @@ CONFIG_ISA_DMA_API=y
301# Bus options 300# Bus options
302# 301#
303CONFIG_ZONE_DMA=y 302CONFIG_ZONE_DMA=y
303# CONFIG_NEED_DMA_MAP_STATE is not set
304CONFIG_PPC_INDIRECT_PCI=y 304CONFIG_PPC_INDIRECT_PCI=y
305CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
306CONFIG_PPC_PCI_CHOICE=y 306CONFIG_PPC_PCI_CHOICE=y
@@ -311,7 +311,6 @@ CONFIG_PCI_8260=y
311# CONFIG_PCIEPORTBUS is not set 311# CONFIG_PCIEPORTBUS is not set
312CONFIG_ARCH_SUPPORTS_MSI=y 312CONFIG_ARCH_SUPPORTS_MSI=y
313# CONFIG_PCI_MSI is not set 313# CONFIG_PCI_MSI is not set
314# CONFIG_PCI_LEGACY is not set
315# CONFIG_PCI_DEBUG is not set 314# CONFIG_PCI_DEBUG is not set
316# CONFIG_PCI_STUB is not set 315# CONFIG_PCI_STUB is not set
317# CONFIG_PCI_IOV is not set 316# CONFIG_PCI_IOV is not set
@@ -338,7 +337,6 @@ CONFIG_NET=y
338# Networking options 337# Networking options
339# 338#
340CONFIG_PACKET=y 339CONFIG_PACKET=y
341# CONFIG_PACKET_MMAP is not set
342CONFIG_UNIX=y 340CONFIG_UNIX=y
343CONFIG_XFRM=y 341CONFIG_XFRM=y
344# CONFIG_XFRM_USER is not set 342# CONFIG_XFRM_USER is not set
@@ -540,6 +538,8 @@ CONFIG_MTD_PHYSMAP_OF=y
540# UBI - Unsorted block images 538# UBI - Unsorted block images
541# 539#
542# CONFIG_MTD_UBI is not set 540# CONFIG_MTD_UBI is not set
541CONFIG_OF_FLATTREE=y
542CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 543CONFIG_OF_DEVICE=y
544CONFIG_OF_GPIO=y 544CONFIG_OF_GPIO=y
545CONFIG_OF_MDIO=y 545CONFIG_OF_MDIO=y
@@ -569,6 +569,7 @@ CONFIG_HAVE_IDE=y
569# 569#
570# SCSI device support 570# SCSI device support
571# 571#
572CONFIG_SCSI_MOD=y
572# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
573# CONFIG_SCSI is not set 574# CONFIG_SCSI is not set
574# CONFIG_SCSI_DMA is not set 575# CONFIG_SCSI_DMA is not set
@@ -674,6 +675,8 @@ CONFIG_NETDEV_10000=y
674# CONFIG_CHELSIO_T1 is not set 675# CONFIG_CHELSIO_T1 is not set
675CONFIG_CHELSIO_T3_DEPENDS=y 676CONFIG_CHELSIO_T3_DEPENDS=y
676# CONFIG_CHELSIO_T3 is not set 677# CONFIG_CHELSIO_T3 is not set
678CONFIG_CHELSIO_T4_DEPENDS=y
679# CONFIG_CHELSIO_T4 is not set
677# CONFIG_ENIC is not set 680# CONFIG_ENIC is not set
678# CONFIG_IXGBE is not set 681# CONFIG_IXGBE is not set
679# CONFIG_IXGB is not set 682# CONFIG_IXGB is not set
@@ -686,6 +689,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
686# CONFIG_MLX4_CORE is not set 689# CONFIG_MLX4_CORE is not set
687# CONFIG_TEHUTI is not set 690# CONFIG_TEHUTI is not set
688# CONFIG_BNX2X is not set 691# CONFIG_BNX2X is not set
692# CONFIG_QLCNIC is not set
689# CONFIG_QLGE is not set 693# CONFIG_QLGE is not set
690# CONFIG_SFC is not set 694# CONFIG_SFC is not set
691# CONFIG_BE2NET is not set 695# CONFIG_BE2NET is not set
@@ -797,6 +801,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
797CONFIG_SERIAL_CPM=y 801CONFIG_SERIAL_CPM=y
798CONFIG_SERIAL_CPM_CONSOLE=y 802CONFIG_SERIAL_CPM_CONSOLE=y
799# CONFIG_SERIAL_JSM is not set 803# CONFIG_SERIAL_JSM is not set
804# CONFIG_SERIAL_TIMBERDALE is not set
800# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 805# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
801CONFIG_UNIX98_PTYS=y 806CONFIG_UNIX98_PTYS=y
802# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 807# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,7 +830,9 @@ CONFIG_GPIOLIB=y
825# 830#
826# Memory mapped GPIO expanders: 831# Memory mapped GPIO expanders:
827# 832#
833# CONFIG_GPIO_IT8761E is not set
828# CONFIG_GPIO_XILINX is not set 834# CONFIG_GPIO_XILINX is not set
835# CONFIG_GPIO_SCH is not set
829 836
830# 837#
831# I2C GPIO expanders: 838# I2C GPIO expanders:
@@ -864,6 +871,8 @@ CONFIG_SSB_POSSIBLE=y
864# CONFIG_MFD_SM501 is not set 871# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set 872# CONFIG_HTC_PASIC3 is not set
866# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
874# CONFIG_MFD_TIMBERDALE is not set
875# CONFIG_LPC_SCH is not set
867# CONFIG_REGULATOR is not set 876# CONFIG_REGULATOR is not set
868# CONFIG_MEDIA_SUPPORT is not set 877# CONFIG_MEDIA_SUPPORT is not set
869 878
@@ -872,6 +881,7 @@ CONFIG_SSB_POSSIBLE=y
872# 881#
873# CONFIG_AGP is not set 882# CONFIG_AGP is not set
874CONFIG_VGA_ARB=y 883CONFIG_VGA_ARB=y
884CONFIG_VGA_ARB_MAX_GPUS=16
875# CONFIG_DRM is not set 885# CONFIG_DRM is not set
876# CONFIG_VGASTATE is not set 886# CONFIG_VGASTATE is not set
877# CONFIG_VIDEO_OUTPUT_CONTROL is not set 887# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -933,6 +943,7 @@ CONFIG_AUTOFS4_FS=y
933# 943#
934# Caches 944# Caches
935# 945#
946# CONFIG_FSCACHE is not set
936 947
937# 948#
938# CD-ROM/DVD Filesystems 949# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 05bec4835687..bbe5ae61d979 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:30 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,14 +98,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 104# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +107,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 107CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 108# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 109# CONFIG_RD_LZMA is not set
110# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 113CONFIG_ANON_INODES=y
@@ -126,7 +121,7 @@ CONFIG_BUG=y
126CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
127CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
128CONFIG_FUTEX=y 123CONFIG_FUTEX=y
129# CONFIG_EPOLL is not set 124CONFIG_EPOLL=y
130CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
131CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
132CONFIG_EVENTFD=y 127CONFIG_EVENTFD=y
@@ -331,6 +326,7 @@ CONFIG_ISA_DMA_API=y
331# Bus options 326# Bus options
332# 327#
333CONFIG_ZONE_DMA=y 328CONFIG_ZONE_DMA=y
329# CONFIG_NEED_DMA_MAP_STATE is not set
334CONFIG_GENERIC_ISA_DMA=y 330CONFIG_GENERIC_ISA_DMA=y
335CONFIG_PPC_INDIRECT_PCI=y 331CONFIG_PPC_INDIRECT_PCI=y
336CONFIG_FSL_SOC=y 332CONFIG_FSL_SOC=y
@@ -344,7 +340,6 @@ CONFIG_PCI_SYSCALL=y
344# CONFIG_PCIEPORTBUS is not set 340# CONFIG_PCIEPORTBUS is not set
345CONFIG_ARCH_SUPPORTS_MSI=y 341CONFIG_ARCH_SUPPORTS_MSI=y
346# CONFIG_PCI_MSI is not set 342# CONFIG_PCI_MSI is not set
347# CONFIG_PCI_LEGACY is not set
348# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
350# CONFIG_PCCARD is not set 345# CONFIG_PCCARD is not set
@@ -370,7 +365,6 @@ CONFIG_NET=y
370# Networking options 365# Networking options
371# 366#
372CONFIG_PACKET=y 367CONFIG_PACKET=y
373# CONFIG_PACKET_MMAP is not set
374CONFIG_UNIX=y 368CONFIG_UNIX=y
375CONFIG_XFRM=y 369CONFIG_XFRM=y
376CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -560,6 +554,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
560# UBI - Unsorted block images 554# UBI - Unsorted block images
561# 555#
562# CONFIG_MTD_UBI is not set 556# CONFIG_MTD_UBI is not set
557CONFIG_OF_FLATTREE=y
558CONFIG_OF_DYNAMIC=y
563CONFIG_OF_DEVICE=y 559CONFIG_OF_DEVICE=y
564CONFIG_OF_GPIO=y 560CONFIG_OF_GPIO=y
565CONFIG_OF_I2C=y 561CONFIG_OF_I2C=y
@@ -597,6 +593,7 @@ CONFIG_MISC_DEVICES=y
597# CONFIG_ENCLOSURE_SERVICES is not set 593# CONFIG_ENCLOSURE_SERVICES is not set
598# CONFIG_HP_ILO is not set 594# CONFIG_HP_ILO is not set
599# CONFIG_ISL29003 is not set 595# CONFIG_ISL29003 is not set
596# CONFIG_SENSORS_TSL2550 is not set
600# CONFIG_DS1682 is not set 597# CONFIG_DS1682 is not set
601# CONFIG_C2PORT is not set 598# CONFIG_C2PORT is not set
602 599
@@ -614,6 +611,7 @@ CONFIG_HAVE_IDE=y
614# 611#
615# SCSI device support 612# SCSI device support
616# 613#
614CONFIG_SCSI_MOD=y
617# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
618CONFIG_SCSI=y 616CONFIG_SCSI=y
619CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -712,7 +710,7 @@ CONFIG_ATA_SFF=y
712# CONFIG_SATA_QSTOR is not set 710# CONFIG_SATA_QSTOR is not set
713# CONFIG_SATA_PROMISE is not set 711# CONFIG_SATA_PROMISE is not set
714# CONFIG_SATA_SX4 is not set 712# CONFIG_SATA_SX4 is not set
715# CONFIG_SATA_SIL is not set 713CONFIG_SATA_SIL=y
716# CONFIG_SATA_SIS is not set 714# CONFIG_SATA_SIS is not set
717# CONFIG_SATA_ULI is not set 715# CONFIG_SATA_ULI is not set
718# CONFIG_SATA_VIA is not set 716# CONFIG_SATA_VIA is not set
@@ -737,6 +735,7 @@ CONFIG_ATA_SFF=y
737# CONFIG_PATA_IT821X is not set 735# CONFIG_PATA_IT821X is not set
738# CONFIG_PATA_IT8213 is not set 736# CONFIG_PATA_IT8213 is not set
739# CONFIG_PATA_JMICRON is not set 737# CONFIG_PATA_JMICRON is not set
738# CONFIG_PATA_LEGACY is not set
740# CONFIG_PATA_TRIFLEX is not set 739# CONFIG_PATA_TRIFLEX is not set
741# CONFIG_PATA_MARVELL is not set 740# CONFIG_PATA_MARVELL is not set
742# CONFIG_PATA_MPIIX is not set 741# CONFIG_PATA_MPIIX is not set
@@ -863,6 +862,8 @@ CONFIG_NETDEV_10000=y
863# CONFIG_CHELSIO_T1 is not set 862# CONFIG_CHELSIO_T1 is not set
864CONFIG_CHELSIO_T3_DEPENDS=y 863CONFIG_CHELSIO_T3_DEPENDS=y
865# CONFIG_CHELSIO_T3 is not set 864# CONFIG_CHELSIO_T3 is not set
865CONFIG_CHELSIO_T4_DEPENDS=y
866# CONFIG_CHELSIO_T4 is not set
866# CONFIG_ENIC is not set 867# CONFIG_ENIC is not set
867# CONFIG_IXGBE is not set 868# CONFIG_IXGBE is not set
868# CONFIG_IXGB is not set 869# CONFIG_IXGB is not set
@@ -875,6 +876,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
875# CONFIG_MLX4_CORE is not set 876# CONFIG_MLX4_CORE is not set
876# CONFIG_TEHUTI is not set 877# CONFIG_TEHUTI is not set
877# CONFIG_BNX2X is not set 878# CONFIG_BNX2X is not set
879# CONFIG_QLCNIC is not set
878# CONFIG_QLGE is not set 880# CONFIG_QLGE is not set
879# CONFIG_SFC is not set 881# CONFIG_SFC is not set
880# CONFIG_BE2NET is not set 882# CONFIG_BE2NET is not set
@@ -970,6 +972,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
970# CONFIG_SERIAL_JSM is not set 972# CONFIG_SERIAL_JSM is not set
971# CONFIG_SERIAL_OF_PLATFORM is not set 973# CONFIG_SERIAL_OF_PLATFORM is not set
972# CONFIG_SERIAL_QE is not set 974# CONFIG_SERIAL_QE is not set
975# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 976# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 977CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 978# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,8 +983,6 @@ CONFIG_LEGACY_PTY_COUNT=256
980CONFIG_HW_RANDOM=y 983CONFIG_HW_RANDOM=y
981# CONFIG_HW_RANDOM_TIMERIOMEM is not set 984# CONFIG_HW_RANDOM_TIMERIOMEM is not set
982# CONFIG_NVRAM is not set 985# CONFIG_NVRAM is not set
983CONFIG_GEN_RTC=y
984# CONFIG_GEN_RTC_X is not set
985# CONFIG_R3964 is not set 986# CONFIG_R3964 is not set
986# CONFIG_APPLICOM is not set 987# CONFIG_APPLICOM is not set
987# CONFIG_RAW_DRIVER is not set 988# CONFIG_RAW_DRIVER is not set
@@ -1022,6 +1023,7 @@ CONFIG_I2C_HELPER_AUTO=y
1022CONFIG_I2C_MPC=y 1023CONFIG_I2C_MPC=y
1023# CONFIG_I2C_OCORES is not set 1024# CONFIG_I2C_OCORES is not set
1024# CONFIG_I2C_SIMTEC is not set 1025# CONFIG_I2C_SIMTEC is not set
1026# CONFIG_I2C_XILINX is not set
1025 1027
1026# 1028#
1027# External I2C/SMBus adapter drivers 1029# External I2C/SMBus adapter drivers
@@ -1035,15 +1037,9 @@ CONFIG_I2C_MPC=y
1035# 1037#
1036# CONFIG_I2C_PCA_PLATFORM is not set 1038# CONFIG_I2C_PCA_PLATFORM is not set
1037# CONFIG_I2C_STUB is not set 1039# CONFIG_I2C_STUB is not set
1038
1039#
1040# Miscellaneous I2C Chip support
1041#
1042# CONFIG_SENSORS_TSL2550 is not set
1043# CONFIG_I2C_DEBUG_CORE is not set 1040# CONFIG_I2C_DEBUG_CORE is not set
1044# CONFIG_I2C_DEBUG_ALGO is not set 1041# CONFIG_I2C_DEBUG_ALGO is not set
1045# CONFIG_I2C_DEBUG_BUS is not set 1042# CONFIG_I2C_DEBUG_BUS is not set
1046# CONFIG_I2C_DEBUG_CHIP is not set
1047# CONFIG_SPI is not set 1043# CONFIG_SPI is not set
1048 1044
1049# 1045#
@@ -1058,14 +1054,18 @@ CONFIG_GPIOLIB=y
1058# 1054#
1059# Memory mapped GPIO expanders: 1055# Memory mapped GPIO expanders:
1060# 1056#
1057# CONFIG_GPIO_IT8761E is not set
1061# CONFIG_GPIO_XILINX is not set 1058# CONFIG_GPIO_XILINX is not set
1059# CONFIG_GPIO_SCH is not set
1062 1060
1063# 1061#
1064# I2C GPIO expanders: 1062# I2C GPIO expanders:
1065# 1063#
1064# CONFIG_GPIO_MAX7300 is not set
1066# CONFIG_GPIO_MAX732X is not set 1065# CONFIG_GPIO_MAX732X is not set
1067# CONFIG_GPIO_PCA953X is not set 1066# CONFIG_GPIO_PCA953X is not set
1068# CONFIG_GPIO_PCF857X is not set 1067# CONFIG_GPIO_PCF857X is not set
1068# CONFIG_GPIO_ADP5588 is not set
1069 1069
1070# 1070#
1071# PCI GPIO expanders: 1071# PCI GPIO expanders:
@@ -1098,10 +1098,11 @@ CONFIG_HWMON=y
1098# CONFIG_SENSORS_ADM1029 is not set 1098# CONFIG_SENSORS_ADM1029 is not set
1099# CONFIG_SENSORS_ADM1031 is not set 1099# CONFIG_SENSORS_ADM1031 is not set
1100# CONFIG_SENSORS_ADM9240 is not set 1100# CONFIG_SENSORS_ADM9240 is not set
1101# CONFIG_SENSORS_ADT7411 is not set
1101# CONFIG_SENSORS_ADT7462 is not set 1102# CONFIG_SENSORS_ADT7462 is not set
1102# CONFIG_SENSORS_ADT7470 is not set 1103# CONFIG_SENSORS_ADT7470 is not set
1103# CONFIG_SENSORS_ADT7473 is not set
1104# CONFIG_SENSORS_ADT7475 is not set 1104# CONFIG_SENSORS_ADT7475 is not set
1105# CONFIG_SENSORS_ASC7621 is not set
1105# CONFIG_SENSORS_ATXP1 is not set 1106# CONFIG_SENSORS_ATXP1 is not set
1106# CONFIG_SENSORS_DS1621 is not set 1107# CONFIG_SENSORS_DS1621 is not set
1107# CONFIG_SENSORS_I5K_AMB is not set 1108# CONFIG_SENSORS_I5K_AMB is not set
@@ -1139,6 +1140,7 @@ CONFIG_HWMON=y
1139# CONFIG_SENSORS_SMSC47M192 is not set 1140# CONFIG_SENSORS_SMSC47M192 is not set
1140# CONFIG_SENSORS_SMSC47B397 is not set 1141# CONFIG_SENSORS_SMSC47B397 is not set
1141# CONFIG_SENSORS_ADS7828 is not set 1142# CONFIG_SENSORS_ADS7828 is not set
1143# CONFIG_SENSORS_AMC6821 is not set
1142# CONFIG_SENSORS_THMC50 is not set 1144# CONFIG_SENSORS_THMC50 is not set
1143# CONFIG_SENSORS_TMP401 is not set 1145# CONFIG_SENSORS_TMP401 is not set
1144# CONFIG_SENSORS_TMP421 is not set 1146# CONFIG_SENSORS_TMP421 is not set
@@ -1186,19 +1188,24 @@ CONFIG_SSB_POSSIBLE=y
1186# Multifunction device drivers 1188# Multifunction device drivers
1187# 1189#
1188# CONFIG_MFD_CORE is not set 1190# CONFIG_MFD_CORE is not set
1191# CONFIG_MFD_88PM860X is not set
1189# CONFIG_MFD_SM501 is not set 1192# CONFIG_MFD_SM501 is not set
1190# CONFIG_HTC_PASIC3 is not set 1193# CONFIG_HTC_PASIC3 is not set
1194# CONFIG_HTC_I2CPLD is not set
1191# CONFIG_TPS65010 is not set 1195# CONFIG_TPS65010 is not set
1192# CONFIG_TWL4030_CORE is not set 1196# CONFIG_TWL4030_CORE is not set
1193# CONFIG_MFD_TMIO is not set 1197# CONFIG_MFD_TMIO is not set
1194# CONFIG_PMIC_DA903X is not set 1198# CONFIG_PMIC_DA903X is not set
1195# CONFIG_PMIC_ADP5520 is not set 1199# CONFIG_PMIC_ADP5520 is not set
1200# CONFIG_MFD_MAX8925 is not set
1196# CONFIG_MFD_WM8400 is not set 1201# CONFIG_MFD_WM8400 is not set
1197# CONFIG_MFD_WM831X is not set 1202# CONFIG_MFD_WM831X is not set
1198# CONFIG_MFD_WM8350_I2C is not set 1203# CONFIG_MFD_WM8350_I2C is not set
1204# CONFIG_MFD_WM8994 is not set
1199# CONFIG_MFD_PCF50633 is not set 1205# CONFIG_MFD_PCF50633 is not set
1200# CONFIG_AB3100_CORE is not set 1206# CONFIG_AB3100_CORE is not set
1201# CONFIG_MFD_88PM8607 is not set 1207# CONFIG_MFD_TIMBERDALE is not set
1208# CONFIG_LPC_SCH is not set
1202# CONFIG_REGULATOR is not set 1209# CONFIG_REGULATOR is not set
1203# CONFIG_MEDIA_SUPPORT is not set 1210# CONFIG_MEDIA_SUPPORT is not set
1204 1211
@@ -1207,6 +1214,7 @@ CONFIG_SSB_POSSIBLE=y
1207# 1214#
1208# CONFIG_AGP is not set 1215# CONFIG_AGP is not set
1209CONFIG_VGA_ARB=y 1216CONFIG_VGA_ARB=y
1217CONFIG_VGA_ARB_MAX_GPUS=16
1210# CONFIG_DRM is not set 1218# CONFIG_DRM is not set
1211# CONFIG_VGASTATE is not set 1219# CONFIG_VGASTATE is not set
1212CONFIG_VIDEO_OUTPUT_CONTROL=m 1220CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1232,6 +1240,7 @@ CONFIG_USB_HID=y
1232# 1240#
1233# Special HID drivers 1241# Special HID drivers
1234# 1242#
1243# CONFIG_HID_3M_PCT is not set
1235CONFIG_HID_A4TECH=y 1244CONFIG_HID_A4TECH=y
1236CONFIG_HID_APPLE=y 1245CONFIG_HID_APPLE=y
1237CONFIG_HID_BELKIN=y 1246CONFIG_HID_BELKIN=y
@@ -1247,14 +1256,19 @@ CONFIG_HID_GYRATION=y
1247CONFIG_HID_LOGITECH=y 1256CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1257# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1258# CONFIG_LOGIRUMBLEPAD2_FF is not set
1259# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1260CONFIG_HID_MICROSOFT=y
1261# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1262CONFIG_HID_MONTEREY=y
1252# CONFIG_HID_NTRIG is not set 1263# CONFIG_HID_NTRIG is not set
1264# CONFIG_HID_ORTEK is not set
1253CONFIG_HID_PANTHERLORD=y 1265CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1266# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1267CONFIG_HID_PETALYNX=y
1268# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1269CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1270CONFIG_HID_SONY=y
1271# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1272CONFIG_HID_SUNPLUS=y
1259# CONFIG_HID_GREENASIA is not set 1273# CONFIG_HID_GREENASIA is not set
1260# CONFIG_HID_SMARTJOYPLUS is not set 1274# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1344,7 +1358,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1344# CONFIG_USB_RIO500 is not set 1358# CONFIG_USB_RIO500 is not set
1345# CONFIG_USB_LEGOTOWER is not set 1359# CONFIG_USB_LEGOTOWER is not set
1346# CONFIG_USB_LCD is not set 1360# CONFIG_USB_LCD is not set
1347# CONFIG_USB_BERRY_CHARGE is not set
1348# CONFIG_USB_LED is not set 1361# CONFIG_USB_LED is not set
1349# CONFIG_USB_CYPRESS_CY7C63 is not set 1362# CONFIG_USB_CYPRESS_CY7C63 is not set
1350# CONFIG_USB_CYTHERM is not set 1363# CONFIG_USB_CYTHERM is not set
@@ -1357,7 +1370,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1357# CONFIG_USB_IOWARRIOR is not set 1370# CONFIG_USB_IOWARRIOR is not set
1358# CONFIG_USB_TEST is not set 1371# CONFIG_USB_TEST is not set
1359# CONFIG_USB_ISIGHTFW is not set 1372# CONFIG_USB_ISIGHTFW is not set
1360# CONFIG_USB_VST is not set
1361# CONFIG_USB_GADGET is not set 1373# CONFIG_USB_GADGET is not set
1362 1374
1363# 1375#
@@ -1372,7 +1384,65 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1372# CONFIG_ACCESSIBILITY is not set 1384# CONFIG_ACCESSIBILITY is not set
1373# CONFIG_INFINIBAND is not set 1385# CONFIG_INFINIBAND is not set
1374# CONFIG_EDAC is not set 1386# CONFIG_EDAC is not set
1375# CONFIG_RTC_CLASS is not set 1387CONFIG_RTC_LIB=y
1388CONFIG_RTC_CLASS=y
1389CONFIG_RTC_HCTOSYS=y
1390CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1391# CONFIG_RTC_DEBUG is not set
1392
1393#
1394# RTC interfaces
1395#
1396CONFIG_RTC_INTF_SYSFS=y
1397CONFIG_RTC_INTF_PROC=y
1398CONFIG_RTC_INTF_DEV=y
1399# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1400# CONFIG_RTC_DRV_TEST is not set
1401
1402#
1403# I2C RTC drivers
1404#
1405CONFIG_RTC_DRV_DS1307=y
1406CONFIG_RTC_DRV_DS1374=y
1407# CONFIG_RTC_DRV_DS1672 is not set
1408# CONFIG_RTC_DRV_MAX6900 is not set
1409# CONFIG_RTC_DRV_RS5C372 is not set
1410# CONFIG_RTC_DRV_ISL1208 is not set
1411# CONFIG_RTC_DRV_X1205 is not set
1412# CONFIG_RTC_DRV_PCF8563 is not set
1413# CONFIG_RTC_DRV_PCF8583 is not set
1414# CONFIG_RTC_DRV_M41T80 is not set
1415# CONFIG_RTC_DRV_BQ32K is not set
1416# CONFIG_RTC_DRV_S35390A is not set
1417# CONFIG_RTC_DRV_FM3130 is not set
1418# CONFIG_RTC_DRV_RX8581 is not set
1419# CONFIG_RTC_DRV_RX8025 is not set
1420
1421#
1422# SPI RTC drivers
1423#
1424
1425#
1426# Platform RTC drivers
1427#
1428# CONFIG_RTC_DRV_CMOS is not set
1429# CONFIG_RTC_DRV_DS1286 is not set
1430# CONFIG_RTC_DRV_DS1511 is not set
1431# CONFIG_RTC_DRV_DS1553 is not set
1432# CONFIG_RTC_DRV_DS1742 is not set
1433# CONFIG_RTC_DRV_STK17TA8 is not set
1434# CONFIG_RTC_DRV_M48T86 is not set
1435# CONFIG_RTC_DRV_M48T35 is not set
1436# CONFIG_RTC_DRV_M48T59 is not set
1437# CONFIG_RTC_DRV_MSM6242 is not set
1438# CONFIG_RTC_DRV_BQ4802 is not set
1439# CONFIG_RTC_DRV_RP5C01 is not set
1440# CONFIG_RTC_DRV_V3020 is not set
1441
1442#
1443# on-CPU RTC drivers
1444#
1445# CONFIG_RTC_DRV_GENERIC is not set
1376# CONFIG_DMADEVICES is not set 1446# CONFIG_DMADEVICES is not set
1377# CONFIG_AUXDISPLAY is not set 1447# CONFIG_AUXDISPLAY is not set
1378# CONFIG_UIO is not set 1448# CONFIG_UIO is not set
@@ -1453,6 +1523,7 @@ CONFIG_MISC_FILESYSTEMS=y
1453# CONFIG_BFS_FS is not set 1523# CONFIG_BFS_FS is not set
1454# CONFIG_EFS_FS is not set 1524# CONFIG_EFS_FS is not set
1455# CONFIG_JFFS2_FS is not set 1525# CONFIG_JFFS2_FS is not set
1526# CONFIG_LOGFS is not set
1456# CONFIG_CRAMFS is not set 1527# CONFIG_CRAMFS is not set
1457# CONFIG_SQUASHFS is not set 1528# CONFIG_SQUASHFS is not set
1458# CONFIG_VXFS_FS is not set 1529# CONFIG_VXFS_FS is not set
@@ -1479,6 +1550,7 @@ CONFIG_SUNRPC_GSS=y
1479CONFIG_RPCSEC_GSS_KRB5=y 1550CONFIG_RPCSEC_GSS_KRB5=y
1480# CONFIG_RPCSEC_GSS_SPKM3 is not set 1551# CONFIG_RPCSEC_GSS_SPKM3 is not set
1481# CONFIG_SMB_FS is not set 1552# CONFIG_SMB_FS is not set
1553# CONFIG_CEPH_FS is not set
1482# CONFIG_CIFS is not set 1554# CONFIG_CIFS is not set
1483# CONFIG_NCP_FS is not set 1555# CONFIG_NCP_FS is not set
1484# CONFIG_CODA_FS is not set 1556# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 8f35f8049c92..cfebef9f9123 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -103,14 +107,8 @@ CONFIG_RCU_FANOUT=32
103CONFIG_IKCONFIG=y 107CONFIG_IKCONFIG=y
104CONFIG_IKCONFIG_PROC=y 108CONFIG_IKCONFIG_PROC=y
105CONFIG_LOG_BUF_SHIFT=14 109CONFIG_LOG_BUF_SHIFT=14
106CONFIG_GROUP_SCHED=y
107# CONFIG_FAIR_GROUP_SCHED is not set
108# CONFIG_RT_GROUP_SCHED is not set
109CONFIG_USER_SCHED=y
110# CONFIG_CGROUP_SCHED is not set
111# CONFIG_CGROUPS is not set 110# CONFIG_CGROUPS is not set
112CONFIG_SYSFS_DEPRECATED=y 111# CONFIG_SYSFS_DEPRECATED_V2 is not set
113CONFIG_SYSFS_DEPRECATED_V2=y
114# CONFIG_RELAY is not set 112# CONFIG_RELAY is not set
115# CONFIG_NAMESPACES is not set 113# CONFIG_NAMESPACES is not set
116CONFIG_BLK_DEV_INITRD=y 114CONFIG_BLK_DEV_INITRD=y
@@ -118,6 +116,7 @@ CONFIG_INITRAMFS_SOURCE=""
118CONFIG_RD_GZIP=y 116CONFIG_RD_GZIP=y
119# CONFIG_RD_BZIP2 is not set 117# CONFIG_RD_BZIP2 is not set
120# CONFIG_RD_LZMA is not set 118# CONFIG_RD_LZMA is not set
119# CONFIG_RD_LZO is not set
121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
122CONFIG_SYSCTL=y 121CONFIG_SYSCTL=y
123CONFIG_ANON_INODES=y 122CONFIG_ANON_INODES=y
@@ -334,6 +333,7 @@ CONFIG_ISA_DMA_API=y
334# Bus options 333# Bus options
335# 334#
336CONFIG_ZONE_DMA=y 335CONFIG_ZONE_DMA=y
336# CONFIG_NEED_DMA_MAP_STATE is not set
337CONFIG_GENERIC_ISA_DMA=y 337CONFIG_GENERIC_ISA_DMA=y
338CONFIG_PPC_INDIRECT_PCI=y 338CONFIG_PPC_INDIRECT_PCI=y
339CONFIG_FSL_SOC=y 339CONFIG_FSL_SOC=y
@@ -345,7 +345,6 @@ CONFIG_PCI_SYSCALL=y
345# CONFIG_PCIEPORTBUS is not set 345# CONFIG_PCIEPORTBUS is not set
346CONFIG_ARCH_SUPPORTS_MSI=y 346CONFIG_ARCH_SUPPORTS_MSI=y
347CONFIG_PCI_MSI=y 347CONFIG_PCI_MSI=y
348# CONFIG_PCI_LEGACY is not set
349# CONFIG_PCI_DEBUG is not set 348# CONFIG_PCI_DEBUG is not set
350# CONFIG_PCI_STUB is not set 349# CONFIG_PCI_STUB is not set
351# CONFIG_PCI_IOV is not set 350# CONFIG_PCI_IOV is not set
@@ -376,7 +375,6 @@ CONFIG_NET=y
376# Networking options 375# Networking options
377# 376#
378CONFIG_PACKET=y 377CONFIG_PACKET=y
379# CONFIG_PACKET_MMAP is not set
380CONFIG_UNIX=y 378CONFIG_UNIX=y
381CONFIG_XFRM=y 379CONFIG_XFRM=y
382CONFIG_XFRM_USER=y 380CONFIG_XFRM_USER=y
@@ -509,6 +507,8 @@ CONFIG_EXTRA_FIRMWARE=""
509# CONFIG_SYS_HYPERVISOR is not set 507# CONFIG_SYS_HYPERVISOR is not set
510# CONFIG_CONNECTOR is not set 508# CONFIG_CONNECTOR is not set
511# CONFIG_MTD is not set 509# CONFIG_MTD is not set
510CONFIG_OF_FLATTREE=y
511CONFIG_OF_DYNAMIC=y
512CONFIG_OF_DEVICE=y 512CONFIG_OF_DEVICE=y
513CONFIG_OF_GPIO=y 513CONFIG_OF_GPIO=y
514CONFIG_OF_I2C=y 514CONFIG_OF_I2C=y
@@ -546,6 +546,7 @@ CONFIG_MISC_DEVICES=y
546# CONFIG_ENCLOSURE_SERVICES is not set 546# CONFIG_ENCLOSURE_SERVICES is not set
547# CONFIG_HP_ILO is not set 547# CONFIG_HP_ILO is not set
548# CONFIG_ISL29003 is not set 548# CONFIG_ISL29003 is not set
549# CONFIG_SENSORS_TSL2550 is not set
549# CONFIG_DS1682 is not set 550# CONFIG_DS1682 is not set
550# CONFIG_C2PORT is not set 551# CONFIG_C2PORT is not set
551 552
@@ -563,6 +564,7 @@ CONFIG_HAVE_IDE=y
563# 564#
564# SCSI device support 565# SCSI device support
565# 566#
567CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 568# CONFIG_RAID_ATTRS is not set
567CONFIG_SCSI=y 569CONFIG_SCSI=y
568CONFIG_SCSI_DMA=y 570CONFIG_SCSI_DMA=y
@@ -687,6 +689,7 @@ CONFIG_PATA_ALI=y
687# CONFIG_PATA_IT821X is not set 689# CONFIG_PATA_IT821X is not set
688# CONFIG_PATA_IT8213 is not set 690# CONFIG_PATA_IT8213 is not set
689# CONFIG_PATA_JMICRON is not set 691# CONFIG_PATA_JMICRON is not set
692# CONFIG_PATA_LEGACY is not set
690# CONFIG_PATA_TRIFLEX is not set 693# CONFIG_PATA_TRIFLEX is not set
691# CONFIG_PATA_MARVELL is not set 694# CONFIG_PATA_MARVELL is not set
692# CONFIG_PATA_MPIIX is not set 695# CONFIG_PATA_MPIIX is not set
@@ -817,8 +820,11 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 821CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 822# CONFIG_CHELSIO_T3 is not set
823CONFIG_CHELSIO_T4_DEPENDS=y
824# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 825# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 826# CONFIG_IXGBE is not set
827# CONFIG_IXGBEVF is not set
822# CONFIG_IXGB is not set 828# CONFIG_IXGB is not set
823# CONFIG_S2IO is not set 829# CONFIG_S2IO is not set
824# CONFIG_VXGE is not set 830# CONFIG_VXGE is not set
@@ -829,6 +835,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 835# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 836# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 837# CONFIG_BNX2X is not set
838# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 839# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 840# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 841# CONFIG_BE2NET is not set
@@ -941,6 +948,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
941# CONFIG_SERIAL_JSM is not set 948# CONFIG_SERIAL_JSM is not set
942# CONFIG_SERIAL_OF_PLATFORM is not set 949# CONFIG_SERIAL_OF_PLATFORM is not set
943CONFIG_SERIAL_QE=m 950CONFIG_SERIAL_QE=m
951# CONFIG_SERIAL_TIMBERDALE is not set
944# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 952# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
945CONFIG_UNIX98_PTYS=y 953CONFIG_UNIX98_PTYS=y
946# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 954# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -993,6 +1001,7 @@ CONFIG_I2C_CPM=m
993CONFIG_I2C_MPC=y 1001CONFIG_I2C_MPC=y
994# CONFIG_I2C_OCORES is not set 1002# CONFIG_I2C_OCORES is not set
995# CONFIG_I2C_SIMTEC is not set 1003# CONFIG_I2C_SIMTEC is not set
1004# CONFIG_I2C_XILINX is not set
996 1005
997# 1006#
998# External I2C/SMBus adapter drivers 1007# External I2C/SMBus adapter drivers
@@ -1006,15 +1015,9 @@ CONFIG_I2C_MPC=y
1006# 1015#
1007# CONFIG_I2C_PCA_PLATFORM is not set 1016# CONFIG_I2C_PCA_PLATFORM is not set
1008# CONFIG_I2C_STUB is not set 1017# CONFIG_I2C_STUB is not set
1009
1010#
1011# Miscellaneous I2C Chip support
1012#
1013# CONFIG_SENSORS_TSL2550 is not set
1014# CONFIG_I2C_DEBUG_CORE is not set 1018# CONFIG_I2C_DEBUG_CORE is not set
1015# CONFIG_I2C_DEBUG_ALGO is not set 1019# CONFIG_I2C_DEBUG_ALGO is not set
1016# CONFIG_I2C_DEBUG_BUS is not set 1020# CONFIG_I2C_DEBUG_BUS is not set
1017# CONFIG_I2C_DEBUG_CHIP is not set
1018# CONFIG_SPI is not set 1021# CONFIG_SPI is not set
1019 1022
1020# 1023#
@@ -1030,14 +1033,18 @@ CONFIG_GPIOLIB=y
1030# 1033#
1031# Memory mapped GPIO expanders: 1034# Memory mapped GPIO expanders:
1032# 1035#
1036# CONFIG_GPIO_IT8761E is not set
1033# CONFIG_GPIO_XILINX is not set 1037# CONFIG_GPIO_XILINX is not set
1038# CONFIG_GPIO_SCH is not set
1034 1039
1035# 1040#
1036# I2C GPIO expanders: 1041# I2C GPIO expanders:
1037# 1042#
1043# CONFIG_GPIO_MAX7300 is not set
1038# CONFIG_GPIO_MAX732X is not set 1044# CONFIG_GPIO_MAX732X is not set
1039# CONFIG_GPIO_PCA953X is not set 1045# CONFIG_GPIO_PCA953X is not set
1040# CONFIG_GPIO_PCF857X is not set 1046# CONFIG_GPIO_PCF857X is not set
1047# CONFIG_GPIO_ADP5588 is not set
1041 1048
1042# 1049#
1043# PCI GPIO expanders: 1050# PCI GPIO expanders:
@@ -1069,20 +1076,25 @@ CONFIG_SSB_POSSIBLE=y
1069# Multifunction device drivers 1076# Multifunction device drivers
1070# 1077#
1071# CONFIG_MFD_CORE is not set 1078# CONFIG_MFD_CORE is not set
1079# CONFIG_MFD_88PM860X is not set
1072# CONFIG_MFD_SM501 is not set 1080# CONFIG_MFD_SM501 is not set
1073# CONFIG_HTC_PASIC3 is not set 1081# CONFIG_HTC_PASIC3 is not set
1082# CONFIG_HTC_I2CPLD is not set
1074# CONFIG_UCB1400_CORE is not set 1083# CONFIG_UCB1400_CORE is not set
1075# CONFIG_TPS65010 is not set 1084# CONFIG_TPS65010 is not set
1076# CONFIG_TWL4030_CORE is not set 1085# CONFIG_TWL4030_CORE is not set
1077# CONFIG_MFD_TMIO is not set 1086# CONFIG_MFD_TMIO is not set
1078# CONFIG_PMIC_DA903X is not set 1087# CONFIG_PMIC_DA903X is not set
1079# CONFIG_PMIC_ADP5520 is not set 1088# CONFIG_PMIC_ADP5520 is not set
1089# CONFIG_MFD_MAX8925 is not set
1080# CONFIG_MFD_WM8400 is not set 1090# CONFIG_MFD_WM8400 is not set
1081# CONFIG_MFD_WM831X is not set 1091# CONFIG_MFD_WM831X is not set
1082# CONFIG_MFD_WM8350_I2C is not set 1092# CONFIG_MFD_WM8350_I2C is not set
1093# CONFIG_MFD_WM8994 is not set
1083# CONFIG_MFD_PCF50633 is not set 1094# CONFIG_MFD_PCF50633 is not set
1084# CONFIG_AB3100_CORE is not set 1095# CONFIG_AB3100_CORE is not set
1085# CONFIG_MFD_88PM8607 is not set 1096# CONFIG_MFD_TIMBERDALE is not set
1097# CONFIG_LPC_SCH is not set
1086# CONFIG_REGULATOR is not set 1098# CONFIG_REGULATOR is not set
1087# CONFIG_MEDIA_SUPPORT is not set 1099# CONFIG_MEDIA_SUPPORT is not set
1088 1100
@@ -1091,6 +1103,7 @@ CONFIG_SSB_POSSIBLE=y
1091# 1103#
1092# CONFIG_AGP is not set 1104# CONFIG_AGP is not set
1093CONFIG_VGA_ARB=y 1105CONFIG_VGA_ARB=y
1106CONFIG_VGA_ARB_MAX_GPUS=16
1094# CONFIG_DRM is not set 1107# CONFIG_DRM is not set
1095# CONFIG_VGASTATE is not set 1108# CONFIG_VGASTATE is not set
1096CONFIG_VIDEO_OUTPUT_CONTROL=y 1109CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1208,6 +1221,7 @@ CONFIG_SND_INTEL8X0=y
1208CONFIG_SND_PPC=y 1221CONFIG_SND_PPC=y
1209CONFIG_SND_USB=y 1222CONFIG_SND_USB=y
1210# CONFIG_SND_USB_AUDIO is not set 1223# CONFIG_SND_USB_AUDIO is not set
1224# CONFIG_SND_USB_UA101 is not set
1211# CONFIG_SND_USB_USX2Y is not set 1225# CONFIG_SND_USB_USX2Y is not set
1212# CONFIG_SND_USB_CAIAQ is not set 1226# CONFIG_SND_USB_CAIAQ is not set
1213# CONFIG_SND_SOC is not set 1227# CONFIG_SND_SOC is not set
@@ -1227,6 +1241,7 @@ CONFIG_USB_HID=y
1227# 1241#
1228# Special HID drivers 1242# Special HID drivers
1229# 1243#
1244# CONFIG_HID_3M_PCT is not set
1230CONFIG_HID_A4TECH=y 1245CONFIG_HID_A4TECH=y
1231CONFIG_HID_APPLE=y 1246CONFIG_HID_APPLE=y
1232CONFIG_HID_BELKIN=y 1247CONFIG_HID_BELKIN=y
@@ -1242,14 +1257,19 @@ CONFIG_HID_GYRATION=y
1242CONFIG_HID_LOGITECH=y 1257CONFIG_HID_LOGITECH=y
1243# CONFIG_LOGITECH_FF is not set 1258# CONFIG_LOGITECH_FF is not set
1244# CONFIG_LOGIRUMBLEPAD2_FF is not set 1259# CONFIG_LOGIRUMBLEPAD2_FF is not set
1260# CONFIG_LOGIG940_FF is not set
1245CONFIG_HID_MICROSOFT=y 1261CONFIG_HID_MICROSOFT=y
1262# CONFIG_HID_MOSART is not set
1246CONFIG_HID_MONTEREY=y 1263CONFIG_HID_MONTEREY=y
1247# CONFIG_HID_NTRIG is not set 1264# CONFIG_HID_NTRIG is not set
1265# CONFIG_HID_ORTEK is not set
1248CONFIG_HID_PANTHERLORD=y 1266CONFIG_HID_PANTHERLORD=y
1249# CONFIG_PANTHERLORD_FF is not set 1267# CONFIG_PANTHERLORD_FF is not set
1250CONFIG_HID_PETALYNX=y 1268CONFIG_HID_PETALYNX=y
1269# CONFIG_HID_QUANTA is not set
1251CONFIG_HID_SAMSUNG=y 1270CONFIG_HID_SAMSUNG=y
1252CONFIG_HID_SONY=y 1271CONFIG_HID_SONY=y
1272# CONFIG_HID_STANTUM is not set
1253CONFIG_HID_SUNPLUS=y 1273CONFIG_HID_SUNPLUS=y
1254# CONFIG_HID_GREENASIA is not set 1274# CONFIG_HID_GREENASIA is not set
1255# CONFIG_HID_SMARTJOYPLUS is not set 1275# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1358,7 +1378,6 @@ CONFIG_USB_STORAGE=y
1358# CONFIG_USB_RIO500 is not set 1378# CONFIG_USB_RIO500 is not set
1359# CONFIG_USB_LEGOTOWER is not set 1379# CONFIG_USB_LEGOTOWER is not set
1360# CONFIG_USB_LCD is not set 1380# CONFIG_USB_LCD is not set
1361# CONFIG_USB_BERRY_CHARGE is not set
1362# CONFIG_USB_LED is not set 1381# CONFIG_USB_LED is not set
1363# CONFIG_USB_CYPRESS_CY7C63 is not set 1382# CONFIG_USB_CYPRESS_CY7C63 is not set
1364# CONFIG_USB_CYTHERM is not set 1383# CONFIG_USB_CYTHERM is not set
@@ -1371,7 +1390,6 @@ CONFIG_USB_STORAGE=y
1371# CONFIG_USB_IOWARRIOR is not set 1390# CONFIG_USB_IOWARRIOR is not set
1372# CONFIG_USB_TEST is not set 1391# CONFIG_USB_TEST is not set
1373# CONFIG_USB_ISIGHTFW is not set 1392# CONFIG_USB_ISIGHTFW is not set
1374# CONFIG_USB_VST is not set
1375# CONFIG_USB_GADGET is not set 1393# CONFIG_USB_GADGET is not set
1376 1394
1377# 1395#
@@ -1452,6 +1470,7 @@ CONFIG_RTC_DRV_CMOS=y
1452# 1470#
1453# CONFIG_RTC_DRV_GENERIC is not set 1471# CONFIG_RTC_DRV_GENERIC is not set
1454CONFIG_DMADEVICES=y 1472CONFIG_DMADEVICES=y
1473# CONFIG_DMADEVICES_DEBUG is not set
1455 1474
1456# 1475#
1457# DMA Devices 1476# DMA Devices
@@ -1554,6 +1573,7 @@ CONFIG_BEFS_FS=m
1554# CONFIG_BEFS_DEBUG is not set 1573# CONFIG_BEFS_DEBUG is not set
1555CONFIG_BFS_FS=m 1574CONFIG_BFS_FS=m
1556CONFIG_EFS_FS=m 1575CONFIG_EFS_FS=m
1576# CONFIG_LOGFS is not set
1557CONFIG_CRAMFS=y 1577CONFIG_CRAMFS=y
1558# CONFIG_SQUASHFS is not set 1578# CONFIG_SQUASHFS is not set
1559CONFIG_VXFS_FS=m 1579CONFIG_VXFS_FS=m
@@ -1585,6 +1605,7 @@ CONFIG_SUNRPC_GSS=y
1585CONFIG_RPCSEC_GSS_KRB5=y 1605CONFIG_RPCSEC_GSS_KRB5=y
1586# CONFIG_RPCSEC_GSS_SPKM3 is not set 1606# CONFIG_RPCSEC_GSS_SPKM3 is not set
1587# CONFIG_SMB_FS is not set 1607# CONFIG_SMB_FS is not set
1608# CONFIG_CEPH_FS is not set
1588# CONFIG_CIFS is not set 1609# CONFIG_CIFS is not set
1589# CONFIG_NCP_FS is not set 1610# CONFIG_NCP_FS is not set
1590# CONFIG_CODA_FS is not set 1611# CONFIG_CODA_FS is not set
@@ -1730,6 +1751,7 @@ CONFIG_DEBUG_INFO=y
1730# CONFIG_BACKTRACE_SELF_TEST is not set 1751# CONFIG_BACKTRACE_SELF_TEST is not set
1731# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1752# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1732# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1753# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1754# CONFIG_LKDTM is not set
1733# CONFIG_FAULT_INJECTION is not set 1755# CONFIG_FAULT_INJECTION is not set
1734# CONFIG_LATENCYTOP is not set 1756# CONFIG_LATENCYTOP is not set
1735CONFIG_SYSCTL_SYSCALL_CHECK=y 1757CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index 8755ea3c7f5f..f5451d80f19b 100644
--- a/arch/powerpc/configs/mpc85xx_smp_defconfig
+++ b/arch/powerpc/configs/mpc85xx_smp_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:07 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -100,18 +104,13 @@ CONFIG_TREE_RCU=y
100# CONFIG_RCU_TRACE is not set 104# CONFIG_RCU_TRACE is not set
101CONFIG_RCU_FANOUT=32 105CONFIG_RCU_FANOUT=32
102# CONFIG_RCU_FANOUT_EXACT is not set 106# CONFIG_RCU_FANOUT_EXACT is not set
107# CONFIG_RCU_FAST_NO_HZ is not set
103# CONFIG_TREE_RCU_TRACE is not set 108# CONFIG_TREE_RCU_TRACE is not set
104CONFIG_IKCONFIG=y 109CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 110CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 111CONFIG_LOG_BUF_SHIFT=14
107CONFIG_GROUP_SCHED=y
108# CONFIG_FAIR_GROUP_SCHED is not set
109# CONFIG_RT_GROUP_SCHED is not set
110CONFIG_USER_SCHED=y
111# CONFIG_CGROUP_SCHED is not set
112# CONFIG_CGROUPS is not set 112# CONFIG_CGROUPS is not set
113CONFIG_SYSFS_DEPRECATED=y 113# CONFIG_SYSFS_DEPRECATED_V2 is not set
114CONFIG_SYSFS_DEPRECATED_V2=y
115# CONFIG_RELAY is not set 114# CONFIG_RELAY is not set
116# CONFIG_NAMESPACES is not set 115# CONFIG_NAMESPACES is not set
117CONFIG_BLK_DEV_INITRD=y 116CONFIG_BLK_DEV_INITRD=y
@@ -119,6 +118,7 @@ CONFIG_INITRAMFS_SOURCE=""
119CONFIG_RD_GZIP=y 118CONFIG_RD_GZIP=y
120# CONFIG_RD_BZIP2 is not set 119# CONFIG_RD_BZIP2 is not set
121# CONFIG_RD_LZMA is not set 120# CONFIG_RD_LZMA is not set
121# CONFIG_RD_LZO is not set
122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
123CONFIG_SYSCTL=y 123CONFIG_SYSCTL=y
124CONFIG_ANON_INODES=y 124CONFIG_ANON_INODES=y
@@ -338,6 +338,7 @@ CONFIG_ISA_DMA_API=y
338# Bus options 338# Bus options
339# 339#
340CONFIG_ZONE_DMA=y 340CONFIG_ZONE_DMA=y
341# CONFIG_NEED_DMA_MAP_STATE is not set
341CONFIG_GENERIC_ISA_DMA=y 342CONFIG_GENERIC_ISA_DMA=y
342CONFIG_PPC_INDIRECT_PCI=y 343CONFIG_PPC_INDIRECT_PCI=y
343CONFIG_FSL_SOC=y 344CONFIG_FSL_SOC=y
@@ -349,7 +350,6 @@ CONFIG_PCI_SYSCALL=y
349# CONFIG_PCIEPORTBUS is not set 350# CONFIG_PCIEPORTBUS is not set
350CONFIG_ARCH_SUPPORTS_MSI=y 351CONFIG_ARCH_SUPPORTS_MSI=y
351CONFIG_PCI_MSI=y 352CONFIG_PCI_MSI=y
352# CONFIG_PCI_LEGACY is not set
353# CONFIG_PCI_DEBUG is not set 353# CONFIG_PCI_DEBUG is not set
354# CONFIG_PCI_STUB is not set 354# CONFIG_PCI_STUB is not set
355# CONFIG_PCI_IOV is not set 355# CONFIG_PCI_IOV is not set
@@ -380,7 +380,6 @@ CONFIG_NET=y
380# Networking options 380# Networking options
381# 381#
382CONFIG_PACKET=y 382CONFIG_PACKET=y
383# CONFIG_PACKET_MMAP is not set
384CONFIG_UNIX=y 383CONFIG_UNIX=y
385CONFIG_XFRM=y 384CONFIG_XFRM=y
386CONFIG_XFRM_USER=y 385CONFIG_XFRM_USER=y
@@ -513,6 +512,8 @@ CONFIG_EXTRA_FIRMWARE=""
513# CONFIG_SYS_HYPERVISOR is not set 512# CONFIG_SYS_HYPERVISOR is not set
514# CONFIG_CONNECTOR is not set 513# CONFIG_CONNECTOR is not set
515# CONFIG_MTD is not set 514# CONFIG_MTD is not set
515CONFIG_OF_FLATTREE=y
516CONFIG_OF_DYNAMIC=y
516CONFIG_OF_DEVICE=y 517CONFIG_OF_DEVICE=y
517CONFIG_OF_GPIO=y 518CONFIG_OF_GPIO=y
518CONFIG_OF_I2C=y 519CONFIG_OF_I2C=y
@@ -550,6 +551,7 @@ CONFIG_MISC_DEVICES=y
550# CONFIG_ENCLOSURE_SERVICES is not set 551# CONFIG_ENCLOSURE_SERVICES is not set
551# CONFIG_HP_ILO is not set 552# CONFIG_HP_ILO is not set
552# CONFIG_ISL29003 is not set 553# CONFIG_ISL29003 is not set
554# CONFIG_SENSORS_TSL2550 is not set
553# CONFIG_DS1682 is not set 555# CONFIG_DS1682 is not set
554# CONFIG_C2PORT is not set 556# CONFIG_C2PORT is not set
555 557
@@ -567,6 +569,7 @@ CONFIG_HAVE_IDE=y
567# 569#
568# SCSI device support 570# SCSI device support
569# 571#
572CONFIG_SCSI_MOD=y
570# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
571CONFIG_SCSI=y 574CONFIG_SCSI=y
572CONFIG_SCSI_DMA=y 575CONFIG_SCSI_DMA=y
@@ -691,6 +694,7 @@ CONFIG_PATA_ALI=y
691# CONFIG_PATA_IT821X is not set 694# CONFIG_PATA_IT821X is not set
692# CONFIG_PATA_IT8213 is not set 695# CONFIG_PATA_IT8213 is not set
693# CONFIG_PATA_JMICRON is not set 696# CONFIG_PATA_JMICRON is not set
697# CONFIG_PATA_LEGACY is not set
694# CONFIG_PATA_TRIFLEX is not set 698# CONFIG_PATA_TRIFLEX is not set
695# CONFIG_PATA_MARVELL is not set 699# CONFIG_PATA_MARVELL is not set
696# CONFIG_PATA_MPIIX is not set 700# CONFIG_PATA_MPIIX is not set
@@ -821,8 +825,11 @@ CONFIG_NETDEV_10000=y
821# CONFIG_CHELSIO_T1 is not set 825# CONFIG_CHELSIO_T1 is not set
822CONFIG_CHELSIO_T3_DEPENDS=y 826CONFIG_CHELSIO_T3_DEPENDS=y
823# CONFIG_CHELSIO_T3 is not set 827# CONFIG_CHELSIO_T3 is not set
828CONFIG_CHELSIO_T4_DEPENDS=y
829# CONFIG_CHELSIO_T4 is not set
824# CONFIG_ENIC is not set 830# CONFIG_ENIC is not set
825# CONFIG_IXGBE is not set 831# CONFIG_IXGBE is not set
832# CONFIG_IXGBEVF is not set
826# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
827# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
828# CONFIG_VXGE is not set 835# CONFIG_VXGE is not set
@@ -833,6 +840,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
833# CONFIG_MLX4_CORE is not set 840# CONFIG_MLX4_CORE is not set
834# CONFIG_TEHUTI is not set 841# CONFIG_TEHUTI is not set
835# CONFIG_BNX2X is not set 842# CONFIG_BNX2X is not set
843# CONFIG_QLCNIC is not set
836# CONFIG_QLGE is not set 844# CONFIG_QLGE is not set
837# CONFIG_SFC is not set 845# CONFIG_SFC is not set
838# CONFIG_BE2NET is not set 846# CONFIG_BE2NET is not set
@@ -945,6 +953,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
945# CONFIG_SERIAL_JSM is not set 953# CONFIG_SERIAL_JSM is not set
946# CONFIG_SERIAL_OF_PLATFORM is not set 954# CONFIG_SERIAL_OF_PLATFORM is not set
947CONFIG_SERIAL_QE=m 955CONFIG_SERIAL_QE=m
956# CONFIG_SERIAL_TIMBERDALE is not set
948# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 957# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
949CONFIG_UNIX98_PTYS=y 958CONFIG_UNIX98_PTYS=y
950# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 959# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -997,6 +1006,7 @@ CONFIG_I2C_CPM=m
997CONFIG_I2C_MPC=y 1006CONFIG_I2C_MPC=y
998# CONFIG_I2C_OCORES is not set 1007# CONFIG_I2C_OCORES is not set
999# CONFIG_I2C_SIMTEC is not set 1008# CONFIG_I2C_SIMTEC is not set
1009# CONFIG_I2C_XILINX is not set
1000 1010
1001# 1011#
1002# External I2C/SMBus adapter drivers 1012# External I2C/SMBus adapter drivers
@@ -1010,15 +1020,9 @@ CONFIG_I2C_MPC=y
1010# 1020#
1011# CONFIG_I2C_PCA_PLATFORM is not set 1021# CONFIG_I2C_PCA_PLATFORM is not set
1012# CONFIG_I2C_STUB is not set 1022# CONFIG_I2C_STUB is not set
1013
1014#
1015# Miscellaneous I2C Chip support
1016#
1017# CONFIG_SENSORS_TSL2550 is not set
1018# CONFIG_I2C_DEBUG_CORE is not set 1023# CONFIG_I2C_DEBUG_CORE is not set
1019# CONFIG_I2C_DEBUG_ALGO is not set 1024# CONFIG_I2C_DEBUG_ALGO is not set
1020# CONFIG_I2C_DEBUG_BUS is not set 1025# CONFIG_I2C_DEBUG_BUS is not set
1021# CONFIG_I2C_DEBUG_CHIP is not set
1022# CONFIG_SPI is not set 1026# CONFIG_SPI is not set
1023 1027
1024# 1028#
@@ -1034,14 +1038,18 @@ CONFIG_GPIOLIB=y
1034# 1038#
1035# Memory mapped GPIO expanders: 1039# Memory mapped GPIO expanders:
1036# 1040#
1041# CONFIG_GPIO_IT8761E is not set
1037# CONFIG_GPIO_XILINX is not set 1042# CONFIG_GPIO_XILINX is not set
1043# CONFIG_GPIO_SCH is not set
1038 1044
1039# 1045#
1040# I2C GPIO expanders: 1046# I2C GPIO expanders:
1041# 1047#
1048# CONFIG_GPIO_MAX7300 is not set
1042# CONFIG_GPIO_MAX732X is not set 1049# CONFIG_GPIO_MAX732X is not set
1043# CONFIG_GPIO_PCA953X is not set 1050# CONFIG_GPIO_PCA953X is not set
1044# CONFIG_GPIO_PCF857X is not set 1051# CONFIG_GPIO_PCF857X is not set
1052# CONFIG_GPIO_ADP5588 is not set
1045 1053
1046# 1054#
1047# PCI GPIO expanders: 1055# PCI GPIO expanders:
@@ -1073,20 +1081,25 @@ CONFIG_SSB_POSSIBLE=y
1073# Multifunction device drivers 1081# Multifunction device drivers
1074# 1082#
1075# CONFIG_MFD_CORE is not set 1083# CONFIG_MFD_CORE is not set
1084# CONFIG_MFD_88PM860X is not set
1076# CONFIG_MFD_SM501 is not set 1085# CONFIG_MFD_SM501 is not set
1077# CONFIG_HTC_PASIC3 is not set 1086# CONFIG_HTC_PASIC3 is not set
1087# CONFIG_HTC_I2CPLD is not set
1078# CONFIG_UCB1400_CORE is not set 1088# CONFIG_UCB1400_CORE is not set
1079# CONFIG_TPS65010 is not set 1089# CONFIG_TPS65010 is not set
1080# CONFIG_TWL4030_CORE is not set 1090# CONFIG_TWL4030_CORE is not set
1081# CONFIG_MFD_TMIO is not set 1091# CONFIG_MFD_TMIO is not set
1082# CONFIG_PMIC_DA903X is not set 1092# CONFIG_PMIC_DA903X is not set
1083# CONFIG_PMIC_ADP5520 is not set 1093# CONFIG_PMIC_ADP5520 is not set
1094# CONFIG_MFD_MAX8925 is not set
1084# CONFIG_MFD_WM8400 is not set 1095# CONFIG_MFD_WM8400 is not set
1085# CONFIG_MFD_WM831X is not set 1096# CONFIG_MFD_WM831X is not set
1086# CONFIG_MFD_WM8350_I2C is not set 1097# CONFIG_MFD_WM8350_I2C is not set
1098# CONFIG_MFD_WM8994 is not set
1087# CONFIG_MFD_PCF50633 is not set 1099# CONFIG_MFD_PCF50633 is not set
1088# CONFIG_AB3100_CORE is not set 1100# CONFIG_AB3100_CORE is not set
1089# CONFIG_MFD_88PM8607 is not set 1101# CONFIG_MFD_TIMBERDALE is not set
1102# CONFIG_LPC_SCH is not set
1090# CONFIG_REGULATOR is not set 1103# CONFIG_REGULATOR is not set
1091# CONFIG_MEDIA_SUPPORT is not set 1104# CONFIG_MEDIA_SUPPORT is not set
1092 1105
@@ -1095,6 +1108,7 @@ CONFIG_SSB_POSSIBLE=y
1095# 1108#
1096# CONFIG_AGP is not set 1109# CONFIG_AGP is not set
1097CONFIG_VGA_ARB=y 1110CONFIG_VGA_ARB=y
1111CONFIG_VGA_ARB_MAX_GPUS=16
1098# CONFIG_DRM is not set 1112# CONFIG_DRM is not set
1099# CONFIG_VGASTATE is not set 1113# CONFIG_VGASTATE is not set
1100CONFIG_VIDEO_OUTPUT_CONTROL=y 1114CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1212,6 +1226,7 @@ CONFIG_SND_INTEL8X0=y
1212CONFIG_SND_PPC=y 1226CONFIG_SND_PPC=y
1213CONFIG_SND_USB=y 1227CONFIG_SND_USB=y
1214# CONFIG_SND_USB_AUDIO is not set 1228# CONFIG_SND_USB_AUDIO is not set
1229# CONFIG_SND_USB_UA101 is not set
1215# CONFIG_SND_USB_USX2Y is not set 1230# CONFIG_SND_USB_USX2Y is not set
1216# CONFIG_SND_USB_CAIAQ is not set 1231# CONFIG_SND_USB_CAIAQ is not set
1217# CONFIG_SND_SOC is not set 1232# CONFIG_SND_SOC is not set
@@ -1231,6 +1246,7 @@ CONFIG_USB_HID=y
1231# 1246#
1232# Special HID drivers 1247# Special HID drivers
1233# 1248#
1249# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1250CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1251CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1252CONFIG_HID_BELKIN=y
@@ -1246,14 +1262,19 @@ CONFIG_HID_GYRATION=y
1246CONFIG_HID_LOGITECH=y 1262CONFIG_HID_LOGITECH=y
1247# CONFIG_LOGITECH_FF is not set 1263# CONFIG_LOGITECH_FF is not set
1248# CONFIG_LOGIRUMBLEPAD2_FF is not set 1264# CONFIG_LOGIRUMBLEPAD2_FF is not set
1265# CONFIG_LOGIG940_FF is not set
1249CONFIG_HID_MICROSOFT=y 1266CONFIG_HID_MICROSOFT=y
1267# CONFIG_HID_MOSART is not set
1250CONFIG_HID_MONTEREY=y 1268CONFIG_HID_MONTEREY=y
1251# CONFIG_HID_NTRIG is not set 1269# CONFIG_HID_NTRIG is not set
1270# CONFIG_HID_ORTEK is not set
1252CONFIG_HID_PANTHERLORD=y 1271CONFIG_HID_PANTHERLORD=y
1253# CONFIG_PANTHERLORD_FF is not set 1272# CONFIG_PANTHERLORD_FF is not set
1254CONFIG_HID_PETALYNX=y 1273CONFIG_HID_PETALYNX=y
1274# CONFIG_HID_QUANTA is not set
1255CONFIG_HID_SAMSUNG=y 1275CONFIG_HID_SAMSUNG=y
1256CONFIG_HID_SONY=y 1276CONFIG_HID_SONY=y
1277# CONFIG_HID_STANTUM is not set
1257CONFIG_HID_SUNPLUS=y 1278CONFIG_HID_SUNPLUS=y
1258# CONFIG_HID_GREENASIA is not set 1279# CONFIG_HID_GREENASIA is not set
1259# CONFIG_HID_SMARTJOYPLUS is not set 1280# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1362,7 +1383,6 @@ CONFIG_USB_STORAGE=y
1362# CONFIG_USB_RIO500 is not set 1383# CONFIG_USB_RIO500 is not set
1363# CONFIG_USB_LEGOTOWER is not set 1384# CONFIG_USB_LEGOTOWER is not set
1364# CONFIG_USB_LCD is not set 1385# CONFIG_USB_LCD is not set
1365# CONFIG_USB_BERRY_CHARGE is not set
1366# CONFIG_USB_LED is not set 1386# CONFIG_USB_LED is not set
1367# CONFIG_USB_CYPRESS_CY7C63 is not set 1387# CONFIG_USB_CYPRESS_CY7C63 is not set
1368# CONFIG_USB_CYTHERM is not set 1388# CONFIG_USB_CYTHERM is not set
@@ -1375,7 +1395,6 @@ CONFIG_USB_STORAGE=y
1375# CONFIG_USB_IOWARRIOR is not set 1395# CONFIG_USB_IOWARRIOR is not set
1376# CONFIG_USB_TEST is not set 1396# CONFIG_USB_TEST is not set
1377# CONFIG_USB_ISIGHTFW is not set 1397# CONFIG_USB_ISIGHTFW is not set
1378# CONFIG_USB_VST is not set
1379# CONFIG_USB_GADGET is not set 1398# CONFIG_USB_GADGET is not set
1380 1399
1381# 1400#
@@ -1456,6 +1475,7 @@ CONFIG_RTC_DRV_CMOS=y
1456# 1475#
1457# CONFIG_RTC_DRV_GENERIC is not set 1476# CONFIG_RTC_DRV_GENERIC is not set
1458CONFIG_DMADEVICES=y 1477CONFIG_DMADEVICES=y
1478# CONFIG_DMADEVICES_DEBUG is not set
1459 1479
1460# 1480#
1461# DMA Devices 1481# DMA Devices
@@ -1558,6 +1578,7 @@ CONFIG_BEFS_FS=m
1558# CONFIG_BEFS_DEBUG is not set 1578# CONFIG_BEFS_DEBUG is not set
1559CONFIG_BFS_FS=m 1579CONFIG_BFS_FS=m
1560CONFIG_EFS_FS=m 1580CONFIG_EFS_FS=m
1581# CONFIG_LOGFS is not set
1561CONFIG_CRAMFS=y 1582CONFIG_CRAMFS=y
1562# CONFIG_SQUASHFS is not set 1583# CONFIG_SQUASHFS is not set
1563CONFIG_VXFS_FS=m 1584CONFIG_VXFS_FS=m
@@ -1589,6 +1610,7 @@ CONFIG_SUNRPC_GSS=y
1589CONFIG_RPCSEC_GSS_KRB5=y 1610CONFIG_RPCSEC_GSS_KRB5=y
1590# CONFIG_RPCSEC_GSS_SPKM3 is not set 1611# CONFIG_RPCSEC_GSS_SPKM3 is not set
1591# CONFIG_SMB_FS is not set 1612# CONFIG_SMB_FS is not set
1613# CONFIG_CEPH_FS is not set
1592# CONFIG_CIFS is not set 1614# CONFIG_CIFS is not set
1593# CONFIG_NCP_FS is not set 1615# CONFIG_NCP_FS is not set
1594# CONFIG_CODA_FS is not set 1616# CONFIG_CODA_FS is not set
@@ -1734,6 +1756,7 @@ CONFIG_DEBUG_INFO=y
1734# CONFIG_BACKTRACE_SELF_TEST is not set 1756# CONFIG_BACKTRACE_SELF_TEST is not set
1735# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1757# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1736# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1758# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1759# CONFIG_LKDTM is not set
1737# CONFIG_FAULT_INJECTION is not set 1760# CONFIG_FAULT_INJECTION is not set
1738# CONFIG_LATENCYTOP is not set 1761# CONFIG_LATENCYTOP is not set
1739CONFIG_SYSCTL_SYSCALL_CHECK=y 1762CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1806,6 +1829,7 @@ CONFIG_CRYPTO_MANAGER=y
1806CONFIG_CRYPTO_MANAGER2=y 1829CONFIG_CRYPTO_MANAGER2=y
1807# CONFIG_CRYPTO_GF128MUL is not set 1830# CONFIG_CRYPTO_GF128MUL is not set
1808# CONFIG_CRYPTO_NULL is not set 1831# CONFIG_CRYPTO_NULL is not set
1832# CONFIG_CRYPTO_PCRYPT is not set
1809CONFIG_CRYPTO_WORKQUEUE=y 1833CONFIG_CRYPTO_WORKQUEUE=y
1810# CONFIG_CRYPTO_CRYPTD is not set 1834# CONFIG_CRYPTO_CRYPTD is not set
1811CONFIG_CRYPTO_AUTHENC=y 1835CONFIG_CRYPTO_AUTHENC=y
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 3f6b11b6f4f3..d8d3d1d60c84 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:08 2010 4# Mon Apr 19 23:16:32 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,14 +89,8 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
92CONFIG_GROUP_SCHED=y
93# CONFIG_FAIR_GROUP_SCHED is not set
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 95# CONFIG_NAMESPACES is not set
102# CONFIG_BLK_DEV_INITRD is not set 96# CONFIG_BLK_DEV_INITRD is not set
@@ -305,6 +299,7 @@ CONFIG_ISA_DMA_API=y
305# Bus options 299# Bus options
306# 300#
307CONFIG_ZONE_DMA=y 301CONFIG_ZONE_DMA=y
302CONFIG_NEED_DMA_MAP_STATE=y
308CONFIG_FSL_SOC=y 303CONFIG_FSL_SOC=y
309# CONFIG_PCI is not set 304# CONFIG_PCI is not set
310# CONFIG_PCI_DOMAINS is not set 305# CONFIG_PCI_DOMAINS is not set
@@ -333,7 +328,6 @@ CONFIG_NET=y
333# Networking options 328# Networking options
334# 329#
335CONFIG_PACKET=y 330CONFIG_PACKET=y
336# CONFIG_PACKET_MMAP is not set
337CONFIG_UNIX=y 331CONFIG_UNIX=y
338CONFIG_XFRM=y 332CONFIG_XFRM=y
339# CONFIG_XFRM_USER is not set 333# CONFIG_XFRM_USER is not set
@@ -425,6 +419,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
425# CONFIG_SYS_HYPERVISOR is not set 419# CONFIG_SYS_HYPERVISOR is not set
426# CONFIG_CONNECTOR is not set 420# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set 421# CONFIG_MTD is not set
422CONFIG_OF_FLATTREE=y
423CONFIG_OF_DYNAMIC=y
428CONFIG_OF_DEVICE=y 424CONFIG_OF_DEVICE=y
429CONFIG_OF_MDIO=y 425CONFIG_OF_MDIO=y
430# CONFIG_PARPORT is not set 426# CONFIG_PARPORT is not set
@@ -456,6 +452,7 @@ CONFIG_HAVE_IDE=y
456# 452#
457# SCSI device support 453# SCSI device support
458# 454#
455CONFIG_SCSI_MOD=y
459# CONFIG_RAID_ATTRS is not set 456# CONFIG_RAID_ATTRS is not set
460# CONFIG_SCSI is not set 457# CONFIG_SCSI is not set
461# CONFIG_SCSI_DMA is not set 458# CONFIG_SCSI_DMA is not set
@@ -607,6 +604,7 @@ CONFIG_SERIAL_CORE=y
607CONFIG_SERIAL_CORE_CONSOLE=y 604CONFIG_SERIAL_CORE_CONSOLE=y
608CONFIG_SERIAL_CPM=y 605CONFIG_SERIAL_CPM=y
609CONFIG_SERIAL_CPM_CONSOLE=y 606CONFIG_SERIAL_CPM_CONSOLE=y
607# CONFIG_SERIAL_TIMBERDALE is not set
610# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
611CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
612# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -795,6 +793,7 @@ CONFIG_MISC_FILESYSTEMS=y
795# CONFIG_BEFS_FS is not set 793# CONFIG_BEFS_FS is not set
796# CONFIG_BFS_FS is not set 794# CONFIG_BFS_FS is not set
797# CONFIG_EFS_FS is not set 795# CONFIG_EFS_FS is not set
796# CONFIG_LOGFS is not set
798CONFIG_CRAMFS=y 797CONFIG_CRAMFS=y
799# CONFIG_SQUASHFS is not set 798# CONFIG_SQUASHFS is not set
800# CONFIG_VXFS_FS is not set 799# CONFIG_VXFS_FS is not set
@@ -819,6 +818,7 @@ CONFIG_SUNRPC=y
819# CONFIG_RPCSEC_GSS_KRB5 is not set 818# CONFIG_RPCSEC_GSS_KRB5 is not set
820# CONFIG_RPCSEC_GSS_SPKM3 is not set 819# CONFIG_RPCSEC_GSS_SPKM3 is not set
821# CONFIG_SMB_FS is not set 820# CONFIG_SMB_FS is not set
821# CONFIG_CEPH_FS is not set
822# CONFIG_CIFS is not set 822# CONFIG_CIFS is not set
823# CONFIG_NCP_FS is not set 823# CONFIG_NCP_FS is not set
824# CONFIG_CODA_FS is not set 824# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 41884c97a4f3..624eae9a7e20 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:09 2010 4# Mon Apr 19 23:16:33 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,18 +98,13 @@ CONFIG_TREE_RCU=y
98# CONFIG_RCU_TRACE is not set 98# CONFIG_RCU_TRACE is not set
99CONFIG_RCU_FANOUT=32 99CONFIG_RCU_FANOUT=32
100# CONFIG_RCU_FANOUT_EXACT is not set 100# CONFIG_RCU_FANOUT_EXACT is not set
101# CONFIG_RCU_FAST_NO_HZ is not set
101# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
102CONFIG_IKCONFIG=y 103CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 104CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106# CONFIG_FAIR_GROUP_SCHED is not set
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
114# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -328,6 +324,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 324# Bus options
329# 325#
330CONFIG_ZONE_DMA=y 326CONFIG_ZONE_DMA=y
327# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 328CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 329CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 330CONFIG_FSL_SOC=y
@@ -339,7 +336,6 @@ CONFIG_PCI_SYSCALL=y
339# CONFIG_PCIEPORTBUS is not set 336# CONFIG_PCIEPORTBUS is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 337CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 338# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 339# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
@@ -367,7 +363,6 @@ CONFIG_NET=y
367# Networking options 363# Networking options
368# 364#
369CONFIG_PACKET=y 365CONFIG_PACKET=y
370# CONFIG_PACKET_MMAP is not set
371CONFIG_UNIX=y 366CONFIG_UNIX=y
372CONFIG_XFRM=y 367CONFIG_XFRM=y
373CONFIG_XFRM_USER=y 368CONFIG_XFRM_USER=y
@@ -500,6 +495,8 @@ CONFIG_EXTRA_FIRMWARE=""
500# CONFIG_SYS_HYPERVISOR is not set 495# CONFIG_SYS_HYPERVISOR is not set
501# CONFIG_CONNECTOR is not set 496# CONFIG_CONNECTOR is not set
502# CONFIG_MTD is not set 497# CONFIG_MTD is not set
498CONFIG_OF_FLATTREE=y
499CONFIG_OF_DYNAMIC=y
503CONFIG_OF_DEVICE=y 500CONFIG_OF_DEVICE=y
504CONFIG_OF_GPIO=y 501CONFIG_OF_GPIO=y
505CONFIG_OF_I2C=y 502CONFIG_OF_I2C=y
@@ -537,6 +534,7 @@ CONFIG_MISC_DEVICES=y
537# CONFIG_ENCLOSURE_SERVICES is not set 534# CONFIG_ENCLOSURE_SERVICES is not set
538# CONFIG_HP_ILO is not set 535# CONFIG_HP_ILO is not set
539# CONFIG_ISL29003 is not set 536# CONFIG_ISL29003 is not set
537# CONFIG_SENSORS_TSL2550 is not set
540# CONFIG_DS1682 is not set 538# CONFIG_DS1682 is not set
541# CONFIG_C2PORT is not set 539# CONFIG_C2PORT is not set
542 540
@@ -554,6 +552,7 @@ CONFIG_HAVE_IDE=y
554# 552#
555# SCSI device support 553# SCSI device support
556# 554#
555CONFIG_SCSI_MOD=y
557# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
558CONFIG_SCSI=y 557CONFIG_SCSI=y
559CONFIG_SCSI_DMA=y 558CONFIG_SCSI_DMA=y
@@ -678,6 +677,7 @@ CONFIG_PATA_ALI=y
678# CONFIG_PATA_IT821X is not set 677# CONFIG_PATA_IT821X is not set
679# CONFIG_PATA_IT8213 is not set 678# CONFIG_PATA_IT8213 is not set
680# CONFIG_PATA_JMICRON is not set 679# CONFIG_PATA_JMICRON is not set
680# CONFIG_PATA_LEGACY is not set
681# CONFIG_PATA_TRIFLEX is not set 681# CONFIG_PATA_TRIFLEX is not set
682# CONFIG_PATA_MARVELL is not set 682# CONFIG_PATA_MARVELL is not set
683# CONFIG_PATA_MPIIX is not set 683# CONFIG_PATA_MPIIX is not set
@@ -802,6 +802,8 @@ CONFIG_NETDEV_10000=y
802# CONFIG_CHELSIO_T1 is not set 802# CONFIG_CHELSIO_T1 is not set
803CONFIG_CHELSIO_T3_DEPENDS=y 803CONFIG_CHELSIO_T3_DEPENDS=y
804# CONFIG_CHELSIO_T3 is not set 804# CONFIG_CHELSIO_T3 is not set
805CONFIG_CHELSIO_T4_DEPENDS=y
806# CONFIG_CHELSIO_T4 is not set
805# CONFIG_ENIC is not set 807# CONFIG_ENIC is not set
806# CONFIG_IXGBE is not set 808# CONFIG_IXGBE is not set
807# CONFIG_IXGB is not set 809# CONFIG_IXGB is not set
@@ -814,6 +816,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
814# CONFIG_MLX4_CORE is not set 816# CONFIG_MLX4_CORE is not set
815# CONFIG_TEHUTI is not set 817# CONFIG_TEHUTI is not set
816# CONFIG_BNX2X is not set 818# CONFIG_BNX2X is not set
819# CONFIG_QLCNIC is not set
817# CONFIG_QLGE is not set 820# CONFIG_QLGE is not set
818# CONFIG_SFC is not set 821# CONFIG_SFC is not set
819# CONFIG_BE2NET is not set 822# CONFIG_BE2NET is not set
@@ -923,6 +926,7 @@ CONFIG_SERIAL_CORE=y
923CONFIG_SERIAL_CORE_CONSOLE=y 926CONFIG_SERIAL_CORE_CONSOLE=y
924# CONFIG_SERIAL_JSM is not set 927# CONFIG_SERIAL_JSM is not set
925# CONFIG_SERIAL_OF_PLATFORM is not set 928# CONFIG_SERIAL_OF_PLATFORM is not set
929# CONFIG_SERIAL_TIMBERDALE is not set
926# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 930# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
927CONFIG_UNIX98_PTYS=y 931CONFIG_UNIX98_PTYS=y
928# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 932# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -972,6 +976,7 @@ CONFIG_I2C_HELPER_AUTO=y
972CONFIG_I2C_MPC=y 976CONFIG_I2C_MPC=y
973# CONFIG_I2C_OCORES is not set 977# CONFIG_I2C_OCORES is not set
974# CONFIG_I2C_SIMTEC is not set 978# CONFIG_I2C_SIMTEC is not set
979# CONFIG_I2C_XILINX is not set
975 980
976# 981#
977# External I2C/SMBus adapter drivers 982# External I2C/SMBus adapter drivers
@@ -985,15 +990,9 @@ CONFIG_I2C_MPC=y
985# 990#
986# CONFIG_I2C_PCA_PLATFORM is not set 991# CONFIG_I2C_PCA_PLATFORM is not set
987# CONFIG_I2C_STUB is not set 992# CONFIG_I2C_STUB is not set
988
989#
990# Miscellaneous I2C Chip support
991#
992# CONFIG_SENSORS_TSL2550 is not set
993# CONFIG_I2C_DEBUG_CORE is not set 993# CONFIG_I2C_DEBUG_CORE is not set
994# CONFIG_I2C_DEBUG_ALGO is not set 994# CONFIG_I2C_DEBUG_ALGO is not set
995# CONFIG_I2C_DEBUG_BUS is not set 995# CONFIG_I2C_DEBUG_BUS is not set
996# CONFIG_I2C_DEBUG_CHIP is not set
997# CONFIG_SPI is not set 996# CONFIG_SPI is not set
998 997
999# 998#
@@ -1009,14 +1008,18 @@ CONFIG_GPIOLIB=y
1009# 1008#
1010# Memory mapped GPIO expanders: 1009# Memory mapped GPIO expanders:
1011# 1010#
1011# CONFIG_GPIO_IT8761E is not set
1012# CONFIG_GPIO_XILINX is not set 1012# CONFIG_GPIO_XILINX is not set
1013# CONFIG_GPIO_SCH is not set
1013 1014
1014# 1015#
1015# I2C GPIO expanders: 1016# I2C GPIO expanders:
1016# 1017#
1018# CONFIG_GPIO_MAX7300 is not set
1017# CONFIG_GPIO_MAX732X is not set 1019# CONFIG_GPIO_MAX732X is not set
1018# CONFIG_GPIO_PCA953X is not set 1020# CONFIG_GPIO_PCA953X is not set
1019# CONFIG_GPIO_PCF857X is not set 1021# CONFIG_GPIO_PCF857X is not set
1022# CONFIG_GPIO_ADP5588 is not set
1020 1023
1021# 1024#
1022# PCI GPIO expanders: 1025# PCI GPIO expanders:
@@ -1048,20 +1051,25 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1051# Multifunction device drivers
1049# 1052#
1050# CONFIG_MFD_CORE is not set 1053# CONFIG_MFD_CORE is not set
1054# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1055# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1056# CONFIG_HTC_PASIC3 is not set
1057# CONFIG_HTC_I2CPLD is not set
1053# CONFIG_UCB1400_CORE is not set 1058# CONFIG_UCB1400_CORE is not set
1054# CONFIG_TPS65010 is not set 1059# CONFIG_TPS65010 is not set
1055# CONFIG_TWL4030_CORE is not set 1060# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1061# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1062# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1063# CONFIG_PMIC_ADP5520 is not set
1064# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1065# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1066# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1067# CONFIG_MFD_WM8350_I2C is not set
1068# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1069# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_AB3100_CORE is not set 1070# CONFIG_AB3100_CORE is not set
1064# CONFIG_MFD_88PM8607 is not set 1071# CONFIG_MFD_TIMBERDALE is not set
1072# CONFIG_LPC_SCH is not set
1065# CONFIG_REGULATOR is not set 1073# CONFIG_REGULATOR is not set
1066# CONFIG_MEDIA_SUPPORT is not set 1074# CONFIG_MEDIA_SUPPORT is not set
1067 1075
@@ -1070,6 +1078,7 @@ CONFIG_SSB_POSSIBLE=y
1070# 1078#
1071# CONFIG_AGP is not set 1079# CONFIG_AGP is not set
1072CONFIG_VGA_ARB=y 1080CONFIG_VGA_ARB=y
1081CONFIG_VGA_ARB_MAX_GPUS=16
1073# CONFIG_DRM is not set 1082# CONFIG_DRM is not set
1074# CONFIG_VGASTATE is not set 1083# CONFIG_VGASTATE is not set
1075CONFIG_VIDEO_OUTPUT_CONTROL=y 1084CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1187,6 +1196,7 @@ CONFIG_SND_INTEL8X0=y
1187CONFIG_SND_PPC=y 1196CONFIG_SND_PPC=y
1188CONFIG_SND_USB=y 1197CONFIG_SND_USB=y
1189# CONFIG_SND_USB_AUDIO is not set 1198# CONFIG_SND_USB_AUDIO is not set
1199# CONFIG_SND_USB_UA101 is not set
1190# CONFIG_SND_USB_USX2Y is not set 1200# CONFIG_SND_USB_USX2Y is not set
1191# CONFIG_SND_USB_CAIAQ is not set 1201# CONFIG_SND_USB_CAIAQ is not set
1192# CONFIG_SND_SOC is not set 1202# CONFIG_SND_SOC is not set
@@ -1206,6 +1216,7 @@ CONFIG_USB_HID=y
1206# 1216#
1207# Special HID drivers 1217# Special HID drivers
1208# 1218#
1219# CONFIG_HID_3M_PCT is not set
1209CONFIG_HID_A4TECH=y 1220CONFIG_HID_A4TECH=y
1210CONFIG_HID_APPLE=y 1221CONFIG_HID_APPLE=y
1211CONFIG_HID_BELKIN=y 1222CONFIG_HID_BELKIN=y
@@ -1221,14 +1232,19 @@ CONFIG_HID_GYRATION=y
1221CONFIG_HID_LOGITECH=y 1232CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGITECH_FF is not set 1233# CONFIG_LOGITECH_FF is not set
1223# CONFIG_LOGIRUMBLEPAD2_FF is not set 1234# CONFIG_LOGIRUMBLEPAD2_FF is not set
1235# CONFIG_LOGIG940_FF is not set
1224CONFIG_HID_MICROSOFT=y 1236CONFIG_HID_MICROSOFT=y
1237# CONFIG_HID_MOSART is not set
1225CONFIG_HID_MONTEREY=y 1238CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set 1239# CONFIG_HID_NTRIG is not set
1240# CONFIG_HID_ORTEK is not set
1227CONFIG_HID_PANTHERLORD=y 1241CONFIG_HID_PANTHERLORD=y
1228# CONFIG_PANTHERLORD_FF is not set 1242# CONFIG_PANTHERLORD_FF is not set
1229CONFIG_HID_PETALYNX=y 1243CONFIG_HID_PETALYNX=y
1244# CONFIG_HID_QUANTA is not set
1230CONFIG_HID_SAMSUNG=y 1245CONFIG_HID_SAMSUNG=y
1231CONFIG_HID_SONY=y 1246CONFIG_HID_SONY=y
1247# CONFIG_HID_STANTUM is not set
1232CONFIG_HID_SUNPLUS=y 1248CONFIG_HID_SUNPLUS=y
1233# CONFIG_HID_GREENASIA is not set 1249# CONFIG_HID_GREENASIA is not set
1234# CONFIG_HID_SMARTJOYPLUS is not set 1250# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1336,7 +1352,6 @@ CONFIG_USB_STORAGE=y
1336# CONFIG_USB_RIO500 is not set 1352# CONFIG_USB_RIO500 is not set
1337# CONFIG_USB_LEGOTOWER is not set 1353# CONFIG_USB_LEGOTOWER is not set
1338# CONFIG_USB_LCD is not set 1354# CONFIG_USB_LCD is not set
1339# CONFIG_USB_BERRY_CHARGE is not set
1340# CONFIG_USB_LED is not set 1355# CONFIG_USB_LED is not set
1341# CONFIG_USB_CYPRESS_CY7C63 is not set 1356# CONFIG_USB_CYPRESS_CY7C63 is not set
1342# CONFIG_USB_CYTHERM is not set 1357# CONFIG_USB_CYTHERM is not set
@@ -1349,7 +1364,6 @@ CONFIG_USB_STORAGE=y
1349# CONFIG_USB_IOWARRIOR is not set 1364# CONFIG_USB_IOWARRIOR is not set
1350# CONFIG_USB_TEST is not set 1365# CONFIG_USB_TEST is not set
1351# CONFIG_USB_ISIGHTFW is not set 1366# CONFIG_USB_ISIGHTFW is not set
1352# CONFIG_USB_VST is not set
1353# CONFIG_USB_GADGET is not set 1367# CONFIG_USB_GADGET is not set
1354 1368
1355# 1369#
@@ -1512,6 +1526,7 @@ CONFIG_BEFS_FS=m
1512# CONFIG_BEFS_DEBUG is not set 1526# CONFIG_BEFS_DEBUG is not set
1513CONFIG_BFS_FS=m 1527CONFIG_BFS_FS=m
1514CONFIG_EFS_FS=m 1528CONFIG_EFS_FS=m
1529# CONFIG_LOGFS is not set
1515CONFIG_CRAMFS=y 1530CONFIG_CRAMFS=y
1516# CONFIG_SQUASHFS is not set 1531# CONFIG_SQUASHFS is not set
1517CONFIG_VXFS_FS=m 1532CONFIG_VXFS_FS=m
@@ -1543,6 +1558,7 @@ CONFIG_SUNRPC_GSS=y
1543CONFIG_RPCSEC_GSS_KRB5=y 1558CONFIG_RPCSEC_GSS_KRB5=y
1544# CONFIG_RPCSEC_GSS_SPKM3 is not set 1559# CONFIG_RPCSEC_GSS_SPKM3 is not set
1545# CONFIG_SMB_FS is not set 1560# CONFIG_SMB_FS is not set
1561# CONFIG_CEPH_FS is not set
1546# CONFIG_CIFS is not set 1562# CONFIG_CIFS is not set
1547# CONFIG_NCP_FS is not set 1563# CONFIG_NCP_FS is not set
1548# CONFIG_CODA_FS is not set 1564# CONFIG_CODA_FS is not set
@@ -1754,6 +1770,7 @@ CONFIG_CRYPTO_MANAGER=y
1754CONFIG_CRYPTO_MANAGER2=y 1770CONFIG_CRYPTO_MANAGER2=y
1755# CONFIG_CRYPTO_GF128MUL is not set 1771# CONFIG_CRYPTO_GF128MUL is not set
1756# CONFIG_CRYPTO_NULL is not set 1772# CONFIG_CRYPTO_NULL is not set
1773# CONFIG_CRYPTO_PCRYPT is not set
1757CONFIG_CRYPTO_WORKQUEUE=y 1774CONFIG_CRYPTO_WORKQUEUE=y
1758# CONFIG_CRYPTO_CRYPTD is not set 1775# CONFIG_CRYPTO_CRYPTD is not set
1759# CONFIG_CRYPTO_AUTHENC is not set 1776# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 6b9e6bd2c98d..45bd499630d0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:10 2010 4# Mon Apr 19 23:16:34 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,14 +90,8 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
@@ -313,6 +307,7 @@ CONFIG_ISA_DMA_API=y
313# Bus options 307# Bus options
314# 308#
315CONFIG_ZONE_DMA=y 309CONFIG_ZONE_DMA=y
310CONFIG_NEED_DMA_MAP_STATE=y
316CONFIG_FSL_SOC=y 311CONFIG_FSL_SOC=y
317# CONFIG_PCI is not set 312# CONFIG_PCI is not set
318# CONFIG_PCI_DOMAINS is not set 313# CONFIG_PCI_DOMAINS is not set
@@ -342,7 +337,6 @@ CONFIG_NET=y
342# Networking options 337# Networking options
343# 338#
344CONFIG_PACKET=y 339CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 340CONFIG_UNIX=y
347# CONFIG_NET_KEY is not set 341# CONFIG_NET_KEY is not set
348CONFIG_INET=y 342CONFIG_INET=y
@@ -515,6 +509,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 509# UBI - Unsorted block images
516# 510#
517# CONFIG_MTD_UBI is not set 511# CONFIG_MTD_UBI is not set
512CONFIG_OF_FLATTREE=y
513CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 514CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 515CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 516# CONFIG_PARPORT is not set
@@ -526,6 +522,7 @@ CONFIG_HAVE_IDE=y
526# 522#
527# SCSI device support 523# SCSI device support
528# 524#
525CONFIG_SCSI_MOD=y
529# CONFIG_RAID_ATTRS is not set 526# CONFIG_RAID_ATTRS is not set
530# CONFIG_SCSI is not set 527# CONFIG_SCSI is not set
531# CONFIG_SCSI_DMA is not set 528# CONFIG_SCSI_DMA is not set
@@ -627,6 +624,7 @@ CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 624CONFIG_SERIAL_CORE_CONSOLE=y
628CONFIG_SERIAL_CPM=y 625CONFIG_SERIAL_CPM=y
629CONFIG_SERIAL_CPM_CONSOLE=y 626CONFIG_SERIAL_CPM_CONSOLE=y
627# CONFIG_SERIAL_TIMBERDALE is not set
630# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 628# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
631CONFIG_UNIX98_PTYS=y 629CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 630# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -764,6 +762,7 @@ CONFIG_MISC_FILESYSTEMS=y
764# CONFIG_BFS_FS is not set 762# CONFIG_BFS_FS is not set
765# CONFIG_EFS_FS is not set 763# CONFIG_EFS_FS is not set
766# CONFIG_JFFS2_FS is not set 764# CONFIG_JFFS2_FS is not set
765# CONFIG_LOGFS is not set
767CONFIG_CRAMFS=y 766CONFIG_CRAMFS=y
768# CONFIG_SQUASHFS is not set 767# CONFIG_SQUASHFS is not set
769# CONFIG_VXFS_FS is not set 768# CONFIG_VXFS_FS is not set
@@ -788,6 +787,7 @@ CONFIG_SUNRPC=y
788# CONFIG_RPCSEC_GSS_KRB5 is not set 787# CONFIG_RPCSEC_GSS_KRB5 is not set
789# CONFIG_RPCSEC_GSS_SPKM3 is not set 788# CONFIG_RPCSEC_GSS_SPKM3 is not set
790# CONFIG_SMB_FS is not set 789# CONFIG_SMB_FS is not set
790# CONFIG_CEPH_FS is not set
791# CONFIG_CIFS is not set 791# CONFIG_CIFS is not set
792# CONFIG_NCP_FS is not set 792# CONFIG_NCP_FS is not set
793# CONFIG_CODA_FS is not set 793# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 5d06f2cb8e5e..68c175ea427a 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:11 2010 4# Mon Apr 19 23:16:35 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -105,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -304,6 +305,7 @@ CONFIG_ISA_DMA_API=y
304# Bus options 305# Bus options
305# 306#
306CONFIG_ZONE_DMA=y 307CONFIG_ZONE_DMA=y
308# CONFIG_NEED_DMA_MAP_STATE is not set
307CONFIG_PPC_INDIRECT_PCI=y 309CONFIG_PPC_INDIRECT_PCI=y
308CONFIG_FSL_SOC=y 310CONFIG_FSL_SOC=y
309CONFIG_PPC_PCI_CHOICE=y 311CONFIG_PPC_PCI_CHOICE=y
@@ -315,7 +317,6 @@ CONFIG_PCI_8260=y
315# CONFIG_PCIEPORTBUS is not set 317# CONFIG_PCIEPORTBUS is not set
316CONFIG_ARCH_SUPPORTS_MSI=y 318CONFIG_ARCH_SUPPORTS_MSI=y
317# CONFIG_PCI_MSI is not set 319# CONFIG_PCI_MSI is not set
318# CONFIG_PCI_LEGACY is not set
319# CONFIG_PCI_DEBUG is not set 320# CONFIG_PCI_DEBUG is not set
320# CONFIG_PCI_STUB is not set 321# CONFIG_PCI_STUB is not set
321# CONFIG_PCI_IOV is not set 322# CONFIG_PCI_IOV is not set
@@ -342,7 +343,6 @@ CONFIG_NET=y
342# Networking options 343# Networking options
343# 344#
344CONFIG_PACKET=y 345CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 346CONFIG_UNIX=y
347CONFIG_XFRM=y 347CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 348# CONFIG_XFRM_USER is not set
@@ -544,6 +544,8 @@ CONFIG_MTD_PHYSMAP_OF=y
544# UBI - Unsorted block images 544# UBI - Unsorted block images
545# 545#
546# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
547CONFIG_OF_FLATTREE=y
548CONFIG_OF_DYNAMIC=y
547CONFIG_OF_DEVICE=y 549CONFIG_OF_DEVICE=y
548CONFIG_OF_GPIO=y 550CONFIG_OF_GPIO=y
549CONFIG_OF_MDIO=y 551CONFIG_OF_MDIO=y
@@ -629,6 +631,7 @@ CONFIG_IDE_PROC_FS=y
629# 631#
630# SCSI device support 632# SCSI device support
631# 633#
634CONFIG_SCSI_MOD=y
632# CONFIG_RAID_ATTRS is not set 635# CONFIG_RAID_ATTRS is not set
633# CONFIG_SCSI is not set 636# CONFIG_SCSI is not set
634# CONFIG_SCSI_DMA is not set 637# CONFIG_SCSI_DMA is not set
@@ -734,6 +737,8 @@ CONFIG_NETDEV_10000=y
734# CONFIG_CHELSIO_T1 is not set 737# CONFIG_CHELSIO_T1 is not set
735CONFIG_CHELSIO_T3_DEPENDS=y 738CONFIG_CHELSIO_T3_DEPENDS=y
736# CONFIG_CHELSIO_T3 is not set 739# CONFIG_CHELSIO_T3 is not set
740CONFIG_CHELSIO_T4_DEPENDS=y
741# CONFIG_CHELSIO_T4 is not set
737# CONFIG_ENIC is not set 742# CONFIG_ENIC is not set
738# CONFIG_IXGBE is not set 743# CONFIG_IXGBE is not set
739# CONFIG_IXGB is not set 744# CONFIG_IXGB is not set
@@ -746,6 +751,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
746# CONFIG_MLX4_CORE is not set 751# CONFIG_MLX4_CORE is not set
747# CONFIG_TEHUTI is not set 752# CONFIG_TEHUTI is not set
748# CONFIG_BNX2X is not set 753# CONFIG_BNX2X is not set
754# CONFIG_QLCNIC is not set
749# CONFIG_QLGE is not set 755# CONFIG_QLGE is not set
750# CONFIG_SFC is not set 756# CONFIG_SFC is not set
751# CONFIG_BE2NET is not set 757# CONFIG_BE2NET is not set
@@ -859,6 +865,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
859CONFIG_SERIAL_CPM=y 865CONFIG_SERIAL_CPM=y
860CONFIG_SERIAL_CPM_CONSOLE=y 866CONFIG_SERIAL_CPM_CONSOLE=y
861# CONFIG_SERIAL_JSM is not set 867# CONFIG_SERIAL_JSM is not set
868# CONFIG_SERIAL_TIMBERDALE is not set
862# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 869# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
863CONFIG_UNIX98_PTYS=y 870CONFIG_UNIX98_PTYS=y
864# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 871# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -887,7 +894,9 @@ CONFIG_GPIOLIB=y
887# 894#
888# Memory mapped GPIO expanders: 895# Memory mapped GPIO expanders:
889# 896#
897# CONFIG_GPIO_IT8761E is not set
890# CONFIG_GPIO_XILINX is not set 898# CONFIG_GPIO_XILINX is not set
899# CONFIG_GPIO_SCH is not set
891 900
892# 901#
893# I2C GPIO expanders: 902# I2C GPIO expanders:
@@ -926,6 +935,8 @@ CONFIG_SSB_POSSIBLE=y
926# CONFIG_MFD_SM501 is not set 935# CONFIG_MFD_SM501 is not set
927# CONFIG_HTC_PASIC3 is not set 936# CONFIG_HTC_PASIC3 is not set
928# CONFIG_MFD_TMIO is not set 937# CONFIG_MFD_TMIO is not set
938# CONFIG_MFD_TIMBERDALE is not set
939# CONFIG_LPC_SCH is not set
929# CONFIG_REGULATOR is not set 940# CONFIG_REGULATOR is not set
930# CONFIG_MEDIA_SUPPORT is not set 941# CONFIG_MEDIA_SUPPORT is not set
931 942
@@ -934,6 +945,7 @@ CONFIG_SSB_POSSIBLE=y
934# 945#
935# CONFIG_AGP is not set 946# CONFIG_AGP is not set
936CONFIG_VGA_ARB=y 947CONFIG_VGA_ARB=y
948CONFIG_VGA_ARB_MAX_GPUS=16
937# CONFIG_DRM is not set 949# CONFIG_DRM is not set
938# CONFIG_VGASTATE is not set 950# CONFIG_VGASTATE is not set
939CONFIG_VIDEO_OUTPUT_CONTROL=y 951CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -996,6 +1008,7 @@ CONFIG_USB_ETH_RNDIS=y
996# CONFIG_USB_MIDI_GADGET is not set 1008# CONFIG_USB_MIDI_GADGET is not set
997# CONFIG_USB_G_PRINTER is not set 1009# CONFIG_USB_G_PRINTER is not set
998# CONFIG_USB_CDC_COMPOSITE is not set 1010# CONFIG_USB_CDC_COMPOSITE is not set
1011# CONFIG_USB_G_NOKIA is not set
999# CONFIG_USB_G_MULTI is not set 1012# CONFIG_USB_G_MULTI is not set
1000 1013
1001# 1014#
@@ -1051,6 +1064,7 @@ CONFIG_AUTOFS4_FS=y
1051# 1064#
1052# Caches 1065# Caches
1053# 1066#
1067# CONFIG_FSCACHE is not set
1054 1068
1055# 1069#
1056# CD-ROM/DVD Filesystems 1070# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 57ab5748a34d..93f4505b5ac2 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:12 2010 4# Mon Apr 19 23:16:36 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,11 +97,6 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101CONFIG_SYSFS_DEPRECATED=y
107CONFIG_SYSFS_DEPRECATED_V2=y 102CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118CONFIG_RD_BZIP2=y 113CONFIG_RD_BZIP2=y
119CONFIG_RD_LZMA=y 114CONFIG_RD_LZMA=y
115CONFIG_RD_LZO=y
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -319,6 +315,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 315# Bus options
320# 316#
321CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318CONFIG_NEED_DMA_MAP_STATE=y
322CONFIG_GENERIC_ISA_DMA=y 319CONFIG_GENERIC_ISA_DMA=y
323CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
324CONFIG_PCI=y 321CONFIG_PCI=y
@@ -327,7 +324,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 324# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 325CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 326# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
332# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
333# CONFIG_PCCARD is not set 329# CONFIG_PCCARD is not set
@@ -354,7 +350,6 @@ CONFIG_NET=y
354# Networking options 350# Networking options
355# 351#
356CONFIG_PACKET=y 352CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 353CONFIG_UNIX=y
359CONFIG_XFRM=y 354CONFIG_XFRM=y
360CONFIG_XFRM_USER=y 355CONFIG_XFRM_USER=y
@@ -533,6 +528,8 @@ CONFIG_MTD_PHYSMAP_OF=y
533# UBI - Unsorted block images 528# UBI - Unsorted block images
534# 529#
535# CONFIG_MTD_UBI is not set 530# CONFIG_MTD_UBI is not set
531CONFIG_OF_FLATTREE=y
532CONFIG_OF_DYNAMIC=y
536CONFIG_OF_DEVICE=y 533CONFIG_OF_DEVICE=y
537CONFIG_OF_I2C=y 534CONFIG_OF_I2C=y
538CONFIG_OF_MDIO=y 535CONFIG_OF_MDIO=y
@@ -569,6 +566,7 @@ CONFIG_MISC_DEVICES=y
569# CONFIG_ENCLOSURE_SERVICES is not set 566# CONFIG_ENCLOSURE_SERVICES is not set
570# CONFIG_HP_ILO is not set 567# CONFIG_HP_ILO is not set
571# CONFIG_ISL29003 is not set 568# CONFIG_ISL29003 is not set
569# CONFIG_SENSORS_TSL2550 is not set
572# CONFIG_DS1682 is not set 570# CONFIG_DS1682 is not set
573# CONFIG_C2PORT is not set 571# CONFIG_C2PORT is not set
574 572
@@ -640,6 +638,7 @@ CONFIG_BLK_DEV_IDEDMA=y
640# 638#
641# SCSI device support 639# SCSI device support
642# 640#
641CONFIG_SCSI_MOD=y
643# CONFIG_RAID_ATTRS is not set 642# CONFIG_RAID_ATTRS is not set
644CONFIG_SCSI=y 643CONFIG_SCSI=y
645CONFIG_SCSI_DMA=y 644CONFIG_SCSI_DMA=y
@@ -761,6 +760,7 @@ CONFIG_SATA_MV=y
761# CONFIG_PATA_IT821X is not set 760# CONFIG_PATA_IT821X is not set
762# CONFIG_PATA_IT8213 is not set 761# CONFIG_PATA_IT8213 is not set
763# CONFIG_PATA_JMICRON is not set 762# CONFIG_PATA_JMICRON is not set
763# CONFIG_PATA_LEGACY is not set
764# CONFIG_PATA_TRIFLEX is not set 764# CONFIG_PATA_TRIFLEX is not set
765# CONFIG_PATA_MARVELL is not set 765# CONFIG_PATA_MARVELL is not set
766# CONFIG_PATA_MPIIX is not set 766# CONFIG_PATA_MPIIX is not set
@@ -854,6 +854,7 @@ CONFIG_NET_PCI=y
854# CONFIG_PCNET32 is not set 854# CONFIG_PCNET32 is not set
855# CONFIG_AMD8111_ETH is not set 855# CONFIG_AMD8111_ETH is not set
856# CONFIG_ADAPTEC_STARFIRE is not set 856# CONFIG_ADAPTEC_STARFIRE is not set
857# CONFIG_KSZ884X_PCI is not set
857# CONFIG_B44 is not set 858# CONFIG_B44 is not set
858# CONFIG_FORCEDETH is not set 859# CONFIG_FORCEDETH is not set
859CONFIG_E100=y 860CONFIG_E100=y
@@ -907,6 +908,8 @@ CONFIG_NETDEV_10000=y
907# CONFIG_CHELSIO_T1 is not set 908# CONFIG_CHELSIO_T1 is not set
908CONFIG_CHELSIO_T3_DEPENDS=y 909CONFIG_CHELSIO_T3_DEPENDS=y
909# CONFIG_CHELSIO_T3 is not set 910# CONFIG_CHELSIO_T3 is not set
911CONFIG_CHELSIO_T4_DEPENDS=y
912# CONFIG_CHELSIO_T4 is not set
910# CONFIG_ENIC is not set 913# CONFIG_ENIC is not set
911# CONFIG_IXGBE is not set 914# CONFIG_IXGBE is not set
912# CONFIG_IXGB is not set 915# CONFIG_IXGB is not set
@@ -919,6 +922,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
919# CONFIG_MLX4_CORE is not set 922# CONFIG_MLX4_CORE is not set
920# CONFIG_TEHUTI is not set 923# CONFIG_TEHUTI is not set
921# CONFIG_BNX2X is not set 924# CONFIG_BNX2X is not set
925# CONFIG_QLCNIC is not set
922# CONFIG_QLGE is not set 926# CONFIG_QLGE is not set
923# CONFIG_SFC is not set 927# CONFIG_SFC is not set
924# CONFIG_BE2NET is not set 928# CONFIG_BE2NET is not set
@@ -1016,6 +1020,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1016CONFIG_SERIAL_CORE=y 1020CONFIG_SERIAL_CORE=y
1017CONFIG_SERIAL_CORE_CONSOLE=y 1021CONFIG_SERIAL_CORE_CONSOLE=y
1018# CONFIG_SERIAL_JSM is not set 1022# CONFIG_SERIAL_JSM is not set
1023# CONFIG_SERIAL_TIMBERDALE is not set
1019# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1024# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1020CONFIG_UNIX98_PTYS=y 1025CONFIG_UNIX98_PTYS=y
1021# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1026# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1065,6 +1070,7 @@ CONFIG_I2C_HELPER_AUTO=y
1065CONFIG_I2C_MV64XXX=y 1070CONFIG_I2C_MV64XXX=y
1066# CONFIG_I2C_OCORES is not set 1071# CONFIG_I2C_OCORES is not set
1067# CONFIG_I2C_SIMTEC is not set 1072# CONFIG_I2C_SIMTEC is not set
1073# CONFIG_I2C_XILINX is not set
1068 1074
1069# 1075#
1070# External I2C/SMBus adapter drivers 1076# External I2C/SMBus adapter drivers
@@ -1077,15 +1083,9 @@ CONFIG_I2C_MV64XXX=y
1077# Other I2C/SMBus bus drivers 1083# Other I2C/SMBus bus drivers
1078# 1084#
1079# CONFIG_I2C_PCA_PLATFORM is not set 1085# CONFIG_I2C_PCA_PLATFORM is not set
1080
1081#
1082# Miscellaneous I2C Chip support
1083#
1084# CONFIG_SENSORS_TSL2550 is not set
1085# CONFIG_I2C_DEBUG_CORE is not set 1086# CONFIG_I2C_DEBUG_CORE is not set
1086# CONFIG_I2C_DEBUG_ALGO is not set 1087# CONFIG_I2C_DEBUG_ALGO is not set
1087# CONFIG_I2C_DEBUG_BUS is not set 1088# CONFIG_I2C_DEBUG_BUS is not set
1088# CONFIG_I2C_DEBUG_CHIP is not set
1089# CONFIG_SPI is not set 1089# CONFIG_SPI is not set
1090 1090
1091# 1091#
@@ -1111,10 +1111,11 @@ CONFIG_HWMON=y
1111# CONFIG_SENSORS_ADM1029 is not set 1111# CONFIG_SENSORS_ADM1029 is not set
1112# CONFIG_SENSORS_ADM1031 is not set 1112# CONFIG_SENSORS_ADM1031 is not set
1113# CONFIG_SENSORS_ADM9240 is not set 1113# CONFIG_SENSORS_ADM9240 is not set
1114# CONFIG_SENSORS_ADT7411 is not set
1114# CONFIG_SENSORS_ADT7462 is not set 1115# CONFIG_SENSORS_ADT7462 is not set
1115# CONFIG_SENSORS_ADT7470 is not set 1116# CONFIG_SENSORS_ADT7470 is not set
1116# CONFIG_SENSORS_ADT7473 is not set
1117# CONFIG_SENSORS_ADT7475 is not set 1117# CONFIG_SENSORS_ADT7475 is not set
1118# CONFIG_SENSORS_ASC7621 is not set
1118# CONFIG_SENSORS_ATXP1 is not set 1119# CONFIG_SENSORS_ATXP1 is not set
1119# CONFIG_SENSORS_DS1621 is not set 1120# CONFIG_SENSORS_DS1621 is not set
1120# CONFIG_SENSORS_I5K_AMB is not set 1121# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1152,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1152# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1153# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1154# CONFIG_SENSORS_ADS7828 is not set
1155# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1156# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1157# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1158# CONFIG_SENSORS_TMP421 is not set
@@ -1179,18 +1181,21 @@ CONFIG_SSB_POSSIBLE=y
1179# Multifunction device drivers 1181# Multifunction device drivers
1180# 1182#
1181# CONFIG_MFD_CORE is not set 1183# CONFIG_MFD_CORE is not set
1184# CONFIG_MFD_88PM860X is not set
1182# CONFIG_MFD_SM501 is not set 1185# CONFIG_MFD_SM501 is not set
1183# CONFIG_HTC_PASIC3 is not set 1186# CONFIG_HTC_PASIC3 is not set
1184# CONFIG_TWL4030_CORE is not set 1187# CONFIG_TWL4030_CORE is not set
1185# CONFIG_MFD_TMIO is not set 1188# CONFIG_MFD_TMIO is not set
1186# CONFIG_PMIC_DA903X is not set 1189# CONFIG_PMIC_DA903X is not set
1187# CONFIG_PMIC_ADP5520 is not set 1190# CONFIG_PMIC_ADP5520 is not set
1191# CONFIG_MFD_MAX8925 is not set
1188# CONFIG_MFD_WM8400 is not set 1192# CONFIG_MFD_WM8400 is not set
1189# CONFIG_MFD_WM831X is not set 1193# CONFIG_MFD_WM831X is not set
1190# CONFIG_MFD_WM8350_I2C is not set 1194# CONFIG_MFD_WM8350_I2C is not set
1195# CONFIG_MFD_WM8994 is not set
1191# CONFIG_MFD_PCF50633 is not set 1196# CONFIG_MFD_PCF50633 is not set
1192# CONFIG_AB3100_CORE is not set 1197# CONFIG_AB3100_CORE is not set
1193# CONFIG_MFD_88PM8607 is not set 1198# CONFIG_LPC_SCH is not set
1194# CONFIG_REGULATOR is not set 1199# CONFIG_REGULATOR is not set
1195# CONFIG_MEDIA_SUPPORT is not set 1200# CONFIG_MEDIA_SUPPORT is not set
1196 1201
@@ -1199,6 +1204,7 @@ CONFIG_SSB_POSSIBLE=y
1199# 1204#
1200# CONFIG_AGP is not set 1205# CONFIG_AGP is not set
1201CONFIG_VGA_ARB=y 1206CONFIG_VGA_ARB=y
1207CONFIG_VGA_ARB_MAX_GPUS=16
1202# CONFIG_DRM is not set 1208# CONFIG_DRM is not set
1203# CONFIG_VGASTATE is not set 1209# CONFIG_VGASTATE is not set
1204CONFIG_VIDEO_OUTPUT_CONTROL=y 1210CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1231,6 +1237,7 @@ CONFIG_USB_HID=y
1231# 1237#
1232# Special HID drivers 1238# Special HID drivers
1233# 1239#
1240# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1241CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1242CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1243CONFIG_HID_BELKIN=y
@@ -1247,14 +1254,19 @@ CONFIG_HID_KENSINGTON=y
1247CONFIG_HID_LOGITECH=y 1254CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1255# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1256# CONFIG_LOGIRUMBLEPAD2_FF is not set
1257# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1258CONFIG_HID_MICROSOFT=y
1259# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1260CONFIG_HID_MONTEREY=y
1252CONFIG_HID_NTRIG=y 1261CONFIG_HID_NTRIG=y
1262CONFIG_HID_ORTEK=y
1253CONFIG_HID_PANTHERLORD=y 1263CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1264# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1265CONFIG_HID_PETALYNX=y
1266# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1267CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1268CONFIG_HID_SONY=y
1269# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1270CONFIG_HID_SUNPLUS=y
1259CONFIG_HID_GREENASIA=y 1271CONFIG_HID_GREENASIA=y
1260# CONFIG_GREENASIA_FF is not set 1272# CONFIG_GREENASIA_FF is not set
@@ -1350,7 +1362,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1350# CONFIG_USB_RIO500 is not set 1362# CONFIG_USB_RIO500 is not set
1351# CONFIG_USB_LEGOTOWER is not set 1363# CONFIG_USB_LEGOTOWER is not set
1352# CONFIG_USB_LCD is not set 1364# CONFIG_USB_LCD is not set
1353# CONFIG_USB_BERRY_CHARGE is not set
1354# CONFIG_USB_LED is not set 1365# CONFIG_USB_LED is not set
1355# CONFIG_USB_CYPRESS_CY7C63 is not set 1366# CONFIG_USB_CYPRESS_CY7C63 is not set
1356# CONFIG_USB_CYTHERM is not set 1367# CONFIG_USB_CYTHERM is not set
@@ -1363,7 +1374,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1363# CONFIG_USB_IOWARRIOR is not set 1374# CONFIG_USB_IOWARRIOR is not set
1364# CONFIG_USB_TEST is not set 1375# CONFIG_USB_TEST is not set
1365# CONFIG_USB_ISIGHTFW is not set 1376# CONFIG_USB_ISIGHTFW is not set
1366# CONFIG_USB_VST is not set
1367# CONFIG_USB_GADGET is not set 1377# CONFIG_USB_GADGET is not set
1368 1378
1369# 1379#
@@ -1516,6 +1526,7 @@ CONFIG_MISC_FILESYSTEMS=y
1516# CONFIG_BFS_FS is not set 1526# CONFIG_BFS_FS is not set
1517# CONFIG_EFS_FS is not set 1527# CONFIG_EFS_FS is not set
1518# CONFIG_JFFS2_FS is not set 1528# CONFIG_JFFS2_FS is not set
1529# CONFIG_LOGFS is not set
1519# CONFIG_CRAMFS is not set 1530# CONFIG_CRAMFS is not set
1520# CONFIG_SQUASHFS is not set 1531# CONFIG_SQUASHFS is not set
1521# CONFIG_VXFS_FS is not set 1532# CONFIG_VXFS_FS is not set
@@ -1538,6 +1549,7 @@ CONFIG_SUNRPC=y
1538# CONFIG_RPCSEC_GSS_KRB5 is not set 1549# CONFIG_RPCSEC_GSS_KRB5 is not set
1539# CONFIG_RPCSEC_GSS_SPKM3 is not set 1550# CONFIG_RPCSEC_GSS_SPKM3 is not set
1540# CONFIG_SMB_FS is not set 1551# CONFIG_SMB_FS is not set
1552# CONFIG_CEPH_FS is not set
1541# CONFIG_CIFS is not set 1553# CONFIG_CIFS is not set
1542# CONFIG_NCP_FS is not set 1554# CONFIG_NCP_FS is not set
1543# CONFIG_CODA_FS is not set 1555# CONFIG_CODA_FS is not set
@@ -1620,9 +1632,11 @@ CONFIG_CRC32=y
1620# CONFIG_CRC7 is not set 1632# CONFIG_CRC7 is not set
1621# CONFIG_LIBCRC32C is not set 1633# CONFIG_LIBCRC32C is not set
1622CONFIG_ZLIB_INFLATE=y 1634CONFIG_ZLIB_INFLATE=y
1635CONFIG_LZO_DECOMPRESS=y
1623CONFIG_DECOMPRESS_GZIP=y 1636CONFIG_DECOMPRESS_GZIP=y
1624CONFIG_DECOMPRESS_BZIP2=y 1637CONFIG_DECOMPRESS_BZIP2=y
1625CONFIG_DECOMPRESS_LZMA=y 1638CONFIG_DECOMPRESS_LZMA=y
1639CONFIG_DECOMPRESS_LZO=y
1626CONFIG_HAS_IOMEM=y 1640CONFIG_HAS_IOMEM=y
1627CONFIG_HAS_IOPORT=y 1641CONFIG_HAS_IOPORT=y
1628CONFIG_HAS_DMA=y 1642CONFIG_HAS_DMA=y
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index 32f7058bb173..3808bc2be86f 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.31-rc7 3# Linux kernel version: 2.6.34-rc4
4# Mon Aug 24 17:38:50 2009 4# Thu Apr 15 11:32:15 2010
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -9,6 +9,7 @@ CONFIG_PPC64=y
9# Processor support 9# Processor support
10# 10#
11CONFIG_PPC_BOOK3S_64=y 11CONFIG_PPC_BOOK3S_64=y
12# CONFIG_PPC_BOOK3E_64 is not set
12CONFIG_PPC_BOOK3S=y 13CONFIG_PPC_BOOK3S=y
13# CONFIG_POWER4_ONLY is not set 14# CONFIG_POWER4_ONLY is not set
14CONFIG_POWER3=y 15CONFIG_POWER3=y
@@ -35,7 +36,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y 36CONFIG_GENERIC_HARDIRQS=y
36CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
37CONFIG_HAVE_SETUP_PER_CPU_AREA=y 38CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
38CONFIG_IRQ_PER_CPU=y 40CONFIG_IRQ_PER_CPU=y
41CONFIG_NR_IRQS=512
39CONFIG_STACKTRACE_SUPPORT=y 42CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y 43CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y 44CONFIG_TRACE_IRQFLAGS_SUPPORT=y
@@ -60,6 +63,7 @@ CONFIG_AUDIT_ARCH=y
60CONFIG_GENERIC_BUG=y 63CONFIG_GENERIC_BUG=y
61CONFIG_DTC=y 64CONFIG_DTC=y
62# CONFIG_DEFAULT_UIMAGE is not set 65# CONFIG_DEFAULT_UIMAGE is not set
66CONFIG_ARCH_HIBERNATION_POSSIBLE=y
63# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
64# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
@@ -86,14 +90,15 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
86# 90#
87# RCU Subsystem 91# RCU Subsystem
88# 92#
89CONFIG_CLASSIC_RCU=y 93CONFIG_TREE_RCU=y
90# CONFIG_TREE_RCU is not set 94# CONFIG_TREE_PREEMPT_RCU is not set
91# CONFIG_PREEMPT_RCU is not set 95# CONFIG_TINY_RCU is not set
96# CONFIG_RCU_TRACE is not set
97CONFIG_RCU_FANOUT=64
98# CONFIG_RCU_FANOUT_EXACT is not set
92# CONFIG_TREE_RCU_TRACE is not set 99# CONFIG_TREE_RCU_TRACE is not set
93# CONFIG_PREEMPT_RCU_TRACE is not set
94# CONFIG_IKCONFIG is not set 100# CONFIG_IKCONFIG is not set
95CONFIG_LOG_BUF_SHIFT=17 101CONFIG_LOG_BUF_SHIFT=17
96# CONFIG_GROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 102# CONFIG_CGROUPS is not set
98# CONFIG_SYSFS_DEPRECATED_V2 is not set 103# CONFIG_SYSFS_DEPRECATED_V2 is not set
99# CONFIG_RELAY is not set 104# CONFIG_RELAY is not set
@@ -108,6 +113,7 @@ CONFIG_INITRAMFS_SOURCE=""
108CONFIG_RD_GZIP=y 113CONFIG_RD_GZIP=y
109# CONFIG_RD_BZIP2 is not set 114# CONFIG_RD_BZIP2 is not set
110# CONFIG_RD_LZMA is not set 115# CONFIG_RD_LZMA is not set
116# CONFIG_RD_LZO is not set
111CONFIG_CC_OPTIMIZE_FOR_SIZE=y 117CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112CONFIG_SYSCTL=y 118CONFIG_SYSCTL=y
113CONFIG_ANON_INODES=y 119CONFIG_ANON_INODES=y
@@ -128,21 +134,19 @@ CONFIG_TIMERFD=y
128CONFIG_EVENTFD=y 134CONFIG_EVENTFD=y
129CONFIG_SHMEM=y 135CONFIG_SHMEM=y
130CONFIG_AIO=y 136CONFIG_AIO=y
131CONFIG_HAVE_PERF_COUNTERS=y 137CONFIG_HAVE_PERF_EVENTS=y
132 138
133# 139#
134# Performance Counters 140# Kernel Performance Events And Counters
135# 141#
142# CONFIG_PERF_EVENTS is not set
136# CONFIG_PERF_COUNTERS is not set 143# CONFIG_PERF_COUNTERS is not set
137CONFIG_VM_EVENT_COUNTERS=y 144CONFIG_VM_EVENT_COUNTERS=y
138# CONFIG_STRIP_ASM_SYMS is not set
139# CONFIG_COMPAT_BRK is not set 145# CONFIG_COMPAT_BRK is not set
140CONFIG_SLAB=y 146CONFIG_SLAB=y
141# CONFIG_SLUB is not set 147# CONFIG_SLUB is not set
142# CONFIG_SLOB is not set 148# CONFIG_SLOB is not set
143CONFIG_PROFILING=y 149CONFIG_PROFILING=y
144CONFIG_TRACEPOINTS=y
145CONFIG_MARKERS=y
146CONFIG_OPROFILE=m 150CONFIG_OPROFILE=m
147CONFIG_HAVE_OPROFILE=y 151CONFIG_HAVE_OPROFILE=y
148# CONFIG_KPROBES is not set 152# CONFIG_KPROBES is not set
@@ -154,12 +158,14 @@ CONFIG_HAVE_KRETPROBES=y
154CONFIG_HAVE_ARCH_TRACEHOOK=y 158CONFIG_HAVE_ARCH_TRACEHOOK=y
155CONFIG_HAVE_DMA_ATTRS=y 159CONFIG_HAVE_DMA_ATTRS=y
156CONFIG_USE_GENERIC_SMP_HELPERS=y 160CONFIG_USE_GENERIC_SMP_HELPERS=y
161CONFIG_HAVE_DMA_API_DEBUG=y
157 162
158# 163#
159# GCOV-based kernel profiling 164# GCOV-based kernel profiling
160# 165#
161# CONFIG_GCOV_KERNEL is not set 166# CONFIG_GCOV_KERNEL is not set
162# CONFIG_SLOW_WORK is not set 167CONFIG_SLOW_WORK=y
168# CONFIG_SLOW_WORK_DEBUG is not set
163# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 169# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
164CONFIG_SLABINFO=y 170CONFIG_SLABINFO=y
165CONFIG_RT_MUTEXES=y 171CONFIG_RT_MUTEXES=y
@@ -180,14 +186,41 @@ CONFIG_BLOCK_COMPAT=y
180# IO Schedulers 186# IO Schedulers
181# 187#
182CONFIG_IOSCHED_NOOP=y 188CONFIG_IOSCHED_NOOP=y
183CONFIG_IOSCHED_AS=y
184CONFIG_IOSCHED_DEADLINE=y 189CONFIG_IOSCHED_DEADLINE=y
185CONFIG_IOSCHED_CFQ=y 190CONFIG_IOSCHED_CFQ=y
186CONFIG_DEFAULT_AS=y
187# CONFIG_DEFAULT_DEADLINE is not set 191# CONFIG_DEFAULT_DEADLINE is not set
188# CONFIG_DEFAULT_CFQ is not set 192CONFIG_DEFAULT_CFQ=y
189# CONFIG_DEFAULT_NOOP is not set 193# CONFIG_DEFAULT_NOOP is not set
190CONFIG_DEFAULT_IOSCHED="anticipatory" 194CONFIG_DEFAULT_IOSCHED="cfq"
195# CONFIG_INLINE_SPIN_TRYLOCK is not set
196# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
197# CONFIG_INLINE_SPIN_LOCK is not set
198# CONFIG_INLINE_SPIN_LOCK_BH is not set
199# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
200# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
201# CONFIG_INLINE_SPIN_UNLOCK is not set
202# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
203# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
204# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
205# CONFIG_INLINE_READ_TRYLOCK is not set
206# CONFIG_INLINE_READ_LOCK is not set
207# CONFIG_INLINE_READ_LOCK_BH is not set
208# CONFIG_INLINE_READ_LOCK_IRQ is not set
209# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
210# CONFIG_INLINE_READ_UNLOCK is not set
211# CONFIG_INLINE_READ_UNLOCK_BH is not set
212# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
213# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
214# CONFIG_INLINE_WRITE_TRYLOCK is not set
215# CONFIG_INLINE_WRITE_LOCK is not set
216# CONFIG_INLINE_WRITE_LOCK_BH is not set
217# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
218# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
219# CONFIG_INLINE_WRITE_UNLOCK is not set
220# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
221# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
222# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
223# CONFIG_MUTEX_SPIN_ON_OWNER is not set
191# CONFIG_FREEZER is not set 224# CONFIG_FREEZER is not set
192 225
193# 226#
@@ -226,7 +259,6 @@ CONFIG_PPC_CELL=y
226# 259#
227CONFIG_SPU_FS=m 260CONFIG_SPU_FS=m
228CONFIG_SPU_FS_64K_LS=y 261CONFIG_SPU_FS_64K_LS=y
229# CONFIG_SPU_TRACE is not set
230CONFIG_SPU_BASE=y 262CONFIG_SPU_BASE=y
231# CONFIG_PQ2ADS is not set 263# CONFIG_PQ2ADS is not set
232# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set 264# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
@@ -267,7 +299,6 @@ CONFIG_COMPAT_BINFMT_ELF=y
267# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
268CONFIG_BINFMT_MISC=y 300CONFIG_BINFMT_MISC=y
269CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 301CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
270# CONFIG_IOMMU_VMERGE is not set
271CONFIG_IOMMU_HELPER=y 302CONFIG_IOMMU_HELPER=y
272# CONFIG_SWIOTLB is not set 303# CONFIG_SWIOTLB is not set
273CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 304CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -276,12 +307,15 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
276CONFIG_KEXEC=y 307CONFIG_KEXEC=y
277# CONFIG_CRASH_DUMP is not set 308# CONFIG_CRASH_DUMP is not set
278# CONFIG_IRQ_ALL_CPUS is not set 309# CONFIG_IRQ_ALL_CPUS is not set
310CONFIG_SPARSE_IRQ=y
279# CONFIG_NUMA is not set 311# CONFIG_NUMA is not set
312CONFIG_MAX_ACTIVE_REGIONS=256
280CONFIG_ARCH_SELECT_MEMORY_MODEL=y 313CONFIG_ARCH_SELECT_MEMORY_MODEL=y
281CONFIG_ARCH_FLATMEM_ENABLE=y 314CONFIG_ARCH_FLATMEM_ENABLE=y
282CONFIG_ARCH_SPARSEMEM_ENABLE=y 315CONFIG_ARCH_SPARSEMEM_ENABLE=y
283CONFIG_ARCH_SPARSEMEM_DEFAULT=y 316CONFIG_ARCH_SPARSEMEM_DEFAULT=y
284CONFIG_ARCH_POPULATES_NODE_MAP=y 317CONFIG_ARCH_POPULATES_NODE_MAP=y
318CONFIG_SYS_SUPPORTS_HUGETLBFS=y
285CONFIG_SELECT_MEMORY_MODEL=y 319CONFIG_SELECT_MEMORY_MODEL=y
286# CONFIG_FLATMEM_MANUAL is not set 320# CONFIG_FLATMEM_MANUAL is not set
287# CONFIG_DISCONTIGMEM_MANUAL is not set 321# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -295,13 +329,12 @@ CONFIG_MEMORY_HOTPLUG=y
295CONFIG_MEMORY_HOTPLUG_SPARSE=y 329CONFIG_MEMORY_HOTPLUG_SPARSE=y
296# CONFIG_MEMORY_HOTREMOVE is not set 330# CONFIG_MEMORY_HOTREMOVE is not set
297CONFIG_PAGEFLAGS_EXTENDED=y 331CONFIG_PAGEFLAGS_EXTENDED=y
298CONFIG_SPLIT_PTLOCK_CPUS=4 332CONFIG_SPLIT_PTLOCK_CPUS=999999
299CONFIG_MIGRATION=y 333CONFIG_MIGRATION=y
300CONFIG_PHYS_ADDR_T_64BIT=y 334CONFIG_PHYS_ADDR_T_64BIT=y
301CONFIG_ZONE_DMA_FLAG=1 335CONFIG_ZONE_DMA_FLAG=1
302CONFIG_BOUNCE=y 336CONFIG_BOUNCE=y
303CONFIG_HAVE_MLOCK=y 337# CONFIG_KSM is not set
304CONFIG_HAVE_MLOCKED_PAGE_BIT=y
305CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 338CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
306CONFIG_ARCH_MEMORY_PROBE=y 339CONFIG_ARCH_MEMORY_PROBE=y
307CONFIG_PPC_HAS_HASH_64K=y 340CONFIG_PPC_HAS_HASH_64K=y
@@ -312,11 +345,15 @@ CONFIG_PPC_4K_PAGES=y
312CONFIG_FORCE_MAX_ZONEORDER=13 345CONFIG_FORCE_MAX_ZONEORDER=13
313CONFIG_SCHED_SMT=y 346CONFIG_SCHED_SMT=y
314CONFIG_PROC_DEVICETREE=y 347CONFIG_PROC_DEVICETREE=y
315# CONFIG_CMDLINE_BOOL is not set 348CONFIG_CMDLINE_BOOL=y
349CONFIG_CMDLINE=""
316CONFIG_EXTRA_TARGETS="" 350CONFIG_EXTRA_TARGETS=""
317CONFIG_PM=y 351CONFIG_PM=y
318CONFIG_PM_DEBUG=y 352CONFIG_PM_DEBUG=y
353# CONFIG_PM_ADVANCED_DEBUG is not set
319# CONFIG_PM_VERBOSE is not set 354# CONFIG_PM_VERBOSE is not set
355# CONFIG_HIBERNATION is not set
356# CONFIG_PM_RUNTIME is not set
320# CONFIG_SECCOMP is not set 357# CONFIG_SECCOMP is not set
321CONFIG_ISA_DMA_API=y 358CONFIG_ISA_DMA_API=y
322 359
@@ -324,6 +361,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 361# Bus options
325# 362#
326CONFIG_ZONE_DMA=y 363CONFIG_ZONE_DMA=y
364CONFIG_NEED_DMA_MAP_STATE=y
327CONFIG_GENERIC_ISA_DMA=y 365CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_PCI_CHOICE=y 366CONFIG_PPC_PCI_CHOICE=y
329# CONFIG_PCI is not set 367# CONFIG_PCI is not set
@@ -337,12 +375,12 @@ CONFIG_PAGE_OFFSET=0xc000000000000000
337CONFIG_KERNEL_START=0xc000000000000000 375CONFIG_KERNEL_START=0xc000000000000000
338CONFIG_PHYSICAL_START=0x00000000 376CONFIG_PHYSICAL_START=0x00000000
339CONFIG_NET=y 377CONFIG_NET=y
378CONFIG_COMPAT_NETLINK_MESSAGES=y
340 379
341# 380#
342# Networking options 381# Networking options
343# 382#
344CONFIG_PACKET=y 383CONFIG_PACKET=y
345CONFIG_PACKET_MMAP=y
346CONFIG_UNIX=y 384CONFIG_UNIX=y
347CONFIG_XFRM=y 385CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 386# CONFIG_XFRM_USER is not set
@@ -392,6 +430,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
392CONFIG_INET6_XFRM_MODE_BEET=y 430CONFIG_INET6_XFRM_MODE_BEET=y
393# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 431# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
394CONFIG_IPV6_SIT=y 432CONFIG_IPV6_SIT=y
433# CONFIG_IPV6_SIT_6RD is not set
395CONFIG_IPV6_NDISC_NODETYPE=y 434CONFIG_IPV6_NDISC_NODETYPE=y
396# CONFIG_IPV6_TUNNEL is not set 435# CONFIG_IPV6_TUNNEL is not set
397# CONFIG_IPV6_MULTIPLE_TABLES is not set 436# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -400,6 +439,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
400# CONFIG_NETFILTER is not set 439# CONFIG_NETFILTER is not set
401# CONFIG_IP_DCCP is not set 440# CONFIG_IP_DCCP is not set
402# CONFIG_IP_SCTP is not set 441# CONFIG_IP_SCTP is not set
442# CONFIG_RDS is not set
403# CONFIG_TIPC is not set 443# CONFIG_TIPC is not set
404# CONFIG_ATM is not set 444# CONFIG_ATM is not set
405# CONFIG_BRIDGE is not set 445# CONFIG_BRIDGE is not set
@@ -422,7 +462,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
422# Network testing 462# Network testing
423# 463#
424# CONFIG_NET_PKTGEN is not set 464# CONFIG_NET_PKTGEN is not set
425# CONFIG_NET_DROP_MONITOR is not set
426# CONFIG_HAMRADIO is not set 465# CONFIG_HAMRADIO is not set
427# CONFIG_CAN is not set 466# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 467# CONFIG_IRDA is not set
@@ -445,27 +484,30 @@ CONFIG_BT_HCIBTUSB=m
445# CONFIG_BT_HCIBPA10X is not set 484# CONFIG_BT_HCIBPA10X is not set
446# CONFIG_BT_HCIBFUSB is not set 485# CONFIG_BT_HCIBFUSB is not set
447# CONFIG_BT_HCIVHCI is not set 486# CONFIG_BT_HCIVHCI is not set
487# CONFIG_BT_MRVL is not set
488# CONFIG_BT_ATH3K is not set
448# CONFIG_AF_RXRPC is not set 489# CONFIG_AF_RXRPC is not set
449CONFIG_WIRELESS=y 490CONFIG_WIRELESS=y
491CONFIG_WIRELESS_EXT=y
492CONFIG_WEXT_CORE=y
493CONFIG_WEXT_PROC=y
450CONFIG_CFG80211=m 494CONFIG_CFG80211=m
495# CONFIG_NL80211_TESTMODE is not set
496# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
451# CONFIG_CFG80211_REG_DEBUG is not set 497# CONFIG_CFG80211_REG_DEBUG is not set
498CONFIG_CFG80211_DEFAULT_PS=y
452# CONFIG_CFG80211_DEBUGFS is not set 499# CONFIG_CFG80211_DEBUGFS is not set
453# CONFIG_WIRELESS_OLD_REGULATORY is not set 500# CONFIG_CFG80211_INTERNAL_REGDB is not set
454CONFIG_WIRELESS_EXT=y 501CONFIG_CFG80211_WEXT=y
455# CONFIG_WIRELESS_EXT_SYSFS is not set 502# CONFIG_WIRELESS_EXT_SYSFS is not set
456# CONFIG_LIB80211 is not set 503# CONFIG_LIB80211 is not set
457CONFIG_MAC80211=m 504CONFIG_MAC80211=m
458CONFIG_MAC80211_DEFAULT_PS=y
459CONFIG_MAC80211_DEFAULT_PS_VALUE=1
460
461#
462# Rate control algorithm selection
463#
464CONFIG_MAC80211_RC_PID=y 505CONFIG_MAC80211_RC_PID=y
465# CONFIG_MAC80211_RC_MINSTREL is not set 506# CONFIG_MAC80211_RC_MINSTREL is not set
466CONFIG_MAC80211_RC_DEFAULT_PID=y 507CONFIG_MAC80211_RC_DEFAULT_PID=y
467# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set 508# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
468CONFIG_MAC80211_RC_DEFAULT="pid" 509CONFIG_MAC80211_RC_DEFAULT="pid"
510# CONFIG_MAC80211_MESH is not set
469# CONFIG_MAC80211_LEDS is not set 511# CONFIG_MAC80211_LEDS is not set
470# CONFIG_MAC80211_DEBUGFS is not set 512# CONFIG_MAC80211_DEBUGFS is not set
471# CONFIG_MAC80211_DEBUG_MENU is not set 513# CONFIG_MAC80211_DEBUG_MENU is not set
@@ -481,6 +523,7 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
481# Generic Driver Options 523# Generic Driver Options
482# 524#
483CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 525CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
526# CONFIG_DEVTMPFS is not set
484CONFIG_STANDALONE=y 527CONFIG_STANDALONE=y
485CONFIG_PREVENT_FIRMWARE_BUILD=y 528CONFIG_PREVENT_FIRMWARE_BUILD=y
486CONFIG_FW_LOADER=y 529CONFIG_FW_LOADER=y
@@ -491,6 +534,8 @@ CONFIG_EXTRA_FIRMWARE=""
491# CONFIG_SYS_HYPERVISOR is not set 534# CONFIG_SYS_HYPERVISOR is not set
492# CONFIG_CONNECTOR is not set 535# CONFIG_CONNECTOR is not set
493# CONFIG_MTD is not set 536# CONFIG_MTD is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
494CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
495# CONFIG_PARPORT is not set 540# CONFIG_PARPORT is not set
496CONFIG_BLK_DEV=y 541CONFIG_BLK_DEV=y
@@ -498,6 +543,10 @@ CONFIG_BLK_DEV=y
498# CONFIG_BLK_DEV_COW_COMMON is not set 543# CONFIG_BLK_DEV_COW_COMMON is not set
499CONFIG_BLK_DEV_LOOP=y 544CONFIG_BLK_DEV_LOOP=y
500# CONFIG_BLK_DEV_CRYPTOLOOP is not set 545# CONFIG_BLK_DEV_CRYPTOLOOP is not set
546
547#
548# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
549#
501# CONFIG_BLK_DEV_NBD is not set 550# CONFIG_BLK_DEV_NBD is not set
502# CONFIG_BLK_DEV_UB is not set 551# CONFIG_BLK_DEV_UB is not set
503CONFIG_BLK_DEV_RAM=y 552CONFIG_BLK_DEV_RAM=y
@@ -521,6 +570,7 @@ CONFIG_HAVE_IDE=y
521# 570#
522# SCSI device support 571# SCSI device support
523# 572#
573CONFIG_SCSI_MOD=y
524# CONFIG_RAID_ATTRS is not set 574# CONFIG_RAID_ATTRS is not set
525CONFIG_SCSI=y 575CONFIG_SCSI=y
526CONFIG_SCSI_DMA=y 576CONFIG_SCSI_DMA=y
@@ -590,30 +640,27 @@ CONFIG_MII=m
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
591# CONFIG_B44 is not set 641# CONFIG_B44 is not set
592# CONFIG_KS8842 is not set 642# CONFIG_KS8842 is not set
643# CONFIG_KS8851_MLL is not set
593CONFIG_NETDEV_1000=y 644CONFIG_NETDEV_1000=y
594CONFIG_GELIC_NET=y 645CONFIG_GELIC_NET=y
595CONFIG_GELIC_WIRELESS=y 646CONFIG_GELIC_WIRELESS=y
596# CONFIG_NETDEV_10000 is not set 647# CONFIG_NETDEV_10000 is not set
597 648CONFIG_WLAN=y
598#
599# Wireless LAN
600#
601# CONFIG_WLAN_PRE80211 is not set
602CONFIG_WLAN_80211=y
603# CONFIG_LIBERTAS is not set
604# CONFIG_LIBERTAS_THINFIRM is not set 649# CONFIG_LIBERTAS_THINFIRM is not set
605# CONFIG_AT76C50X_USB is not set 650# CONFIG_AT76C50X_USB is not set
606# CONFIG_USB_ZD1201 is not set 651# CONFIG_USB_ZD1201 is not set
607# CONFIG_USB_NET_RNDIS_WLAN is not set 652# CONFIG_USB_NET_RNDIS_WLAN is not set
608# CONFIG_RTL8187 is not set 653# CONFIG_RTL8187 is not set
609# CONFIG_MAC80211_HWSIM is not set 654# CONFIG_MAC80211_HWSIM is not set
610# CONFIG_P54_COMMON is not set 655# CONFIG_ATH_COMMON is not set
611# CONFIG_AR9170_USB is not set
612# CONFIG_HOSTAP is not set
613# CONFIG_B43 is not set 656# CONFIG_B43 is not set
614# CONFIG_B43LEGACY is not set 657# CONFIG_B43LEGACY is not set
615# CONFIG_ZD1211RW is not set 658# CONFIG_HOSTAP is not set
659# CONFIG_LIBERTAS is not set
660# CONFIG_P54_COMMON is not set
616# CONFIG_RT2X00 is not set 661# CONFIG_RT2X00 is not set
662# CONFIG_WL12XX is not set
663# CONFIG_ZD1211RW is not set
617 664
618# 665#
619# Enable WiMAX (Networking options) to see the WiMAX drivers 666# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +678,7 @@ CONFIG_USB_NET_AX8817X=m
631# CONFIG_USB_NET_CDCETHER is not set 678# CONFIG_USB_NET_CDCETHER is not set
632# CONFIG_USB_NET_CDC_EEM is not set 679# CONFIG_USB_NET_CDC_EEM is not set
633# CONFIG_USB_NET_DM9601 is not set 680# CONFIG_USB_NET_DM9601 is not set
681# CONFIG_USB_NET_SMSC75XX is not set
634# CONFIG_USB_NET_SMSC95XX is not set 682# CONFIG_USB_NET_SMSC95XX is not set
635# CONFIG_USB_NET_GL620A is not set 683# CONFIG_USB_NET_GL620A is not set
636# CONFIG_USB_NET_NET1080 is not set 684# CONFIG_USB_NET_NET1080 is not set
@@ -665,6 +713,7 @@ CONFIG_SLHC=m
665CONFIG_INPUT=y 713CONFIG_INPUT=y
666CONFIG_INPUT_FF_MEMLESS=m 714CONFIG_INPUT_FF_MEMLESS=m
667# CONFIG_INPUT_POLLDEV is not set 715# CONFIG_INPUT_POLLDEV is not set
716# CONFIG_INPUT_SPARSEKMAP is not set
668 717
669# 718#
670# Userland interfaces 719# Userland interfaces
@@ -712,6 +761,8 @@ CONFIG_DEVKMEM=y
712# 761#
713# Non-8250 serial port support 762# Non-8250 serial port support
714# 763#
764# CONFIG_SERIAL_TIMBERDALE is not set
765# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
715CONFIG_UNIX98_PTYS=y 766CONFIG_UNIX98_PTYS=y
716# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 767# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
717# CONFIG_LEGACY_PTYS is not set 768# CONFIG_LEGACY_PTYS is not set
@@ -735,7 +786,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
735# CONFIG_POWER_SUPPLY is not set 786# CONFIG_POWER_SUPPLY is not set
736# CONFIG_HWMON is not set 787# CONFIG_HWMON is not set
737# CONFIG_THERMAL is not set 788# CONFIG_THERMAL is not set
738# CONFIG_THERMAL_HWMON is not set
739# CONFIG_WATCHDOG is not set 789# CONFIG_WATCHDOG is not set
740CONFIG_SSB_POSSIBLE=y 790CONFIG_SSB_POSSIBLE=y
741 791
@@ -841,13 +891,13 @@ CONFIG_SND_PS3=m
841CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 891CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
842CONFIG_SND_USB=y 892CONFIG_SND_USB=y
843CONFIG_SND_USB_AUDIO=m 893CONFIG_SND_USB_AUDIO=m
894# CONFIG_SND_USB_UA101 is not set
844# CONFIG_SND_USB_USX2Y is not set 895# CONFIG_SND_USB_USX2Y is not set
845# CONFIG_SND_USB_CAIAQ is not set 896# CONFIG_SND_USB_CAIAQ is not set
846# CONFIG_SND_SOC is not set 897# CONFIG_SND_SOC is not set
847# CONFIG_SOUND_PRIME is not set 898# CONFIG_SOUND_PRIME is not set
848CONFIG_HID_SUPPORT=y 899CONFIG_HID_SUPPORT=y
849CONFIG_HID=y 900CONFIG_HID=y
850# CONFIG_HID_DEBUG is not set
851CONFIG_HIDRAW=y 901CONFIG_HIDRAW=y
852 902
853# 903#
@@ -866,6 +916,7 @@ CONFIG_USB_HIDDEV=y
866# 916#
867# Special HID drivers 917# Special HID drivers
868# 918#
919# CONFIG_HID_3M_PCT is not set
869# CONFIG_HID_A4TECH is not set 920# CONFIG_HID_A4TECH is not set
870CONFIG_HID_APPLE=m 921CONFIG_HID_APPLE=m
871CONFIG_HID_BELKIN=m 922CONFIG_HID_BELKIN=m
@@ -876,17 +927,24 @@ CONFIG_HID_CHERRY=m
876CONFIG_HID_EZKEY=m 927CONFIG_HID_EZKEY=m
877# CONFIG_HID_KYE is not set 928# CONFIG_HID_KYE is not set
878# CONFIG_HID_GYRATION is not set 929# CONFIG_HID_GYRATION is not set
930CONFIG_HID_TWINHAN=m
879# CONFIG_HID_KENSINGTON is not set 931# CONFIG_HID_KENSINGTON is not set
880CONFIG_HID_LOGITECH=m 932CONFIG_HID_LOGITECH=m
881# CONFIG_LOGITECH_FF is not set 933# CONFIG_LOGITECH_FF is not set
882# CONFIG_LOGIRUMBLEPAD2_FF is not set 934# CONFIG_LOGIRUMBLEPAD2_FF is not set
935# CONFIG_LOGIG940_FF is not set
936# CONFIG_HID_MAGICMOUSE is not set
883CONFIG_HID_MICROSOFT=m 937CONFIG_HID_MICROSOFT=m
938# CONFIG_HID_MOSART is not set
884# CONFIG_HID_MONTEREY is not set 939# CONFIG_HID_MONTEREY is not set
885# CONFIG_HID_NTRIG is not set 940# CONFIG_HID_NTRIG is not set
941# CONFIG_HID_ORTEK is not set
886# CONFIG_HID_PANTHERLORD is not set 942# CONFIG_HID_PANTHERLORD is not set
887# CONFIG_HID_PETALYNX is not set 943# CONFIG_HID_PETALYNX is not set
944# CONFIG_HID_QUANTA is not set
888# CONFIG_HID_SAMSUNG is not set 945# CONFIG_HID_SAMSUNG is not set
889CONFIG_HID_SONY=m 946CONFIG_HID_SONY=m
947# CONFIG_HID_STANTUM is not set
890CONFIG_HID_SUNPLUS=m 948CONFIG_HID_SUNPLUS=m
891# CONFIG_HID_GREENASIA is not set 949# CONFIG_HID_GREENASIA is not set
892CONFIG_HID_SMARTJOYPLUS=m 950CONFIG_HID_SMARTJOYPLUS=m
@@ -901,7 +959,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
901CONFIG_USB_ARCH_HAS_EHCI=y 959CONFIG_USB_ARCH_HAS_EHCI=y
902CONFIG_USB=m 960CONFIG_USB=m
903# CONFIG_USB_DEBUG is not set 961# CONFIG_USB_DEBUG is not set
904# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set 962CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
905 963
906# 964#
907# Miscellaneous USB options 965# Miscellaneous USB options
@@ -909,7 +967,6 @@ CONFIG_USB=m
909CONFIG_USB_DEVICEFS=y 967CONFIG_USB_DEVICEFS=y
910# CONFIG_USB_DEVICE_CLASS is not set 968# CONFIG_USB_DEVICE_CLASS is not set
911# CONFIG_USB_DYNAMIC_MINORS is not set 969# CONFIG_USB_DYNAMIC_MINORS is not set
912CONFIG_USB_SUSPEND=y
913# CONFIG_USB_OTG is not set 970# CONFIG_USB_OTG is not set
914# CONFIG_USB_OTG_WHITELIST is not set 971# CONFIG_USB_OTG_WHITELIST is not set
915# CONFIG_USB_OTG_BLACKLIST_HUB is not set 972# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -923,12 +980,13 @@ CONFIG_USB_MON=m
923# CONFIG_USB_C67X00_HCD is not set 980# CONFIG_USB_C67X00_HCD is not set
924CONFIG_USB_EHCI_HCD=m 981CONFIG_USB_EHCI_HCD=m
925# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 982# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
926# CONFIG_USB_EHCI_TT_NEWSCHED is not set 983CONFIG_USB_EHCI_TT_NEWSCHED=y
927CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 984CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
928# CONFIG_USB_EHCI_HCD_PPC_OF is not set 985# CONFIG_USB_EHCI_HCD_PPC_OF is not set
929# CONFIG_USB_OXU210HP_HCD is not set 986# CONFIG_USB_OXU210HP_HCD is not set
930# CONFIG_USB_ISP116X_HCD is not set 987# CONFIG_USB_ISP116X_HCD is not set
931# CONFIG_USB_ISP1760_HCD is not set 988# CONFIG_USB_ISP1760_HCD is not set
989# CONFIG_USB_ISP1362_HCD is not set
932CONFIG_USB_OHCI_HCD=m 990CONFIG_USB_OHCI_HCD=m
933# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set 991# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
934# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 992# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
@@ -995,7 +1053,6 @@ CONFIG_USB_STORAGE=m
995# CONFIG_USB_RIO500 is not set 1053# CONFIG_USB_RIO500 is not set
996# CONFIG_USB_LEGOTOWER is not set 1054# CONFIG_USB_LEGOTOWER is not set
997# CONFIG_USB_LCD is not set 1055# CONFIG_USB_LCD is not set
998# CONFIG_USB_BERRY_CHARGE is not set
999# CONFIG_USB_LED is not set 1056# CONFIG_USB_LED is not set
1000# CONFIG_USB_CYPRESS_CY7C63 is not set 1057# CONFIG_USB_CYPRESS_CY7C63 is not set
1001# CONFIG_USB_CYTHERM is not set 1058# CONFIG_USB_CYTHERM is not set
@@ -1008,7 +1065,6 @@ CONFIG_USB_STORAGE=m
1008# CONFIG_USB_IOWARRIOR is not set 1065# CONFIG_USB_IOWARRIOR is not set
1009# CONFIG_USB_TEST is not set 1066# CONFIG_USB_TEST is not set
1010# CONFIG_USB_ISIGHTFW is not set 1067# CONFIG_USB_ISIGHTFW is not set
1011# CONFIG_USB_VST is not set
1012# CONFIG_USB_GADGET is not set 1068# CONFIG_USB_GADGET is not set
1013 1069
1014# 1070#
@@ -1048,7 +1104,9 @@ CONFIG_RTC_INTF_DEV=y
1048# CONFIG_RTC_DRV_M48T86 is not set 1104# CONFIG_RTC_DRV_M48T86 is not set
1049# CONFIG_RTC_DRV_M48T35 is not set 1105# CONFIG_RTC_DRV_M48T35 is not set
1050# CONFIG_RTC_DRV_M48T59 is not set 1106# CONFIG_RTC_DRV_M48T59 is not set
1107# CONFIG_RTC_DRV_MSM6242 is not set
1051# CONFIG_RTC_DRV_BQ4802 is not set 1108# CONFIG_RTC_DRV_BQ4802 is not set
1109# CONFIG_RTC_DRV_RP5C01 is not set
1052# CONFIG_RTC_DRV_V3020 is not set 1110# CONFIG_RTC_DRV_V3020 is not set
1053 1111
1054# 1112#
@@ -1077,10 +1135,10 @@ CONFIG_EXT3_FS_XATTR=y
1077# CONFIG_EXT3_FS_POSIX_ACL is not set 1135# CONFIG_EXT3_FS_POSIX_ACL is not set
1078# CONFIG_EXT3_FS_SECURITY is not set 1136# CONFIG_EXT3_FS_SECURITY is not set
1079CONFIG_EXT4_FS=y 1137CONFIG_EXT4_FS=y
1080# CONFIG_EXT4DEV_COMPAT is not set
1081CONFIG_EXT4_FS_XATTR=y 1138CONFIG_EXT4_FS_XATTR=y
1082# CONFIG_EXT4_FS_POSIX_ACL is not set 1139# CONFIG_EXT4_FS_POSIX_ACL is not set
1083# CONFIG_EXT4_FS_SECURITY is not set 1140# CONFIG_EXT4_FS_SECURITY is not set
1141# CONFIG_EXT4_DEBUG is not set
1084CONFIG_JBD=m 1142CONFIG_JBD=m
1085# CONFIG_JBD_DEBUG is not set 1143# CONFIG_JBD_DEBUG is not set
1086CONFIG_JBD2=y 1144CONFIG_JBD2=y
@@ -1093,6 +1151,7 @@ CONFIG_FS_MBCACHE=y
1093# CONFIG_GFS2_FS is not set 1151# CONFIG_GFS2_FS is not set
1094# CONFIG_OCFS2_FS is not set 1152# CONFIG_OCFS2_FS is not set
1095# CONFIG_BTRFS_FS is not set 1153# CONFIG_BTRFS_FS is not set
1154# CONFIG_NILFS2_FS is not set
1096CONFIG_FILE_LOCKING=y 1155CONFIG_FILE_LOCKING=y
1097CONFIG_FSNOTIFY=y 1156CONFIG_FSNOTIFY=y
1098CONFIG_DNOTIFY=y 1157CONFIG_DNOTIFY=y
@@ -1154,6 +1213,7 @@ CONFIG_MISC_FILESYSTEMS=y
1154# CONFIG_BEFS_FS is not set 1213# CONFIG_BEFS_FS is not set
1155# CONFIG_BFS_FS is not set 1214# CONFIG_BFS_FS is not set
1156# CONFIG_EFS_FS is not set 1215# CONFIG_EFS_FS is not set
1216# CONFIG_LOGFS is not set
1157# CONFIG_CRAMFS is not set 1217# CONFIG_CRAMFS is not set
1158# CONFIG_SQUASHFS is not set 1218# CONFIG_SQUASHFS is not set
1159# CONFIG_VXFS_FS is not set 1219# CONFIG_VXFS_FS is not set
@@ -1164,7 +1224,6 @@ CONFIG_MISC_FILESYSTEMS=y
1164# CONFIG_ROMFS_FS is not set 1224# CONFIG_ROMFS_FS is not set
1165# CONFIG_SYSV_FS is not set 1225# CONFIG_SYSV_FS is not set
1166# CONFIG_UFS_FS is not set 1226# CONFIG_UFS_FS is not set
1167# CONFIG_NILFS2_FS is not set
1168CONFIG_NETWORK_FILESYSTEMS=y 1227CONFIG_NETWORK_FILESYSTEMS=y
1169CONFIG_NFS_FS=y 1228CONFIG_NFS_FS=y
1170CONFIG_NFS_V3=y 1229CONFIG_NFS_V3=y
@@ -1181,6 +1240,7 @@ CONFIG_SUNRPC_GSS=y
1181CONFIG_RPCSEC_GSS_KRB5=y 1240CONFIG_RPCSEC_GSS_KRB5=y
1182# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1183# CONFIG_SMB_FS is not set 1242# CONFIG_SMB_FS is not set
1243# CONFIG_CEPH_FS is not set
1184CONFIG_CIFS=m 1244CONFIG_CIFS=m
1185# CONFIG_CIFS_STATS is not set 1245# CONFIG_CIFS_STATS is not set
1186# CONFIG_CIFS_WEAK_PW_HASH is not set 1246# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1237,7 +1297,7 @@ CONFIG_NLS_ISO8859_1=y
1237# CONFIG_NLS_KOI8_U is not set 1297# CONFIG_NLS_KOI8_U is not set
1238# CONFIG_NLS_UTF8 is not set 1298# CONFIG_NLS_UTF8 is not set
1239# CONFIG_DLM is not set 1299# CONFIG_DLM is not set
1240CONFIG_BINARY_PRINTF=y 1300# CONFIG_BINARY_PRINTF is not set
1241 1301
1242# 1302#
1243# Library routines 1303# Library routines
@@ -1270,6 +1330,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1270CONFIG_ENABLE_MUST_CHECK=y 1330CONFIG_ENABLE_MUST_CHECK=y
1271CONFIG_FRAME_WARN=2048 1331CONFIG_FRAME_WARN=2048
1272CONFIG_MAGIC_SYSRQ=y 1332CONFIG_MAGIC_SYSRQ=y
1333# CONFIG_STRIP_ASM_SYMS is not set
1273# CONFIG_UNUSED_SYMBOLS is not set 1334# CONFIG_UNUSED_SYMBOLS is not set
1274CONFIG_DEBUG_FS=y 1335CONFIG_DEBUG_FS=y
1275# CONFIG_HEADERS_CHECK is not set 1336# CONFIG_HEADERS_CHECK is not set
@@ -1292,6 +1353,7 @@ CONFIG_DEBUG_SPINLOCK=y
1292CONFIG_DEBUG_MUTEXES=y 1353CONFIG_DEBUG_MUTEXES=y
1293CONFIG_DEBUG_LOCK_ALLOC=y 1354CONFIG_DEBUG_LOCK_ALLOC=y
1294CONFIG_PROVE_LOCKING=y 1355CONFIG_PROVE_LOCKING=y
1356# CONFIG_PROVE_RCU is not set
1295CONFIG_LOCKDEP=y 1357CONFIG_LOCKDEP=y
1296# CONFIG_LOCK_STAT is not set 1358# CONFIG_LOCK_STAT is not set
1297CONFIG_DEBUG_LOCKDEP=y 1359CONFIG_DEBUG_LOCKDEP=y
@@ -1308,26 +1370,27 @@ CONFIG_DEBUG_MEMORY_INIT=y
1308CONFIG_DEBUG_LIST=y 1370CONFIG_DEBUG_LIST=y
1309# CONFIG_DEBUG_SG is not set 1371# CONFIG_DEBUG_SG is not set
1310# CONFIG_DEBUG_NOTIFIERS is not set 1372# CONFIG_DEBUG_NOTIFIERS is not set
1373# CONFIG_DEBUG_CREDENTIALS is not set
1311# CONFIG_RCU_TORTURE_TEST is not set 1374# CONFIG_RCU_TORTURE_TEST is not set
1312# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1375# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1313# CONFIG_BACKTRACE_SELF_TEST is not set 1376# CONFIG_BACKTRACE_SELF_TEST is not set
1314# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1377# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1378# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1379# CONFIG_LKDTM is not set
1315# CONFIG_FAULT_INJECTION is not set 1380# CONFIG_FAULT_INJECTION is not set
1316# CONFIG_LATENCYTOP is not set 1381# CONFIG_LATENCYTOP is not set
1317CONFIG_SYSCTL_SYSCALL_CHECK=y 1382CONFIG_SYSCTL_SYSCALL_CHECK=y
1318# CONFIG_DEBUG_PAGEALLOC is not set 1383# CONFIG_DEBUG_PAGEALLOC is not set
1319CONFIG_NOP_TRACER=y
1320CONFIG_HAVE_FUNCTION_TRACER=y 1384CONFIG_HAVE_FUNCTION_TRACER=y
1321CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1385CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1322CONFIG_HAVE_DYNAMIC_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1323CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1324CONFIG_RING_BUFFER=y 1388CONFIG_RING_BUFFER=y
1325CONFIG_EVENT_TRACING=y 1389CONFIG_RING_BUFFER_ALLOW_SWAP=y
1326CONFIG_CONTEXT_SWITCH_TRACER=y
1327CONFIG_TRACING=y
1328CONFIG_TRACING_SUPPORT=y 1390CONFIG_TRACING_SUPPORT=y
1329# CONFIG_FTRACE is not set 1391# CONFIG_FTRACE is not set
1330# CONFIG_DYNAMIC_DEBUG is not set 1392# CONFIG_DYNAMIC_DEBUG is not set
1393# CONFIG_DMA_API_DEBUG is not set
1331# CONFIG_SAMPLES is not set 1394# CONFIG_SAMPLES is not set
1332CONFIG_HAVE_ARCH_KGDB=y 1395CONFIG_HAVE_ARCH_KGDB=y
1333# CONFIG_KGDB is not set 1396# CONFIG_KGDB is not set
@@ -1352,13 +1415,16 @@ CONFIG_IRQSTACKS=y
1352# CONFIG_KEYS is not set 1415# CONFIG_KEYS is not set
1353# CONFIG_SECURITY is not set 1416# CONFIG_SECURITY is not set
1354# CONFIG_SECURITYFS is not set 1417# CONFIG_SECURITYFS is not set
1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1418# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1419# CONFIG_DEFAULT_SECURITY_SMACK is not set
1420# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1421CONFIG_DEFAULT_SECURITY_DAC=y
1422CONFIG_DEFAULT_SECURITY=""
1356CONFIG_CRYPTO=y 1423CONFIG_CRYPTO=y
1357 1424
1358# 1425#
1359# Crypto core or helper 1426# Crypto core or helper
1360# 1427#
1361# CONFIG_CRYPTO_FIPS is not set
1362CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_ALGAPI2=y 1429CONFIG_CRYPTO_ALGAPI2=y
1364CONFIG_CRYPTO_AEAD=m 1430CONFIG_CRYPTO_AEAD=m
@@ -1374,6 +1440,7 @@ CONFIG_CRYPTO_MANAGER=y
1374CONFIG_CRYPTO_MANAGER2=y 1440CONFIG_CRYPTO_MANAGER2=y
1375CONFIG_CRYPTO_GF128MUL=m 1441CONFIG_CRYPTO_GF128MUL=m
1376# CONFIG_CRYPTO_NULL is not set 1442# CONFIG_CRYPTO_NULL is not set
1443# CONFIG_CRYPTO_PCRYPT is not set
1377CONFIG_CRYPTO_WORKQUEUE=y 1444CONFIG_CRYPTO_WORKQUEUE=y
1378# CONFIG_CRYPTO_CRYPTD is not set 1445# CONFIG_CRYPTO_CRYPTD is not set
1379# CONFIG_CRYPTO_AUTHENC is not set 1446# CONFIG_CRYPTO_AUTHENC is not set
@@ -1402,11 +1469,13 @@ CONFIG_CRYPTO_PCBC=m
1402# 1469#
1403# CONFIG_CRYPTO_HMAC is not set 1470# CONFIG_CRYPTO_HMAC is not set
1404# CONFIG_CRYPTO_XCBC is not set 1471# CONFIG_CRYPTO_XCBC is not set
1472# CONFIG_CRYPTO_VMAC is not set
1405 1473
1406# 1474#
1407# Digest 1475# Digest
1408# 1476#
1409# CONFIG_CRYPTO_CRC32C is not set 1477# CONFIG_CRYPTO_CRC32C is not set
1478CONFIG_CRYPTO_GHASH=m
1410# CONFIG_CRYPTO_MD4 is not set 1479# CONFIG_CRYPTO_MD4 is not set
1411CONFIG_CRYPTO_MD5=y 1480CONFIG_CRYPTO_MD5=y
1412CONFIG_CRYPTO_MICHAEL_MIC=m 1481CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index f2f832161463..b1625801526e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:13 2010 4# Mon Apr 19 23:16:37 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -314,6 +309,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 309# Bus options
315# 310#
316CONFIG_ZONE_DMA=y 311CONFIG_ZONE_DMA=y
312# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_GENERIC_ISA_DMA=y 313CONFIG_GENERIC_ISA_DMA=y
318CONFIG_PPC_INDIRECT_PCI=y 314CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 315CONFIG_FSL_SOC=y
@@ -323,7 +319,6 @@ CONFIG_PCI_SYSCALL=y
323# CONFIG_PCIEPORTBUS is not set 319# CONFIG_PCIEPORTBUS is not set
324CONFIG_ARCH_SUPPORTS_MSI=y 320CONFIG_ARCH_SUPPORTS_MSI=y
325# CONFIG_PCI_MSI is not set 321# CONFIG_PCI_MSI is not set
326# CONFIG_PCI_LEGACY is not set
327# CONFIG_PCI_STUB is not set 322# CONFIG_PCI_STUB is not set
328# CONFIG_PCI_IOV is not set 323# CONFIG_PCI_IOV is not set
329# CONFIG_PCCARD is not set 324# CONFIG_PCCARD is not set
@@ -349,7 +344,6 @@ CONFIG_NET=y
349# Networking options 344# Networking options
350# 345#
351CONFIG_PACKET=m 346CONFIG_PACKET=m
352# CONFIG_PACKET_MMAP is not set
353CONFIG_UNIX=y 347CONFIG_UNIX=y
354# CONFIG_NET_KEY is not set 348# CONFIG_NET_KEY is not set
355CONFIG_INET=y 349CONFIG_INET=y
@@ -524,6 +518,8 @@ CONFIG_MTD_PHYSMAP=y
524# UBI - Unsorted block images 518# UBI - Unsorted block images
525# 519#
526# CONFIG_MTD_UBI is not set 520# CONFIG_MTD_UBI is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
527CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
528CONFIG_OF_I2C=y 524CONFIG_OF_I2C=y
529# CONFIG_PARPORT is not set 525# CONFIG_PARPORT is not set
@@ -555,6 +551,7 @@ CONFIG_MISC_DEVICES=y
555# CONFIG_ENCLOSURE_SERVICES is not set 551# CONFIG_ENCLOSURE_SERVICES is not set
556# CONFIG_HP_ILO is not set 552# CONFIG_HP_ILO is not set
557# CONFIG_ISL29003 is not set 553# CONFIG_ISL29003 is not set
554# CONFIG_SENSORS_TSL2550 is not set
558# CONFIG_DS1682 is not set 555# CONFIG_DS1682 is not set
559# CONFIG_C2PORT is not set 556# CONFIG_C2PORT is not set
560 557
@@ -626,6 +623,7 @@ CONFIG_BLK_DEV_IDEDMA=y
626# 623#
627# SCSI device support 624# SCSI device support
628# 625#
626CONFIG_SCSI_MOD=y
629# CONFIG_RAID_ATTRS is not set 627# CONFIG_RAID_ATTRS is not set
630CONFIG_SCSI=y 628CONFIG_SCSI=y
631CONFIG_SCSI_DMA=y 629CONFIG_SCSI_DMA=y
@@ -846,6 +844,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 844CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 845# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 846# CONFIG_SERIAL_OF_PLATFORM is not set
847# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 848# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 849CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 850# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -895,6 +894,7 @@ CONFIG_I2C_HELPER_AUTO=y
895CONFIG_I2C_MPC=y 894CONFIG_I2C_MPC=y
896# CONFIG_I2C_OCORES is not set 895# CONFIG_I2C_OCORES is not set
897# CONFIG_I2C_SIMTEC is not set 896# CONFIG_I2C_SIMTEC is not set
897# CONFIG_I2C_XILINX is not set
898 898
899# 899#
900# External I2C/SMBus adapter drivers 900# External I2C/SMBus adapter drivers
@@ -908,15 +908,9 @@ CONFIG_I2C_MPC=y
908# 908#
909# CONFIG_I2C_PCA_PLATFORM is not set 909# CONFIG_I2C_PCA_PLATFORM is not set
910# CONFIG_I2C_STUB is not set 910# CONFIG_I2C_STUB is not set
911
912#
913# Miscellaneous I2C Chip support
914#
915# CONFIG_SENSORS_TSL2550 is not set
916# CONFIG_I2C_DEBUG_CORE is not set 911# CONFIG_I2C_DEBUG_CORE is not set
917# CONFIG_I2C_DEBUG_ALGO is not set 912# CONFIG_I2C_DEBUG_ALGO is not set
918# CONFIG_I2C_DEBUG_BUS is not set 913# CONFIG_I2C_DEBUG_BUS is not set
919# CONFIG_I2C_DEBUG_CHIP is not set
920# CONFIG_SPI is not set 914# CONFIG_SPI is not set
921 915
922# 916#
@@ -941,18 +935,21 @@ CONFIG_SSB_POSSIBLE=y
941# Multifunction device drivers 935# Multifunction device drivers
942# 936#
943# CONFIG_MFD_CORE is not set 937# CONFIG_MFD_CORE is not set
938# CONFIG_MFD_88PM860X is not set
944# CONFIG_MFD_SM501 is not set 939# CONFIG_MFD_SM501 is not set
945# CONFIG_HTC_PASIC3 is not set 940# CONFIG_HTC_PASIC3 is not set
946# CONFIG_TWL4030_CORE is not set 941# CONFIG_TWL4030_CORE is not set
947# CONFIG_MFD_TMIO is not set 942# CONFIG_MFD_TMIO is not set
948# CONFIG_PMIC_DA903X is not set 943# CONFIG_PMIC_DA903X is not set
949# CONFIG_PMIC_ADP5520 is not set 944# CONFIG_PMIC_ADP5520 is not set
945# CONFIG_MFD_MAX8925 is not set
950# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
951# CONFIG_MFD_WM831X is not set 947# CONFIG_MFD_WM831X is not set
952# CONFIG_MFD_WM8350_I2C is not set 948# CONFIG_MFD_WM8350_I2C is not set
949# CONFIG_MFD_WM8994 is not set
953# CONFIG_MFD_PCF50633 is not set 950# CONFIG_MFD_PCF50633 is not set
954# CONFIG_AB3100_CORE is not set 951# CONFIG_AB3100_CORE is not set
955# CONFIG_MFD_88PM8607 is not set 952# CONFIG_LPC_SCH is not set
956# CONFIG_REGULATOR is not set 953# CONFIG_REGULATOR is not set
957# CONFIG_MEDIA_SUPPORT is not set 954# CONFIG_MEDIA_SUPPORT is not set
958 955
@@ -961,6 +958,7 @@ CONFIG_SSB_POSSIBLE=y
961# 958#
962# CONFIG_AGP is not set 959# CONFIG_AGP is not set
963CONFIG_VGA_ARB=y 960CONFIG_VGA_ARB=y
961CONFIG_VGA_ARB_MAX_GPUS=16
964# CONFIG_DRM is not set 962# CONFIG_DRM is not set
965# CONFIG_VGASTATE is not set 963# CONFIG_VGASTATE is not set
966# CONFIG_VIDEO_OUTPUT_CONTROL is not set 964# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1071,7 +1069,6 @@ CONFIG_USB_STORAGE=y
1071# CONFIG_USB_RIO500 is not set 1069# CONFIG_USB_RIO500 is not set
1072# CONFIG_USB_LEGOTOWER is not set 1070# CONFIG_USB_LEGOTOWER is not set
1073# CONFIG_USB_LCD is not set 1071# CONFIG_USB_LCD is not set
1074# CONFIG_USB_BERRY_CHARGE is not set
1075# CONFIG_USB_LED is not set 1072# CONFIG_USB_LED is not set
1076# CONFIG_USB_CYPRESS_CY7C63 is not set 1073# CONFIG_USB_CYPRESS_CY7C63 is not set
1077# CONFIG_USB_CYTHERM is not set 1074# CONFIG_USB_CYTHERM is not set
@@ -1084,7 +1081,6 @@ CONFIG_USB_STORAGE=y
1084# CONFIG_USB_IOWARRIOR is not set 1081# CONFIG_USB_IOWARRIOR is not set
1085# CONFIG_USB_TEST is not set 1082# CONFIG_USB_TEST is not set
1086# CONFIG_USB_ISIGHTFW is not set 1083# CONFIG_USB_ISIGHTFW is not set
1087# CONFIG_USB_VST is not set
1088# CONFIG_USB_GADGET is not set 1084# CONFIG_USB_GADGET is not set
1089 1085
1090# 1086#
@@ -1251,6 +1247,7 @@ CONFIG_JFFS2_ZLIB=y
1251# CONFIG_JFFS2_LZO is not set 1247# CONFIG_JFFS2_LZO is not set
1252CONFIG_JFFS2_RTIME=y 1248CONFIG_JFFS2_RTIME=y
1253# CONFIG_JFFS2_RUBIN is not set 1249# CONFIG_JFFS2_RUBIN is not set
1250# CONFIG_LOGFS is not set
1254# CONFIG_CRAMFS is not set 1251# CONFIG_CRAMFS is not set
1255# CONFIG_SQUASHFS is not set 1252# CONFIG_SQUASHFS is not set
1256# CONFIG_VXFS_FS is not set 1253# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
index e96d52a516ba..53b64be40eb2 100644
--- a/arch/powerpc/include/asm/page.h
+++ b/arch/powerpc/include/asm/page.h
@@ -108,8 +108,21 @@ extern phys_addr_t kernstart_addr;
108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) 108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) 109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
110 110
111#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - MEMORY_START)) 111/*
112 * On Book-E parts we need __va to parse the device tree and we can't
113 * determine MEMORY_START until then. However we can determine PHYSICAL_START
114 * from information at hand (program counter, TLB lookup).
115 *
116 * On non-Book-E PPC64 PAGE_OFFSET and MEMORY_START are constants so use
117 * the other definitions for __va & __pa.
118 */
119#ifdef CONFIG_BOOKE
120#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) - PHYSICAL_START + KERNELBASE))
121#define __pa(x) ((unsigned long)(x) + PHYSICAL_START - KERNELBASE)
122#else
123#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) + PAGE_OFFSET - MEMORY_START))
112#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START) 124#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START)
125#endif
113 126
114/* 127/*
115 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI, 128 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 5f306c4946e5..97d4bd9442d3 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -653,6 +653,7 @@ static void __init early_cmdline_parse(void)
653#else 653#else
654#define OV5_CMO 0x00 654#define OV5_CMO 0x00
655#endif 655#endif
656#define OV5_TYPE1_AFFINITY 0x80 /* Type 1 NUMA affinity */
656 657
657/* Option Vector 6: IBM PAPR hints */ 658/* Option Vector 6: IBM PAPR hints */
658#define OV6_LINUX 0x02 /* Linux is our OS */ 659#define OV6_LINUX 0x02 /* Linux is our OS */
@@ -706,7 +707,7 @@ static unsigned char ibm_architecture_vec[] = {
706 OV5_DONATE_DEDICATE_CPU | OV5_MSI, 707 OV5_DONATE_DEDICATE_CPU | OV5_MSI,
707 0, 708 0,
708 OV5_CMO, 709 OV5_CMO,
709 0, 710 OV5_TYPE1_AFFINITY,
710 0, 711 0,
711 0, 712 0,
712 0, 713 0,
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 25da07fd9f77..604af29b71ed 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -1004,7 +1004,8 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1004 struct kvm_vcpu *vcpu; 1004 struct kvm_vcpu *vcpu;
1005 ulong ga, ga_end; 1005 ulong ga, ga_end;
1006 int is_dirty = 0; 1006 int is_dirty = 0;
1007 int r, n; 1007 int r;
1008 unsigned long n;
1008 1009
1009 mutex_lock(&kvm->slots_lock); 1010 mutex_lock(&kvm->slots_lock);
1010 1011
@@ -1022,7 +1023,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1022 kvm_for_each_vcpu(n, vcpu, kvm) 1023 kvm_for_each_vcpu(n, vcpu, kvm)
1023 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end); 1024 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end);
1024 1025
1025 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1026 n = kvm_dirty_bitmap_bytes(memslot);
1026 memset(memslot->dirty_bitmap, 0, n); 1027 memset(memslot->dirty_bitmap, 0, n);
1027 } 1028 }
1028 1029
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index c5394728bf2e..1ed6b52f3031 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -116,7 +116,7 @@ void loadcam_entry(int idx)
116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2); 116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2);
117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3); 117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3);
118 118
119 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS) 119 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7); 120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7);
121 121
122 asm volatile("isync;tlbwe;isync" : : : "memory"); 122 asm volatile("isync;tlbwe;isync" : : : "memory");
@@ -152,18 +152,13 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys,
152 152
153 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR; 153 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR;
154 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0); 154 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0);
155 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS) 155 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
156 TLBCAM[index].MAS7 = (u64)phys >> 32; 156 TLBCAM[index].MAS7 = (u64)phys >> 32;
157 157
158#ifndef CONFIG_KGDB /* want user access for breakpoints */
159 if (flags & _PAGE_USER) { 158 if (flags & _PAGE_USER) {
160 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; 159 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
161 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); 160 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
162 } 161 }
163#else
164 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
165 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
166#endif
167 162
168 tlbcam_addrs[index].start = virt; 163 tlbcam_addrs[index].start = virt;
169 tlbcam_addrs[index].limit = virt + size - 1; 164 tlbcam_addrs[index].limit = virt + size - 1;
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 64c00227b997..eaa7633515b7 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -242,10 +242,11 @@ EXPORT_SYMBOL_GPL(of_node_to_nid);
242 */ 242 */
243static int __init find_min_common_depth(void) 243static int __init find_min_common_depth(void)
244{ 244{
245 int depth; 245 int depth, index;
246 const unsigned int *ref_points; 246 const unsigned int *ref_points;
247 struct device_node *rtas_root; 247 struct device_node *rtas_root;
248 unsigned int len; 248 unsigned int len;
249 struct device_node *options;
249 250
250 rtas_root = of_find_node_by_path("/rtas"); 251 rtas_root = of_find_node_by_path("/rtas");
251 252
@@ -258,11 +259,23 @@ static int __init find_min_common_depth(void)
258 * configuration (should be all 0's) and the second is for a normal 259 * configuration (should be all 0's) and the second is for a normal
259 * NUMA configuration. 260 * NUMA configuration.
260 */ 261 */
262 index = 1;
261 ref_points = of_get_property(rtas_root, 263 ref_points = of_get_property(rtas_root,
262 "ibm,associativity-reference-points", &len); 264 "ibm,associativity-reference-points", &len);
263 265
266 /*
267 * For type 1 affinity information we want the first field
268 */
269 options = of_find_node_by_path("/options");
270 if (options) {
271 const char *str;
272 str = of_get_property(options, "ibm,associativity-form", NULL);
273 if (str && !strcmp(str, "1"))
274 index = 0;
275 }
276
264 if ((len >= 2 * sizeof(unsigned int)) && ref_points) { 277 if ((len >= 2 * sizeof(unsigned int)) && ref_points) {
265 depth = ref_points[1]; 278 depth = ref_points[index];
266 } else { 279 } else {
267 dbg("NUMA: ibm,associativity-reference-points not found.\n"); 280 dbg("NUMA: ibm,associativity-reference-points not found.\n");
268 depth = -1; 281 depth = -1;
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index d95121894eb7..3a2ade2e443f 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -51,7 +51,7 @@ config MPC85xx_DS
51 bool "Freescale MPC85xx DS" 51 bool "Freescale MPC85xx DS"
52 select PPC_I8259 52 select PPC_I8259
53 select DEFAULT_UIMAGE 53 select DEFAULT_UIMAGE
54 select FSL_ULI1575 54 select FSL_ULI1575 if PCI
55 select SWIOTLB 55 select SWIOTLB
56 help 56 help
57 This option enables support for the MPC85xx DS (MPC8544 DS) board 57 This option enables support for the MPC85xx DS (MPC8544 DS) board
@@ -60,7 +60,7 @@ config MPC85xx_RDB
60 bool "Freescale MPC85xx RDB" 60 bool "Freescale MPC85xx RDB"
61 select PPC_I8259 61 select PPC_I8259
62 select DEFAULT_UIMAGE 62 select DEFAULT_UIMAGE
63 select FSL_ULI1575 63 select FSL_ULI1575 if PCI
64 select SWIOTLB 64 select SWIOTLB
65 help 65 help
66 This option enables support for the MPC85xx RDB (P2020 RDB) board 66 This option enables support for the MPC85xx RDB (P2020 RDB) board
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index fbe9f3621424..a0b5638c5dc8 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -13,7 +13,7 @@ config MPC8641_HPCN
13 bool "Freescale MPC8641 HPCN" 13 bool "Freescale MPC8641 HPCN"
14 select PPC_I8259 14 select PPC_I8259
15 select DEFAULT_UIMAGE 15 select DEFAULT_UIMAGE
16 select FSL_ULI1575 16 select FSL_ULI1575 if PCI
17 select HAS_RAPIDIO 17 select HAS_RAPIDIO
18 select SWIOTLB 18 select SWIOTLB
19 help 19 help
@@ -28,7 +28,7 @@ config SBC8641D
28config MPC8610_HPCD 28config MPC8610_HPCD
29 bool "Freescale MPC8610 HPCD" 29 bool "Freescale MPC8610 HPCD"
30 select DEFAULT_UIMAGE 30 select DEFAULT_UIMAGE
31 select FSL_ULI1575 31 select FSL_ULI1575 if PCI
32 help 32 help
33 This option enables support for the MPC8610 HPCD board. 33 This option enables support for the MPC8610 HPCD board.
34 34
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 9b21ee68ea50..01e7b5bb3c1d 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -11,6 +11,7 @@
11 11
12#include <linux/of.h> 12#include <linux/of.h>
13#include <linux/lmb.h> 13#include <linux/lmb.h>
14#include <linux/vmalloc.h>
14#include <asm/firmware.h> 15#include <asm/firmware.h>
15#include <asm/machdep.h> 16#include <asm/machdep.h>
16#include <asm/pSeries_reconfig.h> 17#include <asm/pSeries_reconfig.h>
@@ -54,6 +55,12 @@ static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
54 */ 55 */
55 start = (unsigned long)__va(base); 56 start = (unsigned long)__va(base);
56 ret = remove_section_mapping(start, start + lmb_size); 57 ret = remove_section_mapping(start, start + lmb_size);
58
59 /* Ensure all vmalloc mappings are flushed in case they also
60 * hit that section of memory
61 */
62 vm_unmap_aliases();
63
57 return ret; 64 return ret;
58} 65}
59 66
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index 4dae3698bf24..8d103ca6d6ab 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -486,9 +486,6 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
486 return -EINVAL; 486 return -EINVAL;
487 } 487 }
488 488
489 if (reg == &mpc8xx_immr->im_cpm.cp_sicr && mode == CPM_CLK_RX)
490 shift += 3;
491
492 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 489 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
493 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 490 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
494 bits = clk_map[i][2]; 491 bits = clk_map[i][2];
@@ -503,6 +500,17 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
503 500
504 bits <<= shift; 501 bits <<= shift;
505 mask <<= shift; 502 mask <<= shift;
503
504 if (reg == &mpc8xx_immr->im_cpm.cp_sicr) {
505 if (mode == CPM_CLK_RTX) {
506 bits |= bits << 3;
507 mask |= mask << 3;
508 } else if (mode == CPM_CLK_RX) {
509 bits <<= 3;
510 mask <<= 3;
511 }
512 }
513
506 out_be32(reg, (in_be32(reg) & ~mask) | bits); 514 out_be32(reg, (in_be32(reg) & ~mask) | bits);
507 515
508 return 0; 516 return 0;
diff --git a/arch/powerpc/sysdev/cpm2.c b/arch/powerpc/sysdev/cpm2.c
index eb5927212fab..8dc1e24f3c23 100644
--- a/arch/powerpc/sysdev/cpm2.c
+++ b/arch/powerpc/sysdev/cpm2.c
@@ -244,9 +244,6 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
244 return -EINVAL; 244 return -EINVAL;
245 } 245 }
246 246
247 if (mode == CPM_CLK_RX)
248 shift += 3;
249
250 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 247 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
251 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 248 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
252 bits = clk_map[i][2]; 249 bits = clk_map[i][2];
@@ -259,6 +256,14 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
259 bits <<= shift; 256 bits <<= shift;
260 mask <<= shift; 257 mask <<= shift;
261 258
259 if (mode == CPM_CLK_RTX) {
260 bits |= bits << 3;
261 mask |= mask << 3;
262 } else if (mode == CPM_CLK_RX) {
263 bits <<= 3;
264 mask <<= 3;
265 }
266
262 out_be32(reg, (in_be32(reg) & ~mask) | bits); 267 out_be32(reg, (in_be32(reg) & ~mask) | bits);
263 268
264 cpm2_unmap(im_cpmux); 269 cpm2_unmap(im_cpmux);
diff --git a/arch/s390/include/asm/vdso.h b/arch/s390/include/asm/vdso.h
index 4a76d9480cce..533f35751aeb 100644
--- a/arch/s390/include/asm/vdso.h
+++ b/arch/s390/include/asm/vdso.h
@@ -29,6 +29,7 @@ struct vdso_data {
29 __u32 tz_minuteswest; /* Minutes west of Greenwich 0x30 */ 29 __u32 tz_minuteswest; /* Minutes west of Greenwich 0x30 */
30 __u32 tz_dsttime; /* Type of dst correction 0x34 */ 30 __u32 tz_dsttime; /* Type of dst correction 0x34 */
31 __u32 ectg_available; 31 __u32 ectg_available;
32 __u32 ntp_mult; /* NTP adjusted multiplier 0x3C */
32}; 33};
33 34
34struct vdso_per_cpu_data { 35struct vdso_per_cpu_data {
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index 08db736dded0..a09408952ed0 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -61,6 +61,7 @@ int main(void)
61 DEFINE(__VDSO_WTOM_NSEC, offsetof(struct vdso_data, wtom_clock_nsec)); 61 DEFINE(__VDSO_WTOM_NSEC, offsetof(struct vdso_data, wtom_clock_nsec));
62 DEFINE(__VDSO_TIMEZONE, offsetof(struct vdso_data, tz_minuteswest)); 62 DEFINE(__VDSO_TIMEZONE, offsetof(struct vdso_data, tz_minuteswest));
63 DEFINE(__VDSO_ECTG_OK, offsetof(struct vdso_data, ectg_available)); 63 DEFINE(__VDSO_ECTG_OK, offsetof(struct vdso_data, ectg_available));
64 DEFINE(__VDSO_NTP_MULT, offsetof(struct vdso_data, ntp_mult));
64 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base)); 65 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base));
65 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time)); 66 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time));
66 /* constants used by the vdso */ 67 /* constants used by the vdso */
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S
index b354427e03b7..c56d3f56d020 100644
--- a/arch/s390/kernel/swsusp_asm64.S
+++ b/arch/s390/kernel/swsusp_asm64.S
@@ -256,6 +256,9 @@ restore_registers:
256 lghi %r2,0 256 lghi %r2,0
257 brasl %r14,arch_set_page_states 257 brasl %r14,arch_set_page_states
258 258
259 /* Reinitialize the channel subsystem */
260 brasl %r14,channel_subsystem_reinit
261
259 /* Return 0 */ 262 /* Return 0 */
260 lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15) 263 lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
261 lghi %r2,0 264 lghi %r2,0
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index fba6dec156bf..a2163c95eb98 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -221,6 +221,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
221 vdso_data->xtime_clock_nsec = wall_time->tv_nsec; 221 vdso_data->xtime_clock_nsec = wall_time->tv_nsec;
222 vdso_data->wtom_clock_sec = wall_to_monotonic.tv_sec; 222 vdso_data->wtom_clock_sec = wall_to_monotonic.tv_sec;
223 vdso_data->wtom_clock_nsec = wall_to_monotonic.tv_nsec; 223 vdso_data->wtom_clock_nsec = wall_to_monotonic.tv_nsec;
224 vdso_data->ntp_mult = mult;
224 smp_wmb(); 225 smp_wmb();
225 ++vdso_data->tb_update_count; 226 ++vdso_data->tb_update_count;
226} 227}
@@ -390,7 +391,6 @@ static void __init time_init_wq(void)
390 if (time_sync_wq) 391 if (time_sync_wq)
391 return; 392 return;
392 time_sync_wq = create_singlethread_workqueue("timesync"); 393 time_sync_wq = create_singlethread_workqueue("timesync");
393 stop_machine_create();
394} 394}
395 395
396/* 396/*
diff --git a/arch/s390/kernel/vdso32/clock_gettime.S b/arch/s390/kernel/vdso32/clock_gettime.S
index 4a98909a8310..969643954273 100644
--- a/arch/s390/kernel/vdso32/clock_gettime.S
+++ b/arch/s390/kernel/vdso32/clock_gettime.S
@@ -38,13 +38,13 @@ __kernel_clock_gettime:
38 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 38 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
39 brc 3,2f 39 brc 3,2f
40 ahi %r0,-1 40 ahi %r0,-1
412: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 412: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
42 lr %r2,%r0 42 lr %r2,%r0
43 lhi %r0,1000 43 l %r0,__VDSO_NTP_MULT(%r5)
44 ltr %r1,%r1 44 ltr %r1,%r1
45 mr %r0,%r0 45 mr %r0,%r0
46 jnm 3f 46 jnm 3f
47 ahi %r0,1000 47 a %r0,__VDSO_NTP_MULT(%r5)
483: alr %r0,%r2 483: alr %r0,%r2
49 srdl %r0,12 49 srdl %r0,12
50 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 50 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
@@ -86,13 +86,13 @@ __kernel_clock_gettime:
86 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 86 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
87 brc 3,12f 87 brc 3,12f
88 ahi %r0,-1 88 ahi %r0,-1
8912: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 8912: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
90 lr %r2,%r0 90 lr %r2,%r0
91 lhi %r0,1000 91 l %r0,__VDSO_NTP_MULT(%r5)
92 ltr %r1,%r1 92 ltr %r1,%r1
93 mr %r0,%r0 93 mr %r0,%r0
94 jnm 13f 94 jnm 13f
95 ahi %r0,1000 95 a %r0,__VDSO_NTP_MULT(%r5)
9613: alr %r0,%r2 9613: alr %r0,%r2
97 srdl %r0,12 97 srdl %r0,12
98 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 98 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
diff --git a/arch/s390/kernel/vdso32/gettimeofday.S b/arch/s390/kernel/vdso32/gettimeofday.S
index ad8acfc949fb..2d3633175e3b 100644
--- a/arch/s390/kernel/vdso32/gettimeofday.S
+++ b/arch/s390/kernel/vdso32/gettimeofday.S
@@ -35,13 +35,13 @@ __kernel_gettimeofday:
35 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 35 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
36 brc 3,3f 36 brc 3,3f
37 ahi %r0,-1 37 ahi %r0,-1
383: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 383: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
39 st %r0,24(%r15) 39 st %r0,24(%r15)
40 lhi %r0,1000 40 l %r0,__VDSO_NTP_MULT(%r5)
41 ltr %r1,%r1 41 ltr %r1,%r1
42 mr %r0,%r0 42 mr %r0,%r0
43 jnm 4f 43 jnm 4f
44 ahi %r0,1000 44 a %r0,__VDSO_NTP_MULT(%r5)
454: al %r0,24(%r15) 454: al %r0,24(%r15)
46 srdl %r0,12 46 srdl %r0,12
47 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 47 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
diff --git a/arch/s390/kernel/vdso64/clock_gettime.S b/arch/s390/kernel/vdso64/clock_gettime.S
index 49106c6e6f88..f40467884a03 100644
--- a/arch/s390/kernel/vdso64/clock_gettime.S
+++ b/arch/s390/kernel/vdso64/clock_gettime.S
@@ -36,7 +36,7 @@ __kernel_clock_gettime:
36 stck 48(%r15) /* Store TOD clock */ 36 stck 48(%r15) /* Store TOD clock */
37 lg %r1,48(%r15) 37 lg %r1,48(%r15)
38 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 38 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
39 mghi %r1,1000 39 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
40 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 40 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
41 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 41 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */
42 lg %r0,__VDSO_XTIME_SEC(%r5) 42 lg %r0,__VDSO_XTIME_SEC(%r5)
@@ -64,7 +64,7 @@ __kernel_clock_gettime:
64 stck 48(%r15) /* Store TOD clock */ 64 stck 48(%r15) /* Store TOD clock */
65 lg %r1,48(%r15) 65 lg %r1,48(%r15)
66 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 66 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
67 mghi %r1,1000 67 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
68 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 68 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
69 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 69 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */
70 lg %r0,__VDSO_XTIME_SEC(%r5) 70 lg %r0,__VDSO_XTIME_SEC(%r5)
diff --git a/arch/s390/kernel/vdso64/gettimeofday.S b/arch/s390/kernel/vdso64/gettimeofday.S
index f873e75634e1..36ee674722ec 100644
--- a/arch/s390/kernel/vdso64/gettimeofday.S
+++ b/arch/s390/kernel/vdso64/gettimeofday.S
@@ -31,7 +31,7 @@ __kernel_gettimeofday:
31 stck 48(%r15) /* Store TOD clock */ 31 stck 48(%r15) /* Store TOD clock */
32 lg %r1,48(%r15) 32 lg %r1,48(%r15)
33 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 33 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
34 mghi %r1,1000 34 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
35 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 35 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
36 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime.tv_nsec */ 36 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime.tv_nsec */
37 lg %r0,__VDSO_XTIME_SEC(%r5) /* xtime.tv_sec */ 37 lg %r0,__VDSO_XTIME_SEC(%r5) /* xtime.tv_sec */
diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
index 9e2d9447f2ad..4827a3aeac7f 100644
--- a/arch/sparc/include/asm/thread_info_64.h
+++ b/arch/sparc/include/asm/thread_info_64.h
@@ -111,7 +111,7 @@ struct thread_info {
111#define THREAD_SHIFT PAGE_SHIFT 111#define THREAD_SHIFT PAGE_SHIFT
112#endif /* PAGE_SHIFT == 13 */ 112#endif /* PAGE_SHIFT == 13 */
113 113
114#define PREEMPT_ACTIVE 0x4000000 114#define PREEMPT_ACTIVE 0x10000000
115 115
116/* 116/*
117 * macros/functions for gaining access to the thread information structure 117 * macros/functions for gaining access to the thread information structure
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index 454ce3a25273..830d70a3e20b 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -22,6 +22,7 @@
22#include <linux/seq_file.h> 22#include <linux/seq_file.h>
23#include <linux/ftrace.h> 23#include <linux/ftrace.h>
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/kmemleak.h>
25 26
26#include <asm/ptrace.h> 27#include <asm/ptrace.h>
27#include <asm/processor.h> 28#include <asm/processor.h>
@@ -46,6 +47,7 @@
46 47
47#include "entry.h" 48#include "entry.h"
48#include "cpumap.h" 49#include "cpumap.h"
50#include "kstack.h"
49 51
50#define NUM_IVECS (IMAP_INR + 1) 52#define NUM_IVECS (IMAP_INR + 1)
51 53
@@ -712,24 +714,6 @@ void ack_bad_irq(unsigned int virt_irq)
712void *hardirq_stack[NR_CPUS]; 714void *hardirq_stack[NR_CPUS];
713void *softirq_stack[NR_CPUS]; 715void *softirq_stack[NR_CPUS];
714 716
715static __attribute__((always_inline)) void *set_hardirq_stack(void)
716{
717 void *orig_sp, *sp = hardirq_stack[smp_processor_id()];
718
719 __asm__ __volatile__("mov %%sp, %0" : "=r" (orig_sp));
720 if (orig_sp < sp ||
721 orig_sp > (sp + THREAD_SIZE)) {
722 sp += THREAD_SIZE - 192 - STACK_BIAS;
723 __asm__ __volatile__("mov %0, %%sp" : : "r" (sp));
724 }
725
726 return orig_sp;
727}
728static __attribute__((always_inline)) void restore_hardirq_stack(void *orig_sp)
729{
730 __asm__ __volatile__("mov %0, %%sp" : : "r" (orig_sp));
731}
732
733void __irq_entry handler_irq(int irq, struct pt_regs *regs) 717void __irq_entry handler_irq(int irq, struct pt_regs *regs)
734{ 718{
735 unsigned long pstate, bucket_pa; 719 unsigned long pstate, bucket_pa;
diff --git a/arch/sparc/kernel/kstack.h b/arch/sparc/kernel/kstack.h
index 5247283d1c03..53dfb92e09fb 100644
--- a/arch/sparc/kernel/kstack.h
+++ b/arch/sparc/kernel/kstack.h
@@ -61,4 +61,23 @@ check_magic:
61 61
62} 62}
63 63
64static inline __attribute__((always_inline)) void *set_hardirq_stack(void)
65{
66 void *orig_sp, *sp = hardirq_stack[smp_processor_id()];
67
68 __asm__ __volatile__("mov %%sp, %0" : "=r" (orig_sp));
69 if (orig_sp < sp ||
70 orig_sp > (sp + THREAD_SIZE)) {
71 sp += THREAD_SIZE - 192 - STACK_BIAS;
72 __asm__ __volatile__("mov %0, %%sp" : : "r" (sp));
73 }
74
75 return orig_sp;
76}
77
78static inline __attribute__((always_inline)) void restore_hardirq_stack(void *orig_sp)
79{
80 __asm__ __volatile__("mov %0, %%sp" : : "r" (orig_sp));
81}
82
64#endif /* _KSTACK_H */ 83#endif /* _KSTACK_H */
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
index 75a3d1a25356..a4bd7ba74c89 100644
--- a/arch/sparc/kernel/nmi.c
+++ b/arch/sparc/kernel/nmi.c
@@ -23,6 +23,8 @@
23#include <asm/ptrace.h> 23#include <asm/ptrace.h>
24#include <asm/pcr.h> 24#include <asm/pcr.h>
25 25
26#include "kstack.h"
27
26/* We don't have a real NMI on sparc64, but we can fake one 28/* We don't have a real NMI on sparc64, but we can fake one
27 * up using profiling counter overflow interrupts and interrupt 29 * up using profiling counter overflow interrupts and interrupt
28 * levels. 30 * levels.
@@ -92,6 +94,7 @@ static void die_nmi(const char *str, struct pt_regs *regs, int do_panic)
92notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) 94notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
93{ 95{
94 unsigned int sum, touched = 0; 96 unsigned int sum, touched = 0;
97 void *orig_sp;
95 98
96 clear_softint(1 << irq); 99 clear_softint(1 << irq);
97 100
@@ -99,6 +102,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
99 102
100 nmi_enter(); 103 nmi_enter();
101 104
105 orig_sp = set_hardirq_stack();
106
102 if (notify_die(DIE_NMI, "nmi", regs, 0, 107 if (notify_die(DIE_NMI, "nmi", regs, 0,
103 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) 108 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
104 touched = 1; 109 touched = 1;
@@ -124,6 +129,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
124 pcr_ops->write(pcr_enable); 129 pcr_ops->write(pcr_enable);
125 } 130 }
126 131
132 restore_hardirq_stack(orig_sp);
133
127 nmi_exit(); 134 nmi_exit();
128} 135}
129 136
diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
index 83f1873c6c13..090b9e9ad5e3 100644
--- a/arch/sparc/kernel/rtrap_64.S
+++ b/arch/sparc/kernel/rtrap_64.S
@@ -130,7 +130,17 @@ rtrap_xcall:
130 nop 130 nop
131 call trace_hardirqs_on 131 call trace_hardirqs_on
132 nop 132 nop
133 wrpr %l4, %pil 133 /* Do not actually set the %pil here. We will do that
134 * below after we clear PSTATE_IE in the %pstate register.
135 * If we re-enable interrupts here, we can recurse down
136 * the hardirq stack potentially endlessly, causing a
137 * stack overflow.
138 *
139 * It is tempting to put this test and trace_hardirqs_on
140 * call at the 'rt_continue' label, but that will not work
141 * as that path hits unconditionally and we do not want to
142 * execute this in NMI return paths, for example.
143 */
134#endif 144#endif
135rtrap_no_irq_enable: 145rtrap_no_irq_enable:
136 andcc %l1, TSTATE_PRIV, %l3 146 andcc %l1, TSTATE_PRIV, %l3
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
index ebce43018c49..c752c4c479bd 100644
--- a/arch/sparc/kernel/unaligned_64.c
+++ b/arch/sparc/kernel/unaligned_64.c
@@ -50,7 +50,7 @@ static inline enum direction decode_direction(unsigned int insn)
50} 50}
51 51
52/* 16 = double-word, 8 = extra-word, 4 = word, 2 = half-word */ 52/* 16 = double-word, 8 = extra-word, 4 = word, 2 = half-word */
53static inline int decode_access_size(unsigned int insn) 53static inline int decode_access_size(struct pt_regs *regs, unsigned int insn)
54{ 54{
55 unsigned int tmp; 55 unsigned int tmp;
56 56
@@ -66,7 +66,7 @@ static inline int decode_access_size(unsigned int insn)
66 return 2; 66 return 2;
67 else { 67 else {
68 printk("Impossible unaligned trap. insn=%08x\n", insn); 68 printk("Impossible unaligned trap. insn=%08x\n", insn);
69 die_if_kernel("Byte sized unaligned access?!?!", current_thread_info()->kregs); 69 die_if_kernel("Byte sized unaligned access?!?!", regs);
70 70
71 /* GCC should never warn that control reaches the end 71 /* GCC should never warn that control reaches the end
72 * of this function without returning a value because 72 * of this function without returning a value because
@@ -286,7 +286,7 @@ static void log_unaligned(struct pt_regs *regs)
286asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) 286asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
287{ 287{
288 enum direction dir = decode_direction(insn); 288 enum direction dir = decode_direction(insn);
289 int size = decode_access_size(insn); 289 int size = decode_access_size(regs, insn);
290 int orig_asi, asi; 290 int orig_asi, asi;
291 291
292 current_thread_info()->kern_una_regs = regs; 292 current_thread_info()->kern_una_regs = regs;
diff --git a/arch/sparc/lib/mcount.S b/arch/sparc/lib/mcount.S
index 3753e3c6e176..3ad6cbdc2163 100644
--- a/arch/sparc/lib/mcount.S
+++ b/arch/sparc/lib/mcount.S
@@ -34,7 +34,7 @@ mcount:
34 cmp %g1, %g2 34 cmp %g1, %g2
35 be,pn %icc, 1f 35 be,pn %icc, 1f
36 mov %i7, %g3 36 mov %i7, %g3
37 save %sp, -128, %sp 37 save %sp, -176, %sp
38 mov %g3, %o1 38 mov %g3, %o1
39 jmpl %g1, %o7 39 jmpl %g1, %o7
40 mov %i7, %o0 40 mov %i7, %o0
@@ -56,7 +56,7 @@ mcount:
56 nop 56 nop
575: mov %i7, %g2 575: mov %i7, %g2
58 mov %fp, %g3 58 mov %fp, %g3
59 save %sp, -128, %sp 59 save %sp, -176, %sp
60 mov %g2, %l0 60 mov %g2, %l0
61 ba,pt %xcc, ftrace_graph_caller 61 ba,pt %xcc, ftrace_graph_caller
62 mov %g3, %l1 62 mov %g3, %l1
@@ -85,7 +85,7 @@ ftrace_caller:
85 lduw [%g1 + %lo(function_trace_stop)], %g1 85 lduw [%g1 + %lo(function_trace_stop)], %g1
86 brnz,pn %g1, ftrace_stub 86 brnz,pn %g1, ftrace_stub
87 mov %fp, %g3 87 mov %fp, %g3
88 save %sp, -128, %sp 88 save %sp, -176, %sp
89 mov %g2, %o1 89 mov %g2, %o1
90 mov %g2, %l0 90 mov %g2, %l0
91 mov %g3, %l1 91 mov %g3, %l1
@@ -120,7 +120,7 @@ ENTRY(ftrace_graph_caller)
120END(ftrace_graph_caller) 120END(ftrace_graph_caller)
121 121
122ENTRY(return_to_handler) 122ENTRY(return_to_handler)
123 save %sp, -128, %sp 123 save %sp, -176, %sp
124 call ftrace_return_to_handler 124 call ftrace_return_to_handler
125 mov %fp, %o0 125 mov %fp, %o0
126 jmpl %o0 + 8, %g0 126 jmpl %o0 + 8, %g0
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index 64cda95f59ca..7a656bd8bd3c 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -6,6 +6,7 @@
6#include "linux/irqreturn.h" 6#include "linux/irqreturn.h"
7#include "linux/kd.h" 7#include "linux/kd.h"
8#include "linux/sched.h" 8#include "linux/sched.h"
9#include "linux/slab.h"
9#include "chan_kern.h" 10#include "chan_kern.h"
10#include "irq_kern.h" 11#include "irq_kern.h"
11#include "irq_user.h" 12#include "irq_user.h"
diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c
index 06d6ccf0e444..b6b1096152aa 100644
--- a/arch/um/os-Linux/helper.c
+++ b/arch/um/os-Linux/helper.c
@@ -8,7 +8,6 @@
8#include <errno.h> 8#include <errno.h>
9#include <sched.h> 9#include <sched.h>
10#include <linux/limits.h> 10#include <linux/limits.h>
11#include <linux/slab.h>
12#include <sys/socket.h> 11#include <sys/socket.h>
13#include <sys/wait.h> 12#include <sys/wait.h>
14#include "kern_constants.h" 13#include "kern_constants.h"
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 59b4556a5b92..e790bc1fbfa3 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -626,7 +626,7 @@ ia32_sys_call_table:
626 .quad stub32_sigreturn 626 .quad stub32_sigreturn
627 .quad stub32_clone /* 120 */ 627 .quad stub32_clone /* 120 */
628 .quad sys_setdomainname 628 .quad sys_setdomainname
629 .quad sys_uname 629 .quad sys_newuname
630 .quad sys_modify_ldt 630 .quad sys_modify_ldt
631 .quad compat_sys_adjtimex 631 .quad compat_sys_adjtimex
632 .quad sys32_mprotect /* 125 */ 632 .quad sys32_mprotect /* 125 */
diff --git a/arch/x86/kernel/apb_timer.c b/arch/x86/kernel/apb_timer.c
index ff469e470059..a35347501d36 100644
--- a/arch/x86/kernel/apb_timer.c
+++ b/arch/x86/kernel/apb_timer.c
@@ -429,7 +429,7 @@ static int apbt_cpuhp_notify(struct notifier_block *n,
429 429
430static __init int apbt_late_init(void) 430static __init int apbt_late_init(void)
431{ 431{
432 if (disable_apbt_percpu) 432 if (disable_apbt_percpu || !apb_timer_block_enabled)
433 return 0; 433 return 0;
434 /* This notifier should be called after workqueue is ready */ 434 /* This notifier should be called after workqueue is ready */
435 hotcpu_notifier(apbt_cpuhp_notify, -20); 435 hotcpu_notifier(apbt_cpuhp_notify, -20);
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 7e1cca13af35..1366c7cfd483 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -47,6 +47,27 @@ static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
47 (c->x86 == 0x6 && c->x86_model >= 0x0e)) 47 (c->x86 == 0x6 && c->x86_model >= 0x0e))
48 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 48 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
49 49
50 /*
51 * Atom erratum AAE44/AAF40/AAG38/AAH41:
52 *
53 * A race condition between speculative fetches and invalidating
54 * a large page. This is worked around in microcode, but we
55 * need the microcode to have already been loaded... so if it is
56 * not, recommend a BIOS update and disable large pages.
57 */
58 if (c->x86 == 6 && c->x86_model == 0x1c && c->x86_mask <= 2) {
59 u32 ucode, junk;
60
61 wrmsr(MSR_IA32_UCODE_REV, 0, 0);
62 sync_core();
63 rdmsr(MSR_IA32_UCODE_REV, junk, ucode);
64
65 if (ucode < 0x20e) {
66 printk(KERN_WARNING "Atom PSE erratum detected, BIOS microcode update recommended\n");
67 clear_cpu_cap(c, X86_FEATURE_PSE);
68 }
69 }
70
50#ifdef CONFIG_X86_64 71#ifdef CONFIG_X86_64
51 set_cpu_cap(c, X86_FEATURE_SYSENTER32); 72 set_cpu_cap(c, X86_FEATURE_SYSENTER32);
52#else 73#else
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 1cbed97b59cf..dfdb4dba2320 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -22,6 +22,7 @@
22 */ 22 */
23 23
24#include <linux/dmi.h> 24#include <linux/dmi.h>
25#include <linux/module.h>
25#include <asm/div64.h> 26#include <asm/div64.h>
26#include <asm/vmware.h> 27#include <asm/vmware.h>
27#include <asm/x86_init.h> 28#include <asm/x86_init.h>
@@ -101,6 +102,7 @@ int vmware_platform(void)
101 102
102 return 0; 103 return 0;
103} 104}
105EXPORT_SYMBOL(vmware_platform);
104 106
105/* 107/*
106 * VMware hypervisor takes care of exporting a reliable TSC to the guest. 108 * VMware hypervisor takes care of exporting a reliable TSC to the guest.
diff --git a/arch/x86/kernel/dumpstack.h b/arch/x86/kernel/dumpstack.h
index e39e77168a37..e1a93be4fd44 100644
--- a/arch/x86/kernel/dumpstack.h
+++ b/arch/x86/kernel/dumpstack.h
@@ -14,6 +14,8 @@
14#define get_bp(bp) asm("movq %%rbp, %0" : "=r" (bp) :) 14#define get_bp(bp) asm("movq %%rbp, %0" : "=r" (bp) :)
15#endif 15#endif
16 16
17#include <linux/uaccess.h>
18
17extern void 19extern void
18show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, 20show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
19 unsigned long *stack, unsigned long bp, char *log_lvl); 21 unsigned long *stack, unsigned long bp, char *log_lvl);
@@ -42,8 +44,10 @@ static inline unsigned long rewind_frame_pointer(int n)
42 get_bp(frame); 44 get_bp(frame);
43 45
44#ifdef CONFIG_FRAME_POINTER 46#ifdef CONFIG_FRAME_POINTER
45 while (n--) 47 while (n--) {
46 frame = frame->next_frame; 48 if (probe_kernel_address(&frame->next_frame, frame))
49 break;
50 }
47#endif 51#endif
48 52
49 return (unsigned long)frame; 53 return (unsigned long)frame;
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index dc9690b4c4cc..17cb3295cbf7 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -276,12 +276,12 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
276 276
277 set_tsk_thread_flag(p, TIF_FORK); 277 set_tsk_thread_flag(p, TIF_FORK);
278 278
279 p->thread.fs = me->thread.fs;
280 p->thread.gs = me->thread.gs;
281 p->thread.io_bitmap_ptr = NULL; 279 p->thread.io_bitmap_ptr = NULL;
282 280
283 savesegment(gs, p->thread.gsindex); 281 savesegment(gs, p->thread.gsindex);
282 p->thread.gs = p->thread.gsindex ? 0 : me->thread.gs;
284 savesegment(fs, p->thread.fsindex); 283 savesegment(fs, p->thread.fsindex);
284 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
285 savesegment(es, p->thread.es); 285 savesegment(es, p->thread.es);
286 savesegment(ds, p->thread.ds); 286 savesegment(ds, p->thread.ds);
287 287
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 48aeee8eefb0..19a8906bcaa2 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1490,8 +1490,8 @@ static int mmu_zap_unsync_children(struct kvm *kvm,
1490 for_each_sp(pages, sp, parents, i) { 1490 for_each_sp(pages, sp, parents, i) {
1491 kvm_mmu_zap_page(kvm, sp); 1491 kvm_mmu_zap_page(kvm, sp);
1492 mmu_pages_clear_parents(&parents); 1492 mmu_pages_clear_parents(&parents);
1493 zapped++;
1493 } 1494 }
1494 zapped += pages.nr;
1495 kvm_mmu_pages_init(parent, &parents, &pages); 1495 kvm_mmu_pages_init(parent, &parents, &pages);
1496 } 1496 }
1497 1497
@@ -1542,14 +1542,16 @@ void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages)
1542 */ 1542 */
1543 1543
1544 if (used_pages > kvm_nr_mmu_pages) { 1544 if (used_pages > kvm_nr_mmu_pages) {
1545 while (used_pages > kvm_nr_mmu_pages) { 1545 while (used_pages > kvm_nr_mmu_pages &&
1546 !list_empty(&kvm->arch.active_mmu_pages)) {
1546 struct kvm_mmu_page *page; 1547 struct kvm_mmu_page *page;
1547 1548
1548 page = container_of(kvm->arch.active_mmu_pages.prev, 1549 page = container_of(kvm->arch.active_mmu_pages.prev,
1549 struct kvm_mmu_page, link); 1550 struct kvm_mmu_page, link);
1550 kvm_mmu_zap_page(kvm, page); 1551 used_pages -= kvm_mmu_zap_page(kvm, page);
1551 used_pages--; 1552 used_pages--;
1552 } 1553 }
1554 kvm_nr_mmu_pages = used_pages;
1553 kvm->arch.n_free_mmu_pages = 0; 1555 kvm->arch.n_free_mmu_pages = 0;
1554 } 1556 }
1555 else 1557 else
@@ -1596,7 +1598,8 @@ static void mmu_unshadow(struct kvm *kvm, gfn_t gfn)
1596 && !sp->role.invalid) { 1598 && !sp->role.invalid) {
1597 pgprintk("%s: zap %lx %x\n", 1599 pgprintk("%s: zap %lx %x\n",
1598 __func__, gfn, sp->role.word); 1600 __func__, gfn, sp->role.word);
1599 kvm_mmu_zap_page(kvm, sp); 1601 if (kvm_mmu_zap_page(kvm, sp))
1602 nn = bucket->first;
1600 } 1603 }
1601 } 1604 }
1602} 1605}
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 445c59411ed0..2ba58206812a 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -706,29 +706,28 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
706 if (err) 706 if (err)
707 goto free_svm; 707 goto free_svm;
708 708
709 err = -ENOMEM;
709 page = alloc_page(GFP_KERNEL); 710 page = alloc_page(GFP_KERNEL);
710 if (!page) { 711 if (!page)
711 err = -ENOMEM;
712 goto uninit; 712 goto uninit;
713 }
714 713
715 err = -ENOMEM;
716 msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER); 714 msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER);
717 if (!msrpm_pages) 715 if (!msrpm_pages)
718 goto uninit; 716 goto free_page1;
719 717
720 nested_msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER); 718 nested_msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER);
721 if (!nested_msrpm_pages) 719 if (!nested_msrpm_pages)
722 goto uninit; 720 goto free_page2;
723
724 svm->msrpm = page_address(msrpm_pages);
725 svm_vcpu_init_msrpm(svm->msrpm);
726 721
727 hsave_page = alloc_page(GFP_KERNEL); 722 hsave_page = alloc_page(GFP_KERNEL);
728 if (!hsave_page) 723 if (!hsave_page)
729 goto uninit; 724 goto free_page3;
725
730 svm->nested.hsave = page_address(hsave_page); 726 svm->nested.hsave = page_address(hsave_page);
731 727
728 svm->msrpm = page_address(msrpm_pages);
729 svm_vcpu_init_msrpm(svm->msrpm);
730
732 svm->nested.msrpm = page_address(nested_msrpm_pages); 731 svm->nested.msrpm = page_address(nested_msrpm_pages);
733 732
734 svm->vmcb = page_address(page); 733 svm->vmcb = page_address(page);
@@ -744,6 +743,12 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
744 743
745 return &svm->vcpu; 744 return &svm->vcpu;
746 745
746free_page3:
747 __free_pages(nested_msrpm_pages, MSRPM_ALLOC_ORDER);
748free_page2:
749 __free_pages(msrpm_pages, MSRPM_ALLOC_ORDER);
750free_page1:
751 __free_page(page);
747uninit: 752uninit:
748 kvm_vcpu_uninit(&svm->vcpu); 753 kvm_vcpu_uninit(&svm->vcpu);
749free_svm: 754free_svm:
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 686492ed3079..bc933cfb4e66 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -77,6 +77,8 @@ module_param(emulate_invalid_guest_state, bool, S_IRUGO);
77#define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE) 77#define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE)
78#define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE) 78#define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE)
79 79
80#define RMODE_GUEST_OWNED_EFLAGS_BITS (~(X86_EFLAGS_IOPL | X86_EFLAGS_VM))
81
80/* 82/*
81 * These 2 parameters are used to config the controls for Pause-Loop Exiting: 83 * These 2 parameters are used to config the controls for Pause-Loop Exiting:
82 * ple_gap: upper bound on the amount of time between two successive 84 * ple_gap: upper bound on the amount of time between two successive
@@ -131,7 +133,7 @@ struct vcpu_vmx {
131 } host_state; 133 } host_state;
132 struct { 134 struct {
133 int vm86_active; 135 int vm86_active;
134 u8 save_iopl; 136 ulong save_rflags;
135 struct kvm_save_segment { 137 struct kvm_save_segment {
136 u16 selector; 138 u16 selector;
137 unsigned long base; 139 unsigned long base;
@@ -818,18 +820,23 @@ static void vmx_fpu_deactivate(struct kvm_vcpu *vcpu)
818 820
819static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu) 821static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu)
820{ 822{
821 unsigned long rflags; 823 unsigned long rflags, save_rflags;
822 824
823 rflags = vmcs_readl(GUEST_RFLAGS); 825 rflags = vmcs_readl(GUEST_RFLAGS);
824 if (to_vmx(vcpu)->rmode.vm86_active) 826 if (to_vmx(vcpu)->rmode.vm86_active) {
825 rflags &= ~(unsigned long)(X86_EFLAGS_IOPL | X86_EFLAGS_VM); 827 rflags &= RMODE_GUEST_OWNED_EFLAGS_BITS;
828 save_rflags = to_vmx(vcpu)->rmode.save_rflags;
829 rflags |= save_rflags & ~RMODE_GUEST_OWNED_EFLAGS_BITS;
830 }
826 return rflags; 831 return rflags;
827} 832}
828 833
829static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags) 834static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags)
830{ 835{
831 if (to_vmx(vcpu)->rmode.vm86_active) 836 if (to_vmx(vcpu)->rmode.vm86_active) {
837 to_vmx(vcpu)->rmode.save_rflags = rflags;
832 rflags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; 838 rflags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM;
839 }
833 vmcs_writel(GUEST_RFLAGS, rflags); 840 vmcs_writel(GUEST_RFLAGS, rflags);
834} 841}
835 842
@@ -1483,8 +1490,8 @@ static void enter_pmode(struct kvm_vcpu *vcpu)
1483 vmcs_write32(GUEST_TR_AR_BYTES, vmx->rmode.tr.ar); 1490 vmcs_write32(GUEST_TR_AR_BYTES, vmx->rmode.tr.ar);
1484 1491
1485 flags = vmcs_readl(GUEST_RFLAGS); 1492 flags = vmcs_readl(GUEST_RFLAGS);
1486 flags &= ~(X86_EFLAGS_IOPL | X86_EFLAGS_VM); 1493 flags &= RMODE_GUEST_OWNED_EFLAGS_BITS;
1487 flags |= (vmx->rmode.save_iopl << IOPL_SHIFT); 1494 flags |= vmx->rmode.save_rflags & ~RMODE_GUEST_OWNED_EFLAGS_BITS;
1488 vmcs_writel(GUEST_RFLAGS, flags); 1495 vmcs_writel(GUEST_RFLAGS, flags);
1489 1496
1490 vmcs_writel(GUEST_CR4, (vmcs_readl(GUEST_CR4) & ~X86_CR4_VME) | 1497 vmcs_writel(GUEST_CR4, (vmcs_readl(GUEST_CR4) & ~X86_CR4_VME) |
@@ -1557,8 +1564,7 @@ static void enter_rmode(struct kvm_vcpu *vcpu)
1557 vmcs_write32(GUEST_TR_AR_BYTES, 0x008b); 1564 vmcs_write32(GUEST_TR_AR_BYTES, 0x008b);
1558 1565
1559 flags = vmcs_readl(GUEST_RFLAGS); 1566 flags = vmcs_readl(GUEST_RFLAGS);
1560 vmx->rmode.save_iopl 1567 vmx->rmode.save_rflags = flags;
1561 = (flags & X86_EFLAGS_IOPL) >> IOPL_SHIFT;
1562 1568
1563 flags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; 1569 flags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM;
1564 1570
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 24cd0ee896e9..3c4ca98ad27f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -433,8 +433,6 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
433 433
434#ifdef CONFIG_X86_64 434#ifdef CONFIG_X86_64
435 if (cr0 & 0xffffffff00000000UL) { 435 if (cr0 & 0xffffffff00000000UL) {
436 printk(KERN_DEBUG "set_cr0: 0x%lx #GP, reserved bits 0x%lx\n",
437 cr0, kvm_read_cr0(vcpu));
438 kvm_inject_gp(vcpu, 0); 436 kvm_inject_gp(vcpu, 0);
439 return; 437 return;
440 } 438 }
@@ -443,14 +441,11 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
443 cr0 &= ~CR0_RESERVED_BITS; 441 cr0 &= ~CR0_RESERVED_BITS;
444 442
445 if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD)) { 443 if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD)) {
446 printk(KERN_DEBUG "set_cr0: #GP, CD == 0 && NW == 1\n");
447 kvm_inject_gp(vcpu, 0); 444 kvm_inject_gp(vcpu, 0);
448 return; 445 return;
449 } 446 }
450 447
451 if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE)) { 448 if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE)) {
452 printk(KERN_DEBUG "set_cr0: #GP, set PG flag "
453 "and a clear PE flag\n");
454 kvm_inject_gp(vcpu, 0); 449 kvm_inject_gp(vcpu, 0);
455 return; 450 return;
456 } 451 }
@@ -461,15 +456,11 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
461 int cs_db, cs_l; 456 int cs_db, cs_l;
462 457
463 if (!is_pae(vcpu)) { 458 if (!is_pae(vcpu)) {
464 printk(KERN_DEBUG "set_cr0: #GP, start paging "
465 "in long mode while PAE is disabled\n");
466 kvm_inject_gp(vcpu, 0); 459 kvm_inject_gp(vcpu, 0);
467 return; 460 return;
468 } 461 }
469 kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); 462 kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l);
470 if (cs_l) { 463 if (cs_l) {
471 printk(KERN_DEBUG "set_cr0: #GP, start paging "
472 "in long mode while CS.L == 1\n");
473 kvm_inject_gp(vcpu, 0); 464 kvm_inject_gp(vcpu, 0);
474 return; 465 return;
475 466
@@ -477,8 +468,6 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
477 } else 468 } else
478#endif 469#endif
479 if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3)) { 470 if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3)) {
480 printk(KERN_DEBUG "set_cr0: #GP, pdptrs "
481 "reserved bits\n");
482 kvm_inject_gp(vcpu, 0); 471 kvm_inject_gp(vcpu, 0);
483 return; 472 return;
484 } 473 }
@@ -505,28 +494,23 @@ void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
505 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE; 494 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE;
506 495
507 if (cr4 & CR4_RESERVED_BITS) { 496 if (cr4 & CR4_RESERVED_BITS) {
508 printk(KERN_DEBUG "set_cr4: #GP, reserved bits\n");
509 kvm_inject_gp(vcpu, 0); 497 kvm_inject_gp(vcpu, 0);
510 return; 498 return;
511 } 499 }
512 500
513 if (is_long_mode(vcpu)) { 501 if (is_long_mode(vcpu)) {
514 if (!(cr4 & X86_CR4_PAE)) { 502 if (!(cr4 & X86_CR4_PAE)) {
515 printk(KERN_DEBUG "set_cr4: #GP, clearing PAE while "
516 "in long mode\n");
517 kvm_inject_gp(vcpu, 0); 503 kvm_inject_gp(vcpu, 0);
518 return; 504 return;
519 } 505 }
520 } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE) 506 } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
521 && ((cr4 ^ old_cr4) & pdptr_bits) 507 && ((cr4 ^ old_cr4) & pdptr_bits)
522 && !load_pdptrs(vcpu, vcpu->arch.cr3)) { 508 && !load_pdptrs(vcpu, vcpu->arch.cr3)) {
523 printk(KERN_DEBUG "set_cr4: #GP, pdptrs reserved bits\n");
524 kvm_inject_gp(vcpu, 0); 509 kvm_inject_gp(vcpu, 0);
525 return; 510 return;
526 } 511 }
527 512
528 if (cr4 & X86_CR4_VMXE) { 513 if (cr4 & X86_CR4_VMXE) {
529 printk(KERN_DEBUG "set_cr4: #GP, setting VMXE\n");
530 kvm_inject_gp(vcpu, 0); 514 kvm_inject_gp(vcpu, 0);
531 return; 515 return;
532 } 516 }
@@ -547,21 +531,16 @@ void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
547 531
548 if (is_long_mode(vcpu)) { 532 if (is_long_mode(vcpu)) {
549 if (cr3 & CR3_L_MODE_RESERVED_BITS) { 533 if (cr3 & CR3_L_MODE_RESERVED_BITS) {
550 printk(KERN_DEBUG "set_cr3: #GP, reserved bits\n");
551 kvm_inject_gp(vcpu, 0); 534 kvm_inject_gp(vcpu, 0);
552 return; 535 return;
553 } 536 }
554 } else { 537 } else {
555 if (is_pae(vcpu)) { 538 if (is_pae(vcpu)) {
556 if (cr3 & CR3_PAE_RESERVED_BITS) { 539 if (cr3 & CR3_PAE_RESERVED_BITS) {
557 printk(KERN_DEBUG
558 "set_cr3: #GP, reserved bits\n");
559 kvm_inject_gp(vcpu, 0); 540 kvm_inject_gp(vcpu, 0);
560 return; 541 return;
561 } 542 }
562 if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3)) { 543 if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3)) {
563 printk(KERN_DEBUG "set_cr3: #GP, pdptrs "
564 "reserved bits\n");
565 kvm_inject_gp(vcpu, 0); 544 kvm_inject_gp(vcpu, 0);
566 return; 545 return;
567 } 546 }
@@ -593,7 +572,6 @@ EXPORT_SYMBOL_GPL(kvm_set_cr3);
593void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8) 572void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8)
594{ 573{
595 if (cr8 & CR8_RESERVED_BITS) { 574 if (cr8 & CR8_RESERVED_BITS) {
596 printk(KERN_DEBUG "set_cr8: #GP, reserved bits 0x%lx\n", cr8);
597 kvm_inject_gp(vcpu, 0); 575 kvm_inject_gp(vcpu, 0);
598 return; 576 return;
599 } 577 }
@@ -649,15 +627,12 @@ static u32 emulated_msrs[] = {
649static void set_efer(struct kvm_vcpu *vcpu, u64 efer) 627static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
650{ 628{
651 if (efer & efer_reserved_bits) { 629 if (efer & efer_reserved_bits) {
652 printk(KERN_DEBUG "set_efer: 0x%llx #GP, reserved bits\n",
653 efer);
654 kvm_inject_gp(vcpu, 0); 630 kvm_inject_gp(vcpu, 0);
655 return; 631 return;
656 } 632 }
657 633
658 if (is_paging(vcpu) 634 if (is_paging(vcpu)
659 && (vcpu->arch.efer & EFER_LME) != (efer & EFER_LME)) { 635 && (vcpu->arch.efer & EFER_LME) != (efer & EFER_LME)) {
660 printk(KERN_DEBUG "set_efer: #GP, change LME while paging\n");
661 kvm_inject_gp(vcpu, 0); 636 kvm_inject_gp(vcpu, 0);
662 return; 637 return;
663 } 638 }
@@ -667,7 +642,6 @@ static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
667 642
668 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0); 643 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0);
669 if (!feat || !(feat->edx & bit(X86_FEATURE_FXSR_OPT))) { 644 if (!feat || !(feat->edx & bit(X86_FEATURE_FXSR_OPT))) {
670 printk(KERN_DEBUG "set_efer: #GP, enable FFXSR w/o CPUID capability\n");
671 kvm_inject_gp(vcpu, 0); 645 kvm_inject_gp(vcpu, 0);
672 return; 646 return;
673 } 647 }
@@ -678,7 +652,6 @@ static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
678 652
679 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0); 653 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0);
680 if (!feat || !(feat->ecx & bit(X86_FEATURE_SVM))) { 654 if (!feat || !(feat->ecx & bit(X86_FEATURE_SVM))) {
681 printk(KERN_DEBUG "set_efer: #GP, enable SVM w/o SVM\n");
682 kvm_inject_gp(vcpu, 0); 655 kvm_inject_gp(vcpu, 0);
683 return; 656 return;
684 } 657 }
@@ -967,9 +940,13 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, u32 msr, u64 data)
967 if (msr >= MSR_IA32_MC0_CTL && 940 if (msr >= MSR_IA32_MC0_CTL &&
968 msr < MSR_IA32_MC0_CTL + 4 * bank_num) { 941 msr < MSR_IA32_MC0_CTL + 4 * bank_num) {
969 u32 offset = msr - MSR_IA32_MC0_CTL; 942 u32 offset = msr - MSR_IA32_MC0_CTL;
970 /* only 0 or all 1s can be written to IA32_MCi_CTL */ 943 /* only 0 or all 1s can be written to IA32_MCi_CTL
944 * some Linux kernels though clear bit 10 in bank 4 to
945 * workaround a BIOS/GART TBL issue on AMD K8s, ignore
946 * this to avoid an uncatched #GP in the guest
947 */
971 if ((offset & 0x3) == 0 && 948 if ((offset & 0x3) == 0 &&
972 data != 0 && data != ~(u64)0) 949 data != 0 && (data | (1 << 10)) != ~(u64)0)
973 return -1; 950 return -1;
974 vcpu->arch.mce_banks[offset] = data; 951 vcpu->arch.mce_banks[offset] = data;
975 break; 952 break;
@@ -2635,8 +2612,9 @@ static int kvm_vm_ioctl_reinject(struct kvm *kvm,
2635int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, 2612int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
2636 struct kvm_dirty_log *log) 2613 struct kvm_dirty_log *log)
2637{ 2614{
2638 int r, n, i; 2615 int r, i;
2639 struct kvm_memory_slot *memslot; 2616 struct kvm_memory_slot *memslot;
2617 unsigned long n;
2640 unsigned long is_dirty = 0; 2618 unsigned long is_dirty = 0;
2641 unsigned long *dirty_bitmap = NULL; 2619 unsigned long *dirty_bitmap = NULL;
2642 2620
@@ -2651,7 +2629,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
2651 if (!memslot->dirty_bitmap) 2629 if (!memslot->dirty_bitmap)
2652 goto out; 2630 goto out;
2653 2631
2654 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 2632 n = kvm_dirty_bitmap_bytes(memslot);
2655 2633
2656 r = -ENOMEM; 2634 r = -ENOMEM;
2657 dirty_bitmap = vmalloc(n); 2635 dirty_bitmap = vmalloc(n);
@@ -4483,7 +4461,9 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
4483 kvm_set_cr8(vcpu, kvm_run->cr8); 4461 kvm_set_cr8(vcpu, kvm_run->cr8);
4484 4462
4485 if (vcpu->arch.pio.cur_count) { 4463 if (vcpu->arch.pio.cur_count) {
4464 vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
4486 r = complete_pio(vcpu); 4465 r = complete_pio(vcpu);
4466 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx);
4487 if (r) 4467 if (r)
4488 goto out; 4468 goto out;
4489 } 4469 }
@@ -5146,6 +5126,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
5146 int ret = 0; 5126 int ret = 0;
5147 u32 old_tss_base = get_segment_base(vcpu, VCPU_SREG_TR); 5127 u32 old_tss_base = get_segment_base(vcpu, VCPU_SREG_TR);
5148 u16 old_tss_sel = get_segment_selector(vcpu, VCPU_SREG_TR); 5128 u16 old_tss_sel = get_segment_selector(vcpu, VCPU_SREG_TR);
5129 u32 desc_limit;
5149 5130
5150 old_tss_base = kvm_mmu_gva_to_gpa_write(vcpu, old_tss_base, NULL); 5131 old_tss_base = kvm_mmu_gva_to_gpa_write(vcpu, old_tss_base, NULL);
5151 5132
@@ -5168,7 +5149,10 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
5168 } 5149 }
5169 } 5150 }
5170 5151
5171 if (!nseg_desc.p || get_desc_limit(&nseg_desc) < 0x67) { 5152 desc_limit = get_desc_limit(&nseg_desc);
5153 if (!nseg_desc.p ||
5154 ((desc_limit < 0x67 && (nseg_desc.type & 8)) ||
5155 desc_limit < 0x2b)) {
5172 kvm_queue_exception_e(vcpu, TS_VECTOR, tss_selector & 0xfffc); 5156 kvm_queue_exception_e(vcpu, TS_VECTOR, tss_selector & 0xfffc);
5173 return 1; 5157 return 1;
5174 } 5158 }
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index c7b1ebfb7da7..31930fd30ea9 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -66,14 +66,44 @@ resource_to_addr(struct acpi_resource *resource,
66 struct acpi_resource_address64 *addr) 66 struct acpi_resource_address64 *addr)
67{ 67{
68 acpi_status status; 68 acpi_status status;
69 69 struct acpi_resource_memory24 *memory24;
70 status = acpi_resource_to_address64(resource, addr); 70 struct acpi_resource_memory32 *memory32;
71 if (ACPI_SUCCESS(status) && 71 struct acpi_resource_fixed_memory32 *fixed_memory32;
72 (addr->resource_type == ACPI_MEMORY_RANGE || 72
73 addr->resource_type == ACPI_IO_RANGE) && 73 memset(addr, 0, sizeof(*addr));
74 addr->address_length > 0 && 74 switch (resource->type) {
75 addr->producer_consumer == ACPI_PRODUCER) { 75 case ACPI_RESOURCE_TYPE_MEMORY24:
76 memory24 = &resource->data.memory24;
77 addr->resource_type = ACPI_MEMORY_RANGE;
78 addr->minimum = memory24->minimum;
79 addr->address_length = memory24->address_length;
80 addr->maximum = addr->minimum + addr->address_length - 1;
81 return AE_OK;
82 case ACPI_RESOURCE_TYPE_MEMORY32:
83 memory32 = &resource->data.memory32;
84 addr->resource_type = ACPI_MEMORY_RANGE;
85 addr->minimum = memory32->minimum;
86 addr->address_length = memory32->address_length;
87 addr->maximum = addr->minimum + addr->address_length - 1;
76 return AE_OK; 88 return AE_OK;
89 case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
90 fixed_memory32 = &resource->data.fixed_memory32;
91 addr->resource_type = ACPI_MEMORY_RANGE;
92 addr->minimum = fixed_memory32->address;
93 addr->address_length = fixed_memory32->address_length;
94 addr->maximum = addr->minimum + addr->address_length - 1;
95 return AE_OK;
96 case ACPI_RESOURCE_TYPE_ADDRESS16:
97 case ACPI_RESOURCE_TYPE_ADDRESS32:
98 case ACPI_RESOURCE_TYPE_ADDRESS64:
99 status = acpi_resource_to_address64(resource, addr);
100 if (ACPI_SUCCESS(status) &&
101 (addr->resource_type == ACPI_MEMORY_RANGE ||
102 addr->resource_type == ACPI_IO_RANGE) &&
103 addr->address_length > 0) {
104 return AE_OK;
105 }
106 break;
77 } 107 }
78 return AE_ERROR; 108 return AE_ERROR;
79} 109}
@@ -91,30 +121,6 @@ count_resource(struct acpi_resource *acpi_res, void *data)
91 return AE_OK; 121 return AE_OK;
92} 122}
93 123
94static void
95align_resource(struct acpi_device *bridge, struct resource *res)
96{
97 int align = (res->flags & IORESOURCE_MEM) ? 16 : 4;
98
99 /*
100 * Host bridge windows are not BARs, but the decoders on the PCI side
101 * that claim this address space have starting alignment and length
102 * constraints, so fix any obvious BIOS goofs.
103 */
104 if (!IS_ALIGNED(res->start, align)) {
105 dev_printk(KERN_DEBUG, &bridge->dev,
106 "host bridge window %pR invalid; "
107 "aligning start to %d-byte boundary\n", res, align);
108 res->start &= ~(align - 1);
109 }
110 if (!IS_ALIGNED(res->end + 1, align)) {
111 dev_printk(KERN_DEBUG, &bridge->dev,
112 "host bridge window %pR invalid; "
113 "aligning end to %d-byte boundary\n", res, align);
114 res->end = ALIGN(res->end, align) - 1;
115 }
116}
117
118static acpi_status 124static acpi_status
119setup_resource(struct acpi_resource *acpi_res, void *data) 125setup_resource(struct acpi_resource *acpi_res, void *data)
120{ 126{
@@ -124,7 +130,7 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
124 acpi_status status; 130 acpi_status status;
125 unsigned long flags; 131 unsigned long flags;
126 struct resource *root, *conflict; 132 struct resource *root, *conflict;
127 u64 start, end, max_len; 133 u64 start, end;
128 134
129 status = resource_to_addr(acpi_res, &addr); 135 status = resource_to_addr(acpi_res, &addr);
130 if (!ACPI_SUCCESS(status)) 136 if (!ACPI_SUCCESS(status))
@@ -141,19 +147,8 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
141 } else 147 } else
142 return AE_OK; 148 return AE_OK;
143 149
144 max_len = addr.maximum - addr.minimum + 1;
145 if (addr.address_length > max_len) {
146 dev_printk(KERN_DEBUG, &info->bridge->dev,
147 "host bridge window length %#llx doesn't fit in "
148 "%#llx-%#llx, trimming\n",
149 (unsigned long long) addr.address_length,
150 (unsigned long long) addr.minimum,
151 (unsigned long long) addr.maximum);
152 addr.address_length = max_len;
153 }
154
155 start = addr.minimum + addr.translation_offset; 150 start = addr.minimum + addr.translation_offset;
156 end = start + addr.address_length - 1; 151 end = addr.maximum + addr.translation_offset;
157 152
158 res = &info->res[info->res_num]; 153 res = &info->res[info->res_num];
159 res->name = info->name; 154 res->name = info->name;
@@ -161,7 +156,6 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
161 res->start = start; 156 res->start = start;
162 res->end = end; 157 res->end = end;
163 res->child = NULL; 158 res->child = NULL;
164 align_resource(info->bridge, res);
165 159
166 if (!pci_use_crs) { 160 if (!pci_use_crs) {
167 dev_printk(KERN_DEBUG, &info->bridge->dev, 161 dev_printk(KERN_DEBUG, &info->bridge->dev,
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 46fd43f79103..97da2ba9344b 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -72,6 +72,9 @@ pcibios_align_resource(void *data, const struct resource *res,
72 return start; 72 return start;
73 if (start & 0x300) 73 if (start & 0x300)
74 start = (start + 0x3ff) & ~0x3ff; 74 start = (start + 0x3ff) & ~0x3ff;
75 } else if (res->flags & IORESOURCE_MEM) {
76 if (start < BIOS_END)
77 start = BIOS_END;
75 } 78 }
76 return start; 79 return start;
77} 80}
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 1ba7e0aca878..4f0c06c7a338 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -109,6 +109,7 @@ void blk_rq_timed_out_timer(unsigned long data)
109 struct request_queue *q = (struct request_queue *) data; 109 struct request_queue *q = (struct request_queue *) data;
110 unsigned long flags, next = 0; 110 unsigned long flags, next = 0;
111 struct request *rq, *tmp; 111 struct request *rq, *tmp;
112 int next_set = 0;
112 113
113 spin_lock_irqsave(q->queue_lock, flags); 114 spin_lock_irqsave(q->queue_lock, flags);
114 115
@@ -122,16 +123,13 @@ void blk_rq_timed_out_timer(unsigned long data)
122 if (blk_mark_rq_complete(rq)) 123 if (blk_mark_rq_complete(rq))
123 continue; 124 continue;
124 blk_rq_timed_out(rq); 125 blk_rq_timed_out(rq);
125 } else if (!next || time_after(next, rq->deadline)) 126 } else if (!next_set || time_after(next, rq->deadline)) {
126 next = rq->deadline; 127 next = rq->deadline;
128 next_set = 1;
129 }
127 } 130 }
128 131
129 /* 132 if (next_set)
130 * next can never be 0 here with the list non-empty, since we always
131 * bump ->deadline to 1 so we can detect if the timer was ever added
132 * or not. See comment in blk_add_timer()
133 */
134 if (next)
135 mod_timer(&q->timeout, round_jiffies_up(next)); 133 mod_timer(&q->timeout, round_jiffies_up(next));
136 134
137 spin_unlock_irqrestore(q->queue_lock, flags); 135 spin_unlock_irqrestore(q->queue_lock, flags);
diff --git a/crypto/authenc.c b/crypto/authenc.c
index 2bb7348d8d55..05eb32e0d949 100644
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -46,6 +46,12 @@ struct authenc_request_ctx {
46 char tail[]; 46 char tail[];
47}; 47};
48 48
49static void authenc_request_complete(struct aead_request *req, int err)
50{
51 if (err != -EINPROGRESS)
52 aead_request_complete(req, err);
53}
54
49static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key, 55static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
50 unsigned int keylen) 56 unsigned int keylen)
51{ 57{
@@ -142,7 +148,7 @@ static void authenc_geniv_ahash_update_done(struct crypto_async_request *areq,
142 crypto_aead_authsize(authenc), 1); 148 crypto_aead_authsize(authenc), 1);
143 149
144out: 150out:
145 aead_request_complete(req, err); 151 authenc_request_complete(req, err);
146} 152}
147 153
148static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err) 154static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err)
@@ -208,7 +214,7 @@ static void authenc_verify_ahash_update_done(struct crypto_async_request *areq,
208 err = crypto_ablkcipher_decrypt(abreq); 214 err = crypto_ablkcipher_decrypt(abreq);
209 215
210out: 216out:
211 aead_request_complete(req, err); 217 authenc_request_complete(req, err);
212} 218}
213 219
214static void authenc_verify_ahash_done(struct crypto_async_request *areq, 220static void authenc_verify_ahash_done(struct crypto_async_request *areq,
@@ -245,7 +251,7 @@ static void authenc_verify_ahash_done(struct crypto_async_request *areq,
245 err = crypto_ablkcipher_decrypt(abreq); 251 err = crypto_ablkcipher_decrypt(abreq);
246 252
247out: 253out:
248 aead_request_complete(req, err); 254 authenc_request_complete(req, err);
249} 255}
250 256
251static u8 *crypto_authenc_ahash_fb(struct aead_request *req, unsigned int flags) 257static u8 *crypto_authenc_ahash_fb(struct aead_request *req, unsigned int flags)
@@ -379,7 +385,7 @@ static void crypto_authenc_encrypt_done(struct crypto_async_request *req,
379 err = crypto_authenc_genicv(areq, iv, 0); 385 err = crypto_authenc_genicv(areq, iv, 0);
380 } 386 }
381 387
382 aead_request_complete(areq, err); 388 authenc_request_complete(areq, err);
383} 389}
384 390
385static int crypto_authenc_encrypt(struct aead_request *req) 391static int crypto_authenc_encrypt(struct aead_request *req)
@@ -420,7 +426,7 @@ static void crypto_authenc_givencrypt_done(struct crypto_async_request *req,
420 err = crypto_authenc_genicv(areq, greq->giv, 0); 426 err = crypto_authenc_genicv(areq, greq->giv, 0);
421 } 427 }
422 428
423 aead_request_complete(areq, err); 429 authenc_request_complete(areq, err);
424} 430}
425 431
426static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req) 432static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req)
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 9f6cfac0f2cc..228740f356c9 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -879,6 +879,8 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain)
879void ata_qc_schedule_eh(struct ata_queued_cmd *qc) 879void ata_qc_schedule_eh(struct ata_queued_cmd *qc)
880{ 880{
881 struct ata_port *ap = qc->ap; 881 struct ata_port *ap = qc->ap;
882 struct request_queue *q = qc->scsicmd->device->request_queue;
883 unsigned long flags;
882 884
883 WARN_ON(!ap->ops->error_handler); 885 WARN_ON(!ap->ops->error_handler);
884 886
@@ -890,7 +892,9 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc)
890 * Note that ATA_QCFLAG_FAILED is unconditionally set after 892 * Note that ATA_QCFLAG_FAILED is unconditionally set after
891 * this function completes. 893 * this function completes.
892 */ 894 */
895 spin_lock_irqsave(q->queue_lock, flags);
893 blk_abort_request(qc->scsicmd->request); 896 blk_abort_request(qc->scsicmd->request);
897 spin_unlock_irqrestore(q->queue_lock, flags);
894} 898}
895 899
896/** 900/**
@@ -1624,6 +1628,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link)
1624 } 1628 }
1625 1629
1626 /* okay, this error is ours */ 1630 /* okay, this error is ours */
1631 memset(&tf, 0, sizeof(tf));
1627 rc = ata_eh_read_log_10h(dev, &tag, &tf); 1632 rc = ata_eh_read_log_10h(dev, &tag, &tf);
1628 if (rc) { 1633 if (rc) {
1629 ata_link_printk(link, KERN_ERR, "failed to read log page 10h " 1634 ata_link_printk(link, KERN_ERR, "failed to read log page 10h "
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 3c3172d3c34e..4164dd244dd0 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -424,6 +424,8 @@ static struct pcmcia_device_id pcmcia_devices[] = {
424 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), 424 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420),
425 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), 425 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178),
426 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), 426 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753),
427 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x3e520e17),
428 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10),
427 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), 429 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e),
428 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), 430 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b),
429 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 431 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
@@ -444,6 +446,8 @@ static struct pcmcia_device_id pcmcia_devices[] = {
444 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 446 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
445 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 447 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
446 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 448 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
449 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x9351e59d),
450 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47),
447 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), 451 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
448 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), 452 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
449 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 453 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 67e0fc542249..93d1f9b469d4 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -1695,6 +1695,7 @@ int drbd_send_protocol(struct drbd_conf *mdev)
1695 cf |= CF_DRY_RUN; 1695 cf |= CF_DRY_RUN;
1696 else { 1696 else {
1697 dev_err(DEV, "--dry-run is not supported by peer"); 1697 dev_err(DEV, "--dry-run is not supported by peer");
1698 kfree(p);
1698 return 0; 1699 return 0;
1699 } 1700 }
1700 } 1701 }
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index ed9f1de24a71..3f096e7959b4 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -899,7 +899,8 @@ retry:
899 899
900 drbd_thread_start(&mdev->asender); 900 drbd_thread_start(&mdev->asender);
901 901
902 drbd_send_protocol(mdev); 902 if (!drbd_send_protocol(mdev))
903 return -1;
903 drbd_send_sync_param(mdev, &mdev->sync_conf); 904 drbd_send_sync_param(mdev, &mdev->sync_conf);
904 drbd_send_sizes(mdev, 0); 905 drbd_send_sizes(mdev, 0);
905 drbd_send_uuids(mdev); 906 drbd_send_uuids(mdev);
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index ddf19425245d..8a549db2aa78 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -48,6 +48,7 @@
48#include <linux/module.h> 48#include <linux/module.h>
49#include <linux/types.h> 49#include <linux/types.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/compat.h>
51#include <linux/kthread.h> 52#include <linux/kthread.h>
52#include <linux/errno.h> 53#include <linux/errno.h>
53#include <linux/spinlock.h> 54#include <linux/spinlock.h>
@@ -2984,7 +2985,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)
2984 mutex_unlock(&ctl_mutex); 2985 mutex_unlock(&ctl_mutex);
2985} 2986}
2986 2987
2987static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) 2988static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2988{ 2989{
2989 void __user *argp = (void __user *)arg; 2990 void __user *argp = (void __user *)arg;
2990 struct pkt_ctrl_command ctrl_cmd; 2991 struct pkt_ctrl_command ctrl_cmd;
@@ -3021,10 +3022,20 @@ static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cm
3021 return ret; 3022 return ret;
3022} 3023}
3023 3024
3025#ifdef CONFIG_COMPAT
3026static long pkt_ctl_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
3027{
3028 return pkt_ctl_ioctl(file, cmd, (unsigned long)compat_ptr(arg));
3029}
3030#endif
3024 3031
3025static const struct file_operations pkt_ctl_fops = { 3032static const struct file_operations pkt_ctl_fops = {
3026 .ioctl = pkt_ctl_ioctl, 3033 .open = nonseekable_open,
3027 .owner = THIS_MODULE, 3034 .unlocked_ioctl = pkt_ctl_ioctl,
3035#ifdef CONFIG_COMPAT
3036 .compat_ioctl = pkt_ctl_compat_ioctl,
3037#endif
3038 .owner = THIS_MODULE,
3028}; 3039};
3029 3040
3030static struct miscdevice pkt_misc = { 3041static struct miscdevice pkt_misc = {
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index c9bc896d68af..90b199f97bec 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -1026,14 +1026,16 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count,
1026 1026
1027 xoutb(0, REG_FLAGS1(iobase)); /* clear detectCMM */ 1027 xoutb(0, REG_FLAGS1(iobase)); /* clear detectCMM */
1028 /* last check before exit */ 1028 /* last check before exit */
1029 if (!io_detect_cm4000(iobase, dev)) 1029 if (!io_detect_cm4000(iobase, dev)) {
1030 count = -ENODEV; 1030 rc = -ENODEV;
1031 goto release_io;
1032 }
1031 1033
1032 if (test_bit(IS_INVREV, &dev->flags) && count > 0) 1034 if (test_bit(IS_INVREV, &dev->flags) && count > 0)
1033 str_invert_revert(dev->rbuf, count); 1035 str_invert_revert(dev->rbuf, count);
1034 1036
1035 if (copy_to_user(buf, dev->rbuf, count)) 1037 if (copy_to_user(buf, dev->rbuf, count))
1036 return -EFAULT; 1038 rc = -EFAULT;
1037 1039
1038release_io: 1040release_io:
1039 clear_bit(LOCK_IO, &dev->flags); 1041 clear_bit(LOCK_IO, &dev->flags);
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 2d5d575e889d..75d293eeb3ee 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1113,6 +1113,8 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1113 unsigned int cpu = sys_dev->id; 1113 unsigned int cpu = sys_dev->id;
1114 unsigned long flags; 1114 unsigned long flags;
1115 struct cpufreq_policy *data; 1115 struct cpufreq_policy *data;
1116 struct kobject *kobj;
1117 struct completion *cmp;
1116#ifdef CONFIG_SMP 1118#ifdef CONFIG_SMP
1117 struct sys_device *cpu_sys_dev; 1119 struct sys_device *cpu_sys_dev;
1118 unsigned int j; 1120 unsigned int j;
@@ -1141,10 +1143,11 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1141 dprintk("removing link\n"); 1143 dprintk("removing link\n");
1142 cpumask_clear_cpu(cpu, data->cpus); 1144 cpumask_clear_cpu(cpu, data->cpus);
1143 spin_unlock_irqrestore(&cpufreq_driver_lock, flags); 1145 spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
1144 sysfs_remove_link(&sys_dev->kobj, "cpufreq"); 1146 kobj = &sys_dev->kobj;
1145 cpufreq_cpu_put(data); 1147 cpufreq_cpu_put(data);
1146 cpufreq_debug_enable_ratelimit(); 1148 cpufreq_debug_enable_ratelimit();
1147 unlock_policy_rwsem_write(cpu); 1149 unlock_policy_rwsem_write(cpu);
1150 sysfs_remove_link(kobj, "cpufreq");
1148 return 0; 1151 return 0;
1149 } 1152 }
1150#endif 1153#endif
@@ -1181,7 +1184,10 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1181 data->governor->name, CPUFREQ_NAME_LEN); 1184 data->governor->name, CPUFREQ_NAME_LEN);
1182#endif 1185#endif
1183 cpu_sys_dev = get_cpu_sysdev(j); 1186 cpu_sys_dev = get_cpu_sysdev(j);
1184 sysfs_remove_link(&cpu_sys_dev->kobj, "cpufreq"); 1187 kobj = &cpu_sys_dev->kobj;
1188 unlock_policy_rwsem_write(cpu);
1189 sysfs_remove_link(kobj, "cpufreq");
1190 lock_policy_rwsem_write(cpu);
1185 cpufreq_cpu_put(data); 1191 cpufreq_cpu_put(data);
1186 } 1192 }
1187 } 1193 }
@@ -1192,19 +1198,22 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1192 if (cpufreq_driver->target) 1198 if (cpufreq_driver->target)
1193 __cpufreq_governor(data, CPUFREQ_GOV_STOP); 1199 __cpufreq_governor(data, CPUFREQ_GOV_STOP);
1194 1200
1195 kobject_put(&data->kobj); 1201 kobj = &data->kobj;
1202 cmp = &data->kobj_unregister;
1203 unlock_policy_rwsem_write(cpu);
1204 kobject_put(kobj);
1196 1205
1197 /* we need to make sure that the underlying kobj is actually 1206 /* we need to make sure that the underlying kobj is actually
1198 * not referenced anymore by anybody before we proceed with 1207 * not referenced anymore by anybody before we proceed with
1199 * unloading. 1208 * unloading.
1200 */ 1209 */
1201 dprintk("waiting for dropping of refcount\n"); 1210 dprintk("waiting for dropping of refcount\n");
1202 wait_for_completion(&data->kobj_unregister); 1211 wait_for_completion(cmp);
1203 dprintk("wait complete\n"); 1212 dprintk("wait complete\n");
1204 1213
1214 lock_policy_rwsem_write(cpu);
1205 if (cpufreq_driver->exit) 1215 if (cpufreq_driver->exit)
1206 cpufreq_driver->exit(data); 1216 cpufreq_driver->exit(data);
1207
1208 unlock_policy_rwsem_write(cpu); 1217 unlock_policy_rwsem_write(cpu);
1209 1218
1210 free_cpumask_var(data->related_cpus); 1219 free_cpumask_var(data->related_cpus);
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 599a40b25cb0..3a147874a465 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -444,6 +444,7 @@ static struct attribute_group dbs_attr_group_old = {
444static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) 444static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
445{ 445{
446 unsigned int load = 0; 446 unsigned int load = 0;
447 unsigned int max_load = 0;
447 unsigned int freq_target; 448 unsigned int freq_target;
448 449
449 struct cpufreq_policy *policy; 450 struct cpufreq_policy *policy;
@@ -501,6 +502,9 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
501 continue; 502 continue;
502 503
503 load = 100 * (wall_time - idle_time) / wall_time; 504 load = 100 * (wall_time - idle_time) / wall_time;
505
506 if (load > max_load)
507 max_load = load;
504 } 508 }
505 509
506 /* 510 /*
@@ -511,7 +515,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
511 return; 515 return;
512 516
513 /* Check for frequency increase */ 517 /* Check for frequency increase */
514 if (load > dbs_tuners_ins.up_threshold) { 518 if (max_load > dbs_tuners_ins.up_threshold) {
515 this_dbs_info->down_skip = 0; 519 this_dbs_info->down_skip = 0;
516 520
517 /* if we are already at full speed then break out early */ 521 /* if we are already at full speed then break out early */
@@ -538,7 +542,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
538 * can support the current CPU usage without triggering the up 542 * can support the current CPU usage without triggering the up
539 * policy. To be safe, we focus 10 points under the threshold. 543 * policy. To be safe, we focus 10 points under the threshold.
540 */ 544 */
541 if (load < (dbs_tuners_ins.down_threshold - 10)) { 545 if (max_load < (dbs_tuners_ins.down_threshold - 10)) {
542 freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100; 546 freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100;
543 547
544 this_dbs_info->requested_freq -= freq_target; 548 this_dbs_info->requested_freq -= freq_target;
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index bd444dc93cf2..8e9dbdc6c700 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -73,6 +73,7 @@ enum {DBS_NORMAL_SAMPLE, DBS_SUB_SAMPLE};
73 73
74struct cpu_dbs_info_s { 74struct cpu_dbs_info_s {
75 cputime64_t prev_cpu_idle; 75 cputime64_t prev_cpu_idle;
76 cputime64_t prev_cpu_iowait;
76 cputime64_t prev_cpu_wall; 77 cputime64_t prev_cpu_wall;
77 cputime64_t prev_cpu_nice; 78 cputime64_t prev_cpu_nice;
78 struct cpufreq_policy *cur_policy; 79 struct cpufreq_policy *cur_policy;
@@ -108,6 +109,7 @@ static struct dbs_tuners {
108 unsigned int down_differential; 109 unsigned int down_differential;
109 unsigned int ignore_nice; 110 unsigned int ignore_nice;
110 unsigned int powersave_bias; 111 unsigned int powersave_bias;
112 unsigned int io_is_busy;
111} dbs_tuners_ins = { 113} dbs_tuners_ins = {
112 .up_threshold = DEF_FREQUENCY_UP_THRESHOLD, 114 .up_threshold = DEF_FREQUENCY_UP_THRESHOLD,
113 .down_differential = DEF_FREQUENCY_DOWN_DIFFERENTIAL, 115 .down_differential = DEF_FREQUENCY_DOWN_DIFFERENTIAL,
@@ -148,6 +150,16 @@ static inline cputime64_t get_cpu_idle_time(unsigned int cpu, cputime64_t *wall)
148 return idle_time; 150 return idle_time;
149} 151}
150 152
153static inline cputime64_t get_cpu_iowait_time(unsigned int cpu, cputime64_t *wall)
154{
155 u64 iowait_time = get_cpu_iowait_time_us(cpu, wall);
156
157 if (iowait_time == -1ULL)
158 return 0;
159
160 return iowait_time;
161}
162
151/* 163/*
152 * Find right freq to be set now with powersave_bias on. 164 * Find right freq to be set now with powersave_bias on.
153 * Returns the freq_hi to be used right now and will set freq_hi_jiffies, 165 * Returns the freq_hi to be used right now and will set freq_hi_jiffies,
@@ -249,6 +261,7 @@ static ssize_t show_##file_name \
249 return sprintf(buf, "%u\n", dbs_tuners_ins.object); \ 261 return sprintf(buf, "%u\n", dbs_tuners_ins.object); \
250} 262}
251show_one(sampling_rate, sampling_rate); 263show_one(sampling_rate, sampling_rate);
264show_one(io_is_busy, io_is_busy);
252show_one(up_threshold, up_threshold); 265show_one(up_threshold, up_threshold);
253show_one(ignore_nice_load, ignore_nice); 266show_one(ignore_nice_load, ignore_nice);
254show_one(powersave_bias, powersave_bias); 267show_one(powersave_bias, powersave_bias);
@@ -299,6 +312,23 @@ static ssize_t store_sampling_rate(struct kobject *a, struct attribute *b,
299 return count; 312 return count;
300} 313}
301 314
315static ssize_t store_io_is_busy(struct kobject *a, struct attribute *b,
316 const char *buf, size_t count)
317{
318 unsigned int input;
319 int ret;
320
321 ret = sscanf(buf, "%u", &input);
322 if (ret != 1)
323 return -EINVAL;
324
325 mutex_lock(&dbs_mutex);
326 dbs_tuners_ins.io_is_busy = !!input;
327 mutex_unlock(&dbs_mutex);
328
329 return count;
330}
331
302static ssize_t store_up_threshold(struct kobject *a, struct attribute *b, 332static ssize_t store_up_threshold(struct kobject *a, struct attribute *b,
303 const char *buf, size_t count) 333 const char *buf, size_t count)
304{ 334{
@@ -381,6 +411,7 @@ static struct global_attr _name = \
381__ATTR(_name, 0644, show_##_name, store_##_name) 411__ATTR(_name, 0644, show_##_name, store_##_name)
382 412
383define_one_rw(sampling_rate); 413define_one_rw(sampling_rate);
414define_one_rw(io_is_busy);
384define_one_rw(up_threshold); 415define_one_rw(up_threshold);
385define_one_rw(ignore_nice_load); 416define_one_rw(ignore_nice_load);
386define_one_rw(powersave_bias); 417define_one_rw(powersave_bias);
@@ -392,6 +423,7 @@ static struct attribute *dbs_attributes[] = {
392 &up_threshold.attr, 423 &up_threshold.attr,
393 &ignore_nice_load.attr, 424 &ignore_nice_load.attr,
394 &powersave_bias.attr, 425 &powersave_bias.attr,
426 &io_is_busy.attr,
395 NULL 427 NULL
396}; 428};
397 429
@@ -470,14 +502,15 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
470 502
471 for_each_cpu(j, policy->cpus) { 503 for_each_cpu(j, policy->cpus) {
472 struct cpu_dbs_info_s *j_dbs_info; 504 struct cpu_dbs_info_s *j_dbs_info;
473 cputime64_t cur_wall_time, cur_idle_time; 505 cputime64_t cur_wall_time, cur_idle_time, cur_iowait_time;
474 unsigned int idle_time, wall_time; 506 unsigned int idle_time, wall_time, iowait_time;
475 unsigned int load, load_freq; 507 unsigned int load, load_freq;
476 int freq_avg; 508 int freq_avg;
477 509
478 j_dbs_info = &per_cpu(od_cpu_dbs_info, j); 510 j_dbs_info = &per_cpu(od_cpu_dbs_info, j);
479 511
480 cur_idle_time = get_cpu_idle_time(j, &cur_wall_time); 512 cur_idle_time = get_cpu_idle_time(j, &cur_wall_time);
513 cur_iowait_time = get_cpu_iowait_time(j, &cur_wall_time);
481 514
482 wall_time = (unsigned int) cputime64_sub(cur_wall_time, 515 wall_time = (unsigned int) cputime64_sub(cur_wall_time,
483 j_dbs_info->prev_cpu_wall); 516 j_dbs_info->prev_cpu_wall);
@@ -487,6 +520,10 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
487 j_dbs_info->prev_cpu_idle); 520 j_dbs_info->prev_cpu_idle);
488 j_dbs_info->prev_cpu_idle = cur_idle_time; 521 j_dbs_info->prev_cpu_idle = cur_idle_time;
489 522
523 iowait_time = (unsigned int) cputime64_sub(cur_iowait_time,
524 j_dbs_info->prev_cpu_iowait);
525 j_dbs_info->prev_cpu_iowait = cur_iowait_time;
526
490 if (dbs_tuners_ins.ignore_nice) { 527 if (dbs_tuners_ins.ignore_nice) {
491 cputime64_t cur_nice; 528 cputime64_t cur_nice;
492 unsigned long cur_nice_jiffies; 529 unsigned long cur_nice_jiffies;
@@ -504,6 +541,16 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
504 idle_time += jiffies_to_usecs(cur_nice_jiffies); 541 idle_time += jiffies_to_usecs(cur_nice_jiffies);
505 } 542 }
506 543
544 /*
545 * For the purpose of ondemand, waiting for disk IO is an
546 * indication that you're performance critical, and not that
547 * the system is actually idle. So subtract the iowait time
548 * from the cpu idle time.
549 */
550
551 if (dbs_tuners_ins.io_is_busy && idle_time >= iowait_time)
552 idle_time -= iowait_time;
553
507 if (unlikely(!wall_time || wall_time < idle_time)) 554 if (unlikely(!wall_time || wall_time < idle_time))
508 continue; 555 continue;
509 556
@@ -617,6 +664,29 @@ static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)
617 cancel_delayed_work_sync(&dbs_info->work); 664 cancel_delayed_work_sync(&dbs_info->work);
618} 665}
619 666
667/*
668 * Not all CPUs want IO time to be accounted as busy; this dependson how
669 * efficient idling at a higher frequency/voltage is.
670 * Pavel Machek says this is not so for various generations of AMD and old
671 * Intel systems.
672 * Mike Chan (androidlcom) calis this is also not true for ARM.
673 * Because of this, whitelist specific known (series) of CPUs by default, and
674 * leave all others up to the user.
675 */
676static int should_io_be_busy(void)
677{
678#if defined(CONFIG_X86)
679 /*
680 * For Intel, Core 2 (model 15) andl later have an efficient idle.
681 */
682 if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
683 boot_cpu_data.x86 == 6 &&
684 boot_cpu_data.x86_model >= 15)
685 return 1;
686#endif
687 return 0;
688}
689
620static int cpufreq_governor_dbs(struct cpufreq_policy *policy, 690static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
621 unsigned int event) 691 unsigned int event)
622{ 692{
@@ -679,6 +749,7 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
679 dbs_tuners_ins.sampling_rate = 749 dbs_tuners_ins.sampling_rate =
680 max(min_sampling_rate, 750 max(min_sampling_rate,
681 latency * LATENCY_MULTIPLIER); 751 latency * LATENCY_MULTIPLIER);
752 dbs_tuners_ins.io_is_busy = should_io_be_busy();
682 } 753 }
683 mutex_unlock(&dbs_mutex); 754 mutex_unlock(&dbs_mutex);
684 755
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c
index 3784a47865b7..8f5aebfb29df 100644
--- a/drivers/firewire/core-iso.c
+++ b/drivers/firewire/core-iso.c
@@ -190,7 +190,7 @@ static int manage_bandwidth(struct fw_card *card, int irm_id, int generation,
190 for (try = 0; try < 5; try++) { 190 for (try = 0; try < 5; try++) {
191 new = allocate ? old - bandwidth : old + bandwidth; 191 new = allocate ? old - bandwidth : old + bandwidth;
192 if (new < 0 || new > BANDWIDTH_AVAILABLE_INITIAL) 192 if (new < 0 || new > BANDWIDTH_AVAILABLE_INITIAL)
193 break; 193 return -EBUSY;
194 194
195 data[0] = cpu_to_be32(old); 195 data[0] = cpu_to_be32(old);
196 data[1] = cpu_to_be32(new); 196 data[1] = cpu_to_be32(new);
@@ -218,7 +218,7 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
218 u32 channels_mask, u64 offset, bool allocate, __be32 data[2]) 218 u32 channels_mask, u64 offset, bool allocate, __be32 data[2])
219{ 219{
220 __be32 c, all, old; 220 __be32 c, all, old;
221 int i, retry = 5; 221 int i, ret = -EIO, retry = 5;
222 222
223 old = all = allocate ? cpu_to_be32(~0) : 0; 223 old = all = allocate ? cpu_to_be32(~0) : 0;
224 224
@@ -226,6 +226,8 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
226 if (!(channels_mask & 1 << i)) 226 if (!(channels_mask & 1 << i))
227 continue; 227 continue;
228 228
229 ret = -EBUSY;
230
229 c = cpu_to_be32(1 << (31 - i)); 231 c = cpu_to_be32(1 << (31 - i));
230 if ((old & c) != (all & c)) 232 if ((old & c) != (all & c))
231 continue; 233 continue;
@@ -251,12 +253,16 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
251 253
252 /* 1394-1995 IRM, fall through to retry. */ 254 /* 1394-1995 IRM, fall through to retry. */
253 default: 255 default:
254 if (retry--) 256 if (retry) {
257 retry--;
255 i--; 258 i--;
259 } else {
260 ret = -EIO;
261 }
256 } 262 }
257 } 263 }
258 264
259 return -EIO; 265 return ret;
260} 266}
261 267
262static void deallocate_channel(struct fw_card *card, int irm_id, 268static void deallocate_channel(struct fw_card *card, int irm_id,
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 0cf4d7f562c5..94b16e0340ae 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -1158,7 +1158,7 @@ static void handle_local_lock(struct fw_ohci *ohci,
1158 struct fw_packet *packet, u32 csr) 1158 struct fw_packet *packet, u32 csr)
1159{ 1159{
1160 struct fw_packet response; 1160 struct fw_packet response;
1161 int tcode, length, ext_tcode, sel; 1161 int tcode, length, ext_tcode, sel, try;
1162 __be32 *payload, lock_old; 1162 __be32 *payload, lock_old;
1163 u32 lock_arg, lock_data; 1163 u32 lock_arg, lock_data;
1164 1164
@@ -1185,21 +1185,26 @@ static void handle_local_lock(struct fw_ohci *ohci,
1185 reg_write(ohci, OHCI1394_CSRCompareData, lock_arg); 1185 reg_write(ohci, OHCI1394_CSRCompareData, lock_arg);
1186 reg_write(ohci, OHCI1394_CSRControl, sel); 1186 reg_write(ohci, OHCI1394_CSRControl, sel);
1187 1187
1188 if (reg_read(ohci, OHCI1394_CSRControl) & 0x80000000) 1188 for (try = 0; try < 20; try++)
1189 lock_old = cpu_to_be32(reg_read(ohci, OHCI1394_CSRData)); 1189 if (reg_read(ohci, OHCI1394_CSRControl) & 0x80000000) {
1190 else 1190 lock_old = cpu_to_be32(reg_read(ohci,
1191 fw_notify("swap not done yet\n"); 1191 OHCI1394_CSRData));
1192 fw_fill_response(&response, packet->header,
1193 RCODE_COMPLETE,
1194 &lock_old, sizeof(lock_old));
1195 goto out;
1196 }
1197
1198 fw_error("swap not done (CSR lock timeout)\n");
1199 fw_fill_response(&response, packet->header, RCODE_BUSY, NULL, 0);
1192 1200
1193 fw_fill_response(&response, packet->header,
1194 RCODE_COMPLETE, &lock_old, sizeof(lock_old));
1195 out: 1201 out:
1196 fw_core_handle_response(&ohci->card, &response); 1202 fw_core_handle_response(&ohci->card, &response);
1197} 1203}
1198 1204
1199static void handle_local_request(struct context *ctx, struct fw_packet *packet) 1205static void handle_local_request(struct context *ctx, struct fw_packet *packet)
1200{ 1206{
1201 u64 offset; 1207 u64 offset, csr;
1202 u32 csr;
1203 1208
1204 if (ctx == &ctx->ohci->at_request_ctx) { 1209 if (ctx == &ctx->ohci->at_request_ctx) {
1205 packet->ack = ACK_PENDING; 1210 packet->ack = ACK_PENDING;
diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c
index 7d521e1d17e1..b827c976dc62 100644
--- a/drivers/gpio/pca953x.c
+++ b/drivers/gpio/pca953x.c
@@ -252,6 +252,18 @@ static void pca953x_irq_bus_lock(unsigned int irq)
252static void pca953x_irq_bus_sync_unlock(unsigned int irq) 252static void pca953x_irq_bus_sync_unlock(unsigned int irq)
253{ 253{
254 struct pca953x_chip *chip = get_irq_chip_data(irq); 254 struct pca953x_chip *chip = get_irq_chip_data(irq);
255 uint16_t new_irqs;
256 uint16_t level;
257
258 /* Look for any newly setup interrupt */
259 new_irqs = chip->irq_trig_fall | chip->irq_trig_raise;
260 new_irqs &= ~chip->reg_direction;
261
262 while (new_irqs) {
263 level = __ffs(new_irqs);
264 pca953x_gpio_direction_input(&chip->gpio_chip, level);
265 new_irqs &= ~(1 << level);
266 }
255 267
256 mutex_unlock(&chip->irq_lock); 268 mutex_unlock(&chip->irq_lock);
257} 269}
@@ -278,7 +290,7 @@ static int pca953x_irq_set_type(unsigned int irq, unsigned int type)
278 else 290 else
279 chip->irq_trig_raise &= ~mask; 291 chip->irq_trig_raise &= ~mask;
280 292
281 return pca953x_gpio_direction_input(&chip->gpio_chip, level); 293 return 0;
282} 294}
283 295
284static struct irq_chip pca953x_irq_chip = { 296static struct irq_chip pca953x_irq_chip = {
diff --git a/drivers/gpio/pl061.c b/drivers/gpio/pl061.c
index 5ad8f778ced4..105701a1f05b 100644
--- a/drivers/gpio/pl061.c
+++ b/drivers/gpio/pl061.c
@@ -91,6 +91,12 @@ static int pl061_direction_output(struct gpio_chip *gc, unsigned offset,
91 gpiodir = readb(chip->base + GPIODIR); 91 gpiodir = readb(chip->base + GPIODIR);
92 gpiodir |= 1 << offset; 92 gpiodir |= 1 << offset;
93 writeb(gpiodir, chip->base + GPIODIR); 93 writeb(gpiodir, chip->base + GPIODIR);
94
95 /*
96 * gpio value is set again, because pl061 doesn't allow to set value of
97 * a gpio pin before configuring it in OUT mode.
98 */
99 writeb(!!value << offset, chip->base + (1 << (offset + 2)));
94 spin_unlock_irqrestore(&chip->lock, flags); 100 spin_unlock_irqrestore(&chip->lock, flags);
95 101
96 return 0; 102 return 0;
@@ -183,7 +189,7 @@ static int pl061_irq_type(unsigned irq, unsigned trigger)
183 gpioibe &= ~(1 << offset); 189 gpioibe &= ~(1 << offset);
184 if (trigger & IRQ_TYPE_EDGE_RISING) 190 if (trigger & IRQ_TYPE_EDGE_RISING)
185 gpioiev |= 1 << offset; 191 gpioiev |= 1 << offset;
186 else 192 else if (trigger & IRQ_TYPE_EDGE_FALLING)
187 gpioiev &= ~(1 << offset); 193 gpioiev &= ~(1 << offset);
188 } 194 }
189 writeb(gpioibe, chip->base + GPIOIBE); 195 writeb(gpioibe, chip->base + GPIOIBE);
@@ -204,7 +210,7 @@ static struct irq_chip pl061_irqchip = {
204 210
205static void pl061_irq_handler(unsigned irq, struct irq_desc *desc) 211static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
206{ 212{
207 struct list_head *chip_list = get_irq_chip_data(irq); 213 struct list_head *chip_list = get_irq_data(irq);
208 struct list_head *ptr; 214 struct list_head *ptr;
209 struct pl061_gpio *chip; 215 struct pl061_gpio *chip;
210 216
@@ -297,9 +303,9 @@ static int __init pl061_probe(struct amba_device *dev, struct amba_id *id)
297 goto iounmap; 303 goto iounmap;
298 } 304 }
299 INIT_LIST_HEAD(chip_list); 305 INIT_LIST_HEAD(chip_list);
300 set_irq_chip_data(irq, chip_list); 306 set_irq_data(irq, chip_list);
301 } else 307 } else
302 chip_list = get_irq_chip_data(irq); 308 chip_list = get_irq_data(irq);
303 list_add(&chip->list, chip_list); 309 list_add(&chip->list, chip_list);
304 310
305 for (i = 0; i < PL061_GPIO_NR; i++) { 311 for (i = 0; i < PL061_GPIO_NR; i++) {
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 3bd872761567..a263b7070fc6 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -476,6 +476,7 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
476 unsigned long irqflags; 476 unsigned long irqflags;
477 477
478 spin_lock_irqsave(&dev->vbl_lock, irqflags); 478 spin_lock_irqsave(&dev->vbl_lock, irqflags);
479 dev->driver->disable_vblank(dev, crtc);
479 DRM_WAKEUP(&dev->vbl_queue[crtc]); 480 DRM_WAKEUP(&dev->vbl_queue[crtc]);
480 dev->vblank_enabled[crtc] = 0; 481 dev->vblank_enabled[crtc] = 0;
481 dev->last_vblank[crtc] = dev->driver->get_vblank_counter(dev, crtc); 482 dev->last_vblank[crtc] = dev->driver->get_vblank_counter(dev, crtc);
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index b743411d8144..a0c365f2e521 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -516,8 +516,6 @@ void drm_put_dev(struct drm_device *dev)
516 } 516 }
517 driver = dev->driver; 517 driver = dev->driver;
518 518
519 drm_vblank_cleanup(dev);
520
521 drm_lastclose(dev); 519 drm_lastclose(dev);
522 520
523 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && 521 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) &&
@@ -537,6 +535,8 @@ void drm_put_dev(struct drm_device *dev)
537 dev->agp = NULL; 535 dev->agp = NULL;
538 } 536 }
539 537
538 drm_vblank_cleanup(dev);
539
540 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) 540 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
541 drm_rmmap(dev, r_list->map); 541 drm_rmmap(dev, r_list->map);
542 drm_ht_remove(&dev->map_hash); 542 drm_ht_remove(&dev->map_hash);
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 2dc93939507d..c3cfafcbfe7d 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1357,6 +1357,8 @@ static void i915_setup_compression(struct drm_device *dev, int size)
1357 1357
1358 dev_priv->cfb_size = size; 1358 dev_priv->cfb_size = size;
1359 1359
1360 dev_priv->compressed_fb = compressed_fb;
1361
1360 if (IS_GM45(dev)) { 1362 if (IS_GM45(dev)) {
1361 g4x_disable_fbc(dev); 1363 g4x_disable_fbc(dev);
1362 I915_WRITE(DPFC_CB_BASE, compressed_fb->start); 1364 I915_WRITE(DPFC_CB_BASE, compressed_fb->start);
@@ -1364,12 +1366,22 @@ static void i915_setup_compression(struct drm_device *dev, int size)
1364 i8xx_disable_fbc(dev); 1366 i8xx_disable_fbc(dev);
1365 I915_WRITE(FBC_CFB_BASE, cfb_base); 1367 I915_WRITE(FBC_CFB_BASE, cfb_base);
1366 I915_WRITE(FBC_LL_BASE, ll_base); 1368 I915_WRITE(FBC_LL_BASE, ll_base);
1369 dev_priv->compressed_llb = compressed_llb;
1367 } 1370 }
1368 1371
1369 DRM_DEBUG("FBC base 0x%08lx, ll base 0x%08lx, size %dM\n", cfb_base, 1372 DRM_DEBUG("FBC base 0x%08lx, ll base 0x%08lx, size %dM\n", cfb_base,
1370 ll_base, size >> 20); 1373 ll_base, size >> 20);
1371} 1374}
1372 1375
1376static void i915_cleanup_compression(struct drm_device *dev)
1377{
1378 struct drm_i915_private *dev_priv = dev->dev_private;
1379
1380 drm_mm_put_block(dev_priv->compressed_fb);
1381 if (!IS_GM45(dev))
1382 drm_mm_put_block(dev_priv->compressed_llb);
1383}
1384
1373/* true = enable decode, false = disable decoder */ 1385/* true = enable decode, false = disable decoder */
1374static unsigned int i915_vga_set_decode(void *cookie, bool state) 1386static unsigned int i915_vga_set_decode(void *cookie, bool state)
1375{ 1387{
@@ -1787,6 +1799,8 @@ int i915_driver_unload(struct drm_device *dev)
1787 mutex_lock(&dev->struct_mutex); 1799 mutex_lock(&dev->struct_mutex);
1788 i915_gem_cleanup_ringbuffer(dev); 1800 i915_gem_cleanup_ringbuffer(dev);
1789 mutex_unlock(&dev->struct_mutex); 1801 mutex_unlock(&dev->struct_mutex);
1802 if (I915_HAS_FBC(dev) && i915_powersave)
1803 i915_cleanup_compression(dev);
1790 drm_mm_takedown(&dev_priv->vram); 1804 drm_mm_takedown(&dev_priv->vram);
1791 i915_gem_lastclose(dev); 1805 i915_gem_lastclose(dev);
1792 1806
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 0af3dcc85ce9..cc03537bb883 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -69,7 +69,8 @@ const static struct intel_device_info intel_845g_info = {
69}; 69};
70 70
71const static struct intel_device_info intel_i85x_info = { 71const static struct intel_device_info intel_i85x_info = {
72 .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, 72 .is_i8xx = 1, .is_i85x = 1, .is_mobile = 1,
73 .cursor_needs_physical = 1,
73}; 74};
74 75
75const static struct intel_device_info intel_i865g_info = { 76const static struct intel_device_info intel_i865g_info = {
@@ -151,7 +152,7 @@ const static struct pci_device_id pciidlist[] = {
151 INTEL_VGA_DEVICE(0x3577, &intel_i830_info), 152 INTEL_VGA_DEVICE(0x3577, &intel_i830_info),
152 INTEL_VGA_DEVICE(0x2562, &intel_845g_info), 153 INTEL_VGA_DEVICE(0x2562, &intel_845g_info),
153 INTEL_VGA_DEVICE(0x3582, &intel_i85x_info), 154 INTEL_VGA_DEVICE(0x3582, &intel_i85x_info),
154 INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info), 155 INTEL_VGA_DEVICE(0x358e, &intel_i85x_info),
155 INTEL_VGA_DEVICE(0x2572, &intel_i865g_info), 156 INTEL_VGA_DEVICE(0x2572, &intel_i865g_info),
156 INTEL_VGA_DEVICE(0x2582, &intel_i915g_info), 157 INTEL_VGA_DEVICE(0x2582, &intel_i915g_info),
157 INTEL_VGA_DEVICE(0x258a, &intel_i915g_info), 158 INTEL_VGA_DEVICE(0x258a, &intel_i915g_info),
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6960849522f8..6e4790065d9e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -195,6 +195,7 @@ struct intel_overlay;
195struct intel_device_info { 195struct intel_device_info {
196 u8 is_mobile : 1; 196 u8 is_mobile : 1;
197 u8 is_i8xx : 1; 197 u8 is_i8xx : 1;
198 u8 is_i85x : 1;
198 u8 is_i915g : 1; 199 u8 is_i915g : 1;
199 u8 is_i9xx : 1; 200 u8 is_i9xx : 1;
200 u8 is_i945gm : 1; 201 u8 is_i945gm : 1;
@@ -235,11 +236,14 @@ typedef struct drm_i915_private {
235 236
236 drm_dma_handle_t *status_page_dmah; 237 drm_dma_handle_t *status_page_dmah;
237 void *hw_status_page; 238 void *hw_status_page;
239 void *seqno_page;
238 dma_addr_t dma_status_page; 240 dma_addr_t dma_status_page;
239 uint32_t counter; 241 uint32_t counter;
240 unsigned int status_gfx_addr; 242 unsigned int status_gfx_addr;
243 unsigned int seqno_gfx_addr;
241 drm_local_map_t hws_map; 244 drm_local_map_t hws_map;
242 struct drm_gem_object *hws_obj; 245 struct drm_gem_object *hws_obj;
246 struct drm_gem_object *seqno_obj;
243 struct drm_gem_object *pwrctx; 247 struct drm_gem_object *pwrctx;
244 248
245 struct resource mch_res; 249 struct resource mch_res;
@@ -630,6 +634,9 @@ typedef struct drm_i915_private {
630 u8 max_delay; 634 u8 max_delay;
631 635
632 enum no_fbc_reason no_fbc_reason; 636 enum no_fbc_reason no_fbc_reason;
637
638 struct drm_mm_node *compressed_fb;
639 struct drm_mm_node *compressed_llb;
633} drm_i915_private_t; 640} drm_i915_private_t;
634 641
635/** driver private structure attached to each drm_gem_object */ 642/** driver private structure attached to each drm_gem_object */
@@ -1070,7 +1077,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1070 1077
1071#define IS_I830(dev) ((dev)->pci_device == 0x3577) 1078#define IS_I830(dev) ((dev)->pci_device == 0x3577)
1072#define IS_845G(dev) ((dev)->pci_device == 0x2562) 1079#define IS_845G(dev) ((dev)->pci_device == 0x2562)
1073#define IS_I85X(dev) ((dev)->pci_device == 0x3582) 1080#define IS_I85X(dev) (INTEL_INFO(dev)->is_i85x)
1074#define IS_I865G(dev) ((dev)->pci_device == 0x2572) 1081#define IS_I865G(dev) ((dev)->pci_device == 0x2572)
1075#define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx) 1082#define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx)
1076#define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g) 1083#define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g)
@@ -1135,6 +1142,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1135 1142
1136#define HAS_PCH_SPLIT(dev) (IS_IRONLAKE(dev) || \ 1143#define HAS_PCH_SPLIT(dev) (IS_IRONLAKE(dev) || \
1137 IS_GEN6(dev)) 1144 IS_GEN6(dev))
1145#define HAS_PIPE_CONTROL(dev) (IS_IRONLAKE(dev) || IS_GEN6(dev))
1138 1146
1139#define PRIMARY_RINGBUFFER_SIZE (128*1024) 1147#define PRIMARY_RINGBUFFER_SIZE (128*1024)
1140 1148
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 80871c62a571..ef3d91dda71a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1588,6 +1588,13 @@ i915_gem_process_flushing_list(struct drm_device *dev,
1588 } 1588 }
1589} 1589}
1590 1590
1591#define PIPE_CONTROL_FLUSH(addr) \
1592 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE | \
1593 PIPE_CONTROL_DEPTH_STALL); \
1594 OUT_RING(addr | PIPE_CONTROL_GLOBAL_GTT); \
1595 OUT_RING(0); \
1596 OUT_RING(0); \
1597
1591/** 1598/**
1592 * Creates a new sequence number, emitting a write of it to the status page 1599 * Creates a new sequence number, emitting a write of it to the status page
1593 * plus an interrupt, which will trigger i915_user_interrupt_handler. 1600 * plus an interrupt, which will trigger i915_user_interrupt_handler.
@@ -1622,13 +1629,47 @@ i915_add_request(struct drm_device *dev, struct drm_file *file_priv,
1622 if (dev_priv->mm.next_gem_seqno == 0) 1629 if (dev_priv->mm.next_gem_seqno == 0)
1623 dev_priv->mm.next_gem_seqno++; 1630 dev_priv->mm.next_gem_seqno++;
1624 1631
1625 BEGIN_LP_RING(4); 1632 if (HAS_PIPE_CONTROL(dev)) {
1626 OUT_RING(MI_STORE_DWORD_INDEX); 1633 u32 scratch_addr = dev_priv->seqno_gfx_addr + 128;
1627 OUT_RING(I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
1628 OUT_RING(seqno);
1629 1634
1630 OUT_RING(MI_USER_INTERRUPT); 1635 /*
1631 ADVANCE_LP_RING(); 1636 * Workaround qword write incoherence by flushing the
1637 * PIPE_NOTIFY buffers out to memory before requesting
1638 * an interrupt.
1639 */
1640 BEGIN_LP_RING(32);
1641 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE |
1642 PIPE_CONTROL_WC_FLUSH | PIPE_CONTROL_TC_FLUSH);
1643 OUT_RING(dev_priv->seqno_gfx_addr | PIPE_CONTROL_GLOBAL_GTT);
1644 OUT_RING(seqno);
1645 OUT_RING(0);
1646 PIPE_CONTROL_FLUSH(scratch_addr);
1647 scratch_addr += 128; /* write to separate cachelines */
1648 PIPE_CONTROL_FLUSH(scratch_addr);
1649 scratch_addr += 128;
1650 PIPE_CONTROL_FLUSH(scratch_addr);
1651 scratch_addr += 128;
1652 PIPE_CONTROL_FLUSH(scratch_addr);
1653 scratch_addr += 128;
1654 PIPE_CONTROL_FLUSH(scratch_addr);
1655 scratch_addr += 128;
1656 PIPE_CONTROL_FLUSH(scratch_addr);
1657 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE |
1658 PIPE_CONTROL_WC_FLUSH | PIPE_CONTROL_TC_FLUSH |
1659 PIPE_CONTROL_NOTIFY);
1660 OUT_RING(dev_priv->seqno_gfx_addr | PIPE_CONTROL_GLOBAL_GTT);
1661 OUT_RING(seqno);
1662 OUT_RING(0);
1663 ADVANCE_LP_RING();
1664 } else {
1665 BEGIN_LP_RING(4);
1666 OUT_RING(MI_STORE_DWORD_INDEX);
1667 OUT_RING(I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
1668 OUT_RING(seqno);
1669
1670 OUT_RING(MI_USER_INTERRUPT);
1671 ADVANCE_LP_RING();
1672 }
1632 1673
1633 DRM_DEBUG_DRIVER("%d\n", seqno); 1674 DRM_DEBUG_DRIVER("%d\n", seqno);
1634 1675
@@ -1752,7 +1793,10 @@ i915_get_gem_seqno(struct drm_device *dev)
1752{ 1793{
1753 drm_i915_private_t *dev_priv = dev->dev_private; 1794 drm_i915_private_t *dev_priv = dev->dev_private;
1754 1795
1755 return READ_HWSP(dev_priv, I915_GEM_HWS_INDEX); 1796 if (HAS_PIPE_CONTROL(dev))
1797 return ((volatile u32 *)(dev_priv->seqno_page))[0];
1798 else
1799 return READ_HWSP(dev_priv, I915_GEM_HWS_INDEX);
1756} 1800}
1757 1801
1758/** 1802/**
@@ -2362,6 +2406,12 @@ static void i915_write_fence_reg(struct drm_i915_fence_reg *reg)
2362 pitch_val = obj_priv->stride / tile_width; 2406 pitch_val = obj_priv->stride / tile_width;
2363 pitch_val = ffs(pitch_val) - 1; 2407 pitch_val = ffs(pitch_val) - 1;
2364 2408
2409 if (obj_priv->tiling_mode == I915_TILING_Y &&
2410 HAS_128_BYTE_Y_TILING(dev))
2411 WARN_ON(pitch_val > I830_FENCE_MAX_PITCH_VAL);
2412 else
2413 WARN_ON(pitch_val > I915_FENCE_MAX_PITCH_VAL);
2414
2365 val = obj_priv->gtt_offset; 2415 val = obj_priv->gtt_offset;
2366 if (obj_priv->tiling_mode == I915_TILING_Y) 2416 if (obj_priv->tiling_mode == I915_TILING_Y)
2367 val |= 1 << I830_FENCE_TILING_Y_SHIFT; 2417 val |= 1 << I830_FENCE_TILING_Y_SHIFT;
@@ -4546,6 +4596,49 @@ i915_gem_idle(struct drm_device *dev)
4546 return 0; 4596 return 0;
4547} 4597}
4548 4598
4599/*
4600 * 965+ support PIPE_CONTROL commands, which provide finer grained control
4601 * over cache flushing.
4602 */
4603static int
4604i915_gem_init_pipe_control(struct drm_device *dev)
4605{
4606 drm_i915_private_t *dev_priv = dev->dev_private;
4607 struct drm_gem_object *obj;
4608 struct drm_i915_gem_object *obj_priv;
4609 int ret;
4610
4611 obj = drm_gem_object_alloc(dev, 4096);
4612 if (obj == NULL) {
4613 DRM_ERROR("Failed to allocate seqno page\n");
4614 ret = -ENOMEM;
4615 goto err;
4616 }
4617 obj_priv = to_intel_bo(obj);
4618 obj_priv->agp_type = AGP_USER_CACHED_MEMORY;
4619
4620 ret = i915_gem_object_pin(obj, 4096);
4621 if (ret)
4622 goto err_unref;
4623
4624 dev_priv->seqno_gfx_addr = obj_priv->gtt_offset;
4625 dev_priv->seqno_page = kmap(obj_priv->pages[0]);
4626 if (dev_priv->seqno_page == NULL)
4627 goto err_unpin;
4628
4629 dev_priv->seqno_obj = obj;
4630 memset(dev_priv->seqno_page, 0, PAGE_SIZE);
4631
4632 return 0;
4633
4634err_unpin:
4635 i915_gem_object_unpin(obj);
4636err_unref:
4637 drm_gem_object_unreference(obj);
4638err:
4639 return ret;
4640}
4641
4549static int 4642static int
4550i915_gem_init_hws(struct drm_device *dev) 4643i915_gem_init_hws(struct drm_device *dev)
4551{ 4644{
@@ -4563,7 +4656,8 @@ i915_gem_init_hws(struct drm_device *dev)
4563 obj = drm_gem_object_alloc(dev, 4096); 4656 obj = drm_gem_object_alloc(dev, 4096);
4564 if (obj == NULL) { 4657 if (obj == NULL) {
4565 DRM_ERROR("Failed to allocate status page\n"); 4658 DRM_ERROR("Failed to allocate status page\n");
4566 return -ENOMEM; 4659 ret = -ENOMEM;
4660 goto err;
4567 } 4661 }
4568 obj_priv = to_intel_bo(obj); 4662 obj_priv = to_intel_bo(obj);
4569 obj_priv->agp_type = AGP_USER_CACHED_MEMORY; 4663 obj_priv->agp_type = AGP_USER_CACHED_MEMORY;
@@ -4571,7 +4665,7 @@ i915_gem_init_hws(struct drm_device *dev)
4571 ret = i915_gem_object_pin(obj, 4096); 4665 ret = i915_gem_object_pin(obj, 4096);
4572 if (ret != 0) { 4666 if (ret != 0) {
4573 drm_gem_object_unreference(obj); 4667 drm_gem_object_unreference(obj);
4574 return ret; 4668 goto err_unref;
4575 } 4669 }
4576 4670
4577 dev_priv->status_gfx_addr = obj_priv->gtt_offset; 4671 dev_priv->status_gfx_addr = obj_priv->gtt_offset;
@@ -4580,10 +4674,16 @@ i915_gem_init_hws(struct drm_device *dev)
4580 if (dev_priv->hw_status_page == NULL) { 4674 if (dev_priv->hw_status_page == NULL) {
4581 DRM_ERROR("Failed to map status page.\n"); 4675 DRM_ERROR("Failed to map status page.\n");
4582 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map)); 4676 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map));
4583 i915_gem_object_unpin(obj); 4677 ret = -EINVAL;
4584 drm_gem_object_unreference(obj); 4678 goto err_unpin;
4585 return -EINVAL;
4586 } 4679 }
4680
4681 if (HAS_PIPE_CONTROL(dev)) {
4682 ret = i915_gem_init_pipe_control(dev);
4683 if (ret)
4684 goto err_unpin;
4685 }
4686
4587 dev_priv->hws_obj = obj; 4687 dev_priv->hws_obj = obj;
4588 memset(dev_priv->hw_status_page, 0, PAGE_SIZE); 4688 memset(dev_priv->hw_status_page, 0, PAGE_SIZE);
4589 if (IS_GEN6(dev)) { 4689 if (IS_GEN6(dev)) {
@@ -4596,6 +4696,30 @@ i915_gem_init_hws(struct drm_device *dev)
4596 DRM_DEBUG_DRIVER("hws offset: 0x%08x\n", dev_priv->status_gfx_addr); 4696 DRM_DEBUG_DRIVER("hws offset: 0x%08x\n", dev_priv->status_gfx_addr);
4597 4697
4598 return 0; 4698 return 0;
4699
4700err_unpin:
4701 i915_gem_object_unpin(obj);
4702err_unref:
4703 drm_gem_object_unreference(obj);
4704err:
4705 return 0;
4706}
4707
4708static void
4709i915_gem_cleanup_pipe_control(struct drm_device *dev)
4710{
4711 drm_i915_private_t *dev_priv = dev->dev_private;
4712 struct drm_gem_object *obj;
4713 struct drm_i915_gem_object *obj_priv;
4714
4715 obj = dev_priv->seqno_obj;
4716 obj_priv = to_intel_bo(obj);
4717 kunmap(obj_priv->pages[0]);
4718 i915_gem_object_unpin(obj);
4719 drm_gem_object_unreference(obj);
4720 dev_priv->seqno_obj = NULL;
4721
4722 dev_priv->seqno_page = NULL;
4599} 4723}
4600 4724
4601static void 4725static void
@@ -4619,6 +4743,9 @@ i915_gem_cleanup_hws(struct drm_device *dev)
4619 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map)); 4743 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map));
4620 dev_priv->hw_status_page = NULL; 4744 dev_priv->hw_status_page = NULL;
4621 4745
4746 if (HAS_PIPE_CONTROL(dev))
4747 i915_gem_cleanup_pipe_control(dev);
4748
4622 /* Write high address into HWS_PGA when disabling. */ 4749 /* Write high address into HWS_PGA when disabling. */
4623 I915_WRITE(HWS_PGA, 0x1ffff000); 4750 I915_WRITE(HWS_PGA, 0x1ffff000);
4624} 4751}
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 449157f71610..4bdccefcf2cf 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -202,21 +202,17 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
202 * reg, so dont bother to check the size */ 202 * reg, so dont bother to check the size */
203 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL) 203 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL)
204 return false; 204 return false;
205 } else if (IS_I9XX(dev)) { 205 } else if (IS_GEN3(dev) || IS_GEN2(dev)) {
206 uint32_t pitch_val = ffs(stride / tile_width) - 1; 206 if (stride > 8192)
207
208 /* XXX: For Y tiling, FENCE_MAX_PITCH_VAL is actually 6 (8KB)
209 * instead of 4 (2KB) on 945s.
210 */
211 if (pitch_val > I915_FENCE_MAX_PITCH_VAL ||
212 size > (I830_FENCE_MAX_SIZE_VAL << 20))
213 return false; 207 return false;
214 } else {
215 uint32_t pitch_val = ffs(stride / tile_width) - 1;
216 208
217 if (pitch_val > I830_FENCE_MAX_PITCH_VAL || 209 if (IS_GEN3(dev)) {
218 size > (I830_FENCE_MAX_SIZE_VAL << 19)) 210 if (size > I830_FENCE_MAX_SIZE_VAL << 20)
219 return false; 211 return false;
212 } else {
213 if (size > I830_FENCE_MAX_SIZE_VAL << 19)
214 return false;
215 }
220 } 216 }
221 217
222 /* 965+ just needs multiples of tile width */ 218 /* 965+ just needs multiples of tile width */
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 6421481d6222..2b8b969d0c15 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -349,7 +349,7 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev)
349 READ_BREADCRUMB(dev_priv); 349 READ_BREADCRUMB(dev_priv);
350 } 350 }
351 351
352 if (gt_iir & GT_USER_INTERRUPT) { 352 if (gt_iir & GT_PIPE_NOTIFY) {
353 u32 seqno = i915_get_gem_seqno(dev); 353 u32 seqno = i915_get_gem_seqno(dev);
354 dev_priv->mm.irq_gem_seqno = seqno; 354 dev_priv->mm.irq_gem_seqno = seqno;
355 trace_i915_gem_request_complete(dev, seqno); 355 trace_i915_gem_request_complete(dev, seqno);
@@ -1005,7 +1005,7 @@ void i915_user_irq_get(struct drm_device *dev)
1005 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 1005 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
1006 if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1)) { 1006 if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1)) {
1007 if (HAS_PCH_SPLIT(dev)) 1007 if (HAS_PCH_SPLIT(dev))
1008 ironlake_enable_graphics_irq(dev_priv, GT_USER_INTERRUPT); 1008 ironlake_enable_graphics_irq(dev_priv, GT_PIPE_NOTIFY);
1009 else 1009 else
1010 i915_enable_irq(dev_priv, I915_USER_INTERRUPT); 1010 i915_enable_irq(dev_priv, I915_USER_INTERRUPT);
1011 } 1011 }
@@ -1021,7 +1021,7 @@ void i915_user_irq_put(struct drm_device *dev)
1021 BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0); 1021 BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0);
1022 if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0)) { 1022 if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0)) {
1023 if (HAS_PCH_SPLIT(dev)) 1023 if (HAS_PCH_SPLIT(dev))
1024 ironlake_disable_graphics_irq(dev_priv, GT_USER_INTERRUPT); 1024 ironlake_disable_graphics_irq(dev_priv, GT_PIPE_NOTIFY);
1025 else 1025 else
1026 i915_disable_irq(dev_priv, I915_USER_INTERRUPT); 1026 i915_disable_irq(dev_priv, I915_USER_INTERRUPT);
1027 } 1027 }
@@ -1305,7 +1305,7 @@ static int ironlake_irq_postinstall(struct drm_device *dev)
1305 /* enable kind of interrupts always enabled */ 1305 /* enable kind of interrupts always enabled */
1306 u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | 1306 u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT |
1307 DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE; 1307 DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE;
1308 u32 render_mask = GT_USER_INTERRUPT; 1308 u32 render_mask = GT_PIPE_NOTIFY;
1309 u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG | 1309 u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG |
1310 SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG; 1310 SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG;
1311 1311
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 7cc8410239cb..8fcc75c1aa28 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -382,8 +382,57 @@ static void intel_didl_outputs(struct drm_device *dev)
382 struct drm_i915_private *dev_priv = dev->dev_private; 382 struct drm_i915_private *dev_priv = dev->dev_private;
383 struct intel_opregion *opregion = &dev_priv->opregion; 383 struct intel_opregion *opregion = &dev_priv->opregion;
384 struct drm_connector *connector; 384 struct drm_connector *connector;
385 acpi_handle handle;
386 struct acpi_device *acpi_dev, *acpi_cdev, *acpi_video_bus = NULL;
387 unsigned long long device_id;
388 acpi_status status;
385 int i = 0; 389 int i = 0;
386 390
391 handle = DEVICE_ACPI_HANDLE(&dev->pdev->dev);
392 if (!handle || ACPI_FAILURE(acpi_bus_get_device(handle, &acpi_dev)))
393 return;
394
395 if (acpi_is_video_device(acpi_dev))
396 acpi_video_bus = acpi_dev;
397 else {
398 list_for_each_entry(acpi_cdev, &acpi_dev->children, node) {
399 if (acpi_is_video_device(acpi_cdev)) {
400 acpi_video_bus = acpi_cdev;
401 break;
402 }
403 }
404 }
405
406 if (!acpi_video_bus) {
407 printk(KERN_WARNING "No ACPI video bus found\n");
408 return;
409 }
410
411 list_for_each_entry(acpi_cdev, &acpi_video_bus->children, node) {
412 if (i >= 8) {
413 dev_printk (KERN_ERR, &dev->pdev->dev,
414 "More than 8 outputs detected\n");
415 return;
416 }
417 status =
418 acpi_evaluate_integer(acpi_cdev->handle, "_ADR",
419 NULL, &device_id);
420 if (ACPI_SUCCESS(status)) {
421 if (!device_id)
422 goto blind_set;
423 opregion->acpi->didl[i] = (u32)(device_id & 0x0f0f);
424 i++;
425 }
426 }
427
428end:
429 /* If fewer than 8 outputs, the list must be null terminated */
430 if (i < 8)
431 opregion->acpi->didl[i] = 0;
432 return;
433
434blind_set:
435 i = 0;
387 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { 436 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
388 int output_type = ACPI_OTHER_OUTPUT; 437 int output_type = ACPI_OTHER_OUTPUT;
389 if (i >= 8) { 438 if (i >= 8) {
@@ -416,10 +465,7 @@ static void intel_didl_outputs(struct drm_device *dev)
416 opregion->acpi->didl[i] |= (1<<31) | output_type | i; 465 opregion->acpi->didl[i] |= (1<<31) | output_type | i;
417 i++; 466 i++;
418 } 467 }
419 468 goto end;
420 /* If fewer than 8 outputs, the list must be null terminated */
421 if (i < 8)
422 opregion->acpi->didl[i] = 0;
423} 469}
424 470
425int intel_opregion_init(struct drm_device *dev, int resume) 471int intel_opregion_init(struct drm_device *dev, int resume)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index cbbf59f56dfa..4cbc5210fd30 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -230,6 +230,16 @@
230#define ASYNC_FLIP (1<<22) 230#define ASYNC_FLIP (1<<22)
231#define DISPLAY_PLANE_A (0<<20) 231#define DISPLAY_PLANE_A (0<<20)
232#define DISPLAY_PLANE_B (1<<20) 232#define DISPLAY_PLANE_B (1<<20)
233#define GFX_OP_PIPE_CONTROL ((0x3<<29)|(0x3<<27)|(0x2<<24)|2)
234#define PIPE_CONTROL_QW_WRITE (1<<14)
235#define PIPE_CONTROL_DEPTH_STALL (1<<13)
236#define PIPE_CONTROL_WC_FLUSH (1<<12)
237#define PIPE_CONTROL_IS_FLUSH (1<<11) /* MBZ on Ironlake */
238#define PIPE_CONTROL_TC_FLUSH (1<<10) /* GM45+ only */
239#define PIPE_CONTROL_ISP_DIS (1<<9)
240#define PIPE_CONTROL_NOTIFY (1<<8)
241#define PIPE_CONTROL_GLOBAL_GTT (1<<2) /* in addr dword */
242#define PIPE_CONTROL_STALL_EN (1<<1) /* in addr word, Ironlake+ only */
233 243
234/* 244/*
235 * Fence registers 245 * Fence registers
@@ -241,7 +251,7 @@
241#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8) 251#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8)
242#define I830_FENCE_PITCH_SHIFT 4 252#define I830_FENCE_PITCH_SHIFT 4
243#define I830_FENCE_REG_VALID (1<<0) 253#define I830_FENCE_REG_VALID (1<<0)
244#define I915_FENCE_MAX_PITCH_VAL 0x10 254#define I915_FENCE_MAX_PITCH_VAL 4
245#define I830_FENCE_MAX_PITCH_VAL 6 255#define I830_FENCE_MAX_PITCH_VAL 6
246#define I830_FENCE_MAX_SIZE_VAL (1<<8) 256#define I830_FENCE_MAX_SIZE_VAL (1<<8)
247 257
@@ -2285,6 +2295,7 @@
2285#define DEIER 0x4400c 2295#define DEIER 0x4400c
2286 2296
2287/* GT interrupt */ 2297/* GT interrupt */
2298#define GT_PIPE_NOTIFY (1 << 4)
2288#define GT_SYNC_STATUS (1 << 2) 2299#define GT_SYNC_STATUS (1 << 2)
2289#define GT_USER_INTERRUPT (1 << 0) 2300#define GT_USER_INTERRUPT (1 << 0)
2290 2301
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e7356fb6c918..c7502b6b1600 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4853,17 +4853,18 @@ static void intel_init_display(struct drm_device *dev)
4853 dev_priv->display.update_wm = g4x_update_wm; 4853 dev_priv->display.update_wm = g4x_update_wm;
4854 else if (IS_I965G(dev)) 4854 else if (IS_I965G(dev))
4855 dev_priv->display.update_wm = i965_update_wm; 4855 dev_priv->display.update_wm = i965_update_wm;
4856 else if (IS_I9XX(dev) || IS_MOBILE(dev)) { 4856 else if (IS_I9XX(dev)) {
4857 dev_priv->display.update_wm = i9xx_update_wm; 4857 dev_priv->display.update_wm = i9xx_update_wm;
4858 dev_priv->display.get_fifo_size = i9xx_get_fifo_size; 4858 dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
4859 } else if (IS_I85X(dev)) {
4860 dev_priv->display.update_wm = i9xx_update_wm;
4861 dev_priv->display.get_fifo_size = i85x_get_fifo_size;
4859 } else { 4862 } else {
4860 if (IS_I85X(dev)) 4863 dev_priv->display.update_wm = i830_update_wm;
4861 dev_priv->display.get_fifo_size = i85x_get_fifo_size; 4864 if (IS_845G(dev))
4862 else if (IS_845G(dev))
4863 dev_priv->display.get_fifo_size = i845_get_fifo_size; 4865 dev_priv->display.get_fifo_size = i845_get_fifo_size;
4864 else 4866 else
4865 dev_priv->display.get_fifo_size = i830_get_fifo_size; 4867 dev_priv->display.get_fifo_size = i830_get_fifo_size;
4866 dev_priv->display.update_wm = i830_update_wm;
4867 } 4868 }
4868} 4869}
4869 4870
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index bd75f99bd65e..eaf1f6bc44f1 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -324,13 +324,12 @@ void r300_gpu_init(struct radeon_device *rdev)
324 uint32_t gb_tile_config, tmp; 324 uint32_t gb_tile_config, tmp;
325 325
326 r100_hdp_reset(rdev); 326 r100_hdp_reset(rdev);
327 /* FIXME: rv380 one pipes ? */
328 if ((rdev->family == CHIP_R300 && rdev->pdev->device != 0x4144) || 327 if ((rdev->family == CHIP_R300 && rdev->pdev->device != 0x4144) ||
329 (rdev->family == CHIP_R350)) { 328 (rdev->family == CHIP_R350 && rdev->pdev->device != 0x4148)) {
330 /* r300,r350 */ 329 /* r300,r350 */
331 rdev->num_gb_pipes = 2; 330 rdev->num_gb_pipes = 2;
332 } else { 331 } else {
333 /* rv350,rv370,rv380,r300 AD */ 332 /* rv350,rv370,rv380,r300 AD, r350 AH */
334 rdev->num_gb_pipes = 1; 333 rdev->num_gb_pipes = 1;
335 } 334 }
336 rdev->num_z_pipes = 1; 335 rdev->num_z_pipes = 1;
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
index ea46d558e8f3..c5c2742e4140 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -921,7 +921,7 @@ static int r300_scratch(drm_radeon_private_t *dev_priv,
921 921
922 ptr_addr = drm_buffer_read_object(cmdbuf->buffer, 922 ptr_addr = drm_buffer_read_object(cmdbuf->buffer,
923 sizeof(stack_ptr_addr), &stack_ptr_addr); 923 sizeof(stack_ptr_addr), &stack_ptr_addr);
924 ref_age_base = (u32 *)(unsigned long)*ptr_addr; 924 ref_age_base = (u32 *)(unsigned long)get_unaligned(ptr_addr);
925 925
926 for (i=0; i < header.scratch.n_bufs; i++) { 926 for (i=0; i < header.scratch.n_bufs; i++) {
927 buf_idx = drm_buffer_pointer_to_dword(cmdbuf->buffer, 0); 927 buf_idx = drm_buffer_pointer_to_dword(cmdbuf->buffer, 0);
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c
index 3dc968c9f5a4..c2bda4ad62e7 100644
--- a/drivers/gpu/drm/radeon/r420.c
+++ b/drivers/gpu/drm/radeon/r420.c
@@ -59,6 +59,12 @@ void r420_pipes_init(struct radeon_device *rdev)
59 /* get max number of pipes */ 59 /* get max number of pipes */
60 gb_pipe_select = RREG32(0x402C); 60 gb_pipe_select = RREG32(0x402C);
61 num_pipes = ((gb_pipe_select >> 12) & 3) + 1; 61 num_pipes = ((gb_pipe_select >> 12) & 3) + 1;
62
63 /* SE chips have 1 pipe */
64 if ((rdev->pdev->device == 0x5e4c) ||
65 (rdev->pdev->device == 0x5e4f))
66 num_pipes = 1;
67
62 rdev->num_gb_pipes = num_pipes; 68 rdev->num_gb_pipes = num_pipes;
63 tmp = 0; 69 tmp = 0;
64 switch (num_pipes) { 70 switch (num_pipes) {
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index 419630dd2075..2f042a3c0e62 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -435,14 +435,19 @@ static void radeon_init_pipes(struct drm_device *dev)
435 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) { 435 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) {
436 gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT); 436 gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT);
437 dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1; 437 dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
438 /* SE cards have 1 pipe */
439 if ((dev->pdev->device == 0x5e4c) ||
440 (dev->pdev->device == 0x5e4f))
441 dev_priv->num_gb_pipes = 1;
438 } else { 442 } else {
439 /* R3xx */ 443 /* R3xx */
440 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300 && 444 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300 &&
441 dev->pdev->device != 0x4144) || 445 dev->pdev->device != 0x4144) ||
442 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350)) { 446 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350 &&
447 dev->pdev->device != 0x4148)) {
443 dev_priv->num_gb_pipes = 2; 448 dev_priv->num_gb_pipes = 2;
444 } else { 449 } else {
445 /* RV3xx/R300 AD */ 450 /* RV3xx/R300 AD/R350 AH */
446 dev_priv->num_gb_pipes = 1; 451 dev_priv->num_gb_pipes = 1;
447 } 452 }
448 } 453 }
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index b8d672828246..bb1c122cad21 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -86,12 +86,12 @@ static void evergreen_crtc_load_lut(struct drm_crtc *crtc)
86 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_GREEN + radeon_crtc->crtc_offset, 0xffff); 86 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_GREEN + radeon_crtc->crtc_offset, 0xffff);
87 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_RED + radeon_crtc->crtc_offset, 0xffff); 87 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_RED + radeon_crtc->crtc_offset, 0xffff);
88 88
89 WREG32(EVERGREEN_DC_LUT_RW_MODE, radeon_crtc->crtc_id); 89 WREG32(EVERGREEN_DC_LUT_RW_MODE + radeon_crtc->crtc_offset, 0);
90 WREG32(EVERGREEN_DC_LUT_WRITE_EN_MASK, 0x00000007); 90 WREG32(EVERGREEN_DC_LUT_WRITE_EN_MASK + radeon_crtc->crtc_offset, 0x00000007);
91 91
92 WREG32(EVERGREEN_DC_LUT_RW_INDEX, 0); 92 WREG32(EVERGREEN_DC_LUT_RW_INDEX + radeon_crtc->crtc_offset, 0);
93 for (i = 0; i < 256; i++) { 93 for (i = 0; i < 256; i++) {
94 WREG32(EVERGREEN_DC_LUT_30_COLOR, 94 WREG32(EVERGREEN_DC_LUT_30_COLOR + radeon_crtc->crtc_offset,
95 (radeon_crtc->lut_r[i] << 20) | 95 (radeon_crtc->lut_r[i] << 20) |
96 (radeon_crtc->lut_g[i] << 10) | 96 (radeon_crtc->lut_g[i] << 10) |
97 (radeon_crtc->lut_b[i] << 0)); 97 (radeon_crtc->lut_b[i] << 0));
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 30293bec0801..fed7b8084779 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -1326,7 +1326,7 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
1326 1326
1327 radeon_encoder->pixel_clock = adjusted_mode->clock; 1327 radeon_encoder->pixel_clock = adjusted_mode->clock;
1328 1328
1329 if (ASIC_IS_AVIVO(rdev)) { 1329 if (ASIC_IS_AVIVO(rdev) && !ASIC_IS_DCE4(rdev)) {
1330 if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT)) 1330 if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT))
1331 atombios_yuv_setup(encoder, true); 1331 atombios_yuv_setup(encoder, true);
1332 else 1332 else
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index d3657dcfdd26..c633319f98ed 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -165,7 +165,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
165{ 165{
166 struct radeon_device *rdev = dev->dev_private; 166 struct radeon_device *rdev = dev->dev_private;
167 167
168 if (crtc < 0 || crtc > 1) { 168 if (crtc < 0 || crtc >= rdev->num_crtc) {
169 DRM_ERROR("Invalid crtc %d\n", crtc); 169 DRM_ERROR("Invalid crtc %d\n", crtc);
170 return -EINVAL; 170 return -EINVAL;
171 } 171 }
@@ -177,7 +177,7 @@ int radeon_enable_vblank_kms(struct drm_device *dev, int crtc)
177{ 177{
178 struct radeon_device *rdev = dev->dev_private; 178 struct radeon_device *rdev = dev->dev_private;
179 179
180 if (crtc < 0 || crtc > 1) { 180 if (crtc < 0 || crtc >= rdev->num_crtc) {
181 DRM_ERROR("Invalid crtc %d\n", crtc); 181 DRM_ERROR("Invalid crtc %d\n", crtc);
182 return -EINVAL; 182 return -EINVAL;
183 } 183 }
@@ -191,7 +191,7 @@ void radeon_disable_vblank_kms(struct drm_device *dev, int crtc)
191{ 191{
192 struct radeon_device *rdev = dev->dev_private; 192 struct radeon_device *rdev = dev->dev_private;
193 193
194 if (crtc < 0 || crtc > 1) { 194 if (crtc < 0 || crtc >= rdev->num_crtc) {
195 DRM_ERROR("Invalid crtc %d\n", crtc); 195 DRM_ERROR("Invalid crtc %d\n", crtc);
196 return; 196 return;
197 } 197 }
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 75f3fa55663d..16c420240724 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -1169,15 +1169,19 @@ static int atk_create_files(struct atk_data *data)
1169 int err; 1169 int err;
1170 1170
1171 list_for_each_entry(s, &data->sensor_list, list) { 1171 list_for_each_entry(s, &data->sensor_list, list) {
1172 sysfs_attr_init(&s->input_attr.attr);
1172 err = device_create_file(data->hwmon_dev, &s->input_attr); 1173 err = device_create_file(data->hwmon_dev, &s->input_attr);
1173 if (err) 1174 if (err)
1174 return err; 1175 return err;
1176 sysfs_attr_init(&s->label_attr.attr);
1175 err = device_create_file(data->hwmon_dev, &s->label_attr); 1177 err = device_create_file(data->hwmon_dev, &s->label_attr);
1176 if (err) 1178 if (err)
1177 return err; 1179 return err;
1180 sysfs_attr_init(&s->limit1_attr.attr);
1178 err = device_create_file(data->hwmon_dev, &s->limit1_attr); 1181 err = device_create_file(data->hwmon_dev, &s->limit1_attr);
1179 if (err) 1182 if (err)
1180 return err; 1183 return err;
1184 sysfs_attr_init(&s->limit2_attr.attr);
1181 err = device_create_file(data->hwmon_dev, &s->limit2_attr); 1185 err = device_create_file(data->hwmon_dev, &s->limit2_attr);
1182 if (err) 1186 if (err)
1183 return err; 1187 return err;
diff --git a/drivers/hwmon/hp_accel.c b/drivers/hwmon/hp_accel.c
index be475e844c2a..c8ab50516672 100644
--- a/drivers/hwmon/hp_accel.c
+++ b/drivers/hwmon/hp_accel.c
@@ -217,6 +217,10 @@ static struct dmi_system_id lis3lv02d_dmi_ids[] = {
217 AXIS_DMI_MATCH("DV7", "HP Pavilion dv7", x_inverted), 217 AXIS_DMI_MATCH("DV7", "HP Pavilion dv7", x_inverted),
218 AXIS_DMI_MATCH("HP8710", "HP Compaq 8710", y_inverted), 218 AXIS_DMI_MATCH("HP8710", "HP Compaq 8710", y_inverted),
219 AXIS_DMI_MATCH("HDX18", "HP HDX 18", x_inverted), 219 AXIS_DMI_MATCH("HDX18", "HP HDX 18", x_inverted),
220 AXIS_DMI_MATCH("HPB432x", "HP ProBook 432", xy_rotated_left),
221 AXIS_DMI_MATCH("HPB442x", "HP ProBook 442", xy_rotated_left),
222 AXIS_DMI_MATCH("HPB452x", "HP ProBook 452", y_inverted),
223 AXIS_DMI_MATCH("HPB522x", "HP ProBook 522", xy_swap),
220 { NULL, } 224 { NULL, }
221/* Laptop models without axis info (yet): 225/* Laptop models without axis info (yet):
222 * "NC6910" "HP Compaq 6910" 226 * "NC6910" "HP Compaq 6910"
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index f7e27b702375..d1ff9408dc1f 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -146,10 +146,10 @@ static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
146 "<%s> I2C Interrupted\n", __func__); 146 "<%s> I2C Interrupted\n", __func__);
147 return -EINTR; 147 return -EINTR;
148 } 148 }
149 if (time_after(jiffies, orig_jiffies + HZ / 1000)) { 149 if (time_after(jiffies, orig_jiffies + msecs_to_jiffies(500))) {
150 dev_dbg(&i2c_imx->adapter.dev, 150 dev_dbg(&i2c_imx->adapter.dev,
151 "<%s> I2C bus is busy\n", __func__); 151 "<%s> I2C bus is busy\n", __func__);
152 return -EIO; 152 return -ETIMEDOUT;
153 } 153 }
154 schedule(); 154 schedule();
155 } 155 }
@@ -444,6 +444,8 @@ static int i2c_imx_xfer(struct i2c_adapter *adapter,
444 result = i2c_imx_read(i2c_imx, &msgs[i]); 444 result = i2c_imx_read(i2c_imx, &msgs[i]);
445 else 445 else
446 result = i2c_imx_write(i2c_imx, &msgs[i]); 446 result = i2c_imx_write(i2c_imx, &msgs[i]);
447 if (result)
448 goto fail0;
447 } 449 }
448 450
449fail0: 451fail0:
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 6bd0f19cd451..389ac6032a7b 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -903,6 +903,11 @@ omap_i2c_probe(struct platform_device *pdev)
903 903
904 platform_set_drvdata(pdev, dev); 904 platform_set_drvdata(pdev, dev);
905 905
906 if (cpu_is_omap7xx())
907 dev->reg_shift = 1;
908 else
909 dev->reg_shift = 2;
910
906 if ((r = omap_i2c_get_clocks(dev)) != 0) 911 if ((r = omap_i2c_get_clocks(dev)) != 0)
907 goto err_iounmap; 912 goto err_iounmap;
908 913
@@ -926,11 +931,6 @@ omap_i2c_probe(struct platform_device *pdev)
926 dev->b_hw = 1; /* Enable hardware fixes */ 931 dev->b_hw = 1; /* Enable hardware fixes */
927 } 932 }
928 933
929 if (cpu_is_omap7xx())
930 dev->reg_shift = 1;
931 else
932 dev->reg_shift = 2;
933
934 /* reset ASAP, clearing any IRQs */ 934 /* reset ASAP, clearing any IRQs */
935 omap_i2c_init(dev); 935 omap_i2c_init(dev);
936 936
diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c
index 247103372a06..a97e3fec8148 100644
--- a/drivers/i2c/busses/i2c-pnx.c
+++ b/drivers/i2c/busses/i2c-pnx.c
@@ -173,6 +173,9 @@ static int i2c_pnx_master_xmit(struct i2c_pnx_algo_data *alg_data)
173 /* We still have something to talk about... */ 173 /* We still have something to talk about... */
174 val = *alg_data->mif.buf++; 174 val = *alg_data->mif.buf++;
175 175
176 if (alg_data->mif.len == 1)
177 val |= stop_bit;
178
176 alg_data->mif.len--; 179 alg_data->mif.len--;
177 iowrite32(val, I2C_REG_TX(alg_data)); 180 iowrite32(val, I2C_REG_TX(alg_data));
178 181
@@ -246,6 +249,9 @@ static int i2c_pnx_master_rcv(struct i2c_pnx_algo_data *alg_data)
246 __func__); 249 __func__);
247 250
248 if (alg_data->mif.len == 1) { 251 if (alg_data->mif.len == 1) {
252 /* Last byte, do not acknowledge next rcv. */
253 val |= stop_bit;
254
249 /* 255 /*
250 * Enable interrupt RFDAIE (data in Rx fifo), 256 * Enable interrupt RFDAIE (data in Rx fifo),
251 * and disable DRMIE (need data for Tx) 257 * and disable DRMIE (need data for Tx)
@@ -633,6 +639,8 @@ static int __devinit i2c_pnx_probe(struct platform_device *pdev)
633 */ 639 */
634 640
635 tmp = ((freq / 1000) / I2C_PNX_SPEED_KHZ) / 2 - 2; 641 tmp = ((freq / 1000) / I2C_PNX_SPEED_KHZ) / 2 - 2;
642 if (tmp > 0x3FF)
643 tmp = 0x3FF;
636 iowrite32(tmp, I2C_REG_CKH(alg_data)); 644 iowrite32(tmp, I2C_REG_CKH(alg_data));
637 iowrite32(tmp, I2C_REG_CKL(alg_data)); 645 iowrite32(tmp, I2C_REG_CKL(alg_data));
638 646
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c
index 1f5b38be73bc..495be451d326 100644
--- a/drivers/i2c/busses/i2c-stu300.c
+++ b/drivers/i2c/busses/i2c-stu300.c
@@ -498,7 +498,7 @@ static int stu300_set_clk(struct stu300_dev *dev, unsigned long clkrate)
498 int i = 0; 498 int i = 0;
499 499
500 /* Locate the apropriate clock setting */ 500 /* Locate the apropriate clock setting */
501 while (i < ARRAY_SIZE(stu300_clktable) && 501 while (i < ARRAY_SIZE(stu300_clktable) - 1 &&
502 stu300_clktable[i].rate < clkrate) 502 stu300_clktable[i].rate < clkrate)
503 i++; 503 i++;
504 504
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index ab87e4f7cec9..defce2877eef 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -409,6 +409,8 @@ static struct pcmcia_device_id ide_ids[] = {
409 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), 409 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420),
410 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), 410 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178),
411 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), 411 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753),
412 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x3e520e17),
413 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10),
412 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), 414 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e),
413 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), 415 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b),
414 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 416 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
@@ -429,6 +431,8 @@ static struct pcmcia_device_id ide_ids[] = {
429 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
430 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 432 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 433 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
434 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x9351e59d),
435 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47),
432 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), 436 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
433 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), 437 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
434 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 438 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index e3e9a36ea3b7..58ea0ecae7c3 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -1650,8 +1650,8 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1650 int previous, int *dd_idx, 1650 int previous, int *dd_idx,
1651 struct stripe_head *sh) 1651 struct stripe_head *sh)
1652{ 1652{
1653 long stripe; 1653 sector_t stripe, stripe2;
1654 unsigned long chunk_number; 1654 sector_t chunk_number;
1655 unsigned int chunk_offset; 1655 unsigned int chunk_offset;
1656 int pd_idx, qd_idx; 1656 int pd_idx, qd_idx;
1657 int ddf_layout = 0; 1657 int ddf_layout = 0;
@@ -1671,18 +1671,13 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1671 */ 1671 */
1672 chunk_offset = sector_div(r_sector, sectors_per_chunk); 1672 chunk_offset = sector_div(r_sector, sectors_per_chunk);
1673 chunk_number = r_sector; 1673 chunk_number = r_sector;
1674 BUG_ON(r_sector != chunk_number);
1675 1674
1676 /* 1675 /*
1677 * Compute the stripe number 1676 * Compute the stripe number
1678 */ 1677 */
1679 stripe = chunk_number / data_disks; 1678 stripe = chunk_number;
1680 1679 *dd_idx = sector_div(stripe, data_disks);
1681 /* 1680 stripe2 = stripe;
1682 * Compute the data disk and parity disk indexes inside the stripe
1683 */
1684 *dd_idx = chunk_number % data_disks;
1685
1686 /* 1681 /*
1687 * Select the parity disk based on the user selected algorithm. 1682 * Select the parity disk based on the user selected algorithm.
1688 */ 1683 */
@@ -1694,21 +1689,21 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1694 case 5: 1689 case 5:
1695 switch (algorithm) { 1690 switch (algorithm) {
1696 case ALGORITHM_LEFT_ASYMMETRIC: 1691 case ALGORITHM_LEFT_ASYMMETRIC:
1697 pd_idx = data_disks - stripe % raid_disks; 1692 pd_idx = data_disks - sector_div(stripe2, raid_disks);
1698 if (*dd_idx >= pd_idx) 1693 if (*dd_idx >= pd_idx)
1699 (*dd_idx)++; 1694 (*dd_idx)++;
1700 break; 1695 break;
1701 case ALGORITHM_RIGHT_ASYMMETRIC: 1696 case ALGORITHM_RIGHT_ASYMMETRIC:
1702 pd_idx = stripe % raid_disks; 1697 pd_idx = sector_div(stripe2, raid_disks);
1703 if (*dd_idx >= pd_idx) 1698 if (*dd_idx >= pd_idx)
1704 (*dd_idx)++; 1699 (*dd_idx)++;
1705 break; 1700 break;
1706 case ALGORITHM_LEFT_SYMMETRIC: 1701 case ALGORITHM_LEFT_SYMMETRIC:
1707 pd_idx = data_disks - stripe % raid_disks; 1702 pd_idx = data_disks - sector_div(stripe2, raid_disks);
1708 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1703 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1709 break; 1704 break;
1710 case ALGORITHM_RIGHT_SYMMETRIC: 1705 case ALGORITHM_RIGHT_SYMMETRIC:
1711 pd_idx = stripe % raid_disks; 1706 pd_idx = sector_div(stripe2, raid_disks);
1712 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1707 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1713 break; 1708 break;
1714 case ALGORITHM_PARITY_0: 1709 case ALGORITHM_PARITY_0:
@@ -1728,7 +1723,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1728 1723
1729 switch (algorithm) { 1724 switch (algorithm) {
1730 case ALGORITHM_LEFT_ASYMMETRIC: 1725 case ALGORITHM_LEFT_ASYMMETRIC:
1731 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1726 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1732 qd_idx = pd_idx + 1; 1727 qd_idx = pd_idx + 1;
1733 if (pd_idx == raid_disks-1) { 1728 if (pd_idx == raid_disks-1) {
1734 (*dd_idx)++; /* Q D D D P */ 1729 (*dd_idx)++; /* Q D D D P */
@@ -1737,7 +1732,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1737 (*dd_idx) += 2; /* D D P Q D */ 1732 (*dd_idx) += 2; /* D D P Q D */
1738 break; 1733 break;
1739 case ALGORITHM_RIGHT_ASYMMETRIC: 1734 case ALGORITHM_RIGHT_ASYMMETRIC:
1740 pd_idx = stripe % raid_disks; 1735 pd_idx = sector_div(stripe2, raid_disks);
1741 qd_idx = pd_idx + 1; 1736 qd_idx = pd_idx + 1;
1742 if (pd_idx == raid_disks-1) { 1737 if (pd_idx == raid_disks-1) {
1743 (*dd_idx)++; /* Q D D D P */ 1738 (*dd_idx)++; /* Q D D D P */
@@ -1746,12 +1741,12 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1746 (*dd_idx) += 2; /* D D P Q D */ 1741 (*dd_idx) += 2; /* D D P Q D */
1747 break; 1742 break;
1748 case ALGORITHM_LEFT_SYMMETRIC: 1743 case ALGORITHM_LEFT_SYMMETRIC:
1749 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1744 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1750 qd_idx = (pd_idx + 1) % raid_disks; 1745 qd_idx = (pd_idx + 1) % raid_disks;
1751 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks; 1746 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
1752 break; 1747 break;
1753 case ALGORITHM_RIGHT_SYMMETRIC: 1748 case ALGORITHM_RIGHT_SYMMETRIC:
1754 pd_idx = stripe % raid_disks; 1749 pd_idx = sector_div(stripe2, raid_disks);
1755 qd_idx = (pd_idx + 1) % raid_disks; 1750 qd_idx = (pd_idx + 1) % raid_disks;
1756 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks; 1751 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
1757 break; 1752 break;
@@ -1770,7 +1765,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1770 /* Exactly the same as RIGHT_ASYMMETRIC, but or 1765 /* Exactly the same as RIGHT_ASYMMETRIC, but or
1771 * of blocks for computing Q is different. 1766 * of blocks for computing Q is different.
1772 */ 1767 */
1773 pd_idx = stripe % raid_disks; 1768 pd_idx = sector_div(stripe2, raid_disks);
1774 qd_idx = pd_idx + 1; 1769 qd_idx = pd_idx + 1;
1775 if (pd_idx == raid_disks-1) { 1770 if (pd_idx == raid_disks-1) {
1776 (*dd_idx)++; /* Q D D D P */ 1771 (*dd_idx)++; /* Q D D D P */
@@ -1785,7 +1780,8 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1785 * D D D P Q rather than 1780 * D D D P Q rather than
1786 * Q D D D P 1781 * Q D D D P
1787 */ 1782 */
1788 pd_idx = raid_disks - 1 - ((stripe + 1) % raid_disks); 1783 stripe2 += 1;
1784 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1789 qd_idx = pd_idx + 1; 1785 qd_idx = pd_idx + 1;
1790 if (pd_idx == raid_disks-1) { 1786 if (pd_idx == raid_disks-1) {
1791 (*dd_idx)++; /* Q D D D P */ 1787 (*dd_idx)++; /* Q D D D P */
@@ -1797,7 +1793,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1797 1793
1798 case ALGORITHM_ROTATING_N_CONTINUE: 1794 case ALGORITHM_ROTATING_N_CONTINUE:
1799 /* Same as left_symmetric but Q is before P */ 1795 /* Same as left_symmetric but Q is before P */
1800 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1796 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1801 qd_idx = (pd_idx + raid_disks - 1) % raid_disks; 1797 qd_idx = (pd_idx + raid_disks - 1) % raid_disks;
1802 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1798 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1803 ddf_layout = 1; 1799 ddf_layout = 1;
@@ -1805,27 +1801,27 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1805 1801
1806 case ALGORITHM_LEFT_ASYMMETRIC_6: 1802 case ALGORITHM_LEFT_ASYMMETRIC_6:
1807 /* RAID5 left_asymmetric, with Q on last device */ 1803 /* RAID5 left_asymmetric, with Q on last device */
1808 pd_idx = data_disks - stripe % (raid_disks-1); 1804 pd_idx = data_disks - sector_div(stripe2, raid_disks-1);
1809 if (*dd_idx >= pd_idx) 1805 if (*dd_idx >= pd_idx)
1810 (*dd_idx)++; 1806 (*dd_idx)++;
1811 qd_idx = raid_disks - 1; 1807 qd_idx = raid_disks - 1;
1812 break; 1808 break;
1813 1809
1814 case ALGORITHM_RIGHT_ASYMMETRIC_6: 1810 case ALGORITHM_RIGHT_ASYMMETRIC_6:
1815 pd_idx = stripe % (raid_disks-1); 1811 pd_idx = sector_div(stripe2, raid_disks-1);
1816 if (*dd_idx >= pd_idx) 1812 if (*dd_idx >= pd_idx)
1817 (*dd_idx)++; 1813 (*dd_idx)++;
1818 qd_idx = raid_disks - 1; 1814 qd_idx = raid_disks - 1;
1819 break; 1815 break;
1820 1816
1821 case ALGORITHM_LEFT_SYMMETRIC_6: 1817 case ALGORITHM_LEFT_SYMMETRIC_6:
1822 pd_idx = data_disks - stripe % (raid_disks-1); 1818 pd_idx = data_disks - sector_div(stripe2, raid_disks-1);
1823 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1); 1819 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
1824 qd_idx = raid_disks - 1; 1820 qd_idx = raid_disks - 1;
1825 break; 1821 break;
1826 1822
1827 case ALGORITHM_RIGHT_SYMMETRIC_6: 1823 case ALGORITHM_RIGHT_SYMMETRIC_6:
1828 pd_idx = stripe % (raid_disks-1); 1824 pd_idx = sector_div(stripe2, raid_disks-1);
1829 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1); 1825 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
1830 qd_idx = raid_disks - 1; 1826 qd_idx = raid_disks - 1;
1831 break; 1827 break;
@@ -1870,14 +1866,14 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
1870 : conf->algorithm; 1866 : conf->algorithm;
1871 sector_t stripe; 1867 sector_t stripe;
1872 int chunk_offset; 1868 int chunk_offset;
1873 int chunk_number, dummy1, dd_idx = i; 1869 sector_t chunk_number;
1870 int dummy1, dd_idx = i;
1874 sector_t r_sector; 1871 sector_t r_sector;
1875 struct stripe_head sh2; 1872 struct stripe_head sh2;
1876 1873
1877 1874
1878 chunk_offset = sector_div(new_sector, sectors_per_chunk); 1875 chunk_offset = sector_div(new_sector, sectors_per_chunk);
1879 stripe = new_sector; 1876 stripe = new_sector;
1880 BUG_ON(new_sector != stripe);
1881 1877
1882 if (i == sh->pd_idx) 1878 if (i == sh->pd_idx)
1883 return 0; 1879 return 0;
@@ -1970,7 +1966,7 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
1970 } 1966 }
1971 1967
1972 chunk_number = stripe * data_disks + i; 1968 chunk_number = stripe * data_disks + i;
1973 r_sector = (sector_t)chunk_number * sectors_per_chunk + chunk_offset; 1969 r_sector = chunk_number * sectors_per_chunk + chunk_offset;
1974 1970
1975 check = raid5_compute_sector(conf, r_sector, 1971 check = raid5_compute_sector(conf, r_sector,
1976 previous, &dummy1, &sh2); 1972 previous, &dummy1, &sh2);
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 2191c8d896a0..0d0d625fece2 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -311,6 +311,22 @@ config TI_DAC7512
311 This driver can also be built as a module. If so, the module 311 This driver can also be built as a module. If so, the module
312 will be calles ti_dac7512. 312 will be calles ti_dac7512.
313 313
314config VMWARE_BALLOON
315 tristate "VMware Balloon Driver"
316 depends on X86
317 help
318 This is VMware physical memory management driver which acts
319 like a "balloon" that can be inflated to reclaim physical pages
320 by reserving them in the guest and invalidating them in the
321 monitor, freeing up the underlying machine pages so they can
322 be allocated to other guests. The balloon can also be deflated
323 to allow the guest to use more physical memory.
324
325 If unsure, say N.
326
327 To compile this driver as a module, choose M here: the
328 module will be called vmware_balloon.
329
314source "drivers/misc/c2port/Kconfig" 330source "drivers/misc/c2port/Kconfig"
315source "drivers/misc/eeprom/Kconfig" 331source "drivers/misc/eeprom/Kconfig"
316source "drivers/misc/cb710/Kconfig" 332source "drivers/misc/cb710/Kconfig"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 27c484355414..7b6f7eefdf8d 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -29,3 +29,4 @@ obj-$(CONFIG_C2PORT) += c2port/
29obj-$(CONFIG_IWMC3200TOP) += iwmc3200top/ 29obj-$(CONFIG_IWMC3200TOP) += iwmc3200top/
30obj-y += eeprom/ 30obj-y += eeprom/
31obj-y += cb710/ 31obj-y += cb710/
32obj-$(CONFIG_VMWARE_BALLOON) += vmware_balloon.o
diff --git a/drivers/misc/vmware_balloon.c b/drivers/misc/vmware_balloon.c
new file mode 100644
index 000000000000..e7161c4e3798
--- /dev/null
+++ b/drivers/misc/vmware_balloon.c
@@ -0,0 +1,832 @@
1/*
2 * VMware Balloon driver.
3 *
4 * Copyright (C) 2000-2010, VMware, Inc. All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; version 2 of the License and no later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
13 * NON INFRINGEMENT. See the GNU General Public License for more
14 * details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Maintained by: Dmitry Torokhov <dtor@vmware.com>
21 */
22
23/*
24 * This is VMware physical memory management driver for Linux. The driver
25 * acts like a "balloon" that can be inflated to reclaim physical pages by
26 * reserving them in the guest and invalidating them in the monitor,
27 * freeing up the underlying machine pages so they can be allocated to
28 * other guests. The balloon can also be deflated to allow the guest to
29 * use more physical memory. Higher level policies can control the sizes
30 * of balloons in VMs in order to manage physical memory resources.
31 */
32
33//#define DEBUG
34#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
35
36#include <linux/types.h>
37#include <linux/kernel.h>
38#include <linux/mm.h>
39#include <linux/sched.h>
40#include <linux/module.h>
41#include <linux/workqueue.h>
42#include <linux/debugfs.h>
43#include <linux/seq_file.h>
44#include <asm/vmware.h>
45
46MODULE_AUTHOR("VMware, Inc.");
47MODULE_DESCRIPTION("VMware Memory Control (Balloon) Driver");
48MODULE_VERSION("1.2.1.0-K");
49MODULE_ALIAS("dmi:*:svnVMware*:*");
50MODULE_ALIAS("vmware_vmmemctl");
51MODULE_LICENSE("GPL");
52
53/*
54 * Various constants controlling rate of inflaint/deflating balloon,
55 * measured in pages.
56 */
57
58/*
59 * Rate of allocating memory when there is no memory pressure
60 * (driver performs non-sleeping allocations).
61 */
62#define VMW_BALLOON_NOSLEEP_ALLOC_MAX 16384U
63
64/*
65 * Rates of memory allocaton when guest experiences memory pressure
66 * (driver performs sleeping allocations).
67 */
68#define VMW_BALLOON_RATE_ALLOC_MIN 512U
69#define VMW_BALLOON_RATE_ALLOC_MAX 2048U
70#define VMW_BALLOON_RATE_ALLOC_INC 16U
71
72/*
73 * Rates for releasing pages while deflating balloon.
74 */
75#define VMW_BALLOON_RATE_FREE_MIN 512U
76#define VMW_BALLOON_RATE_FREE_MAX 16384U
77#define VMW_BALLOON_RATE_FREE_INC 16U
78
79/*
80 * When guest is under memory pressure, use a reduced page allocation
81 * rate for next several cycles.
82 */
83#define VMW_BALLOON_SLOW_CYCLES 4
84
85/*
86 * Use __GFP_HIGHMEM to allow pages from HIGHMEM zone. We don't
87 * allow wait (__GFP_WAIT) for NOSLEEP page allocations. Use
88 * __GFP_NOWARN, to suppress page allocation failure warnings.
89 */
90#define VMW_PAGE_ALLOC_NOSLEEP (__GFP_HIGHMEM|__GFP_NOWARN)
91
92/*
93 * Use GFP_HIGHUSER when executing in a separate kernel thread
94 * context and allocation can sleep. This is less stressful to
95 * the guest memory system, since it allows the thread to block
96 * while memory is reclaimed, and won't take pages from emergency
97 * low-memory pools.
98 */
99#define VMW_PAGE_ALLOC_CANSLEEP (GFP_HIGHUSER)
100
101/* Maximum number of page allocations without yielding processor */
102#define VMW_BALLOON_YIELD_THRESHOLD 1024
103
104
105/*
106 * Hypervisor communication port definitions.
107 */
108#define VMW_BALLOON_HV_PORT 0x5670
109#define VMW_BALLOON_HV_MAGIC 0x456c6d6f
110#define VMW_BALLOON_PROTOCOL_VERSION 2
111#define VMW_BALLOON_GUEST_ID 1 /* Linux */
112
113#define VMW_BALLOON_CMD_START 0
114#define VMW_BALLOON_CMD_GET_TARGET 1
115#define VMW_BALLOON_CMD_LOCK 2
116#define VMW_BALLOON_CMD_UNLOCK 3
117#define VMW_BALLOON_CMD_GUEST_ID 4
118
119/* error codes */
120#define VMW_BALLOON_SUCCESS 0
121#define VMW_BALLOON_FAILURE -1
122#define VMW_BALLOON_ERROR_CMD_INVALID 1
123#define VMW_BALLOON_ERROR_PPN_INVALID 2
124#define VMW_BALLOON_ERROR_PPN_LOCKED 3
125#define VMW_BALLOON_ERROR_PPN_UNLOCKED 4
126#define VMW_BALLOON_ERROR_PPN_PINNED 5
127#define VMW_BALLOON_ERROR_PPN_NOTNEEDED 6
128#define VMW_BALLOON_ERROR_RESET 7
129#define VMW_BALLOON_ERROR_BUSY 8
130
131#define VMWARE_BALLOON_CMD(cmd, data, result) \
132({ \
133 unsigned long __stat, __dummy1, __dummy2; \
134 __asm__ __volatile__ ("inl (%%dx)" : \
135 "=a"(__stat), \
136 "=c"(__dummy1), \
137 "=d"(__dummy2), \
138 "=b"(result) : \
139 "0"(VMW_BALLOON_HV_MAGIC), \
140 "1"(VMW_BALLOON_CMD_##cmd), \
141 "2"(VMW_BALLOON_HV_PORT), \
142 "3"(data) : \
143 "memory"); \
144 result &= -1UL; \
145 __stat & -1UL; \
146})
147
148#ifdef CONFIG_DEBUG_FS
149struct vmballoon_stats {
150 unsigned int timer;
151
152 /* allocation statustics */
153 unsigned int alloc;
154 unsigned int alloc_fail;
155 unsigned int sleep_alloc;
156 unsigned int sleep_alloc_fail;
157 unsigned int refused_alloc;
158 unsigned int refused_free;
159 unsigned int free;
160
161 /* monitor operations */
162 unsigned int lock;
163 unsigned int lock_fail;
164 unsigned int unlock;
165 unsigned int unlock_fail;
166 unsigned int target;
167 unsigned int target_fail;
168 unsigned int start;
169 unsigned int start_fail;
170 unsigned int guest_type;
171 unsigned int guest_type_fail;
172};
173
174#define STATS_INC(stat) (stat)++
175#else
176#define STATS_INC(stat)
177#endif
178
179struct vmballoon {
180
181 /* list of reserved physical pages */
182 struct list_head pages;
183
184 /* transient list of non-balloonable pages */
185 struct list_head refused_pages;
186
187 /* balloon size in pages */
188 unsigned int size;
189 unsigned int target;
190
191 /* reset flag */
192 bool reset_required;
193
194 /* adjustment rates (pages per second) */
195 unsigned int rate_alloc;
196 unsigned int rate_free;
197
198 /* slowdown page allocations for next few cycles */
199 unsigned int slow_allocation_cycles;
200
201#ifdef CONFIG_DEBUG_FS
202 /* statistics */
203 struct vmballoon_stats stats;
204
205 /* debugfs file exporting statistics */
206 struct dentry *dbg_entry;
207#endif
208
209 struct sysinfo sysinfo;
210
211 struct delayed_work dwork;
212};
213
214static struct vmballoon balloon;
215static struct workqueue_struct *vmballoon_wq;
216
217/*
218 * Send "start" command to the host, communicating supported version
219 * of the protocol.
220 */
221static bool vmballoon_send_start(struct vmballoon *b)
222{
223 unsigned long status, dummy;
224
225 STATS_INC(b->stats.start);
226
227 status = VMWARE_BALLOON_CMD(START, VMW_BALLOON_PROTOCOL_VERSION, dummy);
228 if (status == VMW_BALLOON_SUCCESS)
229 return true;
230
231 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
232 STATS_INC(b->stats.start_fail);
233 return false;
234}
235
236static bool vmballoon_check_status(struct vmballoon *b, unsigned long status)
237{
238 switch (status) {
239 case VMW_BALLOON_SUCCESS:
240 return true;
241
242 case VMW_BALLOON_ERROR_RESET:
243 b->reset_required = true;
244 /* fall through */
245
246 default:
247 return false;
248 }
249}
250
251/*
252 * Communicate guest type to the host so that it can adjust ballooning
253 * algorithm to the one most appropriate for the guest. This command
254 * is normally issued after sending "start" command and is part of
255 * standard reset sequence.
256 */
257static bool vmballoon_send_guest_id(struct vmballoon *b)
258{
259 unsigned long status, dummy;
260
261 status = VMWARE_BALLOON_CMD(GUEST_ID, VMW_BALLOON_GUEST_ID, dummy);
262
263 STATS_INC(b->stats.guest_type);
264
265 if (vmballoon_check_status(b, status))
266 return true;
267
268 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
269 STATS_INC(b->stats.guest_type_fail);
270 return false;
271}
272
273/*
274 * Retrieve desired balloon size from the host.
275 */
276static bool vmballoon_send_get_target(struct vmballoon *b, u32 *new_target)
277{
278 unsigned long status;
279 unsigned long target;
280 unsigned long limit;
281 u32 limit32;
282
283 /*
284 * si_meminfo() is cheap. Moreover, we want to provide dynamic
285 * max balloon size later. So let us call si_meminfo() every
286 * iteration.
287 */
288 si_meminfo(&b->sysinfo);
289 limit = b->sysinfo.totalram;
290
291 /* Ensure limit fits in 32-bits */
292 limit32 = (u32)limit;
293 if (limit != limit32)
294 return false;
295
296 /* update stats */
297 STATS_INC(b->stats.target);
298
299 status = VMWARE_BALLOON_CMD(GET_TARGET, limit, target);
300 if (vmballoon_check_status(b, status)) {
301 *new_target = target;
302 return true;
303 }
304
305 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
306 STATS_INC(b->stats.target_fail);
307 return false;
308}
309
310/*
311 * Notify the host about allocated page so that host can use it without
312 * fear that guest will need it. Host may reject some pages, we need to
313 * check the return value and maybe submit a different page.
314 */
315static bool vmballoon_send_lock_page(struct vmballoon *b, unsigned long pfn)
316{
317 unsigned long status, dummy;
318 u32 pfn32;
319
320 pfn32 = (u32)pfn;
321 if (pfn32 != pfn)
322 return false;
323
324 STATS_INC(b->stats.lock);
325
326 status = VMWARE_BALLOON_CMD(LOCK, pfn, dummy);
327 if (vmballoon_check_status(b, status))
328 return true;
329
330 pr_debug("%s - ppn %lx, hv returns %ld\n", __func__, pfn, status);
331 STATS_INC(b->stats.lock_fail);
332 return false;
333}
334
335/*
336 * Notify the host that guest intends to release given page back into
337 * the pool of available (to the guest) pages.
338 */
339static bool vmballoon_send_unlock_page(struct vmballoon *b, unsigned long pfn)
340{
341 unsigned long status, dummy;
342 u32 pfn32;
343
344 pfn32 = (u32)pfn;
345 if (pfn32 != pfn)
346 return false;
347
348 STATS_INC(b->stats.unlock);
349
350 status = VMWARE_BALLOON_CMD(UNLOCK, pfn, dummy);
351 if (vmballoon_check_status(b, status))
352 return true;
353
354 pr_debug("%s - ppn %lx, hv returns %ld\n", __func__, pfn, status);
355 STATS_INC(b->stats.unlock_fail);
356 return false;
357}
358
359/*
360 * Quickly release all pages allocated for the balloon. This function is
361 * called when host decides to "reset" balloon for one reason or another.
362 * Unlike normal "deflate" we do not (shall not) notify host of the pages
363 * being released.
364 */
365static void vmballoon_pop(struct vmballoon *b)
366{
367 struct page *page, *next;
368 unsigned int count = 0;
369
370 list_for_each_entry_safe(page, next, &b->pages, lru) {
371 list_del(&page->lru);
372 __free_page(page);
373 STATS_INC(b->stats.free);
374 b->size--;
375
376 if (++count >= b->rate_free) {
377 count = 0;
378 cond_resched();
379 }
380 }
381}
382
383/*
384 * Perform standard reset sequence by popping the balloon (in case it
385 * is not empty) and then restarting protocol. This operation normally
386 * happens when host responds with VMW_BALLOON_ERROR_RESET to a command.
387 */
388static void vmballoon_reset(struct vmballoon *b)
389{
390 /* free all pages, skipping monitor unlock */
391 vmballoon_pop(b);
392
393 if (vmballoon_send_start(b)) {
394 b->reset_required = false;
395 if (!vmballoon_send_guest_id(b))
396 pr_err("failed to send guest ID to the host\n");
397 }
398}
399
400/*
401 * Allocate (or reserve) a page for the balloon and notify the host. If host
402 * refuses the page put it on "refuse" list and allocate another one until host
403 * is satisfied. "Refused" pages are released at the end of inflation cycle
404 * (when we allocate b->rate_alloc pages).
405 */
406static int vmballoon_reserve_page(struct vmballoon *b, bool can_sleep)
407{
408 struct page *page;
409 gfp_t flags;
410 bool locked = false;
411
412 do {
413 if (!can_sleep)
414 STATS_INC(b->stats.alloc);
415 else
416 STATS_INC(b->stats.sleep_alloc);
417
418 flags = can_sleep ? VMW_PAGE_ALLOC_CANSLEEP : VMW_PAGE_ALLOC_NOSLEEP;
419 page = alloc_page(flags);
420 if (!page) {
421 if (!can_sleep)
422 STATS_INC(b->stats.alloc_fail);
423 else
424 STATS_INC(b->stats.sleep_alloc_fail);
425 return -ENOMEM;
426 }
427
428 /* inform monitor */
429 locked = vmballoon_send_lock_page(b, page_to_pfn(page));
430 if (!locked) {
431 if (b->reset_required) {
432 __free_page(page);
433 return -EIO;
434 }
435
436 /* place on list of non-balloonable pages, retry allocation */
437 list_add(&page->lru, &b->refused_pages);
438 STATS_INC(b->stats.refused_alloc);
439 }
440 } while (!locked);
441
442 /* track allocated page */
443 list_add(&page->lru, &b->pages);
444
445 /* update balloon size */
446 b->size++;
447
448 return 0;
449}
450
451/*
452 * Release the page allocated for the balloon. Note that we first notify
453 * the host so it can make sure the page will be available for the guest
454 * to use, if needed.
455 */
456static int vmballoon_release_page(struct vmballoon *b, struct page *page)
457{
458 if (!vmballoon_send_unlock_page(b, page_to_pfn(page)))
459 return -EIO;
460
461 list_del(&page->lru);
462
463 /* deallocate page */
464 __free_page(page);
465 STATS_INC(b->stats.free);
466
467 /* update balloon size */
468 b->size--;
469
470 return 0;
471}
472
473/*
474 * Release pages that were allocated while attempting to inflate the
475 * balloon but were refused by the host for one reason or another.
476 */
477static void vmballoon_release_refused_pages(struct vmballoon *b)
478{
479 struct page *page, *next;
480
481 list_for_each_entry_safe(page, next, &b->refused_pages, lru) {
482 list_del(&page->lru);
483 __free_page(page);
484 STATS_INC(b->stats.refused_free);
485 }
486}
487
488/*
489 * Inflate the balloon towards its target size. Note that we try to limit
490 * the rate of allocation to make sure we are not choking the rest of the
491 * system.
492 */
493static void vmballoon_inflate(struct vmballoon *b)
494{
495 unsigned int goal;
496 unsigned int rate;
497 unsigned int i;
498 unsigned int allocations = 0;
499 int error = 0;
500 bool alloc_can_sleep = false;
501
502 pr_debug("%s - size: %d, target %d\n", __func__, b->size, b->target);
503
504 /*
505 * First try NOSLEEP page allocations to inflate balloon.
506 *
507 * If we do not throttle nosleep allocations, we can drain all
508 * free pages in the guest quickly (if the balloon target is high).
509 * As a side-effect, draining free pages helps to inform (force)
510 * the guest to start swapping if balloon target is not met yet,
511 * which is a desired behavior. However, balloon driver can consume
512 * all available CPU cycles if too many pages are allocated in a
513 * second. Therefore, we throttle nosleep allocations even when
514 * the guest is not under memory pressure. OTOH, if we have already
515 * predicted that the guest is under memory pressure, then we
516 * slowdown page allocations considerably.
517 */
518
519 goal = b->target - b->size;
520 /*
521 * Start with no sleep allocation rate which may be higher
522 * than sleeping allocation rate.
523 */
524 rate = b->slow_allocation_cycles ?
525 b->rate_alloc : VMW_BALLOON_NOSLEEP_ALLOC_MAX;
526
527 pr_debug("%s - goal: %d, no-sleep rate: %d, sleep rate: %d\n",
528 __func__, goal, rate, b->rate_alloc);
529
530 for (i = 0; i < goal; i++) {
531
532 error = vmballoon_reserve_page(b, alloc_can_sleep);
533 if (error) {
534 if (error != -ENOMEM) {
535 /*
536 * Not a page allocation failure, stop this
537 * cycle. Maybe we'll get new target from
538 * the host soon.
539 */
540 break;
541 }
542
543 if (alloc_can_sleep) {
544 /*
545 * CANSLEEP page allocation failed, so guest
546 * is under severe memory pressure. Quickly
547 * decrease allocation rate.
548 */
549 b->rate_alloc = max(b->rate_alloc / 2,
550 VMW_BALLOON_RATE_ALLOC_MIN);
551 break;
552 }
553
554 /*
555 * NOSLEEP page allocation failed, so the guest is
556 * under memory pressure. Let us slow down page
557 * allocations for next few cycles so that the guest
558 * gets out of memory pressure. Also, if we already
559 * allocated b->rate_alloc pages, let's pause,
560 * otherwise switch to sleeping allocations.
561 */
562 b->slow_allocation_cycles = VMW_BALLOON_SLOW_CYCLES;
563
564 if (i >= b->rate_alloc)
565 break;
566
567 alloc_can_sleep = true;
568 /* Lower rate for sleeping allocations. */
569 rate = b->rate_alloc;
570 }
571
572 if (++allocations > VMW_BALLOON_YIELD_THRESHOLD) {
573 cond_resched();
574 allocations = 0;
575 }
576
577 if (i >= rate) {
578 /* We allocated enough pages, let's take a break. */
579 break;
580 }
581 }
582
583 /*
584 * We reached our goal without failures so try increasing
585 * allocation rate.
586 */
587 if (error == 0 && i >= b->rate_alloc) {
588 unsigned int mult = i / b->rate_alloc;
589
590 b->rate_alloc =
591 min(b->rate_alloc + mult * VMW_BALLOON_RATE_ALLOC_INC,
592 VMW_BALLOON_RATE_ALLOC_MAX);
593 }
594
595 vmballoon_release_refused_pages(b);
596}
597
598/*
599 * Decrease the size of the balloon allowing guest to use more memory.
600 */
601static void vmballoon_deflate(struct vmballoon *b)
602{
603 struct page *page, *next;
604 unsigned int i = 0;
605 unsigned int goal;
606 int error;
607
608 pr_debug("%s - size: %d, target %d\n", __func__, b->size, b->target);
609
610 /* limit deallocation rate */
611 goal = min(b->size - b->target, b->rate_free);
612
613 pr_debug("%s - goal: %d, rate: %d\n", __func__, goal, b->rate_free);
614
615 /* free pages to reach target */
616 list_for_each_entry_safe(page, next, &b->pages, lru) {
617 error = vmballoon_release_page(b, page);
618 if (error) {
619 /* quickly decrease rate in case of error */
620 b->rate_free = max(b->rate_free / 2,
621 VMW_BALLOON_RATE_FREE_MIN);
622 return;
623 }
624
625 if (++i >= goal)
626 break;
627 }
628
629 /* slowly increase rate if there were no errors */
630 b->rate_free = min(b->rate_free + VMW_BALLOON_RATE_FREE_INC,
631 VMW_BALLOON_RATE_FREE_MAX);
632}
633
634/*
635 * Balloon work function: reset protocol, if needed, get the new size and
636 * adjust balloon as needed. Repeat in 1 sec.
637 */
638static void vmballoon_work(struct work_struct *work)
639{
640 struct delayed_work *dwork = to_delayed_work(work);
641 struct vmballoon *b = container_of(dwork, struct vmballoon, dwork);
642 unsigned int target;
643
644 STATS_INC(b->stats.timer);
645
646 if (b->reset_required)
647 vmballoon_reset(b);
648
649 if (b->slow_allocation_cycles > 0)
650 b->slow_allocation_cycles--;
651
652 if (vmballoon_send_get_target(b, &target)) {
653 /* update target, adjust size */
654 b->target = target;
655
656 if (b->size < target)
657 vmballoon_inflate(b);
658 else if (b->size > target)
659 vmballoon_deflate(b);
660 }
661
662 queue_delayed_work(vmballoon_wq, dwork, round_jiffies_relative(HZ));
663}
664
665/*
666 * DEBUGFS Interface
667 */
668#ifdef CONFIG_DEBUG_FS
669
670static int vmballoon_debug_show(struct seq_file *f, void *offset)
671{
672 struct vmballoon *b = f->private;
673 struct vmballoon_stats *stats = &b->stats;
674
675 /* format size info */
676 seq_printf(f,
677 "target: %8d pages\n"
678 "current: %8d pages\n",
679 b->target, b->size);
680
681 /* format rate info */
682 seq_printf(f,
683 "rateNoSleepAlloc: %8d pages/sec\n"
684 "rateSleepAlloc: %8d pages/sec\n"
685 "rateFree: %8d pages/sec\n",
686 VMW_BALLOON_NOSLEEP_ALLOC_MAX,
687 b->rate_alloc, b->rate_free);
688
689 seq_printf(f,
690 "\n"
691 "timer: %8u\n"
692 "start: %8u (%4u failed)\n"
693 "guestType: %8u (%4u failed)\n"
694 "lock: %8u (%4u failed)\n"
695 "unlock: %8u (%4u failed)\n"
696 "target: %8u (%4u failed)\n"
697 "primNoSleepAlloc: %8u (%4u failed)\n"
698 "primCanSleepAlloc: %8u (%4u failed)\n"
699 "primFree: %8u\n"
700 "errAlloc: %8u\n"
701 "errFree: %8u\n",
702 stats->timer,
703 stats->start, stats->start_fail,
704 stats->guest_type, stats->guest_type_fail,
705 stats->lock, stats->lock_fail,
706 stats->unlock, stats->unlock_fail,
707 stats->target, stats->target_fail,
708 stats->alloc, stats->alloc_fail,
709 stats->sleep_alloc, stats->sleep_alloc_fail,
710 stats->free,
711 stats->refused_alloc, stats->refused_free);
712
713 return 0;
714}
715
716static int vmballoon_debug_open(struct inode *inode, struct file *file)
717{
718 return single_open(file, vmballoon_debug_show, inode->i_private);
719}
720
721static const struct file_operations vmballoon_debug_fops = {
722 .owner = THIS_MODULE,
723 .open = vmballoon_debug_open,
724 .read = seq_read,
725 .llseek = seq_lseek,
726 .release = single_release,
727};
728
729static int __init vmballoon_debugfs_init(struct vmballoon *b)
730{
731 int error;
732
733 b->dbg_entry = debugfs_create_file("vmmemctl", S_IRUGO, NULL, b,
734 &vmballoon_debug_fops);
735 if (IS_ERR(b->dbg_entry)) {
736 error = PTR_ERR(b->dbg_entry);
737 pr_err("failed to create debugfs entry, error: %d\n", error);
738 return error;
739 }
740
741 return 0;
742}
743
744static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
745{
746 debugfs_remove(b->dbg_entry);
747}
748
749#else
750
751static inline int vmballoon_debugfs_init(struct vmballoon *b)
752{
753 return 0;
754}
755
756static inline void vmballoon_debugfs_exit(struct vmballoon *b)
757{
758}
759
760#endif /* CONFIG_DEBUG_FS */
761
762static int __init vmballoon_init(void)
763{
764 int error;
765
766 /*
767 * Check if we are running on VMware's hypervisor and bail out
768 * if we are not.
769 */
770 if (!vmware_platform())
771 return -ENODEV;
772
773 vmballoon_wq = create_freezeable_workqueue("vmmemctl");
774 if (!vmballoon_wq) {
775 pr_err("failed to create workqueue\n");
776 return -ENOMEM;
777 }
778
779 INIT_LIST_HEAD(&balloon.pages);
780 INIT_LIST_HEAD(&balloon.refused_pages);
781
782 /* initialize rates */
783 balloon.rate_alloc = VMW_BALLOON_RATE_ALLOC_MAX;
784 balloon.rate_free = VMW_BALLOON_RATE_FREE_MAX;
785
786 INIT_DELAYED_WORK(&balloon.dwork, vmballoon_work);
787
788 /*
789 * Start balloon.
790 */
791 if (!vmballoon_send_start(&balloon)) {
792 pr_err("failed to send start command to the host\n");
793 error = -EIO;
794 goto fail;
795 }
796
797 if (!vmballoon_send_guest_id(&balloon)) {
798 pr_err("failed to send guest ID to the host\n");
799 error = -EIO;
800 goto fail;
801 }
802
803 error = vmballoon_debugfs_init(&balloon);
804 if (error)
805 goto fail;
806
807 queue_delayed_work(vmballoon_wq, &balloon.dwork, 0);
808
809 return 0;
810
811fail:
812 destroy_workqueue(vmballoon_wq);
813 return error;
814}
815module_init(vmballoon_init);
816
817static void __exit vmballoon_exit(void)
818{
819 cancel_delayed_work_sync(&balloon.dwork);
820 destroy_workqueue(vmballoon_wq);
821
822 vmballoon_debugfs_exit(&balloon);
823
824 /*
825 * Deallocate all reserved memory, and reset connection with monitor.
826 * Reset connection before deallocating memory to avoid potential for
827 * additional spurious resets from guest touching deallocated pages.
828 */
829 vmballoon_send_start(&balloon);
830 vmballoon_pop(&balloon);
831}
832module_exit(vmballoon_exit);
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
index 82d1e4de475b..4521b1ecce45 100644
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -4,7 +4,7 @@
4 4
5# Core functionality. 5# Core functionality.
6obj-$(CONFIG_MTD) += mtd.o 6obj-$(CONFIG_MTD) += mtd.o
7mtd-y := mtdcore.o mtdsuper.o mtdbdi.o 7mtd-y := mtdcore.o mtdsuper.o
8mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o 8mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o
9 9
10obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o 10obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o
diff --git a/drivers/mtd/internal.h b/drivers/mtd/internal.h
index c658fe7216b5..e69de29bb2d1 100644
--- a/drivers/mtd/internal.h
+++ b/drivers/mtd/internal.h
@@ -1,17 +0,0 @@
1/* Internal MTD definitions
2 *
3 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/*
13 * mtdbdi.c
14 */
15extern struct backing_dev_info mtd_bdi_unmappable;
16extern struct backing_dev_info mtd_bdi_ro_mappable;
17extern struct backing_dev_info mtd_bdi_rw_mappable;
diff --git a/drivers/mtd/mtdbdi.c b/drivers/mtd/mtdbdi.c
index 5ca5aed0b225..e69de29bb2d1 100644
--- a/drivers/mtd/mtdbdi.c
+++ b/drivers/mtd/mtdbdi.c
@@ -1,43 +0,0 @@
1/* MTD backing device capabilities
2 *
3 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#include <linux/backing-dev.h>
13#include <linux/mtd/mtd.h>
14#include "internal.h"
15
16/*
17 * backing device capabilities for non-mappable devices (such as NAND flash)
18 * - permits private mappings, copies are taken of the data
19 */
20struct backing_dev_info mtd_bdi_unmappable = {
21 .capabilities = BDI_CAP_MAP_COPY,
22};
23
24/*
25 * backing device capabilities for R/O mappable devices (such as ROM)
26 * - permits private mappings, copies are taken of the data
27 * - permits non-writable shared mappings
28 */
29struct backing_dev_info mtd_bdi_ro_mappable = {
30 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
31 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP),
32};
33
34/*
35 * backing device capabilities for writable mappable devices (such as RAM)
36 * - permits private mappings, copies are taken of the data
37 * - permits non-writable shared mappings
38 */
39struct backing_dev_info mtd_bdi_rw_mappable = {
40 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
41 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP |
42 BDI_CAP_WRITE_MAP),
43};
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 5b38b17d2229..b177e750efc3 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -2,6 +2,9 @@
2 * Core registration and callback routines for MTD 2 * Core registration and callback routines for MTD
3 * drivers and users. 3 * drivers and users.
4 * 4 *
5 * bdi bits are:
6 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
7 * Written by David Howells (dhowells@redhat.com)
5 */ 8 */
6 9
7#include <linux/module.h> 10#include <linux/module.h>
@@ -16,11 +19,39 @@
16#include <linux/init.h> 19#include <linux/init.h>
17#include <linux/mtd/compatmac.h> 20#include <linux/mtd/compatmac.h>
18#include <linux/proc_fs.h> 21#include <linux/proc_fs.h>
22#include <linux/backing-dev.h>
19 23
20#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
21#include "internal.h"
22 25
23#include "mtdcore.h" 26#include "mtdcore.h"
27/*
28 * backing device capabilities for non-mappable devices (such as NAND flash)
29 * - permits private mappings, copies are taken of the data
30 */
31struct backing_dev_info mtd_bdi_unmappable = {
32 .capabilities = BDI_CAP_MAP_COPY,
33};
34
35/*
36 * backing device capabilities for R/O mappable devices (such as ROM)
37 * - permits private mappings, copies are taken of the data
38 * - permits non-writable shared mappings
39 */
40struct backing_dev_info mtd_bdi_ro_mappable = {
41 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
42 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP),
43};
44
45/*
46 * backing device capabilities for writable mappable devices (such as RAM)
47 * - permits private mappings, copies are taken of the data
48 * - permits non-writable shared mappings
49 */
50struct backing_dev_info mtd_bdi_rw_mappable = {
51 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
52 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP |
53 BDI_CAP_WRITE_MAP),
54};
24 55
25static int mtd_cls_suspend(struct device *dev, pm_message_t state); 56static int mtd_cls_suspend(struct device *dev, pm_message_t state);
26static int mtd_cls_resume(struct device *dev); 57static int mtd_cls_resume(struct device *dev);
@@ -628,20 +659,55 @@ done:
628/*====================================================================*/ 659/*====================================================================*/
629/* Init code */ 660/* Init code */
630 661
662static int __init mtd_bdi_init(struct backing_dev_info *bdi, const char *name)
663{
664 int ret;
665
666 ret = bdi_init(bdi);
667 if (!ret)
668 ret = bdi_register(bdi, NULL, name);
669
670 if (ret)
671 bdi_destroy(bdi);
672
673 return ret;
674}
675
631static int __init init_mtd(void) 676static int __init init_mtd(void)
632{ 677{
633 int ret; 678 int ret;
679
634 ret = class_register(&mtd_class); 680 ret = class_register(&mtd_class);
681 if (ret)
682 goto err_reg;
683
684 ret = mtd_bdi_init(&mtd_bdi_unmappable, "mtd-unmap");
685 if (ret)
686 goto err_bdi1;
687
688 ret = mtd_bdi_init(&mtd_bdi_ro_mappable, "mtd-romap");
689 if (ret)
690 goto err_bdi2;
691
692 ret = mtd_bdi_init(&mtd_bdi_rw_mappable, "mtd-rwmap");
693 if (ret)
694 goto err_bdi3;
635 695
636 if (ret) {
637 pr_err("Error registering mtd class: %d\n", ret);
638 return ret;
639 }
640#ifdef CONFIG_PROC_FS 696#ifdef CONFIG_PROC_FS
641 if ((proc_mtd = create_proc_entry( "mtd", 0, NULL ))) 697 if ((proc_mtd = create_proc_entry( "mtd", 0, NULL )))
642 proc_mtd->read_proc = mtd_read_proc; 698 proc_mtd->read_proc = mtd_read_proc;
643#endif /* CONFIG_PROC_FS */ 699#endif /* CONFIG_PROC_FS */
644 return 0; 700 return 0;
701
702err_bdi3:
703 bdi_destroy(&mtd_bdi_ro_mappable);
704err_bdi2:
705 bdi_destroy(&mtd_bdi_unmappable);
706err_bdi1:
707 class_unregister(&mtd_class);
708err_reg:
709 pr_err("Error registering mtd class or bdi: %d\n", ret);
710 return ret;
645} 711}
646 712
647static void __exit cleanup_mtd(void) 713static void __exit cleanup_mtd(void)
@@ -651,6 +717,9 @@ static void __exit cleanup_mtd(void)
651 remove_proc_entry( "mtd", NULL); 717 remove_proc_entry( "mtd", NULL);
652#endif /* CONFIG_PROC_FS */ 718#endif /* CONFIG_PROC_FS */
653 class_unregister(&mtd_class); 719 class_unregister(&mtd_class);
720 bdi_destroy(&mtd_bdi_unmappable);
721 bdi_destroy(&mtd_bdi_ro_mappable);
722 bdi_destroy(&mtd_bdi_rw_mappable);
654} 723}
655 724
656module_init(init_mtd); 725module_init(init_mtd);
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index af8b42e0a55b..7c003191fca4 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -13,6 +13,7 @@
13#include <linux/mtd/super.h> 13#include <linux/mtd/super.h>
14#include <linux/namei.h> 14#include <linux/namei.h>
15#include <linux/ctype.h> 15#include <linux/ctype.h>
16#include <linux/slab.h>
16 17
17/* 18/*
18 * compare superblocks to see if they're equivalent 19 * compare superblocks to see if they're equivalent
@@ -44,6 +45,7 @@ static int get_sb_mtd_set(struct super_block *sb, void *_mtd)
44 45
45 sb->s_mtd = mtd; 46 sb->s_mtd = mtd;
46 sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index); 47 sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
48 sb->s_bdi = mtd->backing_dev_info;
47 return 0; 49 return 0;
48} 50}
49 51
diff --git a/drivers/mtd/nand/orion_nand.c b/drivers/mtd/nand/orion_nand.c
index f59c07427af3..d60fc5719fef 100644
--- a/drivers/mtd/nand/orion_nand.c
+++ b/drivers/mtd/nand/orion_nand.c
@@ -60,7 +60,13 @@ static void orion_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
60 } 60 }
61 buf64 = (uint64_t *)buf; 61 buf64 = (uint64_t *)buf;
62 while (i < len/8) { 62 while (i < len/8) {
63 uint64_t x; 63 /*
64 * Since GCC has no proper constraint (PR 43518)
65 * force x variable to r2/r3 registers as ldrd instruction
66 * requires first register to be even.
67 */
68 register uint64_t x asm ("r2");
69
64 asm volatile ("ldrd\t%0, [%1]" : "=&r" (x) : "r" (io_base)); 70 asm volatile ("ldrd\t%0, [%1]" : "=&r" (x) : "r" (io_base));
65 buf64[i++] = x; 71 buf64[i++] = x;
66 } 72 }
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index a03d291de854..f0d23de32967 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -1944,7 +1944,7 @@ static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
1944 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n", 1944 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n",
1945 __func__, rx_status, rx_size, cur_rx); 1945 __func__, rx_status, rx_size, cur_rx);
1946#if RTL8139_DEBUG > 2 1946#if RTL8139_DEBUG > 2
1947 print_dump_hex(KERN_DEBUG, "Frame contents: ", 1947 print_hex_dump(KERN_DEBUG, "Frame contents: ",
1948 DUMP_PREFIX_OFFSET, 16, 1, 1948 DUMP_PREFIX_OFFSET, 16, 1,
1949 &rx_ring[ring_offset], 70, true); 1949 &rx_ring[ring_offset], 70, true);
1950#endif 1950#endif
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index a583b50d9de8..12b280afdd51 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -273,6 +273,7 @@ obj-$(CONFIG_USB_RTL8150) += usb/
273obj-$(CONFIG_USB_HSO) += usb/ 273obj-$(CONFIG_USB_HSO) += usb/
274obj-$(CONFIG_USB_USBNET) += usb/ 274obj-$(CONFIG_USB_USBNET) += usb/
275obj-$(CONFIG_USB_ZD1201) += usb/ 275obj-$(CONFIG_USB_ZD1201) += usb/
276obj-$(CONFIG_USB_IPHETH) += usb/
276 277
277obj-y += wireless/ 278obj-y += wireless/
278obj-$(CONFIG_NET_TULIP) += tulip/ 279obj-$(CONFIG_NET_TULIP) += tulip/
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index a257babd1bb4..ac90a3828f69 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -58,8 +58,8 @@
58#include "bnx2_fw.h" 58#include "bnx2_fw.h"
59 59
60#define DRV_MODULE_NAME "bnx2" 60#define DRV_MODULE_NAME "bnx2"
61#define DRV_MODULE_VERSION "2.0.8" 61#define DRV_MODULE_VERSION "2.0.9"
62#define DRV_MODULE_RELDATE "Feb 15, 2010" 62#define DRV_MODULE_RELDATE "April 27, 2010"
63#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw" 63#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw"
64#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw" 64#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw"
65#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j9.fw" 65#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j9.fw"
@@ -651,9 +651,10 @@ bnx2_napi_enable(struct bnx2 *bp)
651} 651}
652 652
653static void 653static void
654bnx2_netif_stop(struct bnx2 *bp) 654bnx2_netif_stop(struct bnx2 *bp, bool stop_cnic)
655{ 655{
656 bnx2_cnic_stop(bp); 656 if (stop_cnic)
657 bnx2_cnic_stop(bp);
657 if (netif_running(bp->dev)) { 658 if (netif_running(bp->dev)) {
658 int i; 659 int i;
659 660
@@ -671,14 +672,15 @@ bnx2_netif_stop(struct bnx2 *bp)
671} 672}
672 673
673static void 674static void
674bnx2_netif_start(struct bnx2 *bp) 675bnx2_netif_start(struct bnx2 *bp, bool start_cnic)
675{ 676{
676 if (atomic_dec_and_test(&bp->intr_sem)) { 677 if (atomic_dec_and_test(&bp->intr_sem)) {
677 if (netif_running(bp->dev)) { 678 if (netif_running(bp->dev)) {
678 netif_tx_wake_all_queues(bp->dev); 679 netif_tx_wake_all_queues(bp->dev);
679 bnx2_napi_enable(bp); 680 bnx2_napi_enable(bp);
680 bnx2_enable_int(bp); 681 bnx2_enable_int(bp);
681 bnx2_cnic_start(bp); 682 if (start_cnic)
683 bnx2_cnic_start(bp);
682 } 684 }
683 } 685 }
684} 686}
@@ -4759,8 +4761,12 @@ bnx2_reset_chip(struct bnx2 *bp, u32 reset_code)
4759 rc = bnx2_alloc_bad_rbuf(bp); 4761 rc = bnx2_alloc_bad_rbuf(bp);
4760 } 4762 }
4761 4763
4762 if (bp->flags & BNX2_FLAG_USING_MSIX) 4764 if (bp->flags & BNX2_FLAG_USING_MSIX) {
4763 bnx2_setup_msix_tbl(bp); 4765 bnx2_setup_msix_tbl(bp);
4766 /* Prevent MSIX table reads and write from timing out */
4767 REG_WR(bp, BNX2_MISC_ECO_HW_CTL,
4768 BNX2_MISC_ECO_HW_CTL_LARGE_GRC_TMOUT_EN);
4769 }
4764 4770
4765 return rc; 4771 return rc;
4766} 4772}
@@ -6273,12 +6279,12 @@ bnx2_reset_task(struct work_struct *work)
6273 return; 6279 return;
6274 } 6280 }
6275 6281
6276 bnx2_netif_stop(bp); 6282 bnx2_netif_stop(bp, true);
6277 6283
6278 bnx2_init_nic(bp, 1); 6284 bnx2_init_nic(bp, 1);
6279 6285
6280 atomic_set(&bp->intr_sem, 1); 6286 atomic_set(&bp->intr_sem, 1);
6281 bnx2_netif_start(bp); 6287 bnx2_netif_start(bp, true);
6282 rtnl_unlock(); 6288 rtnl_unlock();
6283} 6289}
6284 6290
@@ -6320,7 +6326,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
6320 struct bnx2 *bp = netdev_priv(dev); 6326 struct bnx2 *bp = netdev_priv(dev);
6321 6327
6322 if (netif_running(dev)) 6328 if (netif_running(dev))
6323 bnx2_netif_stop(bp); 6329 bnx2_netif_stop(bp, false);
6324 6330
6325 bp->vlgrp = vlgrp; 6331 bp->vlgrp = vlgrp;
6326 6332
@@ -6331,7 +6337,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
6331 if (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN) 6337 if (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)
6332 bnx2_fw_sync(bp, BNX2_DRV_MSG_CODE_KEEP_VLAN_UPDATE, 0, 1); 6338 bnx2_fw_sync(bp, BNX2_DRV_MSG_CODE_KEEP_VLAN_UPDATE, 0, 1);
6333 6339
6334 bnx2_netif_start(bp); 6340 bnx2_netif_start(bp, false);
6335} 6341}
6336#endif 6342#endif
6337 6343
@@ -7051,9 +7057,9 @@ bnx2_set_coalesce(struct net_device *dev, struct ethtool_coalesce *coal)
7051 bp->stats_ticks &= BNX2_HC_STATS_TICKS_HC_STAT_TICKS; 7057 bp->stats_ticks &= BNX2_HC_STATS_TICKS_HC_STAT_TICKS;
7052 7058
7053 if (netif_running(bp->dev)) { 7059 if (netif_running(bp->dev)) {
7054 bnx2_netif_stop(bp); 7060 bnx2_netif_stop(bp, true);
7055 bnx2_init_nic(bp, 0); 7061 bnx2_init_nic(bp, 0);
7056 bnx2_netif_start(bp); 7062 bnx2_netif_start(bp, true);
7057 } 7063 }
7058 7064
7059 return 0; 7065 return 0;
@@ -7083,7 +7089,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
7083 /* Reset will erase chipset stats; save them */ 7089 /* Reset will erase chipset stats; save them */
7084 bnx2_save_stats(bp); 7090 bnx2_save_stats(bp);
7085 7091
7086 bnx2_netif_stop(bp); 7092 bnx2_netif_stop(bp, true);
7087 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET); 7093 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET);
7088 bnx2_free_skbs(bp); 7094 bnx2_free_skbs(bp);
7089 bnx2_free_mem(bp); 7095 bnx2_free_mem(bp);
@@ -7111,7 +7117,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
7111 bnx2_setup_cnic_irq_info(bp); 7117 bnx2_setup_cnic_irq_info(bp);
7112 mutex_unlock(&bp->cnic_lock); 7118 mutex_unlock(&bp->cnic_lock);
7113#endif 7119#endif
7114 bnx2_netif_start(bp); 7120 bnx2_netif_start(bp, true);
7115 } 7121 }
7116 return 0; 7122 return 0;
7117} 7123}
@@ -7364,7 +7370,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
7364 if (etest->flags & ETH_TEST_FL_OFFLINE) { 7370 if (etest->flags & ETH_TEST_FL_OFFLINE) {
7365 int i; 7371 int i;
7366 7372
7367 bnx2_netif_stop(bp); 7373 bnx2_netif_stop(bp, true);
7368 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_DIAG); 7374 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_DIAG);
7369 bnx2_free_skbs(bp); 7375 bnx2_free_skbs(bp);
7370 7376
@@ -7383,7 +7389,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
7383 bnx2_shutdown_chip(bp); 7389 bnx2_shutdown_chip(bp);
7384 else { 7390 else {
7385 bnx2_init_nic(bp, 1); 7391 bnx2_init_nic(bp, 1);
7386 bnx2_netif_start(bp); 7392 bnx2_netif_start(bp, true);
7387 } 7393 }
7388 7394
7389 /* wait for link up */ 7395 /* wait for link up */
@@ -8377,7 +8383,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state)
8377 return 0; 8383 return 0;
8378 8384
8379 flush_scheduled_work(); 8385 flush_scheduled_work();
8380 bnx2_netif_stop(bp); 8386 bnx2_netif_stop(bp, true);
8381 netif_device_detach(dev); 8387 netif_device_detach(dev);
8382 del_timer_sync(&bp->timer); 8388 del_timer_sync(&bp->timer);
8383 bnx2_shutdown_chip(bp); 8389 bnx2_shutdown_chip(bp);
@@ -8399,7 +8405,7 @@ bnx2_resume(struct pci_dev *pdev)
8399 bnx2_set_power_state(bp, PCI_D0); 8405 bnx2_set_power_state(bp, PCI_D0);
8400 netif_device_attach(dev); 8406 netif_device_attach(dev);
8401 bnx2_init_nic(bp, 1); 8407 bnx2_init_nic(bp, 1);
8402 bnx2_netif_start(bp); 8408 bnx2_netif_start(bp, true);
8403 return 0; 8409 return 0;
8404} 8410}
8405 8411
@@ -8426,7 +8432,7 @@ static pci_ers_result_t bnx2_io_error_detected(struct pci_dev *pdev,
8426 } 8432 }
8427 8433
8428 if (netif_running(dev)) { 8434 if (netif_running(dev)) {
8429 bnx2_netif_stop(bp); 8435 bnx2_netif_stop(bp, true);
8430 del_timer_sync(&bp->timer); 8436 del_timer_sync(&bp->timer);
8431 bnx2_reset_nic(bp, BNX2_DRV_MSG_CODE_RESET); 8437 bnx2_reset_nic(bp, BNX2_DRV_MSG_CODE_RESET);
8432 } 8438 }
@@ -8483,7 +8489,7 @@ static void bnx2_io_resume(struct pci_dev *pdev)
8483 8489
8484 rtnl_lock(); 8490 rtnl_lock();
8485 if (netif_running(dev)) 8491 if (netif_running(dev))
8486 bnx2_netif_start(bp); 8492 bnx2_netif_start(bp, true);
8487 8493
8488 netif_device_attach(dev); 8494 netif_device_attach(dev);
8489 rtnl_unlock(); 8495 rtnl_unlock();
diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c
index 33451092b8e8..d800b598ae3d 100644
--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -1006,7 +1006,7 @@ static int ems_usb_probe(struct usb_interface *intf,
1006 1006
1007 netdev = alloc_candev(sizeof(struct ems_usb), MAX_TX_URBS); 1007 netdev = alloc_candev(sizeof(struct ems_usb), MAX_TX_URBS);
1008 if (!netdev) { 1008 if (!netdev) {
1009 dev_err(netdev->dev.parent, "Couldn't alloc candev\n"); 1009 dev_err(&intf->dev, "ems_usb: Couldn't alloc candev\n");
1010 return -ENOMEM; 1010 return -ENOMEM;
1011 } 1011 }
1012 1012
@@ -1036,20 +1036,20 @@ static int ems_usb_probe(struct usb_interface *intf,
1036 1036
1037 dev->intr_urb = usb_alloc_urb(0, GFP_KERNEL); 1037 dev->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
1038 if (!dev->intr_urb) { 1038 if (!dev->intr_urb) {
1039 dev_err(netdev->dev.parent, "Couldn't alloc intr URB\n"); 1039 dev_err(&intf->dev, "Couldn't alloc intr URB\n");
1040 goto cleanup_candev; 1040 goto cleanup_candev;
1041 } 1041 }
1042 1042
1043 dev->intr_in_buffer = kzalloc(INTR_IN_BUFFER_SIZE, GFP_KERNEL); 1043 dev->intr_in_buffer = kzalloc(INTR_IN_BUFFER_SIZE, GFP_KERNEL);
1044 if (!dev->intr_in_buffer) { 1044 if (!dev->intr_in_buffer) {
1045 dev_err(netdev->dev.parent, "Couldn't alloc Intr buffer\n"); 1045 dev_err(&intf->dev, "Couldn't alloc Intr buffer\n");
1046 goto cleanup_intr_urb; 1046 goto cleanup_intr_urb;
1047 } 1047 }
1048 1048
1049 dev->tx_msg_buffer = kzalloc(CPC_HEADER_SIZE + 1049 dev->tx_msg_buffer = kzalloc(CPC_HEADER_SIZE +
1050 sizeof(struct ems_cpc_msg), GFP_KERNEL); 1050 sizeof(struct ems_cpc_msg), GFP_KERNEL);
1051 if (!dev->tx_msg_buffer) { 1051 if (!dev->tx_msg_buffer) {
1052 dev_err(netdev->dev.parent, "Couldn't alloc Tx buffer\n"); 1052 dev_err(&intf->dev, "Couldn't alloc Tx buffer\n");
1053 goto cleanup_intr_in_buffer; 1053 goto cleanup_intr_in_buffer;
1054 } 1054 }
1055 1055
diff --git a/drivers/net/cxgb3/ael1002.c b/drivers/net/cxgb3/ael1002.c
index 5248f9e0b2f4..35cd36729155 100644
--- a/drivers/net/cxgb3/ael1002.c
+++ b/drivers/net/cxgb3/ael1002.c
@@ -934,7 +934,7 @@ static struct cphy_ops xaui_direct_ops = {
934int t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter, 934int t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter,
935 int phy_addr, const struct mdio_ops *mdio_ops) 935 int phy_addr, const struct mdio_ops *mdio_ops)
936{ 936{
937 cphy_init(phy, adapter, MDIO_PRTAD_NONE, &xaui_direct_ops, mdio_ops, 937 cphy_init(phy, adapter, phy_addr, &xaui_direct_ops, mdio_ops,
938 SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_TP, 938 SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_TP,
939 "10GBASE-CX4"); 939 "10GBASE-CX4");
940 return 0; 940 return 0;
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index aced6c5e635c..e3f1b8566495 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -439,7 +439,7 @@ static void free_irq_resources(struct adapter *adapter)
439static int await_mgmt_replies(struct adapter *adap, unsigned long init_cnt, 439static int await_mgmt_replies(struct adapter *adap, unsigned long init_cnt,
440 unsigned long n) 440 unsigned long n)
441{ 441{
442 int attempts = 5; 442 int attempts = 10;
443 443
444 while (adap->sge.qs[0].rspq.offload_pkts < init_cnt + n) { 444 while (adap->sge.qs[0].rspq.offload_pkts < init_cnt + n) {
445 if (!--attempts) 445 if (!--attempts)
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index b997e578e58f..791080303db1 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -166,6 +166,7 @@
166#include <linux/ethtool.h> 166#include <linux/ethtool.h>
167#include <linux/string.h> 167#include <linux/string.h>
168#include <linux/firmware.h> 168#include <linux/firmware.h>
169#include <linux/rtnetlink.h>
169#include <asm/unaligned.h> 170#include <asm/unaligned.h>
170 171
171 172
@@ -2265,8 +2266,13 @@ static void e100_tx_timeout_task(struct work_struct *work)
2265 2266
2266 DPRINTK(TX_ERR, DEBUG, "scb.status=0x%02X\n", 2267 DPRINTK(TX_ERR, DEBUG, "scb.status=0x%02X\n",
2267 ioread8(&nic->csr->scb.status)); 2268 ioread8(&nic->csr->scb.status));
2268 e100_down(netdev_priv(netdev)); 2269
2269 e100_up(netdev_priv(netdev)); 2270 rtnl_lock();
2271 if (netif_running(netdev)) {
2272 e100_down(netdev_priv(netdev));
2273 e100_up(netdev_priv(netdev));
2274 }
2275 rtnl_unlock();
2270} 2276}
2271 2277
2272static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) 2278static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index 712ccc66ba25..90155552ea09 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -336,7 +336,6 @@ static s32 e1000_get_variants_82571(struct e1000_adapter *adapter)
336 struct e1000_hw *hw = &adapter->hw; 336 struct e1000_hw *hw = &adapter->hw;
337 static int global_quad_port_a; /* global port a indication */ 337 static int global_quad_port_a; /* global port a indication */
338 struct pci_dev *pdev = adapter->pdev; 338 struct pci_dev *pdev = adapter->pdev;
339 u16 eeprom_data = 0;
340 int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1; 339 int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1;
341 s32 rc; 340 s32 rc;
342 341
@@ -387,16 +386,15 @@ static s32 e1000_get_variants_82571(struct e1000_adapter *adapter)
387 if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) 386 if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD)
388 adapter->flags &= ~FLAG_HAS_WOL; 387 adapter->flags &= ~FLAG_HAS_WOL;
389 break; 388 break;
390
391 case e1000_82573: 389 case e1000_82573:
390 case e1000_82574:
391 case e1000_82583:
392 /* Disable ASPM L0s due to hardware errata */
393 e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L0S);
394
392 if (pdev->device == E1000_DEV_ID_82573L) { 395 if (pdev->device == E1000_DEV_ID_82573L) {
393 if (e1000_read_nvm(&adapter->hw, NVM_INIT_3GIO_3, 1, 396 adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
394 &eeprom_data) < 0) 397 adapter->max_hw_frame_size = DEFAULT_JUMBO;
395 break;
396 if (!(eeprom_data & NVM_WORD1A_ASPM_MASK)) {
397 adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
398 adapter->max_hw_frame_size = DEFAULT_JUMBO;
399 }
400 } 398 }
401 break; 399 break;
402 default: 400 default:
@@ -1792,6 +1790,7 @@ struct e1000_info e1000_82571_info = {
1792 | FLAG_RESET_OVERWRITES_LAA /* errata */ 1790 | FLAG_RESET_OVERWRITES_LAA /* errata */
1793 | FLAG_TARC_SPEED_MODE_BIT /* errata */ 1791 | FLAG_TARC_SPEED_MODE_BIT /* errata */
1794 | FLAG_APME_CHECK_PORT_B, 1792 | FLAG_APME_CHECK_PORT_B,
1793 .flags2 = FLAG2_DISABLE_ASPM_L1, /* errata 13 */
1795 .pba = 38, 1794 .pba = 38,
1796 .max_hw_frame_size = DEFAULT_JUMBO, 1795 .max_hw_frame_size = DEFAULT_JUMBO,
1797 .get_variants = e1000_get_variants_82571, 1796 .get_variants = e1000_get_variants_82571,
@@ -1809,6 +1808,7 @@ struct e1000_info e1000_82572_info = {
1809 | FLAG_RX_CSUM_ENABLED 1808 | FLAG_RX_CSUM_ENABLED
1810 | FLAG_HAS_CTRLEXT_ON_LOAD 1809 | FLAG_HAS_CTRLEXT_ON_LOAD
1811 | FLAG_TARC_SPEED_MODE_BIT, /* errata */ 1810 | FLAG_TARC_SPEED_MODE_BIT, /* errata */
1811 .flags2 = FLAG2_DISABLE_ASPM_L1, /* errata 13 */
1812 .pba = 38, 1812 .pba = 38,
1813 .max_hw_frame_size = DEFAULT_JUMBO, 1813 .max_hw_frame_size = DEFAULT_JUMBO,
1814 .get_variants = e1000_get_variants_82571, 1814 .get_variants = e1000_get_variants_82571,
@@ -1820,13 +1820,11 @@ struct e1000_info e1000_82572_info = {
1820struct e1000_info e1000_82573_info = { 1820struct e1000_info e1000_82573_info = {
1821 .mac = e1000_82573, 1821 .mac = e1000_82573,
1822 .flags = FLAG_HAS_HW_VLAN_FILTER 1822 .flags = FLAG_HAS_HW_VLAN_FILTER
1823 | FLAG_HAS_JUMBO_FRAMES
1824 | FLAG_HAS_WOL 1823 | FLAG_HAS_WOL
1825 | FLAG_APME_IN_CTRL3 1824 | FLAG_APME_IN_CTRL3
1826 | FLAG_RX_CSUM_ENABLED 1825 | FLAG_RX_CSUM_ENABLED
1827 | FLAG_HAS_SMART_POWER_DOWN 1826 | FLAG_HAS_SMART_POWER_DOWN
1828 | FLAG_HAS_AMT 1827 | FLAG_HAS_AMT
1829 | FLAG_HAS_ERT
1830 | FLAG_HAS_SWSM_ON_LOAD, 1828 | FLAG_HAS_SWSM_ON_LOAD,
1831 .pba = 20, 1829 .pba = 20,
1832 .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, 1830 .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN,
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index 118bdf483593..ee32b9b27a9f 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -37,6 +37,7 @@
37#include <linux/io.h> 37#include <linux/io.h>
38#include <linux/netdevice.h> 38#include <linux/netdevice.h>
39#include <linux/pci.h> 39#include <linux/pci.h>
40#include <linux/pci-aspm.h>
40 41
41#include "hw.h" 42#include "hw.h"
42 43
@@ -374,7 +375,7 @@ struct e1000_adapter {
374struct e1000_info { 375struct e1000_info {
375 enum e1000_mac_type mac; 376 enum e1000_mac_type mac;
376 unsigned int flags; 377 unsigned int flags;
377 unsigned int flags2; 378 unsigned int flags2;
378 u32 pba; 379 u32 pba;
379 u32 max_hw_frame_size; 380 u32 max_hw_frame_size;
380 s32 (*get_variants)(struct e1000_adapter *); 381 s32 (*get_variants)(struct e1000_adapter *);
@@ -421,6 +422,7 @@ struct e1000_info {
421#define FLAG2_CRC_STRIPPING (1 << 0) 422#define FLAG2_CRC_STRIPPING (1 << 0)
422#define FLAG2_HAS_PHY_WAKEUP (1 << 1) 423#define FLAG2_HAS_PHY_WAKEUP (1 << 1)
423#define FLAG2_IS_DISCARDING (1 << 2) 424#define FLAG2_IS_DISCARDING (1 << 2)
425#define FLAG2_DISABLE_ASPM_L1 (1 << 3)
424 426
425#define E1000_RX_DESC_PS(R, i) \ 427#define E1000_RX_DESC_PS(R, i) \
426 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i])) 428 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
@@ -461,6 +463,7 @@ extern void e1000e_update_stats(struct e1000_adapter *adapter);
461extern bool e1000e_has_link(struct e1000_adapter *adapter); 463extern bool e1000e_has_link(struct e1000_adapter *adapter);
462extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); 464extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
463extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); 465extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
466extern void e1000e_disable_aspm(struct pci_dev *pdev, u16 state);
464 467
465extern unsigned int copybreak; 468extern unsigned int copybreak;
466 469
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 73d43c53015a..fb8fc7d1b50d 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -4283,6 +4283,14 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
4283 return -EINVAL; 4283 return -EINVAL;
4284 } 4284 }
4285 4285
4286 /* 82573 Errata 17 */
4287 if (((adapter->hw.mac.type == e1000_82573) ||
4288 (adapter->hw.mac.type == e1000_82574)) &&
4289 (max_frame > ETH_FRAME_LEN + ETH_FCS_LEN)) {
4290 adapter->flags2 |= FLAG2_DISABLE_ASPM_L1;
4291 e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L1);
4292 }
4293
4286 while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) 4294 while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
4287 msleep(1); 4295 msleep(1);
4288 /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */ 4296 /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */
@@ -4605,29 +4613,39 @@ static void e1000_complete_shutdown(struct pci_dev *pdev, bool sleep,
4605 } 4613 }
4606} 4614}
4607 4615
4608static void e1000e_disable_l1aspm(struct pci_dev *pdev) 4616#ifdef CONFIG_PCIEASPM
4617static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4618{
4619 pci_disable_link_state(pdev, state);
4620}
4621#else
4622static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4609{ 4623{
4610 int pos; 4624 int pos;
4611 u16 val; 4625 u16 reg16;
4612 4626
4613 /* 4627 /*
4614 * 82573 workaround - disable L1 ASPM on mobile chipsets 4628 * Both device and parent should have the same ASPM setting.
4615 * 4629 * Disable ASPM in downstream component first and then upstream.
4616 * L1 ASPM on various mobile (ich7) chipsets do not behave properly
4617 * resulting in lost data or garbage information on the pci-e link
4618 * level. This could result in (false) bad EEPROM checksum errors,
4619 * long ping times (up to 2s) or even a system freeze/hang.
4620 *
4621 * Unfortunately this feature saves about 1W power consumption when
4622 * active.
4623 */ 4630 */
4624 pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); 4631 pos = pci_pcie_cap(pdev);
4625 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &val); 4632 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16);
4626 if (val & 0x2) { 4633 reg16 &= ~state;
4627 dev_warn(&pdev->dev, "Disabling L1 ASPM\n"); 4634 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, reg16);
4628 val &= ~0x2; 4635
4629 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, val); 4636 pos = pci_pcie_cap(pdev->bus->self);
4630 } 4637 pci_read_config_word(pdev->bus->self, pos + PCI_EXP_LNKCTL, &reg16);
4638 reg16 &= ~state;
4639 pci_write_config_word(pdev->bus->self, pos + PCI_EXP_LNKCTL, reg16);
4640}
4641#endif
4642void e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4643{
4644 dev_info(&pdev->dev, "Disabling ASPM %s %s\n",
4645 (state & PCIE_LINK_STATE_L0S) ? "L0s" : "",
4646 (state & PCIE_LINK_STATE_L1) ? "L1" : "");
4647
4648 __e1000e_disable_aspm(pdev, state);
4631} 4649}
4632 4650
4633#ifdef CONFIG_PM 4651#ifdef CONFIG_PM
@@ -4653,7 +4671,8 @@ static int e1000_resume(struct pci_dev *pdev)
4653 pci_set_power_state(pdev, PCI_D0); 4671 pci_set_power_state(pdev, PCI_D0);
4654 pci_restore_state(pdev); 4672 pci_restore_state(pdev);
4655 pci_save_state(pdev); 4673 pci_save_state(pdev);
4656 e1000e_disable_l1aspm(pdev); 4674 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1)
4675 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4657 4676
4658 err = pci_enable_device_mem(pdev); 4677 err = pci_enable_device_mem(pdev);
4659 if (err) { 4678 if (err) {
@@ -4795,7 +4814,8 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
4795 int err; 4814 int err;
4796 pci_ers_result_t result; 4815 pci_ers_result_t result;
4797 4816
4798 e1000e_disable_l1aspm(pdev); 4817 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1)
4818 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4799 err = pci_enable_device_mem(pdev); 4819 err = pci_enable_device_mem(pdev);
4800 if (err) { 4820 if (err) {
4801 dev_err(&pdev->dev, 4821 dev_err(&pdev->dev,
@@ -4889,13 +4909,6 @@ static void e1000_eeprom_checks(struct e1000_adapter *adapter)
4889 dev_warn(&adapter->pdev->dev, 4909 dev_warn(&adapter->pdev->dev,
4890 "Warning: detected DSPD enabled in EEPROM\n"); 4910 "Warning: detected DSPD enabled in EEPROM\n");
4891 } 4911 }
4892
4893 ret_val = e1000_read_nvm(hw, NVM_INIT_3GIO_3, 1, &buf);
4894 if (!ret_val && (le16_to_cpu(buf) & (3 << 2))) {
4895 /* ASPM enable */
4896 dev_warn(&adapter->pdev->dev,
4897 "Warning: detected ASPM enabled in EEPROM\n");
4898 }
4899} 4912}
4900 4913
4901static const struct net_device_ops e1000e_netdev_ops = { 4914static const struct net_device_ops e1000e_netdev_ops = {
@@ -4944,7 +4957,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4944 u16 eeprom_data = 0; 4957 u16 eeprom_data = 0;
4945 u16 eeprom_apme_mask = E1000_EEPROM_APME; 4958 u16 eeprom_apme_mask = E1000_EEPROM_APME;
4946 4959
4947 e1000e_disable_l1aspm(pdev); 4960 if (ei->flags2 & FLAG2_DISABLE_ASPM_L1)
4961 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4948 4962
4949 err = pci_enable_device_mem(pdev); 4963 err = pci_enable_device_mem(pdev);
4950 if (err) 4964 if (err)
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c
index d5160edf2fcf..3acac5f930c8 100644
--- a/drivers/net/fsl_pq_mdio.c
+++ b/drivers/net/fsl_pq_mdio.c
@@ -205,8 +205,6 @@ static int fsl_pq_mdio_find_free(struct mii_bus *new_bus)
205static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np) 205static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np)
206{ 206{
207 struct gfar __iomem *enet_regs; 207 struct gfar __iomem *enet_regs;
208 u32 __iomem *ioremap_tbipa;
209 u64 addr, size;
210 208
211 /* 209 /*
212 * This is mildly evil, but so is our hardware for doing this. 210 * This is mildly evil, but so is our hardware for doing this.
@@ -220,9 +218,7 @@ static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct devi
220 return &enet_regs->tbipa; 218 return &enet_regs->tbipa;
221 } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") || 219 } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") ||
222 of_device_is_compatible(np, "fsl,etsec2-tbi")) { 220 of_device_is_compatible(np, "fsl,etsec2-tbi")) {
223 addr = of_translate_address(np, of_get_address(np, 1, &size, NULL)); 221 return of_iomap(np, 1);
224 ioremap_tbipa = ioremap(addr, size);
225 return ioremap_tbipa;
226 } else 222 } else
227 return NULL; 223 return NULL;
228} 224}
@@ -279,6 +275,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
279 u32 __iomem *tbipa; 275 u32 __iomem *tbipa;
280 struct mii_bus *new_bus; 276 struct mii_bus *new_bus;
281 int tbiaddr = -1; 277 int tbiaddr = -1;
278 const u32 *addrp;
282 u64 addr = 0, size = 0; 279 u64 addr = 0, size = 0;
283 int err = 0; 280 int err = 0;
284 281
@@ -297,8 +294,19 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
297 new_bus->priv = priv; 294 new_bus->priv = priv;
298 fsl_pq_mdio_bus_name(new_bus->id, np); 295 fsl_pq_mdio_bus_name(new_bus->id, np);
299 296
297 addrp = of_get_address(np, 0, &size, NULL);
298 if (!addrp) {
299 err = -EINVAL;
300 goto err_free_bus;
301 }
302
300 /* Set the PHY base address */ 303 /* Set the PHY base address */
301 addr = of_translate_address(np, of_get_address(np, 0, &size, NULL)); 304 addr = of_translate_address(np, addrp);
305 if (addr == OF_BAD_ADDR) {
306 err = -EINVAL;
307 goto err_free_bus;
308 }
309
302 map = ioremap(addr, size); 310 map = ioremap(addr, size);
303 if (!map) { 311 if (!map) {
304 err = -ENOMEM; 312 err = -ENOMEM;
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 080d1cea5b26..4e97ca182997 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -549,12 +549,8 @@ static int gfar_parse_group(struct device_node *np,
549 struct gfar_private *priv, const char *model) 549 struct gfar_private *priv, const char *model)
550{ 550{
551 u32 *queue_mask; 551 u32 *queue_mask;
552 u64 addr, size;
553
554 addr = of_translate_address(np,
555 of_get_address(np, 0, &size, NULL));
556 priv->gfargrp[priv->num_grps].regs = ioremap(addr, size);
557 552
553 priv->gfargrp[priv->num_grps].regs = of_iomap(np, 0);
558 if (!priv->gfargrp[priv->num_grps].regs) 554 if (!priv->gfargrp[priv->num_grps].regs)
559 return -ENOMEM; 555 return -ENOMEM;
560 556
@@ -1515,9 +1511,9 @@ static void gfar_halt_nodisable(struct net_device *dev)
1515 tempval |= (DMACTRL_GRS | DMACTRL_GTS); 1511 tempval |= (DMACTRL_GRS | DMACTRL_GTS);
1516 gfar_write(&regs->dmactrl, tempval); 1512 gfar_write(&regs->dmactrl, tempval);
1517 1513
1518 while (!(gfar_read(&regs->ievent) & 1514 spin_event_timeout(((gfar_read(&regs->ievent) &
1519 (IEVENT_GRSC | IEVENT_GTSC))) 1515 (IEVENT_GRSC | IEVENT_GTSC)) ==
1520 cpu_relax(); 1516 (IEVENT_GRSC | IEVENT_GTSC)), -1, 0);
1521 } 1517 }
1522} 1518}
1523 1519
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c
index b405a00817c6..12fc0e7ba2ca 100644
--- a/drivers/net/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ixgbe/ixgbe_82599.c
@@ -39,6 +39,8 @@
39#define IXGBE_82599_MC_TBL_SIZE 128 39#define IXGBE_82599_MC_TBL_SIZE 128
40#define IXGBE_82599_VFT_TBL_SIZE 128 40#define IXGBE_82599_VFT_TBL_SIZE 128
41 41
42void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
43void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
42void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw); 44void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
43s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw, 45s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
44 ixgbe_link_speed speed, 46 ixgbe_link_speed speed,
@@ -69,8 +71,14 @@ static void ixgbe_init_mac_link_ops_82599(struct ixgbe_hw *hw)
69 if (hw->phy.multispeed_fiber) { 71 if (hw->phy.multispeed_fiber) {
70 /* Set up dual speed SFP+ support */ 72 /* Set up dual speed SFP+ support */
71 mac->ops.setup_link = &ixgbe_setup_mac_link_multispeed_fiber; 73 mac->ops.setup_link = &ixgbe_setup_mac_link_multispeed_fiber;
74 mac->ops.disable_tx_laser =
75 &ixgbe_disable_tx_laser_multispeed_fiber;
76 mac->ops.enable_tx_laser =
77 &ixgbe_enable_tx_laser_multispeed_fiber;
72 mac->ops.flap_tx_laser = &ixgbe_flap_tx_laser_multispeed_fiber; 78 mac->ops.flap_tx_laser = &ixgbe_flap_tx_laser_multispeed_fiber;
73 } else { 79 } else {
80 mac->ops.disable_tx_laser = NULL;
81 mac->ops.enable_tx_laser = NULL;
74 mac->ops.flap_tx_laser = NULL; 82 mac->ops.flap_tx_laser = NULL;
75 if ((mac->ops.get_media_type(hw) == 83 if ((mac->ops.get_media_type(hw) ==
76 ixgbe_media_type_backplane) && 84 ixgbe_media_type_backplane) &&
@@ -415,6 +423,44 @@ s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw,
415 return status; 423 return status;
416} 424}
417 425
426 /**
427 * ixgbe_disable_tx_laser_multispeed_fiber - Disable Tx laser
428 * @hw: pointer to hardware structure
429 *
430 * The base drivers may require better control over SFP+ module
431 * PHY states. This includes selectively shutting down the Tx
432 * laser on the PHY, effectively halting physical link.
433 **/
434void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
435{
436 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
437
438 /* Disable tx laser; allow 100us to go dark per spec */
439 esdp_reg |= IXGBE_ESDP_SDP3;
440 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
441 IXGBE_WRITE_FLUSH(hw);
442 udelay(100);
443}
444
445/**
446 * ixgbe_enable_tx_laser_multispeed_fiber - Enable Tx laser
447 * @hw: pointer to hardware structure
448 *
449 * The base drivers may require better control over SFP+ module
450 * PHY states. This includes selectively turning on the Tx
451 * laser on the PHY, effectively starting physical link.
452 **/
453void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
454{
455 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
456
457 /* Enable tx laser; allow 100ms to light up */
458 esdp_reg &= ~IXGBE_ESDP_SDP3;
459 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
460 IXGBE_WRITE_FLUSH(hw);
461 msleep(100);
462}
463
418/** 464/**
419 * ixgbe_flap_tx_laser_multispeed_fiber - Flap Tx laser 465 * ixgbe_flap_tx_laser_multispeed_fiber - Flap Tx laser
420 * @hw: pointer to hardware structure 466 * @hw: pointer to hardware structure
@@ -429,23 +475,11 @@ s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw,
429 **/ 475 **/
430void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw) 476void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
431{ 477{
432 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
433
434 hw_dbg(hw, "ixgbe_flap_tx_laser_multispeed_fiber\n"); 478 hw_dbg(hw, "ixgbe_flap_tx_laser_multispeed_fiber\n");
435 479
436 if (hw->mac.autotry_restart) { 480 if (hw->mac.autotry_restart) {
437 /* Disable tx laser; allow 100us to go dark per spec */ 481 ixgbe_disable_tx_laser_multispeed_fiber(hw);
438 esdp_reg |= IXGBE_ESDP_SDP3; 482 ixgbe_enable_tx_laser_multispeed_fiber(hw);
439 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
440 IXGBE_WRITE_FLUSH(hw);
441 udelay(100);
442
443 /* Enable tx laser; allow 100ms to light up */
444 esdp_reg &= ~IXGBE_ESDP_SDP3;
445 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
446 IXGBE_WRITE_FLUSH(hw);
447 msleep(100);
448
449 hw->mac.autotry_restart = false; 483 hw->mac.autotry_restart = false;
450 } 484 }
451} 485}
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 8f677cb86290..6c00ee493a3b 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2982,6 +2982,10 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
2982 else 2982 else
2983 ixgbe_configure_msi_and_legacy(adapter); 2983 ixgbe_configure_msi_and_legacy(adapter);
2984 2984
2985 /* enable the optics */
2986 if (hw->phy.multispeed_fiber)
2987 hw->mac.ops.enable_tx_laser(hw);
2988
2985 clear_bit(__IXGBE_DOWN, &adapter->state); 2989 clear_bit(__IXGBE_DOWN, &adapter->state);
2986 ixgbe_napi_enable_all(adapter); 2990 ixgbe_napi_enable_all(adapter);
2987 2991
@@ -3243,6 +3247,10 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
3243 /* signal that we are down to the interrupt handler */ 3247 /* signal that we are down to the interrupt handler */
3244 set_bit(__IXGBE_DOWN, &adapter->state); 3248 set_bit(__IXGBE_DOWN, &adapter->state);
3245 3249
3250 /* power down the optics */
3251 if (hw->phy.multispeed_fiber)
3252 hw->mac.ops.disable_tx_laser(hw);
3253
3246 /* disable receive for all VFs and wait one second */ 3254 /* disable receive for all VFs and wait one second */
3247 if (adapter->num_vfs) { 3255 if (adapter->num_vfs) {
3248 /* ping all the active vfs to let them know we are going down */ 3256 /* ping all the active vfs to let them know we are going down */
@@ -6253,6 +6261,10 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
6253 goto err_eeprom; 6261 goto err_eeprom;
6254 } 6262 }
6255 6263
6264 /* power down the optics */
6265 if (hw->phy.multispeed_fiber)
6266 hw->mac.ops.disable_tx_laser(hw);
6267
6256 init_timer(&adapter->watchdog_timer); 6268 init_timer(&adapter->watchdog_timer);
6257 adapter->watchdog_timer.function = &ixgbe_watchdog; 6269 adapter->watchdog_timer.function = &ixgbe_watchdog;
6258 adapter->watchdog_timer.data = (unsigned long)adapter; 6270 adapter->watchdog_timer.data = (unsigned long)adapter;
@@ -6400,16 +6412,6 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
6400 del_timer_sync(&adapter->sfp_timer); 6412 del_timer_sync(&adapter->sfp_timer);
6401 cancel_work_sync(&adapter->watchdog_task); 6413 cancel_work_sync(&adapter->watchdog_task);
6402 cancel_work_sync(&adapter->sfp_task); 6414 cancel_work_sync(&adapter->sfp_task);
6403 if (adapter->hw.phy.multispeed_fiber) {
6404 struct ixgbe_hw *hw = &adapter->hw;
6405 /*
6406 * Restart clause 37 autoneg, disable and re-enable
6407 * the tx laser, to clear & alert the link partner
6408 * that it needs to restart autotry
6409 */
6410 hw->mac.autotry_restart = true;
6411 hw->mac.ops.flap_tx_laser(hw);
6412 }
6413 cancel_work_sync(&adapter->multispeed_fiber_task); 6415 cancel_work_sync(&adapter->multispeed_fiber_task);
6414 cancel_work_sync(&adapter->sfp_config_module_task); 6416 cancel_work_sync(&adapter->sfp_config_module_task);
6415 if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE || 6417 if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE ||
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h
index 4ec6dc1a5b75..534affcc38ca 100644
--- a/drivers/net/ixgbe/ixgbe_type.h
+++ b/drivers/net/ixgbe/ixgbe_type.h
@@ -2398,6 +2398,8 @@ struct ixgbe_mac_operations {
2398 s32 (*enable_rx_dma)(struct ixgbe_hw *, u32); 2398 s32 (*enable_rx_dma)(struct ixgbe_hw *, u32);
2399 2399
2400 /* Link */ 2400 /* Link */
2401 void (*disable_tx_laser)(struct ixgbe_hw *);
2402 void (*enable_tx_laser)(struct ixgbe_hw *);
2401 void (*flap_tx_laser)(struct ixgbe_hw *); 2403 void (*flap_tx_laser)(struct ixgbe_hw *);
2402 s32 (*setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool, bool); 2404 s32 (*setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool, bool);
2403 s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool); 2405 s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool);
diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c
index 13cc1ca261d9..9e9f9b349766 100644
--- a/drivers/net/ks8851.c
+++ b/drivers/net/ks8851.c
@@ -722,12 +722,14 @@ static void ks8851_tx_work(struct work_struct *work)
722 txb = skb_dequeue(&ks->txq); 722 txb = skb_dequeue(&ks->txq);
723 last = skb_queue_empty(&ks->txq); 723 last = skb_queue_empty(&ks->txq);
724 724
725 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA); 725 if (txb != NULL) {
726 ks8851_wrpkt(ks, txb, last); 726 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA);
727 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr); 727 ks8851_wrpkt(ks, txb, last);
728 ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE); 728 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr);
729 ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE);
729 730
730 ks8851_done_tx(ks, txb); 731 ks8851_done_tx(ks, txb);
732 }
731 } 733 }
732 734
733 mutex_unlock(&ks->lock); 735 mutex_unlock(&ks->lock);
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 3d1d3a7b7ed3..757f87bb1db3 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -781,8 +781,13 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
781 inw(ioaddr + EL3_STATUS)); 781 inw(ioaddr + EL3_STATUS));
782 782
783 spin_lock_irqsave(&lp->window_lock, flags); 783 spin_lock_irqsave(&lp->window_lock, flags);
784
785 dev->stats.tx_bytes += skb->len;
786
787 /* Put out the doubleword header... */
784 outw(skb->len, ioaddr + TX_FIFO); 788 outw(skb->len, ioaddr + TX_FIFO);
785 outw(0, ioaddr + TX_FIFO); 789 outw(0, ioaddr + TX_FIFO);
790 /* ... and the packet rounded to a doubleword. */
786 outsl(ioaddr + TX_FIFO, skb->data, (skb->len+3)>>2); 791 outsl(ioaddr + TX_FIFO, skb->data, (skb->len+3)>>2);
787 792
788 dev->trans_start = jiffies; 793 dev->trans_start = jiffies;
@@ -1021,8 +1026,6 @@ static void update_stats(struct net_device *dev)
1021 /* BadSSD */ inb(ioaddr + 12); 1026 /* BadSSD */ inb(ioaddr + 12);
1022 up = inb(ioaddr + 13); 1027 up = inb(ioaddr + 13);
1023 1028
1024 dev->stats.tx_bytes += tx + ((up & 0xf0) << 12);
1025
1026 EL3WINDOW(1); 1029 EL3WINDOW(1);
1027} 1030}
1028 1031
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index fd9d6e34fda4..ccc553782a0d 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -1804,23 +1804,30 @@ static void media_check(u_long arg)
1804 SMC_SELECT_BANK(1); 1804 SMC_SELECT_BANK(1);
1805 media |= (inw(ioaddr + CONFIG) & CFG_AUI_SELECT) ? 2 : 1; 1805 media |= (inw(ioaddr + CONFIG) & CFG_AUI_SELECT) ? 2 : 1;
1806 1806
1807 SMC_SELECT_BANK(saved_bank);
1808 spin_unlock_irqrestore(&smc->lock, flags);
1809
1807 /* Check for pending interrupt with watchdog flag set: with 1810 /* Check for pending interrupt with watchdog flag set: with
1808 this, we can limp along even if the interrupt is blocked */ 1811 this, we can limp along even if the interrupt is blocked */
1809 if (smc->watchdog++ && ((i>>8) & i)) { 1812 if (smc->watchdog++ && ((i>>8) & i)) {
1810 if (!smc->fast_poll) 1813 if (!smc->fast_poll)
1811 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1814 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1815 local_irq_save(flags);
1812 smc_interrupt(dev->irq, dev); 1816 smc_interrupt(dev->irq, dev);
1817 local_irq_restore(flags);
1813 smc->fast_poll = HZ; 1818 smc->fast_poll = HZ;
1814 } 1819 }
1815 if (smc->fast_poll) { 1820 if (smc->fast_poll) {
1816 smc->fast_poll--; 1821 smc->fast_poll--;
1817 smc->media.expires = jiffies + HZ/100; 1822 smc->media.expires = jiffies + HZ/100;
1818 add_timer(&smc->media); 1823 add_timer(&smc->media);
1819 SMC_SELECT_BANK(saved_bank);
1820 spin_unlock_irqrestore(&smc->lock, flags);
1821 return; 1824 return;
1822 } 1825 }
1823 1826
1827 spin_lock_irqsave(&smc->lock, flags);
1828
1829 saved_bank = inw(ioaddr + BANK_SELECT);
1830
1824 if (smc->cfg & CFG_MII_SELECT) { 1831 if (smc->cfg & CFG_MII_SELECT) {
1825 if (smc->mii_if.phy_id < 0) 1832 if (smc->mii_if.phy_id < 0)
1826 goto reschedule; 1833 goto reschedule;
@@ -1978,15 +1985,16 @@ static int smc_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
1978 unsigned int ioaddr = dev->base_addr; 1985 unsigned int ioaddr = dev->base_addr;
1979 u16 saved_bank = inw(ioaddr + BANK_SELECT); 1986 u16 saved_bank = inw(ioaddr + BANK_SELECT);
1980 int ret; 1987 int ret;
1988 unsigned long flags;
1981 1989
1982 spin_lock_irq(&smc->lock); 1990 spin_lock_irqsave(&smc->lock, flags);
1983 SMC_SELECT_BANK(3); 1991 SMC_SELECT_BANK(3);
1984 if (smc->cfg & CFG_MII_SELECT) 1992 if (smc->cfg & CFG_MII_SELECT)
1985 ret = mii_ethtool_gset(&smc->mii_if, ecmd); 1993 ret = mii_ethtool_gset(&smc->mii_if, ecmd);
1986 else 1994 else
1987 ret = smc_netdev_get_ecmd(dev, ecmd); 1995 ret = smc_netdev_get_ecmd(dev, ecmd);
1988 SMC_SELECT_BANK(saved_bank); 1996 SMC_SELECT_BANK(saved_bank);
1989 spin_unlock_irq(&smc->lock); 1997 spin_unlock_irqrestore(&smc->lock, flags);
1990 return ret; 1998 return ret;
1991} 1999}
1992 2000
@@ -1996,15 +2004,16 @@ static int smc_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
1996 unsigned int ioaddr = dev->base_addr; 2004 unsigned int ioaddr = dev->base_addr;
1997 u16 saved_bank = inw(ioaddr + BANK_SELECT); 2005 u16 saved_bank = inw(ioaddr + BANK_SELECT);
1998 int ret; 2006 int ret;
2007 unsigned long flags;
1999 2008
2000 spin_lock_irq(&smc->lock); 2009 spin_lock_irqsave(&smc->lock, flags);
2001 SMC_SELECT_BANK(3); 2010 SMC_SELECT_BANK(3);
2002 if (smc->cfg & CFG_MII_SELECT) 2011 if (smc->cfg & CFG_MII_SELECT)
2003 ret = mii_ethtool_sset(&smc->mii_if, ecmd); 2012 ret = mii_ethtool_sset(&smc->mii_if, ecmd);
2004 else 2013 else
2005 ret = smc_netdev_set_ecmd(dev, ecmd); 2014 ret = smc_netdev_set_ecmd(dev, ecmd);
2006 SMC_SELECT_BANK(saved_bank); 2015 SMC_SELECT_BANK(saved_bank);
2007 spin_unlock_irq(&smc->lock); 2016 spin_unlock_irqrestore(&smc->lock, flags);
2008 return ret; 2017 return ret;
2009} 2018}
2010 2019
@@ -2014,12 +2023,13 @@ static u32 smc_get_link(struct net_device *dev)
2014 unsigned int ioaddr = dev->base_addr; 2023 unsigned int ioaddr = dev->base_addr;
2015 u16 saved_bank = inw(ioaddr + BANK_SELECT); 2024 u16 saved_bank = inw(ioaddr + BANK_SELECT);
2016 u32 ret; 2025 u32 ret;
2026 unsigned long flags;
2017 2027
2018 spin_lock_irq(&smc->lock); 2028 spin_lock_irqsave(&smc->lock, flags);
2019 SMC_SELECT_BANK(3); 2029 SMC_SELECT_BANK(3);
2020 ret = smc_link_ok(dev); 2030 ret = smc_link_ok(dev);
2021 SMC_SELECT_BANK(saved_bank); 2031 SMC_SELECT_BANK(saved_bank);
2022 spin_unlock_irq(&smc->lock); 2032 spin_unlock_irqrestore(&smc->lock, flags);
2023 return ret; 2033 return ret;
2024} 2034}
2025 2035
@@ -2056,16 +2066,17 @@ static int smc_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
2056 int rc = 0; 2066 int rc = 0;
2057 u16 saved_bank; 2067 u16 saved_bank;
2058 unsigned int ioaddr = dev->base_addr; 2068 unsigned int ioaddr = dev->base_addr;
2069 unsigned long flags;
2059 2070
2060 if (!netif_running(dev)) 2071 if (!netif_running(dev))
2061 return -EINVAL; 2072 return -EINVAL;
2062 2073
2063 spin_lock_irq(&smc->lock); 2074 spin_lock_irqsave(&smc->lock, flags);
2064 saved_bank = inw(ioaddr + BANK_SELECT); 2075 saved_bank = inw(ioaddr + BANK_SELECT);
2065 SMC_SELECT_BANK(3); 2076 SMC_SELECT_BANK(3);
2066 rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL); 2077 rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL);
2067 SMC_SELECT_BANK(saved_bank); 2078 SMC_SELECT_BANK(saved_bank);
2068 spin_unlock_irq(&smc->lock); 2079 spin_unlock_irqrestore(&smc->lock, flags);
2069 return rc; 2080 return rc;
2070} 2081}
2071 2082
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index dbb1f5a1824c..4748c21eb72e 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2759,6 +2759,7 @@ static void rtl8169_release_board(struct pci_dev *pdev, struct net_device *dev,
2759{ 2759{
2760 iounmap(ioaddr); 2760 iounmap(ioaddr);
2761 pci_release_regions(pdev); 2761 pci_release_regions(pdev);
2762 pci_clear_mwi(pdev);
2762 pci_disable_device(pdev); 2763 pci_disable_device(pdev);
2763 free_netdev(dev); 2764 free_netdev(dev);
2764} 2765}
@@ -2825,8 +2826,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
2825 spin_lock_irq(&tp->lock); 2826 spin_lock_irq(&tp->lock);
2826 2827
2827 RTL_W8(Cfg9346, Cfg9346_Unlock); 2828 RTL_W8(Cfg9346, Cfg9346_Unlock);
2829
2828 RTL_W32(MAC4, high); 2830 RTL_W32(MAC4, high);
2831 RTL_R32(MAC4);
2832
2829 RTL_W32(MAC0, low); 2833 RTL_W32(MAC0, low);
2834 RTL_R32(MAC0);
2835
2830 RTL_W8(Cfg9346, Cfg9346_Lock); 2836 RTL_W8(Cfg9346, Cfg9346_Lock);
2831 2837
2832 spin_unlock_irq(&tp->lock); 2838 spin_unlock_irq(&tp->lock);
@@ -3014,9 +3020,8 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3014 goto err_out_free_dev_1; 3020 goto err_out_free_dev_1;
3015 } 3021 }
3016 3022
3017 rc = pci_set_mwi(pdev); 3023 if (pci_set_mwi(pdev) < 0)
3018 if (rc < 0) 3024 netif_info(tp, probe, dev, "Mem-Wr-Inval unavailable\n");
3019 goto err_out_disable_2;
3020 3025
3021 /* make sure PCI base addr 1 is MMIO */ 3026 /* make sure PCI base addr 1 is MMIO */
3022 if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) { 3027 if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) {
@@ -3024,7 +3029,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3024 "region #%d not an MMIO resource, aborting\n", 3029 "region #%d not an MMIO resource, aborting\n",
3025 region); 3030 region);
3026 rc = -ENODEV; 3031 rc = -ENODEV;
3027 goto err_out_mwi_3; 3032 goto err_out_mwi_2;
3028 } 3033 }
3029 3034
3030 /* check for weird/broken PCI region reporting */ 3035 /* check for weird/broken PCI region reporting */
@@ -3032,13 +3037,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3032 netif_err(tp, probe, dev, 3037 netif_err(tp, probe, dev,
3033 "Invalid PCI region size(s), aborting\n"); 3038 "Invalid PCI region size(s), aborting\n");
3034 rc = -ENODEV; 3039 rc = -ENODEV;
3035 goto err_out_mwi_3; 3040 goto err_out_mwi_2;
3036 } 3041 }
3037 3042
3038 rc = pci_request_regions(pdev, MODULENAME); 3043 rc = pci_request_regions(pdev, MODULENAME);
3039 if (rc < 0) { 3044 if (rc < 0) {
3040 netif_err(tp, probe, dev, "could not request regions\n"); 3045 netif_err(tp, probe, dev, "could not request regions\n");
3041 goto err_out_mwi_3; 3046 goto err_out_mwi_2;
3042 } 3047 }
3043 3048
3044 tp->cp_cmd = PCIMulRW | RxChkSum; 3049 tp->cp_cmd = PCIMulRW | RxChkSum;
@@ -3051,7 +3056,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3051 rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); 3056 rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
3052 if (rc < 0) { 3057 if (rc < 0) {
3053 netif_err(tp, probe, dev, "DMA configuration failed\n"); 3058 netif_err(tp, probe, dev, "DMA configuration failed\n");
3054 goto err_out_free_res_4; 3059 goto err_out_free_res_3;
3055 } 3060 }
3056 } 3061 }
3057 3062
@@ -3060,7 +3065,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3060 if (!ioaddr) { 3065 if (!ioaddr) {
3061 netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n"); 3066 netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n");
3062 rc = -EIO; 3067 rc = -EIO;
3063 goto err_out_free_res_4; 3068 goto err_out_free_res_3;
3064 } 3069 }
3065 3070
3066 tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); 3071 tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP);
@@ -3102,7 +3107,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3102 if (i == ARRAY_SIZE(rtl_chip_info)) { 3107 if (i == ARRAY_SIZE(rtl_chip_info)) {
3103 dev_err(&pdev->dev, 3108 dev_err(&pdev->dev,
3104 "driver bug, MAC version not found in rtl_chip_info\n"); 3109 "driver bug, MAC version not found in rtl_chip_info\n");
3105 goto err_out_msi_5; 3110 goto err_out_msi_4;
3106 } 3111 }
3107 tp->chipset = i; 3112 tp->chipset = i;
3108 3113
@@ -3167,7 +3172,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3167 3172
3168 rc = register_netdev(dev); 3173 rc = register_netdev(dev);
3169 if (rc < 0) 3174 if (rc < 0)
3170 goto err_out_msi_5; 3175 goto err_out_msi_4;
3171 3176
3172 pci_set_drvdata(pdev, dev); 3177 pci_set_drvdata(pdev, dev);
3173 3178
@@ -3190,14 +3195,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3190out: 3195out:
3191 return rc; 3196 return rc;
3192 3197
3193err_out_msi_5: 3198err_out_msi_4:
3194 rtl_disable_msi(pdev, tp); 3199 rtl_disable_msi(pdev, tp);
3195 iounmap(ioaddr); 3200 iounmap(ioaddr);
3196err_out_free_res_4: 3201err_out_free_res_3:
3197 pci_release_regions(pdev); 3202 pci_release_regions(pdev);
3198err_out_mwi_3: 3203err_out_mwi_2:
3199 pci_clear_mwi(pdev); 3204 pci_clear_mwi(pdev);
3200err_out_disable_2:
3201 pci_disable_device(pdev); 3205 pci_disable_device(pdev);
3202err_out_free_dev_1: 3206err_out_free_dev_1:
3203 free_netdev(dev); 3207 free_netdev(dev);
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index 6486657c47b8..649a264d6a81 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -1861,6 +1861,7 @@ out:
1861 } 1861 }
1862 1862
1863 if (disabled) { 1863 if (disabled) {
1864 dev_close(efx->net_dev);
1864 EFX_ERR(efx, "has been disabled\n"); 1865 EFX_ERR(efx, "has been disabled\n");
1865 efx->state = STATE_DISABLED; 1866 efx->state = STATE_DISABLED;
1866 } else { 1867 } else {
@@ -1884,8 +1885,7 @@ static void efx_reset_work(struct work_struct *data)
1884 } 1885 }
1885 1886
1886 rtnl_lock(); 1887 rtnl_lock();
1887 if (efx_reset(efx, efx->reset_pending)) 1888 (void)efx_reset(efx, efx->reset_pending);
1888 dev_close(efx->net_dev);
1889 rtnl_unlock(); 1889 rtnl_unlock();
1890} 1890}
1891 1891
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index d294d66fd600..08278e7302b3 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -1320,7 +1320,9 @@ static int falcon_probe_nvconfig(struct efx_nic *efx)
1320 1320
1321 EFX_LOG(efx, "PHY is %d phy_id %d\n", efx->phy_type, efx->mdio.prtad); 1321 EFX_LOG(efx, "PHY is %d phy_id %d\n", efx->phy_type, efx->mdio.prtad);
1322 1322
1323 falcon_probe_board(efx, board_rev); 1323 rc = falcon_probe_board(efx, board_rev);
1324 if (rc)
1325 goto fail2;
1324 1326
1325 kfree(nvconfig); 1327 kfree(nvconfig);
1326 return 0; 1328 return 0;
diff --git a/drivers/net/sfc/falcon_boards.c b/drivers/net/sfc/falcon_boards.c
index 5712fddd72f2..c7a933a3292e 100644
--- a/drivers/net/sfc/falcon_boards.c
+++ b/drivers/net/sfc/falcon_boards.c
@@ -728,15 +728,7 @@ static const struct falcon_board_type board_types[] = {
728 }, 728 },
729}; 729};
730 730
731static const struct falcon_board_type falcon_dummy_board = { 731int falcon_probe_board(struct efx_nic *efx, u16 revision_info)
732 .init = efx_port_dummy_op_int,
733 .init_phy = efx_port_dummy_op_void,
734 .fini = efx_port_dummy_op_void,
735 .set_id_led = efx_port_dummy_op_set_id_led,
736 .monitor = efx_port_dummy_op_int,
737};
738
739void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
740{ 732{
741 struct falcon_board *board = falcon_board(efx); 733 struct falcon_board *board = falcon_board(efx);
742 u8 type_id = FALCON_BOARD_TYPE(revision_info); 734 u8 type_id = FALCON_BOARD_TYPE(revision_info);
@@ -754,8 +746,9 @@ void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
754 (efx->pci_dev->subsystem_vendor == EFX_VENDID_SFC) 746 (efx->pci_dev->subsystem_vendor == EFX_VENDID_SFC)
755 ? board->type->ref_model : board->type->gen_type, 747 ? board->type->ref_model : board->type->gen_type,
756 'A' + board->major, board->minor); 748 'A' + board->major, board->minor);
749 return 0;
757 } else { 750 } else {
758 EFX_ERR(efx, "unknown board type %d\n", type_id); 751 EFX_ERR(efx, "unknown board type %d\n", type_id);
759 board->type = &falcon_dummy_board; 752 return -ENODEV;
760 } 753 }
761} 754}
diff --git a/drivers/net/sfc/nic.h b/drivers/net/sfc/nic.h
index 9351c0331a47..3166bafdfbef 100644
--- a/drivers/net/sfc/nic.h
+++ b/drivers/net/sfc/nic.h
@@ -156,7 +156,7 @@ extern struct efx_nic_type siena_a0_nic_type;
156 ************************************************************************** 156 **************************************************************************
157 */ 157 */
158 158
159extern void falcon_probe_board(struct efx_nic *efx, u16 revision_info); 159extern int falcon_probe_board(struct efx_nic *efx, u16 revision_info);
160 160
161/* TX data path */ 161/* TX data path */
162extern int efx_nic_probe_tx(struct efx_tx_queue *tx_queue); 162extern int efx_nic_probe_tx(struct efx_tx_queue *tx_queue);
diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c
index 38dcc42c4f79..e0c46f59d1f8 100644
--- a/drivers/net/sfc/siena.c
+++ b/drivers/net/sfc/siena.c
@@ -456,8 +456,17 @@ static int siena_try_update_nic_stats(struct efx_nic *efx)
456 456
457static void siena_update_nic_stats(struct efx_nic *efx) 457static void siena_update_nic_stats(struct efx_nic *efx)
458{ 458{
459 while (siena_try_update_nic_stats(efx) == -EAGAIN) 459 int retry;
460 cpu_relax(); 460
461 /* If we're unlucky enough to read statistics wduring the DMA, wait
462 * up to 10ms for it to finish (typically takes <500us) */
463 for (retry = 0; retry < 100; ++retry) {
464 if (siena_try_update_nic_stats(efx) == 0)
465 return;
466 udelay(100);
467 }
468
469 /* Use the old values instead */
461} 470}
462 471
463static void siena_start_nic_stats(struct efx_nic *efx) 472static void siena_start_nic_stats(struct efx_nic *efx)
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 22cf1c446de3..ecc41cffb470 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -8633,6 +8633,7 @@ static int tg3_test_msi(struct tg3 *tp)
8633 pci_disable_msi(tp->pdev); 8633 pci_disable_msi(tp->pdev);
8634 8634
8635 tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI; 8635 tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI;
8636 tp->napi[0].irq_vec = tp->pdev->irq;
8636 8637
8637 err = tg3_request_irq(tp, 0); 8638 err = tg3_request_irq(tp, 0);
8638 if (err) 8639 if (err)
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index ba56ce4382d9..5d58abc224f4 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -385,4 +385,26 @@ config USB_CDC_PHONET
385 cellular modem, as found on most Nokia handsets with the 385 cellular modem, as found on most Nokia handsets with the
386 "PC suite" USB profile. 386 "PC suite" USB profile.
387 387
388config USB_IPHETH
389 tristate "Apple iPhone USB Ethernet driver"
390 default n
391 ---help---
392 Module used to share Internet connection (tethering) from your
393 iPhone (Original, 3G and 3GS) to your system.
394 Note that you need userspace libraries and programs that are needed
395 to pair your device with your system and that understand the iPhone
396 protocol.
397
398 For more information: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
399
400config USB_SIERRA_NET
401 tristate "USB-to-WWAN Driver for Sierra Wireless modems"
402 depends on USB_USBNET
403 default y
404 help
405 Choose this option if you have a Sierra Wireless USB-to-WWAN device.
406
407 To compile this driver as a module, choose M here: the
408 module will be called sierra_net.
409
388endmenu 410endmenu
diff --git a/drivers/net/usb/Makefile b/drivers/net/usb/Makefile
index 82ea62955b56..b13a279663ba 100644
--- a/drivers/net/usb/Makefile
+++ b/drivers/net/usb/Makefile
@@ -23,4 +23,6 @@ obj-$(CONFIG_USB_NET_MCS7830) += mcs7830.o
23obj-$(CONFIG_USB_USBNET) += usbnet.o 23obj-$(CONFIG_USB_USBNET) += usbnet.o
24obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o 24obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o
25obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o 25obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o
26obj-$(CONFIG_USB_IPHETH) += ipheth.o
27obj-$(CONFIG_USB_SIERRA_NET) += sierra_net.o
26 28
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index c8cdb7f30adc..3547cf13d219 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -431,6 +431,7 @@ static const struct driver_info mbm_info = {
431 .bind = cdc_bind, 431 .bind = cdc_bind,
432 .unbind = usbnet_cdc_unbind, 432 .unbind = usbnet_cdc_unbind,
433 .status = cdc_status, 433 .status = cdc_status,
434 .manage_power = cdc_manage_power,
434}; 435};
435 436
436/*-------------------------------------------------------------------------*/ 437/*-------------------------------------------------------------------------*/
diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c
new file mode 100644
index 000000000000..418825d26f90
--- /dev/null
+++ b/drivers/net/usb/ipheth.c
@@ -0,0 +1,569 @@
1/*
2 * ipheth.c - Apple iPhone USB Ethernet driver
3 *
4 * Copyright (c) 2009 Diego Giagio <diego@giagio.com>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of GIAGIO.COM nor the names of its contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 *
19 * Alternatively, provided that this notice is retained in full, this
20 * software may be distributed under the terms of the GNU General
21 * Public License ("GPL") version 2, in which case the provisions of the
22 * GPL apply INSTEAD OF those given above.
23 *
24 * The provided data structures and external interfaces from this code
25 * are not restricted to be used by modules with a GPL compatible license.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38 * DAMAGE.
39 *
40 *
41 * Attention: iPhone device must be paired, otherwise it won't respond to our
42 * driver. For more info: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
43 *
44 */
45
46#include <linux/kernel.h>
47#include <linux/errno.h>
48#include <linux/init.h>
49#include <linux/slab.h>
50#include <linux/module.h>
51#include <linux/netdevice.h>
52#include <linux/etherdevice.h>
53#include <linux/ethtool.h>
54#include <linux/usb.h>
55#include <linux/workqueue.h>
56
57#define USB_VENDOR_APPLE 0x05ac
58#define USB_PRODUCT_IPHONE 0x1290
59#define USB_PRODUCT_IPHONE_3G 0x1292
60#define USB_PRODUCT_IPHONE_3GS 0x1294
61
62#define IPHETH_USBINTF_CLASS 255
63#define IPHETH_USBINTF_SUBCLASS 253
64#define IPHETH_USBINTF_PROTO 1
65
66#define IPHETH_BUF_SIZE 1516
67#define IPHETH_TX_TIMEOUT (5 * HZ)
68
69#define IPHETH_INTFNUM 2
70#define IPHETH_ALT_INTFNUM 1
71
72#define IPHETH_CTRL_ENDP 0x00
73#define IPHETH_CTRL_BUF_SIZE 0x40
74#define IPHETH_CTRL_TIMEOUT (5 * HZ)
75
76#define IPHETH_CMD_GET_MACADDR 0x00
77#define IPHETH_CMD_CARRIER_CHECK 0x45
78
79#define IPHETH_CARRIER_CHECK_TIMEOUT round_jiffies_relative(1 * HZ)
80#define IPHETH_CARRIER_ON 0x04
81
82static struct usb_device_id ipheth_table[] = {
83 { USB_DEVICE_AND_INTERFACE_INFO(
84 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE,
85 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
86 IPHETH_USBINTF_PROTO) },
87 { USB_DEVICE_AND_INTERFACE_INFO(
88 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3G,
89 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
90 IPHETH_USBINTF_PROTO) },
91 { USB_DEVICE_AND_INTERFACE_INFO(
92 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3GS,
93 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
94 IPHETH_USBINTF_PROTO) },
95 { }
96};
97MODULE_DEVICE_TABLE(usb, ipheth_table);
98
99struct ipheth_device {
100 struct usb_device *udev;
101 struct usb_interface *intf;
102 struct net_device *net;
103 struct sk_buff *tx_skb;
104 struct urb *tx_urb;
105 struct urb *rx_urb;
106 unsigned char *tx_buf;
107 unsigned char *rx_buf;
108 unsigned char *ctrl_buf;
109 u8 bulk_in;
110 u8 bulk_out;
111 struct delayed_work carrier_work;
112};
113
114static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags);
115
116static int ipheth_alloc_urbs(struct ipheth_device *iphone)
117{
118 struct urb *tx_urb = NULL;
119 struct urb *rx_urb = NULL;
120 u8 *tx_buf = NULL;
121 u8 *rx_buf = NULL;
122
123 tx_urb = usb_alloc_urb(0, GFP_KERNEL);
124 if (tx_urb == NULL)
125 goto error_nomem;
126
127 rx_urb = usb_alloc_urb(0, GFP_KERNEL);
128 if (rx_urb == NULL)
129 goto free_tx_urb;
130
131 tx_buf = usb_buffer_alloc(iphone->udev,
132 IPHETH_BUF_SIZE,
133 GFP_KERNEL,
134 &tx_urb->transfer_dma);
135 if (tx_buf == NULL)
136 goto free_rx_urb;
137
138 rx_buf = usb_buffer_alloc(iphone->udev,
139 IPHETH_BUF_SIZE,
140 GFP_KERNEL,
141 &rx_urb->transfer_dma);
142 if (rx_buf == NULL)
143 goto free_tx_buf;
144
145
146 iphone->tx_urb = tx_urb;
147 iphone->rx_urb = rx_urb;
148 iphone->tx_buf = tx_buf;
149 iphone->rx_buf = rx_buf;
150 return 0;
151
152free_tx_buf:
153 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, tx_buf,
154 tx_urb->transfer_dma);
155free_rx_urb:
156 usb_free_urb(rx_urb);
157free_tx_urb:
158 usb_free_urb(tx_urb);
159error_nomem:
160 return -ENOMEM;
161}
162
163static void ipheth_free_urbs(struct ipheth_device *iphone)
164{
165 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, iphone->rx_buf,
166 iphone->rx_urb->transfer_dma);
167 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, iphone->tx_buf,
168 iphone->tx_urb->transfer_dma);
169 usb_free_urb(iphone->rx_urb);
170 usb_free_urb(iphone->tx_urb);
171}
172
173static void ipheth_kill_urbs(struct ipheth_device *dev)
174{
175 usb_kill_urb(dev->tx_urb);
176 usb_kill_urb(dev->rx_urb);
177}
178
179static void ipheth_rcvbulk_callback(struct urb *urb)
180{
181 struct ipheth_device *dev;
182 struct sk_buff *skb;
183 int status;
184 char *buf;
185 int len;
186
187 dev = urb->context;
188 if (dev == NULL)
189 return;
190
191 status = urb->status;
192 switch (status) {
193 case -ENOENT:
194 case -ECONNRESET:
195 case -ESHUTDOWN:
196 return;
197 case 0:
198 break;
199 default:
200 err("%s: urb status: %d", __func__, urb->status);
201 return;
202 }
203
204 len = urb->actual_length;
205 buf = urb->transfer_buffer;
206
207 skb = dev_alloc_skb(NET_IP_ALIGN + len);
208 if (!skb) {
209 err("%s: dev_alloc_skb: -ENOMEM", __func__);
210 dev->net->stats.rx_dropped++;
211 return;
212 }
213
214 skb_reserve(skb, NET_IP_ALIGN);
215 memcpy(skb_put(skb, len), buf + NET_IP_ALIGN, len - NET_IP_ALIGN);
216 skb->dev = dev->net;
217 skb->protocol = eth_type_trans(skb, dev->net);
218
219 dev->net->stats.rx_packets++;
220 dev->net->stats.rx_bytes += len;
221
222 netif_rx(skb);
223 ipheth_rx_submit(dev, GFP_ATOMIC);
224}
225
226static void ipheth_sndbulk_callback(struct urb *urb)
227{
228 struct ipheth_device *dev;
229
230 dev = urb->context;
231 if (dev == NULL)
232 return;
233
234 if (urb->status != 0 &&
235 urb->status != -ENOENT &&
236 urb->status != -ECONNRESET &&
237 urb->status != -ESHUTDOWN)
238 err("%s: urb status: %d", __func__, urb->status);
239
240 dev_kfree_skb_irq(dev->tx_skb);
241 netif_wake_queue(dev->net);
242}
243
244static int ipheth_carrier_set(struct ipheth_device *dev)
245{
246 struct usb_device *udev = dev->udev;
247 int retval;
248
249 retval = usb_control_msg(udev,
250 usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
251 IPHETH_CMD_CARRIER_CHECK, /* request */
252 0xc0, /* request type */
253 0x00, /* value */
254 0x02, /* index */
255 dev->ctrl_buf, IPHETH_CTRL_BUF_SIZE,
256 IPHETH_CTRL_TIMEOUT);
257 if (retval < 0) {
258 err("%s: usb_control_msg: %d", __func__, retval);
259 return retval;
260 }
261
262 if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON)
263 netif_carrier_on(dev->net);
264 else
265 netif_carrier_off(dev->net);
266
267 return 0;
268}
269
270static void ipheth_carrier_check_work(struct work_struct *work)
271{
272 struct ipheth_device *dev = container_of(work, struct ipheth_device,
273 carrier_work.work);
274
275 ipheth_carrier_set(dev);
276 schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
277}
278
279static int ipheth_get_macaddr(struct ipheth_device *dev)
280{
281 struct usb_device *udev = dev->udev;
282 struct net_device *net = dev->net;
283 int retval;
284
285 retval = usb_control_msg(udev,
286 usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
287 IPHETH_CMD_GET_MACADDR, /* request */
288 0xc0, /* request type */
289 0x00, /* value */
290 0x02, /* index */
291 dev->ctrl_buf,
292 IPHETH_CTRL_BUF_SIZE,
293 IPHETH_CTRL_TIMEOUT);
294 if (retval < 0) {
295 err("%s: usb_control_msg: %d", __func__, retval);
296 } else if (retval < ETH_ALEN) {
297 err("%s: usb_control_msg: short packet: %d bytes",
298 __func__, retval);
299 retval = -EINVAL;
300 } else {
301 memcpy(net->dev_addr, dev->ctrl_buf, ETH_ALEN);
302 retval = 0;
303 }
304
305 return retval;
306}
307
308static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags)
309{
310 struct usb_device *udev = dev->udev;
311 int retval;
312
313 usb_fill_bulk_urb(dev->rx_urb, udev,
314 usb_rcvbulkpipe(udev, dev->bulk_in),
315 dev->rx_buf, IPHETH_BUF_SIZE,
316 ipheth_rcvbulk_callback,
317 dev);
318 dev->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
319
320 retval = usb_submit_urb(dev->rx_urb, mem_flags);
321 if (retval)
322 err("%s: usb_submit_urb: %d", __func__, retval);
323 return retval;
324}
325
326static int ipheth_open(struct net_device *net)
327{
328 struct ipheth_device *dev = netdev_priv(net);
329 struct usb_device *udev = dev->udev;
330 int retval = 0;
331
332 usb_set_interface(udev, IPHETH_INTFNUM, IPHETH_ALT_INTFNUM);
333
334 retval = ipheth_carrier_set(dev);
335 if (retval)
336 return retval;
337
338 retval = ipheth_rx_submit(dev, GFP_KERNEL);
339 if (retval)
340 return retval;
341
342 schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
343 netif_start_queue(net);
344 return retval;
345}
346
347static int ipheth_close(struct net_device *net)
348{
349 struct ipheth_device *dev = netdev_priv(net);
350
351 cancel_delayed_work_sync(&dev->carrier_work);
352 netif_stop_queue(net);
353 return 0;
354}
355
356static int ipheth_tx(struct sk_buff *skb, struct net_device *net)
357{
358 struct ipheth_device *dev = netdev_priv(net);
359 struct usb_device *udev = dev->udev;
360 int retval;
361
362 /* Paranoid */
363 if (skb->len > IPHETH_BUF_SIZE) {
364 WARN(1, "%s: skb too large: %d bytes", __func__, skb->len);
365 dev->net->stats.tx_dropped++;
366 dev_kfree_skb_irq(skb);
367 return NETDEV_TX_OK;
368 }
369
370 memcpy(dev->tx_buf, skb->data, skb->len);
371 if (skb->len < IPHETH_BUF_SIZE)
372 memset(dev->tx_buf + skb->len, 0, IPHETH_BUF_SIZE - skb->len);
373
374 usb_fill_bulk_urb(dev->tx_urb, udev,
375 usb_sndbulkpipe(udev, dev->bulk_out),
376 dev->tx_buf, IPHETH_BUF_SIZE,
377 ipheth_sndbulk_callback,
378 dev);
379 dev->tx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
380
381 retval = usb_submit_urb(dev->tx_urb, GFP_ATOMIC);
382 if (retval) {
383 err("%s: usb_submit_urb: %d", __func__, retval);
384 dev->net->stats.tx_errors++;
385 dev_kfree_skb_irq(skb);
386 } else {
387 dev->tx_skb = skb;
388
389 dev->net->stats.tx_packets++;
390 dev->net->stats.tx_bytes += skb->len;
391 netif_stop_queue(net);
392 }
393
394 return NETDEV_TX_OK;
395}
396
397static void ipheth_tx_timeout(struct net_device *net)
398{
399 struct ipheth_device *dev = netdev_priv(net);
400
401 err("%s: TX timeout", __func__);
402 dev->net->stats.tx_errors++;
403 usb_unlink_urb(dev->tx_urb);
404}
405
406static struct net_device_stats *ipheth_stats(struct net_device *net)
407{
408 struct ipheth_device *dev = netdev_priv(net);
409 return &dev->net->stats;
410}
411
412static u32 ipheth_ethtool_op_get_link(struct net_device *net)
413{
414 struct ipheth_device *dev = netdev_priv(net);
415 return netif_carrier_ok(dev->net);
416}
417
418static struct ethtool_ops ops = {
419 .get_link = ipheth_ethtool_op_get_link
420};
421
422static const struct net_device_ops ipheth_netdev_ops = {
423 .ndo_open = &ipheth_open,
424 .ndo_stop = &ipheth_close,
425 .ndo_start_xmit = &ipheth_tx,
426 .ndo_tx_timeout = &ipheth_tx_timeout,
427 .ndo_get_stats = &ipheth_stats,
428};
429
430static struct device_type ipheth_type = {
431 .name = "wwan",
432};
433
434static int ipheth_probe(struct usb_interface *intf,
435 const struct usb_device_id *id)
436{
437 struct usb_device *udev = interface_to_usbdev(intf);
438 struct usb_host_interface *hintf;
439 struct usb_endpoint_descriptor *endp;
440 struct ipheth_device *dev;
441 struct net_device *netdev;
442 int i;
443 int retval;
444
445 netdev = alloc_etherdev(sizeof(struct ipheth_device));
446 if (!netdev)
447 return -ENOMEM;
448
449 netdev->netdev_ops = &ipheth_netdev_ops;
450 netdev->watchdog_timeo = IPHETH_TX_TIMEOUT;
451 strcpy(netdev->name, "wwan%d");
452
453 dev = netdev_priv(netdev);
454 dev->udev = udev;
455 dev->net = netdev;
456 dev->intf = intf;
457
458 /* Set up endpoints */
459 hintf = usb_altnum_to_altsetting(intf, IPHETH_ALT_INTFNUM);
460 if (hintf == NULL) {
461 retval = -ENODEV;
462 err("Unable to find alternate settings interface");
463 goto err_endpoints;
464 }
465
466 for (i = 0; i < hintf->desc.bNumEndpoints; i++) {
467 endp = &hintf->endpoint[i].desc;
468 if (usb_endpoint_is_bulk_in(endp))
469 dev->bulk_in = endp->bEndpointAddress;
470 else if (usb_endpoint_is_bulk_out(endp))
471 dev->bulk_out = endp->bEndpointAddress;
472 }
473 if (!(dev->bulk_in && dev->bulk_out)) {
474 retval = -ENODEV;
475 err("Unable to find endpoints");
476 goto err_endpoints;
477 }
478
479 dev->ctrl_buf = kmalloc(IPHETH_CTRL_BUF_SIZE, GFP_KERNEL);
480 if (dev->ctrl_buf == NULL) {
481 retval = -ENOMEM;
482 goto err_alloc_ctrl_buf;
483 }
484
485 retval = ipheth_get_macaddr(dev);
486 if (retval)
487 goto err_get_macaddr;
488
489 INIT_DELAYED_WORK(&dev->carrier_work, ipheth_carrier_check_work);
490
491 retval = ipheth_alloc_urbs(dev);
492 if (retval) {
493 err("error allocating urbs: %d", retval);
494 goto err_alloc_urbs;
495 }
496
497 usb_set_intfdata(intf, dev);
498
499 SET_NETDEV_DEV(netdev, &intf->dev);
500 SET_ETHTOOL_OPS(netdev, &ops);
501 SET_NETDEV_DEVTYPE(netdev, &ipheth_type);
502
503 retval = register_netdev(netdev);
504 if (retval) {
505 err("error registering netdev: %d", retval);
506 retval = -EIO;
507 goto err_register_netdev;
508 }
509
510 dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
511 return 0;
512
513err_register_netdev:
514 ipheth_free_urbs(dev);
515err_alloc_urbs:
516err_get_macaddr:
517err_alloc_ctrl_buf:
518 kfree(dev->ctrl_buf);
519err_endpoints:
520 free_netdev(netdev);
521 return retval;
522}
523
524static void ipheth_disconnect(struct usb_interface *intf)
525{
526 struct ipheth_device *dev;
527
528 dev = usb_get_intfdata(intf);
529 if (dev != NULL) {
530 unregister_netdev(dev->net);
531 ipheth_kill_urbs(dev);
532 ipheth_free_urbs(dev);
533 kfree(dev->ctrl_buf);
534 free_netdev(dev->net);
535 }
536 usb_set_intfdata(intf, NULL);
537 dev_info(&intf->dev, "Apple iPhone USB Ethernet now disconnected\n");
538}
539
540static struct usb_driver ipheth_driver = {
541 .name = "ipheth",
542 .probe = ipheth_probe,
543 .disconnect = ipheth_disconnect,
544 .id_table = ipheth_table,
545};
546
547static int __init ipheth_init(void)
548{
549 int retval;
550
551 retval = usb_register(&ipheth_driver);
552 if (retval) {
553 err("usb_register failed: %d", retval);
554 return retval;
555 }
556 return 0;
557}
558
559static void __exit ipheth_exit(void)
560{
561 usb_deregister(&ipheth_driver);
562}
563
564module_init(ipheth_init);
565module_exit(ipheth_exit);
566
567MODULE_AUTHOR("Diego Giagio <diego@giagio.com>");
568MODULE_DESCRIPTION("Apple iPhone USB Ethernet driver");
569MODULE_LICENSE("Dual BSD/GPL");
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 52671ea043a7..c4c334d9770f 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -145,6 +145,7 @@ static struct usb_device_id usb_klsi_table[] = {
145 { USB_DEVICE(0x0707, 0x0100) }, /* SMC 2202USB */ 145 { USB_DEVICE(0x0707, 0x0100) }, /* SMC 2202USB */
146 { USB_DEVICE(0x07aa, 0x0001) }, /* Correga K.K. */ 146 { USB_DEVICE(0x07aa, 0x0001) }, /* Correga K.K. */
147 { USB_DEVICE(0x07b8, 0x4000) }, /* D-Link DU-E10 */ 147 { USB_DEVICE(0x07b8, 0x4000) }, /* D-Link DU-E10 */
148 { USB_DEVICE(0x07c9, 0xb010) }, /* Allied Telesyn AT-USB10 USB Ethernet Adapter */
148 { USB_DEVICE(0x0846, 0x1001) }, /* NetGear EA-101 */ 149 { USB_DEVICE(0x0846, 0x1001) }, /* NetGear EA-101 */
149 { USB_DEVICE(0x0846, 0x1002) }, /* NetGear EA-101 */ 150 { USB_DEVICE(0x0846, 0x1002) }, /* NetGear EA-101 */
150 { USB_DEVICE(0x085a, 0x0008) }, /* PortGear Ethernet Adapter */ 151 { USB_DEVICE(0x085a, 0x0008) }, /* PortGear Ethernet Adapter */
diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
new file mode 100644
index 000000000000..a44f9e0ea098
--- /dev/null
+++ b/drivers/net/usb/sierra_net.c
@@ -0,0 +1,1001 @@
1/*
2 * USB-to-WWAN Driver for Sierra Wireless modems
3 *
4 * Copyright (C) 2008, 2009, 2010 Paxton Smith, Matthew Safar, Rory Filer
5 * <linux@sierrawireless.com>
6 *
7 * Portions of this based on the cdc_ether driver by David Brownell (2003-2005)
8 * and Ole Andre Vadla Ravnas (ActiveSync) (2006).
9 *
10 * IMPORTANT DISCLAIMER: This driver is not commercially supported by
11 * Sierra Wireless. Use at your own risk.
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 */
27
28#define DRIVER_VERSION "v.2.0"
29#define DRIVER_AUTHOR "Paxton Smith, Matthew Safar, Rory Filer"
30#define DRIVER_DESC "USB-to-WWAN Driver for Sierra Wireless modems"
31static const char driver_name[] = "sierra_net";
32
33/* if defined debug messages enabled */
34/*#define DEBUG*/
35
36#include <linux/module.h>
37#include <linux/etherdevice.h>
38#include <linux/ethtool.h>
39#include <linux/mii.h>
40#include <linux/sched.h>
41#include <linux/timer.h>
42#include <linux/usb.h>
43#include <linux/usb/cdc.h>
44#include <net/ip.h>
45#include <net/udp.h>
46#include <asm/unaligned.h>
47#include <linux/usb/usbnet.h>
48
49#define SWI_USB_REQUEST_GET_FW_ATTR 0x06
50#define SWI_GET_FW_ATTR_MASK 0x08
51
52/* atomic counter partially included in MAC address to make sure 2 devices
53 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
54 */
55static atomic_t iface_counter = ATOMIC_INIT(0);
56
57/*
58 * SYNC Timer Delay definition used to set the expiry time
59 */
60#define SIERRA_NET_SYNCDELAY (2*HZ)
61
62/* Max. MTU supported. The modem buffers are limited to 1500 */
63#define SIERRA_NET_MAX_SUPPORTED_MTU 1500
64
65/* The SIERRA_NET_USBCTL_BUF_LEN defines a buffer size allocated for control
66 * message reception ... and thus the max. received packet.
67 * (May be the cause for parse_hip returning -EINVAL)
68 */
69#define SIERRA_NET_USBCTL_BUF_LEN 1024
70
71/* list of interface numbers - used for constructing interface lists */
72struct sierra_net_iface_info {
73 const u32 infolen; /* number of interface numbers on list */
74 const u8 *ifaceinfo; /* pointer to the array holding the numbers */
75};
76
77struct sierra_net_info_data {
78 u16 rx_urb_size;
79 struct sierra_net_iface_info whitelist;
80};
81
82/* Private data structure */
83struct sierra_net_data {
84
85 u8 ethr_hdr_tmpl[ETH_HLEN]; /* ethernet header template for rx'd pkts */
86
87 u16 link_up; /* air link up or down */
88 u8 tx_hdr_template[4]; /* part of HIP hdr for tx'd packets */
89
90 u8 sync_msg[4]; /* SYNC message */
91 u8 shdwn_msg[4]; /* Shutdown message */
92
93 /* Backpointer to the container */
94 struct usbnet *usbnet;
95
96 u8 ifnum; /* interface number */
97
98/* Bit masks, must be a power of 2 */
99#define SIERRA_NET_EVENT_RESP_AVAIL 0x01
100#define SIERRA_NET_TIMER_EXPIRY 0x02
101 unsigned long kevent_flags;
102 struct work_struct sierra_net_kevent;
103 struct timer_list sync_timer; /* For retrying SYNC sequence */
104};
105
106struct param {
107 int is_present;
108 union {
109 void *ptr;
110 u32 dword;
111 u16 word;
112 u8 byte;
113 };
114};
115
116/* HIP message type */
117#define SIERRA_NET_HIP_EXTENDEDID 0x7F
118#define SIERRA_NET_HIP_HSYNC_ID 0x60 /* Modem -> host */
119#define SIERRA_NET_HIP_RESTART_ID 0x62 /* Modem -> host */
120#define SIERRA_NET_HIP_MSYNC_ID 0x20 /* Host -> modem */
121#define SIERRA_NET_HIP_SHUTD_ID 0x26 /* Host -> modem */
122
123#define SIERRA_NET_HIP_EXT_IP_IN_ID 0x0202
124#define SIERRA_NET_HIP_EXT_IP_OUT_ID 0x0002
125
126/* 3G UMTS Link Sense Indication definitions */
127#define SIERRA_NET_HIP_LSI_UMTSID 0x78
128
129/* Reverse Channel Grant Indication HIP message */
130#define SIERRA_NET_HIP_RCGI 0x64
131
132/* LSI Protocol types */
133#define SIERRA_NET_PROTOCOL_UMTS 0x01
134/* LSI Coverage */
135#define SIERRA_NET_COVERAGE_NONE 0x00
136#define SIERRA_NET_COVERAGE_NOPACKET 0x01
137
138/* LSI Session */
139#define SIERRA_NET_SESSION_IDLE 0x00
140/* LSI Link types */
141#define SIERRA_NET_AS_LINK_TYPE_IPv4 0x00
142
143struct lsi_umts {
144 u8 protocol;
145 u8 unused1;
146 __be16 length;
147 /* eventually use a union for the rest - assume umts for now */
148 u8 coverage;
149 u8 unused2[41];
150 u8 session_state;
151 u8 unused3[33];
152 u8 link_type;
153 u8 pdp_addr_len; /* NW-supplied PDP address len */
154 u8 pdp_addr[16]; /* NW-supplied PDP address (bigendian)) */
155 u8 unused4[23];
156 u8 dns1_addr_len; /* NW-supplied 1st DNS address len (bigendian) */
157 u8 dns1_addr[16]; /* NW-supplied 1st DNS address */
158 u8 dns2_addr_len; /* NW-supplied 2nd DNS address len */
159 u8 dns2_addr[16]; /* NW-supplied 2nd DNS address (bigendian)*/
160 u8 wins1_addr_len; /* NW-supplied 1st Wins address len */
161 u8 wins1_addr[16]; /* NW-supplied 1st Wins address (bigendian)*/
162 u8 wins2_addr_len; /* NW-supplied 2nd Wins address len */
163 u8 wins2_addr[16]; /* NW-supplied 2nd Wins address (bigendian) */
164 u8 unused5[4];
165 u8 gw_addr_len; /* NW-supplied GW address len */
166 u8 gw_addr[16]; /* NW-supplied GW address (bigendian) */
167 u8 reserved[8];
168} __attribute__ ((packed));
169
170#define SIERRA_NET_LSI_COMMON_LEN 4
171#define SIERRA_NET_LSI_UMTS_LEN (sizeof(struct lsi_umts))
172#define SIERRA_NET_LSI_UMTS_STATUS_LEN \
173 (SIERRA_NET_LSI_UMTS_LEN - SIERRA_NET_LSI_COMMON_LEN)
174
175/* Forward definitions */
176static void sierra_sync_timer(unsigned long syncdata);
177static int sierra_net_change_mtu(struct net_device *net, int new_mtu);
178
179/* Our own net device operations structure */
180static const struct net_device_ops sierra_net_device_ops = {
181 .ndo_open = usbnet_open,
182 .ndo_stop = usbnet_stop,
183 .ndo_start_xmit = usbnet_start_xmit,
184 .ndo_tx_timeout = usbnet_tx_timeout,
185 .ndo_change_mtu = sierra_net_change_mtu,
186 .ndo_set_mac_address = eth_mac_addr,
187 .ndo_validate_addr = eth_validate_addr,
188};
189
190/* get private data associated with passed in usbnet device */
191static inline struct sierra_net_data *sierra_net_get_private(struct usbnet *dev)
192{
193 return (struct sierra_net_data *)dev->data[0];
194}
195
196/* set private data associated with passed in usbnet device */
197static inline void sierra_net_set_private(struct usbnet *dev,
198 struct sierra_net_data *priv)
199{
200 dev->data[0] = (unsigned long)priv;
201}
202
203/* is packet IPv4 */
204static inline int is_ip(struct sk_buff *skb)
205{
206 return (skb->protocol == cpu_to_be16(ETH_P_IP));
207}
208
209/*
210 * check passed in packet and make sure that:
211 * - it is linear (no scatter/gather)
212 * - it is ethernet (mac_header properly set)
213 */
214static int check_ethip_packet(struct sk_buff *skb, struct usbnet *dev)
215{
216 skb_reset_mac_header(skb); /* ethernet header */
217
218 if (skb_is_nonlinear(skb)) {
219 netdev_err(dev->net, "Non linear buffer-dropping\n");
220 return 0;
221 }
222
223 if (!pskb_may_pull(skb, ETH_HLEN))
224 return 0;
225 skb->protocol = eth_hdr(skb)->h_proto;
226
227 return 1;
228}
229
230static const u8 *save16bit(struct param *p, const u8 *datap)
231{
232 p->is_present = 1;
233 p->word = get_unaligned_be16(datap);
234 return datap + sizeof(p->word);
235}
236
237static const u8 *save8bit(struct param *p, const u8 *datap)
238{
239 p->is_present = 1;
240 p->byte = *datap;
241 return datap + sizeof(p->byte);
242}
243
244/*----------------------------------------------------------------------------*
245 * BEGIN HIP *
246 *----------------------------------------------------------------------------*/
247/* HIP header */
248#define SIERRA_NET_HIP_HDR_LEN 4
249/* Extended HIP header */
250#define SIERRA_NET_HIP_EXT_HDR_LEN 6
251
252struct hip_hdr {
253 int hdrlen;
254 struct param payload_len;
255 struct param msgid;
256 struct param msgspecific;
257 struct param extmsgid;
258};
259
260static int parse_hip(const u8 *buf, const u32 buflen, struct hip_hdr *hh)
261{
262 const u8 *curp = buf;
263 int padded;
264
265 if (buflen < SIERRA_NET_HIP_HDR_LEN)
266 return -EPROTO;
267
268 curp = save16bit(&hh->payload_len, curp);
269 curp = save8bit(&hh->msgid, curp);
270 curp = save8bit(&hh->msgspecific, curp);
271
272 padded = hh->msgid.byte & 0x80;
273 hh->msgid.byte &= 0x7F; /* 7 bits */
274
275 hh->extmsgid.is_present = (hh->msgid.byte == SIERRA_NET_HIP_EXTENDEDID);
276 if (hh->extmsgid.is_present) {
277 if (buflen < SIERRA_NET_HIP_EXT_HDR_LEN)
278 return -EPROTO;
279
280 hh->payload_len.word &= 0x3FFF; /* 14 bits */
281
282 curp = save16bit(&hh->extmsgid, curp);
283 hh->extmsgid.word &= 0x03FF; /* 10 bits */
284
285 hh->hdrlen = SIERRA_NET_HIP_EXT_HDR_LEN;
286 } else {
287 hh->payload_len.word &= 0x07FF; /* 11 bits */
288 hh->hdrlen = SIERRA_NET_HIP_HDR_LEN;
289 }
290
291 if (padded) {
292 hh->hdrlen++;
293 hh->payload_len.word--;
294 }
295
296 /* if real packet shorter than the claimed length */
297 if (buflen < (hh->hdrlen + hh->payload_len.word))
298 return -EINVAL;
299
300 return 0;
301}
302
303static void build_hip(u8 *buf, const u16 payloadlen,
304 struct sierra_net_data *priv)
305{
306 /* the following doesn't have the full functionality. We
307 * currently build only one kind of header, so it is faster this way
308 */
309 put_unaligned_be16(payloadlen, buf);
310 memcpy(buf+2, priv->tx_hdr_template, sizeof(priv->tx_hdr_template));
311}
312/*----------------------------------------------------------------------------*
313 * END HIP *
314 *----------------------------------------------------------------------------*/
315
316static int sierra_net_send_cmd(struct usbnet *dev,
317 u8 *cmd, int cmdlen, const char * cmd_name)
318{
319 struct sierra_net_data *priv = sierra_net_get_private(dev);
320 int status;
321
322 status = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
323 USB_CDC_SEND_ENCAPSULATED_COMMAND,
324 USB_DIR_OUT|USB_TYPE_CLASS|USB_RECIP_INTERFACE, 0,
325 priv->ifnum, cmd, cmdlen, USB_CTRL_SET_TIMEOUT);
326
327 if (status != cmdlen && status != -ENODEV)
328 netdev_err(dev->net, "Submit %s failed %d\n", cmd_name, status);
329
330 return status;
331}
332
333static int sierra_net_send_sync(struct usbnet *dev)
334{
335 int status;
336 struct sierra_net_data *priv = sierra_net_get_private(dev);
337
338 dev_dbg(&dev->udev->dev, "%s", __func__);
339
340 status = sierra_net_send_cmd(dev, priv->sync_msg,
341 sizeof(priv->sync_msg), "SYNC");
342
343 return status;
344}
345
346static void sierra_net_set_ctx_index(struct sierra_net_data *priv, u8 ctx_ix)
347{
348 dev_dbg(&(priv->usbnet->udev->dev), "%s %d", __func__, ctx_ix);
349 priv->tx_hdr_template[0] = 0x3F;
350 priv->tx_hdr_template[1] = ctx_ix;
351 *((u16 *)&priv->tx_hdr_template[2]) =
352 cpu_to_be16(SIERRA_NET_HIP_EXT_IP_OUT_ID);
353}
354
355static inline int sierra_net_is_valid_addrlen(u8 len)
356{
357 return (len == sizeof(struct in_addr));
358}
359
360static int sierra_net_parse_lsi(struct usbnet *dev, char *data, int datalen)
361{
362 struct lsi_umts *lsi = (struct lsi_umts *)data;
363
364 if (datalen < sizeof(struct lsi_umts)) {
365 netdev_err(dev->net, "%s: Data length %d, exp %Zu\n",
366 __func__, datalen,
367 sizeof(struct lsi_umts));
368 return -1;
369 }
370
371 if (lsi->length != cpu_to_be16(SIERRA_NET_LSI_UMTS_STATUS_LEN)) {
372 netdev_err(dev->net, "%s: LSI_UMTS_STATUS_LEN %d, exp %u\n",
373 __func__, be16_to_cpu(lsi->length),
374 (u32)SIERRA_NET_LSI_UMTS_STATUS_LEN);
375 return -1;
376 }
377
378 /* Validate the protocol - only support UMTS for now */
379 if (lsi->protocol != SIERRA_NET_PROTOCOL_UMTS) {
380 netdev_err(dev->net, "Protocol unsupported, 0x%02x\n",
381 lsi->protocol);
382 return -1;
383 }
384
385 /* Validate the link type */
386 if (lsi->link_type != SIERRA_NET_AS_LINK_TYPE_IPv4) {
387 netdev_err(dev->net, "Link type unsupported: 0x%02x\n",
388 lsi->link_type);
389 return -1;
390 }
391
392 /* Validate the coverage */
393 if (lsi->coverage == SIERRA_NET_COVERAGE_NONE
394 || lsi->coverage == SIERRA_NET_COVERAGE_NOPACKET) {
395 netdev_err(dev->net, "No coverage, 0x%02x\n", lsi->coverage);
396 return 0;
397 }
398
399 /* Validate the session state */
400 if (lsi->session_state == SIERRA_NET_SESSION_IDLE) {
401 netdev_err(dev->net, "Session idle, 0x%02x\n",
402 lsi->session_state);
403 return 0;
404 }
405
406 /* Set link_sense true */
407 return 1;
408}
409
410static void sierra_net_handle_lsi(struct usbnet *dev, char *data,
411 struct hip_hdr *hh)
412{
413 struct sierra_net_data *priv = sierra_net_get_private(dev);
414 int link_up;
415
416 link_up = sierra_net_parse_lsi(dev, data + hh->hdrlen,
417 hh->payload_len.word);
418 if (link_up < 0) {
419 netdev_err(dev->net, "Invalid LSI\n");
420 return;
421 }
422 if (link_up) {
423 sierra_net_set_ctx_index(priv, hh->msgspecific.byte);
424 priv->link_up = 1;
425 netif_carrier_on(dev->net);
426 } else {
427 priv->link_up = 0;
428 netif_carrier_off(dev->net);
429 }
430}
431
432static void sierra_net_dosync(struct usbnet *dev)
433{
434 int status;
435 struct sierra_net_data *priv = sierra_net_get_private(dev);
436
437 dev_dbg(&dev->udev->dev, "%s", __func__);
438
439 /* tell modem we are ready */
440 status = sierra_net_send_sync(dev);
441 if (status < 0)
442 netdev_err(dev->net,
443 "Send SYNC failed, status %d\n", status);
444 status = sierra_net_send_sync(dev);
445 if (status < 0)
446 netdev_err(dev->net,
447 "Send SYNC failed, status %d\n", status);
448
449 /* Now, start a timer and make sure we get the Restart Indication */
450 priv->sync_timer.function = sierra_sync_timer;
451 priv->sync_timer.data = (unsigned long) dev;
452 priv->sync_timer.expires = jiffies + SIERRA_NET_SYNCDELAY;
453 add_timer(&priv->sync_timer);
454}
455
456static void sierra_net_kevent(struct work_struct *work)
457{
458 struct sierra_net_data *priv =
459 container_of(work, struct sierra_net_data, sierra_net_kevent);
460 struct usbnet *dev = priv->usbnet;
461 int len;
462 int err;
463 u8 *buf;
464 u8 ifnum;
465
466 if (test_bit(SIERRA_NET_EVENT_RESP_AVAIL, &priv->kevent_flags)) {
467 clear_bit(SIERRA_NET_EVENT_RESP_AVAIL, &priv->kevent_flags);
468
469 /* Query the modem for the LSI message */
470 buf = kzalloc(SIERRA_NET_USBCTL_BUF_LEN, GFP_KERNEL);
471 if (!buf) {
472 netdev_err(dev->net,
473 "failed to allocate buf for LS msg\n");
474 return;
475 }
476 ifnum = priv->ifnum;
477 len = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0),
478 USB_CDC_GET_ENCAPSULATED_RESPONSE,
479 USB_DIR_IN|USB_TYPE_CLASS|USB_RECIP_INTERFACE,
480 0, ifnum, buf, SIERRA_NET_USBCTL_BUF_LEN,
481 USB_CTRL_SET_TIMEOUT);
482
483 if (len < 0) {
484 netdev_err(dev->net,
485 "usb_control_msg failed, status %d\n", len);
486 } else {
487 struct hip_hdr hh;
488
489 dev_dbg(&dev->udev->dev, "%s: Received status message,"
490 " %04x bytes", __func__, len);
491
492 err = parse_hip(buf, len, &hh);
493 if (err) {
494 netdev_err(dev->net, "%s: Bad packet,"
495 " parse result %d\n", __func__, err);
496 kfree(buf);
497 return;
498 }
499
500 /* Validate packet length */
501 if (len != hh.hdrlen + hh.payload_len.word) {
502 netdev_err(dev->net, "%s: Bad packet, received"
503 " %d, expected %d\n", __func__, len,
504 hh.hdrlen + hh.payload_len.word);
505 kfree(buf);
506 return;
507 }
508
509 /* Switch on received message types */
510 switch (hh.msgid.byte) {
511 case SIERRA_NET_HIP_LSI_UMTSID:
512 dev_dbg(&dev->udev->dev, "LSI for ctx:%d",
513 hh.msgspecific.byte);
514 sierra_net_handle_lsi(dev, buf, &hh);
515 break;
516 case SIERRA_NET_HIP_RESTART_ID:
517 dev_dbg(&dev->udev->dev, "Restart reported: %d,"
518 " stopping sync timer",
519 hh.msgspecific.byte);
520 /* Got sync resp - stop timer & clear mask */
521 del_timer_sync(&priv->sync_timer);
522 clear_bit(SIERRA_NET_TIMER_EXPIRY,
523 &priv->kevent_flags);
524 break;
525 case SIERRA_NET_HIP_HSYNC_ID:
526 dev_dbg(&dev->udev->dev, "SYNC received");
527 err = sierra_net_send_sync(dev);
528 if (err < 0)
529 netdev_err(dev->net,
530 "Send SYNC failed %d\n", err);
531 break;
532 case SIERRA_NET_HIP_EXTENDEDID:
533 netdev_err(dev->net, "Unrecognized HIP msg, "
534 "extmsgid 0x%04x\n", hh.extmsgid.word);
535 break;
536 case SIERRA_NET_HIP_RCGI:
537 /* Ignored */
538 break;
539 default:
540 netdev_err(dev->net, "Unrecognized HIP msg, "
541 "msgid 0x%02x\n", hh.msgid.byte);
542 break;
543 }
544 }
545 kfree(buf);
546 }
547 /* The sync timer bit might be set */
548 if (test_bit(SIERRA_NET_TIMER_EXPIRY, &priv->kevent_flags)) {
549 clear_bit(SIERRA_NET_TIMER_EXPIRY, &priv->kevent_flags);
550 dev_dbg(&dev->udev->dev, "Deferred sync timer expiry");
551 sierra_net_dosync(priv->usbnet);
552 }
553
554 if (priv->kevent_flags)
555 dev_dbg(&dev->udev->dev, "sierra_net_kevent done, "
556 "kevent_flags = 0x%lx", priv->kevent_flags);
557}
558
559static void sierra_net_defer_kevent(struct usbnet *dev, int work)
560{
561 struct sierra_net_data *priv = sierra_net_get_private(dev);
562
563 set_bit(work, &priv->kevent_flags);
564 schedule_work(&priv->sierra_net_kevent);
565}
566
567/*
568 * Sync Retransmit Timer Handler. On expiry, kick the work queue
569 */
570void sierra_sync_timer(unsigned long syncdata)
571{
572 struct usbnet *dev = (struct usbnet *)syncdata;
573
574 dev_dbg(&dev->udev->dev, "%s", __func__);
575 /* Kick the tasklet */
576 sierra_net_defer_kevent(dev, SIERRA_NET_TIMER_EXPIRY);
577}
578
579static void sierra_net_status(struct usbnet *dev, struct urb *urb)
580{
581 struct usb_cdc_notification *event;
582
583 dev_dbg(&dev->udev->dev, "%s", __func__);
584
585 if (urb->actual_length < sizeof *event)
586 return;
587
588 /* Add cases to handle other standard notifications. */
589 event = urb->transfer_buffer;
590 switch (event->bNotificationType) {
591 case USB_CDC_NOTIFY_NETWORK_CONNECTION:
592 case USB_CDC_NOTIFY_SPEED_CHANGE:
593 /* USB 305 sends those */
594 break;
595 case USB_CDC_NOTIFY_RESPONSE_AVAILABLE:
596 sierra_net_defer_kevent(dev, SIERRA_NET_EVENT_RESP_AVAIL);
597 break;
598 default:
599 netdev_err(dev->net, ": unexpected notification %02x!\n",
600 event->bNotificationType);
601 break;
602 }
603}
604
605static void sierra_net_get_drvinfo(struct net_device *net,
606 struct ethtool_drvinfo *info)
607{
608 /* Inherit standard device info */
609 usbnet_get_drvinfo(net, info);
610 strncpy(info->driver, driver_name, sizeof info->driver);
611 strncpy(info->version, DRIVER_VERSION, sizeof info->version);
612}
613
614static u32 sierra_net_get_link(struct net_device *net)
615{
616 struct usbnet *dev = netdev_priv(net);
617 /* Report link is down whenever the interface is down */
618 return sierra_net_get_private(dev)->link_up && netif_running(net);
619}
620
621static struct ethtool_ops sierra_net_ethtool_ops = {
622 .get_drvinfo = sierra_net_get_drvinfo,
623 .get_link = sierra_net_get_link,
624 .get_msglevel = usbnet_get_msglevel,
625 .set_msglevel = usbnet_set_msglevel,
626 .get_settings = usbnet_get_settings,
627 .set_settings = usbnet_set_settings,
628 .nway_reset = usbnet_nway_reset,
629};
630
631/* MTU can not be more than 1500 bytes, enforce it. */
632static int sierra_net_change_mtu(struct net_device *net, int new_mtu)
633{
634 if (new_mtu > SIERRA_NET_MAX_SUPPORTED_MTU)
635 return -EINVAL;
636
637 return usbnet_change_mtu(net, new_mtu);
638}
639
640static int is_whitelisted(const u8 ifnum,
641 const struct sierra_net_iface_info *whitelist)
642{
643 if (whitelist) {
644 const u8 *list = whitelist->ifaceinfo;
645 int i;
646
647 for (i = 0; i < whitelist->infolen; i++) {
648 if (list[i] == ifnum)
649 return 1;
650 }
651 }
652 return 0;
653}
654
655static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap)
656{
657 int result = 0;
658 u16 *attrdata;
659
660 attrdata = kmalloc(sizeof(*attrdata), GFP_KERNEL);
661 if (!attrdata)
662 return -ENOMEM;
663
664 result = usb_control_msg(
665 dev->udev,
666 usb_rcvctrlpipe(dev->udev, 0),
667 /* _u8 vendor specific request */
668 SWI_USB_REQUEST_GET_FW_ATTR,
669 USB_DIR_IN | USB_TYPE_VENDOR, /* __u8 request type */
670 0x0000, /* __u16 value not used */
671 0x0000, /* __u16 index not used */
672 attrdata, /* char *data */
673 sizeof(*attrdata), /* __u16 size */
674 USB_CTRL_SET_TIMEOUT); /* int timeout */
675
676 if (result < 0) {
677 kfree(attrdata);
678 return -EIO;
679 }
680
681 *datap = *attrdata;
682
683 kfree(attrdata);
684 return result;
685}
686
687/*
688 * collects the bulk endpoints, the status endpoint.
689 */
690static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
691{
692 u8 ifacenum;
693 u8 numendpoints;
694 u16 fwattr = 0;
695 int status;
696 struct ethhdr *eth;
697 struct sierra_net_data *priv;
698 static const u8 sync_tmplate[sizeof(priv->sync_msg)] = {
699 0x00, 0x00, SIERRA_NET_HIP_MSYNC_ID, 0x00};
700 static const u8 shdwn_tmplate[sizeof(priv->shdwn_msg)] = {
701 0x00, 0x00, SIERRA_NET_HIP_SHUTD_ID, 0x00};
702
703 struct sierra_net_info_data *data =
704 (struct sierra_net_info_data *)dev->driver_info->data;
705
706 dev_dbg(&dev->udev->dev, "%s", __func__);
707
708 ifacenum = intf->cur_altsetting->desc.bInterfaceNumber;
709 /* We only accept certain interfaces */
710 if (!is_whitelisted(ifacenum, &data->whitelist)) {
711 dev_dbg(&dev->udev->dev, "Ignoring interface: %d", ifacenum);
712 return -ENODEV;
713 }
714 numendpoints = intf->cur_altsetting->desc.bNumEndpoints;
715 /* We have three endpoints, bulk in and out, and a status */
716 if (numendpoints != 3) {
717 dev_err(&dev->udev->dev, "Expected 3 endpoints, found: %d",
718 numendpoints);
719 return -ENODEV;
720 }
721 /* Status endpoint set in usbnet_get_endpoints() */
722 dev->status = NULL;
723 status = usbnet_get_endpoints(dev, intf);
724 if (status < 0) {
725 dev_err(&dev->udev->dev, "Error in usbnet_get_endpoints (%d)",
726 status);
727 return -ENODEV;
728 }
729 /* Initialize sierra private data */
730 priv = kzalloc(sizeof *priv, GFP_KERNEL);
731 if (!priv) {
732 dev_err(&dev->udev->dev, "No memory");
733 return -ENOMEM;
734 }
735
736 priv->usbnet = dev;
737 priv->ifnum = ifacenum;
738 dev->net->netdev_ops = &sierra_net_device_ops;
739
740 /* change MAC addr to include, ifacenum, and to be unique */
741 dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
742 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
743
744 /* we will have to manufacture ethernet headers, prepare template */
745 eth = (struct ethhdr *)priv->ethr_hdr_tmpl;
746 memcpy(&eth->h_dest, dev->net->dev_addr, ETH_ALEN);
747 eth->h_proto = cpu_to_be16(ETH_P_IP);
748
749 /* prepare shutdown message template */
750 memcpy(priv->shdwn_msg, shdwn_tmplate, sizeof(priv->shdwn_msg));
751 /* set context index initially to 0 - prepares tx hdr template */
752 sierra_net_set_ctx_index(priv, 0);
753
754 /* decrease the rx_urb_size and max_tx_size to 4k on USB 1.1 */
755 dev->rx_urb_size = data->rx_urb_size;
756 if (dev->udev->speed != USB_SPEED_HIGH)
757 dev->rx_urb_size = min_t(size_t, 4096, data->rx_urb_size);
758
759 dev->net->hard_header_len += SIERRA_NET_HIP_EXT_HDR_LEN;
760 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
761
762 /* Set up the netdev */
763 dev->net->flags |= IFF_NOARP;
764 dev->net->ethtool_ops = &sierra_net_ethtool_ops;
765 netif_carrier_off(dev->net);
766
767 sierra_net_set_private(dev, priv);
768
769 priv->kevent_flags = 0;
770
771 /* Use the shared workqueue */
772 INIT_WORK(&priv->sierra_net_kevent, sierra_net_kevent);
773
774 /* Only need to do this once */
775 init_timer(&priv->sync_timer);
776
777 /* verify fw attributes */
778 status = sierra_net_get_fw_attr(dev, &fwattr);
779 dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr);
780
781 /* test whether firmware supports DHCP */
782 if (!(status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_MASK))) {
783 /* found incompatible firmware version */
784 dev_err(&dev->udev->dev, "Incompatible driver and firmware"
785 " versions\n");
786 kfree(priv);
787 return -ENODEV;
788 }
789 /* prepare sync message from template */
790 memcpy(priv->sync_msg, sync_tmplate, sizeof(priv->sync_msg));
791
792 return 0;
793}
794
795static void sierra_net_unbind(struct usbnet *dev, struct usb_interface *intf)
796{
797 int status;
798 struct sierra_net_data *priv = sierra_net_get_private(dev);
799
800 dev_dbg(&dev->udev->dev, "%s", __func__);
801
802 /* Kill the timer then flush the work queue */
803 del_timer_sync(&priv->sync_timer);
804
805 flush_scheduled_work();
806
807 /* tell modem we are going away */
808 status = sierra_net_send_cmd(dev, priv->shdwn_msg,
809 sizeof(priv->shdwn_msg), "Shutdown");
810 if (status < 0)
811 netdev_err(dev->net,
812 "usb_control_msg failed, status %d\n", status);
813
814 sierra_net_set_private(dev, NULL);
815
816 kfree(priv);
817}
818
819static struct sk_buff *sierra_net_skb_clone(struct usbnet *dev,
820 struct sk_buff *skb, int len)
821{
822 struct sk_buff *new_skb;
823
824 /* clone skb */
825 new_skb = skb_clone(skb, GFP_ATOMIC);
826
827 /* remove len bytes from original */
828 skb_pull(skb, len);
829
830 /* trim next packet to it's length */
831 if (new_skb) {
832 skb_trim(new_skb, len);
833 } else {
834 if (netif_msg_rx_err(dev))
835 netdev_err(dev->net, "failed to get skb\n");
836 dev->net->stats.rx_dropped++;
837 }
838
839 return new_skb;
840}
841
842/* ---------------------------- Receive data path ----------------------*/
843static int sierra_net_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
844{
845 int err;
846 struct hip_hdr hh;
847 struct sk_buff *new_skb;
848
849 dev_dbg(&dev->udev->dev, "%s", __func__);
850
851 /* could contain multiple packets */
852 while (likely(skb->len)) {
853 err = parse_hip(skb->data, skb->len, &hh);
854 if (err) {
855 if (netif_msg_rx_err(dev))
856 netdev_err(dev->net, "Invalid HIP header %d\n",
857 err);
858 /* dev->net->stats.rx_errors incremented by caller */
859 dev->net->stats.rx_length_errors++;
860 return 0;
861 }
862
863 /* Validate Extended HIP header */
864 if (!hh.extmsgid.is_present
865 || hh.extmsgid.word != SIERRA_NET_HIP_EXT_IP_IN_ID) {
866 if (netif_msg_rx_err(dev))
867 netdev_err(dev->net, "HIP/ETH: Invalid pkt\n");
868
869 dev->net->stats.rx_frame_errors++;
870 /* dev->net->stats.rx_errors incremented by caller */;
871 return 0;
872 }
873
874 skb_pull(skb, hh.hdrlen);
875
876 /* We are going to accept this packet, prepare it */
877 memcpy(skb->data, sierra_net_get_private(dev)->ethr_hdr_tmpl,
878 ETH_HLEN);
879
880 /* Last packet in batch handled by usbnet */
881 if (hh.payload_len.word == skb->len)
882 return 1;
883
884 new_skb = sierra_net_skb_clone(dev, skb, hh.payload_len.word);
885 if (new_skb)
886 usbnet_skb_return(dev, new_skb);
887
888 } /* while */
889
890 return 0;
891}
892
893/* ---------------------------- Transmit data path ----------------------*/
894struct sk_buff *sierra_net_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
895 gfp_t flags)
896{
897 struct sierra_net_data *priv = sierra_net_get_private(dev);
898 u16 len;
899 bool need_tail;
900
901 dev_dbg(&dev->udev->dev, "%s", __func__);
902 if (priv->link_up && check_ethip_packet(skb, dev) && is_ip(skb)) {
903 /* enough head room as is? */
904 if (SIERRA_NET_HIP_EXT_HDR_LEN <= skb_headroom(skb)) {
905 /* Save the Eth/IP length and set up HIP hdr */
906 len = skb->len;
907 skb_push(skb, SIERRA_NET_HIP_EXT_HDR_LEN);
908 /* Handle ZLP issue */
909 need_tail = ((len + SIERRA_NET_HIP_EXT_HDR_LEN)
910 % dev->maxpacket == 0);
911 if (need_tail) {
912 if (unlikely(skb_tailroom(skb) == 0)) {
913 netdev_err(dev->net, "tx_fixup:"
914 "no room for packet\n");
915 dev_kfree_skb_any(skb);
916 return NULL;
917 } else {
918 skb->data[skb->len] = 0;
919 __skb_put(skb, 1);
920 len = len + 1;
921 }
922 }
923 build_hip(skb->data, len, priv);
924 return skb;
925 } else {
926 /*
927 * compensate in the future if necessary
928 */
929 netdev_err(dev->net, "tx_fixup: no room for HIP\n");
930 } /* headroom */
931 }
932
933 if (!priv->link_up)
934 dev->net->stats.tx_carrier_errors++;
935
936 /* tx_dropped incremented by usbnet */
937
938 /* filter the packet out, release it */
939 dev_kfree_skb_any(skb);
940 return NULL;
941}
942
943static const u8 sierra_net_ifnum_list[] = { 7, 10, 11 };
944static const struct sierra_net_info_data sierra_net_info_data_68A3 = {
945 .rx_urb_size = 8 * 1024,
946 .whitelist = {
947 .infolen = ARRAY_SIZE(sierra_net_ifnum_list),
948 .ifaceinfo = sierra_net_ifnum_list
949 }
950};
951
952static const struct driver_info sierra_net_info_68A3 = {
953 .description = "Sierra Wireless USB-to-WWAN Modem",
954 .flags = FLAG_WWAN | FLAG_SEND_ZLP,
955 .bind = sierra_net_bind,
956 .unbind = sierra_net_unbind,
957 .status = sierra_net_status,
958 .rx_fixup = sierra_net_rx_fixup,
959 .tx_fixup = sierra_net_tx_fixup,
960 .data = (unsigned long)&sierra_net_info_data_68A3,
961};
962
963static const struct usb_device_id products[] = {
964 {USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless USB-to-WWAN modem */
965 .driver_info = (unsigned long) &sierra_net_info_68A3},
966
967 {}, /* last item */
968};
969MODULE_DEVICE_TABLE(usb, products);
970
971/* We are based on usbnet, so let it handle the USB driver specifics */
972static struct usb_driver sierra_net_driver = {
973 .name = "sierra_net",
974 .id_table = products,
975 .probe = usbnet_probe,
976 .disconnect = usbnet_disconnect,
977 .suspend = usbnet_suspend,
978 .resume = usbnet_resume,
979 .no_dynamic_id = 1,
980};
981
982static int __init sierra_net_init(void)
983{
984 BUILD_BUG_ON(FIELD_SIZEOF(struct usbnet, data)
985 < sizeof(struct cdc_state));
986
987 return usb_register(&sierra_net_driver);
988}
989
990static void __exit sierra_net_exit(void)
991{
992 usb_deregister(&sierra_net_driver);
993}
994
995module_exit(sierra_net_exit);
996module_init(sierra_net_init);
997
998MODULE_AUTHOR(DRIVER_AUTHOR);
999MODULE_DESCRIPTION(DRIVER_DESC);
1000MODULE_VERSION(DRIVER_VERSION);
1001MODULE_LICENSE("GPL");
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index c4844adff92a..92b3e64fc14d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -259,7 +259,7 @@ static struct iwl_lib_ops iwl6000_lib = {
259 EEPROM_5000_REG_BAND_3_CHANNELS, 259 EEPROM_5000_REG_BAND_3_CHANNELS,
260 EEPROM_5000_REG_BAND_4_CHANNELS, 260 EEPROM_5000_REG_BAND_4_CHANNELS,
261 EEPROM_5000_REG_BAND_5_CHANNELS, 261 EEPROM_5000_REG_BAND_5_CHANNELS,
262 EEPROM_5000_REG_BAND_24_HT40_CHANNELS, 262 EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
263 EEPROM_5000_REG_BAND_52_HT40_CHANNELS 263 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
264 }, 264 },
265 .verify_signature = iwlcore_eeprom_verify_signature, 265 .verify_signature = iwlcore_eeprom_verify_signature,
@@ -323,7 +323,7 @@ static struct iwl_lib_ops iwl6050_lib = {
323 EEPROM_5000_REG_BAND_3_CHANNELS, 323 EEPROM_5000_REG_BAND_3_CHANNELS,
324 EEPROM_5000_REG_BAND_4_CHANNELS, 324 EEPROM_5000_REG_BAND_4_CHANNELS,
325 EEPROM_5000_REG_BAND_5_CHANNELS, 325 EEPROM_5000_REG_BAND_5_CHANNELS,
326 EEPROM_5000_REG_BAND_24_HT40_CHANNELS, 326 EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
327 EEPROM_5000_REG_BAND_52_HT40_CHANNELS 327 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
328 }, 328 },
329 .verify_signature = iwlcore_eeprom_verify_signature, 329 .verify_signature = iwlcore_eeprom_verify_signature,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 8b8e3e1cbb44..bdff56583e11 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3331,6 +3331,7 @@ static void iwl_cancel_deferred_work(struct iwl_priv *priv)
3331 3331
3332 cancel_delayed_work_sync(&priv->init_alive_start); 3332 cancel_delayed_work_sync(&priv->init_alive_start);
3333 cancel_delayed_work(&priv->scan_check); 3333 cancel_delayed_work(&priv->scan_check);
3334 cancel_work_sync(&priv->start_internal_scan);
3334 cancel_delayed_work(&priv->alive_start); 3335 cancel_delayed_work(&priv->alive_start);
3335 cancel_work_sync(&priv->beacon_update); 3336 cancel_work_sync(&priv->beacon_update);
3336 del_timer_sync(&priv->statistics_periodic); 3337 del_timer_sync(&priv->statistics_periodic);
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 3352f7086632..049b652bcb5e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -3358,7 +3358,6 @@ static void iwl_force_rf_reset(struct iwl_priv *priv)
3358 */ 3358 */
3359 IWL_DEBUG_INFO(priv, "perform radio reset.\n"); 3359 IWL_DEBUG_INFO(priv, "perform radio reset.\n");
3360 iwl_internal_short_hw_scan(priv); 3360 iwl_internal_short_hw_scan(priv);
3361 return;
3362} 3361}
3363 3362
3364 3363
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 732590f5fe30..36940a9ec6b9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -506,7 +506,7 @@ void iwl_init_scan_params(struct iwl_priv *priv);
506int iwl_scan_cancel(struct iwl_priv *priv); 506int iwl_scan_cancel(struct iwl_priv *priv);
507int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms); 507int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms);
508int iwl_mac_hw_scan(struct ieee80211_hw *hw, struct cfg80211_scan_request *req); 508int iwl_mac_hw_scan(struct ieee80211_hw *hw, struct cfg80211_scan_request *req);
509int iwl_internal_short_hw_scan(struct iwl_priv *priv); 509void iwl_internal_short_hw_scan(struct iwl_priv *priv);
510int iwl_force_reset(struct iwl_priv *priv, int mode); 510int iwl_force_reset(struct iwl_priv *priv, int mode);
511u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame, 511u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame,
512 const u8 *ie, int ie_len, int left); 512 const u8 *ie, int ie_len, int left);
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 6054c5fba0c1..ef1720a852e9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1296,6 +1296,7 @@ struct iwl_priv {
1296 struct work_struct tt_work; 1296 struct work_struct tt_work;
1297 struct work_struct ct_enter; 1297 struct work_struct ct_enter;
1298 struct work_struct ct_exit; 1298 struct work_struct ct_exit;
1299 struct work_struct start_internal_scan;
1299 1300
1300 struct tasklet_struct irq_tasklet; 1301 struct tasklet_struct irq_tasklet;
1301 1302
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 4e1ba824dc50..8171c701e4e1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -203,6 +203,10 @@ struct iwl_eeprom_enhanced_txpwr {
203#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS ((0x92)\ 203#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS ((0x92)\
204 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */ 204 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */
205 205
206/* 6000 regulatory - indirect access */
207#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS ((0x80)\
208 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 14 bytes */
209
206/* 6000 and up regulatory tx power - indirect access */ 210/* 6000 and up regulatory tx power - indirect access */
207/* max. elements per section */ 211/* max. elements per section */
208#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8) 212#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8)
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 9ab0e412bf10..12e455a4b90e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -470,6 +470,8 @@ EXPORT_SYMBOL(iwl_init_scan_params);
470 470
471static int iwl_scan_initiate(struct iwl_priv *priv) 471static int iwl_scan_initiate(struct iwl_priv *priv)
472{ 472{
473 WARN_ON(!mutex_is_locked(&priv->mutex));
474
473 IWL_DEBUG_INFO(priv, "Starting scan...\n"); 475 IWL_DEBUG_INFO(priv, "Starting scan...\n");
474 set_bit(STATUS_SCANNING, &priv->status); 476 set_bit(STATUS_SCANNING, &priv->status);
475 priv->is_internal_short_scan = false; 477 priv->is_internal_short_scan = false;
@@ -547,24 +549,31 @@ EXPORT_SYMBOL(iwl_mac_hw_scan);
547 * internal short scan, this function should only been called while associated. 549 * internal short scan, this function should only been called while associated.
548 * It will reset and tune the radio to prevent possible RF related problem 550 * It will reset and tune the radio to prevent possible RF related problem
549 */ 551 */
550int iwl_internal_short_hw_scan(struct iwl_priv *priv) 552void iwl_internal_short_hw_scan(struct iwl_priv *priv)
551{ 553{
552 int ret = 0; 554 queue_work(priv->workqueue, &priv->start_internal_scan);
555}
556
557static void iwl_bg_start_internal_scan(struct work_struct *work)
558{
559 struct iwl_priv *priv =
560 container_of(work, struct iwl_priv, start_internal_scan);
561
562 mutex_lock(&priv->mutex);
553 563
554 if (!iwl_is_ready_rf(priv)) { 564 if (!iwl_is_ready_rf(priv)) {
555 ret = -EIO;
556 IWL_DEBUG_SCAN(priv, "not ready or exit pending\n"); 565 IWL_DEBUG_SCAN(priv, "not ready or exit pending\n");
557 goto out; 566 goto unlock;
558 } 567 }
568
559 if (test_bit(STATUS_SCANNING, &priv->status)) { 569 if (test_bit(STATUS_SCANNING, &priv->status)) {
560 IWL_DEBUG_SCAN(priv, "Scan already in progress.\n"); 570 IWL_DEBUG_SCAN(priv, "Scan already in progress.\n");
561 ret = -EAGAIN; 571 goto unlock;
562 goto out;
563 } 572 }
573
564 if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) { 574 if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
565 IWL_DEBUG_SCAN(priv, "Scan request while abort pending\n"); 575 IWL_DEBUG_SCAN(priv, "Scan request while abort pending\n");
566 ret = -EAGAIN; 576 goto unlock;
567 goto out;
568 } 577 }
569 578
570 priv->scan_bands = 0; 579 priv->scan_bands = 0;
@@ -577,9 +586,8 @@ int iwl_internal_short_hw_scan(struct iwl_priv *priv)
577 set_bit(STATUS_SCANNING, &priv->status); 586 set_bit(STATUS_SCANNING, &priv->status);
578 priv->is_internal_short_scan = true; 587 priv->is_internal_short_scan = true;
579 queue_work(priv->workqueue, &priv->request_scan); 588 queue_work(priv->workqueue, &priv->request_scan);
580 589 unlock:
581out: 590 mutex_unlock(&priv->mutex);
582 return ret;
583} 591}
584EXPORT_SYMBOL(iwl_internal_short_hw_scan); 592EXPORT_SYMBOL(iwl_internal_short_hw_scan);
585 593
@@ -965,6 +973,7 @@ void iwl_setup_scan_deferred_work(struct iwl_priv *priv)
965 INIT_WORK(&priv->scan_completed, iwl_bg_scan_completed); 973 INIT_WORK(&priv->scan_completed, iwl_bg_scan_completed);
966 INIT_WORK(&priv->request_scan, iwl_bg_request_scan); 974 INIT_WORK(&priv->request_scan, iwl_bg_request_scan);
967 INIT_WORK(&priv->abort_scan, iwl_bg_abort_scan); 975 INIT_WORK(&priv->abort_scan, iwl_bg_abort_scan);
976 INIT_WORK(&priv->start_internal_scan, iwl_bg_start_internal_scan);
968 INIT_DELAYED_WORK(&priv->scan_check, iwl_bg_scan_check); 977 INIT_DELAYED_WORK(&priv->scan_check, iwl_bg_scan_check);
969} 978}
970EXPORT_SYMBOL(iwl_setup_scan_deferred_work); 979EXPORT_SYMBOL(iwl_setup_scan_deferred_work);
diff --git a/drivers/pci/hotplug/rpadlpar_core.c b/drivers/pci/hotplug/rpadlpar_core.c
index 4e3e0382c16e..083034710fa6 100644
--- a/drivers/pci/hotplug/rpadlpar_core.c
+++ b/drivers/pci/hotplug/rpadlpar_core.c
@@ -20,6 +20,7 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/pci.h> 21#include <linux/pci.h>
22#include <linux/string.h> 22#include <linux/string.h>
23#include <linux/vmalloc.h>
23 24
24#include <asm/pci-bridge.h> 25#include <asm/pci-bridge.h>
25#include <linux/mutex.h> 26#include <linux/mutex.h>
@@ -430,6 +431,8 @@ int dlpar_remove_slot(char *drc_name)
430 rc = dlpar_remove_pci_slot(drc_name, dn); 431 rc = dlpar_remove_pci_slot(drc_name, dn);
431 break; 432 break;
432 } 433 }
434 vm_unmap_aliases();
435
433 printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name); 436 printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name);
434exit: 437exit:
435 mutex_unlock(&rpadlpar_mutex); 438 mutex_unlock(&rpadlpar_mutex);
diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
index 719702240780..ef7411c660b9 100644
--- a/drivers/pci/hotplug/rpaphp_core.c
+++ b/drivers/pci/hotplug/rpaphp_core.c
@@ -29,6 +29,7 @@
29#include <linux/pci_hotplug.h> 29#include <linux/pci_hotplug.h>
30#include <linux/smp.h> 30#include <linux/smp.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/vmalloc.h>
32#include <asm/eeh.h> /* for eeh_add_device() */ 33#include <asm/eeh.h> /* for eeh_add_device() */
33#include <asm/rtas.h> /* rtas_call */ 34#include <asm/rtas.h> /* rtas_call */
34#include <asm/pci-bridge.h> /* for pci_controller */ 35#include <asm/pci-bridge.h> /* for pci_controller */
@@ -418,6 +419,8 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)
418 return -EINVAL; 419 return -EINVAL;
419 420
420 pcibios_remove_pci_devices(slot->bus); 421 pcibios_remove_pci_devices(slot->bus);
422 vm_unmap_aliases();
423
421 slot->state = NOT_CONFIGURED; 424 slot->state = NOT_CONFIGURED;
422 return 0; 425 return 0;
423} 426}
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 5ea587e59e48..37499127c801 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -679,7 +679,7 @@ static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
679 */ 679 */
680int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state) 680int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state)
681{ 681{
682 return state > PCI_D0 ? 682 return state >= PCI_D0 ?
683 pci_platform_power_transition(dev, state) : -EINVAL; 683 pci_platform_power_transition(dev, state) : -EINVAL;
684} 684}
685EXPORT_SYMBOL_GPL(__pci_complete_power_transition); 685EXPORT_SYMBOL_GPL(__pci_complete_power_transition);
@@ -716,10 +716,6 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
716 */ 716 */
717 return 0; 717 return 0;
718 718
719 /* Check if we're already there */
720 if (dev->current_state == state)
721 return 0;
722
723 __pci_start_power_transition(dev, state); 719 __pci_start_power_transition(dev, state);
724 720
725 /* This device is quirked not to be put into D3, so 721 /* This device is quirked not to be put into D3, so
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index aa495ad9bbd4..7a711ee314b7 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -244,11 +244,17 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev)
244 244
245 /* Assert Secondary Bus Reset */ 245 /* Assert Secondary Bus Reset */
246 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &p2p_ctrl); 246 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &p2p_ctrl);
247 p2p_ctrl |= PCI_CB_BRIDGE_CTL_CB_RESET; 247 p2p_ctrl |= PCI_BRIDGE_CTL_BUS_RESET;
248 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl); 248 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl);
249 249
250 /*
251 * we should send hot reset message for 2ms to allow it time to
252 * propogate to all downstream ports
253 */
254 msleep(2);
255
250 /* De-assert Secondary Bus Reset */ 256 /* De-assert Secondary Bus Reset */
251 p2p_ctrl &= ~PCI_CB_BRIDGE_CTL_CB_RESET; 257 p2p_ctrl &= ~PCI_BRIDGE_CTL_BUS_RESET;
252 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl); 258 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl);
253 259
254 /* 260 /*
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 882bd8d29fe3..c82548afcd5c 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -174,19 +174,14 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
174 pci_read_config_dword(dev, pos, &sz); 174 pci_read_config_dword(dev, pos, &sz);
175 pci_write_config_dword(dev, pos, l); 175 pci_write_config_dword(dev, pos, l);
176 176
177 if (!sz)
178 goto fail; /* BAR not implemented */
179
180 /* 177 /*
181 * All bits set in sz means the device isn't working properly. 178 * All bits set in sz means the device isn't working properly.
182 * If it's a memory BAR or a ROM, bit 0 must be clear; if it's 179 * If the BAR isn't implemented, all bits must be 0. If it's a
183 * an io BAR, bit 1 must be clear. 180 * memory BAR or a ROM, bit 0 must be clear; if it's an io BAR, bit
181 * 1 must be clear.
184 */ 182 */
185 if (sz == 0xffffffff) { 183 if (!sz || sz == 0xffffffff)
186 dev_err(&dev->dev, "reg %x: invalid size %#x; broken device?\n",
187 pos, sz);
188 goto fail; 184 goto fail;
189 }
190 185
191 /* 186 /*
192 * I don't know how l can have all bits set. Copied from old code. 187 * I don't know how l can have all bits set. Copied from old code.
@@ -249,17 +244,13 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
249 pos, res); 244 pos, res);
250 } 245 }
251 } else { 246 } else {
252 u32 size = pci_size(l, sz, mask); 247 sz = pci_size(l, sz, mask);
253 248
254 if (!size) { 249 if (!sz)
255 dev_err(&dev->dev, "reg %x: invalid size "
256 "(l %#x sz %#x mask %#x); broken device?",
257 pos, l, sz, mask);
258 goto fail; 250 goto fail;
259 }
260 251
261 res->start = l; 252 res->start = l;
262 res->end = l + size; 253 res->end = l + sz;
263 254
264 dev_printk(KERN_DEBUG, &dev->dev, "reg %x: %pR\n", pos, res); 255 dev_printk(KERN_DEBUG, &dev->dev, "reg %x: %pR\n", pos, res);
265 } 256 }
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index f230f6543bff..854959cada3a 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -1484,6 +1484,11 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int *info)
1484 if (!s) 1484 if (!s)
1485 return -EINVAL; 1485 return -EINVAL;
1486 1486
1487 if (s->functions) {
1488 WARN_ON(1);
1489 return -EINVAL;
1490 }
1491
1487 /* We do not want to validate the CIS cache... */ 1492 /* We do not want to validate the CIS cache... */
1488 mutex_lock(&s->ops_mutex); 1493 mutex_lock(&s->ops_mutex);
1489 destroy_cis_cache(s); 1494 destroy_cis_cache(s);
@@ -1639,7 +1644,7 @@ static ssize_t pccard_show_cis(struct kobject *kobj,
1639 count = 0; 1644 count = 0;
1640 else { 1645 else {
1641 struct pcmcia_socket *s; 1646 struct pcmcia_socket *s;
1642 unsigned int chains; 1647 unsigned int chains = 1;
1643 1648
1644 if (off + count > size) 1649 if (off + count > size)
1645 count = size - off; 1650 count = size - off;
@@ -1648,7 +1653,7 @@ static ssize_t pccard_show_cis(struct kobject *kobj,
1648 1653
1649 if (!(s->state & SOCKET_PRESENT)) 1654 if (!(s->state & SOCKET_PRESENT))
1650 return -ENODEV; 1655 return -ENODEV;
1651 if (pccard_validate_cis(s, &chains)) 1656 if (!s->functions && pccard_validate_cis(s, &chains))
1652 return -EIO; 1657 return -EIO;
1653 if (!chains) 1658 if (!chains)
1654 return -ENODATA; 1659 return -ENODATA;
diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
index 6206408e196c..2d48196a48cd 100644
--- a/drivers/pcmcia/db1xxx_ss.c
+++ b/drivers/pcmcia/db1xxx_ss.c
@@ -166,8 +166,10 @@ static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock)
166 166
167 ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq, 167 ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq,
168 IRQF_DISABLED, "pcmcia_insert", sock); 168 IRQF_DISABLED, "pcmcia_insert", sock);
169 if (ret) 169 if (ret) {
170 local_irq_restore(flags);
170 goto out1; 171 goto out1;
172 }
171 173
172 ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq, 174 ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq,
173 IRQF_DISABLED, "pcmcia_eject", sock); 175 IRQF_DISABLED, "pcmcia_eject", sock);
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index cb6036d89e59..508f94a2a78d 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -335,7 +335,6 @@ static void pcmcia_card_remove(struct pcmcia_socket *s, struct pcmcia_device *le
335 335
336 mutex_lock(&s->ops_mutex); 336 mutex_lock(&s->ops_mutex);
337 list_del(&p_dev->socket_device_list); 337 list_del(&p_dev->socket_device_list);
338 p_dev->_removed = 1;
339 mutex_unlock(&s->ops_mutex); 338 mutex_unlock(&s->ops_mutex);
340 339
341 dev_dbg(&p_dev->dev, "unregistering device\n"); 340 dev_dbg(&p_dev->dev, "unregistering device\n");
@@ -654,14 +653,7 @@ static int pcmcia_requery_callback(struct device *dev, void * _data)
654 653
655static void pcmcia_requery(struct pcmcia_socket *s) 654static void pcmcia_requery(struct pcmcia_socket *s)
656{ 655{
657 int present, has_pfc; 656 int has_pfc;
658
659 mutex_lock(&s->ops_mutex);
660 present = s->pcmcia_state.present;
661 mutex_unlock(&s->ops_mutex);
662
663 if (!present)
664 return;
665 657
666 if (s->functions == 0) { 658 if (s->functions == 0) {
667 pcmcia_card_add(s); 659 pcmcia_card_add(s);
@@ -687,12 +679,10 @@ static void pcmcia_requery(struct pcmcia_socket *s)
687 new_funcs = mfc.nfn; 679 new_funcs = mfc.nfn;
688 else 680 else
689 new_funcs = 1; 681 new_funcs = 1;
690 if (old_funcs > new_funcs) { 682 if (old_funcs != new_funcs) {
683 /* we need to re-start */
691 pcmcia_card_remove(s, NULL); 684 pcmcia_card_remove(s, NULL);
692 pcmcia_card_add(s); 685 pcmcia_card_add(s);
693 } else if (new_funcs > old_funcs) {
694 s->functions = new_funcs;
695 pcmcia_device_add(s, 1);
696 } 686 }
697 } 687 }
698 688
@@ -728,6 +718,8 @@ static int pcmcia_load_firmware(struct pcmcia_device *dev, char * filename)
728 struct pcmcia_socket *s = dev->socket; 718 struct pcmcia_socket *s = dev->socket;
729 const struct firmware *fw; 719 const struct firmware *fw;
730 int ret = -ENOMEM; 720 int ret = -ENOMEM;
721 cistpl_longlink_mfc_t mfc;
722 int old_funcs, new_funcs = 1;
731 723
732 if (!filename) 724 if (!filename)
733 return -EINVAL; 725 return -EINVAL;
@@ -750,6 +742,14 @@ static int pcmcia_load_firmware(struct pcmcia_device *dev, char * filename)
750 goto release; 742 goto release;
751 } 743 }
752 744
745 /* we need to re-start if the number of functions changed */
746 old_funcs = s->functions;
747 if (!pccard_read_tuple(s, BIND_FN_ALL, CISTPL_LONGLINK_MFC,
748 &mfc))
749 new_funcs = mfc.nfn;
750
751 if (old_funcs != new_funcs)
752 ret = -EBUSY;
753 753
754 /* update information */ 754 /* update information */
755 pcmcia_device_query(dev); 755 pcmcia_device_query(dev);
@@ -820,11 +820,12 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
820 } 820 }
821 821
822 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) { 822 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) {
823 if (dev->device_no != did->device_no) 823 dev_dbg(&dev->dev, "this is a pseudo-multi-function device\n");
824 return 0;
825 mutex_lock(&dev->socket->ops_mutex); 824 mutex_lock(&dev->socket->ops_mutex);
826 dev->socket->pcmcia_state.has_pfc = 1; 825 dev->socket->pcmcia_state.has_pfc = 1;
827 mutex_unlock(&dev->socket->ops_mutex); 826 mutex_unlock(&dev->socket->ops_mutex);
827 if (dev->device_no != did->device_no)
828 return 0;
828 } 829 }
829 830
830 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID) { 831 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID) {
@@ -835,7 +836,7 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
835 836
836 /* if this is a pseudo-multi-function device, 837 /* if this is a pseudo-multi-function device,
837 * we need explicit matches */ 838 * we need explicit matches */
838 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) 839 if (dev->socket->pcmcia_state.has_pfc)
839 return 0; 840 return 0;
840 if (dev->device_no) 841 if (dev->device_no)
841 return 0; 842 return 0;
@@ -858,10 +859,8 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
858 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FAKE_CIS) { 859 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FAKE_CIS) {
859 dev_dbg(&dev->dev, "device needs a fake CIS\n"); 860 dev_dbg(&dev->dev, "device needs a fake CIS\n");
860 if (!dev->socket->fake_cis) 861 if (!dev->socket->fake_cis)
861 pcmcia_load_firmware(dev, did->cisfile); 862 if (pcmcia_load_firmware(dev, did->cisfile))
862 863 return 0;
863 if (!dev->socket->fake_cis)
864 return 0;
865 } 864 }
866 865
867 if (did->match_flags & PCMCIA_DEV_ID_MATCH_ANONYMOUS) { 866 if (did->match_flags & PCMCIA_DEV_ID_MATCH_ANONYMOUS) {
@@ -1254,9 +1253,7 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1254 1253
1255 switch (event) { 1254 switch (event) {
1256 case CS_EVENT_CARD_REMOVAL: 1255 case CS_EVENT_CARD_REMOVAL:
1257 mutex_lock(&s->ops_mutex); 1256 atomic_set(&skt->present, 0);
1258 s->pcmcia_state.present = 0;
1259 mutex_unlock(&s->ops_mutex);
1260 pcmcia_card_remove(skt, NULL); 1257 pcmcia_card_remove(skt, NULL);
1261 handle_event(skt, event); 1258 handle_event(skt, event);
1262 mutex_lock(&s->ops_mutex); 1259 mutex_lock(&s->ops_mutex);
@@ -1265,9 +1262,9 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1265 break; 1262 break;
1266 1263
1267 case CS_EVENT_CARD_INSERTION: 1264 case CS_EVENT_CARD_INSERTION:
1265 atomic_set(&skt->present, 1);
1268 mutex_lock(&s->ops_mutex); 1266 mutex_lock(&s->ops_mutex);
1269 s->pcmcia_state.has_pfc = 0; 1267 s->pcmcia_state.has_pfc = 0;
1270 s->pcmcia_state.present = 1;
1271 destroy_cis_cache(s); /* to be on the safe side... */ 1268 destroy_cis_cache(s); /* to be on the safe side... */
1272 mutex_unlock(&s->ops_mutex); 1269 mutex_unlock(&s->ops_mutex);
1273 pcmcia_card_add(skt); 1270 pcmcia_card_add(skt);
@@ -1307,7 +1304,13 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1307 return 0; 1304 return 0;
1308} /* ds_event */ 1305} /* ds_event */
1309 1306
1310 1307/*
1308 * NOTE: This is racy. There's no guarantee the card will still be
1309 * physically present, even if the call to this function returns
1310 * non-NULL. Furthermore, the device driver most likely is unbound
1311 * almost immediately, so the timeframe where pcmcia_dev_present
1312 * returns NULL is probably really really small.
1313 */
1311struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev) 1314struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev)
1312{ 1315{
1313 struct pcmcia_device *p_dev; 1316 struct pcmcia_device *p_dev;
@@ -1317,22 +1320,9 @@ struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev)
1317 if (!p_dev) 1320 if (!p_dev)
1318 return NULL; 1321 return NULL;
1319 1322
1320 mutex_lock(&p_dev->socket->ops_mutex); 1323 if (atomic_read(&p_dev->socket->present) != 0)
1321 if (!p_dev->socket->pcmcia_state.present) 1324 ret = p_dev;
1322 goto out;
1323
1324 if (p_dev->socket->pcmcia_state.dead)
1325 goto out;
1326
1327 if (p_dev->_removed)
1328 goto out;
1329
1330 if (p_dev->suspended)
1331 goto out;
1332 1325
1333 ret = p_dev;
1334 out:
1335 mutex_unlock(&p_dev->socket->ops_mutex);
1336 pcmcia_put_dev(p_dev); 1326 pcmcia_put_dev(p_dev);
1337 return ret; 1327 return ret;
1338} 1328}
@@ -1382,6 +1372,8 @@ static int __devinit pcmcia_bus_add_socket(struct device *dev,
1382 return ret; 1372 return ret;
1383 } 1373 }
1384 1374
1375 atomic_set(&socket->present, 0);
1376
1385 return 0; 1377 return 0;
1386} 1378}
1387 1379
@@ -1393,10 +1385,6 @@ static void pcmcia_bus_remove_socket(struct device *dev,
1393 if (!socket) 1385 if (!socket)
1394 return; 1386 return;
1395 1387
1396 mutex_lock(&socket->ops_mutex);
1397 socket->pcmcia_state.dead = 1;
1398 mutex_unlock(&socket->ops_mutex);
1399
1400 pccard_register_pcmcia(socket, NULL); 1388 pccard_register_pcmcia(socket, NULL);
1401 1389
1402 /* unregister any unbound devices */ 1390 /* unregister any unbound devices */
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index caec1dee2a4b..7c3d03bb4f30 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -755,12 +755,12 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
755 else 755 else
756 printk(KERN_WARNING "pcmcia: Driver needs updating to support IRQ sharing.\n"); 756 printk(KERN_WARNING "pcmcia: Driver needs updating to support IRQ sharing.\n");
757 757
758#ifdef CONFIG_PCMCIA_PROBE 758 /* If the interrupt is already assigned, it must be the same */
759 759 if (s->irq.AssignedIRQ != 0)
760 if (s->irq.AssignedIRQ != 0) {
761 /* If the interrupt is already assigned, it must be the same */
762 irq = s->irq.AssignedIRQ; 760 irq = s->irq.AssignedIRQ;
763 } else { 761
762#ifdef CONFIG_PCMCIA_PROBE
763 if (!irq) {
764 int try; 764 int try;
765 u32 mask = s->irq_mask; 765 u32 mask = s->irq_mask;
766 void *data = p_dev; /* something unique to this device */ 766 void *data = p_dev; /* something unique to this device */
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 559069a80a3b..a6eb7b59ba9f 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -214,7 +214,7 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
214 return; 214 return;
215 } 215 }
216 for (i = base, most = 0; i < base+num; i += 8) { 216 for (i = base, most = 0; i < base+num; i += 8) {
217 res = claim_region(NULL, i, 8, IORESOURCE_IO, "PCMCIA ioprobe"); 217 res = claim_region(s, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
218 if (!res) 218 if (!res)
219 continue; 219 continue;
220 hole = inb(i); 220 hole = inb(i);
@@ -231,9 +231,14 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
231 231
232 bad = any = 0; 232 bad = any = 0;
233 for (i = base; i < base+num; i += 8) { 233 for (i = base; i < base+num; i += 8) {
234 res = claim_region(NULL, i, 8, IORESOURCE_IO, "PCMCIA ioprobe"); 234 res = claim_region(s, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
235 if (!res) 235 if (!res) {
236 if (!any)
237 printk(" excluding");
238 if (!bad)
239 bad = any = i;
236 continue; 240 continue;
241 }
237 for (j = 0; j < 8; j++) 242 for (j = 0; j < 8; j++)
238 if (inb(i+j) != most) 243 if (inb(i+j) != most)
239 break; 244 break;
@@ -253,6 +258,7 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
253 } 258 }
254 if (bad) { 259 if (bad) {
255 if ((num > 16) && (bad == base) && (i == base+num)) { 260 if ((num > 16) && (bad == base) && (i == base+num)) {
261 sub_interval(&s_data->io_db, bad, i-bad);
256 printk(" nothing: probe failed.\n"); 262 printk(" nothing: probe failed.\n");
257 return; 263 return;
258 } else { 264 } else {
@@ -804,7 +810,7 @@ static int adjust_memory(struct pcmcia_socket *s, unsigned int action, unsigned
804static int adjust_io(struct pcmcia_socket *s, unsigned int action, unsigned long start, unsigned long end) 810static int adjust_io(struct pcmcia_socket *s, unsigned int action, unsigned long start, unsigned long end)
805{ 811{
806 struct socket_data *data = s->resource_data; 812 struct socket_data *data = s->resource_data;
807 unsigned long size = end - start + 1; 813 unsigned long size;
808 int ret = 0; 814 int ret = 0;
809 815
810#if defined(CONFIG_X86) 816#if defined(CONFIG_X86)
@@ -814,6 +820,8 @@ static int adjust_io(struct pcmcia_socket *s, unsigned int action, unsigned long
814 start = 0x100; 820 start = 0x100;
815#endif 821#endif
816 822
823 size = end - start + 1;
824
817 if (end < start) 825 if (end < start)
818 return -EINVAL; 826 return -EINVAL;
819 827
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 7bec4588c268..6c3320d75055 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -390,6 +390,7 @@ config EEEPC_WMI
390 depends on ACPI_WMI 390 depends on ACPI_WMI
391 depends on INPUT 391 depends on INPUT
392 depends on EXPERIMENTAL 392 depends on EXPERIMENTAL
393 select INPUT_SPARSEKMAP
393 ---help--- 394 ---help---
394 Say Y here if you want to support WMI-based hotkeys on Eee PC laptops. 395 Say Y here if you want to support WMI-based hotkeys on Eee PC laptops.
395 396
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 52262b012abb..efe8f6388906 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -79,15 +79,15 @@ static uint wapf = 1;
79module_param(wapf, uint, 0644); 79module_param(wapf, uint, 0644);
80MODULE_PARM_DESC(wapf, "WAPF value"); 80MODULE_PARM_DESC(wapf, "WAPF value");
81 81
82static uint wlan_status = 1; 82static int wlan_status = 1;
83static uint bluetooth_status = 1; 83static int bluetooth_status = 1;
84 84
85module_param(wlan_status, uint, 0644); 85module_param(wlan_status, int, 0644);
86MODULE_PARM_DESC(wlan_status, "Set the wireless status on boot " 86MODULE_PARM_DESC(wlan_status, "Set the wireless status on boot "
87 "(0 = disabled, 1 = enabled, -1 = don't do anything). " 87 "(0 = disabled, 1 = enabled, -1 = don't do anything). "
88 "default is 1"); 88 "default is 1");
89 89
90module_param(bluetooth_status, uint, 0644); 90module_param(bluetooth_status, int, 0644);
91MODULE_PARM_DESC(bluetooth_status, "Set the wireless status on boot " 91MODULE_PARM_DESC(bluetooth_status, "Set the wireless status on boot "
92 "(0 = disabled, 1 = enabled, -1 = don't do anything). " 92 "(0 = disabled, 1 = enabled, -1 = don't do anything). "
93 "default is 1"); 93 "default is 1");
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 6ba6c30e5bb6..66f53c3c35e8 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -217,6 +217,7 @@ static void dell_wmi_notify(u32 value, void *context)
217 if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { 217 if (dell_new_hk_type && (buffer_entry[1] != 0x10)) {
218 printk(KERN_INFO "dell-wmi: Received unknown WMI event" 218 printk(KERN_INFO "dell-wmi: Received unknown WMI event"
219 " (0x%x)\n", buffer_entry[1]); 219 " (0x%x)\n", buffer_entry[1]);
220 kfree(obj);
220 return; 221 return;
221 } 222 }
222 223
@@ -234,7 +235,7 @@ static void dell_wmi_notify(u32 value, void *context)
234 key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video) { 235 key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video) {
235 /* Don't report brightness notifications that will also 236 /* Don't report brightness notifications that will also
236 * come via ACPI */ 237 * come via ACPI */
237 return; 238 ;
238 } else { 239 } else {
239 input_report_key(dell_wmi_input_dev, key->keycode, 1); 240 input_report_key(dell_wmi_input_dev, key->keycode, 1);
240 input_sync(dell_wmi_input_dev); 241 input_sync(dell_wmi_input_dev);
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 54a015785ca8..0306174ba875 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -169,7 +169,6 @@ struct eeepc_laptop {
169 struct backlight_device *backlight_device; 169 struct backlight_device *backlight_device;
170 170
171 struct input_dev *inputdev; 171 struct input_dev *inputdev;
172 struct key_entry *keymap;
173 172
174 struct rfkill *wlan_rfkill; 173 struct rfkill *wlan_rfkill;
175 struct rfkill *bluetooth_rfkill; 174 struct rfkill *bluetooth_rfkill;
@@ -1204,8 +1203,8 @@ static int eeepc_input_init(struct eeepc_laptop *eeepc)
1204static void eeepc_input_exit(struct eeepc_laptop *eeepc) 1203static void eeepc_input_exit(struct eeepc_laptop *eeepc)
1205{ 1204{
1206 if (eeepc->inputdev) { 1205 if (eeepc->inputdev) {
1206 sparse_keymap_free(eeepc->inputdev);
1207 input_unregister_device(eeepc->inputdev); 1207 input_unregister_device(eeepc->inputdev);
1208 kfree(eeepc->keymap);
1209 } 1208 }
1210} 1209}
1211 1210
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index 9f8822658fd7..b227eb469f49 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -23,6 +23,8 @@
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25 25
26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
27
26#include <linux/kernel.h> 28#include <linux/kernel.h>
27#include <linux/module.h> 29#include <linux/module.h>
28#include <linux/init.h> 30#include <linux/init.h>
@@ -30,22 +32,34 @@
30#include <linux/slab.h> 32#include <linux/slab.h>
31#include <linux/input.h> 33#include <linux/input.h>
32#include <linux/input/sparse-keymap.h> 34#include <linux/input/sparse-keymap.h>
35#include <linux/fb.h>
36#include <linux/backlight.h>
37#include <linux/platform_device.h>
33#include <acpi/acpi_bus.h> 38#include <acpi/acpi_bus.h>
34#include <acpi/acpi_drivers.h> 39#include <acpi/acpi_drivers.h>
35 40
41#define EEEPC_WMI_FILE "eeepc-wmi"
42
36MODULE_AUTHOR("Yong Wang <yong.y.wang@intel.com>"); 43MODULE_AUTHOR("Yong Wang <yong.y.wang@intel.com>");
37MODULE_DESCRIPTION("Eee PC WMI Hotkey Driver"); 44MODULE_DESCRIPTION("Eee PC WMI Hotkey Driver");
38MODULE_LICENSE("GPL"); 45MODULE_LICENSE("GPL");
39 46
40#define EEEPC_WMI_EVENT_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000" 47#define EEEPC_WMI_EVENT_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000"
48#define EEEPC_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66"
41 49
42MODULE_ALIAS("wmi:"EEEPC_WMI_EVENT_GUID); 50MODULE_ALIAS("wmi:"EEEPC_WMI_EVENT_GUID);
51MODULE_ALIAS("wmi:"EEEPC_WMI_MGMT_GUID);
43 52
44#define NOTIFY_BRNUP_MIN 0x11 53#define NOTIFY_BRNUP_MIN 0x11
45#define NOTIFY_BRNUP_MAX 0x1f 54#define NOTIFY_BRNUP_MAX 0x1f
46#define NOTIFY_BRNDOWN_MIN 0x20 55#define NOTIFY_BRNDOWN_MIN 0x20
47#define NOTIFY_BRNDOWN_MAX 0x2e 56#define NOTIFY_BRNDOWN_MAX 0x2e
48 57
58#define EEEPC_WMI_METHODID_DEVS 0x53564544
59#define EEEPC_WMI_METHODID_DSTS 0x53544344
60
61#define EEEPC_WMI_DEVID_BACKLIGHT 0x00050012
62
49static const struct key_entry eeepc_wmi_keymap[] = { 63static const struct key_entry eeepc_wmi_keymap[] = {
50 /* Sleep already handled via generic ACPI code */ 64 /* Sleep already handled via generic ACPI code */
51 { KE_KEY, 0x5d, { KEY_WLAN } }, 65 { KE_KEY, 0x5d, { KEY_WLAN } },
@@ -58,18 +72,198 @@ static const struct key_entry eeepc_wmi_keymap[] = {
58 { KE_END, 0}, 72 { KE_END, 0},
59}; 73};
60 74
61static struct input_dev *eeepc_wmi_input_dev; 75struct bios_args {
76 u32 dev_id;
77 u32 ctrl_param;
78};
79
80struct eeepc_wmi {
81 struct input_dev *inputdev;
82 struct backlight_device *backlight_device;
83};
84
85static struct platform_device *platform_device;
86
87static int eeepc_wmi_input_init(struct eeepc_wmi *eeepc)
88{
89 int err;
90
91 eeepc->inputdev = input_allocate_device();
92 if (!eeepc->inputdev)
93 return -ENOMEM;
94
95 eeepc->inputdev->name = "Eee PC WMI hotkeys";
96 eeepc->inputdev->phys = EEEPC_WMI_FILE "/input0";
97 eeepc->inputdev->id.bustype = BUS_HOST;
98 eeepc->inputdev->dev.parent = &platform_device->dev;
99
100 err = sparse_keymap_setup(eeepc->inputdev, eeepc_wmi_keymap, NULL);
101 if (err)
102 goto err_free_dev;
103
104 err = input_register_device(eeepc->inputdev);
105 if (err)
106 goto err_free_keymap;
107
108 return 0;
109
110err_free_keymap:
111 sparse_keymap_free(eeepc->inputdev);
112err_free_dev:
113 input_free_device(eeepc->inputdev);
114 return err;
115}
116
117static void eeepc_wmi_input_exit(struct eeepc_wmi *eeepc)
118{
119 if (eeepc->inputdev) {
120 sparse_keymap_free(eeepc->inputdev);
121 input_unregister_device(eeepc->inputdev);
122 }
123
124 eeepc->inputdev = NULL;
125}
126
127static acpi_status eeepc_wmi_get_devstate(u32 dev_id, u32 *ctrl_param)
128{
129 struct acpi_buffer input = { (acpi_size)sizeof(u32), &dev_id };
130 struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
131 union acpi_object *obj;
132 acpi_status status;
133 u32 tmp;
134
135 status = wmi_evaluate_method(EEEPC_WMI_MGMT_GUID,
136 1, EEEPC_WMI_METHODID_DSTS, &input, &output);
137
138 if (ACPI_FAILURE(status))
139 return status;
140
141 obj = (union acpi_object *)output.pointer;
142 if (obj && obj->type == ACPI_TYPE_INTEGER)
143 tmp = (u32)obj->integer.value;
144 else
145 tmp = 0;
146
147 if (ctrl_param)
148 *ctrl_param = tmp;
149
150 kfree(obj);
151
152 return status;
153
154}
155
156static acpi_status eeepc_wmi_set_devstate(u32 dev_id, u32 ctrl_param)
157{
158 struct bios_args args = {
159 .dev_id = dev_id,
160 .ctrl_param = ctrl_param,
161 };
162 struct acpi_buffer input = { (acpi_size)sizeof(args), &args };
163 acpi_status status;
164
165 status = wmi_evaluate_method(EEEPC_WMI_MGMT_GUID,
166 1, EEEPC_WMI_METHODID_DEVS, &input, NULL);
167
168 return status;
169}
170
171static int read_brightness(struct backlight_device *bd)
172{
173 static u32 ctrl_param;
174 acpi_status status;
175
176 status = eeepc_wmi_get_devstate(EEEPC_WMI_DEVID_BACKLIGHT, &ctrl_param);
177
178 if (ACPI_FAILURE(status))
179 return -1;
180 else
181 return ctrl_param & 0xFF;
182}
183
184static int update_bl_status(struct backlight_device *bd)
185{
186
187 static u32 ctrl_param;
188 acpi_status status;
189
190 ctrl_param = bd->props.brightness;
191
192 status = eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_BACKLIGHT, ctrl_param);
193
194 if (ACPI_FAILURE(status))
195 return -1;
196 else
197 return 0;
198}
199
200static const struct backlight_ops eeepc_wmi_bl_ops = {
201 .get_brightness = read_brightness,
202 .update_status = update_bl_status,
203};
204
205static int eeepc_wmi_backlight_notify(struct eeepc_wmi *eeepc, int code)
206{
207 struct backlight_device *bd = eeepc->backlight_device;
208 int old = bd->props.brightness;
209 int new;
210
211 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX)
212 new = code - NOTIFY_BRNUP_MIN + 1;
213 else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX)
214 new = code - NOTIFY_BRNDOWN_MIN;
215
216 bd->props.brightness = new;
217 backlight_update_status(bd);
218 backlight_force_update(bd, BACKLIGHT_UPDATE_HOTKEY);
219
220 return old;
221}
222
223static int eeepc_wmi_backlight_init(struct eeepc_wmi *eeepc)
224{
225 struct backlight_device *bd;
226 struct backlight_properties props;
227
228 memset(&props, 0, sizeof(struct backlight_properties));
229 props.max_brightness = 15;
230 bd = backlight_device_register(EEEPC_WMI_FILE,
231 &platform_device->dev, eeepc,
232 &eeepc_wmi_bl_ops, &props);
233 if (IS_ERR(bd)) {
234 pr_err("Could not register backlight device\n");
235 return PTR_ERR(bd);
236 }
237
238 eeepc->backlight_device = bd;
239
240 bd->props.brightness = read_brightness(bd);
241 bd->props.power = FB_BLANK_UNBLANK;
242 backlight_update_status(bd);
243
244 return 0;
245}
246
247static void eeepc_wmi_backlight_exit(struct eeepc_wmi *eeepc)
248{
249 if (eeepc->backlight_device)
250 backlight_device_unregister(eeepc->backlight_device);
251
252 eeepc->backlight_device = NULL;
253}
62 254
63static void eeepc_wmi_notify(u32 value, void *context) 255static void eeepc_wmi_notify(u32 value, void *context)
64{ 256{
257 struct eeepc_wmi *eeepc = context;
65 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; 258 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
66 union acpi_object *obj; 259 union acpi_object *obj;
67 acpi_status status; 260 acpi_status status;
68 int code; 261 int code;
262 int orig_code;
69 263
70 status = wmi_get_event_data(value, &response); 264 status = wmi_get_event_data(value, &response);
71 if (status != AE_OK) { 265 if (status != AE_OK) {
72 pr_err("EEEPC WMI: bad event status 0x%x\n", status); 266 pr_err("bad event status 0x%x\n", status);
73 return; 267 return;
74 } 268 }
75 269
@@ -77,81 +271,142 @@ static void eeepc_wmi_notify(u32 value, void *context)
77 271
78 if (obj && obj->type == ACPI_TYPE_INTEGER) { 272 if (obj && obj->type == ACPI_TYPE_INTEGER) {
79 code = obj->integer.value; 273 code = obj->integer.value;
274 orig_code = code;
80 275
81 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX) 276 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX)
82 code = NOTIFY_BRNUP_MIN; 277 code = NOTIFY_BRNUP_MIN;
83 else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX) 278 else if (code >= NOTIFY_BRNDOWN_MIN &&
279 code <= NOTIFY_BRNDOWN_MAX)
84 code = NOTIFY_BRNDOWN_MIN; 280 code = NOTIFY_BRNDOWN_MIN;
85 281
86 if (!sparse_keymap_report_event(eeepc_wmi_input_dev, 282 if (code == NOTIFY_BRNUP_MIN || code == NOTIFY_BRNDOWN_MIN) {
283 if (!acpi_video_backlight_support())
284 eeepc_wmi_backlight_notify(eeepc, orig_code);
285 }
286
287 if (!sparse_keymap_report_event(eeepc->inputdev,
87 code, 1, true)) 288 code, 1, true))
88 pr_info("EEEPC WMI: Unknown key %x pressed\n", code); 289 pr_info("Unknown key %x pressed\n", code);
89 } 290 }
90 291
91 kfree(obj); 292 kfree(obj);
92} 293}
93 294
94static int eeepc_wmi_input_setup(void) 295static int __devinit eeepc_wmi_platform_probe(struct platform_device *device)
95{ 296{
297 struct eeepc_wmi *eeepc;
96 int err; 298 int err;
299 acpi_status status;
97 300
98 eeepc_wmi_input_dev = input_allocate_device(); 301 eeepc = platform_get_drvdata(device);
99 if (!eeepc_wmi_input_dev)
100 return -ENOMEM;
101
102 eeepc_wmi_input_dev->name = "Eee PC WMI hotkeys";
103 eeepc_wmi_input_dev->phys = "wmi/input0";
104 eeepc_wmi_input_dev->id.bustype = BUS_HOST;
105 302
106 err = sparse_keymap_setup(eeepc_wmi_input_dev, eeepc_wmi_keymap, NULL); 303 err = eeepc_wmi_input_init(eeepc);
107 if (err) 304 if (err)
108 goto err_free_dev; 305 goto error_input;
109 306
110 err = input_register_device(eeepc_wmi_input_dev); 307 if (!acpi_video_backlight_support()) {
111 if (err) 308 err = eeepc_wmi_backlight_init(eeepc);
112 goto err_free_keymap; 309 if (err)
310 goto error_backlight;
311 } else
312 pr_info("Backlight controlled by ACPI video driver\n");
313
314 status = wmi_install_notify_handler(EEEPC_WMI_EVENT_GUID,
315 eeepc_wmi_notify, eeepc);
316 if (ACPI_FAILURE(status)) {
317 pr_err("Unable to register notify handler - %d\n",
318 status);
319 err = -ENODEV;
320 goto error_wmi;
321 }
113 322
114 return 0; 323 return 0;
115 324
116err_free_keymap: 325error_wmi:
117 sparse_keymap_free(eeepc_wmi_input_dev); 326 eeepc_wmi_backlight_exit(eeepc);
118err_free_dev: 327error_backlight:
119 input_free_device(eeepc_wmi_input_dev); 328 eeepc_wmi_input_exit(eeepc);
329error_input:
120 return err; 330 return err;
121} 331}
122 332
333static int __devexit eeepc_wmi_platform_remove(struct platform_device *device)
334{
335 struct eeepc_wmi *eeepc;
336
337 eeepc = platform_get_drvdata(device);
338 wmi_remove_notify_handler(EEEPC_WMI_EVENT_GUID);
339 eeepc_wmi_backlight_exit(eeepc);
340 eeepc_wmi_input_exit(eeepc);
341
342 return 0;
343}
344
345static struct platform_driver platform_driver = {
346 .driver = {
347 .name = EEEPC_WMI_FILE,
348 .owner = THIS_MODULE,
349 },
350 .probe = eeepc_wmi_platform_probe,
351 .remove = __devexit_p(eeepc_wmi_platform_remove),
352};
353
123static int __init eeepc_wmi_init(void) 354static int __init eeepc_wmi_init(void)
124{ 355{
356 struct eeepc_wmi *eeepc;
125 int err; 357 int err;
126 acpi_status status;
127 358
128 if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID)) { 359 if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID) ||
129 pr_warning("EEEPC WMI: No known WMI GUID found\n"); 360 !wmi_has_guid(EEEPC_WMI_MGMT_GUID)) {
361 pr_warning("No known WMI GUID found\n");
130 return -ENODEV; 362 return -ENODEV;
131 } 363 }
132 364
133 err = eeepc_wmi_input_setup(); 365 eeepc = kzalloc(sizeof(struct eeepc_wmi), GFP_KERNEL);
134 if (err) 366 if (!eeepc)
135 return err; 367 return -ENOMEM;
136 368
137 status = wmi_install_notify_handler(EEEPC_WMI_EVENT_GUID, 369 platform_device = platform_device_alloc(EEEPC_WMI_FILE, -1);
138 eeepc_wmi_notify, NULL); 370 if (!platform_device) {
139 if (ACPI_FAILURE(status)) { 371 pr_warning("Unable to allocate platform device\n");
140 sparse_keymap_free(eeepc_wmi_input_dev); 372 err = -ENOMEM;
141 input_unregister_device(eeepc_wmi_input_dev); 373 goto fail_platform;
142 pr_err("EEEPC WMI: Unable to register notify handler - %d\n", 374 }
143 status); 375
144 return -ENODEV; 376 err = platform_device_add(platform_device);
377 if (err) {
378 pr_warning("Unable to add platform device\n");
379 goto put_dev;
380 }
381
382 platform_set_drvdata(platform_device, eeepc);
383
384 err = platform_driver_register(&platform_driver);
385 if (err) {
386 pr_warning("Unable to register platform driver\n");
387 goto del_dev;
145 } 388 }
146 389
147 return 0; 390 return 0;
391
392del_dev:
393 platform_device_del(platform_device);
394put_dev:
395 platform_device_put(platform_device);
396fail_platform:
397 kfree(eeepc);
398
399 return err;
148} 400}
149 401
150static void __exit eeepc_wmi_exit(void) 402static void __exit eeepc_wmi_exit(void)
151{ 403{
152 wmi_remove_notify_handler(EEEPC_WMI_EVENT_GUID); 404 struct eeepc_wmi *eeepc;
153 sparse_keymap_free(eeepc_wmi_input_dev); 405
154 input_unregister_device(eeepc_wmi_input_dev); 406 eeepc = platform_get_drvdata(platform_device);
407 platform_driver_unregister(&platform_driver);
408 platform_device_unregister(platform_device);
409 kfree(eeepc);
155} 410}
156 411
157module_init(eeepc_wmi_init); 412module_init(eeepc_wmi_init);
diff --git a/drivers/regulator/max8925-regulator.c b/drivers/regulator/max8925-regulator.c
index b6218f11c957..552cad85ae5a 100644
--- a/drivers/regulator/max8925-regulator.c
+++ b/drivers/regulator/max8925-regulator.c
@@ -109,7 +109,7 @@ static int max8925_is_enabled(struct regulator_dev *rdev)
109 struct max8925_regulator_info *info = rdev_get_drvdata(rdev); 109 struct max8925_regulator_info *info = rdev_get_drvdata(rdev);
110 int ret; 110 int ret;
111 111
112 ret = max8925_reg_read(info->i2c, info->vol_reg); 112 ret = max8925_reg_read(info->i2c, info->enable_reg);
113 if (ret < 0) 113 if (ret < 0)
114 return ret; 114 return ret;
115 115
diff --git a/drivers/regulator/mc13783-regulator.c b/drivers/regulator/mc13783-regulator.c
index a681f5e8f786..ad036dd8da13 100644
--- a/drivers/regulator/mc13783-regulator.c
+++ b/drivers/regulator/mc13783-regulator.c
@@ -618,9 +618,12 @@ static int __devexit mc13783_regulator_remove(struct platform_device *pdev)
618 dev_get_platdata(&pdev->dev); 618 dev_get_platdata(&pdev->dev);
619 int i; 619 int i;
620 620
621 platform_set_drvdata(pdev, NULL);
622
621 for (i = 0; i < pdata->num_regulators; i++) 623 for (i = 0; i < pdata->num_regulators; i++)
622 regulator_unregister(priv->regulators[i]); 624 regulator_unregister(priv->regulators[i]);
623 625
626 kfree(priv);
624 return 0; 627 return 0;
625} 628}
626 629
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index bbea90baf98f..acf222f91f5a 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -1899,7 +1899,8 @@ restart:
1899 /* Process requests that may be recovered */ 1899 /* Process requests that may be recovered */
1900 if (cqr->status == DASD_CQR_NEED_ERP) { 1900 if (cqr->status == DASD_CQR_NEED_ERP) {
1901 erp_fn = base->discipline->erp_action(cqr); 1901 erp_fn = base->discipline->erp_action(cqr);
1902 erp_fn(cqr); 1902 if (IS_ERR(erp_fn(cqr)))
1903 continue;
1903 goto restart; 1904 goto restart;
1904 } 1905 }
1905 1906
diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c
index 6927e751ce3e..6632649dd6aa 100644
--- a/drivers/s390/block/dasd_3990_erp.c
+++ b/drivers/s390/block/dasd_3990_erp.c
@@ -2309,7 +2309,7 @@ static struct dasd_ccw_req *dasd_3990_erp_add_erp(struct dasd_ccw_req *cqr)
2309 cqr->retries); 2309 cqr->retries);
2310 dasd_block_set_timer(device->block, (HZ << 3)); 2310 dasd_block_set_timer(device->block, (HZ << 3));
2311 } 2311 }
2312 return cqr; 2312 return erp;
2313 } 2313 }
2314 2314
2315 ccw = cqr->cpaddr; 2315 ccw = cqr->cpaddr;
@@ -2372,6 +2372,9 @@ dasd_3990_erp_additional_erp(struct dasd_ccw_req * cqr)
2372 /* add erp and initialize with default TIC */ 2372 /* add erp and initialize with default TIC */
2373 erp = dasd_3990_erp_add_erp(cqr); 2373 erp = dasd_3990_erp_add_erp(cqr);
2374 2374
2375 if (IS_ERR(erp))
2376 return erp;
2377
2375 /* inspect sense, determine specific ERP if possible */ 2378 /* inspect sense, determine specific ERP if possible */
2376 if (erp != cqr) { 2379 if (erp != cqr) {
2377 2380
@@ -2711,6 +2714,8 @@ dasd_3990_erp_action(struct dasd_ccw_req * cqr)
2711 if (erp == NULL) { 2714 if (erp == NULL) {
2712 /* no matching erp found - set up erp */ 2715 /* no matching erp found - set up erp */
2713 erp = dasd_3990_erp_additional_erp(cqr); 2716 erp = dasd_3990_erp_additional_erp(cqr);
2717 if (IS_ERR(erp))
2718 return erp;
2714 } else { 2719 } else {
2715 /* matching erp found - set all leading erp's to DONE */ 2720 /* matching erp found - set all leading erp's to DONE */
2716 erp = dasd_3990_erp_handle_match_erp(cqr, erp); 2721 erp = dasd_3990_erp_handle_match_erp(cqr, erp);
diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c
index 18daf16aa357..7217966f7d31 100644
--- a/drivers/s390/char/zcore.c
+++ b/drivers/s390/char/zcore.c
@@ -638,11 +638,7 @@ static int __init zcore_reipl_init(void)
638 rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE); 638 rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE);
639 else 639 else
640 rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE); 640 rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE);
641 if (rc) { 641 if (rc || csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
642 free_page((unsigned long) ipl_block);
643 return rc;
644 }
645 if (csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
646 ipib_info.checksum) { 642 ipib_info.checksum) {
647 TRACE("Checksum does not match\n"); 643 TRACE("Checksum does not match\n");
648 free_page((unsigned long) ipl_block); 644 free_page((unsigned long) ipl_block);
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index 4038f5b4f144..ce7cb87479fe 100644
--- a/drivers/s390/cio/chsc.c
+++ b/drivers/s390/cio/chsc.c
@@ -29,6 +29,7 @@
29#include "chsc.h" 29#include "chsc.h"
30 30
31static void *sei_page; 31static void *sei_page;
32static DEFINE_SPINLOCK(sda_lock);
32 33
33/** 34/**
34 * chsc_error_from_response() - convert a chsc response to an error 35 * chsc_error_from_response() - convert a chsc response to an error
@@ -832,11 +833,10 @@ void __init chsc_free_sei_area(void)
832 kfree(sei_page); 833 kfree(sei_page);
833} 834}
834 835
835int __init 836int chsc_enable_facility(int operation_code)
836chsc_enable_facility(int operation_code)
837{ 837{
838 int ret; 838 int ret;
839 struct { 839 static struct {
840 struct chsc_header request; 840 struct chsc_header request;
841 u8 reserved1:4; 841 u8 reserved1:4;
842 u8 format:4; 842 u8 format:4;
@@ -849,33 +849,32 @@ chsc_enable_facility(int operation_code)
849 u32 reserved5:4; 849 u32 reserved5:4;
850 u32 format2:4; 850 u32 format2:4;
851 u32 reserved6:24; 851 u32 reserved6:24;
852 } __attribute__ ((packed)) *sda_area; 852 } __attribute__ ((packed, aligned(4096))) sda_area;
853 853
854 sda_area = (void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); 854 spin_lock(&sda_lock);
855 if (!sda_area) 855 memset(&sda_area, 0, sizeof(sda_area));
856 return -ENOMEM; 856 sda_area.request.length = 0x0400;
857 sda_area->request.length = 0x0400; 857 sda_area.request.code = 0x0031;
858 sda_area->request.code = 0x0031; 858 sda_area.operation_code = operation_code;
859 sda_area->operation_code = operation_code;
860 859
861 ret = chsc(sda_area); 860 ret = chsc(&sda_area);
862 if (ret > 0) { 861 if (ret > 0) {
863 ret = (ret == 3) ? -ENODEV : -EBUSY; 862 ret = (ret == 3) ? -ENODEV : -EBUSY;
864 goto out; 863 goto out;
865 } 864 }
866 865
867 switch (sda_area->response.code) { 866 switch (sda_area.response.code) {
868 case 0x0101: 867 case 0x0101:
869 ret = -EOPNOTSUPP; 868 ret = -EOPNOTSUPP;
870 break; 869 break;
871 default: 870 default:
872 ret = chsc_error_from_response(sda_area->response.code); 871 ret = chsc_error_from_response(sda_area.response.code);
873 } 872 }
874 if (ret != 0) 873 if (ret != 0)
875 CIO_CRW_EVENT(2, "chsc: sda (oc=%x) failed (rc=%04x)\n", 874 CIO_CRW_EVENT(2, "chsc: sda (oc=%x) failed (rc=%04x)\n",
876 operation_code, sda_area->response.code); 875 operation_code, sda_area.response.code);
877 out: 876 out:
878 free_page((unsigned long)sda_area); 877 spin_unlock(&sda_lock);
879 return ret; 878 return ret;
880} 879}
881 880
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
index 404f630c27ca..3b6f4adc5094 100644
--- a/drivers/s390/cio/chsc_sch.c
+++ b/drivers/s390/cio/chsc_sch.c
@@ -124,7 +124,7 @@ static int chsc_subchannel_prepare(struct subchannel *sch)
124 * since we don't have a way to clear the subchannel and 124 * since we don't have a way to clear the subchannel and
125 * cannot disable it with a request running. 125 * cannot disable it with a request running.
126 */ 126 */
127 cc = stsch(sch->schid, &schib); 127 cc = stsch_err(sch->schid, &schib);
128 if (!cc && scsw_stctl(&schib.scsw)) 128 if (!cc && scsw_stctl(&schib.scsw))
129 return -EAGAIN; 129 return -EAGAIN;
130 return 0; 130 return 0;
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index f736cdcf08ad..5feea1a371e1 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -361,7 +361,7 @@ int cio_commit_config(struct subchannel *sch)
361 struct schib schib; 361 struct schib schib;
362 int ccode, retry, ret = 0; 362 int ccode, retry, ret = 0;
363 363
364 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) 364 if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
365 return -ENODEV; 365 return -ENODEV;
366 366
367 for (retry = 0; retry < 5; retry++) { 367 for (retry = 0; retry < 5; retry++) {
@@ -372,7 +372,7 @@ int cio_commit_config(struct subchannel *sch)
372 return ccode; 372 return ccode;
373 switch (ccode) { 373 switch (ccode) {
374 case 0: /* successful */ 374 case 0: /* successful */
375 if (stsch(sch->schid, &schib) || 375 if (stsch_err(sch->schid, &schib) ||
376 !css_sch_is_valid(&schib)) 376 !css_sch_is_valid(&schib))
377 return -ENODEV; 377 return -ENODEV;
378 if (cio_check_config(sch, &schib)) { 378 if (cio_check_config(sch, &schib)) {
@@ -404,7 +404,7 @@ int cio_update_schib(struct subchannel *sch)
404{ 404{
405 struct schib schib; 405 struct schib schib;
406 406
407 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) 407 if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
408 return -ENODEV; 408 return -ENODEV;
409 409
410 memcpy(&sch->schib, &schib, sizeof(schib)); 410 memcpy(&sch->schib, &schib, sizeof(schib));
@@ -771,7 +771,7 @@ cio_get_console_sch_no(void)
771 if (console_irq != -1) { 771 if (console_irq != -1) {
772 /* VM provided us with the irq number of the console. */ 772 /* VM provided us with the irq number of the console. */
773 schid.sch_no = console_irq; 773 schid.sch_no = console_irq;
774 if (stsch(schid, &console_subchannel.schib) != 0 || 774 if (stsch_err(schid, &console_subchannel.schib) != 0 ||
775 (console_subchannel.schib.pmcw.st != SUBCHANNEL_TYPE_IO) || 775 (console_subchannel.schib.pmcw.st != SUBCHANNEL_TYPE_IO) ||
776 !console_subchannel.schib.pmcw.dnv) 776 !console_subchannel.schib.pmcw.dnv)
777 return -1; 777 return -1;
@@ -863,10 +863,10 @@ __disable_subchannel_easy(struct subchannel_id schid, struct schib *schib)
863 cc = 0; 863 cc = 0;
864 for (retry=0;retry<3;retry++) { 864 for (retry=0;retry<3;retry++) {
865 schib->pmcw.ena = 0; 865 schib->pmcw.ena = 0;
866 cc = msch(schid, schib); 866 cc = msch_err(schid, schib);
867 if (cc) 867 if (cc)
868 return (cc==3?-ENODEV:-EBUSY); 868 return (cc==3?-ENODEV:-EBUSY);
869 if (stsch(schid, schib) || !css_sch_is_valid(schib)) 869 if (stsch_err(schid, schib) || !css_sch_is_valid(schib))
870 return -ENODEV; 870 return -ENODEV;
871 if (!schib->pmcw.ena) 871 if (!schib->pmcw.ena)
872 return 0; 872 return 0;
@@ -913,7 +913,7 @@ static int stsch_reset(struct subchannel_id schid, struct schib *addr)
913 913
914 pgm_check_occured = 0; 914 pgm_check_occured = 0;
915 s390_base_pgm_handler_fn = cio_reset_pgm_check_handler; 915 s390_base_pgm_handler_fn = cio_reset_pgm_check_handler;
916 rc = stsch(schid, addr); 916 rc = stsch_err(schid, addr);
917 s390_base_pgm_handler_fn = NULL; 917 s390_base_pgm_handler_fn = NULL;
918 918
919 /* The program check handler could have changed pgm_check_occured. */ 919 /* The program check handler could have changed pgm_check_occured. */
@@ -950,7 +950,7 @@ static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data)
950 /* No default clear strategy */ 950 /* No default clear strategy */
951 break; 951 break;
952 } 952 }
953 stsch(schid, &schib); 953 stsch_err(schid, &schib);
954 __disable_subchannel_easy(schid, &schib); 954 __disable_subchannel_easy(schid, &schib);
955 } 955 }
956out: 956out:
@@ -1086,7 +1086,7 @@ int __init cio_get_iplinfo(struct cio_iplinfo *iplinfo)
1086 schid = *(struct subchannel_id *)&S390_lowcore.subchannel_id; 1086 schid = *(struct subchannel_id *)&S390_lowcore.subchannel_id;
1087 if (!schid.one) 1087 if (!schid.one)
1088 return -ENODEV; 1088 return -ENODEV;
1089 if (stsch(schid, &schib)) 1089 if (stsch_err(schid, &schib))
1090 return -ENODEV; 1090 return -ENODEV;
1091 if (schib.pmcw.st != SUBCHANNEL_TYPE_IO) 1091 if (schib.pmcw.st != SUBCHANNEL_TYPE_IO)
1092 return -ENODEV; 1092 return -ENODEV;
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 2769da54f2b9..511649115bd7 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -870,15 +870,10 @@ static int __init css_bus_init(void)
870 870
871 /* Try to enable MSS. */ 871 /* Try to enable MSS. */
872 ret = chsc_enable_facility(CHSC_SDA_OC_MSS); 872 ret = chsc_enable_facility(CHSC_SDA_OC_MSS);
873 switch (ret) { 873 if (ret)
874 case 0: /* Success. */
875 max_ssid = __MAX_SSID;
876 break;
877 case -ENOMEM:
878 goto out;
879 default:
880 max_ssid = 0; 874 max_ssid = 0;
881 } 875 else /* Success. */
876 max_ssid = __MAX_SSID;
882 877
883 ret = slow_subchannel_init(); 878 ret = slow_subchannel_init();
884 if (ret) 879 if (ret)
@@ -1048,6 +1043,11 @@ static int __init channel_subsystem_init_sync(void)
1048} 1043}
1049subsys_initcall_sync(channel_subsystem_init_sync); 1044subsys_initcall_sync(channel_subsystem_init_sync);
1050 1045
1046void channel_subsystem_reinit(void)
1047{
1048 chsc_enable_facility(CHSC_SDA_OC_MSS);
1049}
1050
1051#ifdef CONFIG_PROC_FS 1051#ifdef CONFIG_PROC_FS
1052static ssize_t cio_settle_write(struct file *file, const char __user *buf, 1052static ssize_t cio_settle_write(struct file *file, const char __user *buf,
1053 size_t count, loff_t *ppos) 1053 size_t count, loff_t *ppos)
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index c56ab94612f9..c9b852647f01 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -45,7 +45,7 @@ static void ccw_timeout_log(struct ccw_device *cdev)
45 sch = to_subchannel(cdev->dev.parent); 45 sch = to_subchannel(cdev->dev.parent);
46 private = to_io_private(sch); 46 private = to_io_private(sch);
47 orb = &private->orb; 47 orb = &private->orb;
48 cc = stsch(sch->schid, &schib); 48 cc = stsch_err(sch->schid, &schib);
49 49
50 printk(KERN_WARNING "cio: ccw device timeout occurred at %llx, " 50 printk(KERN_WARNING "cio: ccw device timeout occurred at %llx, "
51 "device information:\n", get_clock()); 51 "device information:\n", get_clock());
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 18564891ea61..b3b1d2f79398 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -2105,7 +2105,8 @@ static void zfcp_fsf_req_trace(struct zfcp_fsf_req *req, struct scsi_cmnd *scsi)
2105 blktrc.inb_usage = req->qdio_req.qdio_inb_usage; 2105 blktrc.inb_usage = req->qdio_req.qdio_inb_usage;
2106 blktrc.outb_usage = req->qdio_req.qdio_outb_usage; 2106 blktrc.outb_usage = req->qdio_req.qdio_outb_usage;
2107 2107
2108 if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA) { 2108 if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA &&
2109 !(req->status & ZFCP_STATUS_FSFREQ_ERROR)) {
2109 blktrc.flags |= ZFCP_BLK_LAT_VALID; 2110 blktrc.flags |= ZFCP_BLK_LAT_VALID;
2110 blktrc.channel_lat = lat_in->channel_lat * ticks; 2111 blktrc.channel_lat = lat_in->channel_lat * ticks;
2111 blktrc.fabric_lat = lat_in->fabric_lat * ticks; 2112 blktrc.fabric_lat = lat_in->fabric_lat * ticks;
@@ -2157,9 +2158,8 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
2157 fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp; 2158 fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp;
2158 zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt); 2159 zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt);
2159 2160
2160 zfcp_fsf_req_trace(req, scpnt);
2161
2162skip_fsfstatus: 2161skip_fsfstatus:
2162 zfcp_fsf_req_trace(req, scpnt);
2163 zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req); 2163 zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req);
2164 2164
2165 scpnt->host_scribble = NULL; 2165 scpnt->host_scribble = NULL;
diff --git a/drivers/scsi/be2iscsi/be_mgmt.c b/drivers/scsi/be2iscsi/be_mgmt.c
index 72617b650a7e..e641922f20bc 100644
--- a/drivers/scsi/be2iscsi/be_mgmt.c
+++ b/drivers/scsi/be2iscsi/be_mgmt.c
@@ -169,6 +169,7 @@ unsigned char mgmt_invalidate_icds(struct beiscsi_hba *phba,
169 SE_DEBUG(DBG_LVL_1, 169 SE_DEBUG(DBG_LVL_1,
170 "Failed to allocate memory for" 170 "Failed to allocate memory for"
171 "mgmt_invalidate_icds \n"); 171 "mgmt_invalidate_icds \n");
172 spin_unlock(&ctrl->mbox_lock);
172 return -1; 173 return -1;
173 } 174 }
174 nonemb_cmd.size = sizeof(struct invalidate_commands_params_in); 175 nonemb_cmd.size = sizeof(struct invalidate_commands_params_in);
diff --git a/drivers/scsi/bnx2i/bnx2i.h b/drivers/scsi/bnx2i/bnx2i.h
index 6cf9dc37d78b..6b624e767d3b 100644
--- a/drivers/scsi/bnx2i/bnx2i.h
+++ b/drivers/scsi/bnx2i/bnx2i.h
@@ -362,6 +362,7 @@ struct bnx2i_hba {
362 u32 num_ccell; 362 u32 num_ccell;
363 363
364 int ofld_conns_active; 364 int ofld_conns_active;
365 wait_queue_head_t eh_wait;
365 366
366 int max_active_conns; 367 int max_active_conns;
367 struct iscsi_cid_queue cid_que; 368 struct iscsi_cid_queue cid_que;
@@ -381,6 +382,7 @@ struct bnx2i_hba {
381 spinlock_t lock; /* protects hba structure access */ 382 spinlock_t lock; /* protects hba structure access */
382 struct mutex net_dev_lock;/* sync net device access */ 383 struct mutex net_dev_lock;/* sync net device access */
383 384
385 int hba_shutdown_tmo;
384 /* 386 /*
385 * PCI related info. 387 * PCI related info.
386 */ 388 */
diff --git a/drivers/scsi/bnx2i/bnx2i_init.c b/drivers/scsi/bnx2i/bnx2i_init.c
index 6d8172e781cf..5d9296c599f6 100644
--- a/drivers/scsi/bnx2i/bnx2i_init.c
+++ b/drivers/scsi/bnx2i/bnx2i_init.c
@@ -177,11 +177,22 @@ void bnx2i_stop(void *handle)
177 struct bnx2i_hba *hba = handle; 177 struct bnx2i_hba *hba = handle;
178 178
179 /* check if cleanup happened in GOING_DOWN context */ 179 /* check if cleanup happened in GOING_DOWN context */
180 clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
181 if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN, 180 if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN,
182 &hba->adapter_state)) 181 &hba->adapter_state))
183 iscsi_host_for_each_session(hba->shost, 182 iscsi_host_for_each_session(hba->shost,
184 bnx2i_drop_session); 183 bnx2i_drop_session);
184
185 /* Wait for all endpoints to be torn down, Chip will be reset once
186 * control returns to network driver. So it is required to cleanup and
187 * release all connection resources before returning from this routine.
188 */
189 wait_event_interruptible_timeout(hba->eh_wait,
190 (hba->ofld_conns_active == 0),
191 hba->hba_shutdown_tmo);
192 /* This flag should be cleared last so that ep_disconnect() gracefully
193 * cleans up connection context
194 */
195 clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
185} 196}
186 197
187/** 198/**
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index f2e9b18fe76c..fa68ab34b998 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -820,6 +820,11 @@ struct bnx2i_hba *bnx2i_alloc_hba(struct cnic_dev *cnic)
820 820
821 spin_lock_init(&hba->lock); 821 spin_lock_init(&hba->lock);
822 mutex_init(&hba->net_dev_lock); 822 mutex_init(&hba->net_dev_lock);
823 init_waitqueue_head(&hba->eh_wait);
824 if (test_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type))
825 hba->hba_shutdown_tmo = 240 * HZ;
826 else /* 5706/5708/5709 */
827 hba->hba_shutdown_tmo = 30 * HZ;
823 828
824 if (iscsi_host_add(shost, &hba->pcidev->dev)) 829 if (iscsi_host_add(shost, &hba->pcidev->dev))
825 goto free_dump_mem; 830 goto free_dump_mem;
@@ -1658,8 +1663,8 @@ static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
1658 */ 1663 */
1659 hba = bnx2i_check_route(dst_addr); 1664 hba = bnx2i_check_route(dst_addr);
1660 1665
1661 if (!hba) { 1666 if (!hba || test_bit(ADAPTER_STATE_GOING_DOWN, &hba->adapter_state)) {
1662 rc = -ENOMEM; 1667 rc = -EINVAL;
1663 goto check_busy; 1668 goto check_busy;
1664 } 1669 }
1665 1670
@@ -1804,7 +1809,7 @@ static int bnx2i_ep_poll(struct iscsi_endpoint *ep, int timeout_ms)
1804 (bnx2i_ep->state == 1809 (bnx2i_ep->state ==
1805 EP_STATE_CONNECT_COMPL)), 1810 EP_STATE_CONNECT_COMPL)),
1806 msecs_to_jiffies(timeout_ms)); 1811 msecs_to_jiffies(timeout_ms));
1807 if (!rc || (bnx2i_ep->state == EP_STATE_OFLD_FAILED)) 1812 if (bnx2i_ep->state == EP_STATE_OFLD_FAILED)
1808 rc = -1; 1813 rc = -1;
1809 1814
1810 if (rc > 0) 1815 if (rc > 0)
@@ -1957,6 +1962,8 @@ return_bnx2i_ep:
1957 1962
1958 if (!hba->ofld_conns_active) 1963 if (!hba->ofld_conns_active)
1959 bnx2i_unreg_dev_all(); 1964 bnx2i_unreg_dev_all();
1965
1966 wake_up_interruptible(&hba->eh_wait);
1960} 1967}
1961 1968
1962 1969
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 496764349c41..0435d044c9da 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -188,7 +188,8 @@ MODULE_DEVICE_TABLE(pci,dptids);
188static int adpt_detect(struct scsi_host_template* sht) 188static int adpt_detect(struct scsi_host_template* sht)
189{ 189{
190 struct pci_dev *pDev = NULL; 190 struct pci_dev *pDev = NULL;
191 adpt_hba* pHba; 191 adpt_hba *pHba;
192 adpt_hba *next;
192 193
193 PINFO("Detecting Adaptec I2O RAID controllers...\n"); 194 PINFO("Detecting Adaptec I2O RAID controllers...\n");
194 195
@@ -206,7 +207,8 @@ static int adpt_detect(struct scsi_host_template* sht)
206 } 207 }
207 208
208 /* In INIT state, Activate IOPs */ 209 /* In INIT state, Activate IOPs */
209 for (pHba = hba_chain; pHba; pHba = pHba->next) { 210 for (pHba = hba_chain; pHba; pHba = next) {
211 next = pHba->next;
210 // Activate does get status , init outbound, and get hrt 212 // Activate does get status , init outbound, and get hrt
211 if (adpt_i2o_activate_hba(pHba) < 0) { 213 if (adpt_i2o_activate_hba(pHba) < 0) {
212 adpt_i2o_delete_hba(pHba); 214 adpt_i2o_delete_hba(pHba);
@@ -243,7 +245,8 @@ rebuild_sys_tab:
243 PDEBUG("HBA's in OPERATIONAL state\n"); 245 PDEBUG("HBA's in OPERATIONAL state\n");
244 246
245 printk("dpti: If you have a lot of devices this could take a few minutes.\n"); 247 printk("dpti: If you have a lot of devices this could take a few minutes.\n");
246 for (pHba = hba_chain; pHba; pHba = pHba->next) { 248 for (pHba = hba_chain; pHba; pHba = next) {
249 next = pHba->next;
247 printk(KERN_INFO"%s: Reading the hardware resource table.\n", pHba->name); 250 printk(KERN_INFO"%s: Reading the hardware resource table.\n", pHba->name);
248 if (adpt_i2o_lct_get(pHba) < 0){ 251 if (adpt_i2o_lct_get(pHba) < 0){
249 adpt_i2o_delete_hba(pHba); 252 adpt_i2o_delete_hba(pHba);
@@ -263,7 +266,8 @@ rebuild_sys_tab:
263 adpt_sysfs_class = NULL; 266 adpt_sysfs_class = NULL;
264 } 267 }
265 268
266 for (pHba = hba_chain; pHba; pHba = pHba->next) { 269 for (pHba = hba_chain; pHba; pHba = next) {
270 next = pHba->next;
267 if (adpt_scsi_host_alloc(pHba, sht) < 0){ 271 if (adpt_scsi_host_alloc(pHba, sht) < 0){
268 adpt_i2o_delete_hba(pHba); 272 adpt_i2o_delete_hba(pHba);
269 continue; 273 continue;
@@ -1229,11 +1233,10 @@ static void adpt_i2o_delete_hba(adpt_hba* pHba)
1229 } 1233 }
1230 } 1234 }
1231 pci_dev_put(pHba->pDev); 1235 pci_dev_put(pHba->pDev);
1232 kfree(pHba);
1233
1234 if (adpt_sysfs_class) 1236 if (adpt_sysfs_class)
1235 device_destroy(adpt_sysfs_class, 1237 device_destroy(adpt_sysfs_class,
1236 MKDEV(DPTI_I2O_MAJOR, pHba->unit)); 1238 MKDEV(DPTI_I2O_MAJOR, pHba->unit));
1239 kfree(pHba);
1237 1240
1238 if(hba_count <= 0){ 1241 if(hba_count <= 0){
1239 unregister_chrdev(DPTI_I2O_MAJOR, DPT_DRIVER); 1242 unregister_chrdev(DPTI_I2O_MAJOR, DPT_DRIVER);
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index ff5ec5ac1fb5..88bad0e81bdd 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -323,16 +323,6 @@ static void set_srp_direction(struct scsi_cmnd *cmd,
323 srp_cmd->buf_fmt = fmt; 323 srp_cmd->buf_fmt = fmt;
324} 324}
325 325
326static void unmap_sg_list(int num_entries,
327 struct device *dev,
328 struct srp_direct_buf *md)
329{
330 int i;
331
332 for (i = 0; i < num_entries; ++i)
333 dma_unmap_single(dev, md[i].va, md[i].len, DMA_BIDIRECTIONAL);
334}
335
336/** 326/**
337 * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format 327 * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format
338 * @cmd: srp_cmd whose additional_data member will be unmapped 328 * @cmd: srp_cmd whose additional_data member will be unmapped
@@ -350,24 +340,9 @@ static void unmap_cmd_data(struct srp_cmd *cmd,
350 340
351 if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC) 341 if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC)
352 return; 342 return;
353 else if (out_fmt == SRP_DATA_DESC_DIRECT ||
354 in_fmt == SRP_DATA_DESC_DIRECT) {
355 struct srp_direct_buf *data =
356 (struct srp_direct_buf *) cmd->add_data;
357 dma_unmap_single(dev, data->va, data->len, DMA_BIDIRECTIONAL);
358 } else {
359 struct srp_indirect_buf *indirect =
360 (struct srp_indirect_buf *) cmd->add_data;
361 int num_mapped = indirect->table_desc.len /
362 sizeof(struct srp_direct_buf);
363 343
364 if (num_mapped <= MAX_INDIRECT_BUFS) { 344 if (evt_struct->cmnd)
365 unmap_sg_list(num_mapped, dev, &indirect->desc_list[0]); 345 scsi_dma_unmap(evt_struct->cmnd);
366 return;
367 }
368
369 unmap_sg_list(num_mapped, dev, evt_struct->ext_list);
370 }
371} 346}
372 347
373static int map_sg_list(struct scsi_cmnd *cmd, int nseg, 348static int map_sg_list(struct scsi_cmnd *cmd, int nseg,
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 0ee725ced511..02143af7c1af 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -599,7 +599,7 @@ static void iscsi_sw_tcp_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx); 599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock); 600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock);
601 601
602 if (sock->sk->sk_sleep && waitqueue_active(sock->sk->sk_sleep)) { 602 if (sock->sk->sk_sleep) {
603 sock->sk->sk_err = EIO; 603 sock->sk->sk_err = EIO;
604 wake_up_interruptible(sock->sk->sk_sleep); 604 wake_up_interruptible(sock->sk->sk_sleep);
605 } 605 }
diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
index ec3723831e89..d62b3e467926 100644
--- a/drivers/scsi/lpfc/lpfc_bsg.c
+++ b/drivers/scsi/lpfc/lpfc_bsg.c
@@ -433,7 +433,7 @@ lpfc_bsg_rport_els_cmp(struct lpfc_hba *phba,
433 dd_data = cmdiocbq->context1; 433 dd_data = cmdiocbq->context1;
434 /* normal completion and timeout crossed paths, already done */ 434 /* normal completion and timeout crossed paths, already done */
435 if (!dd_data) { 435 if (!dd_data) {
436 spin_unlock_irqrestore(&phba->hbalock, flags); 436 spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
437 return; 437 return;
438 } 438 }
439 439
@@ -1196,7 +1196,7 @@ lpfc_issue_ct_rsp_cmp(struct lpfc_hba *phba,
1196 dd_data = cmdiocbq->context1; 1196 dd_data = cmdiocbq->context1;
1197 /* normal completion and timeout crossed paths, already done */ 1197 /* normal completion and timeout crossed paths, already done */
1198 if (!dd_data) { 1198 if (!dd_data) {
1199 spin_unlock_irqrestore(&phba->hbalock, flags); 1199 spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
1200 return; 1200 return;
1201 } 1201 }
1202 1202
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 359e9a71a021..1c7ef55966fb 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -2393,6 +2393,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
2393 return 0; 2393 return 0;
2394 2394
2395done: 2395done:
2396 spin_unlock_irqrestore(&ha->hardware_lock, flags);
2396 if (bsg_job->request->msgcode == FC_BSG_HST_CT) 2397 if (bsg_job->request->msgcode == FC_BSG_HST_CT)
2397 kfree(sp->fcport); 2398 kfree(sp->fcport);
2398 kfree(sp->ctx); 2399 kfree(sp->ctx);
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 09d6d4b76f39..caeb7d10ae04 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -467,7 +467,7 @@ int qla4xxx_get_fwddb_entry(struct scsi_qla_host *ha,
467 if (conn_err_detail) 467 if (conn_err_detail)
468 *conn_err_detail = mbox_sts[5]; 468 *conn_err_detail = mbox_sts[5];
469 if (tcp_source_port_num) 469 if (tcp_source_port_num)
470 *tcp_source_port_num = (uint16_t) mbox_sts[6] >> 16; 470 *tcp_source_port_num = (uint16_t) (mbox_sts[6] >> 16);
471 if (connection_id) 471 if (connection_id)
472 *connection_id = (uint16_t) mbox_sts[6] & 0x00FF; 472 *connection_id = (uint16_t) mbox_sts[6] & 0x00FF;
473 status = QLA_SUCCESS; 473 status = QLA_SUCCESS;
diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c
index d0b7d2ff9ac5..333580bf37c5 100644
--- a/drivers/scsi/wd7000.c
+++ b/drivers/scsi/wd7000.c
@@ -1587,7 +1587,7 @@ static int wd7000_host_reset(struct scsi_cmnd *SCpnt)
1587{ 1587{
1588 Adapter *host = (Adapter *) SCpnt->device->host->hostdata; 1588 Adapter *host = (Adapter *) SCpnt->device->host->hostdata;
1589 1589
1590 spin_unlock_irq(SCpnt->device->host->host_lock); 1590 spin_lock_irq(SCpnt->device->host->host_lock);
1591 1591
1592 if (wd7000_adapter_reset(host) < 0) { 1592 if (wd7000_adapter_reset(host) < 0) {
1593 spin_unlock_irq(SCpnt->device->host->host_lock); 1593 spin_unlock_irq(SCpnt->device->host->host_lock);
diff --git a/drivers/serial/mcf.c b/drivers/serial/mcf.c
index 7bb5fee639e3..b5aaef965f24 100644
--- a/drivers/serial/mcf.c
+++ b/drivers/serial/mcf.c
@@ -263,6 +263,7 @@ static void mcf_set_termios(struct uart_port *port, struct ktermios *termios,
263 } 263 }
264 264
265 spin_lock_irqsave(&port->lock, flags); 265 spin_lock_irqsave(&port->lock, flags);
266 uart_update_timeout(port, termios->c_cflag, baud);
266 writeb(MCFUART_UCR_CMDRESETRX, port->membase + MCFUART_UCR); 267 writeb(MCFUART_UCR_CMDRESETRX, port->membase + MCFUART_UCR);
267 writeb(MCFUART_UCR_CMDRESETTX, port->membase + MCFUART_UCR); 268 writeb(MCFUART_UCR_CMDRESETTX, port->membase + MCFUART_UCR);
268 writeb(MCFUART_UCR_CMDRESETMRPTR, port->membase + MCFUART_UCR); 269 writeb(MCFUART_UCR_CMDRESETMRPTR, port->membase + MCFUART_UCR);
@@ -379,6 +380,7 @@ static irqreturn_t mcf_interrupt(int irq, void *data)
379static void mcf_config_port(struct uart_port *port, int flags) 380static void mcf_config_port(struct uart_port *port, int flags)
380{ 381{
381 port->type = PORT_MCF; 382 port->type = PORT_MCF;
383 port->fifosize = MCFUART_TXFIFOSIZE;
382 384
383 /* Clear mask, so no surprise interrupts. */ 385 /* Clear mask, so no surprise interrupts. */
384 writeb(0, port->membase + MCFUART_UIMR); 386 writeb(0, port->membase + MCFUART_UIMR);
@@ -424,7 +426,7 @@ static int mcf_verify_port(struct uart_port *port, struct serial_struct *ser)
424/* 426/*
425 * Define the basic serial functions we support. 427 * Define the basic serial functions we support.
426 */ 428 */
427static struct uart_ops mcf_uart_ops = { 429static const struct uart_ops mcf_uart_ops = {
428 .tx_empty = mcf_tx_empty, 430 .tx_empty = mcf_tx_empty,
429 .get_mctrl = mcf_get_mctrl, 431 .get_mctrl = mcf_get_mctrl,
430 .set_mctrl = mcf_set_mctrl, 432 .set_mctrl = mcf_set_mctrl,
@@ -443,7 +445,7 @@ static struct uart_ops mcf_uart_ops = {
443 .verify_port = mcf_verify_port, 445 .verify_port = mcf_verify_port,
444}; 446};
445 447
446static struct mcf_uart mcf_ports[3]; 448static struct mcf_uart mcf_ports[4];
447 449
448#define MCF_MAXPORTS ARRAY_SIZE(mcf_ports) 450#define MCF_MAXPORTS ARRAY_SIZE(mcf_ports)
449 451
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 175d202ab37e..8cfa5b12ea7a 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -105,6 +105,10 @@ struct serial_cfg_mem {
105 * manfid 0x0160, 0x0104 105 * manfid 0x0160, 0x0104
106 * This card appears to have a 14.7456MHz clock. 106 * This card appears to have a 14.7456MHz clock.
107 */ 107 */
108/* Generic Modem: MD55x (GPRS/EDGE) have
109 * Elan VPU16551 UART with 14.7456MHz oscillator
110 * manfid 0x015D, 0x4C45
111 */
108static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port) 112static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port)
109{ 113{
110 port->uartclk = 14745600; 114 port->uartclk = 14745600;
@@ -196,6 +200,11 @@ static const struct serial_quirk quirks[] = {
196 .multi = -1, 200 .multi = -1,
197 .setup = quirk_setup_brainboxes_0104, 201 .setup = quirk_setup_brainboxes_0104,
198 }, { 202 }, {
203 .manfid = 0x015D,
204 .prodid = 0x4C45,
205 .multi = -1,
206 .setup = quirk_setup_brainboxes_0104,
207 }, {
199 .manfid = MANFID_IBM, 208 .manfid = MANFID_IBM,
200 .prodid = ~0, 209 .prodid = ~0,
201 .multi = -1, 210 .multi = -1,
diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c
index 2e71bbc04dac..b1962025b1aa 100644
--- a/drivers/serial/serial_ks8695.c
+++ b/drivers/serial/serial_ks8695.c
@@ -650,6 +650,7 @@ static struct console ks8695_console = {
650 650
651static int __init ks8695_console_init(void) 651static int __init ks8695_console_init(void)
652{ 652{
653 add_preferred_console(SERIAL_KS8695_DEVNAME, 0, NULL);
653 register_console(&ks8695_console); 654 register_console(&ks8695_console);
654 return 0; 655 return 0;
655} 656}
diff --git a/drivers/staging/dt3155/dt3155_drv.c b/drivers/staging/dt3155/dt3155_drv.c
index a67c622869d2..e2c44ec6fc45 100644
--- a/drivers/staging/dt3155/dt3155_drv.c
+++ b/drivers/staging/dt3155/dt3155_drv.c
@@ -57,19 +57,8 @@ MA 02111-1307 USA
57 57
58extern void printques(int); 58extern void printques(int);
59 59
60#ifdef MODULE
61#include <linux/module.h> 60#include <linux/module.h>
62#include <linux/interrupt.h> 61#include <linux/interrupt.h>
63
64
65MODULE_LICENSE("GPL");
66
67#endif
68
69#ifndef CONFIG_PCI
70#error "DT3155 : Kernel PCI support not enabled (DT3155 drive requires PCI)"
71#endif
72
73#include <linux/pci.h> 62#include <linux/pci.h>
74#include <linux/types.h> 63#include <linux/types.h>
75#include <linux/poll.h> 64#include <linux/poll.h>
@@ -84,6 +73,9 @@ MODULE_LICENSE("GPL");
84#include "dt3155_io.h" 73#include "dt3155_io.h"
85#include "allocator.h" 74#include "allocator.h"
86 75
76
77MODULE_LICENSE("GPL");
78
87/* Error variable. Zero means no error. */ 79/* Error variable. Zero means no error. */
88int dt3155_errno = 0; 80int dt3155_errno = 0;
89 81
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 6a3b5cae3a6e..2f3dc4cdf79b 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -301,7 +301,7 @@ static int usb_probe_interface(struct device *dev)
301 301
302 intf->condition = USB_INTERFACE_BINDING; 302 intf->condition = USB_INTERFACE_BINDING;
303 303
304 /* Bound interfaces are initially active. They are 304 /* Probed interfaces are initially active. They are
305 * runtime-PM-enabled only if the driver has autosuspend support. 305 * runtime-PM-enabled only if the driver has autosuspend support.
306 * They are sensitive to their children's power states. 306 * They are sensitive to their children's power states.
307 */ 307 */
@@ -437,11 +437,11 @@ int usb_driver_claim_interface(struct usb_driver *driver,
437 437
438 iface->condition = USB_INTERFACE_BOUND; 438 iface->condition = USB_INTERFACE_BOUND;
439 439
440 /* Bound interfaces are initially active. They are 440 /* Claimed interfaces are initially inactive (suspended). They are
441 * runtime-PM-enabled only if the driver has autosuspend support. 441 * runtime-PM-enabled only if the driver has autosuspend support.
442 * They are sensitive to their children's power states. 442 * They are sensitive to their children's power states.
443 */ 443 */
444 pm_runtime_set_active(dev); 444 pm_runtime_set_suspended(dev);
445 pm_suspend_ignore_children(dev, false); 445 pm_suspend_ignore_children(dev, false);
446 if (driver->supports_autosuspend) 446 if (driver->supports_autosuspend)
447 pm_runtime_enable(dev); 447 pm_runtime_enable(dev);
@@ -1170,7 +1170,7 @@ done:
1170static int usb_suspend_both(struct usb_device *udev, pm_message_t msg) 1170static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1171{ 1171{
1172 int status = 0; 1172 int status = 0;
1173 int i = 0; 1173 int i = 0, n = 0;
1174 struct usb_interface *intf; 1174 struct usb_interface *intf;
1175 1175
1176 if (udev->state == USB_STATE_NOTATTACHED || 1176 if (udev->state == USB_STATE_NOTATTACHED ||
@@ -1179,7 +1179,8 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1179 1179
1180 /* Suspend all the interfaces and then udev itself */ 1180 /* Suspend all the interfaces and then udev itself */
1181 if (udev->actconfig) { 1181 if (udev->actconfig) {
1182 for (; i < udev->actconfig->desc.bNumInterfaces; i++) { 1182 n = udev->actconfig->desc.bNumInterfaces;
1183 for (i = n - 1; i >= 0; --i) {
1183 intf = udev->actconfig->interface[i]; 1184 intf = udev->actconfig->interface[i];
1184 status = usb_suspend_interface(udev, intf, msg); 1185 status = usb_suspend_interface(udev, intf, msg);
1185 if (status != 0) 1186 if (status != 0)
@@ -1192,7 +1193,7 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1192 /* If the suspend failed, resume interfaces that did get suspended */ 1193 /* If the suspend failed, resume interfaces that did get suspended */
1193 if (status != 0) { 1194 if (status != 0) {
1194 msg.event ^= (PM_EVENT_SUSPEND | PM_EVENT_RESUME); 1195 msg.event ^= (PM_EVENT_SUSPEND | PM_EVENT_RESUME);
1195 while (--i >= 0) { 1196 while (++i < n) {
1196 intf = udev->actconfig->interface[i]; 1197 intf = udev->actconfig->interface[i];
1197 usb_resume_interface(udev, intf, msg, 0); 1198 usb_resume_interface(udev, intf, msg, 0);
1198 } 1199 }
@@ -1263,13 +1264,47 @@ static int usb_resume_both(struct usb_device *udev, pm_message_t msg)
1263 return status; 1264 return status;
1264} 1265}
1265 1266
1267static void choose_wakeup(struct usb_device *udev, pm_message_t msg)
1268{
1269 int w, i;
1270 struct usb_interface *intf;
1271
1272 /* Remote wakeup is needed only when we actually go to sleep.
1273 * For things like FREEZE and QUIESCE, if the device is already
1274 * autosuspended then its current wakeup setting is okay.
1275 */
1276 if (msg.event == PM_EVENT_FREEZE || msg.event == PM_EVENT_QUIESCE) {
1277 if (udev->state != USB_STATE_SUSPENDED)
1278 udev->do_remote_wakeup = 0;
1279 return;
1280 }
1281
1282 /* If remote wakeup is permitted, see whether any interface drivers
1283 * actually want it.
1284 */
1285 w = 0;
1286 if (device_may_wakeup(&udev->dev) && udev->actconfig) {
1287 for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) {
1288 intf = udev->actconfig->interface[i];
1289 w |= intf->needs_remote_wakeup;
1290 }
1291 }
1292
1293 /* If the device is autosuspended with the wrong wakeup setting,
1294 * autoresume now so the setting can be changed.
1295 */
1296 if (udev->state == USB_STATE_SUSPENDED && w != udev->do_remote_wakeup)
1297 pm_runtime_resume(&udev->dev);
1298 udev->do_remote_wakeup = w;
1299}
1300
1266/* The device lock is held by the PM core */ 1301/* The device lock is held by the PM core */
1267int usb_suspend(struct device *dev, pm_message_t msg) 1302int usb_suspend(struct device *dev, pm_message_t msg)
1268{ 1303{
1269 struct usb_device *udev = to_usb_device(dev); 1304 struct usb_device *udev = to_usb_device(dev);
1270 1305
1271 do_unbind_rebind(udev, DO_UNBIND); 1306 do_unbind_rebind(udev, DO_UNBIND);
1272 udev->do_remote_wakeup = device_may_wakeup(&udev->dev); 1307 choose_wakeup(udev, msg);
1273 return usb_suspend_both(udev, msg); 1308 return usb_suspend_both(udev, msg);
1274} 1309}
1275 1310
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 207e7a85aeb0..13ead00aecd5 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -543,6 +543,7 @@ static int ehci_init(struct usb_hcd *hcd)
543 */ 543 */
544 ehci->periodic_size = DEFAULT_I_TDPS; 544 ehci->periodic_size = DEFAULT_I_TDPS;
545 INIT_LIST_HEAD(&ehci->cached_itd_list); 545 INIT_LIST_HEAD(&ehci->cached_itd_list);
546 INIT_LIST_HEAD(&ehci->cached_sitd_list);
546 if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0) 547 if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0)
547 return retval; 548 return retval;
548 549
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index 19372673bf09..c7178bcde67a 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -801,7 +801,7 @@ static int ehci_hub_control (
801 * this bit; seems too long to spin routinely... 801 * this bit; seems too long to spin routinely...
802 */ 802 */
803 retval = handshake(ehci, status_reg, 803 retval = handshake(ehci, status_reg,
804 PORT_RESET, 0, 750); 804 PORT_RESET, 0, 1000);
805 if (retval != 0) { 805 if (retval != 0) {
806 ehci_err (ehci, "port %d reset error %d\n", 806 ehci_err (ehci, "port %d reset error %d\n",
807 wIndex + 1, retval); 807 wIndex + 1, retval);
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index aeda96e0af67..1f3f01eacaf0 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -136,7 +136,7 @@ static inline void qh_put (struct ehci_qh *qh)
136 136
137static void ehci_mem_cleanup (struct ehci_hcd *ehci) 137static void ehci_mem_cleanup (struct ehci_hcd *ehci)
138{ 138{
139 free_cached_itd_list(ehci); 139 free_cached_lists(ehci);
140 if (ehci->async) 140 if (ehci->async)
141 qh_put (ehci->async); 141 qh_put (ehci->async);
142 ehci->async = NULL; 142 ehci->async = NULL;
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index a67a0030dd57..40a858335035 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -629,11 +629,13 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
629 } 629 }
630 snprintf(supply, sizeof(supply), "hsusb%d", i); 630 snprintf(supply, sizeof(supply), "hsusb%d", i);
631 omap->regulator[i] = regulator_get(omap->dev, supply); 631 omap->regulator[i] = regulator_get(omap->dev, supply);
632 if (IS_ERR(omap->regulator[i])) 632 if (IS_ERR(omap->regulator[i])) {
633 omap->regulator[i] = NULL;
633 dev_dbg(&pdev->dev, 634 dev_dbg(&pdev->dev,
634 "failed to get ehci port%d regulator\n", i); 635 "failed to get ehci port%d regulator\n", i);
635 else 636 } else {
636 regulator_enable(omap->regulator[i]); 637 regulator_enable(omap->regulator[i]);
638 }
637 } 639 }
638 640
639 ret = omap_start_ehc(omap, hcd); 641 ret = omap_start_ehc(omap, hcd);
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index a0aaaaff2560..805ec633a652 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -510,7 +510,7 @@ static int disable_periodic (struct ehci_hcd *ehci)
510 ehci_writel(ehci, cmd, &ehci->regs->command); 510 ehci_writel(ehci, cmd, &ehci->regs->command);
511 /* posted write ... */ 511 /* posted write ... */
512 512
513 free_cached_itd_list(ehci); 513 free_cached_lists(ehci);
514 514
515 ehci->next_uframe = -1; 515 ehci->next_uframe = -1;
516 return 0; 516 return 0;
@@ -2139,13 +2139,27 @@ sitd_complete (
2139 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); 2139 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out");
2140 } 2140 }
2141 iso_stream_put (ehci, stream); 2141 iso_stream_put (ehci, stream);
2142 /* OK to recycle this SITD now that its completion callback ran. */ 2142
2143done: 2143done:
2144 sitd->urb = NULL; 2144 sitd->urb = NULL;
2145 sitd->stream = NULL; 2145 if (ehci->clock_frame != sitd->frame) {
2146 list_move(&sitd->sitd_list, &stream->free_list); 2146 /* OK to recycle this SITD now. */
2147 iso_stream_put(ehci, stream); 2147 sitd->stream = NULL;
2148 2148 list_move(&sitd->sitd_list, &stream->free_list);
2149 iso_stream_put(ehci, stream);
2150 } else {
2151 /* HW might remember this SITD, so we can't recycle it yet.
2152 * Move it to a safe place until a new frame starts.
2153 */
2154 list_move(&sitd->sitd_list, &ehci->cached_sitd_list);
2155 if (stream->refcount == 2) {
2156 /* If iso_stream_put() were called here, stream
2157 * would be freed. Instead, just prevent reuse.
2158 */
2159 stream->ep->hcpriv = NULL;
2160 stream->ep = NULL;
2161 }
2162 }
2149 return retval; 2163 return retval;
2150} 2164}
2151 2165
@@ -2211,9 +2225,10 @@ done:
2211 2225
2212/*-------------------------------------------------------------------------*/ 2226/*-------------------------------------------------------------------------*/
2213 2227
2214static void free_cached_itd_list(struct ehci_hcd *ehci) 2228static void free_cached_lists(struct ehci_hcd *ehci)
2215{ 2229{
2216 struct ehci_itd *itd, *n; 2230 struct ehci_itd *itd, *n;
2231 struct ehci_sitd *sitd, *sn;
2217 2232
2218 list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) { 2233 list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) {
2219 struct ehci_iso_stream *stream = itd->stream; 2234 struct ehci_iso_stream *stream = itd->stream;
@@ -2221,6 +2236,13 @@ static void free_cached_itd_list(struct ehci_hcd *ehci)
2221 list_move(&itd->itd_list, &stream->free_list); 2236 list_move(&itd->itd_list, &stream->free_list);
2222 iso_stream_put(ehci, stream); 2237 iso_stream_put(ehci, stream);
2223 } 2238 }
2239
2240 list_for_each_entry_safe(sitd, sn, &ehci->cached_sitd_list, sitd_list) {
2241 struct ehci_iso_stream *stream = sitd->stream;
2242 sitd->stream = NULL;
2243 list_move(&sitd->sitd_list, &stream->free_list);
2244 iso_stream_put(ehci, stream);
2245 }
2224} 2246}
2225 2247
2226/*-------------------------------------------------------------------------*/ 2248/*-------------------------------------------------------------------------*/
@@ -2247,7 +2269,7 @@ scan_periodic (struct ehci_hcd *ehci)
2247 clock_frame = -1; 2269 clock_frame = -1;
2248 } 2270 }
2249 if (ehci->clock_frame != clock_frame) { 2271 if (ehci->clock_frame != clock_frame) {
2250 free_cached_itd_list(ehci); 2272 free_cached_lists(ehci);
2251 ehci->clock_frame = clock_frame; 2273 ehci->clock_frame = clock_frame;
2252 } 2274 }
2253 clock %= mod; 2275 clock %= mod;
@@ -2414,7 +2436,7 @@ restart:
2414 clock = now; 2436 clock = now;
2415 clock_frame = clock >> 3; 2437 clock_frame = clock >> 3;
2416 if (ehci->clock_frame != clock_frame) { 2438 if (ehci->clock_frame != clock_frame) {
2417 free_cached_itd_list(ehci); 2439 free_cached_lists(ehci);
2418 ehci->clock_frame = clock_frame; 2440 ehci->clock_frame = clock_frame;
2419 } 2441 }
2420 } else { 2442 } else {
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index b1dce96dd621..556c0b48f3ab 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -87,8 +87,9 @@ struct ehci_hcd { /* one per controller */
87 int next_uframe; /* scan periodic, start here */ 87 int next_uframe; /* scan periodic, start here */
88 unsigned periodic_sched; /* periodic activity count */ 88 unsigned periodic_sched; /* periodic activity count */
89 89
90 /* list of itds completed while clock_frame was still active */ 90 /* list of itds & sitds completed while clock_frame was still active */
91 struct list_head cached_itd_list; 91 struct list_head cached_itd_list;
92 struct list_head cached_sitd_list;
92 unsigned clock_frame; 93 unsigned clock_frame;
93 94
94 /* per root hub port */ 95 /* per root hub port */
@@ -195,7 +196,7 @@ timer_action_done (struct ehci_hcd *ehci, enum ehci_timer_action action)
195 clear_bit (action, &ehci->actions); 196 clear_bit (action, &ehci->actions);
196} 197}
197 198
198static void free_cached_itd_list(struct ehci_hcd *ehci); 199static void free_cached_lists(struct ehci_hcd *ehci);
199 200
200/*-------------------------------------------------------------------------*/ 201/*-------------------------------------------------------------------------*/
201 202
diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c
index 4aa08d36d077..d22fb4d577b7 100644
--- a/drivers/usb/host/ohci-da8xx.c
+++ b/drivers/usb/host/ohci-da8xx.c
@@ -23,7 +23,7 @@
23#error "This file is DA8xx bus glue. Define CONFIG_ARCH_DAVINCI_DA8XX." 23#error "This file is DA8xx bus glue. Define CONFIG_ARCH_DAVINCI_DA8XX."
24#endif 24#endif
25 25
26#define CFGCHIP2 DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP2_REG) 26#define CFGCHIP2 DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG)
27 27
28static struct clk *usb11_clk; 28static struct clk *usb11_clk;
29static struct clk *usb20_clk; 29static struct clk *usb20_clk;
diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c
index a9555cb901a1..de8ef945b536 100644
--- a/drivers/usb/misc/usbsevseg.c
+++ b/drivers/usb/misc/usbsevseg.c
@@ -49,6 +49,7 @@ struct usb_sevsegdev {
49 u16 textlength; 49 u16 textlength;
50 50
51 u8 shadow_power; /* for PM */ 51 u8 shadow_power; /* for PM */
52 u8 has_interface_pm;
52}; 53};
53 54
54/* sysfs_streq can't replace this completely 55/* sysfs_streq can't replace this completely
@@ -68,12 +69,16 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
68{ 69{
69 int rc; 70 int rc;
70 71
71 if (!mydev->shadow_power && mydev->powered) { 72 if (mydev->powered && !mydev->has_interface_pm) {
72 rc = usb_autopm_get_interface(mydev->intf); 73 rc = usb_autopm_get_interface(mydev->intf);
73 if (rc < 0) 74 if (rc < 0)
74 return; 75 return;
76 mydev->has_interface_pm = 1;
75 } 77 }
76 78
79 if (mydev->shadow_power != 1)
80 return;
81
77 rc = usb_control_msg(mydev->udev, 82 rc = usb_control_msg(mydev->udev,
78 usb_sndctrlpipe(mydev->udev, 0), 83 usb_sndctrlpipe(mydev->udev, 0),
79 0x12, 84 0x12,
@@ -86,8 +91,10 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
86 if (rc < 0) 91 if (rc < 0)
87 dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc); 92 dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc);
88 93
89 if (mydev->shadow_power && !mydev->powered) 94 if (!mydev->powered && mydev->has_interface_pm) {
90 usb_autopm_put_interface(mydev->intf); 95 usb_autopm_put_interface(mydev->intf);
96 mydev->has_interface_pm = 0;
97 }
91} 98}
92 99
93static void update_display_mode(struct usb_sevsegdev *mydev) 100static void update_display_mode(struct usb_sevsegdev *mydev)
@@ -351,6 +358,10 @@ static int sevseg_probe(struct usb_interface *interface,
351 mydev->intf = interface; 358 mydev->intf = interface;
352 usb_set_intfdata(interface, mydev); 359 usb_set_intfdata(interface, mydev);
353 360
361 /* PM */
362 mydev->shadow_power = 1; /* currently active */
363 mydev->has_interface_pm = 0; /* have not issued autopm_get */
364
354 /*set defaults */ 365 /*set defaults */
355 mydev->textmode = 0x02; /* ascii mode */ 366 mydev->textmode = 0x02; /* ascii mode */
356 mydev->mode_msb = 0x06; /* 6 characters */ 367 mydev->mode_msb = 0x06; /* 6 characters */
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 73d5f346d3e0..c97a0bb5b6db 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -97,6 +97,7 @@ static const struct usb_device_id id_table[] = {
97 { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) }, 97 { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) },
98 { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) }, 98 { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) },
99 { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) }, 99 { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) },
100 { USB_DEVICE(ADLINK_VENDOR_ID, ADLINK_ND6530_PRODUCT_ID) },
100 { } /* Terminating entry */ 101 { } /* Terminating entry */
101}; 102};
102 103
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index d640dc951568..a352d5f3a59c 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -134,3 +134,7 @@
134/* Sanwa KB-USB2 multimeter cable (ID: 11ad:0001) */ 134/* Sanwa KB-USB2 multimeter cable (ID: 11ad:0001) */
135#define SANWA_VENDOR_ID 0x11ad 135#define SANWA_VENDOR_ID 0x11ad
136#define SANWA_PRODUCT_ID 0x0001 136#define SANWA_PRODUCT_ID 0x0001
137
138/* ADLINK ND-6530 RS232,RS485 and RS422 adapter */
139#define ADLINK_VENDOR_ID 0x0b63
140#define ADLINK_ND6530_PRODUCT_ID 0x6530
diff --git a/drivers/usb/serial/qcaux.c b/drivers/usb/serial/qcaux.c
index 0b9362061713..7e3bea23600b 100644
--- a/drivers/usb/serial/qcaux.c
+++ b/drivers/usb/serial/qcaux.c
@@ -42,6 +42,14 @@
42#define CMOTECH_PRODUCT_CDU550 0x5553 42#define CMOTECH_PRODUCT_CDU550 0x5553
43#define CMOTECH_PRODUCT_CDX650 0x6512 43#define CMOTECH_PRODUCT_CDX650 0x6512
44 44
45/* LG devices */
46#define LG_VENDOR_ID 0x1004
47#define LG_PRODUCT_VX4400_6000 0x6000 /* VX4400/VX6000/Rumor */
48
49/* Sanyo devices */
50#define SANYO_VENDOR_ID 0x0474
51#define SANYO_PRODUCT_KATANA_LX 0x0754 /* SCP-3800 (Katana LX) */
52
45static struct usb_device_id id_table[] = { 53static struct usb_device_id id_table[] = {
46 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5740, 0xff, 0x00, 0x00) }, 54 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5740, 0xff, 0x00, 0x00) },
47 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5750, 0xff, 0x00, 0x00) }, 55 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5750, 0xff, 0x00, 0x00) },
@@ -51,6 +59,8 @@ static struct usb_device_id id_table[] = {
51 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_UM175_ALLTEL, 0xff, 0x00, 0x00) }, 59 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_UM175_ALLTEL, 0xff, 0x00, 0x00) },
52 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU550, 0xff, 0xff, 0x00) }, 60 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU550, 0xff, 0xff, 0x00) },
53 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDX650, 0xff, 0xff, 0x00) }, 61 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDX650, 0xff, 0xff, 0x00) },
62 { USB_DEVICE_AND_INTERFACE_INFO(LG_VENDOR_ID, LG_PRODUCT_VX4400_6000, 0xff, 0xff, 0x00) },
63 { USB_DEVICE_AND_INTERFACE_INFO(SANYO_VENDOR_ID, SANYO_PRODUCT_KATANA_LX, 0xff, 0xff, 0x00) },
54 { }, 64 { },
55}; 65};
56MODULE_DEVICE_TABLE(usb, id_table); 66MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 9202f94505e6..ef0bdb08d788 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -230,6 +230,7 @@ static const struct sierra_iface_info direct_ip_interface_blacklist = {
230static const struct usb_device_id id_table[] = { 230static const struct usb_device_id id_table[] = {
231 { USB_DEVICE(0x0F3D, 0x0112) }, /* Airprime/Sierra PC 5220 */ 231 { USB_DEVICE(0x0F3D, 0x0112) }, /* Airprime/Sierra PC 5220 */
232 { USB_DEVICE(0x03F0, 0x1B1D) }, /* HP ev2200 a.k.a MC5720 */ 232 { USB_DEVICE(0x03F0, 0x1B1D) }, /* HP ev2200 a.k.a MC5720 */
233 { USB_DEVICE(0x03F0, 0x211D) }, /* HP ev2210 a.k.a MC5725 */
233 { USB_DEVICE(0x03F0, 0x1E1D) }, /* HP hs2300 a.k.a MC8775 */ 234 { USB_DEVICE(0x03F0, 0x1E1D) }, /* HP hs2300 a.k.a MC8775 */
234 235
235 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ 236 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index 0afe5c71c17e..880e990abb07 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -172,7 +172,7 @@ static unsigned int product_5052_count;
172/* the array dimension is the number of default entries plus */ 172/* the array dimension is the number of default entries plus */
173/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */ 173/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
174/* null entry */ 174/* null entry */
175static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = { 175static struct usb_device_id ti_id_table_3410[13+TI_EXTRA_VID_PID_COUNT+1] = {
176 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, 176 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
177 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, 177 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
178 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, 178 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
@@ -180,6 +180,9 @@ static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = {
180 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) }, 180 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
181 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) }, 181 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
182 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) }, 182 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
183 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234MU_PRODUCT_ID) },
184 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBA_PRODUCT_ID) },
185 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBAOLD_PRODUCT_ID) },
183 { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, 186 { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) },
184 { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, 187 { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
185 { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, 188 { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
@@ -192,7 +195,7 @@ static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
192 { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, 195 { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) },
193}; 196};
194 197
195static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1] = { 198static struct usb_device_id ti_id_table_combined[17+2*TI_EXTRA_VID_PID_COUNT+1] = {
196 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, 199 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
197 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, 200 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
198 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, 201 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
@@ -200,6 +203,9 @@ static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1]
200 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) }, 203 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
201 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) }, 204 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
202 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) }, 205 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
206 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234MU_PRODUCT_ID) },
207 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBA_PRODUCT_ID) },
208 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBAOLD_PRODUCT_ID) },
203 { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, 209 { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) },
204 { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, 210 { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) },
205 { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, 211 { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) },
@@ -287,6 +293,8 @@ MODULE_FIRMWARE("ti_5052.fw");
287MODULE_FIRMWARE("mts_cdma.fw"); 293MODULE_FIRMWARE("mts_cdma.fw");
288MODULE_FIRMWARE("mts_gsm.fw"); 294MODULE_FIRMWARE("mts_gsm.fw");
289MODULE_FIRMWARE("mts_edge.fw"); 295MODULE_FIRMWARE("mts_edge.fw");
296MODULE_FIRMWARE("mts_mt9234mu.fw");
297MODULE_FIRMWARE("mts_mt9234zba.fw");
290 298
291module_param(debug, bool, S_IRUGO | S_IWUSR); 299module_param(debug, bool, S_IRUGO | S_IWUSR);
292MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes"); 300MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes");
@@ -1687,6 +1695,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1687 const struct firmware *fw_p; 1695 const struct firmware *fw_p;
1688 char buf[32]; 1696 char buf[32];
1689 1697
1698 dbg("%s\n", __func__);
1690 /* try ID specific firmware first, then try generic firmware */ 1699 /* try ID specific firmware first, then try generic firmware */
1691 sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor, 1700 sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor,
1692 dev->descriptor.idProduct); 1701 dev->descriptor.idProduct);
@@ -1703,7 +1712,15 @@ static int ti_download_firmware(struct ti_device *tdev)
1703 case MTS_EDGE_PRODUCT_ID: 1712 case MTS_EDGE_PRODUCT_ID:
1704 strcpy(buf, "mts_edge.fw"); 1713 strcpy(buf, "mts_edge.fw");
1705 break; 1714 break;
1706 } 1715 case MTS_MT9234MU_PRODUCT_ID:
1716 strcpy(buf, "mts_mt9234mu.fw");
1717 break;
1718 case MTS_MT9234ZBA_PRODUCT_ID:
1719 strcpy(buf, "mts_mt9234zba.fw");
1720 break;
1721 case MTS_MT9234ZBAOLD_PRODUCT_ID:
1722 strcpy(buf, "mts_mt9234zba.fw");
1723 break; }
1707 } 1724 }
1708 if (buf[0] == '\0') { 1725 if (buf[0] == '\0') {
1709 if (tdev->td_is_3410) 1726 if (tdev->td_is_3410)
@@ -1718,7 +1735,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1718 return -ENOENT; 1735 return -ENOENT;
1719 } 1736 }
1720 if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { 1737 if (fw_p->size > TI_FIRMWARE_BUF_SIZE) {
1721 dev_err(&dev->dev, "%s - firmware too large\n", __func__); 1738 dev_err(&dev->dev, "%s - firmware too large %d \n", __func__, fw_p->size);
1722 return -ENOENT; 1739 return -ENOENT;
1723 } 1740 }
1724 1741
@@ -1730,6 +1747,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1730 status = ti_do_download(dev, pipe, buffer, fw_p->size); 1747 status = ti_do_download(dev, pipe, buffer, fw_p->size);
1731 kfree(buffer); 1748 kfree(buffer);
1732 } else { 1749 } else {
1750 dbg("%s ENOMEM\n", __func__);
1733 status = -ENOMEM; 1751 status = -ENOMEM;
1734 } 1752 }
1735 release_firmware(fw_p); 1753 release_firmware(fw_p);
diff --git a/drivers/usb/serial/ti_usb_3410_5052.h b/drivers/usb/serial/ti_usb_3410_5052.h
index f323c6025858..2aac1953993b 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.h
+++ b/drivers/usb/serial/ti_usb_3410_5052.h
@@ -45,6 +45,9 @@
45#define MTS_CDMA_PRODUCT_ID 0xF110 45#define MTS_CDMA_PRODUCT_ID 0xF110
46#define MTS_GSM_PRODUCT_ID 0xF111 46#define MTS_GSM_PRODUCT_ID 0xF111
47#define MTS_EDGE_PRODUCT_ID 0xF112 47#define MTS_EDGE_PRODUCT_ID 0xF112
48#define MTS_MT9234MU_PRODUCT_ID 0xF114
49#define MTS_MT9234ZBA_PRODUCT_ID 0xF115
50#define MTS_MT9234ZBAOLD_PRODUCT_ID 0x0319
48 51
49/* Commands */ 52/* Commands */
50#define TI_GET_VERSION 0x01 53#define TI_GET_VERSION 0x01
diff --git a/drivers/usb/wusbcore/devconnect.c b/drivers/usb/wusbcore/devconnect.c
index 46e79d349498..7ec24e46b34b 100644
--- a/drivers/usb/wusbcore/devconnect.c
+++ b/drivers/usb/wusbcore/devconnect.c
@@ -438,7 +438,7 @@ static void __wusbhc_keep_alive(struct wusbhc *wusbhc)
438 old_keep_alives = ie->hdr.bLength - sizeof(ie->hdr); 438 old_keep_alives = ie->hdr.bLength - sizeof(ie->hdr);
439 keep_alives = 0; 439 keep_alives = 0;
440 for (cnt = 0; 440 for (cnt = 0;
441 keep_alives <= WUIE_ELT_MAX && cnt < wusbhc->ports_max; 441 keep_alives < WUIE_ELT_MAX && cnt < wusbhc->ports_max;
442 cnt++) { 442 cnt++) {
443 unsigned tt = msecs_to_jiffies(wusbhc->trust_timeout); 443 unsigned tt = msecs_to_jiffies(wusbhc->trust_timeout);
444 444
diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
index 581d2dbf675a..ecf405562f5c 100644
--- a/drivers/video/efifb.c
+++ b/drivers/video/efifb.c
@@ -49,6 +49,7 @@ enum {
49 M_MBP_2, /* MacBook Pro 2nd gen */ 49 M_MBP_2, /* MacBook Pro 2nd gen */
50 M_MBP_SR, /* MacBook Pro (Santa Rosa) */ 50 M_MBP_SR, /* MacBook Pro (Santa Rosa) */
51 M_MBP_4, /* MacBook Pro, 4th gen */ 51 M_MBP_4, /* MacBook Pro, 4th gen */
52 M_MBP_5_1, /* MacBook Pro, 5,1th gen */
52 M_UNKNOWN /* placeholder */ 53 M_UNKNOWN /* placeholder */
53}; 54};
54 55
@@ -70,6 +71,7 @@ static struct efifb_dmi_info {
70 [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */ 71 [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */
71 [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 }, 72 [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 },
72 [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 }, 73 [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 },
74 [M_MBP_5_1] = { "mbp51", 0xc0010000, 2048 * 4, 1440, 900 },
73 [M_UNKNOWN] = { NULL, 0, 0, 0, 0 } 75 [M_UNKNOWN] = { NULL, 0, 0, 0, 0 }
74}; 76};
75 77
@@ -106,6 +108,7 @@ static struct dmi_system_id __initdata dmi_system_table[] = {
106 EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro3,1", M_MBP_SR), 108 EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro3,1", M_MBP_SR),
107 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro3,1", M_MBP_SR), 109 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro3,1", M_MBP_SR),
108 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro4,1", M_MBP_4), 110 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro4,1", M_MBP_4),
111 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro5,1", M_MBP_5_1),
109 {}, 112 {},
110}; 113};
111 114
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 3aed38886f94..bfec7c29486d 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -103,7 +103,8 @@ static void fill_balloon(struct virtio_balloon *vb, size_t num)
103 num = min(num, ARRAY_SIZE(vb->pfns)); 103 num = min(num, ARRAY_SIZE(vb->pfns));
104 104
105 for (vb->num_pfns = 0; vb->num_pfns < num; vb->num_pfns++) { 105 for (vb->num_pfns = 0; vb->num_pfns < num; vb->num_pfns++) {
106 struct page *page = alloc_page(GFP_HIGHUSER | __GFP_NORETRY); 106 struct page *page = alloc_page(GFP_HIGHUSER | __GFP_NORETRY |
107 __GFP_NOMEMALLOC | __GFP_NOWARN);
107 if (!page) { 108 if (!page) {
108 if (printk_ratelimit()) 109 if (printk_ratelimit())
109 dev_printk(KERN_INFO, &vb->vdev->dev, 110 dev_printk(KERN_INFO, &vb->vdev->dev,
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index ef36fca2eed4..3a7e9ff8a746 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -16,6 +16,7 @@
16#include <linux/err.h> 16#include <linux/err.h>
17#include <linux/clk.h> 17#include <linux/clk.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/sched.h>
19 20
20#include <asm/irq.h> 21#include <asm/irq.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index 1ed3d554e372..17726a05a0a6 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -115,9 +115,8 @@ static struct w1_therm_family_converter w1_therm_families[] = {
115 115
116static inline int w1_DS18B20_convert_temp(u8 rom[9]) 116static inline int w1_DS18B20_convert_temp(u8 rom[9])
117{ 117{
118 int t = ((s16)rom[1] << 8) | rom[0]; 118 s16 t = le16_to_cpup((__le16 *)rom);
119 t = t*1000/16; 119 return t*1000/16;
120 return t;
121} 120}
122 121
123static inline int w1_DS18S20_convert_temp(u8 rom[9]) 122static inline int w1_DS18S20_convert_temp(u8 rom[9])
diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
index 500d38342e1e..801ead191499 100644
--- a/drivers/watchdog/booke_wdt.c
+++ b/drivers/watchdog/booke_wdt.c
@@ -121,7 +121,7 @@ static ssize_t booke_wdt_write(struct file *file, const char __user *buf,
121 return count; 121 return count;
122} 122}
123 123
124static const struct watchdog_info ident = { 124static struct watchdog_info ident = {
125 .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING, 125 .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
126 .identity = "PowerPC Book-E Watchdog", 126 .identity = "PowerPC Book-E Watchdog",
127}; 127};
diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c
index c8eadd478175..88c83aa57303 100644
--- a/drivers/watchdog/sb_wdog.c
+++ b/drivers/watchdog/sb_wdog.c
@@ -67,8 +67,8 @@ static DEFINE_SPINLOCK(sbwd_lock);
67void sbwdog_set(char __iomem *wdog, unsigned long t) 67void sbwdog_set(char __iomem *wdog, unsigned long t)
68{ 68{
69 spin_lock(&sbwd_lock); 69 spin_lock(&sbwd_lock);
70 __raw_writeb(0, wdog - 0x10); 70 __raw_writeb(0, wdog);
71 __raw_writeq(t & 0x7fffffUL, wdog); 71 __raw_writeq(t & 0x7fffffUL, wdog - 0x10);
72 spin_unlock(&sbwd_lock); 72 spin_unlock(&sbwd_lock);
73} 73}
74 74
diff --git a/drivers/watchdog/sbc_fitpc2_wdt.c b/drivers/watchdog/sbc_fitpc2_wdt.c
index 8d44c9b6fb5b..c7d67e9a7465 100644
--- a/drivers/watchdog/sbc_fitpc2_wdt.c
+++ b/drivers/watchdog/sbc_fitpc2_wdt.c
@@ -30,7 +30,7 @@
30static int nowayout = WATCHDOG_NOWAYOUT; 30static int nowayout = WATCHDOG_NOWAYOUT;
31static unsigned int margin = 60; /* (secs) Default is 1 minute */ 31static unsigned int margin = 60; /* (secs) Default is 1 minute */
32static unsigned long wdt_status; 32static unsigned long wdt_status;
33static DEFINE_SPINLOCK(wdt_lock); 33static DEFINE_MUTEX(wdt_lock);
34 34
35#define WDT_IN_USE 0 35#define WDT_IN_USE 0
36#define WDT_OK_TO_CLOSE 1 36#define WDT_OK_TO_CLOSE 1
@@ -45,26 +45,26 @@ static DEFINE_SPINLOCK(wdt_lock);
45 45
46static void wdt_send_data(unsigned char command, unsigned char data) 46static void wdt_send_data(unsigned char command, unsigned char data)
47{ 47{
48 outb(command, COMMAND_PORT);
49 msleep(100);
50 outb(data, DATA_PORT); 48 outb(data, DATA_PORT);
51 msleep(200); 49 msleep(200);
50 outb(command, COMMAND_PORT);
51 msleep(100);
52} 52}
53 53
54static void wdt_enable(void) 54static void wdt_enable(void)
55{ 55{
56 spin_lock(&wdt_lock); 56 mutex_lock(&wdt_lock);
57 wdt_send_data(IFACE_ON_COMMAND, 1); 57 wdt_send_data(IFACE_ON_COMMAND, 1);
58 wdt_send_data(REBOOT_COMMAND, margin); 58 wdt_send_data(REBOOT_COMMAND, margin);
59 spin_unlock(&wdt_lock); 59 mutex_unlock(&wdt_lock);
60} 60}
61 61
62static void wdt_disable(void) 62static void wdt_disable(void)
63{ 63{
64 spin_lock(&wdt_lock); 64 mutex_lock(&wdt_lock);
65 wdt_send_data(IFACE_ON_COMMAND, 0); 65 wdt_send_data(IFACE_ON_COMMAND, 0);
66 wdt_send_data(REBOOT_COMMAND, 0); 66 wdt_send_data(REBOOT_COMMAND, 0);
67 spin_unlock(&wdt_lock); 67 mutex_unlock(&wdt_lock);
68} 68}
69 69
70static int fitpc2_wdt_open(struct inode *inode, struct file *file) 70static int fitpc2_wdt_open(struct inode *inode, struct file *file)
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 2ac4440e7b08..8943b8ccee1a 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -80,12 +80,6 @@ static void do_suspend(void)
80 80
81 shutting_down = SHUTDOWN_SUSPEND; 81 shutting_down = SHUTDOWN_SUSPEND;
82 82
83 err = stop_machine_create();
84 if (err) {
85 printk(KERN_ERR "xen suspend: failed to setup stop_machine %d\n", err);
86 goto out;
87 }
88
89#ifdef CONFIG_PREEMPT 83#ifdef CONFIG_PREEMPT
90 /* If the kernel is preemptible, we need to freeze all the processes 84 /* If the kernel is preemptible, we need to freeze all the processes
91 to prevent them from being in the middle of a pagetable update 85 to prevent them from being in the middle of a pagetable update
@@ -93,7 +87,7 @@ static void do_suspend(void)
93 err = freeze_processes(); 87 err = freeze_processes();
94 if (err) { 88 if (err) {
95 printk(KERN_ERR "xen suspend: freeze failed %d\n", err); 89 printk(KERN_ERR "xen suspend: freeze failed %d\n", err);
96 goto out_destroy_sm; 90 goto out;
97 } 91 }
98#endif 92#endif
99 93
@@ -136,12 +130,8 @@ out_resume:
136out_thaw: 130out_thaw:
137#ifdef CONFIG_PREEMPT 131#ifdef CONFIG_PREEMPT
138 thaw_processes(); 132 thaw_processes();
139
140out_destroy_sm:
141#endif
142 stop_machine_destroy();
143
144out: 133out:
134#endif
145 shutting_down = SHUTDOWN_INVALID; 135 shutting_down = SHUTDOWN_INVALID;
146} 136}
147#endif /* CONFIG_PM_SLEEP */ 137#endif /* CONFIG_PM_SLEEP */
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 5c5bc8480070..f8b86e92cd66 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -238,6 +238,13 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
238 return ERR_PTR(-ENOMEM); 238 return ERR_PTR(-ENOMEM);
239 } 239 }
240 240
241 rc = bdi_setup_and_register(&v9ses->bdi, "9p", BDI_CAP_MAP_COPY);
242 if (rc) {
243 __putname(v9ses->aname);
244 __putname(v9ses->uname);
245 return ERR_PTR(rc);
246 }
247
241 spin_lock(&v9fs_sessionlist_lock); 248 spin_lock(&v9fs_sessionlist_lock);
242 list_add(&v9ses->slist, &v9fs_sessionlist); 249 list_add(&v9ses->slist, &v9fs_sessionlist);
243 spin_unlock(&v9fs_sessionlist_lock); 250 spin_unlock(&v9fs_sessionlist_lock);
@@ -301,6 +308,7 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
301 return fid; 308 return fid;
302 309
303error: 310error:
311 bdi_destroy(&v9ses->bdi);
304 return ERR_PTR(retval); 312 return ERR_PTR(retval);
305} 313}
306 314
@@ -326,6 +334,8 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
326 __putname(v9ses->uname); 334 __putname(v9ses->uname);
327 __putname(v9ses->aname); 335 __putname(v9ses->aname);
328 336
337 bdi_destroy(&v9ses->bdi);
338
329 spin_lock(&v9fs_sessionlist_lock); 339 spin_lock(&v9fs_sessionlist_lock);
330 list_del(&v9ses->slist); 340 list_del(&v9ses->slist);
331 spin_unlock(&v9fs_sessionlist_lock); 341 spin_unlock(&v9fs_sessionlist_lock);
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index a0a8d3dd1361..bec4d0bcb458 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -20,6 +20,7 @@
20 * Boston, MA 02111-1301 USA 20 * Boston, MA 02111-1301 USA
21 * 21 *
22 */ 22 */
23#include <linux/backing-dev.h>
23 24
24/** 25/**
25 * enum p9_session_flags - option flags for each 9P session 26 * enum p9_session_flags - option flags for each 9P session
@@ -102,6 +103,7 @@ struct v9fs_session_info {
102 u32 uid; /* if ACCESS_SINGLE, the uid that has access */ 103 u32 uid; /* if ACCESS_SINGLE, the uid that has access */
103 struct p9_client *clnt; /* 9p client */ 104 struct p9_client *clnt; /* 9p client */
104 struct list_head slist; /* list of sessions registered with v9fs */ 105 struct list_head slist; /* list of sessions registered with v9fs */
106 struct backing_dev_info bdi;
105}; 107};
106 108
107struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *, 109struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 491108bd6e0d..806da5d3b3a0 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -77,6 +77,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
77 sb->s_blocksize = 1 << sb->s_blocksize_bits; 77 sb->s_blocksize = 1 << sb->s_blocksize_bits;
78 sb->s_magic = V9FS_MAGIC; 78 sb->s_magic = V9FS_MAGIC;
79 sb->s_op = &v9fs_super_ops; 79 sb->s_op = &v9fs_super_ops;
80 sb->s_bdi = &v9ses->bdi;
80 81
81 sb->s_flags = flags | MS_ACTIVE | MS_SYNCHRONOUS | MS_DIRSYNC | 82 sb->s_flags = flags | MS_ACTIVE | MS_SYNCHRONOUS | MS_DIRSYNC |
82 MS_NOATIME; 83 MS_NOATIME;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index c54dad4e6063..a10f2582844f 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -19,6 +19,7 @@
19#include <linux/workqueue.h> 19#include <linux/workqueue.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/fscache.h> 21#include <linux/fscache.h>
22#include <linux/backing-dev.h>
22 23
23#include "afs.h" 24#include "afs.h"
24#include "afs_vl.h" 25#include "afs_vl.h"
@@ -313,6 +314,7 @@ struct afs_volume {
313 unsigned short rjservers; /* number of servers discarded due to -ENOMEDIUM */ 314 unsigned short rjservers; /* number of servers discarded due to -ENOMEDIUM */
314 struct afs_server *servers[8]; /* servers on which volume resides (ordered) */ 315 struct afs_server *servers[8]; /* servers on which volume resides (ordered) */
315 struct rw_semaphore server_sem; /* lock for accessing current server */ 316 struct rw_semaphore server_sem; /* lock for accessing current server */
317 struct backing_dev_info bdi;
316}; 318};
317 319
318/* 320/*
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index 5e813a816ce4..b3feddc4f7d6 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -138,9 +138,9 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
138{ 138{
139 struct afs_super_info *super; 139 struct afs_super_info *super;
140 struct vfsmount *mnt; 140 struct vfsmount *mnt;
141 struct page *page = NULL; 141 struct page *page;
142 size_t size; 142 size_t size;
143 char *buf, *devname = NULL, *options = NULL; 143 char *buf, *devname, *options;
144 int ret; 144 int ret;
145 145
146 _enter("{%s}", mntpt->d_name.name); 146 _enter("{%s}", mntpt->d_name.name);
@@ -150,22 +150,22 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
150 ret = -EINVAL; 150 ret = -EINVAL;
151 size = mntpt->d_inode->i_size; 151 size = mntpt->d_inode->i_size;
152 if (size > PAGE_SIZE - 1) 152 if (size > PAGE_SIZE - 1)
153 goto error; 153 goto error_no_devname;
154 154
155 ret = -ENOMEM; 155 ret = -ENOMEM;
156 devname = (char *) get_zeroed_page(GFP_KERNEL); 156 devname = (char *) get_zeroed_page(GFP_KERNEL);
157 if (!devname) 157 if (!devname)
158 goto error; 158 goto error_no_devname;
159 159
160 options = (char *) get_zeroed_page(GFP_KERNEL); 160 options = (char *) get_zeroed_page(GFP_KERNEL);
161 if (!options) 161 if (!options)
162 goto error; 162 goto error_no_options;
163 163
164 /* read the contents of the AFS special symlink */ 164 /* read the contents of the AFS special symlink */
165 page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL); 165 page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL);
166 if (IS_ERR(page)) { 166 if (IS_ERR(page)) {
167 ret = PTR_ERR(page); 167 ret = PTR_ERR(page);
168 goto error; 168 goto error_no_page;
169 } 169 }
170 170
171 ret = -EIO; 171 ret = -EIO;
@@ -196,12 +196,12 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
196 return mnt; 196 return mnt;
197 197
198error: 198error:
199 if (page) 199 page_cache_release(page);
200 page_cache_release(page); 200error_no_page:
201 if (devname) 201 free_page((unsigned long) options);
202 free_page((unsigned long) devname); 202error_no_options:
203 if (options) 203 free_page((unsigned long) devname);
204 free_page((unsigned long) options); 204error_no_devname:
205 _leave(" = %d", ret); 205 _leave(" = %d", ret);
206 return ERR_PTR(ret); 206 return ERR_PTR(ret);
207} 207}
diff --git a/fs/afs/super.c b/fs/afs/super.c
index 14f6431598ad..e932e5a3a0c1 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -311,6 +311,7 @@ static int afs_fill_super(struct super_block *sb, void *data)
311 sb->s_magic = AFS_FS_MAGIC; 311 sb->s_magic = AFS_FS_MAGIC;
312 sb->s_op = &afs_super_ops; 312 sb->s_op = &afs_super_ops;
313 sb->s_fs_info = as; 313 sb->s_fs_info = as;
314 sb->s_bdi = &as->volume->bdi;
314 315
315 /* allocate the root inode and dentry */ 316 /* allocate the root inode and dentry */
316 fid.vid = as->volume->vid; 317 fid.vid = as->volume->vid;
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index a353e69e2391..401eeb21869f 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -106,6 +106,10 @@ struct afs_volume *afs_volume_lookup(struct afs_mount_params *params)
106 volume->cell = params->cell; 106 volume->cell = params->cell;
107 volume->vid = vlocation->vldb.vid[params->type]; 107 volume->vid = vlocation->vldb.vid[params->type];
108 108
109 ret = bdi_setup_and_register(&volume->bdi, "afs", BDI_CAP_MAP_COPY);
110 if (ret)
111 goto error_bdi;
112
109 init_rwsem(&volume->server_sem); 113 init_rwsem(&volume->server_sem);
110 114
111 /* look up all the applicable server records */ 115 /* look up all the applicable server records */
@@ -151,6 +155,8 @@ error:
151 return ERR_PTR(ret); 155 return ERR_PTR(ret);
152 156
153error_discard: 157error_discard:
158 bdi_destroy(&volume->bdi);
159error_bdi:
154 up_write(&params->cell->vl_sem); 160 up_write(&params->cell->vl_sem);
155 161
156 for (loop = volume->nservers - 1; loop >= 0; loop--) 162 for (loop = volume->nservers - 1; loop >= 0; loop--)
@@ -200,6 +206,7 @@ void afs_put_volume(struct afs_volume *volume)
200 for (loop = volume->nservers - 1; loop >= 0; loop--) 206 for (loop = volume->nservers - 1; loop >= 0; loop--)
201 afs_put_server(volume->servers[loop]); 207 afs_put_server(volume->servers[loop]);
202 208
209 bdi_destroy(&volume->bdi);
203 kfree(volume); 210 kfree(volume);
204 211
205 _leave(" [destroyed]"); 212 _leave(" [destroyed]");
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 7ab23e006e4c..2c5f9a0e5d72 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1005,15 +1005,8 @@ static int elf_fdpic_map_file_constdisp_on_uclinux(
1005 } 1005 }
1006 } else if (!mm->start_data) { 1006 } else if (!mm->start_data) {
1007 mm->start_data = seg->addr; 1007 mm->start_data = seg->addr;
1008#ifndef CONFIG_MMU
1009 mm->end_data = seg->addr + phdr->p_memsz; 1008 mm->end_data = seg->addr + phdr->p_memsz;
1010#endif
1011 } 1009 }
1012
1013#ifdef CONFIG_MMU
1014 if (seg->addr + phdr->p_memsz > mm->end_data)
1015 mm->end_data = seg->addr + phdr->p_memsz;
1016#endif
1017 } 1010 }
1018 1011
1019 seg++; 1012 seg++;
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index e0e769bdca59..49566c1687d8 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -355,7 +355,7 @@ calc_reloc(unsigned long r, struct lib_info *p, int curid, int internalp)
355 355
356 if (!flat_reloc_valid(r, start_brk - start_data + text_len)) { 356 if (!flat_reloc_valid(r, start_brk - start_data + text_len)) {
357 printk("BINFMT_FLAT: reloc outside program 0x%x (0 - 0x%x/0x%x)", 357 printk("BINFMT_FLAT: reloc outside program 0x%x (0 - 0x%x/0x%x)",
358 (int) r,(int)(start_brk-start_code),(int)text_len); 358 (int) r,(int)(start_brk-start_data+text_len),(int)text_len);
359 goto failed; 359 goto failed;
360 } 360 }
361 361
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 2a6d0193f139..6dcee88c2e5d 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -406,16 +406,23 @@ static loff_t block_llseek(struct file *file, loff_t offset, int origin)
406 406
407int blkdev_fsync(struct file *filp, struct dentry *dentry, int datasync) 407int blkdev_fsync(struct file *filp, struct dentry *dentry, int datasync)
408{ 408{
409 struct block_device *bdev = I_BDEV(filp->f_mapping->host); 409 struct inode *bd_inode = filp->f_mapping->host;
410 struct block_device *bdev = I_BDEV(bd_inode);
410 int error; 411 int error;
411 412
412 error = sync_blockdev(bdev); 413 /*
413 if (error) 414 * There is no need to serialise calls to blkdev_issue_flush with
414 return error; 415 * i_mutex and doing so causes performance issues with concurrent
415 416 * O_SYNC writers to a block device.
417 */
418 mutex_unlock(&bd_inode->i_mutex);
419
416 error = blkdev_issue_flush(bdev, NULL); 420 error = blkdev_issue_flush(bdev, NULL);
417 if (error == -EOPNOTSUPP) 421 if (error == -EOPNOTSUPP)
418 error = 0; 422 error = 0;
423
424 mutex_lock(&bd_inode->i_mutex);
425
419 return error; 426 return error;
420} 427}
421EXPORT_SYMBOL(blkdev_fsync); 428EXPORT_SYMBOL(blkdev_fsync);
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index e7b8f2c89ccb..feca04197d02 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -44,8 +44,6 @@ static struct extent_io_ops btree_extent_io_ops;
44static void end_workqueue_fn(struct btrfs_work *work); 44static void end_workqueue_fn(struct btrfs_work *work);
45static void free_fs_root(struct btrfs_root *root); 45static void free_fs_root(struct btrfs_root *root);
46 46
47static atomic_t btrfs_bdi_num = ATOMIC_INIT(0);
48
49/* 47/*
50 * end_io_wq structs are used to do processing in task context when an IO is 48 * end_io_wq structs are used to do processing in task context when an IO is
51 * complete. This is used during reads to verify checksums, and it is used 49 * complete. This is used during reads to verify checksums, and it is used
@@ -1375,19 +1373,11 @@ static int setup_bdi(struct btrfs_fs_info *info, struct backing_dev_info *bdi)
1375{ 1373{
1376 int err; 1374 int err;
1377 1375
1378 bdi->name = "btrfs";
1379 bdi->capabilities = BDI_CAP_MAP_COPY; 1376 bdi->capabilities = BDI_CAP_MAP_COPY;
1380 err = bdi_init(bdi); 1377 err = bdi_setup_and_register(bdi, "btrfs", BDI_CAP_MAP_COPY);
1381 if (err) 1378 if (err)
1382 return err; 1379 return err;
1383 1380
1384 err = bdi_register(bdi, NULL, "btrfs-%d",
1385 atomic_inc_return(&btrfs_bdi_num));
1386 if (err) {
1387 bdi_destroy(bdi);
1388 return err;
1389 }
1390
1391 bdi->ra_pages = default_backing_dev_info.ra_pages; 1381 bdi->ra_pages = default_backing_dev_info.ra_pages;
1392 bdi->unplug_io_fn = btrfs_unplug_io_fn; 1382 bdi->unplug_io_fn = btrfs_unplug_io_fn;
1393 bdi->unplug_io_data = info; 1383 bdi->unplug_io_data = info;
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/cifs/cifs_fs_sb.h
index 4797787c6a44..246a167cb913 100644
--- a/fs/cifs/cifs_fs_sb.h
+++ b/fs/cifs/cifs_fs_sb.h
@@ -18,6 +18,8 @@
18#ifndef _CIFS_FS_SB_H 18#ifndef _CIFS_FS_SB_H
19#define _CIFS_FS_SB_H 19#define _CIFS_FS_SB_H
20 20
21#include <linux/backing-dev.h>
22
21#define CIFS_MOUNT_NO_PERM 1 /* do not do client vfs_perm check */ 23#define CIFS_MOUNT_NO_PERM 1 /* do not do client vfs_perm check */
22#define CIFS_MOUNT_SET_UID 2 /* set current's euid in create etc. */ 24#define CIFS_MOUNT_SET_UID 2 /* set current's euid in create etc. */
23#define CIFS_MOUNT_SERVER_INUM 4 /* inode numbers from uniqueid from server */ 25#define CIFS_MOUNT_SERVER_INUM 4 /* inode numbers from uniqueid from server */
@@ -50,5 +52,6 @@ struct cifs_sb_info {
50#ifdef CONFIG_CIFS_DFS_UPCALL 52#ifdef CONFIG_CIFS_DFS_UPCALL
51 char *mountdata; /* mount options received at mount time */ 53 char *mountdata; /* mount options received at mount time */
52#endif 54#endif
55 struct backing_dev_info bdi;
53}; 56};
54#endif /* _CIFS_FS_SB_H */ 57#endif /* _CIFS_FS_SB_H */
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index ded66be6597c..ad235d604a0b 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -103,6 +103,12 @@ cifs_read_super(struct super_block *sb, void *data,
103 if (cifs_sb == NULL) 103 if (cifs_sb == NULL)
104 return -ENOMEM; 104 return -ENOMEM;
105 105
106 rc = bdi_setup_and_register(&cifs_sb->bdi, "cifs", BDI_CAP_MAP_COPY);
107 if (rc) {
108 kfree(cifs_sb);
109 return rc;
110 }
111
106#ifdef CONFIG_CIFS_DFS_UPCALL 112#ifdef CONFIG_CIFS_DFS_UPCALL
107 /* copy mount params to sb for use in submounts */ 113 /* copy mount params to sb for use in submounts */
108 /* BB: should we move this after the mount so we 114 /* BB: should we move this after the mount so we
@@ -115,6 +121,7 @@ cifs_read_super(struct super_block *sb, void *data,
115 int len = strlen(data); 121 int len = strlen(data);
116 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL); 122 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
117 if (cifs_sb->mountdata == NULL) { 123 if (cifs_sb->mountdata == NULL) {
124 bdi_destroy(&cifs_sb->bdi);
118 kfree(sb->s_fs_info); 125 kfree(sb->s_fs_info);
119 sb->s_fs_info = NULL; 126 sb->s_fs_info = NULL;
120 return -ENOMEM; 127 return -ENOMEM;
@@ -135,6 +142,7 @@ cifs_read_super(struct super_block *sb, void *data,
135 142
136 sb->s_magic = CIFS_MAGIC_NUMBER; 143 sb->s_magic = CIFS_MAGIC_NUMBER;
137 sb->s_op = &cifs_super_ops; 144 sb->s_op = &cifs_super_ops;
145 sb->s_bdi = &cifs_sb->bdi;
138/* if (cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512) 146/* if (cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512)
139 sb->s_blocksize = 147 sb->s_blocksize =
140 cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */ 148 cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */
@@ -183,6 +191,7 @@ out_mount_failed:
183 } 191 }
184#endif 192#endif
185 unload_nls(cifs_sb->local_nls); 193 unload_nls(cifs_sb->local_nls);
194 bdi_destroy(&cifs_sb->bdi);
186 kfree(cifs_sb); 195 kfree(cifs_sb);
187 } 196 }
188 return rc; 197 return rc;
@@ -214,6 +223,7 @@ cifs_put_super(struct super_block *sb)
214#endif 223#endif
215 224
216 unload_nls(cifs_sb->local_nls); 225 unload_nls(cifs_sb->local_nls);
226 bdi_destroy(&cifs_sb->bdi);
217 kfree(cifs_sb); 227 kfree(cifs_sb);
218 228
219 unlock_kernel(); 229 unlock_kernel();
diff --git a/fs/coda/inode.c b/fs/coda/inode.c
index a1695dcadd99..d97f9935a028 100644
--- a/fs/coda/inode.c
+++ b/fs/coda/inode.c
@@ -167,6 +167,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
167 return -EBUSY; 167 return -EBUSY;
168 } 168 }
169 169
170 error = bdi_setup_and_register(&vc->bdi, "coda", BDI_CAP_MAP_COPY);
171 if (error)
172 goto bdi_err;
173
170 vc->vc_sb = sb; 174 vc->vc_sb = sb;
171 175
172 sb->s_fs_info = vc; 176 sb->s_fs_info = vc;
@@ -175,6 +179,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
175 sb->s_blocksize_bits = 12; 179 sb->s_blocksize_bits = 12;
176 sb->s_magic = CODA_SUPER_MAGIC; 180 sb->s_magic = CODA_SUPER_MAGIC;
177 sb->s_op = &coda_super_operations; 181 sb->s_op = &coda_super_operations;
182 sb->s_bdi = &vc->bdi;
178 183
179 /* get root fid from Venus: this needs the root inode */ 184 /* get root fid from Venus: this needs the root inode */
180 error = venus_rootfid(sb, &fid); 185 error = venus_rootfid(sb, &fid);
@@ -200,6 +205,8 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
200 return 0; 205 return 0;
201 206
202 error: 207 error:
208 bdi_destroy(&vc->bdi);
209 bdi_err:
203 if (root) 210 if (root)
204 iput(root); 211 iput(root);
205 if (vc) 212 if (vc)
@@ -210,6 +217,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
210 217
211static void coda_put_super(struct super_block *sb) 218static void coda_put_super(struct super_block *sb)
212{ 219{
220 bdi_destroy(&coda_vcp(sb)->bdi);
213 coda_vcp(sb)->vc_sb = NULL; 221 coda_vcp(sb)->vc_sb = NULL;
214 sb->s_fs_info = NULL; 222 sb->s_fs_info = NULL;
215 223
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index c32a1b6a856b..641640dc7ae5 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -102,7 +102,6 @@
102#include <linux/nbd.h> 102#include <linux/nbd.h>
103#include <linux/random.h> 103#include <linux/random.h>
104#include <linux/filter.h> 104#include <linux/filter.h>
105#include <linux/pktcdvd.h>
106 105
107#include <linux/hiddev.h> 106#include <linux/hiddev.h>
108 107
@@ -1126,8 +1125,6 @@ COMPATIBLE_IOCTL(PPGETMODE)
1126COMPATIBLE_IOCTL(PPGETPHASE) 1125COMPATIBLE_IOCTL(PPGETPHASE)
1127COMPATIBLE_IOCTL(PPGETFLAGS) 1126COMPATIBLE_IOCTL(PPGETFLAGS)
1128COMPATIBLE_IOCTL(PPSETFLAGS) 1127COMPATIBLE_IOCTL(PPSETFLAGS)
1129/* pktcdvd */
1130COMPATIBLE_IOCTL(PACKET_CTRL_CMD)
1131/* Big A */ 1128/* Big A */
1132/* sparc only */ 1129/* sparc only */
1133/* Big Q for sound/OSS */ 1130/* Big Q for sound/OSS */
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index bc7115403f38..bfc2e0f78f00 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -35,6 +35,7 @@
35#include <linux/scatterlist.h> 35#include <linux/scatterlist.h>
36#include <linux/hash.h> 36#include <linux/hash.h>
37#include <linux/nsproxy.h> 37#include <linux/nsproxy.h>
38#include <linux/backing-dev.h>
38 39
39/* Version verification for shared data structures w/ userspace */ 40/* Version verification for shared data structures w/ userspace */
40#define ECRYPTFS_VERSION_MAJOR 0x00 41#define ECRYPTFS_VERSION_MAJOR 0x00
@@ -393,6 +394,7 @@ struct ecryptfs_mount_crypt_stat {
393struct ecryptfs_sb_info { 394struct ecryptfs_sb_info {
394 struct super_block *wsi_sb; 395 struct super_block *wsi_sb;
395 struct ecryptfs_mount_crypt_stat mount_crypt_stat; 396 struct ecryptfs_mount_crypt_stat mount_crypt_stat;
397 struct backing_dev_info bdi;
396}; 398};
397 399
398/* file private data. */ 400/* file private data. */
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index af1a8f01ebac..760983d0f25e 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -497,17 +497,25 @@ struct kmem_cache *ecryptfs_sb_info_cache;
497static int 497static int
498ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent) 498ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent)
499{ 499{
500 struct ecryptfs_sb_info *esi;
500 int rc = 0; 501 int rc = 0;
501 502
502 /* Released in ecryptfs_put_super() */ 503 /* Released in ecryptfs_put_super() */
503 ecryptfs_set_superblock_private(sb, 504 ecryptfs_set_superblock_private(sb,
504 kmem_cache_zalloc(ecryptfs_sb_info_cache, 505 kmem_cache_zalloc(ecryptfs_sb_info_cache,
505 GFP_KERNEL)); 506 GFP_KERNEL));
506 if (!ecryptfs_superblock_to_private(sb)) { 507 esi = ecryptfs_superblock_to_private(sb);
508 if (!esi) {
507 ecryptfs_printk(KERN_WARNING, "Out of memory\n"); 509 ecryptfs_printk(KERN_WARNING, "Out of memory\n");
508 rc = -ENOMEM; 510 rc = -ENOMEM;
509 goto out; 511 goto out;
510 } 512 }
513
514 rc = bdi_setup_and_register(&esi->bdi, "ecryptfs", BDI_CAP_MAP_COPY);
515 if (rc)
516 goto out;
517
518 sb->s_bdi = &esi->bdi;
511 sb->s_op = &ecryptfs_sops; 519 sb->s_op = &ecryptfs_sops;
512 /* Released through deactivate_super(sb) from get_sb_nodev */ 520 /* Released through deactivate_super(sb) from get_sb_nodev */
513 sb->s_root = d_alloc(NULL, &(const struct qstr) { 521 sb->s_root = d_alloc(NULL, &(const struct qstr) {
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index 278743c7716a..0c0ae491d231 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -122,6 +122,7 @@ static void ecryptfs_put_super(struct super_block *sb)
122 lock_kernel(); 122 lock_kernel();
123 123
124 ecryptfs_destroy_mount_crypt_stat(&sb_info->mount_crypt_stat); 124 ecryptfs_destroy_mount_crypt_stat(&sb_info->mount_crypt_stat);
125 bdi_destroy(&sb_info->bdi);
125 kmem_cache_free(ecryptfs_sb_info_cache, sb_info); 126 kmem_cache_free(ecryptfs_sb_info_cache, sb_info);
126 ecryptfs_set_superblock_private(sb, NULL); 127 ecryptfs_set_superblock_private(sb, NULL);
127 128
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index bd056a5b4efc..3817149919cb 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1140,8 +1140,7 @@ retry:
1140 * ep_poll_callback() when events will become available. 1140 * ep_poll_callback() when events will become available.
1141 */ 1141 */
1142 init_waitqueue_entry(&wait, current); 1142 init_waitqueue_entry(&wait, current);
1143 wait.flags |= WQ_FLAG_EXCLUSIVE; 1143 __add_wait_queue_exclusive(&ep->wq, &wait);
1144 __add_wait_queue(&ep->wq, &wait);
1145 1144
1146 for (;;) { 1145 for (;;) {
1147 /* 1146 /*
diff --git a/fs/exofs/exofs.h b/fs/exofs/exofs.h
index 8442e353309f..22721b2fd890 100644
--- a/fs/exofs/exofs.h
+++ b/fs/exofs/exofs.h
@@ -35,6 +35,7 @@
35 35
36#include <linux/fs.h> 36#include <linux/fs.h>
37#include <linux/time.h> 37#include <linux/time.h>
38#include <linux/backing-dev.h>
38#include "common.h" 39#include "common.h"
39 40
40/* FIXME: Remove once pnfs hits mainline 41/* FIXME: Remove once pnfs hits mainline
@@ -84,6 +85,7 @@ struct exofs_sb_info {
84 u32 s_next_generation; /* next gen # to use */ 85 u32 s_next_generation; /* next gen # to use */
85 atomic_t s_curr_pending; /* number of pending commands */ 86 atomic_t s_curr_pending; /* number of pending commands */
86 uint8_t s_cred[OSD_CAP_LEN]; /* credential for the fscb */ 87 uint8_t s_cred[OSD_CAP_LEN]; /* credential for the fscb */
88 struct backing_dev_info bdi; /* register our bdi with VFS */
87 89
88 struct pnfs_osd_data_map data_map; /* Default raid to use 90 struct pnfs_osd_data_map data_map; /* Default raid to use
89 * FIXME: Needed ? 91 * FIXME: Needed ?
diff --git a/fs/exofs/super.c b/fs/exofs/super.c
index 18e57ea1e5b4..03149b9a5178 100644
--- a/fs/exofs/super.c
+++ b/fs/exofs/super.c
@@ -302,6 +302,7 @@ static void exofs_put_super(struct super_block *sb)
302 _exofs_print_device("Unmounting", NULL, sbi->layout.s_ods[0], 302 _exofs_print_device("Unmounting", NULL, sbi->layout.s_ods[0],
303 sbi->layout.s_pid); 303 sbi->layout.s_pid);
304 304
305 bdi_destroy(&sbi->bdi);
305 exofs_free_sbi(sbi); 306 exofs_free_sbi(sbi);
306 sb->s_fs_info = NULL; 307 sb->s_fs_info = NULL;
307} 308}
@@ -546,6 +547,10 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
546 if (!sbi) 547 if (!sbi)
547 return -ENOMEM; 548 return -ENOMEM;
548 549
550 ret = bdi_setup_and_register(&sbi->bdi, "exofs", BDI_CAP_MAP_COPY);
551 if (ret)
552 goto free_bdi;
553
549 /* use mount options to fill superblock */ 554 /* use mount options to fill superblock */
550 od = osduld_path_lookup(opts->dev_name); 555 od = osduld_path_lookup(opts->dev_name);
551 if (IS_ERR(od)) { 556 if (IS_ERR(od)) {
@@ -612,6 +617,7 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
612 } 617 }
613 618
614 /* set up operation vectors */ 619 /* set up operation vectors */
620 sb->s_bdi = &sbi->bdi;
615 sb->s_fs_info = sbi; 621 sb->s_fs_info = sbi;
616 sb->s_op = &exofs_sops; 622 sb->s_op = &exofs_sops;
617 sb->s_export_op = &exofs_export_ops; 623 sb->s_export_op = &exofs_export_ops;
@@ -643,6 +649,8 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
643 return 0; 649 return 0;
644 650
645free_sbi: 651free_sbi:
652 bdi_destroy(&sbi->bdi);
653free_bdi:
646 EXOFS_ERR("Unable to mount exofs on %s pid=0x%llx err=%d\n", 654 EXOFS_ERR("Unable to mount exofs on %s pid=0x%llx err=%d\n",
647 opts->dev_name, sbi->layout.s_pid, ret); 655 opts->dev_name, sbi->layout.s_pid, ret);
648 exofs_free_sbi(sbi); 656 exofs_free_sbi(sbi);
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 94c8ee81f5e1..236b834b4ca8 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -3879,6 +3879,7 @@ static int ext4_xattr_fiemap(struct inode *inode,
3879 physical += offset; 3879 physical += offset;
3880 length = EXT4_SB(inode->i_sb)->s_inode_size - offset; 3880 length = EXT4_SB(inode->i_sb)->s_inode_size - offset;
3881 flags |= FIEMAP_EXTENT_DATA_INLINE; 3881 flags |= FIEMAP_EXTENT_DATA_INLINE;
3882 brelse(iloc.bh);
3882 } else { /* external block */ 3883 } else { /* external block */
3883 physical = EXT4_I(inode)->i_file_acl << blockbits; 3884 physical = EXT4_I(inode)->i_file_acl << blockbits;
3884 length = inode->i_sb->s_blocksize; 3885 length = inode->i_sb->s_blocksize;
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 5381802d6052..81d605412844 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -5375,7 +5375,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
5375 } else { 5375 } else {
5376 struct ext4_iloc iloc; 5376 struct ext4_iloc iloc;
5377 5377
5378 err = ext4_get_inode_loc(inode, &iloc); 5378 err = __ext4_get_inode_loc(inode, &iloc, 0);
5379 if (err) 5379 if (err)
5380 return err; 5380 return err;
5381 if (wbc->sync_mode == WB_SYNC_ALL) 5381 if (wbc->sync_mode == WB_SYNC_ALL)
@@ -5386,6 +5386,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
5386 (unsigned long long)iloc.bh->b_blocknr); 5386 (unsigned long long)iloc.bh->b_blocknr);
5387 err = -EIO; 5387 err = -EIO;
5388 } 5388 }
5389 brelse(iloc.bh);
5389 } 5390 }
5390 return err; 5391 return err;
5391} 5392}
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index bde9d0b170c2..b423a364dca3 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2535,6 +2535,17 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)
2535 mb_debug(1, "gonna free %u blocks in group %u (0x%p):", 2535 mb_debug(1, "gonna free %u blocks in group %u (0x%p):",
2536 entry->count, entry->group, entry); 2536 entry->count, entry->group, entry);
2537 2537
2538 if (test_opt(sb, DISCARD)) {
2539 ext4_fsblk_t discard_block;
2540
2541 discard_block = entry->start_blk +
2542 ext4_group_first_block_no(sb, entry->group);
2543 trace_ext4_discard_blocks(sb,
2544 (unsigned long long)discard_block,
2545 entry->count);
2546 sb_issue_discard(sb, discard_block, entry->count);
2547 }
2548
2538 err = ext4_mb_load_buddy(sb, entry->group, &e4b); 2549 err = ext4_mb_load_buddy(sb, entry->group, &e4b);
2539 /* we expect to find existing buddy because it's pinned */ 2550 /* we expect to find existing buddy because it's pinned */
2540 BUG_ON(err != 0); 2551 BUG_ON(err != 0);
@@ -2556,16 +2567,6 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)
2556 page_cache_release(e4b.bd_bitmap_page); 2567 page_cache_release(e4b.bd_bitmap_page);
2557 } 2568 }
2558 ext4_unlock_group(sb, entry->group); 2569 ext4_unlock_group(sb, entry->group);
2559 if (test_opt(sb, DISCARD)) {
2560 ext4_fsblk_t discard_block;
2561
2562 discard_block = entry->start_blk +
2563 ext4_group_first_block_no(sb, entry->group);
2564 trace_ext4_discard_blocks(sb,
2565 (unsigned long long)discard_block,
2566 entry->count);
2567 sb_issue_discard(sb, discard_block, entry->count);
2568 }
2569 kmem_cache_free(ext4_free_ext_cachep, entry); 2570 kmem_cache_free(ext4_free_ext_cachep, entry);
2570 ext4_mb_release_desc(&e4b); 2571 ext4_mb_release_desc(&e4b);
2571 } 2572 }
diff --git a/fs/ioctl.c b/fs/ioctl.c
index 6c751106c2e5..7faefb4da939 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -228,14 +228,23 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg)
228 228
229#ifdef CONFIG_BLOCK 229#ifdef CONFIG_BLOCK
230 230
231#define blk_to_logical(inode, blk) (blk << (inode)->i_blkbits) 231static inline sector_t logical_to_blk(struct inode *inode, loff_t offset)
232#define logical_to_blk(inode, offset) (offset >> (inode)->i_blkbits); 232{
233 return (offset >> inode->i_blkbits);
234}
235
236static inline loff_t blk_to_logical(struct inode *inode, sector_t blk)
237{
238 return (blk << inode->i_blkbits);
239}
233 240
234/** 241/**
235 * __generic_block_fiemap - FIEMAP for block based inodes (no locking) 242 * __generic_block_fiemap - FIEMAP for block based inodes (no locking)
236 * @inode - the inode to map 243 * @inode: the inode to map
237 * @arg - the pointer to userspace where we copy everything to 244 * @fieinfo: the fiemap info struct that will be passed back to userspace
238 * @get_block - the fs's get_block function 245 * @start: where to start mapping in the inode
246 * @len: how much space to map
247 * @get_block: the fs's get_block function
239 * 248 *
240 * This does FIEMAP for block based inodes. Basically it will just loop 249 * This does FIEMAP for block based inodes. Basically it will just loop
241 * through get_block until we hit the number of extents we want to map, or we 250 * through get_block until we hit the number of extents we want to map, or we
@@ -250,58 +259,63 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg)
250 */ 259 */
251 260
252int __generic_block_fiemap(struct inode *inode, 261int __generic_block_fiemap(struct inode *inode,
253 struct fiemap_extent_info *fieinfo, u64 start, 262 struct fiemap_extent_info *fieinfo, loff_t start,
254 u64 len, get_block_t *get_block) 263 loff_t len, get_block_t *get_block)
255{ 264{
256 struct buffer_head tmp; 265 struct buffer_head map_bh;
257 unsigned long long start_blk; 266 sector_t start_blk, last_blk;
258 long long length = 0, map_len = 0; 267 loff_t isize = i_size_read(inode);
259 u64 logical = 0, phys = 0, size = 0; 268 u64 logical = 0, phys = 0, size = 0;
260 u32 flags = FIEMAP_EXTENT_MERGED; 269 u32 flags = FIEMAP_EXTENT_MERGED;
261 int ret = 0, past_eof = 0, whole_file = 0; 270 bool past_eof = false, whole_file = false;
271 int ret = 0;
262 272
263 if ((ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC))) 273 ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC);
274 if (ret)
264 return ret; 275 return ret;
265 276
266 start_blk = logical_to_blk(inode, start); 277 /*
267 278 * Either the i_mutex or other appropriate locking needs to be held
268 length = (long long)min_t(u64, len, i_size_read(inode)); 279 * since we expect isize to not change at all through the duration of
269 if (length < len) 280 * this call.
270 whole_file = 1; 281 */
282 if (len >= isize) {
283 whole_file = true;
284 len = isize;
285 }
271 286
272 map_len = length; 287 start_blk = logical_to_blk(inode, start);
288 last_blk = logical_to_blk(inode, start + len - 1);
273 289
274 do { 290 do {
275 /* 291 /*
276 * we set b_size to the total size we want so it will map as 292 * we set b_size to the total size we want so it will map as
277 * many contiguous blocks as possible at once 293 * many contiguous blocks as possible at once
278 */ 294 */
279 memset(&tmp, 0, sizeof(struct buffer_head)); 295 memset(&map_bh, 0, sizeof(struct buffer_head));
280 tmp.b_size = map_len; 296 map_bh.b_size = len;
281 297
282 ret = get_block(inode, start_blk, &tmp, 0); 298 ret = get_block(inode, start_blk, &map_bh, 0);
283 if (ret) 299 if (ret)
284 break; 300 break;
285 301
286 /* HOLE */ 302 /* HOLE */
287 if (!buffer_mapped(&tmp)) { 303 if (!buffer_mapped(&map_bh)) {
288 length -= blk_to_logical(inode, 1);
289 start_blk++; 304 start_blk++;
290 305
291 /* 306 /*
292 * we want to handle the case where there is an 307 * We want to handle the case where there is an
293 * allocated block at the front of the file, and then 308 * allocated block at the front of the file, and then
294 * nothing but holes up to the end of the file properly, 309 * nothing but holes up to the end of the file properly,
295 * to make sure that extent at the front gets properly 310 * to make sure that extent at the front gets properly
296 * marked with FIEMAP_EXTENT_LAST 311 * marked with FIEMAP_EXTENT_LAST
297 */ 312 */
298 if (!past_eof && 313 if (!past_eof &&
299 blk_to_logical(inode, start_blk) >= 314 blk_to_logical(inode, start_blk) >= isize)
300 blk_to_logical(inode, 0)+i_size_read(inode))
301 past_eof = 1; 315 past_eof = 1;
302 316
303 /* 317 /*
304 * first hole after going past the EOF, this is our 318 * First hole after going past the EOF, this is our
305 * last extent 319 * last extent
306 */ 320 */
307 if (past_eof && size) { 321 if (past_eof && size) {
@@ -309,15 +323,18 @@ int __generic_block_fiemap(struct inode *inode,
309 ret = fiemap_fill_next_extent(fieinfo, logical, 323 ret = fiemap_fill_next_extent(fieinfo, logical,
310 phys, size, 324 phys, size,
311 flags); 325 flags);
312 break; 326 } else if (size) {
327 ret = fiemap_fill_next_extent(fieinfo, logical,
328 phys, size, flags);
329 size = 0;
313 } 330 }
314 331
315 /* if we have holes up to/past EOF then we're done */ 332 /* if we have holes up to/past EOF then we're done */
316 if (length <= 0 || past_eof) 333 if (start_blk > last_blk || past_eof || ret)
317 break; 334 break;
318 } else { 335 } else {
319 /* 336 /*
320 * we have gone over the length of what we wanted to 337 * We have gone over the length of what we wanted to
321 * map, and it wasn't the entire file, so add the extent 338 * map, and it wasn't the entire file, so add the extent
322 * we got last time and exit. 339 * we got last time and exit.
323 * 340 *
@@ -331,7 +348,7 @@ int __generic_block_fiemap(struct inode *inode,
331 * are good to go, just add the extent to the fieinfo 348 * are good to go, just add the extent to the fieinfo
332 * and break 349 * and break
333 */ 350 */
334 if (length <= 0 && !whole_file) { 351 if (start_blk > last_blk && !whole_file) {
335 ret = fiemap_fill_next_extent(fieinfo, logical, 352 ret = fiemap_fill_next_extent(fieinfo, logical,
336 phys, size, 353 phys, size,
337 flags); 354 flags);
@@ -351,11 +368,10 @@ int __generic_block_fiemap(struct inode *inode,
351 } 368 }
352 369
353 logical = blk_to_logical(inode, start_blk); 370 logical = blk_to_logical(inode, start_blk);
354 phys = blk_to_logical(inode, tmp.b_blocknr); 371 phys = blk_to_logical(inode, map_bh.b_blocknr);
355 size = tmp.b_size; 372 size = map_bh.b_size;
356 flags = FIEMAP_EXTENT_MERGED; 373 flags = FIEMAP_EXTENT_MERGED;
357 374
358 length -= tmp.b_size;
359 start_blk += logical_to_blk(inode, size); 375 start_blk += logical_to_blk(inode, size);
360 376
361 /* 377 /*
@@ -363,15 +379,13 @@ int __generic_block_fiemap(struct inode *inode,
363 * soon as we find a hole that the last extent we found 379 * soon as we find a hole that the last extent we found
364 * is marked with FIEMAP_EXTENT_LAST 380 * is marked with FIEMAP_EXTENT_LAST
365 */ 381 */
366 if (!past_eof && 382 if (!past_eof && logical + size >= isize)
367 logical+size >= 383 past_eof = true;
368 blk_to_logical(inode, 0)+i_size_read(inode))
369 past_eof = 1;
370 } 384 }
371 cond_resched(); 385 cond_resched();
372 } while (1); 386 } while (1);
373 387
374 /* if ret is 1 then we just hit the end of the extent array */ 388 /* If ret is 1 then we just hit the end of the extent array */
375 if (ret == 1) 389 if (ret == 1)
376 ret = 0; 390 ret = 0;
377 391
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
index 9dd126276c9f..ed9ba6fe04f5 100644
--- a/fs/jfs/inode.c
+++ b/fs/jfs/inode.c
@@ -61,7 +61,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino)
61 inode->i_op = &page_symlink_inode_operations; 61 inode->i_op = &page_symlink_inode_operations;
62 inode->i_mapping->a_ops = &jfs_aops; 62 inode->i_mapping->a_ops = &jfs_aops;
63 } else { 63 } else {
64 inode->i_op = &jfs_symlink_inode_operations; 64 inode->i_op = &jfs_fast_symlink_inode_operations;
65 /* 65 /*
66 * The inline data should be null-terminated, but 66 * The inline data should be null-terminated, but
67 * don't let on-disk corruption crash the kernel 67 * don't let on-disk corruption crash the kernel
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 6c4dfcbf3f55..9e2f6a721668 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -196,7 +196,7 @@ int dbMount(struct inode *ipbmap)
196 bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag); 196 bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag);
197 bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref); 197 bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref);
198 bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel); 198 bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel);
199 bmp->db_agheigth = le32_to_cpu(dbmp_le->dn_agheigth); 199 bmp->db_agheight = le32_to_cpu(dbmp_le->dn_agheight);
200 bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth); 200 bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth);
201 bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart); 201 bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart);
202 bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size); 202 bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size);
@@ -288,7 +288,7 @@ int dbSync(struct inode *ipbmap)
288 dbmp_le->dn_maxag = cpu_to_le32(bmp->db_maxag); 288 dbmp_le->dn_maxag = cpu_to_le32(bmp->db_maxag);
289 dbmp_le->dn_agpref = cpu_to_le32(bmp->db_agpref); 289 dbmp_le->dn_agpref = cpu_to_le32(bmp->db_agpref);
290 dbmp_le->dn_aglevel = cpu_to_le32(bmp->db_aglevel); 290 dbmp_le->dn_aglevel = cpu_to_le32(bmp->db_aglevel);
291 dbmp_le->dn_agheigth = cpu_to_le32(bmp->db_agheigth); 291 dbmp_le->dn_agheight = cpu_to_le32(bmp->db_agheight);
292 dbmp_le->dn_agwidth = cpu_to_le32(bmp->db_agwidth); 292 dbmp_le->dn_agwidth = cpu_to_le32(bmp->db_agwidth);
293 dbmp_le->dn_agstart = cpu_to_le32(bmp->db_agstart); 293 dbmp_le->dn_agstart = cpu_to_le32(bmp->db_agstart);
294 dbmp_le->dn_agl2size = cpu_to_le32(bmp->db_agl2size); 294 dbmp_le->dn_agl2size = cpu_to_le32(bmp->db_agl2size);
@@ -1441,7 +1441,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
1441 * tree index of this allocation group within the control page. 1441 * tree index of this allocation group within the control page.
1442 */ 1442 */
1443 agperlev = 1443 agperlev =
1444 (1 << (L2LPERCTL - (bmp->db_agheigth << 1))) / bmp->db_agwidth; 1444 (1 << (L2LPERCTL - (bmp->db_agheight << 1))) / bmp->db_agwidth;
1445 ti = bmp->db_agstart + bmp->db_agwidth * (agno & (agperlev - 1)); 1445 ti = bmp->db_agstart + bmp->db_agwidth * (agno & (agperlev - 1));
1446 1446
1447 /* dmap control page trees fan-out by 4 and a single allocation 1447 /* dmap control page trees fan-out by 4 and a single allocation
@@ -1460,7 +1460,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
1460 * the subtree to find the leftmost leaf that describes this 1460 * the subtree to find the leftmost leaf that describes this
1461 * free space. 1461 * free space.
1462 */ 1462 */
1463 for (k = bmp->db_agheigth; k > 0; k--) { 1463 for (k = bmp->db_agheight; k > 0; k--) {
1464 for (n = 0, m = (ti << 2) + 1; n < 4; n++) { 1464 for (n = 0, m = (ti << 2) + 1; n < 4; n++) {
1465 if (l2nb <= dcp->stree[m + n]) { 1465 if (l2nb <= dcp->stree[m + n]) {
1466 ti = m + n; 1466 ti = m + n;
@@ -3607,7 +3607,7 @@ void dbFinalizeBmap(struct inode *ipbmap)
3607 } 3607 }
3608 3608
3609 /* 3609 /*
3610 * compute db_aglevel, db_agheigth, db_width, db_agstart: 3610 * compute db_aglevel, db_agheight, db_width, db_agstart:
3611 * an ag is covered in aglevel dmapctl summary tree, 3611 * an ag is covered in aglevel dmapctl summary tree,
3612 * at agheight level height (from leaf) with agwidth number of nodes 3612 * at agheight level height (from leaf) with agwidth number of nodes
3613 * each, which starts at agstart index node of the smmary tree node 3613 * each, which starts at agstart index node of the smmary tree node
@@ -3616,9 +3616,9 @@ void dbFinalizeBmap(struct inode *ipbmap)
3616 bmp->db_aglevel = BMAPSZTOLEV(bmp->db_agsize); 3616 bmp->db_aglevel = BMAPSZTOLEV(bmp->db_agsize);
3617 l2nl = 3617 l2nl =
3618 bmp->db_agl2size - (L2BPERDMAP + bmp->db_aglevel * L2LPERCTL); 3618 bmp->db_agl2size - (L2BPERDMAP + bmp->db_aglevel * L2LPERCTL);
3619 bmp->db_agheigth = l2nl >> 1; 3619 bmp->db_agheight = l2nl >> 1;
3620 bmp->db_agwidth = 1 << (l2nl - (bmp->db_agheigth << 1)); 3620 bmp->db_agwidth = 1 << (l2nl - (bmp->db_agheight << 1));
3621 for (i = 5 - bmp->db_agheigth, bmp->db_agstart = 0, n = 1; i > 0; 3621 for (i = 5 - bmp->db_agheight, bmp->db_agstart = 0, n = 1; i > 0;
3622 i--) { 3622 i--) {
3623 bmp->db_agstart += n; 3623 bmp->db_agstart += n;
3624 n <<= 2; 3624 n <<= 2;
diff --git a/fs/jfs/jfs_dmap.h b/fs/jfs/jfs_dmap.h
index 1a6eb41569bc..6dcb906c55d8 100644
--- a/fs/jfs/jfs_dmap.h
+++ b/fs/jfs/jfs_dmap.h
@@ -210,7 +210,7 @@ struct dbmap_disk {
210 __le32 dn_maxag; /* 4: max active alloc group number */ 210 __le32 dn_maxag; /* 4: max active alloc group number */
211 __le32 dn_agpref; /* 4: preferred alloc group (hint) */ 211 __le32 dn_agpref; /* 4: preferred alloc group (hint) */
212 __le32 dn_aglevel; /* 4: dmapctl level holding the AG */ 212 __le32 dn_aglevel; /* 4: dmapctl level holding the AG */
213 __le32 dn_agheigth; /* 4: height in dmapctl of the AG */ 213 __le32 dn_agheight; /* 4: height in dmapctl of the AG */
214 __le32 dn_agwidth; /* 4: width in dmapctl of the AG */ 214 __le32 dn_agwidth; /* 4: width in dmapctl of the AG */
215 __le32 dn_agstart; /* 4: start tree index at AG height */ 215 __le32 dn_agstart; /* 4: start tree index at AG height */
216 __le32 dn_agl2size; /* 4: l2 num of blks per alloc group */ 216 __le32 dn_agl2size; /* 4: l2 num of blks per alloc group */
@@ -229,7 +229,7 @@ struct dbmap {
229 int dn_maxag; /* max active alloc group number */ 229 int dn_maxag; /* max active alloc group number */
230 int dn_agpref; /* preferred alloc group (hint) */ 230 int dn_agpref; /* preferred alloc group (hint) */
231 int dn_aglevel; /* dmapctl level holding the AG */ 231 int dn_aglevel; /* dmapctl level holding the AG */
232 int dn_agheigth; /* height in dmapctl of the AG */ 232 int dn_agheight; /* height in dmapctl of the AG */
233 int dn_agwidth; /* width in dmapctl of the AG */ 233 int dn_agwidth; /* width in dmapctl of the AG */
234 int dn_agstart; /* start tree index at AG height */ 234 int dn_agstart; /* start tree index at AG height */
235 int dn_agl2size; /* l2 num of blks per alloc group */ 235 int dn_agl2size; /* l2 num of blks per alloc group */
@@ -255,7 +255,7 @@ struct bmap {
255#define db_agsize db_bmap.dn_agsize 255#define db_agsize db_bmap.dn_agsize
256#define db_agl2size db_bmap.dn_agl2size 256#define db_agl2size db_bmap.dn_agl2size
257#define db_agwidth db_bmap.dn_agwidth 257#define db_agwidth db_bmap.dn_agwidth
258#define db_agheigth db_bmap.dn_agheigth 258#define db_agheight db_bmap.dn_agheight
259#define db_agstart db_bmap.dn_agstart 259#define db_agstart db_bmap.dn_agstart
260#define db_numag db_bmap.dn_numag 260#define db_numag db_bmap.dn_numag
261#define db_maxlevel db_bmap.dn_maxlevel 261#define db_maxlevel db_bmap.dn_maxlevel
diff --git a/fs/jfs/jfs_inode.h b/fs/jfs/jfs_inode.h
index 79e2c79661df..9e6bda30a6e8 100644
--- a/fs/jfs/jfs_inode.h
+++ b/fs/jfs/jfs_inode.h
@@ -48,5 +48,6 @@ extern const struct file_operations jfs_dir_operations;
48extern const struct inode_operations jfs_file_inode_operations; 48extern const struct inode_operations jfs_file_inode_operations;
49extern const struct file_operations jfs_file_operations; 49extern const struct file_operations jfs_file_operations;
50extern const struct inode_operations jfs_symlink_inode_operations; 50extern const struct inode_operations jfs_symlink_inode_operations;
51extern const struct inode_operations jfs_fast_symlink_inode_operations;
51extern const struct dentry_operations jfs_ci_dentry_operations; 52extern const struct dentry_operations jfs_ci_dentry_operations;
52#endif /* _H_JFS_INODE */ 53#endif /* _H_JFS_INODE */
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index 4a3e9f39c21d..a9cf8e8675be 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -956,7 +956,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
956 */ 956 */
957 957
958 if (ssize <= IDATASIZE) { 958 if (ssize <= IDATASIZE) {
959 ip->i_op = &jfs_symlink_inode_operations; 959 ip->i_op = &jfs_fast_symlink_inode_operations;
960 960
961 i_fastsymlink = JFS_IP(ip)->i_inline; 961 i_fastsymlink = JFS_IP(ip)->i_inline;
962 memcpy(i_fastsymlink, name, ssize); 962 memcpy(i_fastsymlink, name, ssize);
@@ -978,7 +978,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
978 else { 978 else {
979 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); 979 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip);
980 980
981 ip->i_op = &page_symlink_inode_operations; 981 ip->i_op = &jfs_symlink_inode_operations;
982 ip->i_mapping->a_ops = &jfs_aops; 982 ip->i_mapping->a_ops = &jfs_aops;
983 983
984 /* 984 /*
diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c
index 7f24a0bb08ca..1aba0039f1c9 100644
--- a/fs/jfs/resize.c
+++ b/fs/jfs/resize.c
@@ -81,6 +81,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
81 struct inode *iplist[1]; 81 struct inode *iplist[1];
82 struct jfs_superblock *j_sb, *j_sb2; 82 struct jfs_superblock *j_sb, *j_sb2;
83 uint old_agsize; 83 uint old_agsize;
84 int agsizechanged = 0;
84 struct buffer_head *bh, *bh2; 85 struct buffer_head *bh, *bh2;
85 86
86 /* If the volume hasn't grown, get out now */ 87 /* If the volume hasn't grown, get out now */
@@ -333,6 +334,9 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
333 */ 334 */
334 if ((rc = dbExtendFS(ipbmap, XAddress, nblocks))) 335 if ((rc = dbExtendFS(ipbmap, XAddress, nblocks)))
335 goto error_out; 336 goto error_out;
337
338 agsizechanged |= (bmp->db_agsize != old_agsize);
339
336 /* 340 /*
337 * the map now has extended to cover additional nblocks: 341 * the map now has extended to cover additional nblocks:
338 * dn_mapsize = oldMapsize + nblocks; 342 * dn_mapsize = oldMapsize + nblocks;
@@ -432,7 +436,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
432 * will correctly identify the new ag); 436 * will correctly identify the new ag);
433 */ 437 */
434 /* if new AG size the same as old AG size, done! */ 438 /* if new AG size the same as old AG size, done! */
435 if (bmp->db_agsize != old_agsize) { 439 if (agsizechanged) {
436 if ((rc = diExtendFS(ipimap, ipbmap))) 440 if ((rc = diExtendFS(ipimap, ipbmap)))
437 goto error_out; 441 goto error_out;
438 442
diff --git a/fs/jfs/symlink.c b/fs/jfs/symlink.c
index 4af1a05aad0a..205b946d8e0d 100644
--- a/fs/jfs/symlink.c
+++ b/fs/jfs/symlink.c
@@ -29,9 +29,21 @@ static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd)
29 return NULL; 29 return NULL;
30} 30}
31 31
32const struct inode_operations jfs_symlink_inode_operations = { 32const struct inode_operations jfs_fast_symlink_inode_operations = {
33 .readlink = generic_readlink, 33 .readlink = generic_readlink,
34 .follow_link = jfs_follow_link, 34 .follow_link = jfs_follow_link,
35 .setattr = jfs_setattr,
36 .setxattr = jfs_setxattr,
37 .getxattr = jfs_getxattr,
38 .listxattr = jfs_listxattr,
39 .removexattr = jfs_removexattr,
40};
41
42const struct inode_operations jfs_symlink_inode_operations = {
43 .readlink = generic_readlink,
44 .follow_link = page_follow_link_light,
45 .put_link = page_put_link,
46 .setattr = jfs_setattr,
35 .setxattr = jfs_setxattr, 47 .setxattr = jfs_setxattr,
36 .getxattr = jfs_getxattr, 48 .getxattr = jfs_getxattr,
37 .listxattr = jfs_listxattr, 49 .listxattr = jfs_listxattr,
diff --git a/fs/logfs/gc.c b/fs/logfs/gc.c
index 84e36f52fe95..76c242fbe1b0 100644
--- a/fs/logfs/gc.c
+++ b/fs/logfs/gc.c
@@ -459,6 +459,14 @@ static void __logfs_gc_pass(struct super_block *sb, int target)
459 struct logfs_block *block; 459 struct logfs_block *block;
460 int round, progress, last_progress = 0; 460 int round, progress, last_progress = 0;
461 461
462 /*
463 * Doing too many changes to the segfile at once would result
464 * in a large number of aliases. Write the journal before
465 * things get out of hand.
466 */
467 if (super->s_shadow_tree.no_shadowed_segments >= MAX_OBJ_ALIASES)
468 logfs_write_anchor(sb);
469
462 if (no_free_segments(sb) >= target && 470 if (no_free_segments(sb) >= target &&
463 super->s_no_object_aliases < MAX_OBJ_ALIASES) 471 super->s_no_object_aliases < MAX_OBJ_ALIASES)
464 return; 472 return;
diff --git a/fs/logfs/journal.c b/fs/logfs/journal.c
index 33bd260b8309..fb0a613f885b 100644
--- a/fs/logfs/journal.c
+++ b/fs/logfs/journal.c
@@ -389,7 +389,10 @@ static void journal_get_erase_count(struct logfs_area *area)
389static int journal_erase_segment(struct logfs_area *area) 389static int journal_erase_segment(struct logfs_area *area)
390{ 390{
391 struct super_block *sb = area->a_sb; 391 struct super_block *sb = area->a_sb;
392 struct logfs_segment_header sh; 392 union {
393 struct logfs_segment_header sh;
394 unsigned char c[ALIGN(sizeof(struct logfs_segment_header), 16)];
395 } u;
393 u64 ofs; 396 u64 ofs;
394 int err; 397 int err;
395 398
@@ -397,20 +400,21 @@ static int journal_erase_segment(struct logfs_area *area)
397 if (err) 400 if (err)
398 return err; 401 return err;
399 402
400 sh.pad = 0; 403 memset(&u, 0, sizeof(u));
401 sh.type = SEG_JOURNAL; 404 u.sh.pad = 0;
402 sh.level = 0; 405 u.sh.type = SEG_JOURNAL;
403 sh.segno = cpu_to_be32(area->a_segno); 406 u.sh.level = 0;
404 sh.ec = cpu_to_be32(area->a_erase_count); 407 u.sh.segno = cpu_to_be32(area->a_segno);
405 sh.gec = cpu_to_be64(logfs_super(sb)->s_gec); 408 u.sh.ec = cpu_to_be32(area->a_erase_count);
406 sh.crc = logfs_crc32(&sh, sizeof(sh), 4); 409 u.sh.gec = cpu_to_be64(logfs_super(sb)->s_gec);
410 u.sh.crc = logfs_crc32(&u.sh, sizeof(u.sh), 4);
407 411
408 /* This causes a bug in segment.c. Not yet. */ 412 /* This causes a bug in segment.c. Not yet. */
409 //logfs_set_segment_erased(sb, area->a_segno, area->a_erase_count, 0); 413 //logfs_set_segment_erased(sb, area->a_segno, area->a_erase_count, 0);
410 414
411 ofs = dev_ofs(sb, area->a_segno, 0); 415 ofs = dev_ofs(sb, area->a_segno, 0);
412 area->a_used_bytes = ALIGN(sizeof(sh), 16); 416 area->a_used_bytes = sizeof(u);
413 logfs_buf_write(area, ofs, &sh, sizeof(sh)); 417 logfs_buf_write(area, ofs, &u, sizeof(u));
414 return 0; 418 return 0;
415} 419}
416 420
@@ -494,6 +498,8 @@ static void account_shadows(struct super_block *sb)
494 498
495 btree_grim_visitor64(&tree->new, (unsigned long)sb, account_shadow); 499 btree_grim_visitor64(&tree->new, (unsigned long)sb, account_shadow);
496 btree_grim_visitor64(&tree->old, (unsigned long)sb, account_shadow); 500 btree_grim_visitor64(&tree->old, (unsigned long)sb, account_shadow);
501 btree_grim_visitor32(&tree->segment_map, 0, NULL);
502 tree->no_shadowed_segments = 0;
497 503
498 if (li->li_block) { 504 if (li->li_block) {
499 /* 505 /*
@@ -607,9 +613,9 @@ static size_t __logfs_write_je(struct super_block *sb, void *buf, u16 type,
607 if (len == 0) 613 if (len == 0)
608 return logfs_write_header(super, header, 0, type); 614 return logfs_write_header(super, header, 0, type);
609 615
616 BUG_ON(len > sb->s_blocksize);
610 compr_len = logfs_compress(buf, data, len, sb->s_blocksize); 617 compr_len = logfs_compress(buf, data, len, sb->s_blocksize);
611 if (compr_len < 0 || type == JE_ANCHOR) { 618 if (compr_len < 0 || type == JE_ANCHOR) {
612 BUG_ON(len > sb->s_blocksize);
613 memcpy(data, buf, len); 619 memcpy(data, buf, len);
614 compr_len = len; 620 compr_len = len;
615 compr = COMPR_NONE; 621 compr = COMPR_NONE;
@@ -661,6 +667,7 @@ static int logfs_write_je_buf(struct super_block *sb, void *buf, u16 type,
661 if (ofs < 0) 667 if (ofs < 0)
662 return ofs; 668 return ofs;
663 logfs_buf_write(area, ofs, super->s_compressed_je, len); 669 logfs_buf_write(area, ofs, super->s_compressed_je, len);
670 BUG_ON(super->s_no_je >= MAX_JOURNAL_ENTRIES);
664 super->s_je_array[super->s_no_je++] = cpu_to_be64(ofs); 671 super->s_je_array[super->s_no_je++] = cpu_to_be64(ofs);
665 return 0; 672 return 0;
666} 673}
diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h
index b84b0eec6024..0a3df1a0c936 100644
--- a/fs/logfs/logfs.h
+++ b/fs/logfs/logfs.h
@@ -257,10 +257,14 @@ struct logfs_shadow {
257 * struct shadow_tree 257 * struct shadow_tree
258 * @new: shadows where old_ofs==0, indexed by new_ofs 258 * @new: shadows where old_ofs==0, indexed by new_ofs
259 * @old: shadows where old_ofs!=0, indexed by old_ofs 259 * @old: shadows where old_ofs!=0, indexed by old_ofs
260 * @segment_map: bitfield of segments containing shadows
261 * @no_shadowed_segment: number of segments containing shadows
260 */ 262 */
261struct shadow_tree { 263struct shadow_tree {
262 struct btree_head64 new; 264 struct btree_head64 new;
263 struct btree_head64 old; 265 struct btree_head64 old;
266 struct btree_head32 segment_map;
267 int no_shadowed_segments;
264}; 268};
265 269
266struct object_alias_item { 270struct object_alias_item {
@@ -305,13 +309,14 @@ typedef int write_alias_t(struct super_block *sb, u64 ino, u64 bix,
305 level_t level, int child_no, __be64 val); 309 level_t level, int child_no, __be64 val);
306struct logfs_block_ops { 310struct logfs_block_ops {
307 void (*write_block)(struct logfs_block *block); 311 void (*write_block)(struct logfs_block *block);
308 gc_level_t (*block_level)(struct logfs_block *block);
309 void (*free_block)(struct super_block *sb, struct logfs_block*block); 312 void (*free_block)(struct super_block *sb, struct logfs_block*block);
310 int (*write_alias)(struct super_block *sb, 313 int (*write_alias)(struct super_block *sb,
311 struct logfs_block *block, 314 struct logfs_block *block,
312 write_alias_t *write_one_alias); 315 write_alias_t *write_one_alias);
313}; 316};
314 317
318#define MAX_JOURNAL_ENTRIES 256
319
315struct logfs_super { 320struct logfs_super {
316 struct mtd_info *s_mtd; /* underlying device */ 321 struct mtd_info *s_mtd; /* underlying device */
317 struct block_device *s_bdev; /* underlying device */ 322 struct block_device *s_bdev; /* underlying device */
@@ -378,7 +383,7 @@ struct logfs_super {
378 u32 s_journal_ec[LOGFS_JOURNAL_SEGS]; /* journal erasecounts */ 383 u32 s_journal_ec[LOGFS_JOURNAL_SEGS]; /* journal erasecounts */
379 u64 s_last_version; 384 u64 s_last_version;
380 struct logfs_area *s_journal_area; /* open journal segment */ 385 struct logfs_area *s_journal_area; /* open journal segment */
381 __be64 s_je_array[64]; 386 __be64 s_je_array[MAX_JOURNAL_ENTRIES];
382 int s_no_je; 387 int s_no_je;
383 388
384 int s_sum_index; /* for the 12 summaries */ 389 int s_sum_index; /* for the 12 summaries */
@@ -722,4 +727,10 @@ static inline struct logfs_area *get_area(struct super_block *sb,
722 return logfs_super(sb)->s_area[(__force u8)gc_level]; 727 return logfs_super(sb)->s_area[(__force u8)gc_level];
723} 728}
724 729
730static inline void logfs_mempool_destroy(mempool_t *pool)
731{
732 if (pool)
733 mempool_destroy(pool);
734}
735
725#endif 736#endif
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c
index bff40253dfb2..3159db6958e5 100644
--- a/fs/logfs/readwrite.c
+++ b/fs/logfs/readwrite.c
@@ -430,25 +430,6 @@ static void inode_write_block(struct logfs_block *block)
430 } 430 }
431} 431}
432 432
433static gc_level_t inode_block_level(struct logfs_block *block)
434{
435 BUG_ON(block->inode->i_ino == LOGFS_INO_MASTER);
436 return GC_LEVEL(LOGFS_MAX_LEVELS);
437}
438
439static gc_level_t indirect_block_level(struct logfs_block *block)
440{
441 struct page *page;
442 struct inode *inode;
443 u64 bix;
444 level_t level;
445
446 page = block->page;
447 inode = page->mapping->host;
448 logfs_unpack_index(page->index, &bix, &level);
449 return expand_level(inode->i_ino, level);
450}
451
452/* 433/*
453 * This silences a false, yet annoying gcc warning. I hate it when my editor 434 * This silences a false, yet annoying gcc warning. I hate it when my editor
454 * jumps into bitops.h each time I recompile this file. 435 * jumps into bitops.h each time I recompile this file.
@@ -587,14 +568,12 @@ static void indirect_free_block(struct super_block *sb,
587 568
588static struct logfs_block_ops inode_block_ops = { 569static struct logfs_block_ops inode_block_ops = {
589 .write_block = inode_write_block, 570 .write_block = inode_write_block,
590 .block_level = inode_block_level,
591 .free_block = inode_free_block, 571 .free_block = inode_free_block,
592 .write_alias = inode_write_alias, 572 .write_alias = inode_write_alias,
593}; 573};
594 574
595struct logfs_block_ops indirect_block_ops = { 575struct logfs_block_ops indirect_block_ops = {
596 .write_block = indirect_write_block, 576 .write_block = indirect_write_block,
597 .block_level = indirect_block_level,
598 .free_block = indirect_free_block, 577 .free_block = indirect_free_block,
599 .write_alias = indirect_write_alias, 578 .write_alias = indirect_write_alias,
600}; 579};
@@ -1241,6 +1220,18 @@ static void free_shadow(struct inode *inode, struct logfs_shadow *shadow)
1241 mempool_free(shadow, super->s_shadow_pool); 1220 mempool_free(shadow, super->s_shadow_pool);
1242} 1221}
1243 1222
1223static void mark_segment(struct shadow_tree *tree, u32 segno)
1224{
1225 int err;
1226
1227 if (!btree_lookup32(&tree->segment_map, segno)) {
1228 err = btree_insert32(&tree->segment_map, segno, (void *)1,
1229 GFP_NOFS);
1230 BUG_ON(err);
1231 tree->no_shadowed_segments++;
1232 }
1233}
1234
1244/** 1235/**
1245 * fill_shadow_tree - Propagate shadow tree changes due to a write 1236 * fill_shadow_tree - Propagate shadow tree changes due to a write
1246 * @inode: Inode owning the page 1237 * @inode: Inode owning the page
@@ -1288,6 +1279,8 @@ static void fill_shadow_tree(struct inode *inode, struct page *page,
1288 1279
1289 super->s_dirty_used_bytes += shadow->new_len; 1280 super->s_dirty_used_bytes += shadow->new_len;
1290 super->s_dirty_free_bytes += shadow->old_len; 1281 super->s_dirty_free_bytes += shadow->old_len;
1282 mark_segment(tree, shadow->old_ofs >> super->s_segshift);
1283 mark_segment(tree, shadow->new_ofs >> super->s_segshift);
1291 } 1284 }
1292} 1285}
1293 1286
@@ -1845,19 +1838,37 @@ static int __logfs_truncate(struct inode *inode, u64 size)
1845 return logfs_truncate_direct(inode, size); 1838 return logfs_truncate_direct(inode, size);
1846} 1839}
1847 1840
1848int logfs_truncate(struct inode *inode, u64 size) 1841/*
1842 * Truncate, by changing the segment file, can consume a fair amount
1843 * of resources. So back off from time to time and do some GC.
1844 * 8 or 2048 blocks should be well within safety limits even if
1845 * every single block resided in a different segment.
1846 */
1847#define TRUNCATE_STEP (8 * 1024 * 1024)
1848int logfs_truncate(struct inode *inode, u64 target)
1849{ 1849{
1850 struct super_block *sb = inode->i_sb; 1850 struct super_block *sb = inode->i_sb;
1851 int err; 1851 u64 size = i_size_read(inode);
1852 int err = 0;
1852 1853
1853 logfs_get_wblocks(sb, NULL, 1); 1854 size = ALIGN(size, TRUNCATE_STEP);
1854 err = __logfs_truncate(inode, size); 1855 while (size > target) {
1855 if (!err) 1856 if (size > TRUNCATE_STEP)
1856 err = __logfs_write_inode(inode, 0); 1857 size -= TRUNCATE_STEP;
1857 logfs_put_wblocks(sb, NULL, 1); 1858 else
1859 size = 0;
1860 if (size < target)
1861 size = target;
1862
1863 logfs_get_wblocks(sb, NULL, 1);
1864 err = __logfs_truncate(inode, target);
1865 if (!err)
1866 err = __logfs_write_inode(inode, 0);
1867 logfs_put_wblocks(sb, NULL, 1);
1868 }
1858 1869
1859 if (!err) 1870 if (!err)
1860 err = vmtruncate(inode, size); 1871 err = vmtruncate(inode, target);
1861 1872
1862 /* I don't trust error recovery yet. */ 1873 /* I don't trust error recovery yet. */
1863 WARN_ON(err); 1874 WARN_ON(err);
@@ -2251,8 +2262,6 @@ void logfs_cleanup_rw(struct super_block *sb)
2251 struct logfs_super *super = logfs_super(sb); 2262 struct logfs_super *super = logfs_super(sb);
2252 2263
2253 destroy_meta_inode(super->s_segfile_inode); 2264 destroy_meta_inode(super->s_segfile_inode);
2254 if (super->s_block_pool) 2265 logfs_mempool_destroy(super->s_block_pool);
2255 mempool_destroy(super->s_block_pool); 2266 logfs_mempool_destroy(super->s_shadow_pool);
2256 if (super->s_shadow_pool)
2257 mempool_destroy(super->s_shadow_pool);
2258} 2267}
diff --git a/fs/logfs/segment.c b/fs/logfs/segment.c
index 801a3a141625..f77ce2b470ba 100644
--- a/fs/logfs/segment.c
+++ b/fs/logfs/segment.c
@@ -183,14 +183,8 @@ static int btree_write_alias(struct super_block *sb, struct logfs_block *block,
183 return 0; 183 return 0;
184} 184}
185 185
186static gc_level_t btree_block_level(struct logfs_block *block)
187{
188 return expand_level(block->ino, block->level);
189}
190
191static struct logfs_block_ops btree_block_ops = { 186static struct logfs_block_ops btree_block_ops = {
192 .write_block = btree_write_block, 187 .write_block = btree_write_block,
193 .block_level = btree_block_level,
194 .free_block = __free_block, 188 .free_block = __free_block,
195 .write_alias = btree_write_alias, 189 .write_alias = btree_write_alias,
196}; 190};
@@ -919,7 +913,7 @@ err:
919 for (i--; i >= 0; i--) 913 for (i--; i >= 0; i--)
920 free_area(super->s_area[i]); 914 free_area(super->s_area[i]);
921 free_area(super->s_journal_area); 915 free_area(super->s_journal_area);
922 mempool_destroy(super->s_alias_pool); 916 logfs_mempool_destroy(super->s_alias_pool);
923 return -ENOMEM; 917 return -ENOMEM;
924} 918}
925 919
diff --git a/fs/logfs/super.c b/fs/logfs/super.c
index b60bfac3263c..5866ee6e1327 100644
--- a/fs/logfs/super.c
+++ b/fs/logfs/super.c
@@ -12,6 +12,7 @@
12#include "logfs.h" 12#include "logfs.h"
13#include <linux/bio.h> 13#include <linux/bio.h>
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/blkdev.h>
15#include <linux/mtd/mtd.h> 16#include <linux/mtd/mtd.h>
16#include <linux/statfs.h> 17#include <linux/statfs.h>
17#include <linux/buffer_head.h> 18#include <linux/buffer_head.h>
@@ -137,6 +138,10 @@ static int logfs_sb_set(struct super_block *sb, void *_super)
137 sb->s_fs_info = super; 138 sb->s_fs_info = super;
138 sb->s_mtd = super->s_mtd; 139 sb->s_mtd = super->s_mtd;
139 sb->s_bdev = super->s_bdev; 140 sb->s_bdev = super->s_bdev;
141 if (sb->s_bdev)
142 sb->s_bdi = &bdev_get_queue(sb->s_bdev)->backing_dev_info;
143 if (sb->s_mtd)
144 sb->s_bdi = sb->s_mtd->backing_dev_info;
140 return 0; 145 return 0;
141} 146}
142 147
@@ -452,6 +457,8 @@ static int logfs_read_sb(struct super_block *sb, int read_only)
452 457
453 btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool); 458 btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool);
454 btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool); 459 btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool);
460 btree_init_mempool32(&super->s_shadow_tree.segment_map,
461 super->s_btree_pool);
455 462
456 ret = logfs_init_mapping(sb); 463 ret = logfs_init_mapping(sb);
457 if (ret) 464 if (ret)
@@ -516,8 +523,8 @@ static void logfs_kill_sb(struct super_block *sb)
516 if (super->s_erase_page) 523 if (super->s_erase_page)
517 __free_page(super->s_erase_page); 524 __free_page(super->s_erase_page);
518 super->s_devops->put_device(sb); 525 super->s_devops->put_device(sb);
519 mempool_destroy(super->s_btree_pool); 526 logfs_mempool_destroy(super->s_btree_pool);
520 mempool_destroy(super->s_alias_pool); 527 logfs_mempool_destroy(super->s_alias_pool);
521 kfree(super); 528 kfree(super);
522 log_super("LogFS: Finished unmounting\n"); 529 log_super("LogFS: Finished unmounting\n");
523} 530}
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c
index cf98da1be23e..fa3385154023 100644
--- a/fs/ncpfs/inode.c
+++ b/fs/ncpfs/inode.c
@@ -526,10 +526,15 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
526 sb->s_blocksize_bits = 10; 526 sb->s_blocksize_bits = 10;
527 sb->s_magic = NCP_SUPER_MAGIC; 527 sb->s_magic = NCP_SUPER_MAGIC;
528 sb->s_op = &ncp_sops; 528 sb->s_op = &ncp_sops;
529 sb->s_bdi = &server->bdi;
529 530
530 server = NCP_SBP(sb); 531 server = NCP_SBP(sb);
531 memset(server, 0, sizeof(*server)); 532 memset(server, 0, sizeof(*server));
532 533
534 error = bdi_setup_and_register(&server->bdi, "ncpfs", BDI_CAP_MAP_COPY);
535 if (error)
536 goto out_bdi;
537
533 server->ncp_filp = ncp_filp; 538 server->ncp_filp = ncp_filp;
534 server->ncp_sock = sock; 539 server->ncp_sock = sock;
535 540
@@ -719,6 +724,8 @@ out_fput2:
719 if (server->info_filp) 724 if (server->info_filp)
720 fput(server->info_filp); 725 fput(server->info_filp);
721out_fput: 726out_fput:
727 bdi_destroy(&server->bdi);
728out_bdi:
722 /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>: 729 /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>:
723 * 730 *
724 * The previously used put_filp(ncp_filp); was bogous, since 731 * The previously used put_filp(ncp_filp); was bogous, since
@@ -756,6 +763,7 @@ static void ncp_put_super(struct super_block *sb)
756 kill_pid(server->m.wdog_pid, SIGTERM, 1); 763 kill_pid(server->m.wdog_pid, SIGTERM, 1);
757 put_pid(server->m.wdog_pid); 764 put_pid(server->m.wdog_pid);
758 765
766 bdi_destroy(&server->bdi);
759 kfree(server->priv.data); 767 kfree(server->priv.data);
760 kfree(server->auth.object_name); 768 kfree(server->auth.object_name);
761 vfree(server->rxbuf); 769 vfree(server->rxbuf);
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index a8766c4ef2e0..acc9c4943b84 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -966,6 +966,8 @@ out_error:
966static void nfs_server_copy_userdata(struct nfs_server *target, struct nfs_server *source) 966static void nfs_server_copy_userdata(struct nfs_server *target, struct nfs_server *source)
967{ 967{
968 target->flags = source->flags; 968 target->flags = source->flags;
969 target->rsize = source->rsize;
970 target->wsize = source->wsize;
969 target->acregmin = source->acregmin; 971 target->acregmin = source->acregmin;
970 target->acregmax = source->acregmax; 972 target->acregmax = source->acregmax;
971 target->acdirmin = source->acdirmin; 973 target->acdirmin = source->acdirmin;
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index be46f26c9a56..a7bb5c694aa3 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -837,6 +837,8 @@ out_zap_parent:
837 /* If we have submounts, don't unhash ! */ 837 /* If we have submounts, don't unhash ! */
838 if (have_submounts(dentry)) 838 if (have_submounts(dentry))
839 goto out_valid; 839 goto out_valid;
840 if (dentry->d_flags & DCACHE_DISCONNECTED)
841 goto out_valid;
840 shrink_dcache_parent(dentry); 842 shrink_dcache_parent(dentry);
841 } 843 }
842 d_drop(dentry); 844 d_drop(dentry);
@@ -1050,7 +1052,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
1050 struct inode *dir; 1052 struct inode *dir;
1051 int openflags, ret = 0; 1053 int openflags, ret = 0;
1052 1054
1053 if (!is_atomic_open(nd)) 1055 if (!is_atomic_open(nd) || d_mountpoint(dentry))
1054 goto no_open; 1056 goto no_open;
1055 parent = dget_parent(dentry); 1057 parent = dget_parent(dentry);
1056 dir = parent->d_inode; 1058 dir = parent->d_inode;
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 638067007c65..071fcedd517c 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -5218,9 +5218,12 @@ static int nfs41_proc_reclaim_complete(struct nfs_client *clp)
5218 msg.rpc_resp = &calldata->res; 5218 msg.rpc_resp = &calldata->res;
5219 task_setup_data.callback_data = calldata; 5219 task_setup_data.callback_data = calldata;
5220 task = rpc_run_task(&task_setup_data); 5220 task = rpc_run_task(&task_setup_data);
5221 if (IS_ERR(task)) 5221 if (IS_ERR(task)) {
5222 status = PTR_ERR(task); 5222 status = PTR_ERR(task);
5223 goto out;
5224 }
5223 rpc_put_task(task); 5225 rpc_put_task(task);
5226 return 0;
5224out: 5227out:
5225 dprintk("<-- %s status=%d\n", __func__, status); 5228 dprintk("<-- %s status=%d\n", __func__, status);
5226 return status; 5229 return status;
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index e01637240eeb..b4148fc00f9f 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2187,6 +2187,7 @@ static int nfs_get_sb(struct file_system_type *fs_type,
2187 if (data->version == 4) { 2187 if (data->version == 4) {
2188 error = nfs4_try_mount(flags, dev_name, data, mnt); 2188 error = nfs4_try_mount(flags, dev_name, data, mnt);
2189 kfree(data->client_address); 2189 kfree(data->client_address);
2190 kfree(data->nfs_server.export_path);
2190 goto out; 2191 goto out;
2191 } 2192 }
2192#endif /* CONFIG_NFS_V4 */ 2193#endif /* CONFIG_NFS_V4 */
@@ -2657,7 +2658,7 @@ static void nfs_fix_devname(const struct path *path, struct vfsmount *mnt)
2657 devname = nfs_path(path->mnt->mnt_devname, 2658 devname = nfs_path(path->mnt->mnt_devname,
2658 path->mnt->mnt_root, path->dentry, 2659 path->mnt->mnt_root, path->dentry,
2659 page, PAGE_SIZE); 2660 page, PAGE_SIZE);
2660 if (devname == NULL) 2661 if (IS_ERR(devname))
2661 goto out_freepage; 2662 goto out_freepage;
2662 tmp = kstrdup(devname, GFP_KERNEL); 2663 tmp = kstrdup(devname, GFP_KERNEL);
2663 if (tmp == NULL) 2664 if (tmp == NULL)
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index de38d63aa920..3aea3ca98ab7 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1201,6 +1201,25 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data)
1201 1201
1202 1202
1203#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) 1203#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
1204static int nfs_commit_set_lock(struct nfs_inode *nfsi, int may_wait)
1205{
1206 if (!test_and_set_bit(NFS_INO_COMMIT, &nfsi->flags))
1207 return 1;
1208 if (may_wait && !out_of_line_wait_on_bit_lock(&nfsi->flags,
1209 NFS_INO_COMMIT, nfs_wait_bit_killable,
1210 TASK_KILLABLE))
1211 return 1;
1212 return 0;
1213}
1214
1215static void nfs_commit_clear_lock(struct nfs_inode *nfsi)
1216{
1217 clear_bit(NFS_INO_COMMIT, &nfsi->flags);
1218 smp_mb__after_clear_bit();
1219 wake_up_bit(&nfsi->flags, NFS_INO_COMMIT);
1220}
1221
1222
1204static void nfs_commitdata_release(void *data) 1223static void nfs_commitdata_release(void *data)
1205{ 1224{
1206 struct nfs_write_data *wdata = data; 1225 struct nfs_write_data *wdata = data;
@@ -1262,8 +1281,6 @@ static int nfs_commit_rpcsetup(struct list_head *head,
1262 task = rpc_run_task(&task_setup_data); 1281 task = rpc_run_task(&task_setup_data);
1263 if (IS_ERR(task)) 1282 if (IS_ERR(task))
1264 return PTR_ERR(task); 1283 return PTR_ERR(task);
1265 if (how & FLUSH_SYNC)
1266 rpc_wait_for_completion_task(task);
1267 rpc_put_task(task); 1284 rpc_put_task(task);
1268 return 0; 1285 return 0;
1269} 1286}
@@ -1294,6 +1311,7 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how)
1294 BDI_RECLAIMABLE); 1311 BDI_RECLAIMABLE);
1295 nfs_clear_page_tag_locked(req); 1312 nfs_clear_page_tag_locked(req);
1296 } 1313 }
1314 nfs_commit_clear_lock(NFS_I(inode));
1297 return -ENOMEM; 1315 return -ENOMEM;
1298} 1316}
1299 1317
@@ -1349,6 +1367,7 @@ static void nfs_commit_release(void *calldata)
1349 next: 1367 next:
1350 nfs_clear_page_tag_locked(req); 1368 nfs_clear_page_tag_locked(req);
1351 } 1369 }
1370 nfs_commit_clear_lock(NFS_I(data->inode));
1352 nfs_commitdata_release(calldata); 1371 nfs_commitdata_release(calldata);
1353} 1372}
1354 1373
@@ -1363,8 +1382,11 @@ static const struct rpc_call_ops nfs_commit_ops = {
1363static int nfs_commit_inode(struct inode *inode, int how) 1382static int nfs_commit_inode(struct inode *inode, int how)
1364{ 1383{
1365 LIST_HEAD(head); 1384 LIST_HEAD(head);
1366 int res; 1385 int may_wait = how & FLUSH_SYNC;
1386 int res = 0;
1367 1387
1388 if (!nfs_commit_set_lock(NFS_I(inode), may_wait))
1389 goto out;
1368 spin_lock(&inode->i_lock); 1390 spin_lock(&inode->i_lock);
1369 res = nfs_scan_commit(inode, &head, 0, 0); 1391 res = nfs_scan_commit(inode, &head, 0, 0);
1370 spin_unlock(&inode->i_lock); 1392 spin_unlock(&inode->i_lock);
@@ -1372,7 +1394,13 @@ static int nfs_commit_inode(struct inode *inode, int how)
1372 int error = nfs_commit_list(inode, &head, how); 1394 int error = nfs_commit_list(inode, &head, how);
1373 if (error < 0) 1395 if (error < 0)
1374 return error; 1396 return error;
1375 } 1397 if (may_wait)
1398 wait_on_bit(&NFS_I(inode)->flags, NFS_INO_COMMIT,
1399 nfs_wait_bit_killable,
1400 TASK_KILLABLE);
1401 } else
1402 nfs_commit_clear_lock(NFS_I(inode));
1403out:
1376 return res; 1404 return res;
1377} 1405}
1378 1406
@@ -1444,6 +1472,7 @@ int nfs_wb_page_cancel(struct inode *inode, struct page *page)
1444 1472
1445 BUG_ON(!PageLocked(page)); 1473 BUG_ON(!PageLocked(page));
1446 for (;;) { 1474 for (;;) {
1475 wait_on_page_writeback(page);
1447 req = nfs_page_find_request(page); 1476 req = nfs_page_find_request(page);
1448 if (req == NULL) 1477 if (req == NULL)
1449 break; 1478 break;
@@ -1478,30 +1507,18 @@ int nfs_wb_page(struct inode *inode, struct page *page)
1478 .range_start = range_start, 1507 .range_start = range_start,
1479 .range_end = range_end, 1508 .range_end = range_end,
1480 }; 1509 };
1481 struct nfs_page *req;
1482 int need_commit;
1483 int ret; 1510 int ret;
1484 1511
1485 while(PagePrivate(page)) { 1512 while(PagePrivate(page)) {
1513 wait_on_page_writeback(page);
1486 if (clear_page_dirty_for_io(page)) { 1514 if (clear_page_dirty_for_io(page)) {
1487 ret = nfs_writepage_locked(page, &wbc); 1515 ret = nfs_writepage_locked(page, &wbc);
1488 if (ret < 0) 1516 if (ret < 0)
1489 goto out_error; 1517 goto out_error;
1490 } 1518 }
1491 req = nfs_find_and_lock_request(page); 1519 ret = sync_inode(inode, &wbc);
1492 if (!req) 1520 if (ret < 0)
1493 break;
1494 if (IS_ERR(req)) {
1495 ret = PTR_ERR(req);
1496 goto out_error; 1521 goto out_error;
1497 }
1498 need_commit = test_bit(PG_CLEAN, &req->wb_flags);
1499 nfs_clear_page_tag_locked(req);
1500 if (need_commit) {
1501 ret = nfs_commit_inode(inode, FLUSH_SYNC);
1502 if (ret < 0)
1503 goto out_error;
1504 }
1505 } 1522 }
1506 return 0; 1523 return 0;
1507out_error: 1524out_error:
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index e1703175ee28..34ccf815ea8a 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -161,10 +161,10 @@ static __be32 *read_buf(struct nfsd4_compoundargs *argp, u32 nbytes)
161 argp->p = page_address(argp->pagelist[0]); 161 argp->p = page_address(argp->pagelist[0]);
162 argp->pagelist++; 162 argp->pagelist++;
163 if (argp->pagelen < PAGE_SIZE) { 163 if (argp->pagelen < PAGE_SIZE) {
164 argp->end = p + (argp->pagelen>>2); 164 argp->end = argp->p + (argp->pagelen>>2);
165 argp->pagelen = 0; 165 argp->pagelen = 0;
166 } else { 166 } else {
167 argp->end = p + (PAGE_SIZE>>2); 167 argp->end = argp->p + (PAGE_SIZE>>2);
168 argp->pagelen -= PAGE_SIZE; 168 argp->pagelen -= PAGE_SIZE;
169 } 169 }
170 memcpy(((char*)p)+avail, argp->p, (nbytes - avail)); 170 memcpy(((char*)p)+avail, argp->p, (nbytes - avail));
@@ -1426,10 +1426,10 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
1426 argp->p = page_address(argp->pagelist[0]); 1426 argp->p = page_address(argp->pagelist[0]);
1427 argp->pagelist++; 1427 argp->pagelist++;
1428 if (argp->pagelen < PAGE_SIZE) { 1428 if (argp->pagelen < PAGE_SIZE) {
1429 argp->end = p + (argp->pagelen>>2); 1429 argp->end = argp->p + (argp->pagelen>>2);
1430 argp->pagelen = 0; 1430 argp->pagelen = 0;
1431 } else { 1431 } else {
1432 argp->end = p + (PAGE_SIZE>>2); 1432 argp->end = argp->p + (PAGE_SIZE>>2);
1433 argp->pagelen -= PAGE_SIZE; 1433 argp->pagelen -= PAGE_SIZE;
1434 } 1434 }
1435 } 1435 }
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 7621db800a74..8418fcc0a6ab 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2909,7 +2909,7 @@ out_no_task:
2909 */ 2909 */
2910static const struct pid_entry tid_base_stuff[] = { 2910static const struct pid_entry tid_base_stuff[] = {
2911 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations), 2911 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
2912 DIR("fdinfo", S_IRUSR|S_IXUSR, proc_fdinfo_inode_operations, proc_fd_operations), 2912 DIR("fdinfo", S_IRUSR|S_IXUSR, proc_fdinfo_inode_operations, proc_fdinfo_operations),
2913 REG("environ", S_IRUSR, proc_environ_operations), 2913 REG("environ", S_IRUSR, proc_environ_operations),
2914 INF("auxv", S_IRUSR, proc_pid_auxv), 2914 INF("auxv", S_IRUSR, proc_pid_auxv),
2915 ONE("status", S_IRUGO, proc_pid_status), 2915 ONE("status", S_IRUGO, proc_pid_status),
diff --git a/fs/quota/Kconfig b/fs/quota/Kconfig
index dad7fb247ddc..3e21b1e2ad3a 100644
--- a/fs/quota/Kconfig
+++ b/fs/quota/Kconfig
@@ -33,6 +33,14 @@ config PRINT_QUOTA_WARNING
33 Note that this behavior is currently deprecated and may go away in 33 Note that this behavior is currently deprecated and may go away in
34 future. Please use notification via netlink socket instead. 34 future. Please use notification via netlink socket instead.
35 35
36config QUOTA_DEBUG
37 bool "Additional quota sanity checks"
38 depends on QUOTA
39 default n
40 help
41 If you say Y here, quota subsystem will perform some additional
42 sanity checks of quota internal structures. If unsure, say N.
43
36# Generic support for tree structured quota files. Selected when needed. 44# Generic support for tree structured quota files. Selected when needed.
37config QUOTA_TREE 45config QUOTA_TREE
38 tristate 46 tristate
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index a0a9405b202a..788b5802a7ce 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -80,8 +80,6 @@
80 80
81#include <asm/uaccess.h> 81#include <asm/uaccess.h>
82 82
83#define __DQUOT_PARANOIA
84
85/* 83/*
86 * There are three quota SMP locks. dq_list_lock protects all lists with quotas 84 * There are three quota SMP locks. dq_list_lock protects all lists with quotas
87 * and quota formats, dqstats structure containing statistics about the lists 85 * and quota formats, dqstats structure containing statistics about the lists
@@ -695,7 +693,7 @@ void dqput(struct dquot *dquot)
695 693
696 if (!dquot) 694 if (!dquot)
697 return; 695 return;
698#ifdef __DQUOT_PARANOIA 696#ifdef CONFIG_QUOTA_DEBUG
699 if (!atomic_read(&dquot->dq_count)) { 697 if (!atomic_read(&dquot->dq_count)) {
700 printk("VFS: dqput: trying to free free dquot\n"); 698 printk("VFS: dqput: trying to free free dquot\n");
701 printk("VFS: device %s, dquot of %s %d\n", 699 printk("VFS: device %s, dquot of %s %d\n",
@@ -748,7 +746,7 @@ we_slept:
748 goto we_slept; 746 goto we_slept;
749 } 747 }
750 atomic_dec(&dquot->dq_count); 748 atomic_dec(&dquot->dq_count);
751#ifdef __DQUOT_PARANOIA 749#ifdef CONFIG_QUOTA_DEBUG
752 /* sanity check */ 750 /* sanity check */
753 BUG_ON(!list_empty(&dquot->dq_free)); 751 BUG_ON(!list_empty(&dquot->dq_free));
754#endif 752#endif
@@ -845,7 +843,7 @@ we_slept:
845 dquot = NULL; 843 dquot = NULL;
846 goto out; 844 goto out;
847 } 845 }
848#ifdef __DQUOT_PARANOIA 846#ifdef CONFIG_QUOTA_DEBUG
849 BUG_ON(!dquot->dq_sb); /* Has somebody invalidated entry under us? */ 847 BUG_ON(!dquot->dq_sb); /* Has somebody invalidated entry under us? */
850#endif 848#endif
851out: 849out:
@@ -874,7 +872,7 @@ static int dqinit_needed(struct inode *inode, int type)
874static void add_dquot_ref(struct super_block *sb, int type) 872static void add_dquot_ref(struct super_block *sb, int type)
875{ 873{
876 struct inode *inode, *old_inode = NULL; 874 struct inode *inode, *old_inode = NULL;
877#ifdef __DQUOT_PARANOIA 875#ifdef CONFIG_QUOTA_DEBUG
878 int reserved = 0; 876 int reserved = 0;
879#endif 877#endif
880 878
@@ -882,7 +880,7 @@ static void add_dquot_ref(struct super_block *sb, int type)
882 list_for_each_entry(inode, &sb->s_inodes, i_sb_list) { 880 list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
883 if (inode->i_state & (I_FREEING|I_CLEAR|I_WILL_FREE|I_NEW)) 881 if (inode->i_state & (I_FREEING|I_CLEAR|I_WILL_FREE|I_NEW))
884 continue; 882 continue;
885#ifdef __DQUOT_PARANOIA 883#ifdef CONFIG_QUOTA_DEBUG
886 if (unlikely(inode_get_rsv_space(inode) > 0)) 884 if (unlikely(inode_get_rsv_space(inode) > 0))
887 reserved = 1; 885 reserved = 1;
888#endif 886#endif
@@ -907,7 +905,7 @@ static void add_dquot_ref(struct super_block *sb, int type)
907 spin_unlock(&inode_lock); 905 spin_unlock(&inode_lock);
908 iput(old_inode); 906 iput(old_inode);
909 907
910#ifdef __DQUOT_PARANOIA 908#ifdef CONFIG_QUOTA_DEBUG
911 if (reserved) { 909 if (reserved) {
912 printk(KERN_WARNING "VFS (%s): Writes happened before quota" 910 printk(KERN_WARNING "VFS (%s): Writes happened before quota"
913 " was turned on thus quota information is probably " 911 " was turned on thus quota information is probably "
@@ -940,7 +938,7 @@ static int remove_inode_dquot_ref(struct inode *inode, int type,
940 inode->i_dquot[type] = NULL; 938 inode->i_dquot[type] = NULL;
941 if (dquot) { 939 if (dquot) {
942 if (dqput_blocks(dquot)) { 940 if (dqput_blocks(dquot)) {
943#ifdef __DQUOT_PARANOIA 941#ifdef CONFIG_QUOTA_DEBUG
944 if (atomic_read(&dquot->dq_count) != 1) 942 if (atomic_read(&dquot->dq_count) != 1)
945 printk(KERN_WARNING "VFS: Adding dquot with dq_count %d to dispose list.\n", atomic_read(&dquot->dq_count)); 943 printk(KERN_WARNING "VFS: Adding dquot with dq_count %d to dispose list.\n", atomic_read(&dquot->dq_count));
946#endif 944#endif
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
index f8a6075abf50..07930449a958 100644
--- a/fs/reiserfs/dir.c
+++ b/fs/reiserfs/dir.c
@@ -46,8 +46,6 @@ static inline bool is_privroot_deh(struct dentry *dir,
46 struct reiserfs_de_head *deh) 46 struct reiserfs_de_head *deh)
47{ 47{
48 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root; 48 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root;
49 if (reiserfs_expose_privroot(dir->d_sb))
50 return 0;
51 return (dir == dir->d_parent && privroot->d_inode && 49 return (dir == dir->d_parent && privroot->d_inode &&
52 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid); 50 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid);
53} 51}
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index 4f9586bb7631..e7cc00e636dc 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -554,7 +554,7 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th,
554 if (!err && new_size < i_size_read(dentry->d_inode)) { 554 if (!err && new_size < i_size_read(dentry->d_inode)) {
555 struct iattr newattrs = { 555 struct iattr newattrs = {
556 .ia_ctime = current_fs_time(inode->i_sb), 556 .ia_ctime = current_fs_time(inode->i_sb),
557 .ia_size = buffer_size, 557 .ia_size = new_size,
558 .ia_valid = ATTR_SIZE | ATTR_CTIME, 558 .ia_valid = ATTR_SIZE | ATTR_CTIME,
559 }; 559 };
560 560
@@ -973,21 +973,13 @@ int reiserfs_permission(struct inode *inode, int mask)
973 return generic_permission(inode, mask, NULL); 973 return generic_permission(inode, mask, NULL);
974} 974}
975 975
976/* This will catch lookups from the fs root to .reiserfs_priv */ 976static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd)
977static int
978xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name)
979{ 977{
980 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root; 978 return -EPERM;
981 if (container_of(q1, struct dentry, d_name) == priv_root)
982 return -ENOENT;
983 if (q1->len == name->len &&
984 !memcmp(q1->name, name->name, name->len))
985 return 0;
986 return 1;
987} 979}
988 980
989static const struct dentry_operations xattr_lookup_poison_ops = { 981static const struct dentry_operations xattr_lookup_poison_ops = {
990 .d_compare = xattr_lookup_poison, 982 .d_revalidate = xattr_hide_revalidate,
991}; 983};
992 984
993int reiserfs_lookup_privroot(struct super_block *s) 985int reiserfs_lookup_privroot(struct super_block *s)
@@ -1001,8 +993,7 @@ int reiserfs_lookup_privroot(struct super_block *s)
1001 strlen(PRIVROOT_NAME)); 993 strlen(PRIVROOT_NAME));
1002 if (!IS_ERR(dentry)) { 994 if (!IS_ERR(dentry)) {
1003 REISERFS_SB(s)->priv_root = dentry; 995 REISERFS_SB(s)->priv_root = dentry;
1004 if (!reiserfs_expose_privroot(s)) 996 dentry->d_op = &xattr_lookup_poison_ops;
1005 s->s_root->d_op = &xattr_lookup_poison_ops;
1006 if (dentry->d_inode) 997 if (dentry->d_inode)
1007 dentry->d_inode->i_flags |= S_PRIVATE; 998 dentry->d_inode->i_flags |= S_PRIVATE;
1008 } else 999 } else
diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c
index 1c4c8f089970..dfa1d67f8fca 100644
--- a/fs/smbfs/inode.c
+++ b/fs/smbfs/inode.c
@@ -479,6 +479,7 @@ smb_put_super(struct super_block *sb)
479 if (server->conn_pid) 479 if (server->conn_pid)
480 kill_pid(server->conn_pid, SIGTERM, 1); 480 kill_pid(server->conn_pid, SIGTERM, 1);
481 481
482 bdi_destroy(&server->bdi);
482 kfree(server->ops); 483 kfree(server->ops);
483 smb_unload_nls(server); 484 smb_unload_nls(server);
484 sb->s_fs_info = NULL; 485 sb->s_fs_info = NULL;
@@ -525,6 +526,11 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
525 if (!server) 526 if (!server)
526 goto out_no_server; 527 goto out_no_server;
527 sb->s_fs_info = server; 528 sb->s_fs_info = server;
529
530 if (bdi_setup_and_register(&server->bdi, "smbfs", BDI_CAP_MAP_COPY))
531 goto out_bdi;
532
533 sb->s_bdi = &server->bdi;
528 534
529 server->super_block = sb; 535 server->super_block = sb;
530 server->mnt = NULL; 536 server->mnt = NULL;
@@ -624,6 +630,8 @@ out_no_smbiod:
624out_bad_option: 630out_bad_option:
625 kfree(mem); 631 kfree(mem);
626out_no_mem: 632out_no_mem:
633 bdi_destroy(&server->bdi);
634out_bdi:
627 if (!server->mnt) 635 if (!server->mnt)
628 printk(KERN_ERR "smb_fill_super: allocation failure\n"); 636 printk(KERN_ERR "smb_fill_super: allocation failure\n");
629 sb->s_fs_info = NULL; 637 sb->s_fs_info = NULL;
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index 1cb0d81b164b..653c030eb840 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -87,9 +87,8 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
87 u64 cur_index = index >> msblk->devblksize_log2; 87 u64 cur_index = index >> msblk->devblksize_log2;
88 int bytes, compressed, b = 0, k = 0, page = 0, avail; 88 int bytes, compressed, b = 0, k = 0, page = 0, avail;
89 89
90 90 bh = kcalloc(((srclength + msblk->devblksize - 1)
91 bh = kcalloc((msblk->block_size >> msblk->devblksize_log2) + 1, 91 >> msblk->devblksize_log2) + 1, sizeof(*bh), GFP_KERNEL);
92 sizeof(*bh), GFP_KERNEL);
93 if (bh == NULL) 92 if (bh == NULL)
94 return -ENOMEM; 93 return -ENOMEM;
95 94
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 3550aec2f655..48b6f4a385a6 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -275,7 +275,8 @@ allocate_root:
275 275
276 err = squashfs_read_inode(root, root_inode); 276 err = squashfs_read_inode(root, root_inode);
277 if (err) { 277 if (err) {
278 iget_failed(root); 278 make_bad_inode(root);
279 iput(root);
279 goto failed_mount; 280 goto failed_mount;
280 } 281 }
281 insert_inode_hash(root); 282 insert_inode_hash(root);
@@ -353,6 +354,7 @@ static void squashfs_put_super(struct super_block *sb)
353 kfree(sbi->id_table); 354 kfree(sbi->id_table);
354 kfree(sbi->fragment_index); 355 kfree(sbi->fragment_index);
355 kfree(sbi->meta_index); 356 kfree(sbi->meta_index);
357 kfree(sbi->inode_lookup_table);
356 kfree(sb->s_fs_info); 358 kfree(sb->s_fs_info);
357 sb->s_fs_info = NULL; 359 sb->s_fs_info = NULL;
358 } 360 }
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index 15a03d0fb9f3..7a603874e483 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -128,8 +128,9 @@ static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
128 goto release_mutex; 128 goto release_mutex;
129 } 129 }
130 130
131 length = stream->total_out;
131 mutex_unlock(&msblk->read_data_mutex); 132 mutex_unlock(&msblk->read_data_mutex);
132 return stream->total_out; 133 return length;
133 134
134release_mutex: 135release_mutex:
135 mutex_unlock(&msblk->read_data_mutex); 136 mutex_unlock(&msblk->read_data_mutex);
diff --git a/fs/super.c b/fs/super.c
index f35ac6022109..1527e6a0ee35 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -37,6 +37,7 @@
37#include <linux/kobject.h> 37#include <linux/kobject.h>
38#include <linux/mutex.h> 38#include <linux/mutex.h>
39#include <linux/file.h> 39#include <linux/file.h>
40#include <linux/backing-dev.h>
40#include <asm/uaccess.h> 41#include <asm/uaccess.h>
41#include "internal.h" 42#include "internal.h"
42 43
@@ -693,6 +694,7 @@ int set_anon_super(struct super_block *s, void *data)
693 return -EMFILE; 694 return -EMFILE;
694 } 695 }
695 s->s_dev = MKDEV(0, dev & MINORMASK); 696 s->s_dev = MKDEV(0, dev & MINORMASK);
697 s->s_bdi = &noop_backing_dev_info;
696 return 0; 698 return 0;
697} 699}
698 700
@@ -954,10 +956,11 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
954 if (error < 0) 956 if (error < 0)
955 goto out_free_secdata; 957 goto out_free_secdata;
956 BUG_ON(!mnt->mnt_sb); 958 BUG_ON(!mnt->mnt_sb);
959 WARN_ON(!mnt->mnt_sb->s_bdi);
957 960
958 error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata); 961 error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata);
959 if (error) 962 if (error)
960 goto out_sb; 963 goto out_sb;
961 964
962 /* 965 /*
963 * filesystems should never set s_maxbytes larger than MAX_LFS_FILESIZE 966 * filesystems should never set s_maxbytes larger than MAX_LFS_FILESIZE
diff --git a/fs/sync.c b/fs/sync.c
index fc5c3d75cf3c..92b228176f7c 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -14,6 +14,7 @@
14#include <linux/pagemap.h> 14#include <linux/pagemap.h>
15#include <linux/quotaops.h> 15#include <linux/quotaops.h>
16#include <linux/buffer_head.h> 16#include <linux/buffer_head.h>
17#include <linux/backing-dev.h>
17#include "internal.h" 18#include "internal.h"
18 19
19#define VALID_FLAGS (SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE| \ 20#define VALID_FLAGS (SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE| \
@@ -32,7 +33,7 @@ static int __sync_filesystem(struct super_block *sb, int wait)
32 * This should be safe, as we require bdi backing to actually 33 * This should be safe, as we require bdi backing to actually
33 * write out data in the first place 34 * write out data in the first place
34 */ 35 */
35 if (!sb->s_bdi) 36 if (!sb->s_bdi || sb->s_bdi == &noop_backing_dev_info)
36 return 0; 37 return 0;
37 38
38 if (sb->s_qcop && sb->s_qcop->quota_sync) 39 if (sb->s_qcop && sb->s_qcop->quota_sync)
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 52e06b487ced..29f1edca76de 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1209,6 +1209,7 @@ xfs_fs_put_super(
1209 1209
1210 xfs_unmountfs(mp); 1210 xfs_unmountfs(mp);
1211 xfs_freesb(mp); 1211 xfs_freesb(mp);
1212 xfs_inode_shrinker_unregister(mp);
1212 xfs_icsb_destroy_counters(mp); 1213 xfs_icsb_destroy_counters(mp);
1213 xfs_close_devices(mp); 1214 xfs_close_devices(mp);
1214 xfs_dmops_put(mp); 1215 xfs_dmops_put(mp);
@@ -1622,6 +1623,8 @@ xfs_fs_fill_super(
1622 if (error) 1623 if (error)
1623 goto fail_vnrele; 1624 goto fail_vnrele;
1624 1625
1626 xfs_inode_shrinker_register(mp);
1627
1625 kfree(mtpt); 1628 kfree(mtpt);
1626 return 0; 1629 return 0;
1627 1630
@@ -1867,6 +1870,7 @@ init_xfs_fs(void)
1867 goto out_cleanup_procfs; 1870 goto out_cleanup_procfs;
1868 1871
1869 vfs_initquota(); 1872 vfs_initquota();
1873 xfs_inode_shrinker_init();
1870 1874
1871 error = register_filesystem(&xfs_fs_type); 1875 error = register_filesystem(&xfs_fs_type);
1872 if (error) 1876 if (error)
@@ -1894,6 +1898,7 @@ exit_xfs_fs(void)
1894{ 1898{
1895 vfs_exitquota(); 1899 vfs_exitquota();
1896 unregister_filesystem(&xfs_fs_type); 1900 unregister_filesystem(&xfs_fs_type);
1901 xfs_inode_shrinker_destroy();
1897 xfs_sysctl_unregister(); 1902 xfs_sysctl_unregister();
1898 xfs_cleanup_procfs(); 1903 xfs_cleanup_procfs();
1899 xfs_buf_terminate(); 1904 xfs_buf_terminate();
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
index fd9698215759..a427c638d909 100644
--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -95,7 +95,8 @@ xfs_inode_ag_walk(
95 struct xfs_perag *pag, int flags), 95 struct xfs_perag *pag, int flags),
96 int flags, 96 int flags,
97 int tag, 97 int tag,
98 int exclusive) 98 int exclusive,
99 int *nr_to_scan)
99{ 100{
100 uint32_t first_index; 101 uint32_t first_index;
101 int last_error = 0; 102 int last_error = 0;
@@ -134,7 +135,7 @@ restart:
134 if (error == EFSCORRUPTED) 135 if (error == EFSCORRUPTED)
135 break; 136 break;
136 137
137 } while (1); 138 } while ((*nr_to_scan)--);
138 139
139 if (skipped) { 140 if (skipped) {
140 delay(1); 141 delay(1);
@@ -150,12 +151,15 @@ xfs_inode_ag_iterator(
150 struct xfs_perag *pag, int flags), 151 struct xfs_perag *pag, int flags),
151 int flags, 152 int flags,
152 int tag, 153 int tag,
153 int exclusive) 154 int exclusive,
155 int *nr_to_scan)
154{ 156{
155 int error = 0; 157 int error = 0;
156 int last_error = 0; 158 int last_error = 0;
157 xfs_agnumber_t ag; 159 xfs_agnumber_t ag;
160 int nr;
158 161
162 nr = nr_to_scan ? *nr_to_scan : INT_MAX;
159 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { 163 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) {
160 struct xfs_perag *pag; 164 struct xfs_perag *pag;
161 165
@@ -165,14 +169,18 @@ xfs_inode_ag_iterator(
165 continue; 169 continue;
166 } 170 }
167 error = xfs_inode_ag_walk(mp, pag, execute, flags, tag, 171 error = xfs_inode_ag_walk(mp, pag, execute, flags, tag,
168 exclusive); 172 exclusive, &nr);
169 xfs_perag_put(pag); 173 xfs_perag_put(pag);
170 if (error) { 174 if (error) {
171 last_error = error; 175 last_error = error;
172 if (error == EFSCORRUPTED) 176 if (error == EFSCORRUPTED)
173 break; 177 break;
174 } 178 }
179 if (nr <= 0)
180 break;
175 } 181 }
182 if (nr_to_scan)
183 *nr_to_scan = nr;
176 return XFS_ERROR(last_error); 184 return XFS_ERROR(last_error);
177} 185}
178 186
@@ -291,7 +299,7 @@ xfs_sync_data(
291 ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); 299 ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0);
292 300
293 error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags, 301 error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags,
294 XFS_ICI_NO_TAG, 0); 302 XFS_ICI_NO_TAG, 0, NULL);
295 if (error) 303 if (error)
296 return XFS_ERROR(error); 304 return XFS_ERROR(error);
297 305
@@ -310,7 +318,7 @@ xfs_sync_attr(
310 ASSERT((flags & ~SYNC_WAIT) == 0); 318 ASSERT((flags & ~SYNC_WAIT) == 0);
311 319
312 return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags, 320 return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags,
313 XFS_ICI_NO_TAG, 0); 321 XFS_ICI_NO_TAG, 0, NULL);
314} 322}
315 323
316STATIC int 324STATIC int
@@ -673,6 +681,7 @@ __xfs_inode_set_reclaim_tag(
673 radix_tree_tag_set(&pag->pag_ici_root, 681 radix_tree_tag_set(&pag->pag_ici_root,
674 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino), 682 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino),
675 XFS_ICI_RECLAIM_TAG); 683 XFS_ICI_RECLAIM_TAG);
684 pag->pag_ici_reclaimable++;
676} 685}
677 686
678/* 687/*
@@ -705,6 +714,7 @@ __xfs_inode_clear_reclaim_tag(
705{ 714{
706 radix_tree_tag_clear(&pag->pag_ici_root, 715 radix_tree_tag_clear(&pag->pag_ici_root,
707 XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); 716 XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
717 pag->pag_ici_reclaimable--;
708} 718}
709 719
710/* 720/*
@@ -854,5 +864,93 @@ xfs_reclaim_inodes(
854 int mode) 864 int mode)
855{ 865{
856 return xfs_inode_ag_iterator(mp, xfs_reclaim_inode, mode, 866 return xfs_inode_ag_iterator(mp, xfs_reclaim_inode, mode,
857 XFS_ICI_RECLAIM_TAG, 1); 867 XFS_ICI_RECLAIM_TAG, 1, NULL);
868}
869
870/*
871 * Shrinker infrastructure.
872 *
873 * This is all far more complex than it needs to be. It adds a global list of
874 * mounts because the shrinkers can only call a global context. We need to make
875 * the shrinkers pass a context to avoid the need for global state.
876 */
877static LIST_HEAD(xfs_mount_list);
878static struct rw_semaphore xfs_mount_list_lock;
879
880static int
881xfs_reclaim_inode_shrink(
882 int nr_to_scan,
883 gfp_t gfp_mask)
884{
885 struct xfs_mount *mp;
886 struct xfs_perag *pag;
887 xfs_agnumber_t ag;
888 int reclaimable = 0;
889
890 if (nr_to_scan) {
891 if (!(gfp_mask & __GFP_FS))
892 return -1;
893
894 down_read(&xfs_mount_list_lock);
895 list_for_each_entry(mp, &xfs_mount_list, m_mplist) {
896 xfs_inode_ag_iterator(mp, xfs_reclaim_inode, 0,
897 XFS_ICI_RECLAIM_TAG, 1, &nr_to_scan);
898 if (nr_to_scan <= 0)
899 break;
900 }
901 up_read(&xfs_mount_list_lock);
902 }
903
904 down_read(&xfs_mount_list_lock);
905 list_for_each_entry(mp, &xfs_mount_list, m_mplist) {
906 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) {
907
908 pag = xfs_perag_get(mp, ag);
909 if (!pag->pag_ici_init) {
910 xfs_perag_put(pag);
911 continue;
912 }
913 reclaimable += pag->pag_ici_reclaimable;
914 xfs_perag_put(pag);
915 }
916 }
917 up_read(&xfs_mount_list_lock);
918 return reclaimable;
919}
920
921static struct shrinker xfs_inode_shrinker = {
922 .shrink = xfs_reclaim_inode_shrink,
923 .seeks = DEFAULT_SEEKS,
924};
925
926void __init
927xfs_inode_shrinker_init(void)
928{
929 init_rwsem(&xfs_mount_list_lock);
930 register_shrinker(&xfs_inode_shrinker);
931}
932
933void
934xfs_inode_shrinker_destroy(void)
935{
936 ASSERT(list_empty(&xfs_mount_list));
937 unregister_shrinker(&xfs_inode_shrinker);
938}
939
940void
941xfs_inode_shrinker_register(
942 struct xfs_mount *mp)
943{
944 down_write(&xfs_mount_list_lock);
945 list_add_tail(&mp->m_mplist, &xfs_mount_list);
946 up_write(&xfs_mount_list_lock);
947}
948
949void
950xfs_inode_shrinker_unregister(
951 struct xfs_mount *mp)
952{
953 down_write(&xfs_mount_list_lock);
954 list_del(&mp->m_mplist);
955 up_write(&xfs_mount_list_lock);
858} 956}
diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h
index d480c346cabb..cdcbaaca9880 100644
--- a/fs/xfs/linux-2.6/xfs_sync.h
+++ b/fs/xfs/linux-2.6/xfs_sync.h
@@ -53,6 +53,11 @@ void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag,
53int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag); 53int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag);
54int xfs_inode_ag_iterator(struct xfs_mount *mp, 54int xfs_inode_ag_iterator(struct xfs_mount *mp,
55 int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), 55 int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags),
56 int flags, int tag, int write_lock); 56 int flags, int tag, int write_lock, int *nr_to_scan);
57
58void xfs_inode_shrinker_init(void);
59void xfs_inode_shrinker_destroy(void);
60void xfs_inode_shrinker_register(struct xfs_mount *mp);
61void xfs_inode_shrinker_unregister(struct xfs_mount *mp);
57 62
58#endif 63#endif
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c
index 5d0ee8d492db..50bee07d6b0e 100644
--- a/fs/xfs/quota/xfs_qm_syscalls.c
+++ b/fs/xfs/quota/xfs_qm_syscalls.c
@@ -891,7 +891,8 @@ xfs_qm_dqrele_all_inodes(
891 uint flags) 891 uint flags)
892{ 892{
893 ASSERT(mp->m_quotainfo); 893 ASSERT(mp->m_quotainfo);
894 xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags, XFS_ICI_NO_TAG, 0); 894 xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags,
895 XFS_ICI_NO_TAG, 0, NULL);
895} 896}
896 897
897/*------------------------------------------------------------------------*/ 898/*------------------------------------------------------------------------*/
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h
index b1a5a1ff88ea..abb8222b88c9 100644
--- a/fs/xfs/xfs_ag.h
+++ b/fs/xfs/xfs_ag.h
@@ -223,6 +223,7 @@ typedef struct xfs_perag {
223 int pag_ici_init; /* incore inode cache initialised */ 223 int pag_ici_init; /* incore inode cache initialised */
224 rwlock_t pag_ici_lock; /* incore inode lock */ 224 rwlock_t pag_ici_lock; /* incore inode lock */
225 struct radix_tree_root pag_ici_root; /* incore inode cache root */ 225 struct radix_tree_root pag_ici_root; /* incore inode cache root */
226 int pag_ici_reclaimable; /* reclaimable inodes */
226#endif 227#endif
227 int pagb_count; /* pagb slots in use */ 228 int pagb_count; /* pagb slots in use */
228 xfs_perag_busy_t pagb_list[XFS_PAGB_NUM_SLOTS]; /* unstable blocks */ 229 xfs_perag_busy_t pagb_list[XFS_PAGB_NUM_SLOTS]; /* unstable blocks */
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index cd27c9d6c71f..5bba29a07812 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -177,16 +177,26 @@ xfs_swap_extents_check_format(
177 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) > tip->i_df.if_ext_max) 177 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) > tip->i_df.if_ext_max)
178 return EINVAL; 178 return EINVAL;
179 179
180 /* Check root block of temp in btree form to max in target */ 180 /*
181 * If we are in a btree format, check that the temp root block will fit
182 * in the target and that it has enough extents to be in btree format
183 * in the target.
184 *
185 * Note that we have to be careful to allow btree->extent conversions
186 * (a common defrag case) which will occur when the temp inode is in
187 * extent format...
188 */
181 if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE && 189 if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE &&
182 XFS_IFORK_BOFF(ip) && 190 ((XFS_IFORK_BOFF(ip) &&
183 tip->i_df.if_broot_bytes > XFS_IFORK_BOFF(ip)) 191 tip->i_df.if_broot_bytes > XFS_IFORK_BOFF(ip)) ||
192 XFS_IFORK_NEXTENTS(tip, XFS_DATA_FORK) <= ip->i_df.if_ext_max))
184 return EINVAL; 193 return EINVAL;
185 194
186 /* Check root block of target in btree form to max in temp */ 195 /* Reciprocal target->temp btree format checks */
187 if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE && 196 if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE &&
188 XFS_IFORK_BOFF(tip) && 197 ((XFS_IFORK_BOFF(tip) &&
189 ip->i_df.if_broot_bytes > XFS_IFORK_BOFF(tip)) 198 ip->i_df.if_broot_bytes > XFS_IFORK_BOFF(tip)) ||
199 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) <= tip->i_df.if_ext_max))
190 return EINVAL; 200 return EINVAL;
191 201
192 return 0; 202 return 0;
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 4fa0bc7b983e..9ff48a16a7ee 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -259,6 +259,7 @@ typedef struct xfs_mount {
259 wait_queue_head_t m_wait_single_sync_task; 259 wait_queue_head_t m_wait_single_sync_task;
260 __int64_t m_update_flags; /* sb flags we need to update 260 __int64_t m_update_flags; /* sb flags we need to update
261 on the next remount,rw */ 261 on the next remount,rw */
262 struct list_head m_mplist; /* inode shrinker mount list */
262} xfs_mount_t; 263} xfs_mount_t;
263 264
264/* 265/*
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index fcbc26af00e4..bd0e3c6f323f 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -101,6 +101,7 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,
101 const char *fmt, ...); 101 const char *fmt, ...);
102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); 102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
103void bdi_unregister(struct backing_dev_info *bdi); 103void bdi_unregister(struct backing_dev_info *bdi);
104int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
104void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, 105void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb,
105 long nr_pages); 106 long nr_pages);
106int bdi_writeback_task(struct bdi_writeback *wb); 107int bdi_writeback_task(struct bdi_writeback *wb);
@@ -246,6 +247,7 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);
246#endif 247#endif
247 248
248extern struct backing_dev_info default_backing_dev_info; 249extern struct backing_dev_info default_backing_dev_info;
250extern struct backing_dev_info noop_backing_dev_info;
249void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page); 251void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page);
250 252
251int writeback_in_progress(struct backing_dev_info *bdi); 253int writeback_in_progress(struct backing_dev_info *bdi);
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 5b5d4731f956..8859e2ede9fe 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -7,6 +7,8 @@
7#define MAX_CODADEVS 5 /* how many do we allow */ 7#define MAX_CODADEVS 5 /* how many do we allow */
8 8
9#ifdef __KERNEL__ 9#ifdef __KERNEL__
10#include <linux/backing-dev.h>
11
10struct kstatfs; 12struct kstatfs;
11 13
12/* communication pending/processing queues */ 14/* communication pending/processing queues */
@@ -17,6 +19,7 @@ struct venus_comm {
17 struct list_head vc_processing; 19 struct list_head vc_processing;
18 int vc_inuse; 20 int vc_inuse;
19 struct super_block *vc_sb; 21 struct super_block *vc_sb;
22 struct backing_dev_info bdi;
20}; 23};
21 24
22 25
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index a5740fc4d04b..a73454aec333 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -21,8 +21,7 @@ extern int number_of_cpusets; /* How many cpusets are defined in system? */
21extern int cpuset_init(void); 21extern int cpuset_init(void);
22extern void cpuset_init_smp(void); 22extern void cpuset_init_smp(void);
23extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask); 23extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask);
24extern void cpuset_cpus_allowed_locked(struct task_struct *p, 24extern int cpuset_cpus_allowed_fallback(struct task_struct *p);
25 struct cpumask *mask);
26extern nodemask_t cpuset_mems_allowed(struct task_struct *p); 25extern nodemask_t cpuset_mems_allowed(struct task_struct *p);
27#define cpuset_current_mems_allowed (current->mems_allowed) 26#define cpuset_current_mems_allowed (current->mems_allowed)
28void cpuset_init_current_mems_allowed(void); 27void cpuset_init_current_mems_allowed(void);
@@ -69,9 +68,6 @@ struct seq_file;
69extern void cpuset_task_status_allowed(struct seq_file *m, 68extern void cpuset_task_status_allowed(struct seq_file *m,
70 struct task_struct *task); 69 struct task_struct *task);
71 70
72extern void cpuset_lock(void);
73extern void cpuset_unlock(void);
74
75extern int cpuset_mem_spread_node(void); 71extern int cpuset_mem_spread_node(void);
76 72
77static inline int cpuset_do_page_mem_spread(void) 73static inline int cpuset_do_page_mem_spread(void)
@@ -105,10 +101,11 @@ static inline void cpuset_cpus_allowed(struct task_struct *p,
105{ 101{
106 cpumask_copy(mask, cpu_possible_mask); 102 cpumask_copy(mask, cpu_possible_mask);
107} 103}
108static inline void cpuset_cpus_allowed_locked(struct task_struct *p, 104
109 struct cpumask *mask) 105static inline int cpuset_cpus_allowed_fallback(struct task_struct *p)
110{ 106{
111 cpumask_copy(mask, cpu_possible_mask); 107 cpumask_copy(&p->cpus_allowed, cpu_possible_mask);
108 return cpumask_any(cpu_active_mask);
112} 109}
113 110
114static inline nodemask_t cpuset_mems_allowed(struct task_struct *p) 111static inline nodemask_t cpuset_mems_allowed(struct task_struct *p)
@@ -157,9 +154,6 @@ static inline void cpuset_task_status_allowed(struct seq_file *m,
157{ 154{
158} 155}
159 156
160static inline void cpuset_lock(void) {}
161static inline void cpuset_unlock(void) {}
162
163static inline int cpuset_mem_spread_node(void) 157static inline int cpuset_mem_spread_node(void)
164{ 158{
165 return 0; 159 return 0;
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h
index 81f3b14d5d76..68f883b30a53 100644
--- a/include/linux/firewire-cdev.h
+++ b/include/linux/firewire-cdev.h
@@ -17,7 +17,7 @@
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 * DEALINGS IN THE SOFTWARE. 23 * DEALINGS IN THE SOFTWARE.
diff --git a/include/linux/firewire-constants.h b/include/linux/firewire-constants.h
index 9c63f06e67f2..9b4bb5fbba4b 100644
--- a/include/linux/firewire-constants.h
+++ b/include/linux/firewire-constants.h
@@ -17,7 +17,7 @@
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 * DEALINGS IN THE SOFTWARE. 23 * DEALINGS IN THE SOFTWARE.
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 39d57bc6cc71..44f35aea2f1f 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2315,8 +2315,9 @@ extern int vfs_fstatat(int , char __user *, struct kstat *, int);
2315extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, 2315extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
2316 unsigned long arg); 2316 unsigned long arg);
2317extern int __generic_block_fiemap(struct inode *inode, 2317extern int __generic_block_fiemap(struct inode *inode,
2318 struct fiemap_extent_info *fieinfo, u64 start, 2318 struct fiemap_extent_info *fieinfo,
2319 u64 len, get_block_t *get_block); 2319 loff_t start, loff_t len,
2320 get_block_t *get_block);
2320extern int generic_block_fiemap(struct inode *inode, 2321extern int generic_block_fiemap(struct inode *inode,
2321 struct fiemap_extent_info *fieinfo, u64 start, 2322 struct fiemap_extent_info *fieinfo, u64 start,
2322 u64 len, get_block_t *get_block); 2323 u64 len, get_block_t *get_block);
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index a3fd0f91d943..169d07758ee5 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -54,7 +54,7 @@ extern struct kmem_cache *kvm_vcpu_cache;
54 */ 54 */
55struct kvm_io_bus { 55struct kvm_io_bus {
56 int dev_count; 56 int dev_count;
57#define NR_IOBUS_DEVS 6 57#define NR_IOBUS_DEVS 200
58 struct kvm_io_device *devs[NR_IOBUS_DEVS]; 58 struct kvm_io_device *devs[NR_IOBUS_DEVS];
59}; 59};
60 60
@@ -119,6 +119,11 @@ struct kvm_memory_slot {
119 int user_alloc; 119 int user_alloc;
120}; 120};
121 121
122static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot)
123{
124 return ALIGN(memslot->npages, BITS_PER_LONG) / 8;
125}
126
122struct kvm_kernel_irq_routing_entry { 127struct kvm_kernel_irq_routing_entry {
123 u32 gsi; 128 u32 gsi;
124 u32 type; 129 u32 type;
diff --git a/include/linux/ncp_fs_sb.h b/include/linux/ncp_fs_sb.h
index 6330fc76b00f..5ec9ca671687 100644
--- a/include/linux/ncp_fs_sb.h
+++ b/include/linux/ncp_fs_sb.h
@@ -12,6 +12,7 @@
12#include <linux/ncp_mount.h> 12#include <linux/ncp_mount.h>
13#include <linux/net.h> 13#include <linux/net.h>
14#include <linux/mutex.h> 14#include <linux/mutex.h>
15#include <linux/backing-dev.h>
15 16
16#ifdef __KERNEL__ 17#ifdef __KERNEL__
17 18
@@ -127,6 +128,7 @@ struct ncp_server {
127 size_t len; 128 size_t len;
128 __u8 data[128]; 129 __u8 data[128];
129 } unexpected_packet; 130 } unexpected_packet;
131 struct backing_dev_info bdi;
130}; 132};
131 133
132extern void ncp_tcp_rcv_proc(struct work_struct *work); 134extern void ncp_tcp_rcv_proc(struct work_struct *work);
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 1a0b85aa151e..07ce4609fe50 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -209,6 +209,7 @@ struct nfs_inode {
209#define NFS_INO_FLUSHING (4) /* inode is flushing out data */ 209#define NFS_INO_FLUSHING (4) /* inode is flushing out data */
210#define NFS_INO_FSCACHE (5) /* inode can be cached by FS-Cache */ 210#define NFS_INO_FSCACHE (5) /* inode can be cached by FS-Cache */
211#define NFS_INO_FSCACHE_LOCK (6) /* FS-Cache cookie management lock */ 211#define NFS_INO_FSCACHE_LOCK (6) /* FS-Cache cookie management lock */
212#define NFS_INO_COMMIT (7) /* inode is committing unstable writes */
212 213
213static inline struct nfs_inode *NFS_I(const struct inode *inode) 214static inline struct nfs_inode *NFS_I(const struct inode *inode)
214{ 215{
diff --git a/include/linux/poison.h b/include/linux/poison.h
index 2110a81c5e2a..34066ffd893d 100644
--- a/include/linux/poison.h
+++ b/include/linux/poison.h
@@ -48,6 +48,15 @@
48#define POISON_FREE 0x6b /* for use-after-free poisoning */ 48#define POISON_FREE 0x6b /* for use-after-free poisoning */
49#define POISON_END 0xa5 /* end-byte of poisoning */ 49#define POISON_END 0xa5 /* end-byte of poisoning */
50 50
51/********** mm/hugetlb.c **********/
52/*
53 * Private mappings of hugetlb pages use this poisoned value for
54 * page->mapping. The core VM should not be doing anything with this mapping
55 * but futex requires the existence of some page->mapping value even though it
56 * is unused if PAGE_MAPPING_ANON is set.
57 */
58#define HUGETLB_POISON ((void *)(0x00300300 + POISON_POINTER_DELTA + PAGE_MAPPING_ANON))
59
51/********** arch/$ARCH/mm/init.c **********/ 60/********** arch/$ARCH/mm/init.c **********/
52#define POISON_FREE_INITMEM 0xcc 61#define POISON_FREE_INITMEM 0xcc
53 62
diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h
index a5195875480a..0006b2df00e1 100644
--- a/include/linux/rcutiny.h
+++ b/include/linux/rcutiny.h
@@ -60,8 +60,6 @@ static inline long rcu_batches_completed_bh(void)
60 return 0; 60 return 0;
61} 61}
62 62
63extern int rcu_expedited_torture_stats(char *page);
64
65static inline void rcu_force_quiescent_state(void) 63static inline void rcu_force_quiescent_state(void)
66{ 64{
67} 65}
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index 42cc3a04779e..24e467e526b8 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -35,7 +35,6 @@ struct notifier_block;
35extern void rcu_sched_qs(int cpu); 35extern void rcu_sched_qs(int cpu);
36extern void rcu_bh_qs(int cpu); 36extern void rcu_bh_qs(int cpu);
37extern int rcu_needs_cpu(int cpu); 37extern int rcu_needs_cpu(int cpu);
38extern int rcu_expedited_torture_stats(char *page);
39 38
40#ifdef CONFIG_TREE_PREEMPT_RCU 39#ifdef CONFIG_TREE_PREEMPT_RCU
41 40
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h
index 28c9fd020d39..ebd747265294 100644
--- a/include/linux/regulator/consumer.h
+++ b/include/linux/regulator/consumer.h
@@ -183,9 +183,13 @@ static inline struct regulator *__must_check regulator_get(struct device *dev,
183{ 183{
184 /* Nothing except the stubbed out regulator API should be 184 /* Nothing except the stubbed out regulator API should be
185 * looking at the value except to check if it is an error 185 * looking at the value except to check if it is an error
186 * value so the actual return value doesn't matter. 186 * value. Drivers are free to handle NULL specifically by
187 * skipping all regulator API calls, but they don't have to.
188 * Drivers which don't, should make sure they properly handle
189 * corner cases of the API, such as regulator_get_voltage()
190 * returning 0.
187 */ 191 */
188 return (struct regulator *)id; 192 return NULL;
189} 193}
190static inline void regulator_put(struct regulator *regulator) 194static inline void regulator_put(struct regulator *regulator)
191{ 195{
diff --git a/include/linux/sched.h b/include/linux/sched.h
index dad7f668ebf7..dfea40574b2a 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -275,11 +275,17 @@ extern cpumask_var_t nohz_cpu_mask;
275#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ) 275#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ)
276extern int select_nohz_load_balancer(int cpu); 276extern int select_nohz_load_balancer(int cpu);
277extern int get_nohz_load_balancer(void); 277extern int get_nohz_load_balancer(void);
278extern int nohz_ratelimit(int cpu);
278#else 279#else
279static inline int select_nohz_load_balancer(int cpu) 280static inline int select_nohz_load_balancer(int cpu)
280{ 281{
281 return 0; 282 return 0;
282} 283}
284
285static inline int nohz_ratelimit(int cpu)
286{
287 return 0;
288}
283#endif 289#endif
284 290
285/* 291/*
@@ -954,6 +960,7 @@ struct sched_domain {
954 char *name; 960 char *name;
955#endif 961#endif
956 962
963 unsigned int span_weight;
957 /* 964 /*
958 * Span of all CPUs in this domain. 965 * Span of all CPUs in this domain.
959 * 966 *
@@ -1026,12 +1033,17 @@ struct sched_domain;
1026#define WF_SYNC 0x01 /* waker goes to sleep after wakup */ 1033#define WF_SYNC 0x01 /* waker goes to sleep after wakup */
1027#define WF_FORK 0x02 /* child wakeup after fork */ 1034#define WF_FORK 0x02 /* child wakeup after fork */
1028 1035
1036#define ENQUEUE_WAKEUP 1
1037#define ENQUEUE_WAKING 2
1038#define ENQUEUE_HEAD 4
1039
1040#define DEQUEUE_SLEEP 1
1041
1029struct sched_class { 1042struct sched_class {
1030 const struct sched_class *next; 1043 const struct sched_class *next;
1031 1044
1032 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup, 1045 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags);
1033 bool head); 1046 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags);
1034 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep);
1035 void (*yield_task) (struct rq *rq); 1047 void (*yield_task) (struct rq *rq);
1036 1048
1037 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags); 1049 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags);
@@ -1040,7 +1052,8 @@ struct sched_class {
1040 void (*put_prev_task) (struct rq *rq, struct task_struct *p); 1052 void (*put_prev_task) (struct rq *rq, struct task_struct *p);
1041 1053
1042#ifdef CONFIG_SMP 1054#ifdef CONFIG_SMP
1043 int (*select_task_rq)(struct task_struct *p, int sd_flag, int flags); 1055 int (*select_task_rq)(struct rq *rq, struct task_struct *p,
1056 int sd_flag, int flags);
1044 1057
1045 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task); 1058 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task);
1046 void (*post_schedule) (struct rq *this_rq); 1059 void (*post_schedule) (struct rq *this_rq);
@@ -1077,36 +1090,8 @@ struct load_weight {
1077 unsigned long weight, inv_weight; 1090 unsigned long weight, inv_weight;
1078}; 1091};
1079 1092
1080/*
1081 * CFS stats for a schedulable entity (task, task-group etc)
1082 *
1083 * Current field usage histogram:
1084 *
1085 * 4 se->block_start
1086 * 4 se->run_node
1087 * 4 se->sleep_start
1088 * 6 se->load.weight
1089 */
1090struct sched_entity {
1091 struct load_weight load; /* for load-balancing */
1092 struct rb_node run_node;
1093 struct list_head group_node;
1094 unsigned int on_rq;
1095
1096 u64 exec_start;
1097 u64 sum_exec_runtime;
1098 u64 vruntime;
1099 u64 prev_sum_exec_runtime;
1100
1101 u64 last_wakeup;
1102 u64 avg_overlap;
1103
1104 u64 nr_migrations;
1105
1106 u64 start_runtime;
1107 u64 avg_wakeup;
1108
1109#ifdef CONFIG_SCHEDSTATS 1093#ifdef CONFIG_SCHEDSTATS
1094struct sched_statistics {
1110 u64 wait_start; 1095 u64 wait_start;
1111 u64 wait_max; 1096 u64 wait_max;
1112 u64 wait_count; 1097 u64 wait_count;
@@ -1138,6 +1123,24 @@ struct sched_entity {
1138 u64 nr_wakeups_affine_attempts; 1123 u64 nr_wakeups_affine_attempts;
1139 u64 nr_wakeups_passive; 1124 u64 nr_wakeups_passive;
1140 u64 nr_wakeups_idle; 1125 u64 nr_wakeups_idle;
1126};
1127#endif
1128
1129struct sched_entity {
1130 struct load_weight load; /* for load-balancing */
1131 struct rb_node run_node;
1132 struct list_head group_node;
1133 unsigned int on_rq;
1134
1135 u64 exec_start;
1136 u64 sum_exec_runtime;
1137 u64 vruntime;
1138 u64 prev_sum_exec_runtime;
1139
1140 u64 nr_migrations;
1141
1142#ifdef CONFIG_SCHEDSTATS
1143 struct sched_statistics statistics;
1141#endif 1144#endif
1142 1145
1143#ifdef CONFIG_FAIR_GROUP_SCHED 1146#ifdef CONFIG_FAIR_GROUP_SCHED
@@ -1847,6 +1850,7 @@ extern void sched_clock_idle_sleep_event(void);
1847extern void sched_clock_idle_wakeup_event(u64 delta_ns); 1850extern void sched_clock_idle_wakeup_event(u64 delta_ns);
1848 1851
1849#ifdef CONFIG_HOTPLUG_CPU 1852#ifdef CONFIG_HOTPLUG_CPU
1853extern void move_task_off_dead_cpu(int dead_cpu, struct task_struct *p);
1850extern void idle_task_exit(void); 1854extern void idle_task_exit(void);
1851#else 1855#else
1852static inline void idle_task_exit(void) {} 1856static inline void idle_task_exit(void) {}
diff --git a/include/linux/smb_fs_sb.h b/include/linux/smb_fs_sb.h
index 8a060a7040d8..bb947dd1fba9 100644
--- a/include/linux/smb_fs_sb.h
+++ b/include/linux/smb_fs_sb.h
@@ -10,6 +10,7 @@
10#define _SMB_FS_SB 10#define _SMB_FS_SB
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/backing-dev.h>
13#include <linux/smb.h> 14#include <linux/smb.h>
14 15
15/* 16/*
@@ -74,6 +75,8 @@ struct smb_sb_info {
74 struct smb_ops *ops; 75 struct smb_ops *ops;
75 76
76 struct super_block *super_block; 77 struct super_block *super_block;
78
79 struct backing_dev_info bdi;
77}; 80};
78 81
79static inline int 82static inline int
diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
index baba3a23a814..6b524a0d02e4 100644
--- a/include/linux/stop_machine.h
+++ b/include/linux/stop_machine.h
@@ -1,13 +1,101 @@
1#ifndef _LINUX_STOP_MACHINE 1#ifndef _LINUX_STOP_MACHINE
2#define _LINUX_STOP_MACHINE 2#define _LINUX_STOP_MACHINE
3/* "Bogolock": stop the entire machine, disable interrupts. This is a 3
4 very heavy lock, which is equivalent to grabbing every spinlock
5 (and more). So the "read" side to such a lock is anything which
6 disables preeempt. */
7#include <linux/cpu.h> 4#include <linux/cpu.h>
8#include <linux/cpumask.h> 5#include <linux/cpumask.h>
6#include <linux/list.h>
9#include <asm/system.h> 7#include <asm/system.h>
10 8
9/*
10 * stop_cpu[s]() is simplistic per-cpu maximum priority cpu
11 * monopolization mechanism. The caller can specify a non-sleeping
12 * function to be executed on a single or multiple cpus preempting all
13 * other processes and monopolizing those cpus until it finishes.
14 *
15 * Resources for this mechanism are preallocated when a cpu is brought
16 * up and requests are guaranteed to be served as long as the target
17 * cpus are online.
18 */
19typedef int (*cpu_stop_fn_t)(void *arg);
20
21#ifdef CONFIG_SMP
22
23struct cpu_stop_work {
24 struct list_head list; /* cpu_stopper->works */
25 cpu_stop_fn_t fn;
26 void *arg;
27 struct cpu_stop_done *done;
28};
29
30int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg);
31void stop_one_cpu_nowait(unsigned int cpu, cpu_stop_fn_t fn, void *arg,
32 struct cpu_stop_work *work_buf);
33int stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg);
34int try_stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg);
35
36#else /* CONFIG_SMP */
37
38#include <linux/workqueue.h>
39
40struct cpu_stop_work {
41 struct work_struct work;
42 cpu_stop_fn_t fn;
43 void *arg;
44};
45
46static inline int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg)
47{
48 int ret = -ENOENT;
49 preempt_disable();
50 if (cpu == smp_processor_id())
51 ret = fn(arg);
52 preempt_enable();
53 return ret;
54}
55
56static void stop_one_cpu_nowait_workfn(struct work_struct *work)
57{
58 struct cpu_stop_work *stwork =
59 container_of(work, struct cpu_stop_work, work);
60 preempt_disable();
61 stwork->fn(stwork->arg);
62 preempt_enable();
63}
64
65static inline void stop_one_cpu_nowait(unsigned int cpu,
66 cpu_stop_fn_t fn, void *arg,
67 struct cpu_stop_work *work_buf)
68{
69 if (cpu == smp_processor_id()) {
70 INIT_WORK(&work_buf->work, stop_one_cpu_nowait_workfn);
71 work_buf->fn = fn;
72 work_buf->arg = arg;
73 schedule_work(&work_buf->work);
74 }
75}
76
77static inline int stop_cpus(const struct cpumask *cpumask,
78 cpu_stop_fn_t fn, void *arg)
79{
80 if (cpumask_test_cpu(raw_smp_processor_id(), cpumask))
81 return stop_one_cpu(raw_smp_processor_id(), fn, arg);
82 return -ENOENT;
83}
84
85static inline int try_stop_cpus(const struct cpumask *cpumask,
86 cpu_stop_fn_t fn, void *arg)
87{
88 return stop_cpus(cpumask, fn, arg);
89}
90
91#endif /* CONFIG_SMP */
92
93/*
94 * stop_machine "Bogolock": stop the entire machine, disable
95 * interrupts. This is a very heavy lock, which is equivalent to
96 * grabbing every spinlock (and more). So the "read" side to such a
97 * lock is anything which disables preeempt.
98 */
11#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP) 99#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP)
12 100
13/** 101/**
@@ -36,24 +124,7 @@ int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
36 */ 124 */
37int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus); 125int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
38 126
39/** 127#else /* CONFIG_STOP_MACHINE && CONFIG_SMP */
40 * stop_machine_create: create all stop_machine threads
41 *
42 * Description: This causes all stop_machine threads to be created before
43 * stop_machine actually gets called. This can be used by subsystems that
44 * need a non failing stop_machine infrastructure.
45 */
46int stop_machine_create(void);
47
48/**
49 * stop_machine_destroy: destroy all stop_machine threads
50 *
51 * Description: This causes all stop_machine threads which were created with
52 * stop_machine_create to be destroyed again.
53 */
54void stop_machine_destroy(void);
55
56#else
57 128
58static inline int stop_machine(int (*fn)(void *), void *data, 129static inline int stop_machine(int (*fn)(void *), void *data,
59 const struct cpumask *cpus) 130 const struct cpumask *cpus)
@@ -65,8 +136,5 @@ static inline int stop_machine(int (*fn)(void *), void *data,
65 return ret; 136 return ret;
66} 137}
67 138
68static inline int stop_machine_create(void) { return 0; } 139#endif /* CONFIG_STOP_MACHINE && CONFIG_SMP */
69static inline void stop_machine_destroy(void) { } 140#endif /* _LINUX_STOP_MACHINE */
70
71#endif /* CONFIG_SMP */
72#endif /* _LINUX_STOP_MACHINE */
diff --git a/include/linux/tick.h b/include/linux/tick.h
index d2ae79e21be3..b232ccc0ee29 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -42,6 +42,7 @@ enum tick_nohz_mode {
42 * @idle_waketime: Time when the idle was interrupted 42 * @idle_waketime: Time when the idle was interrupted
43 * @idle_exittime: Time when the idle state was left 43 * @idle_exittime: Time when the idle state was left
44 * @idle_sleeptime: Sum of the time slept in idle with sched tick stopped 44 * @idle_sleeptime: Sum of the time slept in idle with sched tick stopped
45 * @iowait_sleeptime: Sum of the time slept in idle with sched tick stopped, with IO outstanding
45 * @sleep_length: Duration of the current idle sleep 46 * @sleep_length: Duration of the current idle sleep
46 * @do_timer_lst: CPU was the last one doing do_timer before going idle 47 * @do_timer_lst: CPU was the last one doing do_timer before going idle
47 */ 48 */
@@ -60,7 +61,7 @@ struct tick_sched {
60 ktime_t idle_waketime; 61 ktime_t idle_waketime;
61 ktime_t idle_exittime; 62 ktime_t idle_exittime;
62 ktime_t idle_sleeptime; 63 ktime_t idle_sleeptime;
63 ktime_t idle_lastupdate; 64 ktime_t iowait_sleeptime;
64 ktime_t sleep_length; 65 ktime_t sleep_length;
65 unsigned long last_jiffies; 66 unsigned long last_jiffies;
66 unsigned long next_jiffies; 67 unsigned long next_jiffies;
@@ -124,6 +125,7 @@ extern void tick_nohz_stop_sched_tick(int inidle);
124extern void tick_nohz_restart_sched_tick(void); 125extern void tick_nohz_restart_sched_tick(void);
125extern ktime_t tick_nohz_get_sleep_length(void); 126extern ktime_t tick_nohz_get_sleep_length(void);
126extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time); 127extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time);
128extern u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time);
127# else 129# else
128static inline void tick_nohz_stop_sched_tick(int inidle) { } 130static inline void tick_nohz_stop_sched_tick(int inidle) { }
129static inline void tick_nohz_restart_sched_tick(void) { } 131static inline void tick_nohz_restart_sched_tick(void) { }
@@ -134,6 +136,7 @@ static inline ktime_t tick_nohz_get_sleep_length(void)
134 return len; 136 return len;
135} 137}
136static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return -1; } 138static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return -1; }
139static inline u64 get_cpu_iowait_time_us(int cpu, u64 *unused) { return -1; }
137# endif /* !NO_HZ */ 140# endif /* !NO_HZ */
138 141
139#endif 142#endif
diff --git a/include/linux/wait.h b/include/linux/wait.h
index a48e16b77d5e..76d96d035ea0 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -127,12 +127,26 @@ static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
127/* 127/*
128 * Used for wake-one threads: 128 * Used for wake-one threads:
129 */ 129 */
130static inline void __add_wait_queue_exclusive(wait_queue_head_t *q,
131 wait_queue_t *wait)
132{
133 wait->flags |= WQ_FLAG_EXCLUSIVE;
134 __add_wait_queue(q, wait);
135}
136
130static inline void __add_wait_queue_tail(wait_queue_head_t *head, 137static inline void __add_wait_queue_tail(wait_queue_head_t *head,
131 wait_queue_t *new) 138 wait_queue_t *new)
132{ 139{
133 list_add_tail(&new->task_list, &head->task_list); 140 list_add_tail(&new->task_list, &head->task_list);
134} 141}
135 142
143static inline void __add_wait_queue_tail_exclusive(wait_queue_head_t *q,
144 wait_queue_t *wait)
145{
146 wait->flags |= WQ_FLAG_EXCLUSIVE;
147 __add_wait_queue_tail(q, wait);
148}
149
136static inline void __remove_wait_queue(wait_queue_head_t *head, 150static inline void __remove_wait_queue(wait_queue_head_t *head,
137 wait_queue_t *old) 151 wait_queue_t *old)
138{ 152{
@@ -404,25 +418,6 @@ do { \
404}) 418})
405 419
406/* 420/*
407 * Must be called with the spinlock in the wait_queue_head_t held.
408 */
409static inline void add_wait_queue_exclusive_locked(wait_queue_head_t *q,
410 wait_queue_t * wait)
411{
412 wait->flags |= WQ_FLAG_EXCLUSIVE;
413 __add_wait_queue_tail(q, wait);
414}
415
416/*
417 * Must be called with the spinlock in the wait_queue_head_t held.
418 */
419static inline void remove_wait_queue_locked(wait_queue_head_t *q,
420 wait_queue_t * wait)
421{
422 __remove_wait_queue(q, wait);
423}
424
425/*
426 * These are the old interfaces to sleep waiting for an event. 421 * These are the old interfaces to sleep waiting for an event.
427 * They are racy. DO NOT use them, use the wait_event* interfaces above. 422 * They are racy. DO NOT use them, use the wait_event* interfaces above.
428 * We plan to remove these interfaces. 423 * We plan to remove these interfaces.
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h
index 8be5135ff7aa..2c55a7ea20af 100644
--- a/include/net/sctp/command.h
+++ b/include/net/sctp/command.h
@@ -107,6 +107,7 @@ typedef enum {
107 SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */ 107 SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */
108 SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */ 108 SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */
109 SCTP_CMD_SEND_MSG, /* Send the whole use message */ 109 SCTP_CMD_SEND_MSG, /* Send the whole use message */
110 SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */
110 SCTP_CMD_LAST 111 SCTP_CMD_LAST
111} sctp_verb_t; 112} sctp_verb_t;
112 113
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 78740ec57d5d..fa6cde578a1d 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -128,6 +128,7 @@ extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
128int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb); 128int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb);
129int sctp_inet_listen(struct socket *sock, int backlog); 129int sctp_inet_listen(struct socket *sock, int backlog);
130void sctp_write_space(struct sock *sk); 130void sctp_write_space(struct sock *sk);
131void sctp_data_ready(struct sock *sk, int len);
131unsigned int sctp_poll(struct file *file, struct socket *sock, 132unsigned int sctp_poll(struct file *file, struct socket *sock,
132 poll_table *wait); 133 poll_table *wait);
133void sctp_sock_rfree(struct sk_buff *skb); 134void sctp_sock_rfree(struct sk_buff *skb);
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index d57847f2f6c1..aab3c13dc310 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -26,6 +26,7 @@
26#ifdef __KERNEL__ 26#ifdef __KERNEL__
27#include <linux/device.h> 27#include <linux/device.h>
28#include <pcmcia/ss.h> 28#include <pcmcia/ss.h>
29#include <asm/atomic.h>
29 30
30/* 31/*
31 * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus 32 * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus
@@ -94,10 +95,8 @@ struct pcmcia_device {
94 config_req_t conf; 95 config_req_t conf;
95 window_handle_t win; 96 window_handle_t win;
96 97
97 /* Is the device suspended, or in the process of 98 /* Is the device suspended? */
98 * being removed? */
99 u16 suspended:1; 99 u16 suspended:1;
100 u16 _removed:1;
101 100
102 /* Flags whether io, irq, win configurations were 101 /* Flags whether io, irq, win configurations were
103 * requested, and whether the configuration is "locked" */ 102 * requested, and whether the configuration is "locked" */
@@ -115,7 +114,7 @@ struct pcmcia_device {
115 u16 has_card_id:1; 114 u16 has_card_id:1;
116 u16 has_func_id:1; 115 u16 has_func_id:1;
117 116
118 u16 reserved:3; 117 u16 reserved:4;
119 118
120 u8 func_id; 119 u8 func_id;
121 u16 manf_id; 120 u16 manf_id;
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 2e488b60bc76..344705cb42f4 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -224,18 +224,16 @@ struct pcmcia_socket {
224 224
225 /* 16-bit state: */ 225 /* 16-bit state: */
226 struct { 226 struct {
227 /* PCMCIA card is present in socket */
228 u8 present:1;
229 /* "master" ioctl is used */ 227 /* "master" ioctl is used */
230 u8 busy:1; 228 u8 busy:1;
231 /* pcmcia module is being unloaded */
232 u8 dead:1;
233 /* the PCMCIA card consists of two pseudo devices */ 229 /* the PCMCIA card consists of two pseudo devices */
234 u8 has_pfc:1; 230 u8 has_pfc:1;
235 231
236 u8 reserved:4; 232 u8 reserved:6;
237 } pcmcia_state; 233 } pcmcia_state;
238 234
235 /* non-zero if PCMCIA card is present */
236 atomic_t present;
239 237
240#ifdef CONFIG_PCMCIA_IOCTL 238#ifdef CONFIG_PCMCIA_IOCTL
241 struct user_info_t *user; 239 struct user_info_t *user;
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
index cfceb0b73e20..4f733ecea46e 100644
--- a/include/trace/events/sched.h
+++ b/include/trace/events/sched.h
@@ -51,15 +51,12 @@ TRACE_EVENT(sched_kthread_stop_ret,
51 51
52/* 52/*
53 * Tracepoint for waiting on task to unschedule: 53 * Tracepoint for waiting on task to unschedule:
54 *
55 * (NOTE: the 'rq' argument is not used by generic trace events,
56 * but used by the latency tracer plugin. )
57 */ 54 */
58TRACE_EVENT(sched_wait_task, 55TRACE_EVENT(sched_wait_task,
59 56
60 TP_PROTO(struct rq *rq, struct task_struct *p), 57 TP_PROTO(struct task_struct *p),
61 58
62 TP_ARGS(rq, p), 59 TP_ARGS(p),
63 60
64 TP_STRUCT__entry( 61 TP_STRUCT__entry(
65 __array( char, comm, TASK_COMM_LEN ) 62 __array( char, comm, TASK_COMM_LEN )
@@ -79,15 +76,12 @@ TRACE_EVENT(sched_wait_task,
79 76
80/* 77/*
81 * Tracepoint for waking up a task: 78 * Tracepoint for waking up a task:
82 *
83 * (NOTE: the 'rq' argument is not used by generic trace events,
84 * but used by the latency tracer plugin. )
85 */ 79 */
86DECLARE_EVENT_CLASS(sched_wakeup_template, 80DECLARE_EVENT_CLASS(sched_wakeup_template,
87 81
88 TP_PROTO(struct rq *rq, struct task_struct *p, int success), 82 TP_PROTO(struct task_struct *p, int success),
89 83
90 TP_ARGS(rq, p, success), 84 TP_ARGS(p, success),
91 85
92 TP_STRUCT__entry( 86 TP_STRUCT__entry(
93 __array( char, comm, TASK_COMM_LEN ) 87 __array( char, comm, TASK_COMM_LEN )
@@ -111,31 +105,25 @@ DECLARE_EVENT_CLASS(sched_wakeup_template,
111); 105);
112 106
113DEFINE_EVENT(sched_wakeup_template, sched_wakeup, 107DEFINE_EVENT(sched_wakeup_template, sched_wakeup,
114 TP_PROTO(struct rq *rq, struct task_struct *p, int success), 108 TP_PROTO(struct task_struct *p, int success),
115 TP_ARGS(rq, p, success)); 109 TP_ARGS(p, success));
116 110
117/* 111/*
118 * Tracepoint for waking up a new task: 112 * Tracepoint for waking up a new task:
119 *
120 * (NOTE: the 'rq' argument is not used by generic trace events,
121 * but used by the latency tracer plugin. )
122 */ 113 */
123DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, 114DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new,
124 TP_PROTO(struct rq *rq, struct task_struct *p, int success), 115 TP_PROTO(struct task_struct *p, int success),
125 TP_ARGS(rq, p, success)); 116 TP_ARGS(p, success));
126 117
127/* 118/*
128 * Tracepoint for task switches, performed by the scheduler: 119 * Tracepoint for task switches, performed by the scheduler:
129 *
130 * (NOTE: the 'rq' argument is not used by generic trace events,
131 * but used by the latency tracer plugin. )
132 */ 120 */
133TRACE_EVENT(sched_switch, 121TRACE_EVENT(sched_switch,
134 122
135 TP_PROTO(struct rq *rq, struct task_struct *prev, 123 TP_PROTO(struct task_struct *prev,
136 struct task_struct *next), 124 struct task_struct *next),
137 125
138 TP_ARGS(rq, prev, next), 126 TP_ARGS(prev, next),
139 127
140 TP_STRUCT__entry( 128 TP_STRUCT__entry(
141 __array( char, prev_comm, TASK_COMM_LEN ) 129 __array( char, prev_comm, TASK_COMM_LEN )
diff --git a/init/Kconfig b/init/Kconfig
index eb77e8ccde1c..5fe94b82e4c0 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -604,8 +604,7 @@ config RT_GROUP_SCHED
604 default n 604 default n
605 help 605 help
606 This feature lets you explicitly allocate real CPU bandwidth 606 This feature lets you explicitly allocate real CPU bandwidth
607 to users or control groups (depending on the "Basis for grouping tasks" 607 to task groups. If enabled, it will also make it impossible to
608 setting below. If enabled, it will also make it impossible to
609 schedule realtime tasks for non-root users until you allocate 608 schedule realtime tasks for non-root users until you allocate
610 realtime bandwidth for them. 609 realtime bandwidth for them.
611 See Documentation/scheduler/sched-rt-group.txt for more information. 610 See Documentation/scheduler/sched-rt-group.txt for more information.
diff --git a/init/initramfs.c b/init/initramfs.c
index 37d3859b1b32..4b9c20205092 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -457,7 +457,8 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len)
457 compress_name); 457 compress_name);
458 message = msg_buf; 458 message = msg_buf;
459 } 459 }
460 } 460 } else
461 error("junk in compressed archive");
461 if (state != Reset) 462 if (state != Reset)
462 error("junk in compressed archive"); 463 error("junk in compressed archive");
463 this_header = saved_offset + my_inptr; 464 this_header = saved_offset + my_inptr;
diff --git a/kernel/Makefile b/kernel/Makefile
index a987aa1676b5..149e18ef1ab1 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -68,7 +68,7 @@ obj-$(CONFIG_USER_NS) += user_namespace.o
68obj-$(CONFIG_PID_NS) += pid_namespace.o 68obj-$(CONFIG_PID_NS) += pid_namespace.o
69obj-$(CONFIG_IKCONFIG) += configs.o 69obj-$(CONFIG_IKCONFIG) += configs.o
70obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o 70obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o
71obj-$(CONFIG_STOP_MACHINE) += stop_machine.o 71obj-$(CONFIG_SMP) += stop_machine.o
72obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o 72obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o
73obj-$(CONFIG_AUDIT) += audit.o auditfilter.o audit_watch.o 73obj-$(CONFIG_AUDIT) += audit.o auditfilter.o audit_watch.o
74obj-$(CONFIG_AUDITSYSCALL) += auditsc.o 74obj-$(CONFIG_AUDITSYSCALL) += auditsc.o
diff --git a/kernel/capability.c b/kernel/capability.c
index 9e4697e9b276..2f05303715a5 100644
--- a/kernel/capability.c
+++ b/kernel/capability.c
@@ -15,7 +15,6 @@
15#include <linux/syscalls.h> 15#include <linux/syscalls.h>
16#include <linux/pid_namespace.h> 16#include <linux/pid_namespace.h>
17#include <asm/uaccess.h> 17#include <asm/uaccess.h>
18#include "cred-internals.h"
19 18
20/* 19/*
21 * Leveraged for setting/resetting capabilities 20 * Leveraged for setting/resetting capabilities
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index e2769e13980c..4a07d057a265 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -3010,7 +3010,7 @@ static int cgroup_event_wake(wait_queue_t *wait, unsigned mode,
3010 unsigned long flags = (unsigned long)key; 3010 unsigned long flags = (unsigned long)key;
3011 3011
3012 if (flags & POLLHUP) { 3012 if (flags & POLLHUP) {
3013 remove_wait_queue_locked(event->wqh, &event->wait); 3013 __remove_wait_queue(event->wqh, &event->wait);
3014 spin_lock(&cgrp->event_list_lock); 3014 spin_lock(&cgrp->event_list_lock);
3015 list_del(&event->list); 3015 list_del(&event->list);
3016 spin_unlock(&cgrp->event_list_lock); 3016 spin_unlock(&cgrp->event_list_lock);
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 25bba73b1be3..545777574779 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -164,6 +164,7 @@ static inline void check_for_tasks(int cpu)
164} 164}
165 165
166struct take_cpu_down_param { 166struct take_cpu_down_param {
167 struct task_struct *caller;
167 unsigned long mod; 168 unsigned long mod;
168 void *hcpu; 169 void *hcpu;
169}; 170};
@@ -172,6 +173,7 @@ struct take_cpu_down_param {
172static int __ref take_cpu_down(void *_param) 173static int __ref take_cpu_down(void *_param)
173{ 174{
174 struct take_cpu_down_param *param = _param; 175 struct take_cpu_down_param *param = _param;
176 unsigned int cpu = (unsigned long)param->hcpu;
175 int err; 177 int err;
176 178
177 /* Ensure this CPU doesn't handle any more interrupts. */ 179 /* Ensure this CPU doesn't handle any more interrupts. */
@@ -182,6 +184,8 @@ static int __ref take_cpu_down(void *_param)
182 raw_notifier_call_chain(&cpu_chain, CPU_DYING | param->mod, 184 raw_notifier_call_chain(&cpu_chain, CPU_DYING | param->mod,
183 param->hcpu); 185 param->hcpu);
184 186
187 if (task_cpu(param->caller) == cpu)
188 move_task_off_dead_cpu(cpu, param->caller);
185 /* Force idle task to run as soon as we yield: it should 189 /* Force idle task to run as soon as we yield: it should
186 immediately notice cpu is offline and die quickly. */ 190 immediately notice cpu is offline and die quickly. */
187 sched_idle_next(); 191 sched_idle_next();
@@ -192,10 +196,10 @@ static int __ref take_cpu_down(void *_param)
192static int __ref _cpu_down(unsigned int cpu, int tasks_frozen) 196static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
193{ 197{
194 int err, nr_calls = 0; 198 int err, nr_calls = 0;
195 cpumask_var_t old_allowed;
196 void *hcpu = (void *)(long)cpu; 199 void *hcpu = (void *)(long)cpu;
197 unsigned long mod = tasks_frozen ? CPU_TASKS_FROZEN : 0; 200 unsigned long mod = tasks_frozen ? CPU_TASKS_FROZEN : 0;
198 struct take_cpu_down_param tcd_param = { 201 struct take_cpu_down_param tcd_param = {
202 .caller = current,
199 .mod = mod, 203 .mod = mod,
200 .hcpu = hcpu, 204 .hcpu = hcpu,
201 }; 205 };
@@ -206,9 +210,6 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
206 if (!cpu_online(cpu)) 210 if (!cpu_online(cpu))
207 return -EINVAL; 211 return -EINVAL;
208 212
209 if (!alloc_cpumask_var(&old_allowed, GFP_KERNEL))
210 return -ENOMEM;
211
212 cpu_hotplug_begin(); 213 cpu_hotplug_begin();
213 set_cpu_active(cpu, false); 214 set_cpu_active(cpu, false);
214 err = __raw_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE | mod, 215 err = __raw_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE | mod,
@@ -225,10 +226,6 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
225 goto out_release; 226 goto out_release;
226 } 227 }
227 228
228 /* Ensure that we are not runnable on dying cpu */
229 cpumask_copy(old_allowed, &current->cpus_allowed);
230 set_cpus_allowed_ptr(current, cpu_active_mask);
231
232 err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu)); 229 err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
233 if (err) { 230 if (err) {
234 set_cpu_active(cpu, true); 231 set_cpu_active(cpu, true);
@@ -237,7 +234,7 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
237 hcpu) == NOTIFY_BAD) 234 hcpu) == NOTIFY_BAD)
238 BUG(); 235 BUG();
239 236
240 goto out_allowed; 237 goto out_release;
241 } 238 }
242 BUG_ON(cpu_online(cpu)); 239 BUG_ON(cpu_online(cpu));
243 240
@@ -255,8 +252,6 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
255 252
256 check_for_tasks(cpu); 253 check_for_tasks(cpu);
257 254
258out_allowed:
259 set_cpus_allowed_ptr(current, old_allowed);
260out_release: 255out_release:
261 cpu_hotplug_done(); 256 cpu_hotplug_done();
262 if (!err) { 257 if (!err) {
@@ -264,7 +259,6 @@ out_release:
264 hcpu) == NOTIFY_BAD) 259 hcpu) == NOTIFY_BAD)
265 BUG(); 260 BUG();
266 } 261 }
267 free_cpumask_var(old_allowed);
268 return err; 262 return err;
269} 263}
270 264
@@ -272,9 +266,6 @@ int __ref cpu_down(unsigned int cpu)
272{ 266{
273 int err; 267 int err;
274 268
275 err = stop_machine_create();
276 if (err)
277 return err;
278 cpu_maps_update_begin(); 269 cpu_maps_update_begin();
279 270
280 if (cpu_hotplug_disabled) { 271 if (cpu_hotplug_disabled) {
@@ -286,7 +277,6 @@ int __ref cpu_down(unsigned int cpu)
286 277
287out: 278out:
288 cpu_maps_update_done(); 279 cpu_maps_update_done();
289 stop_machine_destroy();
290 return err; 280 return err;
291} 281}
292EXPORT_SYMBOL(cpu_down); 282EXPORT_SYMBOL(cpu_down);
@@ -367,9 +357,6 @@ int disable_nonboot_cpus(void)
367{ 357{
368 int cpu, first_cpu, error; 358 int cpu, first_cpu, error;
369 359
370 error = stop_machine_create();
371 if (error)
372 return error;
373 cpu_maps_update_begin(); 360 cpu_maps_update_begin();
374 first_cpu = cpumask_first(cpu_online_mask); 361 first_cpu = cpumask_first(cpu_online_mask);
375 /* 362 /*
@@ -400,7 +387,6 @@ int disable_nonboot_cpus(void)
400 printk(KERN_ERR "Non-boot CPUs are not disabled\n"); 387 printk(KERN_ERR "Non-boot CPUs are not disabled\n");
401 } 388 }
402 cpu_maps_update_done(); 389 cpu_maps_update_done();
403 stop_machine_destroy();
404 return error; 390 return error;
405} 391}
406 392
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index d10946748ec2..9a50c5f6e727 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -2182,19 +2182,52 @@ void __init cpuset_init_smp(void)
2182void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) 2182void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
2183{ 2183{
2184 mutex_lock(&callback_mutex); 2184 mutex_lock(&callback_mutex);
2185 cpuset_cpus_allowed_locked(tsk, pmask); 2185 task_lock(tsk);
2186 guarantee_online_cpus(task_cs(tsk), pmask);
2187 task_unlock(tsk);
2186 mutex_unlock(&callback_mutex); 2188 mutex_unlock(&callback_mutex);
2187} 2189}
2188 2190
2189/** 2191int cpuset_cpus_allowed_fallback(struct task_struct *tsk)
2190 * cpuset_cpus_allowed_locked - return cpus_allowed mask from a tasks cpuset.
2191 * Must be called with callback_mutex held.
2192 **/
2193void cpuset_cpus_allowed_locked(struct task_struct *tsk, struct cpumask *pmask)
2194{ 2192{
2195 task_lock(tsk); 2193 const struct cpuset *cs;
2196 guarantee_online_cpus(task_cs(tsk), pmask); 2194 int cpu;
2197 task_unlock(tsk); 2195
2196 rcu_read_lock();
2197 cs = task_cs(tsk);
2198 if (cs)
2199 cpumask_copy(&tsk->cpus_allowed, cs->cpus_allowed);
2200 rcu_read_unlock();
2201
2202 /*
2203 * We own tsk->cpus_allowed, nobody can change it under us.
2204 *
2205 * But we used cs && cs->cpus_allowed lockless and thus can
2206 * race with cgroup_attach_task() or update_cpumask() and get
2207 * the wrong tsk->cpus_allowed. However, both cases imply the
2208 * subsequent cpuset_change_cpumask()->set_cpus_allowed_ptr()
2209 * which takes task_rq_lock().
2210 *
2211 * If we are called after it dropped the lock we must see all
2212 * changes in tsk_cs()->cpus_allowed. Otherwise we can temporary
2213 * set any mask even if it is not right from task_cs() pov,
2214 * the pending set_cpus_allowed_ptr() will fix things.
2215 */
2216
2217 cpu = cpumask_any_and(&tsk->cpus_allowed, cpu_active_mask);
2218 if (cpu >= nr_cpu_ids) {
2219 /*
2220 * Either tsk->cpus_allowed is wrong (see above) or it
2221 * is actually empty. The latter case is only possible
2222 * if we are racing with remove_tasks_in_empty_cpuset().
2223 * Like above we can temporary set any mask and rely on
2224 * set_cpus_allowed_ptr() as synchronization point.
2225 */
2226 cpumask_copy(&tsk->cpus_allowed, cpu_possible_mask);
2227 cpu = cpumask_any(cpu_active_mask);
2228 }
2229
2230 return cpu;
2198} 2231}
2199 2232
2200void cpuset_init_current_mems_allowed(void) 2233void cpuset_init_current_mems_allowed(void)
@@ -2383,22 +2416,6 @@ int __cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask)
2383} 2416}
2384 2417
2385/** 2418/**
2386 * cpuset_lock - lock out any changes to cpuset structures
2387 *
2388 * The out of memory (oom) code needs to mutex_lock cpusets
2389 * from being changed while it scans the tasklist looking for a
2390 * task in an overlapping cpuset. Expose callback_mutex via this
2391 * cpuset_lock() routine, so the oom code can lock it, before
2392 * locking the task list. The tasklist_lock is a spinlock, so
2393 * must be taken inside callback_mutex.
2394 */
2395
2396void cpuset_lock(void)
2397{
2398 mutex_lock(&callback_mutex);
2399}
2400
2401/**
2402 * cpuset_unlock - release lock on cpuset changes 2419 * cpuset_unlock - release lock on cpuset changes
2403 * 2420 *
2404 * Undo the lock taken in a previous cpuset_lock() call. 2421 * Undo the lock taken in a previous cpuset_lock() call.
diff --git a/kernel/cred-internals.h b/kernel/cred-internals.h
deleted file mode 100644
index 2dc4fc2d0bf1..000000000000
--- a/kernel/cred-internals.h
+++ /dev/null
@@ -1,21 +0,0 @@
1/* Internal credentials stuff
2 *
3 * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */
11
12/*
13 * user.c
14 */
15static inline void sched_switch_user(struct task_struct *p)
16{
17#ifdef CONFIG_USER_SCHED
18 sched_move_task(p);
19#endif /* CONFIG_USER_SCHED */
20}
21
diff --git a/kernel/cred.c b/kernel/cred.c
index e1dbe9eef800..8f3672a58a1e 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -17,7 +17,6 @@
17#include <linux/init_task.h> 17#include <linux/init_task.h>
18#include <linux/security.h> 18#include <linux/security.h>
19#include <linux/cn_proc.h> 19#include <linux/cn_proc.h>
20#include "cred-internals.h"
21 20
22#if 0 21#if 0
23#define kdebug(FMT, ...) \ 22#define kdebug(FMT, ...) \
@@ -398,6 +397,8 @@ struct cred *prepare_usermodehelper_creds(void)
398 397
399error: 398error:
400 put_cred(new); 399 put_cred(new);
400 return NULL;
401
401free_tgcred: 402free_tgcred:
402#ifdef CONFIG_KEYS 403#ifdef CONFIG_KEYS
403 kfree(tgcred); 404 kfree(tgcred);
@@ -558,8 +559,6 @@ int commit_creds(struct cred *new)
558 atomic_dec(&old->user->processes); 559 atomic_dec(&old->user->processes);
559 alter_cred_subscribers(old, -2); 560 alter_cred_subscribers(old, -2);
560 561
561 sched_switch_user(task);
562
563 /* send notifications */ 562 /* send notifications */
564 if (new->uid != old->uid || 563 if (new->uid != old->uid ||
565 new->euid != old->euid || 564 new->euid != old->euid ||
@@ -791,8 +790,6 @@ bool creds_are_invalid(const struct cred *cred)
791{ 790{
792 if (cred->magic != CRED_MAGIC) 791 if (cred->magic != CRED_MAGIC)
793 return true; 792 return true;
794 if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers))
795 return true;
796#ifdef CONFIG_SECURITY_SELINUX 793#ifdef CONFIG_SECURITY_SELINUX
797 if (selinux_is_enabled()) { 794 if (selinux_is_enabled()) {
798 if ((unsigned long) cred->security < PAGE_SIZE) 795 if ((unsigned long) cred->security < PAGE_SIZE)
diff --git a/kernel/exit.c b/kernel/exit.c
index 7f2683a10ac4..eabca5a73a85 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -55,7 +55,6 @@
55#include <asm/unistd.h> 55#include <asm/unistd.h>
56#include <asm/pgtable.h> 56#include <asm/pgtable.h>
57#include <asm/mmu_context.h> 57#include <asm/mmu_context.h>
58#include "cred-internals.h"
59 58
60static void exit_mm(struct task_struct * tsk); 59static void exit_mm(struct task_struct * tsk);
61 60
diff --git a/kernel/module.c b/kernel/module.c
index b8a1e313448c..e2564580f3f1 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -724,16 +724,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
724 return -EFAULT; 724 return -EFAULT;
725 name[MODULE_NAME_LEN-1] = '\0'; 725 name[MODULE_NAME_LEN-1] = '\0';
726 726
727 /* Create stop_machine threads since free_module relies on 727 if (mutex_lock_interruptible(&module_mutex) != 0)
728 * a non-failing stop_machine call. */ 728 return -EINTR;
729 ret = stop_machine_create();
730 if (ret)
731 return ret;
732
733 if (mutex_lock_interruptible(&module_mutex) != 0) {
734 ret = -EINTR;
735 goto out_stop;
736 }
737 729
738 mod = find_module(name); 730 mod = find_module(name);
739 if (!mod) { 731 if (!mod) {
@@ -793,8 +785,6 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
793 785
794 out: 786 out:
795 mutex_unlock(&module_mutex); 787 mutex_unlock(&module_mutex);
796out_stop:
797 stop_machine_destroy();
798 return ret; 788 return ret;
799} 789}
800 790
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index 58df55bf83ed..2b676f3a0f26 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -669,7 +669,7 @@ static struct rcu_torture_ops sched_expedited_ops = {
669 .sync = synchronize_sched_expedited, 669 .sync = synchronize_sched_expedited,
670 .cb_barrier = NULL, 670 .cb_barrier = NULL,
671 .fqs = rcu_sched_force_quiescent_state, 671 .fqs = rcu_sched_force_quiescent_state,
672 .stats = rcu_expedited_torture_stats, 672 .stats = NULL,
673 .irq_capable = 1, 673 .irq_capable = 1,
674 .name = "sched_expedited" 674 .name = "sched_expedited"
675}; 675};
diff --git a/kernel/sched.c b/kernel/sched.c
index 6af210a7de70..b531d7934083 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -55,9 +55,9 @@
55#include <linux/cpu.h> 55#include <linux/cpu.h>
56#include <linux/cpuset.h> 56#include <linux/cpuset.h>
57#include <linux/percpu.h> 57#include <linux/percpu.h>
58#include <linux/kthread.h>
59#include <linux/proc_fs.h> 58#include <linux/proc_fs.h>
60#include <linux/seq_file.h> 59#include <linux/seq_file.h>
60#include <linux/stop_machine.h>
61#include <linux/sysctl.h> 61#include <linux/sysctl.h>
62#include <linux/syscalls.h> 62#include <linux/syscalls.h>
63#include <linux/times.h> 63#include <linux/times.h>
@@ -493,8 +493,11 @@ struct rq {
493 #define CPU_LOAD_IDX_MAX 5 493 #define CPU_LOAD_IDX_MAX 5
494 unsigned long cpu_load[CPU_LOAD_IDX_MAX]; 494 unsigned long cpu_load[CPU_LOAD_IDX_MAX];
495#ifdef CONFIG_NO_HZ 495#ifdef CONFIG_NO_HZ
496 u64 nohz_stamp;
496 unsigned char in_nohz_recently; 497 unsigned char in_nohz_recently;
497#endif 498#endif
499 unsigned int skip_clock_update;
500
498 /* capture load from *all* tasks on this cpu: */ 501 /* capture load from *all* tasks on this cpu: */
499 struct load_weight load; 502 struct load_weight load;
500 unsigned long nr_load_updates; 503 unsigned long nr_load_updates;
@@ -536,15 +539,13 @@ struct rq {
536 int post_schedule; 539 int post_schedule;
537 int active_balance; 540 int active_balance;
538 int push_cpu; 541 int push_cpu;
542 struct cpu_stop_work active_balance_work;
539 /* cpu of this runqueue: */ 543 /* cpu of this runqueue: */
540 int cpu; 544 int cpu;
541 int online; 545 int online;
542 546
543 unsigned long avg_load_per_task; 547 unsigned long avg_load_per_task;
544 548
545 struct task_struct *migration_thread;
546 struct list_head migration_queue;
547
548 u64 rt_avg; 549 u64 rt_avg;
549 u64 age_stamp; 550 u64 age_stamp;
550 u64 idle_stamp; 551 u64 idle_stamp;
@@ -592,6 +593,13 @@ static inline
592void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags) 593void check_preempt_curr(struct rq *rq, struct task_struct *p, int flags)
593{ 594{
594 rq->curr->sched_class->check_preempt_curr(rq, p, flags); 595 rq->curr->sched_class->check_preempt_curr(rq, p, flags);
596
597 /*
598 * A queue event has occurred, and we're going to schedule. In
599 * this case, we can save a useless back to back clock update.
600 */
601 if (test_tsk_need_resched(p))
602 rq->skip_clock_update = 1;
595} 603}
596 604
597static inline int cpu_of(struct rq *rq) 605static inline int cpu_of(struct rq *rq)
@@ -626,7 +634,8 @@ static inline int cpu_of(struct rq *rq)
626 634
627inline void update_rq_clock(struct rq *rq) 635inline void update_rq_clock(struct rq *rq)
628{ 636{
629 rq->clock = sched_clock_cpu(cpu_of(rq)); 637 if (!rq->skip_clock_update)
638 rq->clock = sched_clock_cpu(cpu_of(rq));
630} 639}
631 640
632/* 641/*
@@ -904,16 +913,12 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev)
904#endif /* __ARCH_WANT_UNLOCKED_CTXSW */ 913#endif /* __ARCH_WANT_UNLOCKED_CTXSW */
905 914
906/* 915/*
907 * Check whether the task is waking, we use this to synchronize against 916 * Check whether the task is waking, we use this to synchronize ->cpus_allowed
908 * ttwu() so that task_cpu() reports a stable number. 917 * against ttwu().
909 *
910 * We need to make an exception for PF_STARTING tasks because the fork
911 * path might require task_rq_lock() to work, eg. it can call
912 * set_cpus_allowed_ptr() from the cpuset clone_ns code.
913 */ 918 */
914static inline int task_is_waking(struct task_struct *p) 919static inline int task_is_waking(struct task_struct *p)
915{ 920{
916 return unlikely((p->state == TASK_WAKING) && !(p->flags & PF_STARTING)); 921 return unlikely(p->state == TASK_WAKING);
917} 922}
918 923
919/* 924/*
@@ -926,11 +931,9 @@ static inline struct rq *__task_rq_lock(struct task_struct *p)
926 struct rq *rq; 931 struct rq *rq;
927 932
928 for (;;) { 933 for (;;) {
929 while (task_is_waking(p))
930 cpu_relax();
931 rq = task_rq(p); 934 rq = task_rq(p);
932 raw_spin_lock(&rq->lock); 935 raw_spin_lock(&rq->lock);
933 if (likely(rq == task_rq(p) && !task_is_waking(p))) 936 if (likely(rq == task_rq(p)))
934 return rq; 937 return rq;
935 raw_spin_unlock(&rq->lock); 938 raw_spin_unlock(&rq->lock);
936 } 939 }
@@ -947,12 +950,10 @@ static struct rq *task_rq_lock(struct task_struct *p, unsigned long *flags)
947 struct rq *rq; 950 struct rq *rq;
948 951
949 for (;;) { 952 for (;;) {
950 while (task_is_waking(p))
951 cpu_relax();
952 local_irq_save(*flags); 953 local_irq_save(*flags);
953 rq = task_rq(p); 954 rq = task_rq(p);
954 raw_spin_lock(&rq->lock); 955 raw_spin_lock(&rq->lock);
955 if (likely(rq == task_rq(p) && !task_is_waking(p))) 956 if (likely(rq == task_rq(p)))
956 return rq; 957 return rq;
957 raw_spin_unlock_irqrestore(&rq->lock, *flags); 958 raw_spin_unlock_irqrestore(&rq->lock, *flags);
958 } 959 }
@@ -1229,6 +1230,17 @@ void wake_up_idle_cpu(int cpu)
1229 if (!tsk_is_polling(rq->idle)) 1230 if (!tsk_is_polling(rq->idle))
1230 smp_send_reschedule(cpu); 1231 smp_send_reschedule(cpu);
1231} 1232}
1233
1234int nohz_ratelimit(int cpu)
1235{
1236 struct rq *rq = cpu_rq(cpu);
1237 u64 diff = rq->clock - rq->nohz_stamp;
1238
1239 rq->nohz_stamp = rq->clock;
1240
1241 return diff < (NSEC_PER_SEC / HZ) >> 1;
1242}
1243
1232#endif /* CONFIG_NO_HZ */ 1244#endif /* CONFIG_NO_HZ */
1233 1245
1234static u64 sched_avg_period(void) 1246static u64 sched_avg_period(void)
@@ -1771,8 +1783,6 @@ static void double_rq_lock(struct rq *rq1, struct rq *rq2)
1771 raw_spin_lock_nested(&rq1->lock, SINGLE_DEPTH_NESTING); 1783 raw_spin_lock_nested(&rq1->lock, SINGLE_DEPTH_NESTING);
1772 } 1784 }
1773 } 1785 }
1774 update_rq_clock(rq1);
1775 update_rq_clock(rq2);
1776} 1786}
1777 1787
1778/* 1788/*
@@ -1803,7 +1813,7 @@ static void cfs_rq_set_shares(struct cfs_rq *cfs_rq, unsigned long shares)
1803} 1813}
1804#endif 1814#endif
1805 1815
1806static void calc_load_account_active(struct rq *this_rq); 1816static void calc_load_account_idle(struct rq *this_rq);
1807static void update_sysctl(void); 1817static void update_sysctl(void);
1808static int get_update_sysctl_factor(void); 1818static int get_update_sysctl_factor(void);
1809 1819
@@ -1860,62 +1870,43 @@ static void set_load_weight(struct task_struct *p)
1860 p->se.load.inv_weight = prio_to_wmult[p->static_prio - MAX_RT_PRIO]; 1870 p->se.load.inv_weight = prio_to_wmult[p->static_prio - MAX_RT_PRIO];
1861} 1871}
1862 1872
1863static void update_avg(u64 *avg, u64 sample) 1873static void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
1864{ 1874{
1865 s64 diff = sample - *avg; 1875 update_rq_clock(rq);
1866 *avg += diff >> 3;
1867}
1868
1869static void
1870enqueue_task(struct rq *rq, struct task_struct *p, int wakeup, bool head)
1871{
1872 if (wakeup)
1873 p->se.start_runtime = p->se.sum_exec_runtime;
1874
1875 sched_info_queued(p); 1876 sched_info_queued(p);
1876 p->sched_class->enqueue_task(rq, p, wakeup, head); 1877 p->sched_class->enqueue_task(rq, p, flags);
1877 p->se.on_rq = 1; 1878 p->se.on_rq = 1;
1878} 1879}
1879 1880
1880static void dequeue_task(struct rq *rq, struct task_struct *p, int sleep) 1881static void dequeue_task(struct rq *rq, struct task_struct *p, int flags)
1881{ 1882{
1882 if (sleep) { 1883 update_rq_clock(rq);
1883 if (p->se.last_wakeup) {
1884 update_avg(&p->se.avg_overlap,
1885 p->se.sum_exec_runtime - p->se.last_wakeup);
1886 p->se.last_wakeup = 0;
1887 } else {
1888 update_avg(&p->se.avg_wakeup,
1889 sysctl_sched_wakeup_granularity);
1890 }
1891 }
1892
1893 sched_info_dequeued(p); 1884 sched_info_dequeued(p);
1894 p->sched_class->dequeue_task(rq, p, sleep); 1885 p->sched_class->dequeue_task(rq, p, flags);
1895 p->se.on_rq = 0; 1886 p->se.on_rq = 0;
1896} 1887}
1897 1888
1898/* 1889/*
1899 * activate_task - move a task to the runqueue. 1890 * activate_task - move a task to the runqueue.
1900 */ 1891 */
1901static void activate_task(struct rq *rq, struct task_struct *p, int wakeup) 1892static void activate_task(struct rq *rq, struct task_struct *p, int flags)
1902{ 1893{
1903 if (task_contributes_to_load(p)) 1894 if (task_contributes_to_load(p))
1904 rq->nr_uninterruptible--; 1895 rq->nr_uninterruptible--;
1905 1896
1906 enqueue_task(rq, p, wakeup, false); 1897 enqueue_task(rq, p, flags);
1907 inc_nr_running(rq); 1898 inc_nr_running(rq);
1908} 1899}
1909 1900
1910/* 1901/*
1911 * deactivate_task - remove a task from the runqueue. 1902 * deactivate_task - remove a task from the runqueue.
1912 */ 1903 */
1913static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep) 1904static void deactivate_task(struct rq *rq, struct task_struct *p, int flags)
1914{ 1905{
1915 if (task_contributes_to_load(p)) 1906 if (task_contributes_to_load(p))
1916 rq->nr_uninterruptible++; 1907 rq->nr_uninterruptible++;
1917 1908
1918 dequeue_task(rq, p, sleep); 1909 dequeue_task(rq, p, flags);
1919 dec_nr_running(rq); 1910 dec_nr_running(rq);
1920} 1911}
1921 1912
@@ -2044,21 +2035,18 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu)
2044 __set_task_cpu(p, new_cpu); 2035 __set_task_cpu(p, new_cpu);
2045} 2036}
2046 2037
2047struct migration_req { 2038struct migration_arg {
2048 struct list_head list;
2049
2050 struct task_struct *task; 2039 struct task_struct *task;
2051 int dest_cpu; 2040 int dest_cpu;
2052
2053 struct completion done;
2054}; 2041};
2055 2042
2043static int migration_cpu_stop(void *data);
2044
2056/* 2045/*
2057 * The task's runqueue lock must be held. 2046 * The task's runqueue lock must be held.
2058 * Returns true if you have to wait for migration thread. 2047 * Returns true if you have to wait for migration thread.
2059 */ 2048 */
2060static int 2049static bool migrate_task(struct task_struct *p, int dest_cpu)
2061migrate_task(struct task_struct *p, int dest_cpu, struct migration_req *req)
2062{ 2050{
2063 struct rq *rq = task_rq(p); 2051 struct rq *rq = task_rq(p);
2064 2052
@@ -2066,15 +2054,7 @@ migrate_task(struct task_struct *p, int dest_cpu, struct migration_req *req)
2066 * If the task is not on a runqueue (and not running), then 2054 * If the task is not on a runqueue (and not running), then
2067 * the next wake-up will properly place the task. 2055 * the next wake-up will properly place the task.
2068 */ 2056 */
2069 if (!p->se.on_rq && !task_running(rq, p)) 2057 return p->se.on_rq || task_running(rq, p);
2070 return 0;
2071
2072 init_completion(&req->done);
2073 req->task = p;
2074 req->dest_cpu = dest_cpu;
2075 list_add(&req->list, &rq->migration_queue);
2076
2077 return 1;
2078} 2058}
2079 2059
2080/* 2060/*
@@ -2175,7 +2155,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state)
2175 * just go back and repeat. 2155 * just go back and repeat.
2176 */ 2156 */
2177 rq = task_rq_lock(p, &flags); 2157 rq = task_rq_lock(p, &flags);
2178 trace_sched_wait_task(rq, p); 2158 trace_sched_wait_task(p);
2179 running = task_running(rq, p); 2159 running = task_running(rq, p);
2180 on_rq = p->se.on_rq; 2160 on_rq = p->se.on_rq;
2181 ncsw = 0; 2161 ncsw = 0;
@@ -2273,6 +2253,9 @@ void task_oncpu_function_call(struct task_struct *p,
2273} 2253}
2274 2254
2275#ifdef CONFIG_SMP 2255#ifdef CONFIG_SMP
2256/*
2257 * ->cpus_allowed is protected by either TASK_WAKING or rq->lock held.
2258 */
2276static int select_fallback_rq(int cpu, struct task_struct *p) 2259static int select_fallback_rq(int cpu, struct task_struct *p)
2277{ 2260{
2278 int dest_cpu; 2261 int dest_cpu;
@@ -2289,12 +2272,8 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
2289 return dest_cpu; 2272 return dest_cpu;
2290 2273
2291 /* No more Mr. Nice Guy. */ 2274 /* No more Mr. Nice Guy. */
2292 if (dest_cpu >= nr_cpu_ids) { 2275 if (unlikely(dest_cpu >= nr_cpu_ids)) {
2293 rcu_read_lock(); 2276 dest_cpu = cpuset_cpus_allowed_fallback(p);
2294 cpuset_cpus_allowed_locked(p, &p->cpus_allowed);
2295 rcu_read_unlock();
2296 dest_cpu = cpumask_any_and(cpu_active_mask, &p->cpus_allowed);
2297
2298 /* 2277 /*
2299 * Don't tell them about moving exiting tasks or 2278 * Don't tell them about moving exiting tasks or
2300 * kernel threads (both mm NULL), since they never 2279 * kernel threads (both mm NULL), since they never
@@ -2311,17 +2290,12 @@ static int select_fallback_rq(int cpu, struct task_struct *p)
2311} 2290}
2312 2291
2313/* 2292/*
2314 * Gets called from 3 sites (exec, fork, wakeup), since it is called without 2293 * The caller (fork, wakeup) owns TASK_WAKING, ->cpus_allowed is stable.
2315 * holding rq->lock we need to ensure ->cpus_allowed is stable, this is done
2316 * by:
2317 *
2318 * exec: is unstable, retry loop
2319 * fork & wake-up: serialize ->cpus_allowed against TASK_WAKING
2320 */ 2294 */
2321static inline 2295static inline
2322int select_task_rq(struct task_struct *p, int sd_flags, int wake_flags) 2296int select_task_rq(struct rq *rq, struct task_struct *p, int sd_flags, int wake_flags)
2323{ 2297{
2324 int cpu = p->sched_class->select_task_rq(p, sd_flags, wake_flags); 2298 int cpu = p->sched_class->select_task_rq(rq, p, sd_flags, wake_flags);
2325 2299
2326 /* 2300 /*
2327 * In order not to call set_task_cpu() on a blocking task we need 2301 * In order not to call set_task_cpu() on a blocking task we need
@@ -2339,6 +2313,12 @@ int select_task_rq(struct task_struct *p, int sd_flags, int wake_flags)
2339 2313
2340 return cpu; 2314 return cpu;
2341} 2315}
2316
2317static void update_avg(u64 *avg, u64 sample)
2318{
2319 s64 diff = sample - *avg;
2320 *avg += diff >> 3;
2321}
2342#endif 2322#endif
2343 2323
2344/*** 2324/***
@@ -2360,16 +2340,13 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
2360{ 2340{
2361 int cpu, orig_cpu, this_cpu, success = 0; 2341 int cpu, orig_cpu, this_cpu, success = 0;
2362 unsigned long flags; 2342 unsigned long flags;
2343 unsigned long en_flags = ENQUEUE_WAKEUP;
2363 struct rq *rq; 2344 struct rq *rq;
2364 2345
2365 if (!sched_feat(SYNC_WAKEUPS))
2366 wake_flags &= ~WF_SYNC;
2367
2368 this_cpu = get_cpu(); 2346 this_cpu = get_cpu();
2369 2347
2370 smp_wmb(); 2348 smp_wmb();
2371 rq = task_rq_lock(p, &flags); 2349 rq = task_rq_lock(p, &flags);
2372 update_rq_clock(rq);
2373 if (!(p->state & state)) 2350 if (!(p->state & state))
2374 goto out; 2351 goto out;
2375 2352
@@ -2389,28 +2366,26 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
2389 * 2366 *
2390 * First fix up the nr_uninterruptible count: 2367 * First fix up the nr_uninterruptible count:
2391 */ 2368 */
2392 if (task_contributes_to_load(p)) 2369 if (task_contributes_to_load(p)) {
2393 rq->nr_uninterruptible--; 2370 if (likely(cpu_online(orig_cpu)))
2371 rq->nr_uninterruptible--;
2372 else
2373 this_rq()->nr_uninterruptible--;
2374 }
2394 p->state = TASK_WAKING; 2375 p->state = TASK_WAKING;
2395 2376
2396 if (p->sched_class->task_waking) 2377 if (p->sched_class->task_waking) {
2397 p->sched_class->task_waking(rq, p); 2378 p->sched_class->task_waking(rq, p);
2379 en_flags |= ENQUEUE_WAKING;
2380 }
2398 2381
2399 __task_rq_unlock(rq); 2382 cpu = select_task_rq(rq, p, SD_BALANCE_WAKE, wake_flags);
2400 2383 if (cpu != orig_cpu)
2401 cpu = select_task_rq(p, SD_BALANCE_WAKE, wake_flags);
2402 if (cpu != orig_cpu) {
2403 /*
2404 * Since we migrate the task without holding any rq->lock,
2405 * we need to be careful with task_rq_lock(), since that
2406 * might end up locking an invalid rq.
2407 */
2408 set_task_cpu(p, cpu); 2384 set_task_cpu(p, cpu);
2409 } 2385 __task_rq_unlock(rq);
2410 2386
2411 rq = cpu_rq(cpu); 2387 rq = cpu_rq(cpu);
2412 raw_spin_lock(&rq->lock); 2388 raw_spin_lock(&rq->lock);
2413 update_rq_clock(rq);
2414 2389
2415 /* 2390 /*
2416 * We migrated the task without holding either rq->lock, however 2391 * We migrated the task without holding either rq->lock, however
@@ -2438,36 +2413,20 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
2438 2413
2439out_activate: 2414out_activate:
2440#endif /* CONFIG_SMP */ 2415#endif /* CONFIG_SMP */
2441 schedstat_inc(p, se.nr_wakeups); 2416 schedstat_inc(p, se.statistics.nr_wakeups);
2442 if (wake_flags & WF_SYNC) 2417 if (wake_flags & WF_SYNC)
2443 schedstat_inc(p, se.nr_wakeups_sync); 2418 schedstat_inc(p, se.statistics.nr_wakeups_sync);
2444 if (orig_cpu != cpu) 2419 if (orig_cpu != cpu)
2445 schedstat_inc(p, se.nr_wakeups_migrate); 2420 schedstat_inc(p, se.statistics.nr_wakeups_migrate);
2446 if (cpu == this_cpu) 2421 if (cpu == this_cpu)
2447 schedstat_inc(p, se.nr_wakeups_local); 2422 schedstat_inc(p, se.statistics.nr_wakeups_local);
2448 else 2423 else
2449 schedstat_inc(p, se.nr_wakeups_remote); 2424 schedstat_inc(p, se.statistics.nr_wakeups_remote);
2450 activate_task(rq, p, 1); 2425 activate_task(rq, p, en_flags);
2451 success = 1; 2426 success = 1;
2452 2427
2453 /*
2454 * Only attribute actual wakeups done by this task.
2455 */
2456 if (!in_interrupt()) {
2457 struct sched_entity *se = &current->se;
2458 u64 sample = se->sum_exec_runtime;
2459
2460 if (se->last_wakeup)
2461 sample -= se->last_wakeup;
2462 else
2463 sample -= se->start_runtime;
2464 update_avg(&se->avg_wakeup, sample);
2465
2466 se->last_wakeup = se->sum_exec_runtime;
2467 }
2468
2469out_running: 2428out_running:
2470 trace_sched_wakeup(rq, p, success); 2429 trace_sched_wakeup(p, success);
2471 check_preempt_curr(rq, p, wake_flags); 2430 check_preempt_curr(rq, p, wake_flags);
2472 2431
2473 p->state = TASK_RUNNING; 2432 p->state = TASK_RUNNING;
@@ -2527,42 +2486,9 @@ static void __sched_fork(struct task_struct *p)
2527 p->se.sum_exec_runtime = 0; 2486 p->se.sum_exec_runtime = 0;
2528 p->se.prev_sum_exec_runtime = 0; 2487 p->se.prev_sum_exec_runtime = 0;
2529 p->se.nr_migrations = 0; 2488 p->se.nr_migrations = 0;
2530 p->se.last_wakeup = 0;
2531 p->se.avg_overlap = 0;
2532 p->se.start_runtime = 0;
2533 p->se.avg_wakeup = sysctl_sched_wakeup_granularity;
2534 2489
2535#ifdef CONFIG_SCHEDSTATS 2490#ifdef CONFIG_SCHEDSTATS
2536 p->se.wait_start = 0; 2491 memset(&p->se.statistics, 0, sizeof(p->se.statistics));
2537 p->se.wait_max = 0;
2538 p->se.wait_count = 0;
2539 p->se.wait_sum = 0;
2540
2541 p->se.sleep_start = 0;
2542 p->se.sleep_max = 0;
2543 p->se.sum_sleep_runtime = 0;
2544
2545 p->se.block_start = 0;
2546 p->se.block_max = 0;
2547 p->se.exec_max = 0;
2548 p->se.slice_max = 0;
2549
2550 p->se.nr_migrations_cold = 0;
2551 p->se.nr_failed_migrations_affine = 0;
2552 p->se.nr_failed_migrations_running = 0;
2553 p->se.nr_failed_migrations_hot = 0;
2554 p->se.nr_forced_migrations = 0;
2555
2556 p->se.nr_wakeups = 0;
2557 p->se.nr_wakeups_sync = 0;
2558 p->se.nr_wakeups_migrate = 0;
2559 p->se.nr_wakeups_local = 0;
2560 p->se.nr_wakeups_remote = 0;
2561 p->se.nr_wakeups_affine = 0;
2562 p->se.nr_wakeups_affine_attempts = 0;
2563 p->se.nr_wakeups_passive = 0;
2564 p->se.nr_wakeups_idle = 0;
2565
2566#endif 2492#endif
2567 2493
2568 INIT_LIST_HEAD(&p->rt.run_list); 2494 INIT_LIST_HEAD(&p->rt.run_list);
@@ -2583,11 +2509,11 @@ void sched_fork(struct task_struct *p, int clone_flags)
2583 2509
2584 __sched_fork(p); 2510 __sched_fork(p);
2585 /* 2511 /*
2586 * We mark the process as waking here. This guarantees that 2512 * We mark the process as running here. This guarantees that
2587 * nobody will actually run it, and a signal or other external 2513 * nobody will actually run it, and a signal or other external
2588 * event cannot wake it up and insert it on the runqueue either. 2514 * event cannot wake it up and insert it on the runqueue either.
2589 */ 2515 */
2590 p->state = TASK_WAKING; 2516 p->state = TASK_RUNNING;
2591 2517
2592 /* 2518 /*
2593 * Revert to default priority/policy on fork if requested. 2519 * Revert to default priority/policy on fork if requested.
@@ -2654,31 +2580,27 @@ void wake_up_new_task(struct task_struct *p, unsigned long clone_flags)
2654 int cpu __maybe_unused = get_cpu(); 2580 int cpu __maybe_unused = get_cpu();
2655 2581
2656#ifdef CONFIG_SMP 2582#ifdef CONFIG_SMP
2583 rq = task_rq_lock(p, &flags);
2584 p->state = TASK_WAKING;
2585
2657 /* 2586 /*
2658 * Fork balancing, do it here and not earlier because: 2587 * Fork balancing, do it here and not earlier because:
2659 * - cpus_allowed can change in the fork path 2588 * - cpus_allowed can change in the fork path
2660 * - any previously selected cpu might disappear through hotplug 2589 * - any previously selected cpu might disappear through hotplug
2661 * 2590 *
2662 * We still have TASK_WAKING but PF_STARTING is gone now, meaning 2591 * We set TASK_WAKING so that select_task_rq() can drop rq->lock
2663 * ->cpus_allowed is stable, we have preemption disabled, meaning 2592 * without people poking at ->cpus_allowed.
2664 * cpu_online_mask is stable.
2665 */ 2593 */
2666 cpu = select_task_rq(p, SD_BALANCE_FORK, 0); 2594 cpu = select_task_rq(rq, p, SD_BALANCE_FORK, 0);
2667 set_task_cpu(p, cpu); 2595 set_task_cpu(p, cpu);
2668#endif
2669 2596
2670 /*
2671 * Since the task is not on the rq and we still have TASK_WAKING set
2672 * nobody else will migrate this task.
2673 */
2674 rq = cpu_rq(cpu);
2675 raw_spin_lock_irqsave(&rq->lock, flags);
2676
2677 BUG_ON(p->state != TASK_WAKING);
2678 p->state = TASK_RUNNING; 2597 p->state = TASK_RUNNING;
2679 update_rq_clock(rq); 2598 task_rq_unlock(rq, &flags);
2599#endif
2600
2601 rq = task_rq_lock(p, &flags);
2680 activate_task(rq, p, 0); 2602 activate_task(rq, p, 0);
2681 trace_sched_wakeup_new(rq, p, 1); 2603 trace_sched_wakeup_new(p, 1);
2682 check_preempt_curr(rq, p, WF_FORK); 2604 check_preempt_curr(rq, p, WF_FORK);
2683#ifdef CONFIG_SMP 2605#ifdef CONFIG_SMP
2684 if (p->sched_class->task_woken) 2606 if (p->sched_class->task_woken)
@@ -2898,7 +2820,7 @@ context_switch(struct rq *rq, struct task_struct *prev,
2898 struct mm_struct *mm, *oldmm; 2820 struct mm_struct *mm, *oldmm;
2899 2821
2900 prepare_task_switch(rq, prev, next); 2822 prepare_task_switch(rq, prev, next);
2901 trace_sched_switch(rq, prev, next); 2823 trace_sched_switch(prev, next);
2902 mm = next->mm; 2824 mm = next->mm;
2903 oldmm = prev->active_mm; 2825 oldmm = prev->active_mm;
2904 /* 2826 /*
@@ -3015,6 +2937,61 @@ static unsigned long calc_load_update;
3015unsigned long avenrun[3]; 2937unsigned long avenrun[3];
3016EXPORT_SYMBOL(avenrun); 2938EXPORT_SYMBOL(avenrun);
3017 2939
2940static long calc_load_fold_active(struct rq *this_rq)
2941{
2942 long nr_active, delta = 0;
2943
2944 nr_active = this_rq->nr_running;
2945 nr_active += (long) this_rq->nr_uninterruptible;
2946
2947 if (nr_active != this_rq->calc_load_active) {
2948 delta = nr_active - this_rq->calc_load_active;
2949 this_rq->calc_load_active = nr_active;
2950 }
2951
2952 return delta;
2953}
2954
2955#ifdef CONFIG_NO_HZ
2956/*
2957 * For NO_HZ we delay the active fold to the next LOAD_FREQ update.
2958 *
2959 * When making the ILB scale, we should try to pull this in as well.
2960 */
2961static atomic_long_t calc_load_tasks_idle;
2962
2963static void calc_load_account_idle(struct rq *this_rq)
2964{
2965 long delta;
2966
2967 delta = calc_load_fold_active(this_rq);
2968 if (delta)
2969 atomic_long_add(delta, &calc_load_tasks_idle);
2970}
2971
2972static long calc_load_fold_idle(void)
2973{
2974 long delta = 0;
2975
2976 /*
2977 * Its got a race, we don't care...
2978 */
2979 if (atomic_long_read(&calc_load_tasks_idle))
2980 delta = atomic_long_xchg(&calc_load_tasks_idle, 0);
2981
2982 return delta;
2983}
2984#else
2985static void calc_load_account_idle(struct rq *this_rq)
2986{
2987}
2988
2989static inline long calc_load_fold_idle(void)
2990{
2991 return 0;
2992}
2993#endif
2994
3018/** 2995/**
3019 * get_avenrun - get the load average array 2996 * get_avenrun - get the load average array
3020 * @loads: pointer to dest load array 2997 * @loads: pointer to dest load array
@@ -3061,20 +3038,22 @@ void calc_global_load(void)
3061} 3038}
3062 3039
3063/* 3040/*
3064 * Either called from update_cpu_load() or from a cpu going idle 3041 * Called from update_cpu_load() to periodically update this CPU's
3042 * active count.
3065 */ 3043 */
3066static void calc_load_account_active(struct rq *this_rq) 3044static void calc_load_account_active(struct rq *this_rq)
3067{ 3045{
3068 long nr_active, delta; 3046 long delta;
3069 3047
3070 nr_active = this_rq->nr_running; 3048 if (time_before(jiffies, this_rq->calc_load_update))
3071 nr_active += (long) this_rq->nr_uninterruptible; 3049 return;
3072 3050
3073 if (nr_active != this_rq->calc_load_active) { 3051 delta = calc_load_fold_active(this_rq);
3074 delta = nr_active - this_rq->calc_load_active; 3052 delta += calc_load_fold_idle();
3075 this_rq->calc_load_active = nr_active; 3053 if (delta)
3076 atomic_long_add(delta, &calc_load_tasks); 3054 atomic_long_add(delta, &calc_load_tasks);
3077 } 3055
3056 this_rq->calc_load_update += LOAD_FREQ;
3078} 3057}
3079 3058
3080/* 3059/*
@@ -3106,10 +3085,7 @@ static void update_cpu_load(struct rq *this_rq)
3106 this_rq->cpu_load[i] = (old_load*(scale-1) + new_load) >> i; 3085 this_rq->cpu_load[i] = (old_load*(scale-1) + new_load) >> i;
3107 } 3086 }
3108 3087
3109 if (time_after_eq(jiffies, this_rq->calc_load_update)) { 3088 calc_load_account_active(this_rq);
3110 this_rq->calc_load_update += LOAD_FREQ;
3111 calc_load_account_active(this_rq);
3112 }
3113} 3089}
3114 3090
3115#ifdef CONFIG_SMP 3091#ifdef CONFIG_SMP
@@ -3121,44 +3097,27 @@ static void update_cpu_load(struct rq *this_rq)
3121void sched_exec(void) 3097void sched_exec(void)
3122{ 3098{
3123 struct task_struct *p = current; 3099 struct task_struct *p = current;
3124 struct migration_req req;
3125 int dest_cpu, this_cpu;
3126 unsigned long flags; 3100 unsigned long flags;
3127 struct rq *rq; 3101 struct rq *rq;
3128 3102 int dest_cpu;
3129again:
3130 this_cpu = get_cpu();
3131 dest_cpu = select_task_rq(p, SD_BALANCE_EXEC, 0);
3132 if (dest_cpu == this_cpu) {
3133 put_cpu();
3134 return;
3135 }
3136 3103
3137 rq = task_rq_lock(p, &flags); 3104 rq = task_rq_lock(p, &flags);
3138 put_cpu(); 3105 dest_cpu = p->sched_class->select_task_rq(rq, p, SD_BALANCE_EXEC, 0);
3106 if (dest_cpu == smp_processor_id())
3107 goto unlock;
3139 3108
3140 /* 3109 /*
3141 * select_task_rq() can race against ->cpus_allowed 3110 * select_task_rq() can race against ->cpus_allowed
3142 */ 3111 */
3143 if (!cpumask_test_cpu(dest_cpu, &p->cpus_allowed) 3112 if (cpumask_test_cpu(dest_cpu, &p->cpus_allowed) &&
3144 || unlikely(!cpu_active(dest_cpu))) { 3113 likely(cpu_active(dest_cpu)) && migrate_task(p, dest_cpu)) {
3145 task_rq_unlock(rq, &flags); 3114 struct migration_arg arg = { p, dest_cpu };
3146 goto again;
3147 }
3148 3115
3149 /* force the process onto the specified CPU */
3150 if (migrate_task(p, dest_cpu, &req)) {
3151 /* Need to wait for migration thread (might exit: take ref). */
3152 struct task_struct *mt = rq->migration_thread;
3153
3154 get_task_struct(mt);
3155 task_rq_unlock(rq, &flags); 3116 task_rq_unlock(rq, &flags);
3156 wake_up_process(mt); 3117 stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
3157 put_task_struct(mt);
3158 wait_for_completion(&req.done);
3159
3160 return; 3118 return;
3161 } 3119 }
3120unlock:
3162 task_rq_unlock(rq, &flags); 3121 task_rq_unlock(rq, &flags);
3163} 3122}
3164 3123
@@ -3630,23 +3589,9 @@ static inline void schedule_debug(struct task_struct *prev)
3630 3589
3631static void put_prev_task(struct rq *rq, struct task_struct *prev) 3590static void put_prev_task(struct rq *rq, struct task_struct *prev)
3632{ 3591{
3633 if (prev->state == TASK_RUNNING) { 3592 if (prev->se.on_rq)
3634 u64 runtime = prev->se.sum_exec_runtime; 3593 update_rq_clock(rq);
3635 3594 rq->skip_clock_update = 0;
3636 runtime -= prev->se.prev_sum_exec_runtime;
3637 runtime = min_t(u64, runtime, 2*sysctl_sched_migration_cost);
3638
3639 /*
3640 * In order to avoid avg_overlap growing stale when we are
3641 * indeed overlapping and hence not getting put to sleep, grow
3642 * the avg_overlap on preemption.
3643 *
3644 * We use the average preemption runtime because that
3645 * correlates to the amount of cache footprint a task can
3646 * build up.
3647 */
3648 update_avg(&prev->se.avg_overlap, runtime);
3649 }
3650 prev->sched_class->put_prev_task(rq, prev); 3595 prev->sched_class->put_prev_task(rq, prev);
3651} 3596}
3652 3597
@@ -3709,14 +3654,13 @@ need_resched_nonpreemptible:
3709 hrtick_clear(rq); 3654 hrtick_clear(rq);
3710 3655
3711 raw_spin_lock_irq(&rq->lock); 3656 raw_spin_lock_irq(&rq->lock);
3712 update_rq_clock(rq);
3713 clear_tsk_need_resched(prev); 3657 clear_tsk_need_resched(prev);
3714 3658
3715 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { 3659 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
3716 if (unlikely(signal_pending_state(prev->state, prev))) 3660 if (unlikely(signal_pending_state(prev->state, prev)))
3717 prev->state = TASK_RUNNING; 3661 prev->state = TASK_RUNNING;
3718 else 3662 else
3719 deactivate_task(rq, prev, 1); 3663 deactivate_task(rq, prev, DEQUEUE_SLEEP);
3720 switch_count = &prev->nvcsw; 3664 switch_count = &prev->nvcsw;
3721 } 3665 }
3722 3666
@@ -4039,8 +3983,7 @@ do_wait_for_common(struct completion *x, long timeout, int state)
4039 if (!x->done) { 3983 if (!x->done) {
4040 DECLARE_WAITQUEUE(wait, current); 3984 DECLARE_WAITQUEUE(wait, current);
4041 3985
4042 wait.flags |= WQ_FLAG_EXCLUSIVE; 3986 __add_wait_queue_tail_exclusive(&x->wait, &wait);
4043 __add_wait_queue_tail(&x->wait, &wait);
4044 do { 3987 do {
4045 if (signal_pending_state(state, current)) { 3988 if (signal_pending_state(state, current)) {
4046 timeout = -ERESTARTSYS; 3989 timeout = -ERESTARTSYS;
@@ -4266,7 +4209,6 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
4266 BUG_ON(prio < 0 || prio > MAX_PRIO); 4209 BUG_ON(prio < 0 || prio > MAX_PRIO);
4267 4210
4268 rq = task_rq_lock(p, &flags); 4211 rq = task_rq_lock(p, &flags);
4269 update_rq_clock(rq);
4270 4212
4271 oldprio = p->prio; 4213 oldprio = p->prio;
4272 prev_class = p->sched_class; 4214 prev_class = p->sched_class;
@@ -4287,7 +4229,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
4287 if (running) 4229 if (running)
4288 p->sched_class->set_curr_task(rq); 4230 p->sched_class->set_curr_task(rq);
4289 if (on_rq) { 4231 if (on_rq) {
4290 enqueue_task(rq, p, 0, oldprio < prio); 4232 enqueue_task(rq, p, oldprio < prio ? ENQUEUE_HEAD : 0);
4291 4233
4292 check_class_changed(rq, p, prev_class, oldprio, running); 4234 check_class_changed(rq, p, prev_class, oldprio, running);
4293 } 4235 }
@@ -4309,7 +4251,6 @@ void set_user_nice(struct task_struct *p, long nice)
4309 * the task might be in the middle of scheduling on another CPU. 4251 * the task might be in the middle of scheduling on another CPU.
4310 */ 4252 */
4311 rq = task_rq_lock(p, &flags); 4253 rq = task_rq_lock(p, &flags);
4312 update_rq_clock(rq);
4313 /* 4254 /*
4314 * The RT priorities are set via sched_setscheduler(), but we still 4255 * The RT priorities are set via sched_setscheduler(), but we still
4315 * allow the 'normal' nice value to be set - but as expected 4256 * allow the 'normal' nice value to be set - but as expected
@@ -4331,7 +4272,7 @@ void set_user_nice(struct task_struct *p, long nice)
4331 delta = p->prio - old_prio; 4272 delta = p->prio - old_prio;
4332 4273
4333 if (on_rq) { 4274 if (on_rq) {
4334 enqueue_task(rq, p, 0, false); 4275 enqueue_task(rq, p, 0);
4335 /* 4276 /*
4336 * If the task increased its priority or is running and 4277 * If the task increased its priority or is running and
4337 * lowered its priority, then reschedule its CPU: 4278 * lowered its priority, then reschedule its CPU:
@@ -4592,7 +4533,6 @@ recheck:
4592 raw_spin_unlock_irqrestore(&p->pi_lock, flags); 4533 raw_spin_unlock_irqrestore(&p->pi_lock, flags);
4593 goto recheck; 4534 goto recheck;
4594 } 4535 }
4595 update_rq_clock(rq);
4596 on_rq = p->se.on_rq; 4536 on_rq = p->se.on_rq;
4597 running = task_current(rq, p); 4537 running = task_current(rq, p);
4598 if (on_rq) 4538 if (on_rq)
@@ -5329,17 +5269,15 @@ static inline void sched_init_granularity(void)
5329/* 5269/*
5330 * This is how migration works: 5270 * This is how migration works:
5331 * 5271 *
5332 * 1) we queue a struct migration_req structure in the source CPU's 5272 * 1) we invoke migration_cpu_stop() on the target CPU using
5333 * runqueue and wake up that CPU's migration thread. 5273 * stop_one_cpu().
5334 * 2) we down() the locked semaphore => thread blocks. 5274 * 2) stopper starts to run (implicitly forcing the migrated thread
5335 * 3) migration thread wakes up (implicitly it forces the migrated 5275 * off the CPU)
5336 * thread off the CPU) 5276 * 3) it checks whether the migrated task is still in the wrong runqueue.
5337 * 4) it gets the migration request and checks whether the migrated 5277 * 4) if it's in the wrong runqueue then the migration thread removes
5338 * task is still in the wrong runqueue.
5339 * 5) if it's in the wrong runqueue then the migration thread removes
5340 * it and puts it into the right queue. 5278 * it and puts it into the right queue.
5341 * 6) migration thread up()s the semaphore. 5279 * 5) stopper completes and stop_one_cpu() returns and the migration
5342 * 7) we wake up and the migration is done. 5280 * is done.
5343 */ 5281 */
5344 5282
5345/* 5283/*
@@ -5353,12 +5291,23 @@ static inline void sched_init_granularity(void)
5353 */ 5291 */
5354int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask) 5292int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
5355{ 5293{
5356 struct migration_req req;
5357 unsigned long flags; 5294 unsigned long flags;
5358 struct rq *rq; 5295 struct rq *rq;
5296 unsigned int dest_cpu;
5359 int ret = 0; 5297 int ret = 0;
5360 5298
5299 /*
5300 * Serialize against TASK_WAKING so that ttwu() and wunt() can
5301 * drop the rq->lock and still rely on ->cpus_allowed.
5302 */
5303again:
5304 while (task_is_waking(p))
5305 cpu_relax();
5361 rq = task_rq_lock(p, &flags); 5306 rq = task_rq_lock(p, &flags);
5307 if (task_is_waking(p)) {
5308 task_rq_unlock(rq, &flags);
5309 goto again;
5310 }
5362 5311
5363 if (!cpumask_intersects(new_mask, cpu_active_mask)) { 5312 if (!cpumask_intersects(new_mask, cpu_active_mask)) {
5364 ret = -EINVAL; 5313 ret = -EINVAL;
@@ -5382,15 +5331,12 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
5382 if (cpumask_test_cpu(task_cpu(p), new_mask)) 5331 if (cpumask_test_cpu(task_cpu(p), new_mask))
5383 goto out; 5332 goto out;
5384 5333
5385 if (migrate_task(p, cpumask_any_and(cpu_active_mask, new_mask), &req)) { 5334 dest_cpu = cpumask_any_and(cpu_active_mask, new_mask);
5335 if (migrate_task(p, dest_cpu)) {
5336 struct migration_arg arg = { p, dest_cpu };
5386 /* Need help from migration thread: drop lock and wait. */ 5337 /* Need help from migration thread: drop lock and wait. */
5387 struct task_struct *mt = rq->migration_thread;
5388
5389 get_task_struct(mt);
5390 task_rq_unlock(rq, &flags); 5338 task_rq_unlock(rq, &flags);
5391 wake_up_process(mt); 5339 stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
5392 put_task_struct(mt);
5393 wait_for_completion(&req.done);
5394 tlb_migrate_finish(p->mm); 5340 tlb_migrate_finish(p->mm);
5395 return 0; 5341 return 0;
5396 } 5342 }
@@ -5448,98 +5394,49 @@ fail:
5448 return ret; 5394 return ret;
5449} 5395}
5450 5396
5451#define RCU_MIGRATION_IDLE 0
5452#define RCU_MIGRATION_NEED_QS 1
5453#define RCU_MIGRATION_GOT_QS 2
5454#define RCU_MIGRATION_MUST_SYNC 3
5455
5456/* 5397/*
5457 * migration_thread - this is a highprio system thread that performs 5398 * migration_cpu_stop - this will be executed by a highprio stopper thread
5458 * thread migration by bumping thread off CPU then 'pushing' onto 5399 * and performs thread migration by bumping thread off CPU then
5459 * another runqueue. 5400 * 'pushing' onto another runqueue.
5460 */ 5401 */
5461static int migration_thread(void *data) 5402static int migration_cpu_stop(void *data)
5462{ 5403{
5463 int badcpu; 5404 struct migration_arg *arg = data;
5464 int cpu = (long)data;
5465 struct rq *rq;
5466
5467 rq = cpu_rq(cpu);
5468 BUG_ON(rq->migration_thread != current);
5469
5470 set_current_state(TASK_INTERRUPTIBLE);
5471 while (!kthread_should_stop()) {
5472 struct migration_req *req;
5473 struct list_head *head;
5474
5475 raw_spin_lock_irq(&rq->lock);
5476
5477 if (cpu_is_offline(cpu)) {
5478 raw_spin_unlock_irq(&rq->lock);
5479 break;
5480 }
5481
5482 if (rq->active_balance) {
5483 active_load_balance(rq, cpu);
5484 rq->active_balance = 0;
5485 }
5486
5487 head = &rq->migration_queue;
5488
5489 if (list_empty(head)) {
5490 raw_spin_unlock_irq(&rq->lock);
5491 schedule();
5492 set_current_state(TASK_INTERRUPTIBLE);
5493 continue;
5494 }
5495 req = list_entry(head->next, struct migration_req, list);
5496 list_del_init(head->next);
5497
5498 if (req->task != NULL) {
5499 raw_spin_unlock(&rq->lock);
5500 __migrate_task(req->task, cpu, req->dest_cpu);
5501 } else if (likely(cpu == (badcpu = smp_processor_id()))) {
5502 req->dest_cpu = RCU_MIGRATION_GOT_QS;
5503 raw_spin_unlock(&rq->lock);
5504 } else {
5505 req->dest_cpu = RCU_MIGRATION_MUST_SYNC;
5506 raw_spin_unlock(&rq->lock);
5507 WARN_ONCE(1, "migration_thread() on CPU %d, expected %d\n", badcpu, cpu);
5508 }
5509 local_irq_enable();
5510
5511 complete(&req->done);
5512 }
5513 __set_current_state(TASK_RUNNING);
5514
5515 return 0;
5516}
5517
5518#ifdef CONFIG_HOTPLUG_CPU
5519
5520static int __migrate_task_irq(struct task_struct *p, int src_cpu, int dest_cpu)
5521{
5522 int ret;
5523 5405
5406 /*
5407 * The original target cpu might have gone down and we might
5408 * be on another cpu but it doesn't matter.
5409 */
5524 local_irq_disable(); 5410 local_irq_disable();
5525 ret = __migrate_task(p, src_cpu, dest_cpu); 5411 __migrate_task(arg->task, raw_smp_processor_id(), arg->dest_cpu);
5526 local_irq_enable(); 5412 local_irq_enable();
5527 return ret; 5413 return 0;
5528} 5414}
5529 5415
5416#ifdef CONFIG_HOTPLUG_CPU
5530/* 5417/*
5531 * Figure out where task on dead CPU should go, use force if necessary. 5418 * Figure out where task on dead CPU should go, use force if necessary.
5532 */ 5419 */
5533static void move_task_off_dead_cpu(int dead_cpu, struct task_struct *p) 5420void move_task_off_dead_cpu(int dead_cpu, struct task_struct *p)
5534{ 5421{
5535 int dest_cpu; 5422 struct rq *rq = cpu_rq(dead_cpu);
5423 int needs_cpu, uninitialized_var(dest_cpu);
5424 unsigned long flags;
5536 5425
5537again: 5426 local_irq_save(flags);
5538 dest_cpu = select_fallback_rq(dead_cpu, p);
5539 5427
5540 /* It can have affinity changed while we were choosing. */ 5428 raw_spin_lock(&rq->lock);
5541 if (unlikely(!__migrate_task_irq(p, dead_cpu, dest_cpu))) 5429 needs_cpu = (task_cpu(p) == dead_cpu) && (p->state != TASK_WAKING);
5542 goto again; 5430 if (needs_cpu)
5431 dest_cpu = select_fallback_rq(dead_cpu, p);
5432 raw_spin_unlock(&rq->lock);
5433 /*
5434 * It can only fail if we race with set_cpus_allowed(),
5435 * in the racer should migrate the task anyway.
5436 */
5437 if (needs_cpu)
5438 __migrate_task(p, dead_cpu, dest_cpu);
5439 local_irq_restore(flags);
5543} 5440}
5544 5441
5545/* 5442/*
@@ -5603,7 +5500,6 @@ void sched_idle_next(void)
5603 5500
5604 __setscheduler(rq, p, SCHED_FIFO, MAX_RT_PRIO-1); 5501 __setscheduler(rq, p, SCHED_FIFO, MAX_RT_PRIO-1);
5605 5502
5606 update_rq_clock(rq);
5607 activate_task(rq, p, 0); 5503 activate_task(rq, p, 0);
5608 5504
5609 raw_spin_unlock_irqrestore(&rq->lock, flags); 5505 raw_spin_unlock_irqrestore(&rq->lock, flags);
@@ -5658,7 +5554,6 @@ static void migrate_dead_tasks(unsigned int dead_cpu)
5658 for ( ; ; ) { 5554 for ( ; ; ) {
5659 if (!rq->nr_running) 5555 if (!rq->nr_running)
5660 break; 5556 break;
5661 update_rq_clock(rq);
5662 next = pick_next_task(rq); 5557 next = pick_next_task(rq);
5663 if (!next) 5558 if (!next)
5664 break; 5559 break;
@@ -5881,35 +5776,20 @@ static void set_rq_offline(struct rq *rq)
5881static int __cpuinit 5776static int __cpuinit
5882migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) 5777migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
5883{ 5778{
5884 struct task_struct *p;
5885 int cpu = (long)hcpu; 5779 int cpu = (long)hcpu;
5886 unsigned long flags; 5780 unsigned long flags;
5887 struct rq *rq; 5781 struct rq *rq = cpu_rq(cpu);
5888 5782
5889 switch (action) { 5783 switch (action) {
5890 5784
5891 case CPU_UP_PREPARE: 5785 case CPU_UP_PREPARE:
5892 case CPU_UP_PREPARE_FROZEN: 5786 case CPU_UP_PREPARE_FROZEN:
5893 p = kthread_create(migration_thread, hcpu, "migration/%d", cpu);
5894 if (IS_ERR(p))
5895 return NOTIFY_BAD;
5896 kthread_bind(p, cpu);
5897 /* Must be high prio: stop_machine expects to yield to it. */
5898 rq = task_rq_lock(p, &flags);
5899 __setscheduler(rq, p, SCHED_FIFO, MAX_RT_PRIO-1);
5900 task_rq_unlock(rq, &flags);
5901 get_task_struct(p);
5902 cpu_rq(cpu)->migration_thread = p;
5903 rq->calc_load_update = calc_load_update; 5787 rq->calc_load_update = calc_load_update;
5904 break; 5788 break;
5905 5789
5906 case CPU_ONLINE: 5790 case CPU_ONLINE:
5907 case CPU_ONLINE_FROZEN: 5791 case CPU_ONLINE_FROZEN:
5908 /* Strictly unnecessary, as first user will wake it. */
5909 wake_up_process(cpu_rq(cpu)->migration_thread);
5910
5911 /* Update our root-domain */ 5792 /* Update our root-domain */
5912 rq = cpu_rq(cpu);
5913 raw_spin_lock_irqsave(&rq->lock, flags); 5793 raw_spin_lock_irqsave(&rq->lock, flags);
5914 if (rq->rd) { 5794 if (rq->rd) {
5915 BUG_ON(!cpumask_test_cpu(cpu, rq->rd->span)); 5795 BUG_ON(!cpumask_test_cpu(cpu, rq->rd->span));
@@ -5920,61 +5800,24 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
5920 break; 5800 break;
5921 5801
5922#ifdef CONFIG_HOTPLUG_CPU 5802#ifdef CONFIG_HOTPLUG_CPU
5923 case CPU_UP_CANCELED:
5924 case CPU_UP_CANCELED_FROZEN:
5925 if (!cpu_rq(cpu)->migration_thread)
5926 break;
5927 /* Unbind it from offline cpu so it can run. Fall thru. */
5928 kthread_bind(cpu_rq(cpu)->migration_thread,
5929 cpumask_any(cpu_online_mask));
5930 kthread_stop(cpu_rq(cpu)->migration_thread);
5931 put_task_struct(cpu_rq(cpu)->migration_thread);
5932 cpu_rq(cpu)->migration_thread = NULL;
5933 break;
5934
5935 case CPU_DEAD: 5803 case CPU_DEAD:
5936 case CPU_DEAD_FROZEN: 5804 case CPU_DEAD_FROZEN:
5937 cpuset_lock(); /* around calls to cpuset_cpus_allowed_lock() */
5938 migrate_live_tasks(cpu); 5805 migrate_live_tasks(cpu);
5939 rq = cpu_rq(cpu);
5940 kthread_stop(rq->migration_thread);
5941 put_task_struct(rq->migration_thread);
5942 rq->migration_thread = NULL;
5943 /* Idle task back to normal (off runqueue, low prio) */ 5806 /* Idle task back to normal (off runqueue, low prio) */
5944 raw_spin_lock_irq(&rq->lock); 5807 raw_spin_lock_irq(&rq->lock);
5945 update_rq_clock(rq);
5946 deactivate_task(rq, rq->idle, 0); 5808 deactivate_task(rq, rq->idle, 0);
5947 __setscheduler(rq, rq->idle, SCHED_NORMAL, 0); 5809 __setscheduler(rq, rq->idle, SCHED_NORMAL, 0);
5948 rq->idle->sched_class = &idle_sched_class; 5810 rq->idle->sched_class = &idle_sched_class;
5949 migrate_dead_tasks(cpu); 5811 migrate_dead_tasks(cpu);
5950 raw_spin_unlock_irq(&rq->lock); 5812 raw_spin_unlock_irq(&rq->lock);
5951 cpuset_unlock();
5952 migrate_nr_uninterruptible(rq); 5813 migrate_nr_uninterruptible(rq);
5953 BUG_ON(rq->nr_running != 0); 5814 BUG_ON(rq->nr_running != 0);
5954 calc_global_load_remove(rq); 5815 calc_global_load_remove(rq);
5955 /*
5956 * No need to migrate the tasks: it was best-effort if
5957 * they didn't take sched_hotcpu_mutex. Just wake up
5958 * the requestors.
5959 */
5960 raw_spin_lock_irq(&rq->lock);
5961 while (!list_empty(&rq->migration_queue)) {
5962 struct migration_req *req;
5963
5964 req = list_entry(rq->migration_queue.next,
5965 struct migration_req, list);
5966 list_del_init(&req->list);
5967 raw_spin_unlock_irq(&rq->lock);
5968 complete(&req->done);
5969 raw_spin_lock_irq(&rq->lock);
5970 }
5971 raw_spin_unlock_irq(&rq->lock);
5972 break; 5816 break;
5973 5817
5974 case CPU_DYING: 5818 case CPU_DYING:
5975 case CPU_DYING_FROZEN: 5819 case CPU_DYING_FROZEN:
5976 /* Update our root-domain */ 5820 /* Update our root-domain */
5977 rq = cpu_rq(cpu);
5978 raw_spin_lock_irqsave(&rq->lock, flags); 5821 raw_spin_lock_irqsave(&rq->lock, flags);
5979 if (rq->rd) { 5822 if (rq->rd) {
5980 BUG_ON(!cpumask_test_cpu(cpu, rq->rd->span)); 5823 BUG_ON(!cpumask_test_cpu(cpu, rq->rd->span));
@@ -6305,6 +6148,9 @@ cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
6305 struct rq *rq = cpu_rq(cpu); 6148 struct rq *rq = cpu_rq(cpu);
6306 struct sched_domain *tmp; 6149 struct sched_domain *tmp;
6307 6150
6151 for (tmp = sd; tmp; tmp = tmp->parent)
6152 tmp->span_weight = cpumask_weight(sched_domain_span(tmp));
6153
6308 /* Remove the sched domains which do not contribute to scheduling. */ 6154 /* Remove the sched domains which do not contribute to scheduling. */
6309 for (tmp = sd; tmp; ) { 6155 for (tmp = sd; tmp; ) {
6310 struct sched_domain *parent = tmp->parent; 6156 struct sched_domain *parent = tmp->parent;
@@ -7788,10 +7634,8 @@ void __init sched_init(void)
7788 rq->push_cpu = 0; 7634 rq->push_cpu = 0;
7789 rq->cpu = i; 7635 rq->cpu = i;
7790 rq->online = 0; 7636 rq->online = 0;
7791 rq->migration_thread = NULL;
7792 rq->idle_stamp = 0; 7637 rq->idle_stamp = 0;
7793 rq->avg_idle = 2*sysctl_sched_migration_cost; 7638 rq->avg_idle = 2*sysctl_sched_migration_cost;
7794 INIT_LIST_HEAD(&rq->migration_queue);
7795 rq_attach_root(rq, &def_root_domain); 7639 rq_attach_root(rq, &def_root_domain);
7796#endif 7640#endif
7797 init_rq_hrtick(rq); 7641 init_rq_hrtick(rq);
@@ -7892,7 +7736,6 @@ static void normalize_task(struct rq *rq, struct task_struct *p)
7892{ 7736{
7893 int on_rq; 7737 int on_rq;
7894 7738
7895 update_rq_clock(rq);
7896 on_rq = p->se.on_rq; 7739 on_rq = p->se.on_rq;
7897 if (on_rq) 7740 if (on_rq)
7898 deactivate_task(rq, p, 0); 7741 deactivate_task(rq, p, 0);
@@ -7919,9 +7762,9 @@ void normalize_rt_tasks(void)
7919 7762
7920 p->se.exec_start = 0; 7763 p->se.exec_start = 0;
7921#ifdef CONFIG_SCHEDSTATS 7764#ifdef CONFIG_SCHEDSTATS
7922 p->se.wait_start = 0; 7765 p->se.statistics.wait_start = 0;
7923 p->se.sleep_start = 0; 7766 p->se.statistics.sleep_start = 0;
7924 p->se.block_start = 0; 7767 p->se.statistics.block_start = 0;
7925#endif 7768#endif
7926 7769
7927 if (!rt_task(p)) { 7770 if (!rt_task(p)) {
@@ -8254,8 +8097,6 @@ void sched_move_task(struct task_struct *tsk)
8254 8097
8255 rq = task_rq_lock(tsk, &flags); 8098 rq = task_rq_lock(tsk, &flags);
8256 8099
8257 update_rq_clock(rq);
8258
8259 running = task_current(rq, tsk); 8100 running = task_current(rq, tsk);
8260 on_rq = tsk->se.on_rq; 8101 on_rq = tsk->se.on_rq;
8261 8102
@@ -8274,7 +8115,7 @@ void sched_move_task(struct task_struct *tsk)
8274 if (unlikely(running)) 8115 if (unlikely(running))
8275 tsk->sched_class->set_curr_task(rq); 8116 tsk->sched_class->set_curr_task(rq);
8276 if (on_rq) 8117 if (on_rq)
8277 enqueue_task(rq, tsk, 0, false); 8118 enqueue_task(rq, tsk, 0);
8278 8119
8279 task_rq_unlock(rq, &flags); 8120 task_rq_unlock(rq, &flags);
8280} 8121}
@@ -9088,43 +8929,32 @@ struct cgroup_subsys cpuacct_subsys = {
9088 8929
9089#ifndef CONFIG_SMP 8930#ifndef CONFIG_SMP
9090 8931
9091int rcu_expedited_torture_stats(char *page)
9092{
9093 return 0;
9094}
9095EXPORT_SYMBOL_GPL(rcu_expedited_torture_stats);
9096
9097void synchronize_sched_expedited(void) 8932void synchronize_sched_expedited(void)
9098{ 8933{
8934 barrier();
9099} 8935}
9100EXPORT_SYMBOL_GPL(synchronize_sched_expedited); 8936EXPORT_SYMBOL_GPL(synchronize_sched_expedited);
9101 8937
9102#else /* #ifndef CONFIG_SMP */ 8938#else /* #ifndef CONFIG_SMP */
9103 8939
9104static DEFINE_PER_CPU(struct migration_req, rcu_migration_req); 8940static atomic_t synchronize_sched_expedited_count = ATOMIC_INIT(0);
9105static DEFINE_MUTEX(rcu_sched_expedited_mutex);
9106
9107#define RCU_EXPEDITED_STATE_POST -2
9108#define RCU_EXPEDITED_STATE_IDLE -1
9109
9110static int rcu_expedited_state = RCU_EXPEDITED_STATE_IDLE;
9111 8941
9112int rcu_expedited_torture_stats(char *page) 8942static int synchronize_sched_expedited_cpu_stop(void *data)
9113{ 8943{
9114 int cnt = 0; 8944 /*
9115 int cpu; 8945 * There must be a full memory barrier on each affected CPU
9116 8946 * between the time that try_stop_cpus() is called and the
9117 cnt += sprintf(&page[cnt], "state: %d /", rcu_expedited_state); 8947 * time that it returns.
9118 for_each_online_cpu(cpu) { 8948 *
9119 cnt += sprintf(&page[cnt], " %d:%d", 8949 * In the current initial implementation of cpu_stop, the
9120 cpu, per_cpu(rcu_migration_req, cpu).dest_cpu); 8950 * above condition is already met when the control reaches
9121 } 8951 * this point and the following smp_mb() is not strictly
9122 cnt += sprintf(&page[cnt], "\n"); 8952 * necessary. Do smp_mb() anyway for documentation and
9123 return cnt; 8953 * robustness against future implementation changes.
8954 */
8955 smp_mb(); /* See above comment block. */
8956 return 0;
9124} 8957}
9125EXPORT_SYMBOL_GPL(rcu_expedited_torture_stats);
9126
9127static long synchronize_sched_expedited_count;
9128 8958
9129/* 8959/*
9130 * Wait for an rcu-sched grace period to elapse, but use "big hammer" 8960 * Wait for an rcu-sched grace period to elapse, but use "big hammer"
@@ -9138,18 +8968,14 @@ static long synchronize_sched_expedited_count;
9138 */ 8968 */
9139void synchronize_sched_expedited(void) 8969void synchronize_sched_expedited(void)
9140{ 8970{
9141 int cpu; 8971 int snap, trycount = 0;
9142 unsigned long flags;
9143 bool need_full_sync = 0;
9144 struct rq *rq;
9145 struct migration_req *req;
9146 long snap;
9147 int trycount = 0;
9148 8972
9149 smp_mb(); /* ensure prior mod happens before capturing snap. */ 8973 smp_mb(); /* ensure prior mod happens before capturing snap. */
9150 snap = ACCESS_ONCE(synchronize_sched_expedited_count) + 1; 8974 snap = atomic_read(&synchronize_sched_expedited_count) + 1;
9151 get_online_cpus(); 8975 get_online_cpus();
9152 while (!mutex_trylock(&rcu_sched_expedited_mutex)) { 8976 while (try_stop_cpus(cpu_online_mask,
8977 synchronize_sched_expedited_cpu_stop,
8978 NULL) == -EAGAIN) {
9153 put_online_cpus(); 8979 put_online_cpus();
9154 if (trycount++ < 10) 8980 if (trycount++ < 10)
9155 udelay(trycount * num_online_cpus()); 8981 udelay(trycount * num_online_cpus());
@@ -9157,41 +8983,15 @@ void synchronize_sched_expedited(void)
9157 synchronize_sched(); 8983 synchronize_sched();
9158 return; 8984 return;
9159 } 8985 }
9160 if (ACCESS_ONCE(synchronize_sched_expedited_count) - snap > 0) { 8986 if (atomic_read(&synchronize_sched_expedited_count) - snap > 0) {
9161 smp_mb(); /* ensure test happens before caller kfree */ 8987 smp_mb(); /* ensure test happens before caller kfree */
9162 return; 8988 return;
9163 } 8989 }
9164 get_online_cpus(); 8990 get_online_cpus();
9165 } 8991 }
9166 rcu_expedited_state = RCU_EXPEDITED_STATE_POST; 8992 atomic_inc(&synchronize_sched_expedited_count);
9167 for_each_online_cpu(cpu) { 8993 smp_mb__after_atomic_inc(); /* ensure post-GP actions seen after GP. */
9168 rq = cpu_rq(cpu);
9169 req = &per_cpu(rcu_migration_req, cpu);
9170 init_completion(&req->done);
9171 req->task = NULL;
9172 req->dest_cpu = RCU_MIGRATION_NEED_QS;
9173 raw_spin_lock_irqsave(&rq->lock, flags);
9174 list_add(&req->list, &rq->migration_queue);
9175 raw_spin_unlock_irqrestore(&rq->lock, flags);
9176 wake_up_process(rq->migration_thread);
9177 }
9178 for_each_online_cpu(cpu) {
9179 rcu_expedited_state = cpu;
9180 req = &per_cpu(rcu_migration_req, cpu);
9181 rq = cpu_rq(cpu);
9182 wait_for_completion(&req->done);
9183 raw_spin_lock_irqsave(&rq->lock, flags);
9184 if (unlikely(req->dest_cpu == RCU_MIGRATION_MUST_SYNC))
9185 need_full_sync = 1;
9186 req->dest_cpu = RCU_MIGRATION_IDLE;
9187 raw_spin_unlock_irqrestore(&rq->lock, flags);
9188 }
9189 rcu_expedited_state = RCU_EXPEDITED_STATE_IDLE;
9190 synchronize_sched_expedited_count++;
9191 mutex_unlock(&rcu_sched_expedited_mutex);
9192 put_online_cpus(); 8994 put_online_cpus();
9193 if (need_full_sync)
9194 synchronize_sched();
9195} 8995}
9196EXPORT_SYMBOL_GPL(synchronize_sched_expedited); 8996EXPORT_SYMBOL_GPL(synchronize_sched_expedited);
9197 8997
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
index 9b49db144037..9cf1baf6616a 100644
--- a/kernel/sched_debug.c
+++ b/kernel/sched_debug.c
@@ -70,16 +70,16 @@ static void print_cfs_group_stats(struct seq_file *m, int cpu,
70 PN(se->vruntime); 70 PN(se->vruntime);
71 PN(se->sum_exec_runtime); 71 PN(se->sum_exec_runtime);
72#ifdef CONFIG_SCHEDSTATS 72#ifdef CONFIG_SCHEDSTATS
73 PN(se->wait_start); 73 PN(se->statistics.wait_start);
74 PN(se->sleep_start); 74 PN(se->statistics.sleep_start);
75 PN(se->block_start); 75 PN(se->statistics.block_start);
76 PN(se->sleep_max); 76 PN(se->statistics.sleep_max);
77 PN(se->block_max); 77 PN(se->statistics.block_max);
78 PN(se->exec_max); 78 PN(se->statistics.exec_max);
79 PN(se->slice_max); 79 PN(se->statistics.slice_max);
80 PN(se->wait_max); 80 PN(se->statistics.wait_max);
81 PN(se->wait_sum); 81 PN(se->statistics.wait_sum);
82 P(se->wait_count); 82 P(se->statistics.wait_count);
83#endif 83#endif
84 P(se->load.weight); 84 P(se->load.weight);
85#undef PN 85#undef PN
@@ -104,7 +104,7 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p)
104 SEQ_printf(m, "%9Ld.%06ld %9Ld.%06ld %9Ld.%06ld", 104 SEQ_printf(m, "%9Ld.%06ld %9Ld.%06ld %9Ld.%06ld",
105 SPLIT_NS(p->se.vruntime), 105 SPLIT_NS(p->se.vruntime),
106 SPLIT_NS(p->se.sum_exec_runtime), 106 SPLIT_NS(p->se.sum_exec_runtime),
107 SPLIT_NS(p->se.sum_sleep_runtime)); 107 SPLIT_NS(p->se.statistics.sum_sleep_runtime));
108#else 108#else
109 SEQ_printf(m, "%15Ld %15Ld %15Ld.%06ld %15Ld.%06ld %15Ld.%06ld", 109 SEQ_printf(m, "%15Ld %15Ld %15Ld.%06ld %15Ld.%06ld %15Ld.%06ld",
110 0LL, 0LL, 0LL, 0L, 0LL, 0L, 0LL, 0L); 110 0LL, 0LL, 0LL, 0L, 0LL, 0L, 0LL, 0L);
@@ -173,11 +173,6 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
173 task_group_path(tg, path, sizeof(path)); 173 task_group_path(tg, path, sizeof(path));
174 174
175 SEQ_printf(m, "\ncfs_rq[%d]:%s\n", cpu, path); 175 SEQ_printf(m, "\ncfs_rq[%d]:%s\n", cpu, path);
176#elif defined(CONFIG_USER_SCHED) && defined(CONFIG_FAIR_GROUP_SCHED)
177 {
178 uid_t uid = cfs_rq->tg->uid;
179 SEQ_printf(m, "\ncfs_rq[%d] for UID: %u\n", cpu, uid);
180 }
181#else 176#else
182 SEQ_printf(m, "\ncfs_rq[%d]:\n", cpu); 177 SEQ_printf(m, "\ncfs_rq[%d]:\n", cpu);
183#endif 178#endif
@@ -407,40 +402,38 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m)
407 PN(se.exec_start); 402 PN(se.exec_start);
408 PN(se.vruntime); 403 PN(se.vruntime);
409 PN(se.sum_exec_runtime); 404 PN(se.sum_exec_runtime);
410 PN(se.avg_overlap);
411 PN(se.avg_wakeup);
412 405
413 nr_switches = p->nvcsw + p->nivcsw; 406 nr_switches = p->nvcsw + p->nivcsw;
414 407
415#ifdef CONFIG_SCHEDSTATS 408#ifdef CONFIG_SCHEDSTATS
416 PN(se.wait_start); 409 PN(se.statistics.wait_start);
417 PN(se.sleep_start); 410 PN(se.statistics.sleep_start);
418 PN(se.block_start); 411 PN(se.statistics.block_start);
419 PN(se.sleep_max); 412 PN(se.statistics.sleep_max);
420 PN(se.block_max); 413 PN(se.statistics.block_max);
421 PN(se.exec_max); 414 PN(se.statistics.exec_max);
422 PN(se.slice_max); 415 PN(se.statistics.slice_max);
423 PN(se.wait_max); 416 PN(se.statistics.wait_max);
424 PN(se.wait_sum); 417 PN(se.statistics.wait_sum);
425 P(se.wait_count); 418 P(se.statistics.wait_count);
426 PN(se.iowait_sum); 419 PN(se.statistics.iowait_sum);
427 P(se.iowait_count); 420 P(se.statistics.iowait_count);
428 P(sched_info.bkl_count); 421 P(sched_info.bkl_count);
429 P(se.nr_migrations); 422 P(se.nr_migrations);
430 P(se.nr_migrations_cold); 423 P(se.statistics.nr_migrations_cold);
431 P(se.nr_failed_migrations_affine); 424 P(se.statistics.nr_failed_migrations_affine);
432 P(se.nr_failed_migrations_running); 425 P(se.statistics.nr_failed_migrations_running);
433 P(se.nr_failed_migrations_hot); 426 P(se.statistics.nr_failed_migrations_hot);
434 P(se.nr_forced_migrations); 427 P(se.statistics.nr_forced_migrations);
435 P(se.nr_wakeups); 428 P(se.statistics.nr_wakeups);
436 P(se.nr_wakeups_sync); 429 P(se.statistics.nr_wakeups_sync);
437 P(se.nr_wakeups_migrate); 430 P(se.statistics.nr_wakeups_migrate);
438 P(se.nr_wakeups_local); 431 P(se.statistics.nr_wakeups_local);
439 P(se.nr_wakeups_remote); 432 P(se.statistics.nr_wakeups_remote);
440 P(se.nr_wakeups_affine); 433 P(se.statistics.nr_wakeups_affine);
441 P(se.nr_wakeups_affine_attempts); 434 P(se.statistics.nr_wakeups_affine_attempts);
442 P(se.nr_wakeups_passive); 435 P(se.statistics.nr_wakeups_passive);
443 P(se.nr_wakeups_idle); 436 P(se.statistics.nr_wakeups_idle);
444 437
445 { 438 {
446 u64 avg_atom, avg_per_cpu; 439 u64 avg_atom, avg_per_cpu;
@@ -491,31 +484,6 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m)
491void proc_sched_set_task(struct task_struct *p) 484void proc_sched_set_task(struct task_struct *p)
492{ 485{
493#ifdef CONFIG_SCHEDSTATS 486#ifdef CONFIG_SCHEDSTATS
494 p->se.wait_max = 0; 487 memset(&p->se.statistics, 0, sizeof(p->se.statistics));
495 p->se.wait_sum = 0;
496 p->se.wait_count = 0;
497 p->se.iowait_sum = 0;
498 p->se.iowait_count = 0;
499 p->se.sleep_max = 0;
500 p->se.sum_sleep_runtime = 0;
501 p->se.block_max = 0;
502 p->se.exec_max = 0;
503 p->se.slice_max = 0;
504 p->se.nr_migrations = 0;
505 p->se.nr_migrations_cold = 0;
506 p->se.nr_failed_migrations_affine = 0;
507 p->se.nr_failed_migrations_running = 0;
508 p->se.nr_failed_migrations_hot = 0;
509 p->se.nr_forced_migrations = 0;
510 p->se.nr_wakeups = 0;
511 p->se.nr_wakeups_sync = 0;
512 p->se.nr_wakeups_migrate = 0;
513 p->se.nr_wakeups_local = 0;
514 p->se.nr_wakeups_remote = 0;
515 p->se.nr_wakeups_affine = 0;
516 p->se.nr_wakeups_affine_attempts = 0;
517 p->se.nr_wakeups_passive = 0;
518 p->se.nr_wakeups_idle = 0;
519 p->sched_info.bkl_count = 0;
520#endif 488#endif
521} 489}
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 5a5ea2cd924f..217e4a9393e4 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -35,8 +35,8 @@
35 * (to see the precise effective timeslice length of your workload, 35 * (to see the precise effective timeslice length of your workload,
36 * run vmstat and monitor the context-switches (cs) field) 36 * run vmstat and monitor the context-switches (cs) field)
37 */ 37 */
38unsigned int sysctl_sched_latency = 5000000ULL; 38unsigned int sysctl_sched_latency = 6000000ULL;
39unsigned int normalized_sysctl_sched_latency = 5000000ULL; 39unsigned int normalized_sysctl_sched_latency = 6000000ULL;
40 40
41/* 41/*
42 * The initial- and re-scaling of tunables is configurable 42 * The initial- and re-scaling of tunables is configurable
@@ -52,15 +52,15 @@ enum sched_tunable_scaling sysctl_sched_tunable_scaling
52 52
53/* 53/*
54 * Minimal preemption granularity for CPU-bound tasks: 54 * Minimal preemption granularity for CPU-bound tasks:
55 * (default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds) 55 * (default: 2 msec * (1 + ilog(ncpus)), units: nanoseconds)
56 */ 56 */
57unsigned int sysctl_sched_min_granularity = 1000000ULL; 57unsigned int sysctl_sched_min_granularity = 2000000ULL;
58unsigned int normalized_sysctl_sched_min_granularity = 1000000ULL; 58unsigned int normalized_sysctl_sched_min_granularity = 2000000ULL;
59 59
60/* 60/*
61 * is kept at sysctl_sched_latency / sysctl_sched_min_granularity 61 * is kept at sysctl_sched_latency / sysctl_sched_min_granularity
62 */ 62 */
63static unsigned int sched_nr_latency = 5; 63static unsigned int sched_nr_latency = 3;
64 64
65/* 65/*
66 * After fork, child runs first. If set to 0 (default) then 66 * After fork, child runs first. If set to 0 (default) then
@@ -505,7 +505,8 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr,
505{ 505{
506 unsigned long delta_exec_weighted; 506 unsigned long delta_exec_weighted;
507 507
508 schedstat_set(curr->exec_max, max((u64)delta_exec, curr->exec_max)); 508 schedstat_set(curr->statistics.exec_max,
509 max((u64)delta_exec, curr->statistics.exec_max));
509 510
510 curr->sum_exec_runtime += delta_exec; 511 curr->sum_exec_runtime += delta_exec;
511 schedstat_add(cfs_rq, exec_clock, delta_exec); 512 schedstat_add(cfs_rq, exec_clock, delta_exec);
@@ -548,7 +549,7 @@ static void update_curr(struct cfs_rq *cfs_rq)
548static inline void 549static inline void
549update_stats_wait_start(struct cfs_rq *cfs_rq, struct sched_entity *se) 550update_stats_wait_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
550{ 551{
551 schedstat_set(se->wait_start, rq_of(cfs_rq)->clock); 552 schedstat_set(se->statistics.wait_start, rq_of(cfs_rq)->clock);
552} 553}
553 554
554/* 555/*
@@ -567,18 +568,18 @@ static void update_stats_enqueue(struct cfs_rq *cfs_rq, struct sched_entity *se)
567static void 568static void
568update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se) 569update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se)
569{ 570{
570 schedstat_set(se->wait_max, max(se->wait_max, 571 schedstat_set(se->statistics.wait_max, max(se->statistics.wait_max,
571 rq_of(cfs_rq)->clock - se->wait_start)); 572 rq_of(cfs_rq)->clock - se->statistics.wait_start));
572 schedstat_set(se->wait_count, se->wait_count + 1); 573 schedstat_set(se->statistics.wait_count, se->statistics.wait_count + 1);
573 schedstat_set(se->wait_sum, se->wait_sum + 574 schedstat_set(se->statistics.wait_sum, se->statistics.wait_sum +
574 rq_of(cfs_rq)->clock - se->wait_start); 575 rq_of(cfs_rq)->clock - se->statistics.wait_start);
575#ifdef CONFIG_SCHEDSTATS 576#ifdef CONFIG_SCHEDSTATS
576 if (entity_is_task(se)) { 577 if (entity_is_task(se)) {
577 trace_sched_stat_wait(task_of(se), 578 trace_sched_stat_wait(task_of(se),
578 rq_of(cfs_rq)->clock - se->wait_start); 579 rq_of(cfs_rq)->clock - se->statistics.wait_start);
579 } 580 }
580#endif 581#endif
581 schedstat_set(se->wait_start, 0); 582 schedstat_set(se->statistics.wait_start, 0);
582} 583}
583 584
584static inline void 585static inline void
@@ -657,39 +658,39 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se)
657 if (entity_is_task(se)) 658 if (entity_is_task(se))
658 tsk = task_of(se); 659 tsk = task_of(se);
659 660
660 if (se->sleep_start) { 661 if (se->statistics.sleep_start) {
661 u64 delta = rq_of(cfs_rq)->clock - se->sleep_start; 662 u64 delta = rq_of(cfs_rq)->clock - se->statistics.sleep_start;
662 663
663 if ((s64)delta < 0) 664 if ((s64)delta < 0)
664 delta = 0; 665 delta = 0;
665 666
666 if (unlikely(delta > se->sleep_max)) 667 if (unlikely(delta > se->statistics.sleep_max))
667 se->sleep_max = delta; 668 se->statistics.sleep_max = delta;
668 669
669 se->sleep_start = 0; 670 se->statistics.sleep_start = 0;
670 se->sum_sleep_runtime += delta; 671 se->statistics.sum_sleep_runtime += delta;
671 672
672 if (tsk) { 673 if (tsk) {
673 account_scheduler_latency(tsk, delta >> 10, 1); 674 account_scheduler_latency(tsk, delta >> 10, 1);
674 trace_sched_stat_sleep(tsk, delta); 675 trace_sched_stat_sleep(tsk, delta);
675 } 676 }
676 } 677 }
677 if (se->block_start) { 678 if (se->statistics.block_start) {
678 u64 delta = rq_of(cfs_rq)->clock - se->block_start; 679 u64 delta = rq_of(cfs_rq)->clock - se->statistics.block_start;
679 680
680 if ((s64)delta < 0) 681 if ((s64)delta < 0)
681 delta = 0; 682 delta = 0;
682 683
683 if (unlikely(delta > se->block_max)) 684 if (unlikely(delta > se->statistics.block_max))
684 se->block_max = delta; 685 se->statistics.block_max = delta;
685 686
686 se->block_start = 0; 687 se->statistics.block_start = 0;
687 se->sum_sleep_runtime += delta; 688 se->statistics.sum_sleep_runtime += delta;
688 689
689 if (tsk) { 690 if (tsk) {
690 if (tsk->in_iowait) { 691 if (tsk->in_iowait) {
691 se->iowait_sum += delta; 692 se->statistics.iowait_sum += delta;
692 se->iowait_count++; 693 se->statistics.iowait_count++;
693 trace_sched_stat_iowait(tsk, delta); 694 trace_sched_stat_iowait(tsk, delta);
694 } 695 }
695 696
@@ -737,20 +738,10 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
737 vruntime += sched_vslice(cfs_rq, se); 738 vruntime += sched_vslice(cfs_rq, se);
738 739
739 /* sleeps up to a single latency don't count. */ 740 /* sleeps up to a single latency don't count. */
740 if (!initial && sched_feat(FAIR_SLEEPERS)) { 741 if (!initial) {
741 unsigned long thresh = sysctl_sched_latency; 742 unsigned long thresh = sysctl_sched_latency;
742 743
743 /* 744 /*
744 * Convert the sleeper threshold into virtual time.
745 * SCHED_IDLE is a special sub-class. We care about
746 * fairness only relative to other SCHED_IDLE tasks,
747 * all of which have the same weight.
748 */
749 if (sched_feat(NORMALIZED_SLEEPER) && (!entity_is_task(se) ||
750 task_of(se)->policy != SCHED_IDLE))
751 thresh = calc_delta_fair(thresh, se);
752
753 /*
754 * Halve their sleep time's effect, to allow 745 * Halve their sleep time's effect, to allow
755 * for a gentler effect of sleepers: 746 * for a gentler effect of sleepers:
756 */ 747 */
@@ -766,9 +757,6 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
766 se->vruntime = vruntime; 757 se->vruntime = vruntime;
767} 758}
768 759
769#define ENQUEUE_WAKEUP 1
770#define ENQUEUE_MIGRATE 2
771
772static void 760static void
773enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) 761enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
774{ 762{
@@ -776,7 +764,7 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
776 * Update the normalized vruntime before updating min_vruntime 764 * Update the normalized vruntime before updating min_vruntime
777 * through callig update_curr(). 765 * through callig update_curr().
778 */ 766 */
779 if (!(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_MIGRATE)) 767 if (!(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_WAKING))
780 se->vruntime += cfs_rq->min_vruntime; 768 se->vruntime += cfs_rq->min_vruntime;
781 769
782 /* 770 /*
@@ -812,7 +800,7 @@ static void clear_buddies(struct cfs_rq *cfs_rq, struct sched_entity *se)
812} 800}
813 801
814static void 802static void
815dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) 803dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
816{ 804{
817 /* 805 /*
818 * Update run-time statistics of the 'current'. 806 * Update run-time statistics of the 'current'.
@@ -820,15 +808,15 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
820 update_curr(cfs_rq); 808 update_curr(cfs_rq);
821 809
822 update_stats_dequeue(cfs_rq, se); 810 update_stats_dequeue(cfs_rq, se);
823 if (sleep) { 811 if (flags & DEQUEUE_SLEEP) {
824#ifdef CONFIG_SCHEDSTATS 812#ifdef CONFIG_SCHEDSTATS
825 if (entity_is_task(se)) { 813 if (entity_is_task(se)) {
826 struct task_struct *tsk = task_of(se); 814 struct task_struct *tsk = task_of(se);
827 815
828 if (tsk->state & TASK_INTERRUPTIBLE) 816 if (tsk->state & TASK_INTERRUPTIBLE)
829 se->sleep_start = rq_of(cfs_rq)->clock; 817 se->statistics.sleep_start = rq_of(cfs_rq)->clock;
830 if (tsk->state & TASK_UNINTERRUPTIBLE) 818 if (tsk->state & TASK_UNINTERRUPTIBLE)
831 se->block_start = rq_of(cfs_rq)->clock; 819 se->statistics.block_start = rq_of(cfs_rq)->clock;
832 } 820 }
833#endif 821#endif
834 } 822 }
@@ -845,7 +833,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
845 * update can refer to the ->curr item and we need to reflect this 833 * update can refer to the ->curr item and we need to reflect this
846 * movement in our normalized position. 834 * movement in our normalized position.
847 */ 835 */
848 if (!sleep) 836 if (!(flags & DEQUEUE_SLEEP))
849 se->vruntime -= cfs_rq->min_vruntime; 837 se->vruntime -= cfs_rq->min_vruntime;
850} 838}
851 839
@@ -912,7 +900,7 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
912 * when there are only lesser-weight tasks around): 900 * when there are only lesser-weight tasks around):
913 */ 901 */
914 if (rq_of(cfs_rq)->load.weight >= 2*se->load.weight) { 902 if (rq_of(cfs_rq)->load.weight >= 2*se->load.weight) {
915 se->slice_max = max(se->slice_max, 903 se->statistics.slice_max = max(se->statistics.slice_max,
916 se->sum_exec_runtime - se->prev_sum_exec_runtime); 904 se->sum_exec_runtime - se->prev_sum_exec_runtime);
917 } 905 }
918#endif 906#endif
@@ -1054,16 +1042,10 @@ static inline void hrtick_update(struct rq *rq)
1054 * then put the task into the rbtree: 1042 * then put the task into the rbtree:
1055 */ 1043 */
1056static void 1044static void
1057enqueue_task_fair(struct rq *rq, struct task_struct *p, int wakeup, bool head) 1045enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags)
1058{ 1046{
1059 struct cfs_rq *cfs_rq; 1047 struct cfs_rq *cfs_rq;
1060 struct sched_entity *se = &p->se; 1048 struct sched_entity *se = &p->se;
1061 int flags = 0;
1062
1063 if (wakeup)
1064 flags |= ENQUEUE_WAKEUP;
1065 if (p->state == TASK_WAKING)
1066 flags |= ENQUEUE_MIGRATE;
1067 1049
1068 for_each_sched_entity(se) { 1050 for_each_sched_entity(se) {
1069 if (se->on_rq) 1051 if (se->on_rq)
@@ -1081,18 +1063,18 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int wakeup, bool head)
1081 * decreased. We remove the task from the rbtree and 1063 * decreased. We remove the task from the rbtree and
1082 * update the fair scheduling stats: 1064 * update the fair scheduling stats:
1083 */ 1065 */
1084static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int sleep) 1066static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)
1085{ 1067{
1086 struct cfs_rq *cfs_rq; 1068 struct cfs_rq *cfs_rq;
1087 struct sched_entity *se = &p->se; 1069 struct sched_entity *se = &p->se;
1088 1070
1089 for_each_sched_entity(se) { 1071 for_each_sched_entity(se) {
1090 cfs_rq = cfs_rq_of(se); 1072 cfs_rq = cfs_rq_of(se);
1091 dequeue_entity(cfs_rq, se, sleep); 1073 dequeue_entity(cfs_rq, se, flags);
1092 /* Don't dequeue parent if it has other entities besides us */ 1074 /* Don't dequeue parent if it has other entities besides us */
1093 if (cfs_rq->load.weight) 1075 if (cfs_rq->load.weight)
1094 break; 1076 break;
1095 sleep = 1; 1077 flags |= DEQUEUE_SLEEP;
1096 } 1078 }
1097 1079
1098 hrtick_update(rq); 1080 hrtick_update(rq);
@@ -1240,7 +1222,6 @@ static inline unsigned long effective_load(struct task_group *tg, int cpu,
1240 1222
1241static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync) 1223static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
1242{ 1224{
1243 struct task_struct *curr = current;
1244 unsigned long this_load, load; 1225 unsigned long this_load, load;
1245 int idx, this_cpu, prev_cpu; 1226 int idx, this_cpu, prev_cpu;
1246 unsigned long tl_per_task; 1227 unsigned long tl_per_task;
@@ -1255,18 +1236,6 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
1255 load = source_load(prev_cpu, idx); 1236 load = source_load(prev_cpu, idx);
1256 this_load = target_load(this_cpu, idx); 1237 this_load = target_load(this_cpu, idx);
1257 1238
1258 if (sync) {
1259 if (sched_feat(SYNC_LESS) &&
1260 (curr->se.avg_overlap > sysctl_sched_migration_cost ||
1261 p->se.avg_overlap > sysctl_sched_migration_cost))
1262 sync = 0;
1263 } else {
1264 if (sched_feat(SYNC_MORE) &&
1265 (curr->se.avg_overlap < sysctl_sched_migration_cost &&
1266 p->se.avg_overlap < sysctl_sched_migration_cost))
1267 sync = 1;
1268 }
1269
1270 /* 1239 /*
1271 * If sync wakeup then subtract the (maximum possible) 1240 * If sync wakeup then subtract the (maximum possible)
1272 * effect of the currently running task from the load 1241 * effect of the currently running task from the load
@@ -1306,7 +1275,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
1306 if (sync && balanced) 1275 if (sync && balanced)
1307 return 1; 1276 return 1;
1308 1277
1309 schedstat_inc(p, se.nr_wakeups_affine_attempts); 1278 schedstat_inc(p, se.statistics.nr_wakeups_affine_attempts);
1310 tl_per_task = cpu_avg_load_per_task(this_cpu); 1279 tl_per_task = cpu_avg_load_per_task(this_cpu);
1311 1280
1312 if (balanced || 1281 if (balanced ||
@@ -1318,7 +1287,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
1318 * there is no bad imbalance. 1287 * there is no bad imbalance.
1319 */ 1288 */
1320 schedstat_inc(sd, ttwu_move_affine); 1289 schedstat_inc(sd, ttwu_move_affine);
1321 schedstat_inc(p, se.nr_wakeups_affine); 1290 schedstat_inc(p, se.statistics.nr_wakeups_affine);
1322 1291
1323 return 1; 1292 return 1;
1324 } 1293 }
@@ -1406,29 +1375,48 @@ find_idlest_cpu(struct sched_group *group, struct task_struct *p, int this_cpu)
1406/* 1375/*
1407 * Try and locate an idle CPU in the sched_domain. 1376 * Try and locate an idle CPU in the sched_domain.
1408 */ 1377 */
1409static int 1378static int select_idle_sibling(struct task_struct *p, int target)
1410select_idle_sibling(struct task_struct *p, struct sched_domain *sd, int target)
1411{ 1379{
1412 int cpu = smp_processor_id(); 1380 int cpu = smp_processor_id();
1413 int prev_cpu = task_cpu(p); 1381 int prev_cpu = task_cpu(p);
1382 struct sched_domain *sd;
1414 int i; 1383 int i;
1415 1384
1416 /* 1385 /*
1417 * If this domain spans both cpu and prev_cpu (see the SD_WAKE_AFFINE 1386 * If the task is going to be woken-up on this cpu and if it is
1418 * test in select_task_rq_fair) and the prev_cpu is idle then that's 1387 * already idle, then it is the right target.
1419 * always a better target than the current cpu.
1420 */ 1388 */
1421 if (target == cpu && !cpu_rq(prev_cpu)->cfs.nr_running) 1389 if (target == cpu && idle_cpu(cpu))
1390 return cpu;
1391
1392 /*
1393 * If the task is going to be woken-up on the cpu where it previously
1394 * ran and if it is currently idle, then it the right target.
1395 */
1396 if (target == prev_cpu && idle_cpu(prev_cpu))
1422 return prev_cpu; 1397 return prev_cpu;
1423 1398
1424 /* 1399 /*
1425 * Otherwise, iterate the domain and find an elegible idle cpu. 1400 * Otherwise, iterate the domains and find an elegible idle cpu.
1426 */ 1401 */
1427 for_each_cpu_and(i, sched_domain_span(sd), &p->cpus_allowed) { 1402 for_each_domain(target, sd) {
1428 if (!cpu_rq(i)->cfs.nr_running) { 1403 if (!(sd->flags & SD_SHARE_PKG_RESOURCES))
1429 target = i;
1430 break; 1404 break;
1405
1406 for_each_cpu_and(i, sched_domain_span(sd), &p->cpus_allowed) {
1407 if (idle_cpu(i)) {
1408 target = i;
1409 break;
1410 }
1431 } 1411 }
1412
1413 /*
1414 * Lets stop looking for an idle sibling when we reached
1415 * the domain that spans the current cpu and prev_cpu.
1416 */
1417 if (cpumask_test_cpu(cpu, sched_domain_span(sd)) &&
1418 cpumask_test_cpu(prev_cpu, sched_domain_span(sd)))
1419 break;
1432 } 1420 }
1433 1421
1434 return target; 1422 return target;
@@ -1445,7 +1433,8 @@ select_idle_sibling(struct task_struct *p, struct sched_domain *sd, int target)
1445 * 1433 *
1446 * preempt must be disabled. 1434 * preempt must be disabled.
1447 */ 1435 */
1448static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flags) 1436static int
1437select_task_rq_fair(struct rq *rq, struct task_struct *p, int sd_flag, int wake_flags)
1449{ 1438{
1450 struct sched_domain *tmp, *affine_sd = NULL, *sd = NULL; 1439 struct sched_domain *tmp, *affine_sd = NULL, *sd = NULL;
1451 int cpu = smp_processor_id(); 1440 int cpu = smp_processor_id();
@@ -1456,8 +1445,7 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
1456 int sync = wake_flags & WF_SYNC; 1445 int sync = wake_flags & WF_SYNC;
1457 1446
1458 if (sd_flag & SD_BALANCE_WAKE) { 1447 if (sd_flag & SD_BALANCE_WAKE) {
1459 if (sched_feat(AFFINE_WAKEUPS) && 1448 if (cpumask_test_cpu(cpu, &p->cpus_allowed))
1460 cpumask_test_cpu(cpu, &p->cpus_allowed))
1461 want_affine = 1; 1449 want_affine = 1;
1462 new_cpu = prev_cpu; 1450 new_cpu = prev_cpu;
1463 } 1451 }
@@ -1491,34 +1479,13 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
1491 } 1479 }
1492 1480
1493 /* 1481 /*
1494 * While iterating the domains looking for a spanning 1482 * If both cpu and prev_cpu are part of this domain,
1495 * WAKE_AFFINE domain, adjust the affine target to any idle cpu 1483 * cpu is a valid SD_WAKE_AFFINE target.
1496 * in cache sharing domains along the way.
1497 */ 1484 */
1498 if (want_affine) { 1485 if (want_affine && (tmp->flags & SD_WAKE_AFFINE) &&
1499 int target = -1; 1486 cpumask_test_cpu(prev_cpu, sched_domain_span(tmp))) {
1500 1487 affine_sd = tmp;
1501 /* 1488 want_affine = 0;
1502 * If both cpu and prev_cpu are part of this domain,
1503 * cpu is a valid SD_WAKE_AFFINE target.
1504 */
1505 if (cpumask_test_cpu(prev_cpu, sched_domain_span(tmp)))
1506 target = cpu;
1507
1508 /*
1509 * If there's an idle sibling in this domain, make that
1510 * the wake_affine target instead of the current cpu.
1511 */
1512 if (tmp->flags & SD_SHARE_PKG_RESOURCES)
1513 target = select_idle_sibling(p, tmp, target);
1514
1515 if (target >= 0) {
1516 if (tmp->flags & SD_WAKE_AFFINE) {
1517 affine_sd = tmp;
1518 want_affine = 0;
1519 }
1520 cpu = target;
1521 }
1522 } 1489 }
1523 1490
1524 if (!want_sd && !want_affine) 1491 if (!want_sd && !want_affine)
@@ -1531,22 +1498,29 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
1531 sd = tmp; 1498 sd = tmp;
1532 } 1499 }
1533 1500
1501#ifdef CONFIG_FAIR_GROUP_SCHED
1534 if (sched_feat(LB_SHARES_UPDATE)) { 1502 if (sched_feat(LB_SHARES_UPDATE)) {
1535 /* 1503 /*
1536 * Pick the largest domain to update shares over 1504 * Pick the largest domain to update shares over
1537 */ 1505 */
1538 tmp = sd; 1506 tmp = sd;
1539 if (affine_sd && (!tmp || 1507 if (affine_sd && (!tmp || affine_sd->span_weight > sd->span_weight))
1540 cpumask_weight(sched_domain_span(affine_sd)) >
1541 cpumask_weight(sched_domain_span(sd))))
1542 tmp = affine_sd; 1508 tmp = affine_sd;
1543 1509
1544 if (tmp) 1510 if (tmp) {
1511 raw_spin_unlock(&rq->lock);
1545 update_shares(tmp); 1512 update_shares(tmp);
1513 raw_spin_lock(&rq->lock);
1514 }
1546 } 1515 }
1516#endif
1547 1517
1548 if (affine_sd && wake_affine(affine_sd, p, sync)) 1518 if (affine_sd) {
1549 return cpu; 1519 if (cpu == prev_cpu || wake_affine(affine_sd, p, sync))
1520 return select_idle_sibling(p, cpu);
1521 else
1522 return select_idle_sibling(p, prev_cpu);
1523 }
1550 1524
1551 while (sd) { 1525 while (sd) {
1552 int load_idx = sd->forkexec_idx; 1526 int load_idx = sd->forkexec_idx;
@@ -1576,10 +1550,10 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
1576 1550
1577 /* Now try balancing at a lower domain level of new_cpu */ 1551 /* Now try balancing at a lower domain level of new_cpu */
1578 cpu = new_cpu; 1552 cpu = new_cpu;
1579 weight = cpumask_weight(sched_domain_span(sd)); 1553 weight = sd->span_weight;
1580 sd = NULL; 1554 sd = NULL;
1581 for_each_domain(cpu, tmp) { 1555 for_each_domain(cpu, tmp) {
1582 if (weight <= cpumask_weight(sched_domain_span(tmp))) 1556 if (weight <= tmp->span_weight)
1583 break; 1557 break;
1584 if (tmp->flags & sd_flag) 1558 if (tmp->flags & sd_flag)
1585 sd = tmp; 1559 sd = tmp;
@@ -1591,63 +1565,26 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag
1591} 1565}
1592#endif /* CONFIG_SMP */ 1566#endif /* CONFIG_SMP */
1593 1567
1594/*
1595 * Adaptive granularity
1596 *
1597 * se->avg_wakeup gives the average time a task runs until it does a wakeup,
1598 * with the limit of wakeup_gran -- when it never does a wakeup.
1599 *
1600 * So the smaller avg_wakeup is the faster we want this task to preempt,
1601 * but we don't want to treat the preemptee unfairly and therefore allow it
1602 * to run for at least the amount of time we'd like to run.
1603 *
1604 * NOTE: we use 2*avg_wakeup to increase the probability of actually doing one
1605 *
1606 * NOTE: we use *nr_running to scale with load, this nicely matches the
1607 * degrading latency on load.
1608 */
1609static unsigned long
1610adaptive_gran(struct sched_entity *curr, struct sched_entity *se)
1611{
1612 u64 this_run = curr->sum_exec_runtime - curr->prev_sum_exec_runtime;
1613 u64 expected_wakeup = 2*se->avg_wakeup * cfs_rq_of(se)->nr_running;
1614 u64 gran = 0;
1615
1616 if (this_run < expected_wakeup)
1617 gran = expected_wakeup - this_run;
1618
1619 return min_t(s64, gran, sysctl_sched_wakeup_granularity);
1620}
1621
1622static unsigned long 1568static unsigned long
1623wakeup_gran(struct sched_entity *curr, struct sched_entity *se) 1569wakeup_gran(struct sched_entity *curr, struct sched_entity *se)
1624{ 1570{
1625 unsigned long gran = sysctl_sched_wakeup_granularity; 1571 unsigned long gran = sysctl_sched_wakeup_granularity;
1626 1572
1627 if (cfs_rq_of(curr)->curr && sched_feat(ADAPTIVE_GRAN))
1628 gran = adaptive_gran(curr, se);
1629
1630 /* 1573 /*
1631 * Since its curr running now, convert the gran from real-time 1574 * Since its curr running now, convert the gran from real-time
1632 * to virtual-time in his units. 1575 * to virtual-time in his units.
1576 *
1577 * By using 'se' instead of 'curr' we penalize light tasks, so
1578 * they get preempted easier. That is, if 'se' < 'curr' then
1579 * the resulting gran will be larger, therefore penalizing the
1580 * lighter, if otoh 'se' > 'curr' then the resulting gran will
1581 * be smaller, again penalizing the lighter task.
1582 *
1583 * This is especially important for buddies when the leftmost
1584 * task is higher priority than the buddy.
1633 */ 1585 */
1634 if (sched_feat(ASYM_GRAN)) { 1586 if (unlikely(se->load.weight != NICE_0_LOAD))
1635 /* 1587 gran = calc_delta_fair(gran, se);
1636 * By using 'se' instead of 'curr' we penalize light tasks, so
1637 * they get preempted easier. That is, if 'se' < 'curr' then
1638 * the resulting gran will be larger, therefore penalizing the
1639 * lighter, if otoh 'se' > 'curr' then the resulting gran will
1640 * be smaller, again penalizing the lighter task.
1641 *
1642 * This is especially important for buddies when the leftmost
1643 * task is higher priority than the buddy.
1644 */
1645 if (unlikely(se->load.weight != NICE_0_LOAD))
1646 gran = calc_delta_fair(gran, se);
1647 } else {
1648 if (unlikely(curr->load.weight != NICE_0_LOAD))
1649 gran = calc_delta_fair(gran, curr);
1650 }
1651 1588
1652 return gran; 1589 return gran;
1653} 1590}
@@ -1705,7 +1642,6 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
1705 struct task_struct *curr = rq->curr; 1642 struct task_struct *curr = rq->curr;
1706 struct sched_entity *se = &curr->se, *pse = &p->se; 1643 struct sched_entity *se = &curr->se, *pse = &p->se;
1707 struct cfs_rq *cfs_rq = task_cfs_rq(curr); 1644 struct cfs_rq *cfs_rq = task_cfs_rq(curr);
1708 int sync = wake_flags & WF_SYNC;
1709 int scale = cfs_rq->nr_running >= sched_nr_latency; 1645 int scale = cfs_rq->nr_running >= sched_nr_latency;
1710 1646
1711 if (unlikely(rt_prio(p->prio))) 1647 if (unlikely(rt_prio(p->prio)))
@@ -1738,14 +1674,6 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
1738 if (unlikely(curr->policy == SCHED_IDLE)) 1674 if (unlikely(curr->policy == SCHED_IDLE))
1739 goto preempt; 1675 goto preempt;
1740 1676
1741 if (sched_feat(WAKEUP_SYNC) && sync)
1742 goto preempt;
1743
1744 if (sched_feat(WAKEUP_OVERLAP) &&
1745 se->avg_overlap < sysctl_sched_migration_cost &&
1746 pse->avg_overlap < sysctl_sched_migration_cost)
1747 goto preempt;
1748
1749 if (!sched_feat(WAKEUP_PREEMPT)) 1677 if (!sched_feat(WAKEUP_PREEMPT))
1750 return; 1678 return;
1751 1679
@@ -1844,13 +1772,13 @@ int can_migrate_task(struct task_struct *p, struct rq *rq, int this_cpu,
1844 * 3) are cache-hot on their current CPU. 1772 * 3) are cache-hot on their current CPU.
1845 */ 1773 */
1846 if (!cpumask_test_cpu(this_cpu, &p->cpus_allowed)) { 1774 if (!cpumask_test_cpu(this_cpu, &p->cpus_allowed)) {
1847 schedstat_inc(p, se.nr_failed_migrations_affine); 1775 schedstat_inc(p, se.statistics.nr_failed_migrations_affine);
1848 return 0; 1776 return 0;
1849 } 1777 }
1850 *all_pinned = 0; 1778 *all_pinned = 0;
1851 1779
1852 if (task_running(rq, p)) { 1780 if (task_running(rq, p)) {
1853 schedstat_inc(p, se.nr_failed_migrations_running); 1781 schedstat_inc(p, se.statistics.nr_failed_migrations_running);
1854 return 0; 1782 return 0;
1855 } 1783 }
1856 1784
@@ -1866,14 +1794,14 @@ int can_migrate_task(struct task_struct *p, struct rq *rq, int this_cpu,
1866#ifdef CONFIG_SCHEDSTATS 1794#ifdef CONFIG_SCHEDSTATS
1867 if (tsk_cache_hot) { 1795 if (tsk_cache_hot) {
1868 schedstat_inc(sd, lb_hot_gained[idle]); 1796 schedstat_inc(sd, lb_hot_gained[idle]);
1869 schedstat_inc(p, se.nr_forced_migrations); 1797 schedstat_inc(p, se.statistics.nr_forced_migrations);
1870 } 1798 }
1871#endif 1799#endif
1872 return 1; 1800 return 1;
1873 } 1801 }
1874 1802
1875 if (tsk_cache_hot) { 1803 if (tsk_cache_hot) {
1876 schedstat_inc(p, se.nr_failed_migrations_hot); 1804 schedstat_inc(p, se.statistics.nr_failed_migrations_hot);
1877 return 0; 1805 return 0;
1878 } 1806 }
1879 return 1; 1807 return 1;
@@ -2311,7 +2239,7 @@ unsigned long __weak arch_scale_freq_power(struct sched_domain *sd, int cpu)
2311 2239
2312unsigned long default_scale_smt_power(struct sched_domain *sd, int cpu) 2240unsigned long default_scale_smt_power(struct sched_domain *sd, int cpu)
2313{ 2241{
2314 unsigned long weight = cpumask_weight(sched_domain_span(sd)); 2242 unsigned long weight = sd->span_weight;
2315 unsigned long smt_gain = sd->smt_gain; 2243 unsigned long smt_gain = sd->smt_gain;
2316 2244
2317 smt_gain /= weight; 2245 smt_gain /= weight;
@@ -2344,7 +2272,7 @@ unsigned long scale_rt_power(int cpu)
2344 2272
2345static void update_cpu_power(struct sched_domain *sd, int cpu) 2273static void update_cpu_power(struct sched_domain *sd, int cpu)
2346{ 2274{
2347 unsigned long weight = cpumask_weight(sched_domain_span(sd)); 2275 unsigned long weight = sd->span_weight;
2348 unsigned long power = SCHED_LOAD_SCALE; 2276 unsigned long power = SCHED_LOAD_SCALE;
2349 struct sched_group *sdg = sd->groups; 2277 struct sched_group *sdg = sd->groups;
2350 2278
@@ -2870,6 +2798,8 @@ static int need_active_balance(struct sched_domain *sd, int sd_idle, int idle)
2870 return unlikely(sd->nr_balance_failed > sd->cache_nice_tries+2); 2798 return unlikely(sd->nr_balance_failed > sd->cache_nice_tries+2);
2871} 2799}
2872 2800
2801static int active_load_balance_cpu_stop(void *data);
2802
2873/* 2803/*
2874 * Check this_cpu to ensure it is balanced within domain. Attempt to move 2804 * Check this_cpu to ensure it is balanced within domain. Attempt to move
2875 * tasks if there is an imbalance. 2805 * tasks if there is an imbalance.
@@ -2959,8 +2889,9 @@ redo:
2959 if (need_active_balance(sd, sd_idle, idle)) { 2889 if (need_active_balance(sd, sd_idle, idle)) {
2960 raw_spin_lock_irqsave(&busiest->lock, flags); 2890 raw_spin_lock_irqsave(&busiest->lock, flags);
2961 2891
2962 /* don't kick the migration_thread, if the curr 2892 /* don't kick the active_load_balance_cpu_stop,
2963 * task on busiest cpu can't be moved to this_cpu 2893 * if the curr task on busiest cpu can't be
2894 * moved to this_cpu
2964 */ 2895 */
2965 if (!cpumask_test_cpu(this_cpu, 2896 if (!cpumask_test_cpu(this_cpu,
2966 &busiest->curr->cpus_allowed)) { 2897 &busiest->curr->cpus_allowed)) {
@@ -2970,14 +2901,22 @@ redo:
2970 goto out_one_pinned; 2901 goto out_one_pinned;
2971 } 2902 }
2972 2903
2904 /*
2905 * ->active_balance synchronizes accesses to
2906 * ->active_balance_work. Once set, it's cleared
2907 * only after active load balance is finished.
2908 */
2973 if (!busiest->active_balance) { 2909 if (!busiest->active_balance) {
2974 busiest->active_balance = 1; 2910 busiest->active_balance = 1;
2975 busiest->push_cpu = this_cpu; 2911 busiest->push_cpu = this_cpu;
2976 active_balance = 1; 2912 active_balance = 1;
2977 } 2913 }
2978 raw_spin_unlock_irqrestore(&busiest->lock, flags); 2914 raw_spin_unlock_irqrestore(&busiest->lock, flags);
2915
2979 if (active_balance) 2916 if (active_balance)
2980 wake_up_process(busiest->migration_thread); 2917 stop_one_cpu_nowait(cpu_of(busiest),
2918 active_load_balance_cpu_stop, busiest,
2919 &busiest->active_balance_work);
2981 2920
2982 /* 2921 /*
2983 * We've kicked active balancing, reset the failure 2922 * We've kicked active balancing, reset the failure
@@ -3084,24 +3023,29 @@ static void idle_balance(int this_cpu, struct rq *this_rq)
3084} 3023}
3085 3024
3086/* 3025/*
3087 * active_load_balance is run by migration threads. It pushes running tasks 3026 * active_load_balance_cpu_stop is run by cpu stopper. It pushes
3088 * off the busiest CPU onto idle CPUs. It requires at least 1 task to be 3027 * running tasks off the busiest CPU onto idle CPUs. It requires at
3089 * running on each physical CPU where possible, and avoids physical / 3028 * least 1 task to be running on each physical CPU where possible, and
3090 * logical imbalances. 3029 * avoids physical / logical imbalances.
3091 *
3092 * Called with busiest_rq locked.
3093 */ 3030 */
3094static void active_load_balance(struct rq *busiest_rq, int busiest_cpu) 3031static int active_load_balance_cpu_stop(void *data)
3095{ 3032{
3033 struct rq *busiest_rq = data;
3034 int busiest_cpu = cpu_of(busiest_rq);
3096 int target_cpu = busiest_rq->push_cpu; 3035 int target_cpu = busiest_rq->push_cpu;
3036 struct rq *target_rq = cpu_rq(target_cpu);
3097 struct sched_domain *sd; 3037 struct sched_domain *sd;
3098 struct rq *target_rq; 3038
3039 raw_spin_lock_irq(&busiest_rq->lock);
3040
3041 /* make sure the requested cpu hasn't gone down in the meantime */
3042 if (unlikely(busiest_cpu != smp_processor_id() ||
3043 !busiest_rq->active_balance))
3044 goto out_unlock;
3099 3045
3100 /* Is there any task to move? */ 3046 /* Is there any task to move? */
3101 if (busiest_rq->nr_running <= 1) 3047 if (busiest_rq->nr_running <= 1)
3102 return; 3048 goto out_unlock;
3103
3104 target_rq = cpu_rq(target_cpu);
3105 3049
3106 /* 3050 /*
3107 * This condition is "impossible", if it occurs 3051 * This condition is "impossible", if it occurs
@@ -3112,8 +3056,6 @@ static void active_load_balance(struct rq *busiest_rq, int busiest_cpu)
3112 3056
3113 /* move a task from busiest_rq to target_rq */ 3057 /* move a task from busiest_rq to target_rq */
3114 double_lock_balance(busiest_rq, target_rq); 3058 double_lock_balance(busiest_rq, target_rq);
3115 update_rq_clock(busiest_rq);
3116 update_rq_clock(target_rq);
3117 3059
3118 /* Search for an sd spanning us and the target CPU. */ 3060 /* Search for an sd spanning us and the target CPU. */
3119 for_each_domain(target_cpu, sd) { 3061 for_each_domain(target_cpu, sd) {
@@ -3132,6 +3074,10 @@ static void active_load_balance(struct rq *busiest_rq, int busiest_cpu)
3132 schedstat_inc(sd, alb_failed); 3074 schedstat_inc(sd, alb_failed);
3133 } 3075 }
3134 double_unlock_balance(busiest_rq, target_rq); 3076 double_unlock_balance(busiest_rq, target_rq);
3077out_unlock:
3078 busiest_rq->active_balance = 0;
3079 raw_spin_unlock_irq(&busiest_rq->lock);
3080 return 0;
3135} 3081}
3136 3082
3137#ifdef CONFIG_NO_HZ 3083#ifdef CONFIG_NO_HZ
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index d5059fd761d9..83c66e8ad3ee 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -1,11 +1,4 @@
1/* 1/*
2 * Disregards a certain amount of sleep time (sched_latency_ns) and
3 * considers the task to be running during that period. This gives it
4 * a service deficit on wakeup, allowing it to run sooner.
5 */
6SCHED_FEAT(FAIR_SLEEPERS, 1)
7
8/*
9 * Only give sleepers 50% of their service deficit. This allows 2 * Only give sleepers 50% of their service deficit. This allows
10 * them to run sooner, but does not allow tons of sleepers to 3 * them to run sooner, but does not allow tons of sleepers to
11 * rip the spread apart. 4 * rip the spread apart.
@@ -13,13 +6,6 @@ SCHED_FEAT(FAIR_SLEEPERS, 1)
13SCHED_FEAT(GENTLE_FAIR_SLEEPERS, 1) 6SCHED_FEAT(GENTLE_FAIR_SLEEPERS, 1)
14 7
15/* 8/*
16 * By not normalizing the sleep time, heavy tasks get an effective
17 * longer period, and lighter task an effective shorter period they
18 * are considered running.
19 */
20SCHED_FEAT(NORMALIZED_SLEEPER, 0)
21
22/*
23 * Place new tasks ahead so that they do not starve already running 9 * Place new tasks ahead so that they do not starve already running
24 * tasks 10 * tasks
25 */ 11 */
@@ -31,37 +17,6 @@ SCHED_FEAT(START_DEBIT, 1)
31SCHED_FEAT(WAKEUP_PREEMPT, 1) 17SCHED_FEAT(WAKEUP_PREEMPT, 1)
32 18
33/* 19/*
34 * Compute wakeup_gran based on task behaviour, clipped to
35 * [0, sched_wakeup_gran_ns]
36 */
37SCHED_FEAT(ADAPTIVE_GRAN, 1)
38
39/*
40 * When converting the wakeup granularity to virtual time, do it such
41 * that heavier tasks preempting a lighter task have an edge.
42 */
43SCHED_FEAT(ASYM_GRAN, 1)
44
45/*
46 * Always wakeup-preempt SYNC wakeups, see SYNC_WAKEUPS.
47 */
48SCHED_FEAT(WAKEUP_SYNC, 0)
49
50/*
51 * Wakeup preempt based on task behaviour. Tasks that do not overlap
52 * don't get preempted.
53 */
54SCHED_FEAT(WAKEUP_OVERLAP, 0)
55
56/*
57 * Use the SYNC wakeup hint, pipes and the likes use this to indicate
58 * the remote end is likely to consume the data we just wrote, and
59 * therefore has cache benefit from being placed on the same cpu, see
60 * also AFFINE_WAKEUPS.
61 */
62SCHED_FEAT(SYNC_WAKEUPS, 1)
63
64/*
65 * Based on load and program behaviour, see if it makes sense to place 20 * Based on load and program behaviour, see if it makes sense to place
66 * a newly woken task on the same cpu as the task that woke it -- 21 * a newly woken task on the same cpu as the task that woke it --
67 * improve cache locality. Typically used with SYNC wakeups as 22 * improve cache locality. Typically used with SYNC wakeups as
@@ -70,16 +25,6 @@ SCHED_FEAT(SYNC_WAKEUPS, 1)
70SCHED_FEAT(AFFINE_WAKEUPS, 1) 25SCHED_FEAT(AFFINE_WAKEUPS, 1)
71 26
72/* 27/*
73 * Weaken SYNC hint based on overlap
74 */
75SCHED_FEAT(SYNC_LESS, 1)
76
77/*
78 * Add SYNC hint based on overlap
79 */
80SCHED_FEAT(SYNC_MORE, 0)
81
82/*
83 * Prefer to schedule the task we woke last (assuming it failed 28 * Prefer to schedule the task we woke last (assuming it failed
84 * wakeup-preemption), since its likely going to consume data we 29 * wakeup-preemption), since its likely going to consume data we
85 * touched, increases cache locality. 30 * touched, increases cache locality.
diff --git a/kernel/sched_idletask.c b/kernel/sched_idletask.c
index a8a6d8a50947..9fa0f402c87c 100644
--- a/kernel/sched_idletask.c
+++ b/kernel/sched_idletask.c
@@ -6,7 +6,8 @@
6 */ 6 */
7 7
8#ifdef CONFIG_SMP 8#ifdef CONFIG_SMP
9static int select_task_rq_idle(struct task_struct *p, int sd_flag, int flags) 9static int
10select_task_rq_idle(struct rq *rq, struct task_struct *p, int sd_flag, int flags)
10{ 11{
11 return task_cpu(p); /* IDLE tasks as never migrated */ 12 return task_cpu(p); /* IDLE tasks as never migrated */
12} 13}
@@ -22,8 +23,7 @@ static void check_preempt_curr_idle(struct rq *rq, struct task_struct *p, int fl
22static struct task_struct *pick_next_task_idle(struct rq *rq) 23static struct task_struct *pick_next_task_idle(struct rq *rq)
23{ 24{
24 schedstat_inc(rq, sched_goidle); 25 schedstat_inc(rq, sched_goidle);
25 /* adjust the active tasks as we might go into a long sleep */ 26 calc_load_account_idle(rq);
26 calc_load_account_active(rq);
27 return rq->idle; 27 return rq->idle;
28} 28}
29 29
@@ -32,7 +32,7 @@ static struct task_struct *pick_next_task_idle(struct rq *rq)
32 * message if some code attempts to do it: 32 * message if some code attempts to do it:
33 */ 33 */
34static void 34static void
35dequeue_task_idle(struct rq *rq, struct task_struct *p, int sleep) 35dequeue_task_idle(struct rq *rq, struct task_struct *p, int flags)
36{ 36{
37 raw_spin_unlock_irq(&rq->lock); 37 raw_spin_unlock_irq(&rq->lock);
38 printk(KERN_ERR "bad: scheduling from the idle thread!\n"); 38 printk(KERN_ERR "bad: scheduling from the idle thread!\n");
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index b5b920ae2ea7..8afb953e31c6 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -613,7 +613,7 @@ static void update_curr_rt(struct rq *rq)
613 if (unlikely((s64)delta_exec < 0)) 613 if (unlikely((s64)delta_exec < 0))
614 delta_exec = 0; 614 delta_exec = 0;
615 615
616 schedstat_set(curr->se.exec_max, max(curr->se.exec_max, delta_exec)); 616 schedstat_set(curr->se.statistics.exec_max, max(curr->se.statistics.exec_max, delta_exec));
617 617
618 curr->se.sum_exec_runtime += delta_exec; 618 curr->se.sum_exec_runtime += delta_exec;
619 account_group_exec_runtime(curr, delta_exec); 619 account_group_exec_runtime(curr, delta_exec);
@@ -888,20 +888,20 @@ static void dequeue_rt_entity(struct sched_rt_entity *rt_se)
888 * Adding/removing a task to/from a priority array: 888 * Adding/removing a task to/from a priority array:
889 */ 889 */
890static void 890static void
891enqueue_task_rt(struct rq *rq, struct task_struct *p, int wakeup, bool head) 891enqueue_task_rt(struct rq *rq, struct task_struct *p, int flags)
892{ 892{
893 struct sched_rt_entity *rt_se = &p->rt; 893 struct sched_rt_entity *rt_se = &p->rt;
894 894
895 if (wakeup) 895 if (flags & ENQUEUE_WAKEUP)
896 rt_se->timeout = 0; 896 rt_se->timeout = 0;
897 897
898 enqueue_rt_entity(rt_se, head); 898 enqueue_rt_entity(rt_se, flags & ENQUEUE_HEAD);
899 899
900 if (!task_current(rq, p) && p->rt.nr_cpus_allowed > 1) 900 if (!task_current(rq, p) && p->rt.nr_cpus_allowed > 1)
901 enqueue_pushable_task(rq, p); 901 enqueue_pushable_task(rq, p);
902} 902}
903 903
904static void dequeue_task_rt(struct rq *rq, struct task_struct *p, int sleep) 904static void dequeue_task_rt(struct rq *rq, struct task_struct *p, int flags)
905{ 905{
906 struct sched_rt_entity *rt_se = &p->rt; 906 struct sched_rt_entity *rt_se = &p->rt;
907 907
@@ -948,10 +948,9 @@ static void yield_task_rt(struct rq *rq)
948#ifdef CONFIG_SMP 948#ifdef CONFIG_SMP
949static int find_lowest_rq(struct task_struct *task); 949static int find_lowest_rq(struct task_struct *task);
950 950
951static int select_task_rq_rt(struct task_struct *p, int sd_flag, int flags) 951static int
952select_task_rq_rt(struct rq *rq, struct task_struct *p, int sd_flag, int flags)
952{ 953{
953 struct rq *rq = task_rq(p);
954
955 if (sd_flag != SD_BALANCE_WAKE) 954 if (sd_flag != SD_BALANCE_WAKE)
956 return smp_processor_id(); 955 return smp_processor_id();
957 956
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
index 9bb9fb1bd79c..ef51d1fcf5e6 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -1,17 +1,381 @@
1/* Copyright 2008, 2005 Rusty Russell rusty@rustcorp.com.au IBM Corporation. 1/*
2 * GPL v2 and any later version. 2 * kernel/stop_machine.c
3 *
4 * Copyright (C) 2008, 2005 IBM Corporation.
5 * Copyright (C) 2008, 2005 Rusty Russell rusty@rustcorp.com.au
6 * Copyright (C) 2010 SUSE Linux Products GmbH
7 * Copyright (C) 2010 Tejun Heo <tj@kernel.org>
8 *
9 * This file is released under the GPLv2 and any later version.
3 */ 10 */
11#include <linux/completion.h>
4#include <linux/cpu.h> 12#include <linux/cpu.h>
5#include <linux/err.h> 13#include <linux/init.h>
6#include <linux/kthread.h> 14#include <linux/kthread.h>
7#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/percpu.h>
8#include <linux/sched.h> 17#include <linux/sched.h>
9#include <linux/stop_machine.h> 18#include <linux/stop_machine.h>
10#include <linux/syscalls.h>
11#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/kallsyms.h>
12 21
13#include <asm/atomic.h> 22#include <asm/atomic.h>
14#include <asm/uaccess.h> 23
24/*
25 * Structure to determine completion condition and record errors. May
26 * be shared by works on different cpus.
27 */
28struct cpu_stop_done {
29 atomic_t nr_todo; /* nr left to execute */
30 bool executed; /* actually executed? */
31 int ret; /* collected return value */
32 struct completion completion; /* fired if nr_todo reaches 0 */
33};
34
35/* the actual stopper, one per every possible cpu, enabled on online cpus */
36struct cpu_stopper {
37 spinlock_t lock;
38 struct list_head works; /* list of pending works */
39 struct task_struct *thread; /* stopper thread */
40 bool enabled; /* is this stopper enabled? */
41};
42
43static DEFINE_PER_CPU(struct cpu_stopper, cpu_stopper);
44
45static void cpu_stop_init_done(struct cpu_stop_done *done, unsigned int nr_todo)
46{
47 memset(done, 0, sizeof(*done));
48 atomic_set(&done->nr_todo, nr_todo);
49 init_completion(&done->completion);
50}
51
52/* signal completion unless @done is NULL */
53static void cpu_stop_signal_done(struct cpu_stop_done *done, bool executed)
54{
55 if (done) {
56 if (executed)
57 done->executed = true;
58 if (atomic_dec_and_test(&done->nr_todo))
59 complete(&done->completion);
60 }
61}
62
63/* queue @work to @stopper. if offline, @work is completed immediately */
64static void cpu_stop_queue_work(struct cpu_stopper *stopper,
65 struct cpu_stop_work *work)
66{
67 unsigned long flags;
68
69 spin_lock_irqsave(&stopper->lock, flags);
70
71 if (stopper->enabled) {
72 list_add_tail(&work->list, &stopper->works);
73 wake_up_process(stopper->thread);
74 } else
75 cpu_stop_signal_done(work->done, false);
76
77 spin_unlock_irqrestore(&stopper->lock, flags);
78}
79
80/**
81 * stop_one_cpu - stop a cpu
82 * @cpu: cpu to stop
83 * @fn: function to execute
84 * @arg: argument to @fn
85 *
86 * Execute @fn(@arg) on @cpu. @fn is run in a process context with
87 * the highest priority preempting any task on the cpu and
88 * monopolizing it. This function returns after the execution is
89 * complete.
90 *
91 * This function doesn't guarantee @cpu stays online till @fn
92 * completes. If @cpu goes down in the middle, execution may happen
93 * partially or fully on different cpus. @fn should either be ready
94 * for that or the caller should ensure that @cpu stays online until
95 * this function completes.
96 *
97 * CONTEXT:
98 * Might sleep.
99 *
100 * RETURNS:
101 * -ENOENT if @fn(@arg) was not executed because @cpu was offline;
102 * otherwise, the return value of @fn.
103 */
104int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg)
105{
106 struct cpu_stop_done done;
107 struct cpu_stop_work work = { .fn = fn, .arg = arg, .done = &done };
108
109 cpu_stop_init_done(&done, 1);
110 cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu), &work);
111 wait_for_completion(&done.completion);
112 return done.executed ? done.ret : -ENOENT;
113}
114
115/**
116 * stop_one_cpu_nowait - stop a cpu but don't wait for completion
117 * @cpu: cpu to stop
118 * @fn: function to execute
119 * @arg: argument to @fn
120 *
121 * Similar to stop_one_cpu() but doesn't wait for completion. The
122 * caller is responsible for ensuring @work_buf is currently unused
123 * and will remain untouched until stopper starts executing @fn.
124 *
125 * CONTEXT:
126 * Don't care.
127 */
128void stop_one_cpu_nowait(unsigned int cpu, cpu_stop_fn_t fn, void *arg,
129 struct cpu_stop_work *work_buf)
130{
131 *work_buf = (struct cpu_stop_work){ .fn = fn, .arg = arg, };
132 cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu), work_buf);
133}
134
135/* static data for stop_cpus */
136static DEFINE_MUTEX(stop_cpus_mutex);
137static DEFINE_PER_CPU(struct cpu_stop_work, stop_cpus_work);
138
139int __stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg)
140{
141 struct cpu_stop_work *work;
142 struct cpu_stop_done done;
143 unsigned int cpu;
144
145 /* initialize works and done */
146 for_each_cpu(cpu, cpumask) {
147 work = &per_cpu(stop_cpus_work, cpu);
148 work->fn = fn;
149 work->arg = arg;
150 work->done = &done;
151 }
152 cpu_stop_init_done(&done, cpumask_weight(cpumask));
153
154 /*
155 * Disable preemption while queueing to avoid getting
156 * preempted by a stopper which might wait for other stoppers
157 * to enter @fn which can lead to deadlock.
158 */
159 preempt_disable();
160 for_each_cpu(cpu, cpumask)
161 cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu),
162 &per_cpu(stop_cpus_work, cpu));
163 preempt_enable();
164
165 wait_for_completion(&done.completion);
166 return done.executed ? done.ret : -ENOENT;
167}
168
169/**
170 * stop_cpus - stop multiple cpus
171 * @cpumask: cpus to stop
172 * @fn: function to execute
173 * @arg: argument to @fn
174 *
175 * Execute @fn(@arg) on online cpus in @cpumask. On each target cpu,
176 * @fn is run in a process context with the highest priority
177 * preempting any task on the cpu and monopolizing it. This function
178 * returns after all executions are complete.
179 *
180 * This function doesn't guarantee the cpus in @cpumask stay online
181 * till @fn completes. If some cpus go down in the middle, execution
182 * on the cpu may happen partially or fully on different cpus. @fn
183 * should either be ready for that or the caller should ensure that
184 * the cpus stay online until this function completes.
185 *
186 * All stop_cpus() calls are serialized making it safe for @fn to wait
187 * for all cpus to start executing it.
188 *
189 * CONTEXT:
190 * Might sleep.
191 *
192 * RETURNS:
193 * -ENOENT if @fn(@arg) was not executed at all because all cpus in
194 * @cpumask were offline; otherwise, 0 if all executions of @fn
195 * returned 0, any non zero return value if any returned non zero.
196 */
197int stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg)
198{
199 int ret;
200
201 /* static works are used, process one request at a time */
202 mutex_lock(&stop_cpus_mutex);
203 ret = __stop_cpus(cpumask, fn, arg);
204 mutex_unlock(&stop_cpus_mutex);
205 return ret;
206}
207
208/**
209 * try_stop_cpus - try to stop multiple cpus
210 * @cpumask: cpus to stop
211 * @fn: function to execute
212 * @arg: argument to @fn
213 *
214 * Identical to stop_cpus() except that it fails with -EAGAIN if
215 * someone else is already using the facility.
216 *
217 * CONTEXT:
218 * Might sleep.
219 *
220 * RETURNS:
221 * -EAGAIN if someone else is already stopping cpus, -ENOENT if
222 * @fn(@arg) was not executed at all because all cpus in @cpumask were
223 * offline; otherwise, 0 if all executions of @fn returned 0, any non
224 * zero return value if any returned non zero.
225 */
226int try_stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg)
227{
228 int ret;
229
230 /* static works are used, process one request at a time */
231 if (!mutex_trylock(&stop_cpus_mutex))
232 return -EAGAIN;
233 ret = __stop_cpus(cpumask, fn, arg);
234 mutex_unlock(&stop_cpus_mutex);
235 return ret;
236}
237
238static int cpu_stopper_thread(void *data)
239{
240 struct cpu_stopper *stopper = data;
241 struct cpu_stop_work *work;
242 int ret;
243
244repeat:
245 set_current_state(TASK_INTERRUPTIBLE); /* mb paired w/ kthread_stop */
246
247 if (kthread_should_stop()) {
248 __set_current_state(TASK_RUNNING);
249 return 0;
250 }
251
252 work = NULL;
253 spin_lock_irq(&stopper->lock);
254 if (!list_empty(&stopper->works)) {
255 work = list_first_entry(&stopper->works,
256 struct cpu_stop_work, list);
257 list_del_init(&work->list);
258 }
259 spin_unlock_irq(&stopper->lock);
260
261 if (work) {
262 cpu_stop_fn_t fn = work->fn;
263 void *arg = work->arg;
264 struct cpu_stop_done *done = work->done;
265 char ksym_buf[KSYM_NAME_LEN];
266
267 __set_current_state(TASK_RUNNING);
268
269 /* cpu stop callbacks are not allowed to sleep */
270 preempt_disable();
271
272 ret = fn(arg);
273 if (ret)
274 done->ret = ret;
275
276 /* restore preemption and check it's still balanced */
277 preempt_enable();
278 WARN_ONCE(preempt_count(),
279 "cpu_stop: %s(%p) leaked preempt count\n",
280 kallsyms_lookup((unsigned long)fn, NULL, NULL, NULL,
281 ksym_buf), arg);
282
283 cpu_stop_signal_done(done, true);
284 } else
285 schedule();
286
287 goto repeat;
288}
289
290/* manage stopper for a cpu, mostly lifted from sched migration thread mgmt */
291static int __cpuinit cpu_stop_cpu_callback(struct notifier_block *nfb,
292 unsigned long action, void *hcpu)
293{
294 struct sched_param param = { .sched_priority = MAX_RT_PRIO - 1 };
295 unsigned int cpu = (unsigned long)hcpu;
296 struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu);
297 struct cpu_stop_work *work;
298 struct task_struct *p;
299
300 switch (action & ~CPU_TASKS_FROZEN) {
301 case CPU_UP_PREPARE:
302 BUG_ON(stopper->thread || stopper->enabled ||
303 !list_empty(&stopper->works));
304 p = kthread_create(cpu_stopper_thread, stopper, "migration/%d",
305 cpu);
306 if (IS_ERR(p))
307 return NOTIFY_BAD;
308 sched_setscheduler_nocheck(p, SCHED_FIFO, &param);
309 get_task_struct(p);
310 stopper->thread = p;
311 break;
312
313 case CPU_ONLINE:
314 kthread_bind(stopper->thread, cpu);
315 /* strictly unnecessary, as first user will wake it */
316 wake_up_process(stopper->thread);
317 /* mark enabled */
318 spin_lock_irq(&stopper->lock);
319 stopper->enabled = true;
320 spin_unlock_irq(&stopper->lock);
321 break;
322
323#ifdef CONFIG_HOTPLUG_CPU
324 case CPU_UP_CANCELED:
325 case CPU_DEAD:
326 /* kill the stopper */
327 kthread_stop(stopper->thread);
328 /* drain remaining works */
329 spin_lock_irq(&stopper->lock);
330 list_for_each_entry(work, &stopper->works, list)
331 cpu_stop_signal_done(work->done, false);
332 stopper->enabled = false;
333 spin_unlock_irq(&stopper->lock);
334 /* release the stopper */
335 put_task_struct(stopper->thread);
336 stopper->thread = NULL;
337 break;
338#endif
339 }
340
341 return NOTIFY_OK;
342}
343
344/*
345 * Give it a higher priority so that cpu stopper is available to other
346 * cpu notifiers. It currently shares the same priority as sched
347 * migration_notifier.
348 */
349static struct notifier_block __cpuinitdata cpu_stop_cpu_notifier = {
350 .notifier_call = cpu_stop_cpu_callback,
351 .priority = 10,
352};
353
354static int __init cpu_stop_init(void)
355{
356 void *bcpu = (void *)(long)smp_processor_id();
357 unsigned int cpu;
358 int err;
359
360 for_each_possible_cpu(cpu) {
361 struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu);
362
363 spin_lock_init(&stopper->lock);
364 INIT_LIST_HEAD(&stopper->works);
365 }
366
367 /* start one for the boot cpu */
368 err = cpu_stop_cpu_callback(&cpu_stop_cpu_notifier, CPU_UP_PREPARE,
369 bcpu);
370 BUG_ON(err == NOTIFY_BAD);
371 cpu_stop_cpu_callback(&cpu_stop_cpu_notifier, CPU_ONLINE, bcpu);
372 register_cpu_notifier(&cpu_stop_cpu_notifier);
373
374 return 0;
375}
376early_initcall(cpu_stop_init);
377
378#ifdef CONFIG_STOP_MACHINE
15 379
16/* This controls the threads on each CPU. */ 380/* This controls the threads on each CPU. */
17enum stopmachine_state { 381enum stopmachine_state {
@@ -26,174 +390,94 @@ enum stopmachine_state {
26 /* Exit */ 390 /* Exit */
27 STOPMACHINE_EXIT, 391 STOPMACHINE_EXIT,
28}; 392};
29static enum stopmachine_state state;
30 393
31struct stop_machine_data { 394struct stop_machine_data {
32 int (*fn)(void *); 395 int (*fn)(void *);
33 void *data; 396 void *data;
34 int fnret; 397 /* Like num_online_cpus(), but hotplug cpu uses us, so we need this. */
398 unsigned int num_threads;
399 const struct cpumask *active_cpus;
400
401 enum stopmachine_state state;
402 atomic_t thread_ack;
35}; 403};
36 404
37/* Like num_online_cpus(), but hotplug cpu uses us, so we need this. */ 405static void set_state(struct stop_machine_data *smdata,
38static unsigned int num_threads; 406 enum stopmachine_state newstate)
39static atomic_t thread_ack;
40static DEFINE_MUTEX(lock);
41/* setup_lock protects refcount, stop_machine_wq and stop_machine_work. */
42static DEFINE_MUTEX(setup_lock);
43/* Users of stop_machine. */
44static int refcount;
45static struct workqueue_struct *stop_machine_wq;
46static struct stop_machine_data active, idle;
47static const struct cpumask *active_cpus;
48static void __percpu *stop_machine_work;
49
50static void set_state(enum stopmachine_state newstate)
51{ 407{
52 /* Reset ack counter. */ 408 /* Reset ack counter. */
53 atomic_set(&thread_ack, num_threads); 409 atomic_set(&smdata->thread_ack, smdata->num_threads);
54 smp_wmb(); 410 smp_wmb();
55 state = newstate; 411 smdata->state = newstate;
56} 412}
57 413
58/* Last one to ack a state moves to the next state. */ 414/* Last one to ack a state moves to the next state. */
59static void ack_state(void) 415static void ack_state(struct stop_machine_data *smdata)
60{ 416{
61 if (atomic_dec_and_test(&thread_ack)) 417 if (atomic_dec_and_test(&smdata->thread_ack))
62 set_state(state + 1); 418 set_state(smdata, smdata->state + 1);
63} 419}
64 420
65/* This is the actual function which stops the CPU. It runs 421/* This is the cpu_stop function which stops the CPU. */
66 * in the context of a dedicated stopmachine workqueue. */ 422static int stop_machine_cpu_stop(void *data)
67static void stop_cpu(struct work_struct *unused)
68{ 423{
424 struct stop_machine_data *smdata = data;
69 enum stopmachine_state curstate = STOPMACHINE_NONE; 425 enum stopmachine_state curstate = STOPMACHINE_NONE;
70 struct stop_machine_data *smdata = &idle; 426 int cpu = smp_processor_id(), err = 0;
71 int cpu = smp_processor_id(); 427 bool is_active;
72 int err; 428
429 if (!smdata->active_cpus)
430 is_active = cpu == cpumask_first(cpu_online_mask);
431 else
432 is_active = cpumask_test_cpu(cpu, smdata->active_cpus);
73 433
74 if (!active_cpus) {
75 if (cpu == cpumask_first(cpu_online_mask))
76 smdata = &active;
77 } else {
78 if (cpumask_test_cpu(cpu, active_cpus))
79 smdata = &active;
80 }
81 /* Simple state machine */ 434 /* Simple state machine */
82 do { 435 do {
83 /* Chill out and ensure we re-read stopmachine_state. */ 436 /* Chill out and ensure we re-read stopmachine_state. */
84 cpu_relax(); 437 cpu_relax();
85 if (state != curstate) { 438 if (smdata->state != curstate) {
86 curstate = state; 439 curstate = smdata->state;
87 switch (curstate) { 440 switch (curstate) {
88 case STOPMACHINE_DISABLE_IRQ: 441 case STOPMACHINE_DISABLE_IRQ:
89 local_irq_disable(); 442 local_irq_disable();
90 hard_irq_disable(); 443 hard_irq_disable();
91 break; 444 break;
92 case STOPMACHINE_RUN: 445 case STOPMACHINE_RUN:
93 /* On multiple CPUs only a single error code 446 if (is_active)
94 * is needed to tell that something failed. */ 447 err = smdata->fn(smdata->data);
95 err = smdata->fn(smdata->data);
96 if (err)
97 smdata->fnret = err;
98 break; 448 break;
99 default: 449 default:
100 break; 450 break;
101 } 451 }
102 ack_state(); 452 ack_state(smdata);
103 } 453 }
104 } while (curstate != STOPMACHINE_EXIT); 454 } while (curstate != STOPMACHINE_EXIT);
105 455
106 local_irq_enable(); 456 local_irq_enable();
457 return err;
107} 458}
108 459
109/* Callback for CPUs which aren't supposed to do anything. */
110static int chill(void *unused)
111{
112 return 0;
113}
114
115int stop_machine_create(void)
116{
117 mutex_lock(&setup_lock);
118 if (refcount)
119 goto done;
120 stop_machine_wq = create_rt_workqueue("kstop");
121 if (!stop_machine_wq)
122 goto err_out;
123 stop_machine_work = alloc_percpu(struct work_struct);
124 if (!stop_machine_work)
125 goto err_out;
126done:
127 refcount++;
128 mutex_unlock(&setup_lock);
129 return 0;
130
131err_out:
132 if (stop_machine_wq)
133 destroy_workqueue(stop_machine_wq);
134 mutex_unlock(&setup_lock);
135 return -ENOMEM;
136}
137EXPORT_SYMBOL_GPL(stop_machine_create);
138
139void stop_machine_destroy(void)
140{
141 mutex_lock(&setup_lock);
142 refcount--;
143 if (refcount)
144 goto done;
145 destroy_workqueue(stop_machine_wq);
146 free_percpu(stop_machine_work);
147done:
148 mutex_unlock(&setup_lock);
149}
150EXPORT_SYMBOL_GPL(stop_machine_destroy);
151
152int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus) 460int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus)
153{ 461{
154 struct work_struct *sm_work; 462 struct stop_machine_data smdata = { .fn = fn, .data = data,
155 int i, ret; 463 .num_threads = num_online_cpus(),
156 464 .active_cpus = cpus };
157 /* Set up initial state. */ 465
158 mutex_lock(&lock); 466 /* Set the initial state and stop all online cpus. */
159 num_threads = num_online_cpus(); 467 set_state(&smdata, STOPMACHINE_PREPARE);
160 active_cpus = cpus; 468 return stop_cpus(cpu_online_mask, stop_machine_cpu_stop, &smdata);
161 active.fn = fn;
162 active.data = data;
163 active.fnret = 0;
164 idle.fn = chill;
165 idle.data = NULL;
166
167 set_state(STOPMACHINE_PREPARE);
168
169 /* Schedule the stop_cpu work on all cpus: hold this CPU so one
170 * doesn't hit this CPU until we're ready. */
171 get_cpu();
172 for_each_online_cpu(i) {
173 sm_work = per_cpu_ptr(stop_machine_work, i);
174 INIT_WORK(sm_work, stop_cpu);
175 queue_work_on(i, stop_machine_wq, sm_work);
176 }
177 /* This will release the thread on our CPU. */
178 put_cpu();
179 flush_workqueue(stop_machine_wq);
180 ret = active.fnret;
181 mutex_unlock(&lock);
182 return ret;
183} 469}
184 470
185int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus) 471int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus)
186{ 472{
187 int ret; 473 int ret;
188 474
189 ret = stop_machine_create();
190 if (ret)
191 return ret;
192 /* No CPUs can come up or down during this. */ 475 /* No CPUs can come up or down during this. */
193 get_online_cpus(); 476 get_online_cpus();
194 ret = __stop_machine(fn, data, cpus); 477 ret = __stop_machine(fn, data, cpus);
195 put_online_cpus(); 478 put_online_cpus();
196 stop_machine_destroy();
197 return ret; 479 return ret;
198} 480}
199EXPORT_SYMBOL_GPL(stop_machine); 481EXPORT_SYMBOL_GPL(stop_machine);
482
483#endif /* CONFIG_STOP_MACHINE */
diff --git a/kernel/sys.c b/kernel/sys.c
index 6d1a7e0f9d5b..7cb426a58965 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1118,7 +1118,7 @@ DECLARE_RWSEM(uts_sem);
1118 1118
1119#ifdef COMPAT_UTS_MACHINE 1119#ifdef COMPAT_UTS_MACHINE
1120#define override_architecture(name) \ 1120#define override_architecture(name) \
1121 (current->personality == PER_LINUX32 && \ 1121 (personality(current->personality) == PER_LINUX32 && \
1122 copy_to_user(name->machine, COMPAT_UTS_MACHINE, \ 1122 copy_to_user(name->machine, COMPAT_UTS_MACHINE, \
1123 sizeof(COMPAT_UTS_MACHINE))) 1123 sizeof(COMPAT_UTS_MACHINE)))
1124#else 1124#else
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index f992762d7f51..1d7b9bc1c034 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -150,14 +150,32 @@ static void tick_nohz_update_jiffies(ktime_t now)
150 touch_softlockup_watchdog(); 150 touch_softlockup_watchdog();
151} 151}
152 152
153/*
154 * Updates the per cpu time idle statistics counters
155 */
156static void
157update_ts_time_stats(struct tick_sched *ts, ktime_t now, u64 *last_update_time)
158{
159 ktime_t delta;
160
161 if (ts->idle_active) {
162 delta = ktime_sub(now, ts->idle_entrytime);
163 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
164 if (nr_iowait_cpu() > 0)
165 ts->iowait_sleeptime = ktime_add(ts->iowait_sleeptime, delta);
166 ts->idle_entrytime = now;
167 }
168
169 if (last_update_time)
170 *last_update_time = ktime_to_us(now);
171
172}
173
153static void tick_nohz_stop_idle(int cpu, ktime_t now) 174static void tick_nohz_stop_idle(int cpu, ktime_t now)
154{ 175{
155 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); 176 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
156 ktime_t delta;
157 177
158 delta = ktime_sub(now, ts->idle_entrytime); 178 update_ts_time_stats(ts, now, NULL);
159 ts->idle_lastupdate = now;
160 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
161 ts->idle_active = 0; 179 ts->idle_active = 0;
162 180
163 sched_clock_idle_wakeup_event(0); 181 sched_clock_idle_wakeup_event(0);
@@ -165,20 +183,32 @@ static void tick_nohz_stop_idle(int cpu, ktime_t now)
165 183
166static ktime_t tick_nohz_start_idle(struct tick_sched *ts) 184static ktime_t tick_nohz_start_idle(struct tick_sched *ts)
167{ 185{
168 ktime_t now, delta; 186 ktime_t now;
169 187
170 now = ktime_get(); 188 now = ktime_get();
171 if (ts->idle_active) { 189
172 delta = ktime_sub(now, ts->idle_entrytime); 190 update_ts_time_stats(ts, now, NULL);
173 ts->idle_lastupdate = now; 191
174 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
175 }
176 ts->idle_entrytime = now; 192 ts->idle_entrytime = now;
177 ts->idle_active = 1; 193 ts->idle_active = 1;
178 sched_clock_idle_sleep_event(); 194 sched_clock_idle_sleep_event();
179 return now; 195 return now;
180} 196}
181 197
198/**
199 * get_cpu_idle_time_us - get the total idle time of a cpu
200 * @cpu: CPU number to query
201 * @last_update_time: variable to store update time in
202 *
203 * Return the cummulative idle time (since boot) for a given
204 * CPU, in microseconds. The idle time returned includes
205 * the iowait time (unlike what "top" and co report).
206 *
207 * This time is measured via accounting rather than sampling,
208 * and is as accurate as ktime_get() is.
209 *
210 * This function returns -1 if NOHZ is not enabled.
211 */
182u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time) 212u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time)
183{ 213{
184 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); 214 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
@@ -186,15 +216,38 @@ u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time)
186 if (!tick_nohz_enabled) 216 if (!tick_nohz_enabled)
187 return -1; 217 return -1;
188 218
189 if (ts->idle_active) 219 update_ts_time_stats(ts, ktime_get(), last_update_time);
190 *last_update_time = ktime_to_us(ts->idle_lastupdate);
191 else
192 *last_update_time = ktime_to_us(ktime_get());
193 220
194 return ktime_to_us(ts->idle_sleeptime); 221 return ktime_to_us(ts->idle_sleeptime);
195} 222}
196EXPORT_SYMBOL_GPL(get_cpu_idle_time_us); 223EXPORT_SYMBOL_GPL(get_cpu_idle_time_us);
197 224
225/*
226 * get_cpu_iowait_time_us - get the total iowait time of a cpu
227 * @cpu: CPU number to query
228 * @last_update_time: variable to store update time in
229 *
230 * Return the cummulative iowait time (since boot) for a given
231 * CPU, in microseconds.
232 *
233 * This time is measured via accounting rather than sampling,
234 * and is as accurate as ktime_get() is.
235 *
236 * This function returns -1 if NOHZ is not enabled.
237 */
238u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time)
239{
240 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
241
242 if (!tick_nohz_enabled)
243 return -1;
244
245 update_ts_time_stats(ts, ktime_get(), last_update_time);
246
247 return ktime_to_us(ts->iowait_sleeptime);
248}
249EXPORT_SYMBOL_GPL(get_cpu_iowait_time_us);
250
198/** 251/**
199 * tick_nohz_stop_sched_tick - stop the idle tick from the idle task 252 * tick_nohz_stop_sched_tick - stop the idle tick from the idle task
200 * 253 *
@@ -262,6 +315,9 @@ void tick_nohz_stop_sched_tick(int inidle)
262 goto end; 315 goto end;
263 } 316 }
264 317
318 if (nohz_ratelimit(cpu))
319 goto end;
320
265 ts->idle_calls++; 321 ts->idle_calls++;
266 /* Read jiffies and the time when jiffies were updated last */ 322 /* Read jiffies and the time when jiffies were updated last */
267 do { 323 do {
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index 1a4a7dd78777..ab8f5e33fa92 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -176,6 +176,7 @@ static void print_cpu(struct seq_file *m, int cpu, u64 now)
176 P_ns(idle_waketime); 176 P_ns(idle_waketime);
177 P_ns(idle_exittime); 177 P_ns(idle_exittime);
178 P_ns(idle_sleeptime); 178 P_ns(idle_sleeptime);
179 P_ns(iowait_sleeptime);
179 P(last_jiffies); 180 P(last_jiffies);
180 P(next_jiffies); 181 P(next_jiffies);
181 P_ns(idle_expires); 182 P_ns(idle_expires);
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 8c9c2934c45f..32837e19e3bd 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -3234,8 +3234,7 @@ free:
3234} 3234}
3235 3235
3236static void 3236static void
3237ftrace_graph_probe_sched_switch(struct rq *__rq, struct task_struct *prev, 3237ftrace_graph_probe_sched_switch(struct task_struct *prev, struct task_struct *next)
3238 struct task_struct *next)
3239{ 3238{
3240 unsigned long long timestamp; 3239 unsigned long long timestamp;
3241 int index; 3240 int index;
diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
index 5fca0f51fde4..a55fccfede5d 100644
--- a/kernel/trace/trace_sched_switch.c
+++ b/kernel/trace/trace_sched_switch.c
@@ -50,8 +50,7 @@ tracing_sched_switch_trace(struct trace_array *tr,
50} 50}
51 51
52static void 52static void
53probe_sched_switch(struct rq *__rq, struct task_struct *prev, 53probe_sched_switch(struct task_struct *prev, struct task_struct *next)
54 struct task_struct *next)
55{ 54{
56 struct trace_array_cpu *data; 55 struct trace_array_cpu *data;
57 unsigned long flags; 56 unsigned long flags;
@@ -109,7 +108,7 @@ tracing_sched_wakeup_trace(struct trace_array *tr,
109} 108}
110 109
111static void 110static void
112probe_sched_wakeup(struct rq *__rq, struct task_struct *wakee, int success) 111probe_sched_wakeup(struct task_struct *wakee, int success)
113{ 112{
114 struct trace_array_cpu *data; 113 struct trace_array_cpu *data;
115 unsigned long flags; 114 unsigned long flags;
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index 0271742abb8d..8052446ceeaa 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -107,8 +107,7 @@ static void probe_wakeup_migrate_task(struct task_struct *task, int cpu)
107} 107}
108 108
109static void notrace 109static void notrace
110probe_wakeup_sched_switch(struct rq *rq, struct task_struct *prev, 110probe_wakeup_sched_switch(struct task_struct *prev, struct task_struct *next)
111 struct task_struct *next)
112{ 111{
113 struct trace_array_cpu *data; 112 struct trace_array_cpu *data;
114 cycle_t T0, T1, delta; 113 cycle_t T0, T1, delta;
@@ -200,7 +199,7 @@ static void wakeup_reset(struct trace_array *tr)
200} 199}
201 200
202static void 201static void
203probe_wakeup(struct rq *rq, struct task_struct *p, int success) 202probe_wakeup(struct task_struct *p, int success)
204{ 203{
205 struct trace_array_cpu *data; 204 struct trace_array_cpu *data;
206 int cpu = smp_processor_id(); 205 int cpu = smp_processor_id();
diff --git a/kernel/user.c b/kernel/user.c
index 766467b3bcb7..7e72614b736d 100644
--- a/kernel/user.c
+++ b/kernel/user.c
@@ -16,7 +16,6 @@
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/user_namespace.h> 18#include <linux/user_namespace.h>
19#include "cred-internals.h"
20 19
21struct user_namespace init_user_ns = { 20struct user_namespace init_user_ns = {
22 .kref = { 21 .kref = {
@@ -137,9 +136,6 @@ struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
137 struct hlist_head *hashent = uidhashentry(ns, uid); 136 struct hlist_head *hashent = uidhashentry(ns, uid);
138 struct user_struct *up, *new; 137 struct user_struct *up, *new;
139 138
140 /* Make uid_hash_find() + uids_user_create() + uid_hash_insert()
141 * atomic.
142 */
143 spin_lock_irq(&uidhash_lock); 139 spin_lock_irq(&uidhash_lock);
144 up = uid_hash_find(uid, hashent); 140 up = uid_hash_find(uid, hashent);
145 spin_unlock_irq(&uidhash_lock); 141 spin_unlock_irq(&uidhash_lock);
@@ -161,11 +157,6 @@ struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
161 spin_lock_irq(&uidhash_lock); 157 spin_lock_irq(&uidhash_lock);
162 up = uid_hash_find(uid, hashent); 158 up = uid_hash_find(uid, hashent);
163 if (up) { 159 if (up) {
164 /* This case is not possible when CONFIG_USER_SCHED
165 * is defined, since we serialize alloc_uid() using
166 * uids_mutex. Hence no need to call
167 * sched_destroy_user() or remove_user_sysfs_dir().
168 */
169 key_put(new->uid_keyring); 160 key_put(new->uid_keyring);
170 key_put(new->session_keyring); 161 key_put(new->session_keyring);
171 kmem_cache_free(uid_cachep, new); 162 kmem_cache_free(uid_cachep, new);
@@ -178,8 +169,6 @@ struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
178 169
179 return up; 170 return up;
180 171
181 put_user_ns(new->user_ns);
182 kmem_cache_free(uid_cachep, new);
183out_unlock: 172out_unlock:
184 return NULL; 173 return NULL;
185} 174}
diff --git a/lib/decompress_unlzo.c b/lib/decompress_unlzo.c
index db521f45626e..bcb3a4bd68ff 100644
--- a/lib/decompress_unlzo.c
+++ b/lib/decompress_unlzo.c
@@ -97,7 +97,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
97 u32 src_len, dst_len; 97 u32 src_len, dst_len;
98 size_t tmp; 98 size_t tmp;
99 u8 *in_buf, *in_buf_save, *out_buf; 99 u8 *in_buf, *in_buf_save, *out_buf;
100 int obytes_processed = 0; 100 int ret = -1;
101 101
102 set_error_fn(error_fn); 102 set_error_fn(error_fn);
103 103
@@ -174,15 +174,22 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
174 174
175 /* decompress */ 175 /* decompress */
176 tmp = dst_len; 176 tmp = dst_len;
177 r = lzo1x_decompress_safe((u8 *) in_buf, src_len, 177
178 /* When the input data is not compressed at all,
179 * lzo1x_decompress_safe will fail, so call memcpy()
180 * instead */
181 if (unlikely(dst_len == src_len))
182 memcpy(out_buf, in_buf, src_len);
183 else {
184 r = lzo1x_decompress_safe((u8 *) in_buf, src_len,
178 out_buf, &tmp); 185 out_buf, &tmp);
179 186
180 if (r != LZO_E_OK || dst_len != tmp) { 187 if (r != LZO_E_OK || dst_len != tmp) {
181 error("Compressed data violation"); 188 error("Compressed data violation");
182 goto exit_2; 189 goto exit_2;
190 }
183 } 191 }
184 192
185 obytes_processed += dst_len;
186 if (flush) 193 if (flush)
187 flush(out_buf, dst_len); 194 flush(out_buf, dst_len);
188 if (output) 195 if (output)
@@ -196,6 +203,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
196 in_buf += src_len; 203 in_buf += src_len;
197 } 204 }
198 205
206 ret = 0;
199exit_2: 207exit_2:
200 if (!input) 208 if (!input)
201 free(in_buf); 209 free(in_buf);
@@ -203,7 +211,7 @@ exit_1:
203 if (!output) 211 if (!output)
204 free(out_buf); 212 free(out_buf);
205exit: 213exit:
206 return obytes_processed; 214 return ret;
207} 215}
208 216
209#define decompress unlzo 217#define decompress unlzo
diff --git a/lib/flex_array.c b/lib/flex_array.c
index 66eef2e4483e..41b1804fa728 100644
--- a/lib/flex_array.c
+++ b/lib/flex_array.c
@@ -99,7 +99,7 @@ struct flex_array *flex_array_alloc(int element_size, unsigned int total,
99 ret->element_size = element_size; 99 ret->element_size = element_size;
100 ret->total_nr_elements = total; 100 ret->total_nr_elements = total;
101 if (elements_fit_in_base(ret) && !(flags & __GFP_ZERO)) 101 if (elements_fit_in_base(ret) && !(flags & __GFP_ZERO))
102 memset(ret->parts[0], FLEX_ARRAY_FREE, 102 memset(&ret->parts[0], FLEX_ARRAY_FREE,
103 FLEX_ARRAY_BASE_BYTES_LEFT); 103 FLEX_ARRAY_BASE_BYTES_LEFT);
104 return ret; 104 return ret;
105} 105}
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 7376b7c55ffe..46d34b0b74a8 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -118,6 +118,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base)
118 118
119 return simple_strtoull(cp, endp, base); 119 return simple_strtoull(cp, endp, base);
120} 120}
121EXPORT_SYMBOL(simple_strtoll);
121 122
122/** 123/**
123 * strict_strtoul - convert a string to an unsigned long strictly 124 * strict_strtoul - convert a string to an unsigned long strictly
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index f13e067e1467..707d0dc6da0f 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -11,6 +11,8 @@
11#include <linux/writeback.h> 11#include <linux/writeback.h>
12#include <linux/device.h> 12#include <linux/device.h>
13 13
14static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
15
14void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page) 16void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
15{ 17{
16} 18}
@@ -25,6 +27,11 @@ struct backing_dev_info default_backing_dev_info = {
25}; 27};
26EXPORT_SYMBOL_GPL(default_backing_dev_info); 28EXPORT_SYMBOL_GPL(default_backing_dev_info);
27 29
30struct backing_dev_info noop_backing_dev_info = {
31 .name = "noop",
32};
33EXPORT_SYMBOL_GPL(noop_backing_dev_info);
34
28static struct class *bdi_class; 35static struct class *bdi_class;
29 36
30/* 37/*
@@ -715,6 +722,33 @@ void bdi_destroy(struct backing_dev_info *bdi)
715} 722}
716EXPORT_SYMBOL(bdi_destroy); 723EXPORT_SYMBOL(bdi_destroy);
717 724
725/*
726 * For use from filesystems to quickly init and register a bdi associated
727 * with dirty writeback
728 */
729int bdi_setup_and_register(struct backing_dev_info *bdi, char *name,
730 unsigned int cap)
731{
732 char tmp[32];
733 int err;
734
735 bdi->name = name;
736 bdi->capabilities = cap;
737 err = bdi_init(bdi);
738 if (err)
739 return err;
740
741 sprintf(tmp, "%.28s%s", name, "-%d");
742 err = bdi_register(bdi, NULL, tmp, atomic_long_inc_return(&bdi_seq));
743 if (err) {
744 bdi_destroy(bdi);
745 return err;
746 }
747
748 return 0;
749}
750EXPORT_SYMBOL(bdi_setup_and_register);
751
718static wait_queue_head_t congestion_wqh[2] = { 752static wait_queue_head_t congestion_wqh[2] = {
719 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[0]), 753 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[0]),
720 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[1]) 754 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[1])
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 6034dc9e9796..ffbdfc86aedf 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -546,6 +546,7 @@ static void free_huge_page(struct page *page)
546 546
547 mapping = (struct address_space *) page_private(page); 547 mapping = (struct address_space *) page_private(page);
548 set_page_private(page, 0); 548 set_page_private(page, 0);
549 page->mapping = NULL;
549 BUG_ON(page_count(page)); 550 BUG_ON(page_count(page));
550 INIT_LIST_HEAD(&page->lru); 551 INIT_LIST_HEAD(&page->lru);
551 552
@@ -2447,8 +2448,10 @@ retry:
2447 spin_lock(&inode->i_lock); 2448 spin_lock(&inode->i_lock);
2448 inode->i_blocks += blocks_per_huge_page(h); 2449 inode->i_blocks += blocks_per_huge_page(h);
2449 spin_unlock(&inode->i_lock); 2450 spin_unlock(&inode->i_lock);
2450 } else 2451 } else {
2451 lock_page(page); 2452 lock_page(page);
2453 page->mapping = HUGETLB_POISON;
2454 }
2452 } 2455 }
2453 2456
2454 /* 2457 /*
diff --git a/mm/ksm.c b/mm/ksm.c
index 8cdfc2a1e8bf..956880f2ff49 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -365,7 +365,7 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
365 do { 365 do {
366 cond_resched(); 366 cond_resched();
367 page = follow_page(vma, addr, FOLL_GET); 367 page = follow_page(vma, addr, FOLL_GET);
368 if (!page) 368 if (IS_ERR_OR_NULL(page))
369 break; 369 break;
370 if (PageKsm(page)) 370 if (PageKsm(page))
371 ret = handle_mm_fault(vma->vm_mm, vma, addr, 371 ret = handle_mm_fault(vma->vm_mm, vma, addr,
@@ -447,7 +447,7 @@ static struct page *get_mergeable_page(struct rmap_item *rmap_item)
447 goto out; 447 goto out;
448 448
449 page = follow_page(vma, addr, FOLL_GET); 449 page = follow_page(vma, addr, FOLL_GET);
450 if (!page) 450 if (IS_ERR_OR_NULL(page))
451 goto out; 451 goto out;
452 if (PageAnon(page)) { 452 if (PageAnon(page)) {
453 flush_anon_page(vma, page, addr); 453 flush_anon_page(vma, page, addr);
@@ -1086,7 +1086,7 @@ struct rmap_item *unstable_tree_search_insert(struct rmap_item *rmap_item,
1086 cond_resched(); 1086 cond_resched();
1087 tree_rmap_item = rb_entry(*new, struct rmap_item, node); 1087 tree_rmap_item = rb_entry(*new, struct rmap_item, node);
1088 tree_page = get_mergeable_page(tree_rmap_item); 1088 tree_page = get_mergeable_page(tree_rmap_item);
1089 if (!tree_page) 1089 if (IS_ERR_OR_NULL(tree_page))
1090 return NULL; 1090 return NULL;
1091 1091
1092 /* 1092 /*
@@ -1294,7 +1294,7 @@ next_mm:
1294 if (ksm_test_exit(mm)) 1294 if (ksm_test_exit(mm))
1295 break; 1295 break;
1296 *page = follow_page(vma, ksm_scan.address, FOLL_GET); 1296 *page = follow_page(vma, ksm_scan.address, FOLL_GET);
1297 if (*page && PageAnon(*page)) { 1297 if (!IS_ERR_OR_NULL(*page) && PageAnon(*page)) {
1298 flush_anon_page(vma, *page, ksm_scan.address); 1298 flush_anon_page(vma, *page, ksm_scan.address);
1299 flush_dcache_page(*page); 1299 flush_dcache_page(*page);
1300 rmap_item = get_next_rmap_item(slot, 1300 rmap_item = get_next_rmap_item(slot,
@@ -1308,7 +1308,7 @@ next_mm:
1308 up_read(&mm->mmap_sem); 1308 up_read(&mm->mmap_sem);
1309 return rmap_item; 1309 return rmap_item;
1310 } 1310 }
1311 if (*page) 1311 if (!IS_ERR_OR_NULL(*page))
1312 put_page(*page); 1312 put_page(*page);
1313 ksm_scan.address += PAGE_SIZE; 1313 ksm_scan.address += PAGE_SIZE;
1314 cond_resched(); 1314 cond_resched();
@@ -1367,7 +1367,7 @@ next_mm:
1367static void ksm_do_scan(unsigned int scan_npages) 1367static void ksm_do_scan(unsigned int scan_npages)
1368{ 1368{
1369 struct rmap_item *rmap_item; 1369 struct rmap_item *rmap_item;
1370 struct page *page; 1370 struct page *uninitialized_var(page);
1371 1371
1372 while (scan_npages--) { 1372 while (scan_npages--) {
1373 cond_resched(); 1373 cond_resched();
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index f4ede99c8b9b..6c755de385f7 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2429,11 +2429,11 @@ int mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr)
2429 } 2429 }
2430 unlock_page_cgroup(pc); 2430 unlock_page_cgroup(pc);
2431 2431
2432 *ptr = mem;
2432 if (mem) { 2433 if (mem) {
2433 ret = __mem_cgroup_try_charge(NULL, GFP_KERNEL, &mem, false); 2434 ret = __mem_cgroup_try_charge(NULL, GFP_KERNEL, ptr, false);
2434 css_put(&mem->css); 2435 css_put(&mem->css);
2435 } 2436 }
2436 *ptr = mem;
2437 return ret; 2437 return ret;
2438} 2438}
2439 2439
diff --git a/mm/mmap.c b/mm/mmap.c
index f90ea92f755a..456ec6f27889 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1977,7 +1977,8 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
1977 return 0; 1977 return 0;
1978 1978
1979 /* Clean everything up if vma_adjust failed. */ 1979 /* Clean everything up if vma_adjust failed. */
1980 new->vm_ops->close(new); 1980 if (new->vm_ops && new->vm_ops->close)
1981 new->vm_ops->close(new);
1981 if (new->vm_file) { 1982 if (new->vm_file) {
1982 if (vma->vm_flags & VM_EXECUTABLE) 1983 if (vma->vm_flags & VM_EXECUTABLE)
1983 removed_exe_file_vma(mm); 1984 removed_exe_file_vma(mm);
diff --git a/mm/rmap.c b/mm/rmap.c
index 526704e8215d..07fc94758799 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -133,8 +133,8 @@ int anon_vma_prepare(struct vm_area_struct *vma)
133 goto out_enomem_free_avc; 133 goto out_enomem_free_avc;
134 allocated = anon_vma; 134 allocated = anon_vma;
135 } 135 }
136 spin_lock(&anon_vma->lock);
137 136
137 spin_lock(&anon_vma->lock);
138 /* page_table_lock to protect against threads */ 138 /* page_table_lock to protect against threads */
139 spin_lock(&mm->page_table_lock); 139 spin_lock(&mm->page_table_lock);
140 if (likely(!vma->anon_vma)) { 140 if (likely(!vma->anon_vma)) {
@@ -144,14 +144,15 @@ int anon_vma_prepare(struct vm_area_struct *vma)
144 list_add(&avc->same_vma, &vma->anon_vma_chain); 144 list_add(&avc->same_vma, &vma->anon_vma_chain);
145 list_add(&avc->same_anon_vma, &anon_vma->head); 145 list_add(&avc->same_anon_vma, &anon_vma->head);
146 allocated = NULL; 146 allocated = NULL;
147 avc = NULL;
147 } 148 }
148 spin_unlock(&mm->page_table_lock); 149 spin_unlock(&mm->page_table_lock);
149
150 spin_unlock(&anon_vma->lock); 150 spin_unlock(&anon_vma->lock);
151 if (unlikely(allocated)) { 151
152 if (unlikely(allocated))
152 anon_vma_free(allocated); 153 anon_vma_free(allocated);
154 if (unlikely(avc))
153 anon_vma_chain_free(avc); 155 anon_vma_chain_free(avc);
154 }
155 } 156 }
156 return 0; 157 return 0;
157 158
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 99d68c34e4f1..9753b690a8b3 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1626,7 +1626,10 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms
1626 /* Connectionless channel */ 1626 /* Connectionless channel */
1627 if (sk->sk_type == SOCK_DGRAM) { 1627 if (sk->sk_type == SOCK_DGRAM) {
1628 skb = l2cap_create_connless_pdu(sk, msg, len); 1628 skb = l2cap_create_connless_pdu(sk, msg, len);
1629 err = l2cap_do_send(sk, skb); 1629 if (IS_ERR(skb))
1630 err = PTR_ERR(skb);
1631 else
1632 err = l2cap_do_send(sk, skb);
1630 goto done; 1633 goto done;
1631 } 1634 }
1632 1635
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index f29ada827a6a..eaa0e1bae49b 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -727,7 +727,7 @@ static int br_multicast_igmp3_report(struct net_bridge *br,
727 group = grec->grec_mca; 727 group = grec->grec_mca;
728 type = grec->grec_type; 728 type = grec->grec_type;
729 729
730 len += grec->grec_nsrcs * 4; 730 len += ntohs(grec->grec_nsrcs) * 4;
731 if (!pskb_may_pull(skb, len)) 731 if (!pskb_may_pull(skb, len))
732 return -EINVAL; 732 return -EINVAL;
733 733
@@ -957,9 +957,6 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br,
957 unsigned offset; 957 unsigned offset;
958 int err; 958 int err;
959 959
960 BR_INPUT_SKB_CB(skb)->igmp = 0;
961 BR_INPUT_SKB_CB(skb)->mrouters_only = 0;
962
963 /* We treat OOM as packet loss for now. */ 960 /* We treat OOM as packet loss for now. */
964 if (!pskb_may_pull(skb, sizeof(*iph))) 961 if (!pskb_may_pull(skb, sizeof(*iph)))
965 return -EINVAL; 962 return -EINVAL;
@@ -1049,6 +1046,9 @@ err_out:
1049int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port, 1046int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port,
1050 struct sk_buff *skb) 1047 struct sk_buff *skb)
1051{ 1048{
1049 BR_INPUT_SKB_CB(skb)->igmp = 0;
1050 BR_INPUT_SKB_CB(skb)->mrouters_only = 0;
1051
1052 if (br->multicast_disabled) 1052 if (br->multicast_disabled)
1053 return 0; 1053 return 0;
1054 1054
diff --git a/net/core/dev.c b/net/core/dev.c
index 92584bfef09b..f769098774b7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1990,7 +1990,7 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev,
1990 queue_index = skb_tx_hash(dev, skb); 1990 queue_index = skb_tx_hash(dev, skb);
1991 1991
1992 if (sk) { 1992 if (sk) {
1993 struct dst_entry *dst = rcu_dereference(sk->sk_dst_cache); 1993 struct dst_entry *dst = rcu_dereference_bh(sk->sk_dst_cache);
1994 1994
1995 if (dst && skb_dst(skb) == dst) 1995 if (dst && skb_dst(skb) == dst)
1996 sk_tx_queue_set(sk, queue_index); 1996 sk_tx_queue_set(sk, queue_index);
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 4568120d8533..fe776c9ddeca 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1270,10 +1270,11 @@ replay:
1270 err = ops->newlink(net, dev, tb, data); 1270 err = ops->newlink(net, dev, tb, data);
1271 else 1271 else
1272 err = register_netdevice(dev); 1272 err = register_netdevice(dev);
1273 if (err < 0 && !IS_ERR(dev)) { 1273
1274 if (err < 0 && !IS_ERR(dev))
1274 free_netdev(dev); 1275 free_netdev(dev);
1276 if (err < 0)
1275 goto out; 1277 goto out;
1276 }
1277 1278
1278 err = rtnl_configure_link(dev, ifm); 1279 err = rtnl_configure_link(dev, ifm);
1279 if (err < 0) 1280 if (err < 0)
diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c
index c7da600750bb..93c91b633a56 100644
--- a/net/ieee802154/af_ieee802154.c
+++ b/net/ieee802154/af_ieee802154.c
@@ -151,6 +151,9 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg,
151 dev_load(sock_net(sk), ifr.ifr_name); 151 dev_load(sock_net(sk), ifr.ifr_name);
152 dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); 152 dev = dev_get_by_name(sock_net(sk), ifr.ifr_name);
153 153
154 if (!dev)
155 return -ENODEV;
156
154 if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl) 157 if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl)
155 ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); 158 ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd);
156 159
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 65f9c379df38..75d5ef830097 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -629,7 +629,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
629 /* We must not fragment if the socket is set to force MTU discovery 629 /* We must not fragment if the socket is set to force MTU discovery
630 * or if the skb it not generated by a local socket. 630 * or if the skb it not generated by a local socket.
631 */ 631 */
632 if (!skb->local_df) { 632 if (!skb->local_df && skb->len > mtu) {
633 skb->dev = skb_dst(skb)->dev; 633 skb->dev = skb_dst(skb)->dev;
634 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); 634 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
635 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), 635 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c2438e8cb9d0..05ebd7833043 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -815,7 +815,7 @@ struct dst_entry * ip6_route_output(struct net *net, struct sock *sk,
815{ 815{
816 int flags = 0; 816 int flags = 0;
817 817
818 if (rt6_need_strict(&fl->fl6_dst)) 818 if (fl->oif || rt6_need_strict(&fl->fl6_dst))
819 flags |= RT6_LOOKUP_F_IFACE; 819 flags |= RT6_LOOKUP_F_IFACE;
820 820
821 if (!ipv6_addr_any(&fl->fl6_src)) 821 if (!ipv6_addr_any(&fl->fl6_src))
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index c92ebe8f80d5..075f540ec197 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1015,7 +1015,7 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
1015 skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len); 1015 skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len);
1016 1016
1017 t1 = (struct tcphdr *) skb_push(buff, tot_len); 1017 t1 = (struct tcphdr *) skb_push(buff, tot_len);
1018 skb_reset_transport_header(skb); 1018 skb_reset_transport_header(buff);
1019 1019
1020 /* Swap the send and the receive. */ 1020 /* Swap the send and the receive. */
1021 memset(t1, 0, sizeof(*t1)); 1021 memset(t1, 0, sizeof(*t1));
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
index ae181651c75a..00bf7c962b7e 100644
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -124,7 +124,7 @@ static int xfrm6_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
124 xdst->u.dst.dev = dev; 124 xdst->u.dst.dev = dev;
125 dev_hold(dev); 125 dev_hold(dev);
126 126
127 xdst->u.rt6.rt6i_idev = in6_dev_get(rt->u.dst.dev); 127 xdst->u.rt6.rt6i_idev = in6_dev_get(dev);
128 if (!xdst->u.rt6.rt6i_idev) 128 if (!xdst->u.rt6.rt6i_idev)
129 return -ENODEV; 129 return -ENODEV;
130 130
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 96d25348aa59..87782a4bb541 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -184,7 +184,6 @@ static void sta_addba_resp_timer_expired(unsigned long data)
184 HT_AGG_STATE_REQ_STOP_BA_MSK)) != 184 HT_AGG_STATE_REQ_STOP_BA_MSK)) !=
185 HT_ADDBA_REQUESTED_MSK) { 185 HT_ADDBA_REQUESTED_MSK) {
186 spin_unlock_bh(&sta->lock); 186 spin_unlock_bh(&sta->lock);
187 *state = HT_AGG_STATE_IDLE;
188#ifdef CONFIG_MAC80211_HT_DEBUG 187#ifdef CONFIG_MAC80211_HT_DEBUG
189 printk(KERN_DEBUG "timer expired on tid %d but we are not " 188 printk(KERN_DEBUG "timer expired on tid %d but we are not "
190 "(or no longer) expecting addBA response there", 189 "(or no longer) expecting addBA response there",
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c8cd169fc10e..4aefa6dc3091 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -168,6 +168,8 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
168 ht_changed = conf_is_ht(&local->hw.conf) != enable_ht || 168 ht_changed = conf_is_ht(&local->hw.conf) != enable_ht ||
169 channel_type != local->hw.conf.channel_type; 169 channel_type != local->hw.conf.channel_type;
170 170
171 if (local->tmp_channel)
172 local->tmp_channel_type = channel_type;
171 local->oper_channel_type = channel_type; 173 local->oper_channel_type = channel_type;
172 174
173 if (ht_changed) { 175 if (ht_changed) {
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
index 9ece910ea394..7b155081b4dc 100644
--- a/net/rds/rdma_transport.c
+++ b/net/rds/rdma_transport.c
@@ -134,7 +134,7 @@ static int __init rds_rdma_listen_init(void)
134 ret = PTR_ERR(cm_id); 134 ret = PTR_ERR(cm_id);
135 printk(KERN_ERR "RDS/RDMA: failed to setup listener, " 135 printk(KERN_ERR "RDS/RDMA: failed to setup listener, "
136 "rdma_create_id() returned %d\n", ret); 136 "rdma_create_id() returned %d\n", ret);
137 goto out; 137 return ret;
138 } 138 }
139 139
140 sin.sin_family = AF_INET, 140 sin.sin_family = AF_INET,
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index df5abbff63e2..99c93ee98ad9 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -1194,8 +1194,10 @@ void sctp_assoc_update(struct sctp_association *asoc,
1194 /* Remove any peer addresses not present in the new association. */ 1194 /* Remove any peer addresses not present in the new association. */
1195 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { 1195 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
1196 trans = list_entry(pos, struct sctp_transport, transports); 1196 trans = list_entry(pos, struct sctp_transport, transports);
1197 if (!sctp_assoc_lookup_paddr(new, &trans->ipaddr)) 1197 if (!sctp_assoc_lookup_paddr(new, &trans->ipaddr)) {
1198 sctp_assoc_del_peer(asoc, &trans->ipaddr); 1198 sctp_assoc_rm_peer(asoc, trans);
1199 continue;
1200 }
1199 1201
1200 if (asoc->state >= SCTP_STATE_ESTABLISHED) 1202 if (asoc->state >= SCTP_STATE_ESTABLISHED)
1201 sctp_transport_reset(trans); 1203 sctp_transport_reset(trans);
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 905fda582b92..7ec09ba03a1c 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -144,6 +144,7 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
144 /* Use SCTP specific send buffer space queues. */ 144 /* Use SCTP specific send buffer space queues. */
145 ep->sndbuf_policy = sctp_sndbuf_policy; 145 ep->sndbuf_policy = sctp_sndbuf_policy;
146 146
147 sk->sk_data_ready = sctp_data_ready;
147 sk->sk_write_space = sctp_write_space; 148 sk->sk_write_space = sctp_write_space;
148 sock_set_flag(sk, SOCK_USE_WRITE_QUEUE); 149 sock_set_flag(sk, SOCK_USE_WRITE_QUEUE);
149 150
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 17cb400ecd6a..0fd5b4c88358 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -208,7 +208,8 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
208 sp = sctp_sk(asoc->base.sk); 208 sp = sctp_sk(asoc->base.sk);
209 num_types = sp->pf->supported_addrs(sp, types); 209 num_types = sp->pf->supported_addrs(sp, types);
210 210
211 chunksize = sizeof(init) + addrs_len + SCTP_SAT_LEN(num_types); 211 chunksize = sizeof(init) + addrs_len;
212 chunksize += WORD_ROUND(SCTP_SAT_LEN(num_types));
212 chunksize += sizeof(ecap_param); 213 chunksize += sizeof(ecap_param);
213 214
214 if (sctp_prsctp_enable) 215 if (sctp_prsctp_enable)
@@ -238,14 +239,14 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
238 /* Add HMACS parameter length if any were defined */ 239 /* Add HMACS parameter length if any were defined */
239 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs; 240 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
240 if (auth_hmacs->length) 241 if (auth_hmacs->length)
241 chunksize += ntohs(auth_hmacs->length); 242 chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
242 else 243 else
243 auth_hmacs = NULL; 244 auth_hmacs = NULL;
244 245
245 /* Add CHUNKS parameter length */ 246 /* Add CHUNKS parameter length */
246 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks; 247 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
247 if (auth_chunks->length) 248 if (auth_chunks->length)
248 chunksize += ntohs(auth_chunks->length); 249 chunksize += WORD_ROUND(ntohs(auth_chunks->length));
249 else 250 else
250 auth_chunks = NULL; 251 auth_chunks = NULL;
251 252
@@ -255,7 +256,8 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
255 256
256 /* If we have any extensions to report, account for that */ 257 /* If we have any extensions to report, account for that */
257 if (num_ext) 258 if (num_ext)
258 chunksize += sizeof(sctp_supported_ext_param_t) + num_ext; 259 chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
260 num_ext);
259 261
260 /* RFC 2960 3.3.2 Initiation (INIT) (1) 262 /* RFC 2960 3.3.2 Initiation (INIT) (1)
261 * 263 *
@@ -397,13 +399,13 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
397 399
398 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs; 400 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
399 if (auth_hmacs->length) 401 if (auth_hmacs->length)
400 chunksize += ntohs(auth_hmacs->length); 402 chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
401 else 403 else
402 auth_hmacs = NULL; 404 auth_hmacs = NULL;
403 405
404 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks; 406 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
405 if (auth_chunks->length) 407 if (auth_chunks->length)
406 chunksize += ntohs(auth_chunks->length); 408 chunksize += WORD_ROUND(ntohs(auth_chunks->length));
407 else 409 else
408 auth_chunks = NULL; 410 auth_chunks = NULL;
409 411
@@ -412,7 +414,8 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
412 } 414 }
413 415
414 if (num_ext) 416 if (num_ext)
415 chunksize += sizeof(sctp_supported_ext_param_t) + num_ext; 417 chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
418 num_ext);
416 419
417 /* Now allocate and fill out the chunk. */ 420 /* Now allocate and fill out the chunk. */
418 retval = sctp_make_chunk(asoc, SCTP_CID_INIT_ACK, 0, chunksize); 421 retval = sctp_make_chunk(asoc, SCTP_CID_INIT_ACK, 0, chunksize);
@@ -3315,21 +3318,6 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
3315 sctp_chunk_free(asconf); 3318 sctp_chunk_free(asconf);
3316 asoc->addip_last_asconf = NULL; 3319 asoc->addip_last_asconf = NULL;
3317 3320
3318 /* Send the next asconf chunk from the addip chunk queue. */
3319 if (!list_empty(&asoc->addip_chunk_list)) {
3320 struct list_head *entry = asoc->addip_chunk_list.next;
3321 asconf = list_entry(entry, struct sctp_chunk, list);
3322
3323 list_del_init(entry);
3324
3325 /* Hold the chunk until an ASCONF_ACK is received. */
3326 sctp_chunk_hold(asconf);
3327 if (sctp_primitive_ASCONF(asoc, asconf))
3328 sctp_chunk_free(asconf);
3329 else
3330 asoc->addip_last_asconf = asconf;
3331 }
3332
3333 return retval; 3321 return retval;
3334} 3322}
3335 3323
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 4c5bed9af4e3..d5ae450b6f02 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -962,6 +962,29 @@ static int sctp_cmd_send_msg(struct sctp_association *asoc,
962} 962}
963 963
964 964
965/* Sent the next ASCONF packet currently stored in the association.
966 * This happens after the ASCONF_ACK was succeffully processed.
967 */
968static void sctp_cmd_send_asconf(struct sctp_association *asoc)
969{
970 /* Send the next asconf chunk from the addip chunk
971 * queue.
972 */
973 if (!list_empty(&asoc->addip_chunk_list)) {
974 struct list_head *entry = asoc->addip_chunk_list.next;
975 struct sctp_chunk *asconf = list_entry(entry,
976 struct sctp_chunk, list);
977 list_del_init(entry);
978
979 /* Hold the chunk until an ASCONF_ACK is received. */
980 sctp_chunk_hold(asconf);
981 if (sctp_primitive_ASCONF(asoc, asconf))
982 sctp_chunk_free(asconf);
983 else
984 asoc->addip_last_asconf = asconf;
985 }
986}
987
965 988
966/* These three macros allow us to pull the debugging code out of the 989/* These three macros allow us to pull the debugging code out of the
967 * main flow of sctp_do_sm() to keep attention focused on the real 990 * main flow of sctp_do_sm() to keep attention focused on the real
@@ -1617,6 +1640,9 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
1617 } 1640 }
1618 error = sctp_cmd_send_msg(asoc, cmd->obj.msg); 1641 error = sctp_cmd_send_msg(asoc, cmd->obj.msg);
1619 break; 1642 break;
1643 case SCTP_CMD_SEND_NEXT_ASCONF:
1644 sctp_cmd_send_asconf(asoc);
1645 break;
1620 default: 1646 default:
1621 printk(KERN_WARNING "Impossible command: %u, %p\n", 1647 printk(KERN_WARNING "Impossible command: %u, %p\n",
1622 cmd->verb, cmd->obj.ptr); 1648 cmd->verb, cmd->obj.ptr);
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index abf601a1b847..24b2cd555637 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -3676,8 +3676,14 @@ sctp_disposition_t sctp_sf_do_asconf_ack(const struct sctp_endpoint *ep,
3676 SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO)); 3676 SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO));
3677 3677
3678 if (!sctp_process_asconf_ack((struct sctp_association *)asoc, 3678 if (!sctp_process_asconf_ack((struct sctp_association *)asoc,
3679 asconf_ack)) 3679 asconf_ack)) {
3680 /* Successfully processed ASCONF_ACK. We can
3681 * release the next asconf if we have one.
3682 */
3683 sctp_add_cmd_sf(commands, SCTP_CMD_SEND_NEXT_ASCONF,
3684 SCTP_NULL());
3680 return SCTP_DISPOSITION_CONSUME; 3685 return SCTP_DISPOSITION_CONSUME;
3686 }
3681 3687
3682 abort = sctp_make_abort(asoc, asconf_ack, 3688 abort = sctp_make_abort(asoc, asconf_ack,
3683 sizeof(sctp_errhdr_t)); 3689 sizeof(sctp_errhdr_t));
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 007e8baba089..44a1ab03a3f0 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3719,12 +3719,12 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk)
3719 sp->hmac = NULL; 3719 sp->hmac = NULL;
3720 3720
3721 SCTP_DBG_OBJCNT_INC(sock); 3721 SCTP_DBG_OBJCNT_INC(sock);
3722 percpu_counter_inc(&sctp_sockets_allocated);
3723 3722
3724 /* Set socket backlog limit. */ 3723 /* Set socket backlog limit. */
3725 sk->sk_backlog.limit = sysctl_sctp_rmem[1]; 3724 sk->sk_backlog.limit = sysctl_sctp_rmem[1];
3726 3725
3727 local_bh_disable(); 3726 local_bh_disable();
3727 percpu_counter_inc(&sctp_sockets_allocated);
3728 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); 3728 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
3729 local_bh_enable(); 3729 local_bh_enable();
3730 3730
@@ -3741,8 +3741,8 @@ SCTP_STATIC void sctp_destroy_sock(struct sock *sk)
3741 /* Release our hold on the endpoint. */ 3741 /* Release our hold on the endpoint. */
3742 ep = sctp_sk(sk)->ep; 3742 ep = sctp_sk(sk)->ep;
3743 sctp_endpoint_free(ep); 3743 sctp_endpoint_free(ep);
3744 percpu_counter_dec(&sctp_sockets_allocated);
3745 local_bh_disable(); 3744 local_bh_disable();
3745 percpu_counter_dec(&sctp_sockets_allocated);
3746 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); 3746 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
3747 local_bh_enable(); 3747 local_bh_enable();
3748} 3748}
@@ -6189,6 +6189,16 @@ do_nonblock:
6189 goto out; 6189 goto out;
6190} 6190}
6191 6191
6192void sctp_data_ready(struct sock *sk, int len)
6193{
6194 read_lock_bh(&sk->sk_callback_lock);
6195 if (sk_has_sleeper(sk))
6196 wake_up_interruptible_sync_poll(sk->sk_sleep, POLLIN |
6197 POLLRDNORM | POLLRDBAND);
6198 sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
6199 read_unlock_bh(&sk->sk_callback_lock);
6200}
6201
6192/* If socket sndbuf has changed, wake up all per association waiters. */ 6202/* If socket sndbuf has changed, wake up all per association waiters. */
6193void sctp_write_space(struct sock *sk) 6203void sctp_write_space(struct sock *sk)
6194{ 6204{
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
index f394fc190a49..95afe79dd9d7 100644
--- a/net/sunrpc/auth.c
+++ b/net/sunrpc/auth.c
@@ -237,7 +237,7 @@ rpcauth_prune_expired(struct list_head *free, int nr_to_scan)
237 list_for_each_entry_safe(cred, next, &cred_unused, cr_lru) { 237 list_for_each_entry_safe(cred, next, &cred_unused, cr_lru) {
238 238
239 /* Enforce a 60 second garbage collection moratorium */ 239 /* Enforce a 60 second garbage collection moratorium */
240 if (time_in_range_open(cred->cr_expire, expired, jiffies) && 240 if (time_in_range(cred->cr_expire, expired, jiffies) &&
241 test_bit(RPCAUTH_CRED_HASHED, &cred->cr_flags) != 0) 241 test_bit(RPCAUTH_CRED_HASHED, &cred->cr_flags) != 0)
242 continue; 242 continue;
243 243
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c
index cbddd0cb83f1..36e84e13c6aa 100644
--- a/net/x25/af_x25.c
+++ b/net/x25/af_x25.c
@@ -402,6 +402,7 @@ static void __x25_destroy_socket(struct sock *sk)
402 /* 402 /*
403 * Queue the unaccepted socket for death 403 * Queue the unaccepted socket for death
404 */ 404 */
405 skb->sk->sk_state = TCP_LISTEN;
405 sock_set_flag(skb->sk, SOCK_DEAD); 406 sock_set_flag(skb->sk, SOCK_DEAD);
406 x25_start_heartbeat(skb->sk); 407 x25_start_heartbeat(skb->sk);
407 x25_sk(skb->sk)->state = X25_STATE_0; 408 x25_sk(skb->sk)->state = X25_STATE_0;
diff --git a/security/inode.c b/security/inode.c
index c3a793881d04..1c812e874504 100644
--- a/security/inode.c
+++ b/security/inode.c
@@ -161,13 +161,13 @@ static int create_by_name(const char *name, mode_t mode,
161 161
162 mutex_lock(&parent->d_inode->i_mutex); 162 mutex_lock(&parent->d_inode->i_mutex);
163 *dentry = lookup_one_len(name, parent, strlen(name)); 163 *dentry = lookup_one_len(name, parent, strlen(name));
164 if (!IS_ERR(dentry)) { 164 if (!IS_ERR(*dentry)) {
165 if ((mode & S_IFMT) == S_IFDIR) 165 if ((mode & S_IFMT) == S_IFDIR)
166 error = mkdir(parent->d_inode, *dentry, mode); 166 error = mkdir(parent->d_inode, *dentry, mode);
167 else 167 else
168 error = create(parent->d_inode, *dentry, mode); 168 error = create(parent->d_inode, *dentry, mode);
169 } else 169 } else
170 error = PTR_ERR(dentry); 170 error = PTR_ERR(*dentry);
171 mutex_unlock(&parent->d_inode->i_mutex); 171 mutex_unlock(&parent->d_inode->i_mutex);
172 172
173 return error; 173 return error;
diff --git a/security/keys/keyring.c b/security/keys/keyring.c
index e814d2109f8e..dd7cd0f8e13c 100644
--- a/security/keys/keyring.c
+++ b/security/keys/keyring.c
@@ -201,7 +201,7 @@ static long keyring_read(const struct key *keyring,
201 int loop, ret; 201 int loop, ret;
202 202
203 ret = 0; 203 ret = 0;
204 klist = rcu_dereference(keyring->payload.subscriptions); 204 klist = keyring->payload.subscriptions;
205 205
206 if (klist) { 206 if (klist) {
207 /* calculate how much data we could return */ 207 /* calculate how much data we could return */
diff --git a/security/keys/request_key.c b/security/keys/request_key.c
index 03fe63ed55bd..d737cea5347c 100644
--- a/security/keys/request_key.c
+++ b/security/keys/request_key.c
@@ -68,7 +68,8 @@ static int call_sbin_request_key(struct key_construction *cons,
68{ 68{
69 const struct cred *cred = current_cred(); 69 const struct cred *cred = current_cred();
70 key_serial_t prkey, sskey; 70 key_serial_t prkey, sskey;
71 struct key *key = cons->key, *authkey = cons->authkey, *keyring; 71 struct key *key = cons->key, *authkey = cons->authkey, *keyring,
72 *session;
72 char *argv[9], *envp[3], uid_str[12], gid_str[12]; 73 char *argv[9], *envp[3], uid_str[12], gid_str[12];
73 char key_str[12], keyring_str[3][12]; 74 char key_str[12], keyring_str[3][12];
74 char desc[20]; 75 char desc[20];
@@ -112,10 +113,12 @@ static int call_sbin_request_key(struct key_construction *cons,
112 if (cred->tgcred->process_keyring) 113 if (cred->tgcred->process_keyring)
113 prkey = cred->tgcred->process_keyring->serial; 114 prkey = cred->tgcred->process_keyring->serial;
114 115
115 if (cred->tgcred->session_keyring) 116 rcu_read_lock();
116 sskey = rcu_dereference(cred->tgcred->session_keyring)->serial; 117 session = rcu_dereference(cred->tgcred->session_keyring);
117 else 118 if (!session)
118 sskey = cred->user->session_keyring->serial; 119 session = cred->user->session_keyring;
120 sskey = session->serial;
121 rcu_read_unlock();
119 122
120 sprintf(keyring_str[2], "%d", sskey); 123 sprintf(keyring_str[2], "%d", sskey);
121 124
@@ -336,8 +339,10 @@ static int construct_alloc_key(struct key_type *type,
336 339
337key_already_present: 340key_already_present:
338 mutex_unlock(&key_construction_mutex); 341 mutex_unlock(&key_construction_mutex);
339 if (dest_keyring) 342 if (dest_keyring) {
343 __key_link(dest_keyring, key_ref_to_ptr(key_ref));
340 up_write(&dest_keyring->sem); 344 up_write(&dest_keyring->sem);
345 }
341 mutex_unlock(&user->cons_lock); 346 mutex_unlock(&user->cons_lock);
342 key_put(key); 347 key_put(key);
343 *_key = key = key_ref_to_ptr(key_ref); 348 *_key = key = key_ref_to_ptr(key_ref);
@@ -428,6 +433,11 @@ struct key *request_key_and_link(struct key_type *type,
428 433
429 if (!IS_ERR(key_ref)) { 434 if (!IS_ERR(key_ref)) {
430 key = key_ref_to_ptr(key_ref); 435 key = key_ref_to_ptr(key_ref);
436 if (dest_keyring) {
437 construct_get_dest_keyring(&dest_keyring);
438 key_link(dest_keyring, key);
439 key_put(dest_keyring);
440 }
431 } else if (PTR_ERR(key_ref) != -EAGAIN) { 441 } else if (PTR_ERR(key_ref) != -EAGAIN) {
432 key = ERR_CAST(key_ref); 442 key = ERR_CAST(key_ref);
433 } else { 443 } else {
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index f669442b7c82..cec68152dcb1 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2273,6 +2273,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
2273 SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), 2273 SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB),
2274 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), 2274 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB),
2275 SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB), 2275 SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB),
2276 SND_PCI_QUIRK(0x8086, 0x2503, "DG965OT AAD63733-203", POS_FIX_LPIB),
2276 SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB), 2277 SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB),
2277 {} 2278 {}
2278}; 2279};
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index af34606c30c3..e9fdfc4b1c57 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -519,14 +519,6 @@ static int ad198x_suspend(struct hda_codec *codec, pm_message_t state)
519 ad198x_power_eapd(codec); 519 ad198x_power_eapd(codec);
520 return 0; 520 return 0;
521} 521}
522
523static int ad198x_resume(struct hda_codec *codec)
524{
525 ad198x_init(codec);
526 snd_hda_codec_resume_amp(codec);
527 snd_hda_codec_resume_cache(codec);
528 return 0;
529}
530#endif 522#endif
531 523
532static struct hda_codec_ops ad198x_patch_ops = { 524static struct hda_codec_ops ad198x_patch_ops = {
@@ -539,7 +531,6 @@ static struct hda_codec_ops ad198x_patch_ops = {
539#endif 531#endif
540#ifdef SND_HDA_NEEDS_RESUME 532#ifdef SND_HDA_NEEDS_RESUME
541 .suspend = ad198x_suspend, 533 .suspend = ad198x_suspend,
542 .resume = ad198x_resume,
543#endif 534#endif
544 .reboot_notify = ad198x_shutup, 535 .reboot_notify = ad198x_shutup,
545}; 536};
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index aad1627f56f1..7404dba16f83 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4143,7 +4143,7 @@ static struct snd_pci_quirk alc880_cfg_tbl[] = {
4143 SND_PCI_QUIRK(0x1695, 0x4012, "EPox EP-5LDA", ALC880_5ST_DIG), 4143 SND_PCI_QUIRK(0x1695, 0x4012, "EPox EP-5LDA", ALC880_5ST_DIG),
4144 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_F1734), 4144 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_F1734),
4145 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FUJITSU), 4145 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FUJITSU),
4146 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC", ALC880_UNIWILL), 4146 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_F1734),
4147 SND_PCI_QUIRK(0x1734, 0x10b0, "Fujitsu", ALC880_FUJITSU), 4147 SND_PCI_QUIRK(0x1734, 0x10b0, "Fujitsu", ALC880_FUJITSU),
4148 SND_PCI_QUIRK(0x1854, 0x0018, "LG LW20", ALC880_LG_LW), 4148 SND_PCI_QUIRK(0x1854, 0x0018, "LG LW20", ALC880_LG_LW),
4149 SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_LG), 4149 SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_LG),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index c4be3fab94e5..7fb7d017a347 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1607,6 +1607,10 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1607 "Dell Studio 1555", STAC_DELL_M6_DMIC), 1607 "Dell Studio 1555", STAC_DELL_M6_DMIC),
1608 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd, 1608 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
1609 "Dell Studio 1557", STAC_DELL_M6_DMIC), 1609 "Dell Studio 1557", STAC_DELL_M6_DMIC),
1610 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02fe,
1611 "Dell Studio XPS 1645", STAC_DELL_M6_BOTH),
1612 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0413,
1613 "Dell Studio 1558", STAC_DELL_M6_BOTH),
1610 {} /* terminator */ 1614 {} /* terminator */
1611}; 1615};
1612 1616
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index b64e78139d63..b56e33676780 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -849,6 +849,7 @@ struct snd_m3 {
849 struct snd_kcontrol *master_switch; 849 struct snd_kcontrol *master_switch;
850 struct snd_kcontrol *master_volume; 850 struct snd_kcontrol *master_volume;
851 struct tasklet_struct hwvol_tq; 851 struct tasklet_struct hwvol_tq;
852 unsigned int in_suspend;
852 853
853#ifdef CONFIG_PM 854#ifdef CONFIG_PM
854 u16 *suspend_mem; 855 u16 *suspend_mem;
@@ -884,6 +885,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_m3_ids) = {
884MODULE_DEVICE_TABLE(pci, snd_m3_ids); 885MODULE_DEVICE_TABLE(pci, snd_m3_ids);
885 886
886static struct snd_pci_quirk m3_amp_quirk_list[] __devinitdata = { 887static struct snd_pci_quirk m3_amp_quirk_list[] __devinitdata = {
888 SND_PCI_QUIRK(0x0E11, 0x0094, "Compaq Evo N600c", 0x0c),
887 SND_PCI_QUIRK(0x10f7, 0x833e, "Panasonic CF-28", 0x0d), 889 SND_PCI_QUIRK(0x10f7, 0x833e, "Panasonic CF-28", 0x0d),
888 SND_PCI_QUIRK(0x10f7, 0x833d, "Panasonic CF-72", 0x0d), 890 SND_PCI_QUIRK(0x10f7, 0x833d, "Panasonic CF-72", 0x0d),
889 SND_PCI_QUIRK(0x1033, 0x80f1, "NEC LM800J/7", 0x03), 891 SND_PCI_QUIRK(0x1033, 0x80f1, "NEC LM800J/7", 0x03),
@@ -1613,6 +1615,11 @@ static void snd_m3_update_hw_volume(unsigned long private_data)
1613 outb(0x88, chip->iobase + SHADOW_MIX_REG_MASTER); 1615 outb(0x88, chip->iobase + SHADOW_MIX_REG_MASTER);
1614 outb(0x88, chip->iobase + HW_VOL_COUNTER_MASTER); 1616 outb(0x88, chip->iobase + HW_VOL_COUNTER_MASTER);
1615 1617
1618 /* Ignore spurious HV interrupts during suspend / resume, this avoids
1619 mistaking them for a mute button press. */
1620 if (chip->in_suspend)
1621 return;
1622
1616 if (!chip->master_switch || !chip->master_volume) 1623 if (!chip->master_switch || !chip->master_volume)
1617 return; 1624 return;
1618 1625
@@ -2424,6 +2431,7 @@ static int m3_suspend(struct pci_dev *pci, pm_message_t state)
2424 if (chip->suspend_mem == NULL) 2431 if (chip->suspend_mem == NULL)
2425 return 0; 2432 return 0;
2426 2433
2434 chip->in_suspend = 1;
2427 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); 2435 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
2428 snd_pcm_suspend_all(chip->pcm); 2436 snd_pcm_suspend_all(chip->pcm);
2429 snd_ac97_suspend(chip->ac97); 2437 snd_ac97_suspend(chip->ac97);
@@ -2497,6 +2505,7 @@ static int m3_resume(struct pci_dev *pci)
2497 snd_m3_hv_init(chip); 2505 snd_m3_hv_init(chip);
2498 2506
2499 snd_power_change_state(card, SNDRV_CTL_POWER_D0); 2507 snd_power_change_state(card, SNDRV_CTL_POWER_D0);
2508 chip->in_suspend = 0;
2500 return 0; 2509 return 0;
2501} 2510}
2502#endif /* CONFIG_PM */ 2511#endif /* CONFIG_PM */
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 5a0cd194dce0..c82ae2492634 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -341,7 +341,11 @@ static void kvm_mmu_notifier_release(struct mmu_notifier *mn,
341 struct mm_struct *mm) 341 struct mm_struct *mm)
342{ 342{
343 struct kvm *kvm = mmu_notifier_to_kvm(mn); 343 struct kvm *kvm = mmu_notifier_to_kvm(mn);
344 int idx;
345
346 idx = srcu_read_lock(&kvm->srcu);
344 kvm_arch_flush_shadow(kvm); 347 kvm_arch_flush_shadow(kvm);
348 srcu_read_unlock(&kvm->srcu, idx);
345} 349}
346 350
347static const struct mmu_notifier_ops kvm_mmu_notifier_ops = { 351static const struct mmu_notifier_ops kvm_mmu_notifier_ops = {
@@ -648,7 +652,7 @@ skip_lpage:
648 652
649 /* Allocate page dirty bitmap if needed */ 653 /* Allocate page dirty bitmap if needed */
650 if ((new.flags & KVM_MEM_LOG_DIRTY_PAGES) && !new.dirty_bitmap) { 654 if ((new.flags & KVM_MEM_LOG_DIRTY_PAGES) && !new.dirty_bitmap) {
651 unsigned dirty_bytes = ALIGN(npages, BITS_PER_LONG) / 8; 655 unsigned long dirty_bytes = kvm_dirty_bitmap_bytes(&new);
652 656
653 new.dirty_bitmap = vmalloc(dirty_bytes); 657 new.dirty_bitmap = vmalloc(dirty_bytes);
654 if (!new.dirty_bitmap) 658 if (!new.dirty_bitmap)
@@ -768,7 +772,7 @@ int kvm_get_dirty_log(struct kvm *kvm,
768{ 772{
769 struct kvm_memory_slot *memslot; 773 struct kvm_memory_slot *memslot;
770 int r, i; 774 int r, i;
771 int n; 775 unsigned long n;
772 unsigned long any = 0; 776 unsigned long any = 0;
773 777
774 r = -EINVAL; 778 r = -EINVAL;
@@ -780,7 +784,7 @@ int kvm_get_dirty_log(struct kvm *kvm,
780 if (!memslot->dirty_bitmap) 784 if (!memslot->dirty_bitmap)
781 goto out; 785 goto out;
782 786
783 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 787 n = kvm_dirty_bitmap_bytes(memslot);
784 788
785 for (i = 0; !any && i < n/sizeof(long); ++i) 789 for (i = 0; !any && i < n/sizeof(long); ++i)
786 any = memslot->dirty_bitmap[i]; 790 any = memslot->dirty_bitmap[i];
@@ -1186,10 +1190,13 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
1186 memslot = gfn_to_memslot_unaliased(kvm, gfn); 1190 memslot = gfn_to_memslot_unaliased(kvm, gfn);
1187 if (memslot && memslot->dirty_bitmap) { 1191 if (memslot && memslot->dirty_bitmap) {
1188 unsigned long rel_gfn = gfn - memslot->base_gfn; 1192 unsigned long rel_gfn = gfn - memslot->base_gfn;
1193 unsigned long *p = memslot->dirty_bitmap +
1194 rel_gfn / BITS_PER_LONG;
1195 int offset = rel_gfn % BITS_PER_LONG;
1189 1196
1190 /* avoid RMW */ 1197 /* avoid RMW */
1191 if (!generic_test_le_bit(rel_gfn, memslot->dirty_bitmap)) 1198 if (!generic_test_le_bit(offset, p))
1192 generic___set_le_bit(rel_gfn, memslot->dirty_bitmap); 1199 generic___set_le_bit(offset, p);
1193 } 1200 }
1194} 1201}
1195 1202