Merge branch 'master' into for-next
authorJiri Kosina <jkosina@suse.cz>
Sun, 13 Nov 2011 19:55:35 +0000 (20:55 +0100)
committerJiri Kosina <jkosina@suse.cz>
Sun, 13 Nov 2011 19:55:53 +0000 (20:55 +0100)
Sync with Linus tree to have 157550ff ("mtd: add GPMI-NAND driver
in the config and Makefile") as I have patch depending on that one.

1  2 
arch/arm/Kconfig
arch/mips/Kconfig
arch/powerpc/platforms/40x/Kconfig
arch/powerpc/platforms/44x/Kconfig
arch/s390/Kconfig
crypto/Kconfig
fs/namespace.c
kernel/irq/manage.c
lib/Kconfig

diff --combined arch/arm/Kconfig
@@@ -29,6 -29,7 +29,7 @@@ config AR
        select HAVE_GENERIC_HARDIRQS
        select HAVE_SPARSE_IRQ
        select GENERIC_IRQ_SHOW
+       select CPU_PM if (SUSPEND || CPU_IDLE)
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@@ -211,6 -212,19 +212,19 @@@ config ARM_PATCH_PHYS_VIR
          this feature (eg, building a kernel for a single machine) and
          you need to shrink the kernel to the minimal size.
  
+ config NEED_MACH_MEMORY_H
+       bool
+       help
+         Select this when mach/memory.h is required to provide special
+         definitions for this platform.  The need for mach/memory.h should
+         be avoided when possible.
+ config PHYS_OFFSET
+       hex "Physical address of main memory"
+       depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+       help
+         Please provide the physical address corresponding to the
+         location of main memory in your system.
  
  config GENERIC_BUG
        def_bool y
@@@ -247,6 -261,7 +261,7 @@@ config ARCH_INTEGRATO
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
        select PLAT_VERSATILE_FPGA_IRQ
+       select NEED_MACH_MEMORY_H
        help
          Support for ARM's Integrator platform.
  
@@@ -262,6 -277,7 +277,7 @@@ config ARCH_REALVIE
        select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
+       select NEED_MACH_MEMORY_H
        help
          This enables support for ARM Ltd RealView boards.
  
@@@ -318,10 -334,25 +334,25 @@@ config ARCH_BCMRIN
        help
          Support for Broadcom's BCMRing platform.
  
+ config ARCH_HIGHBANK
+       bool "Calxeda Highbank-based"
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select ARM_AMBA
+       select ARM_GIC
+       select ARM_TIMER_SP804
+       select CLKDEV_LOOKUP
+       select CPU_V7
+       select GENERIC_CLOCKEVENTS
+       select HAVE_ARM_SCU
+       select USE_OF
+       help
+         Support for the Calxeda Highbank SoC based boards.
  config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x-based"
        select CPU_ARM720T
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Cirrus Logic 711x/721x based boards.
  
@@@ -346,7 -377,6 +377,6 @@@ config ARCH_GEMIN
  config ARCH_PRIMA2
        bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
        select CPU_V7
-       select GENERIC_TIME
        select NO_IOPORT
        select GENERIC_CLOCKEVENTS
        select CLKDEV_LOOKUP
@@@ -362,6 -392,7 +392,7 @@@ config ARCH_EBSA11
        select ISA
        select NO_IOPORT
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          This is an evaluation board for the StrongARM processor available
          from Digital. It has limited hardware on-board, including an
@@@ -377,6 -408,7 +408,7 @@@ config ARCH_EP93X
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          This enables support for the Cirrus EP93xx series of CPUs.
  
@@@ -386,6 -418,7 +418,7 @@@ config ARCH_FOOTBRIDG
        select FOOTBRIDGE
        select GENERIC_CLOCKEVENTS
        select HAVE_IDE
+       select NEED_MACH_MEMORY_H
        help
          Support for systems based on the DC21285 companion chip
          ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@@ -398,6 -431,7 +431,7 @@@ config ARCH_MX
        select CLKSRC_MMIO
        select GENERIC_IRQ_CHIP
        select HAVE_SCHED_CLOCK
+       select MULTI_IRQ_HANDLER
        help
          Support for Freescale MXC/iMX-based family of processors
  
@@@ -435,6 -469,7 +469,7 @@@ config ARCH_IOP13X
        select PCI
        select ARCH_SUPPORTS_MSI
        select VMSPLIT_1G
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IOP13XX (XScale) family of processors.
  
@@@ -465,6 -500,7 +500,7 @@@ config ARCH_IXP23X
        select CPU_XSC3
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IXP23xx (XScale) family of processors.
  
@@@ -474,6 -510,7 +510,7 @@@ config ARCH_IXP200
        select CPU_XSCALE
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IXP2400/2800 (XScale) family of processors.
  
@@@ -520,7 -557,6 +557,6 @@@ config ARCH_LPC32X
        select ARM_AMBA
        select USB_ARCH_HAS_OHCI
        select CLKDEV_LOOKUP
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        help
          Support for the NXP LPC32XX family of processors
@@@ -559,6 -595,7 +595,7 @@@ config ARCH_MM
        select TICK_ONESHOT
        select PLAT_PXA
        select SPARSE_IRQ
+       select GENERIC_ALLOCATOR
        help
          Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
  
@@@ -567,6 -604,7 +604,7 @@@ config ARCH_KS869
        select CPU_ARM922T
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
          System-on-Chip devices.
@@@ -587,19 -625,10 +625,10 @@@ config ARCH_W90X90
          <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
                ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
  
- config ARCH_NUC93X
-       bool "Nuvoton NUC93X CPU"
-       select CPU_ARM926T
-       select CLKDEV_LOOKUP
-       help
-         Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
-         low-power and high performance MPEG-4/JPEG multimedia controller chip.
  config ARCH_TEGRA
        bool "NVIDIA Tegra"
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select GENERIC_GPIO
        select HAVE_CLK
          This enables support for NVIDIA Tegra based systems (Tegra APX,
          Tegra 6xx and Tegra 2 series).
  
+ config ARCH_PICOXCELL
+       bool "Picochip picoXcell"
+       select ARCH_REQUIRE_GPIOLIB
+       select ARM_PATCH_PHYS_VIRT
+       select ARM_VIC
+       select CPU_V6K
+       select DW_APB_TIMER
+       select GENERIC_CLOCKEVENTS
+       select GENERIC_GPIO
+       select HAVE_SCHED_CLOCK
+       select HAVE_TCM
+       select NO_IOPORT
+       select USE_OF
+       help
+         This enables support for systems based on the Picochip picoXcell
+         family of Femtocell devices.  The picoxcell support requires device tree
+         for all boards.
  config ARCH_PNX4008
        bool "Philips Nexperia PNX4008 Mobile"
        select CPU_ARM926T
@@@ -660,6 -707,7 +707,7 @@@ config ARCH_SHMOBIL
        select SPARSE_IRQ
        select MULTI_IRQ_HANDLER
        select PM_GENERIC_DOMAINS if PM
+       select NEED_MACH_MEMORY_H
        help
          Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
  
@@@ -675,6 -723,7 +723,7 @@@ config ARCH_RP
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_USES_GETTIMEOFFSET
        select HAVE_IDE
+       select NEED_MACH_MEMORY_H
        help
          On the Acorn Risc-PC, Linux can support the internal IDE disk and
          CD-ROM interface, serial and parallel port, and the floppy drive.
@@@ -694,6 -743,7 +743,7 @@@ config ARCH_SA110
        select TICK_ONESHOT
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_IDE
+       select NEED_MACH_MEMORY_H
        help
          Support for StrongARM 11x0 based boards.
  
@@@ -720,6 -770,7 +770,7 @@@ config ARCH_S3C64X
        select CPU_V6
        select ARM_VIC
        select HAVE_CLK
+       select HAVE_TCM
        select CLKDEV_LOOKUP
        select NO_IOPORT
        select ARCH_USES_GETTIMEOFFSET
        select ARCH_REQUIRE_GPIOLIB
        select SAMSUNG_CLKSRC
        select SAMSUNG_IRQ_VIC_TIMER
-       select SAMSUNG_IRQ_UART
        select S3C_GPIO_TRACK
-       select S3C_GPIO_PULL_UPDOWN
-       select S3C_GPIO_CFG_S3C24XX
-       select S3C_GPIO_CFG_S3C64XX
        select S3C_DEV_NAND
        select USB_ARCH_HAS_OHCI
        select SAMSUNG_GPIOLIB_4BIT
@@@ -786,11 -833,12 +833,12 @@@ config ARCH_S5PV21
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
+       select NEED_MACH_MEMORY_H
        help
          Samsung S5PV210/S5PC110 series based systems
  
- config ARCH_EXYNOS4
-       bool "Samsung EXYNOS4"
+ config ARCH_EXYNOS
+       bool "SAMSUNG EXYNOS"
        select CPU_V7
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_HAS_HOLES_MEMORYMODEL
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
+       select NEED_MACH_MEMORY_H
        help
-         Samsung EXYNOS4 series based systems
+         Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
  
  config ARCH_SHARK
        bool "Shark"
        select ZONE_DMA
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
@@@ -835,11 -885,14 +885,14 @@@ config ARCH_U30
        select HAVE_SCHED_CLOCK
        select HAVE_TCM
        select ARM_AMBA
+       select ARM_PATCH_PHYS_VIRT
        select ARM_VIC
        select GENERIC_CLOCKEVENTS
        select CLKDEV_LOOKUP
        select HAVE_MACH_CLKDEV
        select GENERIC_GPIO
+       select ARCH_REQUIRE_GPIOLIB
+       select NEED_MACH_MEMORY_H
        help
          Support for ST-Ericsson U300 series mobile platforms.
  
@@@ -915,7 -968,6 +968,6 @@@ config ARCH_VT850
  config ARCH_ZYNQ
        bool "Xilinx Zynq ARM Cortex A9 Platform"
        select CPU_V7
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select CLKDEV_LOOKUP
        select ARM_GIC
@@@ -984,8 -1036,6 +1036,6 @@@ source "arch/arm/mach-netx/Kconfig
  source "arch/arm/mach-nomadik/Kconfig"
  source "arch/arm/plat-nomadik/Kconfig"
  
- source "arch/arm/mach-nuc93x/Kconfig"
  source "arch/arm/plat-omap/Kconfig"
  
  source "arch/arm/mach-omap1/Kconfig"
@@@ -1029,7 -1079,7 +1079,7 @@@ source "arch/arm/mach-s5pc100/Kconfig
  
  source "arch/arm/mach-s5pv210/Kconfig"
  
- source "arch/arm/mach-exynos4/Kconfig"
+ source "arch/arm/mach-exynos/Kconfig"
  
  source "arch/arm/mach-shmobile/Kconfig"
  
@@@ -1083,9 -1133,10 +1133,9 @@@ config IWMMX
          Enable support for iWMMXt context switching at run time if
          running on a CPU that supports it.
  
 -#  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
  config XSCALE_PMU
        bool
 -      depends on CPU_XSCALE && !XSCALE_PMU_TIMER
 +      depends on CPU_XSCALE
        default y
  
  config CPU_HAS_PMU
@@@ -1378,7 -1429,7 +1428,7 @@@ config SM
        depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
                 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
                 ARCH_EXYNOS4 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
-                ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE
+                ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE || ARCH_HIGHBANK || SOC_IMX6Q
        depends on MMU
        select USE_GENERIC_SMP_HELPERS
        select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
@@@ -1838,6 -1889,38 +1888,38 @@@ config ZBOOT_ROM_SH_MOBILE_SDH
  
  endchoice
  
+ config ARM_APPENDED_DTB
+       bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
+       depends on OF && !ZBOOT_ROM && EXPERIMENTAL
+       help
+         With this option, the boot code will look for a device tree binary
+         (DTB) appended to zImage
+         (e.g. cat zImage <filename>.dtb > zImage_w_dtb).
+         This is meant as a backward compatibility convenience for those
+         systems with a bootloader that can't be upgraded to accommodate
+         the documented boot protocol using a device tree.
+         Beware that there is very little in terms of protection against
+         this option being confused by leftover garbage in memory that might
+         look like a DTB header after a reboot if no actual DTB is appended
+         to zImage.  Do not leave this option active in a production kernel
+         if you don't intend to always append a DTB.  Proper passing of the
+         location into r2 of a bootloader provided DTB is always preferable
+         to this option.
+ config ARM_ATAG_DTB_COMPAT
+       bool "Supplement the appended DTB with traditional ATAG information"
+       depends on ARM_APPENDED_DTB
+       help
+         Some old bootloaders can't be updated to a DTB capable one, yet
+         they provide ATAGs with memory configuration, the ramdisk address,
+         the kernel cmdline string, etc.  Such information is dynamically
+         provided by the bootloader and can't always be stored in a static
+         DTB.  To allow a device tree enabled kernel to be used with such
+         bootloaders, this option allows zImage to extract the information
+         from the ATAG list and store it at run time into the appended DTB.
  config CMDLINE
        string "Default kernel command string"
        default ""
@@@ -1984,6 -2067,7 +2066,7 @@@ config CPU_FREQ_PX
        bool
        depends on CPU_FREQ && ARCH_PXA && PXA25x
        default y
+       select CPU_FREQ_TABLE
        select CPU_FREQ_DEFAULT_GOV_USERSPACE
  
  config CPU_FREQ_S3C
@@@ -2127,7 -2211,7 +2210,7 @@@ menu "Power management options
  source "kernel/power/Kconfig"
  
  config ARCH_SUSPEND_POSSIBLE
-       depends on !ARCH_S5P64X0 && !ARCH_S5PC100
+       depends on !ARCH_S5PC100
        depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE
        def_bool y
diff --combined arch/mips/Kconfig
@@@ -47,6 -47,8 +47,8 @@@ config MIPS_ALCHEM
        select GENERIC_GPIO
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select SYS_SUPPORTS_ZBOOT
+       select USB_ARCH_HAS_OHCI
+       select USB_ARCH_HAS_EHCI
  
  config AR7
        bool "Texas Instruments AR7"
@@@ -92,15 -94,8 +94,8 @@@ config BCM47X
        select DMA_NONCOHERENT
        select HW_HAS_PCI
        select IRQ_CPU
-       select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
-       select SSB
-       select SSB_DRIVER_MIPS
-       select SSB_DRIVER_EXTIF
-       select SSB_EMBEDDED
-       select SSB_B43_PCI_BRIDGE if PCI
-       select SSB_PCICORE_HOSTMODE if PCI
        select GENERIC_GPIO
        select SYS_HAS_EARLY_PRINTK
        select CFE
@@@ -213,6 -208,7 +208,7 @@@ config MACH_JZ474
        select SYS_HAS_EARLY_PRINTK
        select HAVE_PWM
        select HAVE_CLK
+       select GENERIC_IRQ_CHIP
  
  config LANTIQ
        bool "Lantiq based platforms"
@@@ -791,6 -787,7 +787,7 @@@ endchoic
  
  source "arch/mips/alchemy/Kconfig"
  source "arch/mips/ath79/Kconfig"
+ source "arch/mips/bcm47xx/Kconfig"
  source "arch/mips/bcm63xx/Kconfig"
  source "arch/mips/jazz/Kconfig"
  source "arch/mips/jz4740/Kconfig"
@@@ -823,10 -820,6 +820,6 @@@ config ARCH_HAS_ILOG2_U6
        bool
        default n
  
- config ARCH_SUPPORTS_OPROFILE
-       bool
-       default y if !MIPS_MT_SMTC
  config GENERIC_HWEIGHT
        bool
        default y
@@@ -2098,7 -2091,7 +2091,7 @@@ config NODES_SHIF
  
  config HW_PERF_EVENTS
        bool "Enable hardware performance counter support for perf events"
-       depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && CPU_MIPS32
+       depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON)
        default y
        help
          Enable hardware performance counter support for perf events. If
@@@ -2258,16 -2251,6 +2251,6 @@@ config H
  
  source "kernel/Kconfig.preempt"
  
- config MIPS_INSANE_LARGE
-       bool "Support for large 64-bit configurations"
-       depends on CPU_R10000 && 64BIT
-       help
-         MIPS R10000 does support a 44 bit / 16TB address space as opposed to
-         previous 64-bit processors which only supported 40 bit / 1TB. If you
-         need processes of more than 1TB virtual address space, say Y here.
-         This will result in additional memory usage, so it is not
-         recommended for normal users.
  config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
        depends on EXPERIMENTAL
@@@ -2386,6 -2369,10 +2369,6 @@@ config T
          Linux driver support status is documented at:
          <http://www.linux-mips.org/wiki/DECstation>
  
 -#config ACCESSBUS
 -#     bool "Access.Bus support"
 -#     depends on TC
 -
  config MMU
        bool
        default y
@@@ -1,3 -1,19 +1,3 @@@
 -#config BUBINGA
 -#     bool "Bubinga"
 -#     depends on 40x
 -#     default n
 -#     select 405EP
 -#     help
 -#       This option enables support for the IBM 405EP evaluation board.
 -
 -#config CPCI405
 -#     bool "CPCI405"
 -#     depends on 40x
 -#     default n
 -#     select 405GP
 -#     help
 -#       This option enables support for the CPCI405 board.
 -
  config ACADIA
        bool "Acadia"
        depends on 40x
@@@ -16,14 -32,6 +16,6 @@@ config EP40
        help
          This option enables support for the EP405/EP405PC boards.
  
- config HCU4
-       bool "Hcu4"
-       depends on 40x
-       default n
-       select 405GPR
-       help
-         This option enables support for the Nestal Maschinen HCU4 board.
  config HOTFOOT
          bool "Hotfoot"
        depends on 40x
@@@ -57,6 -65,14 +49,6 @@@ config MAKAL
        help
          This option enables support for the AMCC PPC405EX board.
  
 -#config SYCAMORE
 -#     bool "Sycamore"
 -#     depends on 40x
 -#     default n
 -#     select 405GPR
 -#     help
 -#       This option enables support for the IBM PPC405GPr evaluation board.
 -
  config WALNUT
        bool "Walnut"
        depends on 40x
@@@ -91,11 -107,6 +83,6 @@@ config PPC40x_SIMPL
        help
          This option enables the simple PowerPC 40x platform support.
  
- # 40x specific CPU modules, selected based on the board above.
- config NP405H
-       bool
-       #depends on ASH
  # OAK doesn't exist but wanted to keep this around for any future 403GCX boards
  config 403GCX
        bool
@@@ -106,21 -117,21 +93,21 @@@ config 405G
        bool
        select IBM405_ERR77
        select IBM405_ERR51
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_ZMII
  
  config 405EP
        bool
  
  config 405EX
        bool
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_RGMII
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_RGMII
  
  config 405EZ
        bool
-       select IBM_NEW_EMAC_NO_FLOW_CTRL
-       select IBM_NEW_EMAC_MAL_CLR_ICINTSTAT
-       select IBM_NEW_EMAC_MAL_COMMON_ERR
+       select IBM_EMAC_NO_FLOW_CTRL
+       select IBM_EMAC_MAL_CLR_ICINTSTAT
+       select IBM_EMAC_MAL_COMMON_ERR
  
  config 405GPR
        bool
@@@ -161,3 -172,17 +148,3 @@@ config IBM405_ERR7
  # All 40x-based cores, up until the 405GPR and 405EP have this errata.
  config IBM405_ERR51
        bool
 -
 -#config BIOS_FIXUP
 -#     bool
 -#     depends on BUBINGA || EP405 || SYCAMORE || WALNUT
 -#     default y
 -
 -#config PPC4xx_DMA
 -#     bool "PPC4xx DMA controller support"
 -#     depends on 4xx
 -
 -#config PPC4xx_EDMA
 -#     bool
 -#     depends on !STB03xxx && PPC4xx_DMA
 -#     default y
@@@ -23,7 -23,7 +23,7 @@@ config BLUESTON
        default n
        select PPC44x_SIMPLE
        select APM821xx
-       select IBM_NEW_EMAC_RGMII
+       select IBM_EMAC_RGMII
        help
          This option enables support for the APM APM821xx Evaluation board.
  
@@@ -75,7 -75,7 +75,7 @@@ config KATMA
        select PCI
        select PPC4xx_PCI_EXPRESS
        select PCI_MSI
 -      select PCC4xx_MSI
 +      select PPC4xx_MSI
        help
          This option enables support for the AMCC PPC440SPe evaluation board.
  
@@@ -122,8 -122,8 +122,8 @@@ config CANYONLAND
        select PPC4xx_PCI_EXPRESS
        select PCI_MSI
        select PPC4xx_MSI
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII
        help
          This option enables support for the AMCC PPC460EX evaluation board.
  
@@@ -135,8 -135,8 +135,8 @@@ config GLACIE
        select 460EX # Odd since it uses 460GT but the effects are the same
        select PCI
        select PPC4xx_PCI_EXPRESS
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII
        help
          This option enables support for the AMCC PPC460GT evaluation board.
  
@@@ -161,7 -161,7 +161,7 @@@ config EIGE
        select 460SX
        select PCI
        select PPC4xx_PCI_EXPRESS
-       select IBM_NEW_EMAC_RGMII
+       select IBM_EMAC_RGMII
        help
          This option enables support for the AMCC PPC460SX evaluation board.
  
@@@ -197,6 -197,22 +197,6 @@@ config ICO
        help
          This option enables support for the AMCC PPC440SPe evaluation board.
  
 -#config LUAN
 -#     bool "Luan"
 -#     depends on 44x
 -#     default n
 -#     select 440SP
 -#     help
 -#       This option enables support for the IBM PPC440SP evaluation board.
 -
 -#config OCOTEA
 -#     bool "Ocotea"
 -#     depends on 44x
 -#     default n
 -#     select 440GX
 -#     help
 -#       This option enables support for the IBM PPC440GX evaluation board.
 -
  config XILINX_VIRTEX440_GENERIC_BOARD
        bool "Generic Xilinx Virtex 5 FXT board support"
        depends on 44x
@@@ -244,59 -260,59 +244,59 @@@ config 440E
        bool
        select PPC_FPU
        select IBM440EP_ERR42
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_ZMII
        select USB_ARCH_HAS_OHCI
  
  config 440EPX
        bool
        select PPC_FPU
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII
  
  config 440GRX
        bool
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII
  
  config 440GP
        bool
-       select IBM_NEW_EMAC_ZMII
+       select IBM_EMAC_ZMII
  
  config 440GX
        bool
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII #test only
-       select IBM_NEW_EMAC_TAH  #test only
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII #test only
+       select IBM_EMAC_TAH  #test only
  
  config 440SP
        bool
  
  config 440SPe
        bool
-       select IBM_NEW_EMAC_EMAC4
+       select IBM_EMAC_EMAC4
  
  config 460EX
        bool
        select PPC_FPU
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_TAH
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_TAH
  
  config 460SX
        bool
        select PPC_FPU
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_RGMII
-       select IBM_NEW_EMAC_ZMII
-       select IBM_NEW_EMAC_TAH
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_RGMII
+       select IBM_EMAC_ZMII
+       select IBM_EMAC_TAH
  
  config APM821xx
        bool
        select PPC_FPU
-       select IBM_NEW_EMAC_EMAC4
-       select IBM_NEW_EMAC_TAH
+       select IBM_EMAC_EMAC4
+       select IBM_EMAC_TAH
  
  # 44x errata/workaround config symbols, selected by the CPU models above
  config IBM440EP_ERR42
diff --combined arch/s390/Kconfig
@@@ -87,9 -87,11 +87,10 @@@ config S39
        select HAVE_KERNEL_LZMA
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_XZ
 -      select HAVE_GET_USER_PAGES_FAST
        select HAVE_ARCH_MUTEX_CPU_RELAX
        select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
        select HAVE_RCU_TABLE_FREE if SMP
+       select ARCH_SAVE_PAGE_KEYS if HIBERNATION
        select ARCH_INLINE_SPIN_TRYLOCK
        select ARCH_INLINE_SPIN_TRYLOCK_BH
        select ARCH_INLINE_SPIN_LOCK
@@@ -567,6 -569,16 +568,16 @@@ config KEXE
          current kernel, and to start another kernel.  It is like a reboot
          but is independent of hardware/microcode support.
  
+ config CRASH_DUMP
+       bool "kernel crash dumps"
+       depends on 64BIT
+       help
+         Generate crash dump after being started by kexec.
+         Crash dump kernels are loaded in the main kernel with kexec-tools
+         into a specially reserved region and then later executed after
+         a crash by kdump/kexec.
+         For more details see Documentation/kdump/kdump.txt
  config ZFCPDUMP
        def_bool n
        prompt "zfcpdump support"
diff --combined crypto/Kconfig
@@@ -100,6 -100,14 +100,14 @@@ config CRYPTO_MANAGER
        select CRYPTO_BLKCIPHER2
        select CRYPTO_PCOMP2
  
+ config CRYPTO_USER
+       tristate "Userspace cryptographic algorithm configuration"
+       depends on NET
+       select CRYPTO_MANAGER
+       help
+         Userapace configuration for cryptographic instantiations such as
+         cbc(aes).
  config CRYPTO_MANAGER_DISABLE_TESTS
        bool "Disable run-time self tests"
        default y
@@@ -321,6 -329,7 +329,6 @@@ config CRYPTO_CRC32C_INTE
  
  config CRYPTO_GHASH
        tristate "GHASH digest algorithm"
 -      select CRYPTO_SHASH
        select CRYPTO_GF128MUL
        help
          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
@@@ -406,6 -415,16 +414,16 @@@ config CRYPTO_SHA
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
  
+ config CRYPTO_SHA1_SSSE3
+       tristate "SHA1 digest algorithm (SSSE3/AVX)"
+       depends on X86 && 64BIT
+       select CRYPTO_SHA1
+       select CRYPTO_HASH
+       help
+         SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
+         using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
+         Extensions (AVX), when available.
  config CRYPTO_SHA256
        tristate "SHA224 and SHA256 digest algorithm"
        select CRYPTO_HASH
@@@ -458,6 -477,7 +476,6 @@@ config CRYPTO_WP51
  config CRYPTO_GHASH_CLMUL_NI_INTEL
        tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
        depends on X86 && 64BIT
 -      select CRYPTO_SHASH
        select CRYPTO_CRYPTD
        help
          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
@@@ -588,6 -608,7 +606,7 @@@ config CRYPTO_ARC
  config CRYPTO_BLOWFISH
        tristate "Blowfish cipher algorithm"
        select CRYPTO_ALGAPI
+       select CRYPTO_BLOWFISH_COMMON
        help
          Blowfish cipher algorithm, by Bruce Schneier.
  
          See also:
          <http://www.schneier.com/blowfish.html>
  
+ config CRYPTO_BLOWFISH_COMMON
+       tristate
+       help
+         Common parts of the Blowfish cipher algorithm shared by the
+         generic c and the assembler implementations.
+         See also:
+         <http://www.schneier.com/blowfish.html>
+ config CRYPTO_BLOWFISH_X86_64
+       tristate "Blowfish cipher algorithm (x86_64)"
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_ALGAPI
+       select CRYPTO_BLOWFISH_COMMON
+       help
+         Blowfish cipher algorithm (x86_64), by Bruce Schneier.
+         This is a variable key length cipher which can use keys from 32
+         bits to 448 bits in length.  It's fast, simple and specifically
+         designed for use on "large microprocessors".
+         See also:
+         <http://www.schneier.com/blowfish.html>
  config CRYPTO_CAMELLIA
        tristate "Camellia cipher algorithms"
        depends on CRYPTO
@@@ -791,6 -836,26 +834,26 @@@ config CRYPTO_TWOFISH_X86_6
          See also:
          <http://www.schneier.com/twofish.html>
  
+ config CRYPTO_TWOFISH_X86_64_3WAY
+       tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_ALGAPI
+       select CRYPTO_TWOFISH_COMMON
+       select CRYPTO_TWOFISH_X86_64
+       help
+         Twofish cipher algorithm (x86_64, 3-way parallel).
+         Twofish was submitted as an AES (Advanced Encryption Standard)
+         candidate cipher by researchers at CounterPane Systems.  It is a
+         16 round block cipher supporting key sizes of 128, 192, and 256
+         bits.
+         This module provides Twofish cipher algorithm that processes three
+         blocks parallel, utilizing resources of out-of-order CPUs better.
+         See also:
+         <http://www.schneier.com/twofish.html>
  comment "Compression"
  
  config CRYPTO_DEFLATE
diff --combined fs/namespace.c
@@@ -352,7 -352,9 +352,7 @@@ int mnt_want_write(struct vfsmount *mnt
        if (__mnt_is_readonly(mnt)) {
                mnt_dec_writers(mnt);
                ret = -EROFS;
 -              goto out;
        }
 -out:
        preempt_enable();
        return ret;
  }
@@@ -1107,6 -1109,7 +1107,7 @@@ static int show_vfsstat(struct seq_fil
  
        /* device */
        if (mnt->mnt_sb->s_op->show_devname) {
+               seq_puts(m, "device ");
                err = mnt->mnt_sb->s_op->show_devname(m, mnt);
        } else {
                if (mnt->mnt_devname) {
diff --combined kernel/irq/manage.c
@@@ -195,7 -195,7 +195,7 @@@ int irq_set_affinity(unsigned int irq, 
  int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m)
  {
        unsigned long flags;
-       struct irq_desc *desc = irq_get_desc_lock(irq, &flags);
+       struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL);
  
        if (!desc)
                return -EINVAL;
@@@ -356,7 -356,7 +356,7 @@@ void __disable_irq(struct irq_desc *des
  static int __disable_irq_nosync(unsigned int irq)
  {
        unsigned long flags;
-       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags);
+       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL);
  
        if (!desc)
                return -EINVAL;
@@@ -448,7 -448,7 +448,7 @@@ void __enable_irq(struct irq_desc *desc
  void enable_irq(unsigned int irq)
  {
        unsigned long flags;
-       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags);
+       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL);
  
        if (!desc)
                return;
@@@ -467,6 -467,9 +467,9 @@@ static int set_irq_wake_real(unsigned i
        struct irq_desc *desc = irq_to_desc(irq);
        int ret = -ENXIO;
  
+       if (irq_desc_get_chip(desc)->flags &  IRQCHIP_SKIP_SET_WAKE)
+               return 0;
        if (desc->irq_data.chip->irq_set_wake)
                ret = desc->irq_data.chip->irq_set_wake(&desc->irq_data, on);
  
  int irq_set_irq_wake(unsigned int irq, unsigned int on)
  {
        unsigned long flags;
-       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags);
+       struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL);
        int ret = 0;
  
        if (!desc)
@@@ -529,7 -532,7 +532,7 @@@ EXPORT_SYMBOL(irq_set_irq_wake)
  int can_request_irq(unsigned int irq, unsigned long irqflags)
  {
        unsigned long flags;
-       struct irq_desc *desc = irq_get_desc_lock(irq, &flags);
+       struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0);
        int canrequest = 0;
  
        if (!desc)
@@@ -1118,6 -1121,8 +1121,8 @@@ int setup_irq(unsigned int irq, struct 
        int retval;
        struct irq_desc *desc = irq_to_desc(irq);
  
+       if (WARN_ON(irq_settings_is_per_cpu_devid(desc)))
+               return -EINVAL;
        chip_bus_lock(desc);
        retval = __setup_irq(irq, desc, act);
        chip_bus_sync_unlock(desc);
  }
  EXPORT_SYMBOL_GPL(setup_irq);
  
 /*
+ /*
   * Internal function to unregister an irqaction - used to free
   * regular and special interrupts that are part of the architecture.
   */
@@@ -1224,7 -1229,10 +1229,10 @@@ static struct irqaction *__free_irq(uns
   */
  void remove_irq(unsigned int irq, struct irqaction *act)
  {
-       __free_irq(irq, act->dev_id);
+       struct irq_desc *desc = irq_to_desc(irq);
+       if (desc && !WARN_ON(irq_settings_is_per_cpu_devid(desc)))
+           __free_irq(irq, act->dev_id);
  }
  EXPORT_SYMBOL_GPL(remove_irq);
  
@@@ -1246,7 -1254,7 +1254,7 @@@ void free_irq(unsigned int irq, void *d
  {
        struct irq_desc *desc = irq_to_desc(irq);
  
-       if (!desc)
+       if (!desc || WARN_ON(irq_settings_is_per_cpu_devid(desc)))
                return;
  
  #ifdef CONFIG_SMP
@@@ -1281,7 -1289,7 +1289,7 @@@ EXPORT_SYMBOL(free_irq)
   *    and to set up the interrupt handler in the right order.
   *
   *    If you want to set up a threaded irq handler for your device
 - *    then you need to supply @handler and @thread_fn. @handler ist
 + *    then you need to supply @handler and @thread_fn. @handler is
   *    still called in hard interrupt context and has to check
   *    whether the interrupt originates from the device. If yes it
   *    needs to disable the interrupt on the device and return
@@@ -1324,7 -1332,8 +1332,8 @@@ int request_threaded_irq(unsigned int i
        if (!desc)
                return -EINVAL;
  
-       if (!irq_settings_can_request(desc))
+       if (!irq_settings_can_request(desc) ||
+           WARN_ON(irq_settings_is_per_cpu_devid(desc)))
                return -EINVAL;
  
        if (!handler) {
@@@ -1409,3 -1418,194 +1418,194 @@@ int request_any_context_irq(unsigned in
        return !ret ? IRQC_IS_HARDIRQ : ret;
  }
  EXPORT_SYMBOL_GPL(request_any_context_irq);
+ void enable_percpu_irq(unsigned int irq, unsigned int type)
+ {
+       unsigned int cpu = smp_processor_id();
+       unsigned long flags;
+       struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU);
+       if (!desc)
+               return;
+       type &= IRQ_TYPE_SENSE_MASK;
+       if (type != IRQ_TYPE_NONE) {
+               int ret;
+               ret = __irq_set_trigger(desc, irq, type);
+               if (ret) {
+                       WARN(1, "failed to set type for IRQ%d\n", irq);
+                       goto out;
+               }
+       }
+       irq_percpu_enable(desc, cpu);
+ out:
+       irq_put_desc_unlock(desc, flags);
+ }
+ void disable_percpu_irq(unsigned int irq)
+ {
+       unsigned int cpu = smp_processor_id();
+       unsigned long flags;
+       struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU);
+       if (!desc)
+               return;
+       irq_percpu_disable(desc, cpu);
+       irq_put_desc_unlock(desc, flags);
+ }
+ /*
+  * Internal function to unregister a percpu irqaction.
+  */
+ static struct irqaction *__free_percpu_irq(unsigned int irq, void __percpu *dev_id)
+ {
+       struct irq_desc *desc = irq_to_desc(irq);
+       struct irqaction *action;
+       unsigned long flags;
+       WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq);
+       if (!desc)
+               return NULL;
+       raw_spin_lock_irqsave(&desc->lock, flags);
+       action = desc->action;
+       if (!action || action->percpu_dev_id != dev_id) {
+               WARN(1, "Trying to free already-free IRQ %d\n", irq);
+               goto bad;
+       }
+       if (!cpumask_empty(desc->percpu_enabled)) {
+               WARN(1, "percpu IRQ %d still enabled on CPU%d!\n",
+                    irq, cpumask_first(desc->percpu_enabled));
+               goto bad;
+       }
+       /* Found it - now remove it from the list of entries: */
+       desc->action = NULL;
+       raw_spin_unlock_irqrestore(&desc->lock, flags);
+       unregister_handler_proc(irq, action);
+       module_put(desc->owner);
+       return action;
+ bad:
+       raw_spin_unlock_irqrestore(&desc->lock, flags);
+       return NULL;
+ }
+ /**
+  *    remove_percpu_irq - free a per-cpu interrupt
+  *    @irq: Interrupt line to free
+  *    @act: irqaction for the interrupt
+  *
+  * Used to remove interrupts statically setup by the early boot process.
+  */
+ void remove_percpu_irq(unsigned int irq, struct irqaction *act)
+ {
+       struct irq_desc *desc = irq_to_desc(irq);
+       if (desc && irq_settings_is_per_cpu_devid(desc))
+           __free_percpu_irq(irq, act->percpu_dev_id);
+ }
+ /**
+  *    free_percpu_irq - free an interrupt allocated with request_percpu_irq
+  *    @irq: Interrupt line to free
+  *    @dev_id: Device identity to free
+  *
+  *    Remove a percpu interrupt handler. The handler is removed, but
+  *    the interrupt line is not disabled. This must be done on each
+  *    CPU before calling this function. The function does not return
+  *    until any executing interrupts for this IRQ have completed.
+  *
+  *    This function must not be called from interrupt context.
+  */
+ void free_percpu_irq(unsigned int irq, void __percpu *dev_id)
+ {
+       struct irq_desc *desc = irq_to_desc(irq);
+       if (!desc || !irq_settings_is_per_cpu_devid(desc))
+               return;
+       chip_bus_lock(desc);
+       kfree(__free_percpu_irq(irq, dev_id));
+       chip_bus_sync_unlock(desc);
+ }
+ /**
+  *    setup_percpu_irq - setup a per-cpu interrupt
+  *    @irq: Interrupt line to setup
+  *    @act: irqaction for the interrupt
+  *
+  * Used to statically setup per-cpu interrupts in the early boot process.
+  */
+ int setup_percpu_irq(unsigned int irq, struct irqaction *act)
+ {
+       struct irq_desc *desc = irq_to_desc(irq);
+       int retval;
+       if (!desc || !irq_settings_is_per_cpu_devid(desc))
+               return -EINVAL;
+       chip_bus_lock(desc);
+       retval = __setup_irq(irq, desc, act);
+       chip_bus_sync_unlock(desc);
+       return retval;
+ }
+ /**
+  *    request_percpu_irq - allocate a percpu interrupt line
+  *    @irq: Interrupt line to allocate
+  *    @handler: Function to be called when the IRQ occurs.
+  *    @devname: An ascii name for the claiming device
+  *    @dev_id: A percpu cookie passed back to the handler function
+  *
+  *    This call allocates interrupt resources, but doesn't
+  *    automatically enable the interrupt. It has to be done on each
+  *    CPU using enable_percpu_irq().
+  *
+  *    Dev_id must be globally unique. It is a per-cpu variable, and
+  *    the handler gets called with the interrupted CPU's instance of
+  *    that variable.
+  */
+ int request_percpu_irq(unsigned int irq, irq_handler_t handler,
+                      const char *devname, void __percpu *dev_id)
+ {
+       struct irqaction *action;
+       struct irq_desc *desc;
+       int retval;
+       if (!dev_id)
+               return -EINVAL;
+       desc = irq_to_desc(irq);
+       if (!desc || !irq_settings_can_request(desc) ||
+           !irq_settings_is_per_cpu_devid(desc))
+               return -EINVAL;
+       action = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
+       if (!action)
+               return -ENOMEM;
+       action->handler = handler;
+       action->flags = IRQF_PERCPU;
+       action->name = devname;
+       action->percpu_dev_id = dev_id;
+       chip_bus_lock(desc);
+       retval = __setup_irq(irq, desc, action);
+       chip_bus_sync_unlock(desc);
+       if (retval)
+               kfree(action);
+       return retval;
+ }
diff --combined lib/Kconfig
@@@ -270,12 -270,10 +270,9 @@@ config AVERAG
          If unsure, say N.
  
  config CORDIC
 -      tristate "Cordic function"
 +      tristate "CORDIC algorithm"
        help
 -        The option provides arithmetic function using cordic algorithm
 -        so its calculations are in fixed point. Modules can select this
 -        when they require this function. Module will be called cordic.
 +        This option provides an implementation of the CORDIC algorithm;
 +        calculations are in fixed point. Module will be called cordic.
  
- config LLIST
-       bool
  endmenu