aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2013-06-28 18:26:17 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2013-06-28 18:26:17 -0400
commit9f84b6267ccde1bebe3f9cd40a91716b5ece5e20 (patch)
treeb51dcf9fb1b7205ed8134ad1169e73719897163d /arch
parent719038de98bc8479b771c582a1e4a1e86079da22 (diff)
parent5f8c4218148822fde6eebbeefc34bd0a6061e031 (diff)
Merge remote-tracking branch 'origin/x86/fpu' into queue/x86/cpu
Use the union of 3.10 x86/cpu and x86/fpu as baseline. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig3
-rw-r--r--arch/arc/boot/dts/abilis_tb100_dvk.dts2
-rw-r--r--arch/arc/boot/dts/abilis_tb101_dvk.dts2
-rw-r--r--arch/arc/boot/dts/abilis_tb10x.dtsi6
-rw-r--r--arch/arc/include/asm/cacheflush.h6
-rw-r--r--arch/arc/include/asm/page.h9
-rw-r--r--arch/arc/include/asm/pgtable.h26
-rw-r--r--arch/arc/include/asm/tlb.h2
-rw-r--r--arch/arc/mm/cache_arc700.c23
-rw-r--r--arch/arc/mm/tlb.c3
-rw-r--r--arch/arc/mm/tlbex.S6
-rw-r--r--arch/arc/plat-tb10x/tb10x.c26
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/boot/dts/Makefile4
-rw-r--r--arch/arm/boot/dts/armada-370-xp.dtsi3
-rw-r--r--arch/arm/boot/dts/armada-370.dtsi7
-rw-r--r--arch/arm/boot/dts/armada-xp-gp.dts3
-rw-r--r--arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts3
-rw-r--r--arch/arm/boot/dts/armada-xp.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi1
-rw-r--r--arch/arm/boot/dts/at91sam9x25ek.dts2
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi15
-rw-r--r--arch/arm/boot/dts/omap3.dtsi2
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi12
-rw-r--r--arch/arm/boot/dts/sama5d3xcm.dtsi4
-rw-r--r--arch/arm/boot/dts/ste-nomadik-s8815.dts12
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts4
-rw-r--r--arch/arm/common/mcpm_platsmp.c3
-rw-r--r--arch/arm/configs/exynos_defconfig54
-rw-r--r--arch/arm/configs/omap1_defconfig1
-rw-r--r--arch/arm/configs/omap2plus_defconfig2
-rw-r--r--arch/arm/configs/tegra_defconfig3
-rw-r--r--arch/arm/crypto/sha1-armv4-large.S2
-rw-r--r--arch/arm/include/asm/cmpxchg.h8
-rw-r--r--arch/arm/include/debug/ux500.S6
-rw-r--r--arch/arm/kernel/process.c1
-rw-r--r--arch/arm/kernel/smp.c2
-rw-r--r--arch/arm/mach-at91/at91rm9200_time.c7
-rw-r--r--arch/arm/mach-at91/at91sam9n12.c6
-rw-r--r--arch/arm/mach-at91/include/mach/at91_pmc.h6
-rw-r--r--arch/arm/mach-exynos/Kconfig3
-rw-r--r--arch/arm/mach-exynos/common.c39
-rw-r--r--arch/arm/mach-exynos/common.h2
-rw-r--r--arch/arm/mach-exynos/include/mach/pm-core.h14
-rw-r--r--arch/arm/mach-exynos/mach-universal_c210.c5
-rw-r--r--arch/arm/mach-imx/clk-imx6q.c11
-rw-r--r--arch/arm/mach-imx/headsmp.S12
-rw-r--r--arch/arm/mach-imx/platsmp.c14
-rw-r--r--arch/arm/mach-kirkwood/common.c6
-rw-r--r--arch/arm/mach-kirkwood/ts219-setup.c2
-rw-r--r--arch/arm/mach-mvebu/Kconfig1
-rw-r--r--arch/arm/mach-mvebu/armada-370-xp.c7
-rw-r--r--arch/arm/mach-omap1/dma.c1
-rw-r--r--arch/arm/mach-omap2/cclock33xx_data.c26
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c113
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.h7
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c3
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_33xx_data.c6
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c4
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_44xx_data.c6
-rw-r--r--arch/arm/mach-omap2/serial.c31
-rw-r--r--arch/arm/mach-orion5x/common.c7
-rw-r--r--arch/arm/mach-shmobile/board-marzen.c6
-rw-r--r--arch/arm/mach-sunxi/Kconfig1
-rw-r--r--arch/arm/mach-tegra/tegra2_emc.c5
-rw-r--r--arch/arm/mach-ux500/Kconfig1
-rw-r--r--arch/arm/mach-ux500/board-mop500.c6
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c6
-rw-r--r--arch/arm/mach-ux500/setup.h2
-rw-r--r--arch/arm/mach-vt8500/vt8500.c1
-rw-r--r--arch/arm/plat-orion/common.c12
-rw-r--r--arch/arm/plat-orion/include/plat/common.h1
-rw-r--r--arch/arm/plat-samsung/adc.c5
-rw-r--r--arch/arm/plat-samsung/devs.c6
-rw-r--r--arch/arm/vfp/entry.S2
-rw-r--r--arch/arm/xen/enlighten.c33
-rw-r--r--arch/arm64/Kconfig2
-rw-r--r--arch/arm64/include/asm/assembler.h2
-rw-r--r--arch/arm64/kernel/arm64ksyms.c1
-rw-r--r--arch/arm64/kernel/debug-monitors.c2
-rw-r--r--arch/arm64/kernel/early_printk.c5
-rw-r--r--arch/arm64/kernel/entry.S10
-rw-r--r--arch/arm64/kernel/setup.c12
-rw-r--r--arch/arm64/kernel/traps.c17
-rw-r--r--arch/arm64/mm/cache.S2
-rw-r--r--arch/arm64/mm/fault.c3
-rw-r--r--arch/arm64/mm/proc.S3
-rw-r--r--arch/avr32/Kconfig5
-rw-r--r--arch/avr32/include/asm/Kbuild1
-rw-r--r--arch/avr32/include/asm/numnodes.h7
-rw-r--r--arch/avr32/include/asm/param.h9
-rw-r--r--arch/avr32/include/uapi/asm/Kbuild1
-rw-r--r--arch/avr32/include/uapi/asm/param.h18
-rw-r--r--arch/avr32/kernel/module.c2
-rw-r--r--arch/m68k/configs/amiga_defconfig230
-rw-r--r--arch/m68k/configs/apollo_defconfig215
-rw-r--r--arch/m68k/configs/atari_defconfig227
-rw-r--r--arch/m68k/configs/bvme6000_defconfig217
-rw-r--r--arch/m68k/configs/hp300_defconfig214
-rw-r--r--arch/m68k/configs/mac_defconfig234
-rw-r--r--arch/m68k/configs/multi_defconfig264
-rw-r--r--arch/m68k/configs/mvme147_defconfig215
-rw-r--r--arch/m68k/configs/mvme16x_defconfig216
-rw-r--r--arch/m68k/configs/q40_defconfig229
-rw-r--r--arch/m68k/configs/sun3_defconfig209
-rw-r--r--arch/m68k/configs/sun3x_defconfig210
-rw-r--r--arch/m68k/include/asm/Kbuild1
-rw-r--r--arch/m68k/include/asm/futex.h94
-rw-r--r--arch/microblaze/include/asm/futex.h2
-rw-r--r--arch/microblaze/include/asm/io.h6
-rw-r--r--arch/microblaze/kernel/cpu/cache.c2
-rw-r--r--arch/mips/alchemy/board-gpr.c1
-rw-r--r--arch/mips/alchemy/common/time.c1
-rw-r--r--arch/mips/ath79/setup.c1
-rw-r--r--arch/mips/cobalt/reset.c1
-rw-r--r--arch/mips/configs/db1000_defconfig1
-rw-r--r--arch/mips/configs/db1235_defconfig1
-rw-r--r--arch/mips/configs/lemote2f_defconfig1
-rw-r--r--arch/mips/include/asm/clock.h2
-rw-r--r--arch/mips/include/asm/idle.h23
-rw-r--r--arch/mips/include/asm/io.h2
-rw-r--r--arch/mips/include/asm/kvm_host.h2
-rw-r--r--arch/mips/include/asm/mmu_context.h95
-rw-r--r--arch/mips/include/asm/page.h17
-rw-r--r--arch/mips/include/asm/processor.h1
-rw-r--r--arch/mips/include/uapi/asm/kvm.h (renamed from arch/mips/include/asm/kvm.h)0
-rw-r--r--arch/mips/include/uapi/asm/unistd.h5
-rw-r--r--arch/mips/kernel/Makefile2
-rw-r--r--arch/mips/kernel/cpu-probe.c198
-rw-r--r--arch/mips/kernel/crash_dump.c1
-rw-r--r--arch/mips/kernel/genex.S8
-rw-r--r--arch/mips/kernel/idle.c244
-rw-r--r--arch/mips/kernel/kprobes.c5
-rw-r--r--arch/mips/kernel/proc.c1
-rw-r--r--arch/mips/kernel/process.c53
-rw-r--r--arch/mips/kernel/scall64-64.S1
-rw-r--r--arch/mips/kernel/smp.c1
-rw-r--r--arch/mips/kernel/smtc.c15
-rw-r--r--arch/mips/kernel/traps.c15
-rw-r--r--arch/mips/kvm/kvm_mips_emul.c29
-rw-r--r--arch/mips/kvm/kvm_tlb.c61
-rw-r--r--arch/mips/lantiq/xway/gptu.c6
-rw-r--r--arch/mips/lib/dump_tlb.c5
-rw-r--r--arch/mips/lib/r3k_dump_tlb.c7
-rw-r--r--arch/mips/loongson/common/reset.c1
-rw-r--r--arch/mips/loongson1/common/reset.c1
-rw-r--r--arch/mips/mm/tlb-r3k.c20
-rw-r--r--arch/mips/mm/tlb-r4k.c2
-rw-r--r--arch/mips/mm/tlb-r8k.c2
-rw-r--r--arch/mips/mm/tlbex.c79
-rw-r--r--arch/mips/netlogic/xlp/setup.c1
-rw-r--r--arch/mips/netlogic/xlr/setup.c1
-rw-r--r--arch/mips/pmcs-msp71xx/msp_prom.c2
-rw-r--r--arch/mips/pmcs-msp71xx/msp_setup.c1
-rw-r--r--arch/mips/ralink/dts/rt3050.dtsi10
-rw-r--r--arch/mips/ralink/dts/rt3052_eval.dts4
-rw-r--r--arch/mips/txx9/generic/setup.c1
-rw-r--r--arch/mips/vr41xx/common/pmu.c1
-rw-r--r--arch/mips/wrppmc/reset.c1
-rw-r--r--arch/mn10300/include/asm/pci.h2
-rw-r--r--arch/mn10300/kernel/entry.S19
-rw-r--r--arch/mn10300/unit-asb2305/pci.c1
-rw-r--r--arch/parisc/Kconfig2
-rw-r--r--arch/parisc/Makefile23
-rw-r--r--arch/parisc/include/asm/assembly.h1
-rw-r--r--arch/parisc/include/asm/hardirq.h10
-rw-r--r--arch/parisc/include/asm/mmzone.h5
-rw-r--r--arch/parisc/include/asm/processor.h18
-rw-r--r--arch/parisc/kernel/drivers.c2
-rw-r--r--arch/parisc/kernel/entry.S174
-rw-r--r--arch/parisc/kernel/hardware.c1
-rw-r--r--arch/parisc/kernel/irq.c122
-rw-r--r--arch/parisc/kernel/pacache.S12
-rw-r--r--arch/parisc/kernel/setup.c3
-rw-r--r--arch/parisc/kernel/traps.c1
-rw-r--r--arch/parisc/kernel/unaligned.c3
-rw-r--r--arch/parisc/mm/init.c4
-rw-r--r--arch/powerpc/Kconfig.debug23
-rw-r--r--arch/powerpc/configs/ps3_defconfig1
-rw-r--r--arch/powerpc/include/asm/context_tracking.h10
-rw-r--r--arch/powerpc/include/asm/firmware.h4
-rw-r--r--arch/powerpc/include/asm/hvcall.h1
-rw-r--r--arch/powerpc/include/asm/hw_irq.h5
-rw-r--r--arch/powerpc/include/asm/opal.h5
-rw-r--r--arch/powerpc/include/asm/pci-bridge.h2
-rw-r--r--arch/powerpc/include/asm/pgalloc-64.h2
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h11
-rw-r--r--arch/powerpc/include/asm/processor.h19
-rw-r--r--arch/powerpc/include/asm/pte-hash64-64k.h2
-rw-r--r--arch/powerpc/include/asm/reg.h11
-rw-r--r--arch/powerpc/include/asm/rtas.h2
-rw-r--r--arch/powerpc/include/asm/signal.h3
-rw-r--r--arch/powerpc/include/asm/thread_info.h7
-rw-r--r--arch/powerpc/include/asm/tm.h2
-rw-r--r--arch/powerpc/include/asm/udbg.h1
-rw-r--r--arch/powerpc/include/uapi/asm/Kbuild1
-rw-r--r--arch/powerpc/include/uapi/asm/tm.h18
-rw-r--r--arch/powerpc/kernel/asm-offsets.c6
-rw-r--r--arch/powerpc/kernel/cpu_setup_power.S8
-rw-r--r--arch/powerpc/kernel/cputable.c6
-rw-r--r--arch/powerpc/kernel/entry_32.S4
-rw-r--r--arch/powerpc/kernel/entry_64.S40
-rw-r--r--arch/powerpc/kernel/exceptions-64e.S8
-rw-r--r--arch/powerpc/kernel/machine_kexec_64.c4
-rw-r--r--arch/powerpc/kernel/misc_32.S11
-rw-r--r--arch/powerpc/kernel/misc_64.S11
-rw-r--r--arch/powerpc/kernel/pci-common.c26
-rw-r--r--arch/powerpc/kernel/pci_64.c10
-rw-r--r--arch/powerpc/kernel/pci_dn.c8
-rw-r--r--arch/powerpc/kernel/ppc_ksyms.c3
-rw-r--r--arch/powerpc/kernel/process.c8
-rw-r--r--arch/powerpc/kernel/ptrace.c5
-rw-r--r--arch/powerpc/kernel/rtas.c113
-rw-r--r--arch/powerpc/kernel/rtas_flash.c10
-rw-r--r--arch/powerpc/kernel/signal.c47
-rw-r--r--arch/powerpc/kernel/signal.h2
-rw-r--r--arch/powerpc/kernel/signal_32.c10
-rw-r--r--arch/powerpc/kernel/signal_64.c23
-rw-r--r--arch/powerpc/kernel/traps.c109
-rw-r--r--arch/powerpc/kernel/udbg.c3
-rw-r--r--arch/powerpc/kvm/book3s_hv.c2
-rw-r--r--arch/powerpc/kvm/book3s_pr_papr.c2
-rw-r--r--arch/powerpc/kvm/book3s_xics.c29
-rw-r--r--arch/powerpc/lib/copypage_power7.S19
-rw-r--r--arch/powerpc/lib/copyuser_power7.S12
-rw-r--r--arch/powerpc/mm/fault.c41
-rw-r--r--arch/powerpc/mm/hash_native_64.c30
-rw-r--r--arch/powerpc/mm/hash_utils_64.c36
-rw-r--r--arch/powerpc/mm/init_64.c3
-rw-r--r--arch/powerpc/perf/core-book3s.c347
-rw-r--r--arch/powerpc/platforms/Kconfig2
-rw-r--r--arch/powerpc/platforms/powernv/Kconfig1
-rw-r--r--arch/powerpc/platforms/powernv/opal.c30
-rw-r--r--arch/powerpc/platforms/powernv/pci-ioda.c36
-rw-r--r--arch/powerpc/platforms/powernv/pci.c18
-rw-r--r--arch/powerpc/platforms/powernv/pci.h2
-rw-r--r--arch/powerpc/platforms/powernv/powernv.h2
-rw-r--r--arch/powerpc/platforms/powernv/setup.c16
-rw-r--r--arch/powerpc/platforms/powernv/smp.c62
-rw-r--r--arch/powerpc/platforms/pseries/Kconfig3
-rw-r--r--arch/powerpc/platforms/pseries/msi.c75
-rw-r--r--arch/powerpc/platforms/pseries/suspend.c22
-rw-r--r--arch/powerpc/platforms/wsp/ics.c2
-rw-r--r--arch/powerpc/sysdev/Makefile2
-rw-r--r--arch/powerpc/sysdev/ehv_pic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c6
-rw-r--r--arch/powerpc/sysdev/udbg_memcons.c105
-rw-r--r--arch/powerpc/sysdev/xics/ics-opal.c2
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/include/asm/ftrace.h12
-rw-r--r--arch/s390/include/asm/page.h20
-rw-r--r--arch/s390/include/asm/pgtable.h4
-rw-r--r--arch/s390/kernel/dis.c2
-rw-r--r--arch/s390/kernel/ftrace.c9
-rw-r--r--arch/s390/kernel/mcount.S2
-rw-r--r--arch/s390/kernel/mcount64.S2
-rw-r--r--arch/s390/kernel/smp.c2
-rw-r--r--arch/s390/mm/pgtable.c3
-rw-r--r--arch/score/mm/init.c2
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--arch/x86/Kconfig.debug10
-rw-r--r--arch/x86/crypto/crc32-pclmul_asm.S2
-rw-r--r--arch/x86/crypto/sha256-avx-asm.S2
-rw-r--r--arch/x86/crypto/sha256-ssse3-asm.S2
-rw-r--r--arch/x86/include/asm/cpufeature.h118
-rw-r--r--arch/x86/include/asm/fpu-internal.h4
-rw-r--r--arch/x86/include/asm/inst.h74
-rw-r--r--arch/x86/include/asm/processor.h3
-rw-r--r--arch/x86/kernel/asm-offsets_32.c1
-rw-r--r--arch/x86/kernel/cpu/bugs.c21
-rw-r--r--arch/x86/kernel/cpu/common.c19
-rw-r--r--arch/x86/kernel/cpu/cyrix.c2
-rw-r--r--arch/x86/kernel/cpu/proc.c4
-rw-r--r--arch/x86/kernel/head64.c2
-rw-r--r--arch/x86/kernel/head_32.S21
-rw-r--r--arch/x86/kernel/head_64.S6
-rw-r--r--arch/x86/kernel/i387.c73
-rw-r--r--arch/x86/kernel/microcode_intel_early.c5
-rw-r--r--arch/x86/kernel/process.c5
-rw-r--r--arch/x86/kernel/xsave.c5
-rw-r--r--arch/x86/lguest/boot.c2
-rw-r--r--arch/x86/mm/init.c19
-rw-r--r--arch/x86/pci/mrst.c10
-rw-r--r--arch/x86/platform/efi/efi.c2
-rw-r--r--arch/x86/xen/enlighten.c2
-rw-r--r--arch/x86/xen/smp.c10
-rw-r--r--arch/x86/xen/smp.h1
289 files changed, 4685 insertions, 2240 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index dd0e8eb8042f..a4429bcd609e 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -213,6 +213,9 @@ config USE_GENERIC_SMP_HELPERS
213config GENERIC_SMP_IDLE_THREAD 213config GENERIC_SMP_IDLE_THREAD
214 bool 214 bool
215 215
216config GENERIC_IDLE_POLL_SETUP
217 bool
218
216# Select if arch init_task initializer is different to init/init_task.c 219# Select if arch init_task initializer is different to init/init_task.c
217config ARCH_INIT_TASK 220config ARCH_INIT_TASK
218 bool 221 bool
diff --git a/arch/arc/boot/dts/abilis_tb100_dvk.dts b/arch/arc/boot/dts/abilis_tb100_dvk.dts
index c0fd3623c393..0fa0d4abe795 100644
--- a/arch/arc/boot/dts/abilis_tb100_dvk.dts
+++ b/arch/arc/boot/dts/abilis_tb100_dvk.dts
@@ -37,7 +37,7 @@
37 37
38 soc100 { 38 soc100 {
39 uart@FF100000 { 39 uart@FF100000 {
40 pinctrl-names = "abilis,simple-default"; 40 pinctrl-names = "default";
41 pinctrl-0 = <&pctl_uart0>; 41 pinctrl-0 = <&pctl_uart0>;
42 }; 42 };
43 ethernet@FE100000 { 43 ethernet@FE100000 {
diff --git a/arch/arc/boot/dts/abilis_tb101_dvk.dts b/arch/arc/boot/dts/abilis_tb101_dvk.dts
index 6f8c381f6268..a4d80ce283ae 100644
--- a/arch/arc/boot/dts/abilis_tb101_dvk.dts
+++ b/arch/arc/boot/dts/abilis_tb101_dvk.dts
@@ -37,7 +37,7 @@
37 37
38 soc100 { 38 soc100 {
39 uart@FF100000 { 39 uart@FF100000 {
40 pinctrl-names = "abilis,simple-default"; 40 pinctrl-names = "default";
41 pinctrl-0 = <&pctl_uart0>; 41 pinctrl-0 = <&pctl_uart0>;
42 }; 42 };
43 ethernet@FE100000 { 43 ethernet@FE100000 {
diff --git a/arch/arc/boot/dts/abilis_tb10x.dtsi b/arch/arc/boot/dts/abilis_tb10x.dtsi
index a6139fc5aaa3..b97e3051ba4b 100644
--- a/arch/arc/boot/dts/abilis_tb10x.dtsi
+++ b/arch/arc/boot/dts/abilis_tb10x.dtsi
@@ -88,8 +88,7 @@
88 }; 88 };
89 89
90 uart@FF100000 { 90 uart@FF100000 {
91 compatible = "snps,dw-apb-uart", 91 compatible = "snps,dw-apb-uart";
92 "abilis,simple-pinctrl";
93 reg = <0xFF100000 0x100>; 92 reg = <0xFF100000 0x100>;
94 clock-frequency = <166666666>; 93 clock-frequency = <166666666>;
95 interrupts = <25 1>; 94 interrupts = <25 1>;
@@ -184,8 +183,7 @@
184 #address-cells = <1>; 183 #address-cells = <1>;
185 #size-cells = <0>; 184 #size-cells = <0>;
186 cell-index = <1>; 185 cell-index = <1>;
187 compatible = "abilis,tb100-spi", 186 compatible = "abilis,tb100-spi";
188 "abilis,simple-pinctrl";
189 num-cs = <2>; 187 num-cs = <2>;
190 reg = <0xFE011000 0x20>; 188 reg = <0xFE011000 0x20>;
191 interrupt-parent = <&tb10x_ictl>; 189 interrupt-parent = <&tb10x_ictl>;
diff --git a/arch/arc/include/asm/cacheflush.h b/arch/arc/include/asm/cacheflush.h
index 9f841af41092..ef62682e8d95 100644
--- a/arch/arc/include/asm/cacheflush.h
+++ b/arch/arc/include/asm/cacheflush.h
@@ -93,14 +93,16 @@ static inline int cache_is_vipt_aliasing(void)
93#endif 93#endif
94} 94}
95 95
96#define CACHE_COLOR(addr) (((unsigned long)(addr) >> (PAGE_SHIFT)) & 3) 96#define CACHE_COLOR(addr) (((unsigned long)(addr) >> (PAGE_SHIFT)) & 1)
97 97
98/* 98/*
99 * checks if two addresses (after page aligning) index into same cache set 99 * checks if two addresses (after page aligning) index into same cache set
100 */ 100 */
101#define addr_not_cache_congruent(addr1, addr2) \ 101#define addr_not_cache_congruent(addr1, addr2) \
102({ \
102 cache_is_vipt_aliasing() ? \ 103 cache_is_vipt_aliasing() ? \
103 (CACHE_COLOR(addr1) != CACHE_COLOR(addr2)) : 0 \ 104 (CACHE_COLOR(addr1) != CACHE_COLOR(addr2)) : 0; \
105})
104 106
105#define copy_to_user_page(vma, page, vaddr, dst, src, len) \ 107#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
106do { \ 108do { \
diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h
index 374a35514116..ab84bf131fe1 100644
--- a/arch/arc/include/asm/page.h
+++ b/arch/arc/include/asm/page.h
@@ -19,13 +19,6 @@
19#define clear_page(paddr) memset((paddr), 0, PAGE_SIZE) 19#define clear_page(paddr) memset((paddr), 0, PAGE_SIZE)
20#define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) 20#define copy_page(to, from) memcpy((to), (from), PAGE_SIZE)
21 21
22#ifndef CONFIG_ARC_CACHE_VIPT_ALIASING
23
24#define clear_user_page(addr, vaddr, pg) clear_page(addr)
25#define copy_user_page(vto, vfrom, vaddr, pg) copy_page(vto, vfrom)
26
27#else /* VIPT aliasing dcache */
28
29struct vm_area_struct; 22struct vm_area_struct;
30struct page; 23struct page;
31 24
@@ -35,8 +28,6 @@ void copy_user_highpage(struct page *to, struct page *from,
35 unsigned long u_vaddr, struct vm_area_struct *vma); 28 unsigned long u_vaddr, struct vm_area_struct *vma);
36void clear_user_page(void *to, unsigned long u_vaddr, struct page *page); 29void clear_user_page(void *to, unsigned long u_vaddr, struct page *page);
37 30
38#endif /* CONFIG_ARC_CACHE_VIPT_ALIASING */
39
40#undef STRICT_MM_TYPECHECKS 31#undef STRICT_MM_TYPECHECKS
41 32
42#ifdef STRICT_MM_TYPECHECKS 33#ifdef STRICT_MM_TYPECHECKS
diff --git a/arch/arc/include/asm/pgtable.h b/arch/arc/include/asm/pgtable.h
index 1cc4720faccb..95b1522212a7 100644
--- a/arch/arc/include/asm/pgtable.h
+++ b/arch/arc/include/asm/pgtable.h
@@ -57,9 +57,9 @@
57 57
58#define _PAGE_ACCESSED (1<<1) /* Page is accessed (S) */ 58#define _PAGE_ACCESSED (1<<1) /* Page is accessed (S) */
59#define _PAGE_CACHEABLE (1<<2) /* Page is cached (H) */ 59#define _PAGE_CACHEABLE (1<<2) /* Page is cached (H) */
60#define _PAGE_EXECUTE (1<<3) /* Page has user execute perm (H) */ 60#define _PAGE_U_EXECUTE (1<<3) /* Page has user execute perm (H) */
61#define _PAGE_WRITE (1<<4) /* Page has user write perm (H) */ 61#define _PAGE_U_WRITE (1<<4) /* Page has user write perm (H) */
62#define _PAGE_READ (1<<5) /* Page has user read perm (H) */ 62#define _PAGE_U_READ (1<<5) /* Page has user read perm (H) */
63#define _PAGE_K_EXECUTE (1<<6) /* Page has kernel execute perm (H) */ 63#define _PAGE_K_EXECUTE (1<<6) /* Page has kernel execute perm (H) */
64#define _PAGE_K_WRITE (1<<7) /* Page has kernel write perm (H) */ 64#define _PAGE_K_WRITE (1<<7) /* Page has kernel write perm (H) */
65#define _PAGE_K_READ (1<<8) /* Page has kernel perm (H) */ 65#define _PAGE_K_READ (1<<8) /* Page has kernel perm (H) */
@@ -72,9 +72,9 @@
72 72
73/* PD1 */ 73/* PD1 */
74#define _PAGE_CACHEABLE (1<<0) /* Page is cached (H) */ 74#define _PAGE_CACHEABLE (1<<0) /* Page is cached (H) */
75#define _PAGE_EXECUTE (1<<1) /* Page has user execute perm (H) */ 75#define _PAGE_U_EXECUTE (1<<1) /* Page has user execute perm (H) */
76#define _PAGE_WRITE (1<<2) /* Page has user write perm (H) */ 76#define _PAGE_U_WRITE (1<<2) /* Page has user write perm (H) */
77#define _PAGE_READ (1<<3) /* Page has user read perm (H) */ 77#define _PAGE_U_READ (1<<3) /* Page has user read perm (H) */
78#define _PAGE_K_EXECUTE (1<<4) /* Page has kernel execute perm (H) */ 78#define _PAGE_K_EXECUTE (1<<4) /* Page has kernel execute perm (H) */
79#define _PAGE_K_WRITE (1<<5) /* Page has kernel write perm (H) */ 79#define _PAGE_K_WRITE (1<<5) /* Page has kernel write perm (H) */
80#define _PAGE_K_READ (1<<6) /* Page has kernel perm (H) */ 80#define _PAGE_K_READ (1<<6) /* Page has kernel perm (H) */
@@ -93,7 +93,8 @@
93#endif 93#endif
94 94
95/* Kernel allowed all permissions for all pages */ 95/* Kernel allowed all permissions for all pages */
96#define _K_PAGE_PERMS (_PAGE_K_EXECUTE | _PAGE_K_WRITE | _PAGE_K_READ) 96#define _K_PAGE_PERMS (_PAGE_K_EXECUTE | _PAGE_K_WRITE | _PAGE_K_READ | \
97 _PAGE_GLOBAL | _PAGE_PRESENT)
97 98
98#ifdef CONFIG_ARC_CACHE_PAGES 99#ifdef CONFIG_ARC_CACHE_PAGES
99#define _PAGE_DEF_CACHEABLE _PAGE_CACHEABLE 100#define _PAGE_DEF_CACHEABLE _PAGE_CACHEABLE
@@ -106,7 +107,11 @@
106 * -by default cached, unless config otherwise 107 * -by default cached, unless config otherwise
107 * -present in memory 108 * -present in memory
108 */ 109 */
109#define ___DEF (_PAGE_PRESENT | _K_PAGE_PERMS | _PAGE_DEF_CACHEABLE) 110#define ___DEF (_PAGE_PRESENT | _PAGE_DEF_CACHEABLE)
111
112#define _PAGE_READ (_PAGE_U_READ | _PAGE_K_READ)
113#define _PAGE_WRITE (_PAGE_U_WRITE | _PAGE_K_WRITE)
114#define _PAGE_EXECUTE (_PAGE_U_EXECUTE | _PAGE_K_EXECUTE)
110 115
111/* Set of bits not changed in pte_modify */ 116/* Set of bits not changed in pte_modify */
112#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED) 117#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED)
@@ -125,11 +130,10 @@
125 * kernel vaddr space - visible in all addr spaces, but kernel mode only 130 * kernel vaddr space - visible in all addr spaces, but kernel mode only
126 * Thus Global, all-kernel-access, no-user-access, cached 131 * Thus Global, all-kernel-access, no-user-access, cached
127 */ 132 */
128#define PAGE_KERNEL __pgprot(___DEF | _PAGE_GLOBAL) 133#define PAGE_KERNEL __pgprot(_K_PAGE_PERMS | _PAGE_DEF_CACHEABLE)
129 134
130/* ioremap */ 135/* ioremap */
131#define PAGE_KERNEL_NO_CACHE __pgprot(_PAGE_PRESENT | _K_PAGE_PERMS | \ 136#define PAGE_KERNEL_NO_CACHE __pgprot(_K_PAGE_PERMS)
132 _PAGE_GLOBAL)
133 137
134/************************************************************************** 138/**************************************************************************
135 * Mapping of vm_flags (Generic VM) to PTE flags (arch specific) 139 * Mapping of vm_flags (Generic VM) to PTE flags (arch specific)
diff --git a/arch/arc/include/asm/tlb.h b/arch/arc/include/asm/tlb.h
index 85b6df839bd7..cb0c708ca665 100644
--- a/arch/arc/include/asm/tlb.h
+++ b/arch/arc/include/asm/tlb.h
@@ -16,7 +16,7 @@
16/* Masks for actual TLB "PD"s */ 16/* Masks for actual TLB "PD"s */
17#define PTE_BITS_IN_PD0 (_PAGE_GLOBAL | _PAGE_PRESENT) 17#define PTE_BITS_IN_PD0 (_PAGE_GLOBAL | _PAGE_PRESENT)
18#define PTE_BITS_IN_PD1 (PAGE_MASK | _PAGE_CACHEABLE | \ 18#define PTE_BITS_IN_PD1 (PAGE_MASK | _PAGE_CACHEABLE | \
19 _PAGE_EXECUTE | _PAGE_WRITE | _PAGE_READ | \ 19 _PAGE_U_EXECUTE | _PAGE_U_WRITE | _PAGE_U_READ | \
20 _PAGE_K_EXECUTE | _PAGE_K_WRITE | _PAGE_K_READ) 20 _PAGE_K_EXECUTE | _PAGE_K_WRITE | _PAGE_K_READ)
21 21
22#ifndef __ASSEMBLY__ 22#ifndef __ASSEMBLY__
diff --git a/arch/arc/mm/cache_arc700.c b/arch/arc/mm/cache_arc700.c
index 2f12bca8aef3..aedce1905441 100644
--- a/arch/arc/mm/cache_arc700.c
+++ b/arch/arc/mm/cache_arc700.c
@@ -610,7 +610,7 @@ void __sync_icache_dcache(unsigned long paddr, unsigned long vaddr, int len)
610 610
611 local_irq_save(flags); 611 local_irq_save(flags);
612 __ic_line_inv_vaddr(paddr, vaddr, len); 612 __ic_line_inv_vaddr(paddr, vaddr, len);
613 __dc_line_op(paddr, vaddr, len, OP_FLUSH); 613 __dc_line_op(paddr, vaddr, len, OP_FLUSH_N_INV);
614 local_irq_restore(flags); 614 local_irq_restore(flags);
615} 615}
616 616
@@ -676,6 +676,17 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
676 flush_cache_all(); 676 flush_cache_all();
677} 677}
678 678
679void flush_anon_page(struct vm_area_struct *vma, struct page *page,
680 unsigned long u_vaddr)
681{
682 /* TBD: do we really need to clear the kernel mapping */
683 __flush_dcache_page(page_address(page), u_vaddr);
684 __flush_dcache_page(page_address(page), page_address(page));
685
686}
687
688#endif
689
679void copy_user_highpage(struct page *to, struct page *from, 690void copy_user_highpage(struct page *to, struct page *from,
680 unsigned long u_vaddr, struct vm_area_struct *vma) 691 unsigned long u_vaddr, struct vm_area_struct *vma)
681{ 692{
@@ -725,16 +736,6 @@ void clear_user_page(void *to, unsigned long u_vaddr, struct page *page)
725 set_bit(PG_arch_1, &page->flags); 736 set_bit(PG_arch_1, &page->flags);
726} 737}
727 738
728void flush_anon_page(struct vm_area_struct *vma, struct page *page,
729 unsigned long u_vaddr)
730{
731 /* TBD: do we really need to clear the kernel mapping */
732 __flush_dcache_page(page_address(page), u_vaddr);
733 __flush_dcache_page(page_address(page), page_address(page));
734
735}
736
737#endif
738 739
739/********************************************************************** 740/**********************************************************************
740 * Explicit Cache flush request from user space via syscall 741 * Explicit Cache flush request from user space via syscall
diff --git a/arch/arc/mm/tlb.c b/arch/arc/mm/tlb.c
index 066145b5f348..fe1c5a073afe 100644
--- a/arch/arc/mm/tlb.c
+++ b/arch/arc/mm/tlb.c
@@ -444,7 +444,8 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned,
444 * so userspace sees the right data. 444 * so userspace sees the right data.
445 * (Avoids the flush for Non-exec + congruent mapping case) 445 * (Avoids the flush for Non-exec + congruent mapping case)
446 */ 446 */
447 if (vma->vm_flags & VM_EXEC || addr_not_cache_congruent(paddr, vaddr)) { 447 if ((vma->vm_flags & VM_EXEC) ||
448 addr_not_cache_congruent(paddr, vaddr)) {
448 struct page *page = pfn_to_page(pte_pfn(*ptep)); 449 struct page *page = pfn_to_page(pte_pfn(*ptep));
449 450
450 int dirty = test_and_clear_bit(PG_arch_1, &page->flags); 451 int dirty = test_and_clear_bit(PG_arch_1, &page->flags);
diff --git a/arch/arc/mm/tlbex.S b/arch/arc/mm/tlbex.S
index 9df765dc7c3a..3357d26ffe54 100644
--- a/arch/arc/mm/tlbex.S
+++ b/arch/arc/mm/tlbex.S
@@ -277,7 +277,7 @@ ARC_ENTRY EV_TLBMissI
277 ;---------------------------------------------------------------- 277 ;----------------------------------------------------------------
278 ; VERIFY_PTE: Check if PTE permissions approp for executing code 278 ; VERIFY_PTE: Check if PTE permissions approp for executing code
279 cmp_s r2, VMALLOC_START 279 cmp_s r2, VMALLOC_START
280 mov.lo r2, (_PAGE_PRESENT | _PAGE_READ | _PAGE_EXECUTE) 280 mov.lo r2, (_PAGE_PRESENT | _PAGE_U_READ | _PAGE_U_EXECUTE)
281 mov.hs r2, (_PAGE_PRESENT | _PAGE_K_READ | _PAGE_K_EXECUTE) 281 mov.hs r2, (_PAGE_PRESENT | _PAGE_K_READ | _PAGE_K_EXECUTE)
282 282
283 and r3, r0, r2 ; Mask out NON Flag bits from PTE 283 and r3, r0, r2 ; Mask out NON Flag bits from PTE
@@ -320,9 +320,9 @@ ARC_ENTRY EV_TLBMissD
320 mov_s r2, 0 320 mov_s r2, 0
321 lr r3, [ecr] 321 lr r3, [ecr]
322 btst_s r3, ECR_C_BIT_DTLB_LD_MISS ; Read Access 322 btst_s r3, ECR_C_BIT_DTLB_LD_MISS ; Read Access
323 or.nz r2, r2, _PAGE_READ ; chk for Read flag in PTE 323 or.nz r2, r2, _PAGE_U_READ ; chk for Read flag in PTE
324 btst_s r3, ECR_C_BIT_DTLB_ST_MISS ; Write Access 324 btst_s r3, ECR_C_BIT_DTLB_ST_MISS ; Write Access
325 or.nz r2, r2, _PAGE_WRITE ; chk for Write flag in PTE 325 or.nz r2, r2, _PAGE_U_WRITE ; chk for Write flag in PTE
326 ; Above laddering takes care of XCHG access 326 ; Above laddering takes care of XCHG access
327 ; which is both Read and Write 327 ; which is both Read and Write
328 328
diff --git a/arch/arc/plat-tb10x/tb10x.c b/arch/arc/plat-tb10x/tb10x.c
index d3567691c7e1..06cb30929460 100644
--- a/arch/arc/plat-tb10x/tb10x.c
+++ b/arch/arc/plat-tb10x/tb10x.c
@@ -34,31 +34,6 @@ static void __init tb10x_platform_init(void)
34 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 34 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
35} 35}
36 36
37static void __init tb10x_platform_late_init(void)
38{
39 struct device_node *dn;
40
41 /*
42 * Pinctrl documentation recommends setting up the iomux here for
43 * all modules which don't require control over the pins themselves.
44 * Modules which need this kind of assistance are compatible with
45 * "abilis,simple-pinctrl", i.e. we can easily iterate over them.
46 * TODO: Does this recommended method work cleanly with pins required
47 * by modules?
48 */
49 for_each_compatible_node(dn, NULL, "abilis,simple-pinctrl") {
50 struct platform_device *pd = of_find_device_by_node(dn);
51 struct pinctrl *pctl;
52
53 pctl = pinctrl_get_select(&pd->dev, "abilis,simple-default");
54 if (IS_ERR(pctl)) {
55 int ret = PTR_ERR(pctl);
56 dev_err(&pd->dev, "Could not set up pinctrl: %d\n",
57 ret);
58 }
59 }
60}
61
62static const char *tb10x_compat[] __initdata = { 37static const char *tb10x_compat[] __initdata = {
63 "abilis,arc-tb10x", 38 "abilis,arc-tb10x",
64 NULL, 39 NULL,
@@ -67,5 +42,4 @@ static const char *tb10x_compat[] __initdata = {
67MACHINE_START(TB10x, "tb10x") 42MACHINE_START(TB10x, "tb10x")
68 .dt_compat = tb10x_compat, 43 .dt_compat = tb10x_compat,
69 .init_machine = tb10x_platform_init, 44 .init_machine = tb10x_platform_init,
70 .init_late = tb10x_platform_late_init,
71MACHINE_END 45MACHINE_END
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d423d58f938d..49d993cee512 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -38,6 +38,7 @@ config ARM
38 select HAVE_GENERIC_HARDIRQS 38 select HAVE_GENERIC_HARDIRQS
39 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) 39 select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
40 select HAVE_IDE if PCI || ISA || PCMCIA 40 select HAVE_IDE if PCI || ISA || PCMCIA
41 select HAVE_IRQ_TIME_ACCOUNTING
41 select HAVE_KERNEL_GZIP 42 select HAVE_KERNEL_GZIP
42 select HAVE_KERNEL_LZMA 43 select HAVE_KERNEL_LZMA
43 select HAVE_KERNEL_LZO 44 select HAVE_KERNEL_LZO
@@ -488,7 +489,7 @@ config ARCH_IXP4XX
488config ARCH_DOVE 489config ARCH_DOVE
489 bool "Marvell Dove" 490 bool "Marvell Dove"
490 select ARCH_REQUIRE_GPIOLIB 491 select ARCH_REQUIRE_GPIOLIB
491 select CPU_V7 492 select CPU_PJ4
492 select GENERIC_CLOCKEVENTS 493 select GENERIC_CLOCKEVENTS
493 select MIGHT_HAVE_PCI 494 select MIGHT_HAVE_PCI
494 select PINCTRL 495 select PINCTRL
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 47374085befd..1ba358ba16b8 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -309,7 +309,7 @@ define archhelp
309 echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' 309 echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
310 echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' 310 echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
311 echo ' uImage - U-Boot wrapped zImage' 311 echo ' uImage - U-Boot wrapped zImage'
312 echo ' bootpImage - Combined zImage and initial RAM disk' 312 echo ' bootpImage - Combined zImage and initial RAM disk'
313 echo ' (supply initrd image via make variable INITRD=<path>)' 313 echo ' (supply initrd image via make variable INITRD=<path>)'
314 echo '* dtbs - Build device tree blobs for enabled boards' 314 echo '* dtbs - Build device tree blobs for enabled boards'
315 echo ' install - Install uncompressed kernel' 315 echo ' install - Install uncompressed kernel'
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b9f7121e6ecf..f0895c581a89 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -177,7 +177,9 @@ dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
177 spear320-evb.dtb \ 177 spear320-evb.dtb \
178 spear320-hmi.dtb 178 spear320-hmi.dtb
179dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb 179dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
180dtb-$(CONFIG_ARCH_SUNXI) += sun4i-a10-cubieboard.dtb \ 180dtb-$(CONFIG_ARCH_SUNXI) += \
181 sun4i-a10-cubieboard.dtb \
182 sun4i-a10-mini-xplus.dtb \
181 sun4i-a10-hackberry.dtb \ 183 sun4i-a10-hackberry.dtb \
182 sun5i-a13-olinuxino.dtb 184 sun5i-a13-olinuxino.dtb
183dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ 185dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index 272bbc65fab0..550eb772c30e 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -33,7 +33,8 @@
33 #size-cells = <1>; 33 #size-cells = <1>;
34 compatible = "simple-bus"; 34 compatible = "simple-bus";
35 interrupt-parent = <&mpic>; 35 interrupt-parent = <&mpic>;
36 ranges = <0 0 0xd0000000 0x100000>; 36 ranges = <0 0 0xd0000000 0x0100000 /* internal registers */
37 0xe0000000 0 0xe0000000 0x8100000 /* PCIe */>;
37 38
38 internal-regs { 39 internal-regs {
39 compatible = "simple-bus"; 40 compatible = "simple-bus";
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index b2c1b5af9749..aee2b1866ce2 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -29,7 +29,8 @@
29 }; 29 };
30 30
31 soc { 31 soc {
32 ranges = <0 0xd0000000 0x100000>; 32 ranges = <0 0xd0000000 0x0100000 /* internal registers */
33 0xe0000000 0xe0000000 0x8100000 /* PCIe */>;
33 internal-regs { 34 internal-regs {
34 system-controller@18200 { 35 system-controller@18200 {
35 compatible = "marvell,armada-370-xp-system-controller"; 36 compatible = "marvell,armada-370-xp-system-controller";
@@ -38,12 +39,12 @@
38 39
39 L2: l2-cache { 40 L2: l2-cache {
40 compatible = "marvell,aurora-outer-cache"; 41 compatible = "marvell,aurora-outer-cache";
41 reg = <0xd0008000 0x1000>; 42 reg = <0x08000 0x1000>;
42 cache-id-part = <0x100>; 43 cache-id-part = <0x100>;
43 wt-override; 44 wt-override;
44 }; 45 };
45 46
46 mpic: interrupt-controller@20000 { 47 interrupt-controller@20000 {
47 reg = <0x20a00 0x1d0>, <0x21870 0x58>; 48 reg = <0x20a00 0x1d0>, <0x21870 0x58>;
48 }; 49 };
49 50
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts
index 26ad06fc147e..3ee63d128e27 100644
--- a/arch/arm/boot/dts/armada-xp-gp.dts
+++ b/arch/arm/boot/dts/armada-xp-gp.dts
@@ -39,6 +39,9 @@
39 }; 39 };
40 40
41 soc { 41 soc {
42 ranges = <0 0 0xd0000000 0x100000
43 0xf0000000 0 0xf0000000 0x1000000>;
44
42 internal-regs { 45 internal-regs {
43 serial@12000 { 46 serial@12000 {
44 clock-frequency = <250000000>; 47 clock-frequency = <250000000>;
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
index f14d36c46159..46b785064dd8 100644
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -27,6 +27,9 @@
27 }; 27 };
28 28
29 soc { 29 soc {
30 ranges = <0 0 0xd0000000 0x100000
31 0xf0000000 0 0xf0000000 0x8000000>;
32
30 internal-regs { 33 internal-regs {
31 serial@12000 { 34 serial@12000 {
32 clock-frequency = <250000000>; 35 clock-frequency = <250000000>;
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index bacab11c10dc..5b902f9a3af2 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -31,7 +31,7 @@
31 wt-override; 31 wt-override;
32 }; 32 };
33 33
34 mpic: interrupt-controller@20000 { 34 interrupt-controller@20000 {
35 reg = <0x20a00 0x2d0>, <0x21070 0x58>; 35 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
36 }; 36 };
37 37
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index 70b5ccbac234..84c4bef2d726 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -264,7 +264,7 @@
264 atmel,pins = 264 atmel,pins =
265 <0 10 0x2 0x0 /* PA10 periph B */ 265 <0 10 0x2 0x0 /* PA10 periph B */
266 0 11 0x2 0x0 /* PA11 periph B */ 266 0 11 0x2 0x0 /* PA11 periph B */
267 0 24 0x2 0x0 /* PA24 periph B */ 267 0 22 0x2 0x0 /* PA22 periph B */
268 0 25 0x2 0x0 /* PA25 periph B */ 268 0 25 0x2 0x0 /* PA25 periph B */
269 0 26 0x2 0x0 /* PA26 periph B */ 269 0 26 0x2 0x0 /* PA26 periph B */
270 0 27 0x2 0x0 /* PA27 periph B */ 270 0 27 0x2 0x0 /* PA27 periph B */
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 3de8e6dfbcb1..8d25f889928e 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -57,6 +57,7 @@
57 compatible = "atmel,at91rm9200-aic"; 57 compatible = "atmel,at91rm9200-aic";
58 interrupt-controller; 58 interrupt-controller;
59 reg = <0xfffff000 0x200>; 59 reg = <0xfffff000 0x200>;
60 atmel,external-irqs = <31>;
60 }; 61 };
61 62
62 ramc0: ramc@ffffe800 { 63 ramc0: ramc@ffffe800 {
diff --git a/arch/arm/boot/dts/at91sam9x25ek.dts b/arch/arm/boot/dts/at91sam9x25ek.dts
index 3b40d11d65e7..315250b4995e 100644
--- a/arch/arm/boot/dts/at91sam9x25ek.dts
+++ b/arch/arm/boot/dts/at91sam9x25ek.dts
@@ -11,7 +11,7 @@
11/include/ "at91sam9x5ek.dtsi" 11/include/ "at91sam9x5ek.dtsi"
12 12
13/ { 13/ {
14 model = "Atmel AT91SAM9G25-EK"; 14 model = "Atmel AT91SAM9X25-EK";
15 compatible = "atmel,at91sam9x25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; 15 compatible = "atmel,at91sam9x25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
16 16
17 ahb { 17 ahb {
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 98dfc3ea5c0b..0673524238a6 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -497,6 +497,21 @@
497 clock-names = "usbhost"; 497 clock-names = "usbhost";
498 }; 498 };
499 499
500 usbphy@12130000 {
501 compatible = "samsung,exynos5250-usb2phy";
502 reg = <0x12130000 0x100>;
503 clocks = <&clock 1>, <&clock 285>;
504 clock-names = "ext_xtal", "usbhost";
505 #address-cells = <1>;
506 #size-cells = <1>;
507 ranges;
508
509 usbphy-sys {
510 reg = <0x10040704 0x8>,
511 <0x10050230 0x4>;
512 };
513 };
514
500 amba { 515 amba {
501 #address-cells = <1>; 516 #address-cells = <1>;
502 #size-cells = <1>; 517 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 82a404da1c0d..99ba6e14ebf3 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -516,7 +516,7 @@
516 usb_otg_hs: usb_otg_hs@480ab000 { 516 usb_otg_hs: usb_otg_hs@480ab000 {
517 compatible = "ti,omap3-musb"; 517 compatible = "ti,omap3-musb";
518 reg = <0x480ab000 0x1000>; 518 reg = <0x480ab000 0x1000>;
519 interrupts = <0 92 0x4>, <0 93 0x4>; 519 interrupts = <92>, <93>;
520 interrupt-names = "mc", "dma"; 520 interrupt-names = "mc", "dma";
521 ti,hwmods = "usb_otg_hs"; 521 ti,hwmods = "usb_otg_hs";
522 multipoint = <1>; 522 multipoint = <1>;
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 2e643ea51cce..5000e0d42849 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -75,11 +75,6 @@
75 compatible = "atmel,at91sam9x5-spi"; 75 compatible = "atmel,at91sam9x5-spi";
76 reg = <0xf0004000 0x100>; 76 reg = <0xf0004000 0x100>;
77 interrupts = <24 4 3>; 77 interrupts = <24 4 3>;
78 cs-gpios = <&pioD 13 0
79 &pioD 14 0 /* conflicts with SCK0 and CANRX0 */
80 &pioD 15 0 /* conflicts with CTS0 and CANTX0 */
81 &pioD 16 0 /* conflicts with RTS0 and PWMFI3 */
82 >;
83 pinctrl-names = "default"; 78 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_spi0>; 79 pinctrl-0 = <&pinctrl_spi0>;
85 status = "disabled"; 80 status = "disabled";
@@ -156,7 +151,7 @@
156 }; 151 };
157 152
158 macb0: ethernet@f0028000 { 153 macb0: ethernet@f0028000 {
159 compatible = "cnds,pc302-gem", "cdns,gem"; 154 compatible = "cdns,pc302-gem", "cdns,gem";
160 reg = <0xf0028000 0x100>; 155 reg = <0xf0028000 0x100>;
161 interrupts = <34 4 3>; 156 interrupts = <34 4 3>;
162 pinctrl-names = "default"; 157 pinctrl-names = "default";
@@ -203,11 +198,6 @@
203 compatible = "atmel,at91sam9x5-spi"; 198 compatible = "atmel,at91sam9x5-spi";
204 reg = <0xf8008000 0x100>; 199 reg = <0xf8008000 0x100>;
205 interrupts = <25 4 3>; 200 interrupts = <25 4 3>;
206 cs-gpios = <&pioC 25 0
207 &pioC 26 0 /* conflitcs with TWD1 and ISI_D11 */
208 &pioC 27 0 /* conflitcs with TWCK1 and ISI_D10 */
209 &pioC 28 0 /* conflitcs with PWMFI0 and ISI_D9 */
210 >;
211 pinctrl-names = "default"; 201 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_spi1>; 202 pinctrl-0 = <&pinctrl_spi1>;
213 status = "disabled"; 203 status = "disabled";
diff --git a/arch/arm/boot/dts/sama5d3xcm.dtsi b/arch/arm/boot/dts/sama5d3xcm.dtsi
index 1f8ed404626c..b336e7787cb3 100644
--- a/arch/arm/boot/dts/sama5d3xcm.dtsi
+++ b/arch/arm/boot/dts/sama5d3xcm.dtsi
@@ -32,6 +32,10 @@
32 32
33 ahb { 33 ahb {
34 apb { 34 apb {
35 spi0: spi@f0004000 {
36 cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
37 };
38
35 macb0: ethernet@f0028000 { 39 macb0: ethernet@f0028000 {
36 phy-mode = "rgmii"; 40 phy-mode = "rgmii";
37 }; 41 };
diff --git a/arch/arm/boot/dts/ste-nomadik-s8815.dts b/arch/arm/boot/dts/ste-nomadik-s8815.dts
index b28fbf3408e3..6f82d9368948 100644
--- a/arch/arm/boot/dts/ste-nomadik-s8815.dts
+++ b/arch/arm/boot/dts/ste-nomadik-s8815.dts
@@ -14,13 +14,19 @@
14 bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk"; 14 bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
15 }; 15 };
16 16
17 /* This is where the interrupt is routed on the S8815 board */
18 external-bus@34000000 {
19 ethernet@300 {
20 interrupt-parent = <&gpio3>;
21 interrupts = <8 0x1>;
22 };
23 };
24
17 /* Custom board node with GPIO pins to active etc */ 25 /* Custom board node with GPIO pins to active etc */
18 usb-s8815 { 26 usb-s8815 {
19 /* The S8815 is using this very GPIO pin for the SMSC91x IRQs */ 27 /* The S8815 is using this very GPIO pin for the SMSC91x IRQs */
20 ethernet-gpio { 28 ethernet-gpio {
21 gpios = <&gpio3 19 0x1>; 29 gpios = <&gpio3 8 0x1>;
22 interrupts = <19 0x1>;
23 interrupt-parent = <&gpio3>;
24 }; 30 };
25 /* This will bias the MMC/SD card detect line */ 31 /* This will bias the MMC/SD card detect line */
26 mmcsd-gpio { 32 mmcsd-gpio {
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index 4a7c35d6726a..078ed7f618d7 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -22,8 +22,8 @@
22 bootargs = "earlyprintk console=ttyS0,115200"; 22 bootargs = "earlyprintk console=ttyS0,115200";
23 }; 23 };
24 24
25 soc { 25 soc@01c20000 {
26 uart0: uart@01c28000 { 26 uart0: serial@01c28000 {
27 pinctrl-names = "default"; 27 pinctrl-names = "default";
28 pinctrl-0 = <&uart0_pins_a>; 28 pinctrl-0 = <&uart0_pins_a>;
29 status = "okay"; 29 status = "okay";
diff --git a/arch/arm/common/mcpm_platsmp.c b/arch/arm/common/mcpm_platsmp.c
index 52b88d81b7bb..3caed0db6986 100644
--- a/arch/arm/common/mcpm_platsmp.c
+++ b/arch/arm/common/mcpm_platsmp.c
@@ -15,8 +15,6 @@
15#include <linux/smp.h> 15#include <linux/smp.h>
16#include <linux/spinlock.h> 16#include <linux/spinlock.h>
17 17
18#include <linux/irqchip/arm-gic.h>
19
20#include <asm/mcpm.h> 18#include <asm/mcpm.h>
21#include <asm/smp.h> 19#include <asm/smp.h>
22#include <asm/smp_plat.h> 20#include <asm/smp_plat.h>
@@ -49,7 +47,6 @@ static int __cpuinit mcpm_boot_secondary(unsigned int cpu, struct task_struct *i
49static void __cpuinit mcpm_secondary_init(unsigned int cpu) 47static void __cpuinit mcpm_secondary_init(unsigned int cpu)
50{ 48{
51 mcpm_cpu_powered_up(); 49 mcpm_cpu_powered_up();
52 gic_secondary_init(0);
53} 50}
54 51
55#ifdef CONFIG_HOTPLUG_CPU 52#ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig
index e40b435d204e..227abf9cc601 100644
--- a/arch/arm/configs/exynos_defconfig
+++ b/arch/arm/configs/exynos_defconfig
@@ -1,4 +1,4 @@
1CONFIG_EXPERIMENTAL=y 1CONFIG_SYSVIPC=y
2CONFIG_NO_HZ=y 2CONFIG_NO_HZ=y
3CONFIG_HIGH_RES_TIMERS=y 3CONFIG_HIGH_RES_TIMERS=y
4CONFIG_BLK_DEV_INITRD=y 4CONFIG_BLK_DEV_INITRD=y
@@ -7,17 +7,18 @@ CONFIG_MODULES=y
7CONFIG_MODULE_UNLOAD=y 7CONFIG_MODULE_UNLOAD=y
8# CONFIG_BLK_DEV_BSG is not set 8# CONFIG_BLK_DEV_BSG is not set
9CONFIG_PARTITION_ADVANCED=y 9CONFIG_PARTITION_ADVANCED=y
10CONFIG_EFI_PARTITION=y
11CONFIG_ARCH_EXYNOS=y 10CONFIG_ARCH_EXYNOS=y
12CONFIG_S3C_LOWLEVEL_UART_PORT=1 11CONFIG_S3C_LOWLEVEL_UART_PORT=3
13CONFIG_S3C24XX_PWM=y 12CONFIG_S3C24XX_PWM=y
14CONFIG_ARCH_EXYNOS5=y 13CONFIG_ARCH_EXYNOS5=y
15CONFIG_MACH_EXYNOS4_DT=y 14CONFIG_MACH_EXYNOS4_DT=y
16CONFIG_MACH_EXYNOS5_DT=y
17CONFIG_SMP=y 15CONFIG_SMP=y
18CONFIG_NR_CPUS=2 16CONFIG_NR_CPUS=2
19CONFIG_PREEMPT=y 17CONFIG_PREEMPT=y
20CONFIG_AEABI=y 18CONFIG_AEABI=y
19CONFIG_HIGHMEM=y
20CONFIG_ZBOOT_ROM_TEXT=0x0
21CONFIG_ZBOOT_ROM_BSS=0x0
21CONFIG_ARM_APPENDED_DTB=y 22CONFIG_ARM_APPENDED_DTB=y
22CONFIG_ARM_ATAG_DTB_COMPAT=y 23CONFIG_ARM_ATAG_DTB_COMPAT=y
23CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M" 24CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
@@ -30,35 +31,58 @@ CONFIG_NET_KEY=y
30CONFIG_INET=y 31CONFIG_INET=y
31CONFIG_RFKILL_REGULATOR=y 32CONFIG_RFKILL_REGULATOR=y
32CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 33CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
34CONFIG_DEVTMPFS=y
35CONFIG_DEVTMPFS_MOUNT=y
33CONFIG_PROC_DEVICETREE=y 36CONFIG_PROC_DEVICETREE=y
34CONFIG_BLK_DEV_LOOP=y 37CONFIG_BLK_DEV_LOOP=y
38CONFIG_BLK_DEV_CRYPTOLOOP=y
35CONFIG_BLK_DEV_RAM=y 39CONFIG_BLK_DEV_RAM=y
36CONFIG_BLK_DEV_RAM_SIZE=8192 40CONFIG_BLK_DEV_RAM_SIZE=8192
37CONFIG_SCSI=y 41CONFIG_SCSI=y
38CONFIG_BLK_DEV_SD=y 42CONFIG_BLK_DEV_SD=y
39CONFIG_CHR_DEV_SG=y 43CONFIG_CHR_DEV_SG=y
44CONFIG_MD=y
45CONFIG_BLK_DEV_DM=y
46CONFIG_DM_CRYPT=m
40CONFIG_NETDEVICES=y 47CONFIG_NETDEVICES=y
41CONFIG_SMSC911X=y 48CONFIG_SMSC911X=y
42CONFIG_USB_USBNET=y 49CONFIG_USB_USBNET=y
43CONFIG_USB_NET_SMSC75XX=y 50CONFIG_USB_NET_SMSC75XX=y
44CONFIG_USB_NET_SMSC95XX=y 51CONFIG_USB_NET_SMSC95XX=y
45CONFIG_INPUT_EVDEV=y 52CONFIG_INPUT_EVDEV=y
46# CONFIG_INPUT_KEYBOARD is not set 53CONFIG_KEYBOARD_CROS_EC=y
47# CONFIG_INPUT_MOUSE is not set 54# CONFIG_MOUSE_PS2 is not set
55CONFIG_MOUSE_CYAPA=y
48CONFIG_INPUT_TOUCHSCREEN=y 56CONFIG_INPUT_TOUCHSCREEN=y
49CONFIG_SERIAL_8250=y 57CONFIG_SERIAL_8250=y
50CONFIG_SERIAL_SAMSUNG=y 58CONFIG_SERIAL_SAMSUNG=y
51CONFIG_SERIAL_SAMSUNG_CONSOLE=y 59CONFIG_SERIAL_SAMSUNG_CONSOLE=y
52CONFIG_SERIAL_OF_PLATFORM=y 60CONFIG_SERIAL_OF_PLATFORM=y
53CONFIG_HW_RANDOM=y 61CONFIG_HW_RANDOM=y
62CONFIG_TCG_TPM=y
63CONFIG_TCG_TIS_I2C_INFINEON=y
54CONFIG_I2C=y 64CONFIG_I2C=y
65CONFIG_I2C_MUX=y
66CONFIG_I2C_ARB_GPIO_CHALLENGE=y
67CONFIG_I2C_S3C2410=y
68CONFIG_DEBUG_GPIO=y
55# CONFIG_HWMON is not set 69# CONFIG_HWMON is not set
70CONFIG_MFD_CROS_EC=y
71CONFIG_MFD_CROS_EC_I2C=y
72CONFIG_MFD_MAX77686=y
73CONFIG_MFD_MAX8997=y
74CONFIG_MFD_SEC_CORE=y
56CONFIG_MFD_TPS65090=y 75CONFIG_MFD_TPS65090=y
57CONFIG_REGULATOR=y 76CONFIG_REGULATOR=y
58CONFIG_REGULATOR_FIXED_VOLTAGE=y 77CONFIG_REGULATOR_FIXED_VOLTAGE=y
59CONFIG_REGULATOR_GPIO=y 78CONFIG_REGULATOR_GPIO=y
79CONFIG_REGULATOR_MAX8997=y
80CONFIG_REGULATOR_MAX77686=y
81CONFIG_REGULATOR_S5M8767=y
60CONFIG_REGULATOR_TPS65090=y 82CONFIG_REGULATOR_TPS65090=y
61CONFIG_FB=y 83CONFIG_FB=y
84CONFIG_FB_MODE_HELPERS=y
85CONFIG_FB_SIMPLE=y
62CONFIG_EXYNOS_VIDEO=y 86CONFIG_EXYNOS_VIDEO=y
63CONFIG_EXYNOS_MIPI_DSI=y 87CONFIG_EXYNOS_MIPI_DSI=y
64CONFIG_EXYNOS_DP=y 88CONFIG_EXYNOS_DP=y
@@ -67,6 +91,20 @@ CONFIG_FONTS=y
67CONFIG_FONT_7x14=y 91CONFIG_FONT_7x14=y
68CONFIG_LOGO=y 92CONFIG_LOGO=y
69CONFIG_USB=y 93CONFIG_USB=y
94CONFIG_USB_EHCI_HCD=y
95CONFIG_USB_EHCI_S5P=y
96CONFIG_USB_STORAGE=y
97CONFIG_USB_DWC3=y
98CONFIG_USB_PHY=y
99CONFIG_SAMSUNG_USB2PHY=y
100CONFIG_SAMSUNG_USB3PHY=y
101CONFIG_MMC=y
102CONFIG_MMC_SDHCI=y
103CONFIG_MMC_SDHCI_S3C=y
104CONFIG_MMC_DW=y
105CONFIG_MMC_DW_IDMAC=y
106CONFIG_MMC_DW_EXYNOS=y
107CONFIG_COMMON_CLK_MAX77686=y
70CONFIG_EXT2_FS=y 108CONFIG_EXT2_FS=y
71CONFIG_EXT3_FS=y 109CONFIG_EXT3_FS=y
72CONFIG_EXT4_FS=y 110CONFIG_EXT4_FS=y
@@ -79,6 +117,7 @@ CONFIG_ROMFS_FS=y
79CONFIG_NLS_CODEPAGE_437=y 117CONFIG_NLS_CODEPAGE_437=y
80CONFIG_NLS_ASCII=y 118CONFIG_NLS_ASCII=y
81CONFIG_NLS_ISO8859_1=y 119CONFIG_NLS_ISO8859_1=y
120CONFIG_PRINTK_TIME=y
82CONFIG_MAGIC_SYSRQ=y 121CONFIG_MAGIC_SYSRQ=y
83CONFIG_DEBUG_KERNEL=y 122CONFIG_DEBUG_KERNEL=y
84CONFIG_DETECT_HUNG_TASK=y 123CONFIG_DETECT_HUNG_TASK=y
@@ -87,6 +126,5 @@ CONFIG_DEBUG_SPINLOCK=y
87CONFIG_DEBUG_MUTEXES=y 126CONFIG_DEBUG_MUTEXES=y
88CONFIG_DEBUG_INFO=y 127CONFIG_DEBUG_INFO=y
89CONFIG_DEBUG_USER=y 128CONFIG_DEBUG_USER=y
90CONFIG_DEBUG_LL=y 129CONFIG_CRYPTO_SHA256=y
91CONFIG_EARLY_PRINTK=y
92CONFIG_CRC_CCITT=y 130CONFIG_CRC_CCITT=y
diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig
index 7e0ebb64a7f9..9940f7b4e438 100644
--- a/arch/arm/configs/omap1_defconfig
+++ b/arch/arm/configs/omap1_defconfig
@@ -199,7 +199,6 @@ CONFIG_USB_PHY=y
199CONFIG_USB_DEBUG=y 199CONFIG_USB_DEBUG=y
200CONFIG_USB_DEVICEFS=y 200CONFIG_USB_DEVICEFS=y
201# CONFIG_USB_DEVICE_CLASS is not set 201# CONFIG_USB_DEVICE_CLASS is not set
202CONFIG_USB_SUSPEND=y
203CONFIG_USB_MON=y 202CONFIG_USB_MON=y
204CONFIG_USB_OHCI_HCD=y 203CONFIG_USB_OHCI_HCD=y
205CONFIG_USB_STORAGE=y 204CONFIG_USB_STORAGE=y
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index c1ef64bc5abd..abbe31937c65 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
20CONFIG_MODVERSIONS=y 20CONFIG_MODVERSIONS=y
21CONFIG_MODULE_SRCVERSION_ALL=y 21CONFIG_MODULE_SRCVERSION_ALL=y
22# CONFIG_BLK_DEV_BSG is not set 22# CONFIG_BLK_DEV_BSG is not set
23CONFIG_ARCH_MULTI_V6=y
23CONFIG_ARCH_OMAP2PLUS=y 24CONFIG_ARCH_OMAP2PLUS=y
24CONFIG_OMAP_RESET_CLOCKS=y 25CONFIG_OMAP_RESET_CLOCKS=y
25CONFIG_OMAP_MUX_DEBUG=y 26CONFIG_OMAP_MUX_DEBUG=y
@@ -204,7 +205,6 @@ CONFIG_USB=y
204CONFIG_USB_DEBUG=y 205CONFIG_USB_DEBUG=y
205CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 206CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
206CONFIG_USB_DEVICEFS=y 207CONFIG_USB_DEVICEFS=y
207CONFIG_USB_SUSPEND=y
208CONFIG_USB_MON=y 208CONFIG_USB_MON=y
209CONFIG_USB_WDM=y 209CONFIG_USB_WDM=y
210CONFIG_USB_STORAGE=y 210CONFIG_USB_STORAGE=y
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index a5f0485133cf..f7ba316164d4 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -153,6 +153,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
153CONFIG_MEDIA_USB_SUPPORT=y 153CONFIG_MEDIA_USB_SUPPORT=y
154CONFIG_USB_VIDEO_CLASS=m 154CONFIG_USB_VIDEO_CLASS=m
155CONFIG_DRM=y 155CONFIG_DRM=y
156CONFIG_TEGRA_HOST1X=y
156CONFIG_DRM_TEGRA=y 157CONFIG_DRM_TEGRA=y
157CONFIG_BACKLIGHT_LCD_SUPPORT=y 158CONFIG_BACKLIGHT_LCD_SUPPORT=y
158# CONFIG_LCD_CLASS_DEVICE is not set 159# CONFIG_LCD_CLASS_DEVICE is not set
@@ -202,7 +203,7 @@ CONFIG_TEGRA20_APB_DMA=y
202CONFIG_STAGING=y 203CONFIG_STAGING=y
203CONFIG_SENSORS_ISL29018=y 204CONFIG_SENSORS_ISL29018=y
204CONFIG_SENSORS_ISL29028=y 205CONFIG_SENSORS_ISL29028=y
205CONFIG_SENSORS_AK8975=y 206CONFIG_AK8975=y
206CONFIG_MFD_NVEC=y 207CONFIG_MFD_NVEC=y
207CONFIG_KEYBOARD_NVEC=y 208CONFIG_KEYBOARD_NVEC=y
208CONFIG_SERIO_NVEC_PS2=y 209CONFIG_SERIO_NVEC_PS2=y
diff --git a/arch/arm/crypto/sha1-armv4-large.S b/arch/arm/crypto/sha1-armv4-large.S
index 92c6eed7aac9..99207c45ec10 100644
--- a/arch/arm/crypto/sha1-armv4-large.S
+++ b/arch/arm/crypto/sha1-armv4-large.S
@@ -195,6 +195,7 @@ ENTRY(sha1_block_data_order)
195 add r3,r3,r10 @ E+=F_00_19(B,C,D) 195 add r3,r3,r10 @ E+=F_00_19(B,C,D)
196 cmp r14,sp 196 cmp r14,sp
197 bne .L_00_15 @ [((11+4)*5+2)*3] 197 bne .L_00_15 @ [((11+4)*5+2)*3]
198 sub sp,sp,#25*4
198#if __ARM_ARCH__<7 199#if __ARM_ARCH__<7
199 ldrb r10,[r1,#2] 200 ldrb r10,[r1,#2]
200 ldrb r9,[r1,#3] 201 ldrb r9,[r1,#3]
@@ -290,7 +291,6 @@ ENTRY(sha1_block_data_order)
290 add r3,r3,r10 @ E+=F_00_19(B,C,D) 291 add r3,r3,r10 @ E+=F_00_19(B,C,D)
291 292
292 ldr r8,.LK_20_39 @ [+15+16*4] 293 ldr r8,.LK_20_39 @ [+15+16*4]
293 sub sp,sp,#25*4
294 cmn sp,#0 @ [+3], clear carry to denote 20_39 294 cmn sp,#0 @ [+3], clear carry to denote 20_39
295.L_20_39_or_60_79: 295.L_20_39_or_60_79:
296 ldr r9,[r14,#15*4] 296 ldr r9,[r14,#15*4]
diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
index 7eb18c1d8d6c..4f009c10540d 100644
--- a/arch/arm/include/asm/cmpxchg.h
+++ b/arch/arm/include/asm/cmpxchg.h
@@ -233,15 +233,15 @@ static inline unsigned long __cmpxchg_local(volatile void *ptr,
233 ((__typeof__(*(ptr)))atomic64_cmpxchg(container_of((ptr), \ 233 ((__typeof__(*(ptr)))atomic64_cmpxchg(container_of((ptr), \
234 atomic64_t, \ 234 atomic64_t, \
235 counter), \ 235 counter), \
236 (unsigned long)(o), \ 236 (unsigned long long)(o), \
237 (unsigned long)(n))) 237 (unsigned long long)(n)))
238 238
239#define cmpxchg64_local(ptr, o, n) \ 239#define cmpxchg64_local(ptr, o, n) \
240 ((__typeof__(*(ptr)))local64_cmpxchg(container_of((ptr), \ 240 ((__typeof__(*(ptr)))local64_cmpxchg(container_of((ptr), \
241 local64_t, \ 241 local64_t, \
242 a), \ 242 a), \
243 (unsigned long)(o), \ 243 (unsigned long long)(o), \
244 (unsigned long)(n))) 244 (unsigned long long)(n)))
245 245
246#endif /* __LINUX_ARM_ARCH__ >= 6 */ 246#endif /* __LINUX_ARM_ARCH__ >= 6 */
247 247
diff --git a/arch/arm/include/debug/ux500.S b/arch/arm/include/debug/ux500.S
index 2848857f5b62..fbd24beeb1fa 100644
--- a/arch/arm/include/debug/ux500.S
+++ b/arch/arm/include/debug/ux500.S
@@ -24,9 +24,9 @@
24#define U8500_UART0_PHYS_BASE (0x80120000) 24#define U8500_UART0_PHYS_BASE (0x80120000)
25#define U8500_UART1_PHYS_BASE (0x80121000) 25#define U8500_UART1_PHYS_BASE (0x80121000)
26#define U8500_UART2_PHYS_BASE (0x80007000) 26#define U8500_UART2_PHYS_BASE (0x80007000)
27#define U8500_UART0_VIRT_BASE (0xa8120000) 27#define U8500_UART0_VIRT_BASE (0xf8120000)
28#define U8500_UART1_VIRT_BASE (0xa8121000) 28#define U8500_UART1_VIRT_BASE (0xf8121000)
29#define U8500_UART2_VIRT_BASE (0xa8007000) 29#define U8500_UART2_VIRT_BASE (0xf8007000)
30#define __UX500_PHYS_UART(n) U8500_UART##n##_PHYS_BASE 30#define __UX500_PHYS_UART(n) U8500_UART##n##_PHYS_BASE
31#define __UX500_VIRT_UART(n) U8500_UART##n##_VIRT_BASE 31#define __UX500_VIRT_UART(n) U8500_UART##n##_VIRT_BASE
32#endif 32#endif
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index f21970316836..282de4826abb 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -411,7 +411,6 @@ static struct vm_area_struct gate_vma = {
411 .vm_start = 0xffff0000, 411 .vm_start = 0xffff0000,
412 .vm_end = 0xffff0000 + PAGE_SIZE, 412 .vm_end = 0xffff0000 + PAGE_SIZE,
413 .vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC, 413 .vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC,
414 .vm_mm = &init_mm,
415}; 414};
416 415
417static int __init gate_vma_init(void) 416static int __init gate_vma_init(void)
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 47ab90563bf4..550d63cef68e 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -251,7 +251,7 @@ void __ref cpu_die(void)
251 * this returns, power and/or clocks can be removed at any point 251 * this returns, power and/or clocks can be removed at any point
252 * from this CPU and its cache by platform_cpu_kill(). 252 * from this CPU and its cache by platform_cpu_kill().
253 */ 253 */
254 RCU_NONIDLE(complete(&cpu_died)); 254 complete(&cpu_died);
255 255
256 /* 256 /*
257 * Ensure that the cache lines associated with that completion are 257 * Ensure that the cache lines associated with that completion are
diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c
index 2acdff4c1dfe..180b3024bec3 100644
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
@@ -174,6 +174,7 @@ clkevt32k_next_event(unsigned long delta, struct clock_event_device *dev)
174static struct clock_event_device clkevt = { 174static struct clock_event_device clkevt = {
175 .name = "at91_tick", 175 .name = "at91_tick",
176 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, 176 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
177 .shift = 32,
177 .rating = 150, 178 .rating = 150,
178 .set_next_event = clkevt32k_next_event, 179 .set_next_event = clkevt32k_next_event,
179 .set_mode = clkevt32k_mode, 180 .set_mode = clkevt32k_mode,
@@ -264,9 +265,11 @@ void __init at91rm9200_timer_init(void)
264 at91_st_write(AT91_ST_RTMR, 1); 265 at91_st_write(AT91_ST_RTMR, 1);
265 266
266 /* Setup timer clockevent, with minimum of two ticks (important!!) */ 267 /* Setup timer clockevent, with minimum of two ticks (important!!) */
268 clkevt.mult = div_sc(AT91_SLOW_CLOCK, NSEC_PER_SEC, clkevt.shift);
269 clkevt.max_delta_ns = clockevent_delta2ns(AT91_ST_ALMV, &clkevt);
270 clkevt.min_delta_ns = clockevent_delta2ns(2, &clkevt) + 1;
267 clkevt.cpumask = cpumask_of(0); 271 clkevt.cpumask = cpumask_of(0);
268 clockevents_config_and_register(&clkevt, AT91_SLOW_CLOCK, 272 clockevents_register_device(&clkevt);
269 2, AT91_ST_ALMV);
270 273
271 /* register clocksource */ 274 /* register clocksource */
272 clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK); 275 clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK);
diff --git a/arch/arm/mach-at91/at91sam9n12.c b/arch/arm/mach-at91/at91sam9n12.c
index 13cdbcd48f51..c7d670d11802 100644
--- a/arch/arm/mach-at91/at91sam9n12.c
+++ b/arch/arm/mach-at91/at91sam9n12.c
@@ -223,13 +223,7 @@ static void __init at91sam9n12_map_io(void)
223 at91_init_sram(0, AT91SAM9N12_SRAM_BASE, AT91SAM9N12_SRAM_SIZE); 223 at91_init_sram(0, AT91SAM9N12_SRAM_BASE, AT91SAM9N12_SRAM_SIZE);
224} 224}
225 225
226void __init at91sam9n12_initialize(void)
227{
228 at91_extern_irq = (1 << AT91SAM9N12_ID_IRQ0);
229}
230
231AT91_SOC_START(at91sam9n12) 226AT91_SOC_START(at91sam9n12)
232 .map_io = at91sam9n12_map_io, 227 .map_io = at91sam9n12_map_io,
233 .register_clocks = at91sam9n12_register_clocks, 228 .register_clocks = at91sam9n12_register_clocks,
234 .init = at91sam9n12_initialize,
235AT91_SOC_END 229AT91_SOC_END
diff --git a/arch/arm/mach-at91/include/mach/at91_pmc.h b/arch/arm/mach-at91/include/mach/at91_pmc.h
index 31df12029c4e..2bd7f51b0b82 100644
--- a/arch/arm/mach-at91/include/mach/at91_pmc.h
+++ b/arch/arm/mach-at91/include/mach/at91_pmc.h
@@ -179,9 +179,9 @@ extern void __iomem *at91_pmc_base;
179#define AT91_PMC_PCR_CMD (0x1 << 12) /* Command (read=0, write=1) */ 179#define AT91_PMC_PCR_CMD (0x1 << 12) /* Command (read=0, write=1) */
180#define AT91_PMC_PCR_DIV(n) ((n) << 16) /* Divisor Value */ 180#define AT91_PMC_PCR_DIV(n) ((n) << 16) /* Divisor Value */
181#define AT91_PMC_PCR_DIV0 0x0 /* Peripheral clock is MCK */ 181#define AT91_PMC_PCR_DIV0 0x0 /* Peripheral clock is MCK */
182#define AT91_PMC_PCR_DIV2 0x2 /* Peripheral clock is MCK/2 */ 182#define AT91_PMC_PCR_DIV2 0x1 /* Peripheral clock is MCK/2 */
183#define AT91_PMC_PCR_DIV4 0x4 /* Peripheral clock is MCK/4 */ 183#define AT91_PMC_PCR_DIV4 0x2 /* Peripheral clock is MCK/4 */
184#define AT91_PMC_PCR_DIV8 0x8 /* Peripheral clock is MCK/8 */ 184#define AT91_PMC_PCR_DIV8 0x3 /* Peripheral clock is MCK/8 */
185#define AT91_PMC_PCR_EN (0x1 << 28) /* Enable */ 185#define AT91_PMC_PCR_EN (0x1 << 28) /* Enable */
186 186
187#endif 187#endif
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index d19edff0ea6e..ff18fc2ea46f 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -250,6 +250,7 @@ config MACH_ARMLEX4210
250config MACH_UNIVERSAL_C210 250config MACH_UNIVERSAL_C210
251 bool "Mobile UNIVERSAL_C210 Board" 251 bool "Mobile UNIVERSAL_C210 Board"
252 select CLKSRC_MMIO 252 select CLKSRC_MMIO
253 select CLKSRC_SAMSUNG_PWM
253 select CPU_EXYNOS4210 254 select CPU_EXYNOS4210
254 select EXYNOS4_SETUP_FIMC 255 select EXYNOS4_SETUP_FIMC
255 select EXYNOS4_SETUP_FIMD0 256 select EXYNOS4_SETUP_FIMD0
@@ -281,7 +282,6 @@ config MACH_UNIVERSAL_C210
281 select S5P_DEV_TV 282 select S5P_DEV_TV
282 select S5P_GPIO_INT 283 select S5P_GPIO_INT
283 select S5P_SETUP_MIPIPHY 284 select S5P_SETUP_MIPIPHY
284 select SAMSUNG_HRT
285 help 285 help
286 Machine support for Samsung Mobile Universal S5PC210 Reference 286 Machine support for Samsung Mobile Universal S5PC210 Reference
287 Board. 287 Board.
@@ -410,6 +410,7 @@ config MACH_EXYNOS4_DT
410 depends on ARCH_EXYNOS4 410 depends on ARCH_EXYNOS4
411 select ARM_AMBA 411 select ARM_AMBA
412 select CLKSRC_OF 412 select CLKSRC_OF
413 select CLKSRC_SAMSUNG_PWM if CPU_EXYNOS4210
413 select CPU_EXYNOS4210 414 select CPU_EXYNOS4210
414 select KEYBOARD_SAMSUNG if INPUT_KEYBOARD 415 select KEYBOARD_SAMSUNG if INPUT_KEYBOARD
415 select PINCTRL 416 select PINCTRL
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 745e304ad0de..027c9e7f0d13 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -10,12 +10,14 @@
10 */ 10 */
11 11
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/bitops.h>
13#include <linux/interrupt.h> 14#include <linux/interrupt.h>
14#include <linux/irq.h> 15#include <linux/irq.h>
15#include <linux/irqchip.h> 16#include <linux/irqchip.h>
16#include <linux/io.h> 17#include <linux/io.h>
17#include <linux/device.h> 18#include <linux/device.h>
18#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <clocksource/samsung_pwm.h>
19#include <linux/sched.h> 21#include <linux/sched.h>
20#include <linux/serial_core.h> 22#include <linux/serial_core.h>
21#include <linux/of.h> 23#include <linux/of.h>
@@ -302,6 +304,13 @@ static struct map_desc exynos5440_iodesc0[] __initdata = {
302 }, 304 },
303}; 305};
304 306
307static struct samsung_pwm_variant exynos4_pwm_variant = {
308 .bits = 32,
309 .div_base = 0,
310 .has_tint_cstat = true,
311 .tclk_mask = 0,
312};
313
305void exynos4_restart(char mode, const char *cmd) 314void exynos4_restart(char mode, const char *cmd)
306{ 315{
307 __raw_writel(0x1, S5P_SWRESET); 316 __raw_writel(0x1, S5P_SWRESET);
@@ -317,9 +326,16 @@ void exynos5_restart(char mode, const char *cmd)
317 val = 0x1; 326 val = 0x1;
318 addr = EXYNOS_SWRESET; 327 addr = EXYNOS_SWRESET;
319 } else if (of_machine_is_compatible("samsung,exynos5440")) { 328 } else if (of_machine_is_compatible("samsung,exynos5440")) {
329 u32 status;
320 np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock"); 330 np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock");
331
332 addr = of_iomap(np, 0) + 0xbc;
333 status = __raw_readl(addr);
334
321 addr = of_iomap(np, 0) + 0xcc; 335 addr = of_iomap(np, 0) + 0xcc;
322 val = (0xfff << 20) | (0x1 << 16); 336 val = __raw_readl(addr);
337
338 val = (val & 0xffff0000) | (status & 0xffff);
323 } else { 339 } else {
324 pr_err("%s: cannot support non-DT\n", __func__); 340 pr_err("%s: cannot support non-DT\n", __func__);
325 return; 341 return;
@@ -442,8 +458,20 @@ static void __init exynos5440_map_io(void)
442 iotable_init(exynos5440_iodesc0, ARRAY_SIZE(exynos5440_iodesc0)); 458 iotable_init(exynos5440_iodesc0, ARRAY_SIZE(exynos5440_iodesc0));
443} 459}
444 460
461void __init exynos_set_timer_source(u8 channels)
462{
463 exynos4_pwm_variant.output_mask = BIT(SAMSUNG_PWM_NUM) - 1;
464 exynos4_pwm_variant.output_mask &= ~channels;
465}
466
445void __init exynos_init_time(void) 467void __init exynos_init_time(void)
446{ 468{
469 unsigned int timer_irqs[SAMSUNG_PWM_NUM] = {
470 EXYNOS4_IRQ_TIMER0_VIC, EXYNOS4_IRQ_TIMER1_VIC,
471 EXYNOS4_IRQ_TIMER2_VIC, EXYNOS4_IRQ_TIMER3_VIC,
472 EXYNOS4_IRQ_TIMER4_VIC,
473 };
474
447 if (of_have_populated_dt()) { 475 if (of_have_populated_dt()) {
448#ifdef CONFIG_OF 476#ifdef CONFIG_OF
449 of_clk_init(NULL); 477 of_clk_init(NULL);
@@ -455,7 +483,14 @@ void __init exynos_init_time(void)
455 exynos4_clk_init(NULL, !soc_is_exynos4210(), S5P_VA_CMU, readl(S5P_VA_CHIPID + 8) & 1); 483 exynos4_clk_init(NULL, !soc_is_exynos4210(), S5P_VA_CMU, readl(S5P_VA_CHIPID + 8) & 1);
456 exynos4_clk_register_fixed_ext(xxti_f, xusbxti_f); 484 exynos4_clk_register_fixed_ext(xxti_f, xusbxti_f);
457#endif 485#endif
458 mct_init(S5P_VA_SYSTIMER, EXYNOS4_IRQ_MCT_G0, EXYNOS4_IRQ_MCT_L0, EXYNOS4_IRQ_MCT_L1); 486#ifdef CONFIG_CLKSRC_SAMSUNG_PWM
487 if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_0)
488 samsung_pwm_clocksource_init(S3C_VA_TIMER,
489 timer_irqs, &exynos4_pwm_variant);
490 else
491#endif
492 mct_init(S5P_VA_SYSTIMER, EXYNOS4_IRQ_MCT_G0,
493 EXYNOS4_IRQ_MCT_L0, EXYNOS4_IRQ_MCT_L1);
459 } 494 }
460} 495}
461 496
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 60dd35cc01a6..11fc1e29819b 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -32,6 +32,8 @@ void exynos4_clk_register_fixed_ext(unsigned long, unsigned long);
32 32
33void exynos_firmware_init(void); 33void exynos_firmware_init(void);
34 34
35void exynos_set_timer_source(u8 channels);
36
35#ifdef CONFIG_PM_GENERIC_DOMAINS 37#ifdef CONFIG_PM_GENERIC_DOMAINS
36int exynos_pm_late_initcall(void); 38int exynos_pm_late_initcall(void);
37#else 39#else
diff --git a/arch/arm/mach-exynos/include/mach/pm-core.h b/arch/arm/mach-exynos/include/mach/pm-core.h
index 7dbbfec13ea5..296090e7f423 100644
--- a/arch/arm/mach-exynos/include/mach/pm-core.h
+++ b/arch/arm/mach-exynos/include/mach/pm-core.h
@@ -18,8 +18,15 @@
18#ifndef __ASM_ARCH_PM_CORE_H 18#ifndef __ASM_ARCH_PM_CORE_H
19#define __ASM_ARCH_PM_CORE_H __FILE__ 19#define __ASM_ARCH_PM_CORE_H __FILE__
20 20
21#include <linux/of.h>
21#include <mach/regs-pmu.h> 22#include <mach/regs-pmu.h>
22 23
24#ifdef CONFIG_PINCTRL_EXYNOS
25extern u32 exynos_get_eint_wake_mask(void);
26#else
27static inline u32 exynos_get_eint_wake_mask(void) { return 0xffffffff; }
28#endif
29
23static inline void s3c_pm_debug_init_uart(void) 30static inline void s3c_pm_debug_init_uart(void)
24{ 31{
25 /* nothing here yet */ 32 /* nothing here yet */
@@ -27,7 +34,12 @@ static inline void s3c_pm_debug_init_uart(void)
27 34
28static inline void s3c_pm_arch_prepare_irqs(void) 35static inline void s3c_pm_arch_prepare_irqs(void)
29{ 36{
30 __raw_writel(s3c_irqwake_eintmask, S5P_EINT_WAKEUP_MASK); 37 u32 eintmask = s3c_irqwake_eintmask;
38
39 if (of_have_populated_dt())
40 eintmask = exynos_get_eint_wake_mask();
41
42 __raw_writel(eintmask, S5P_EINT_WAKEUP_MASK);
31 __raw_writel(s3c_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK); 43 __raw_writel(s3c_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK);
32} 44}
33 45
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c
index 327d50d4681d..74ddb2b55614 100644
--- a/arch/arm/mach-exynos/mach-universal_c210.c
+++ b/arch/arm/mach-exynos/mach-universal_c210.c
@@ -41,7 +41,6 @@
41#include <plat/mfc.h> 41#include <plat/mfc.h>
42#include <plat/sdhci.h> 42#include <plat/sdhci.h>
43#include <plat/fimc-core.h> 43#include <plat/fimc-core.h>
44#include <plat/samsung-time.h>
45#include <plat/camport.h> 44#include <plat/camport.h>
46 45
47#include <mach/map.h> 46#include <mach/map.h>
@@ -1094,7 +1093,7 @@ static void __init universal_map_io(void)
1094{ 1093{
1095 exynos_init_io(NULL, 0); 1094 exynos_init_io(NULL, 0);
1096 s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); 1095 s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs));
1097 samsung_set_timer_source(SAMSUNG_PWM2, SAMSUNG_PWM4); 1096 exynos_set_timer_source(BIT(2) | BIT(4));
1098 xxti_f = 0; 1097 xxti_f = 0;
1099 xusbxti_f = 24000000; 1098 xusbxti_f = 24000000;
1100} 1099}
@@ -1154,7 +1153,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
1154 .map_io = universal_map_io, 1153 .map_io = universal_map_io,
1155 .init_machine = universal_machine_init, 1154 .init_machine = universal_machine_init,
1156 .init_late = exynos_init_late, 1155 .init_late = exynos_init_late,
1157 .init_time = samsung_timer_init, 1156 .init_time = exynos_init_time,
1158 .reserve = &universal_reserve, 1157 .reserve = &universal_reserve,
1159 .restart = exynos4_restart, 1158 .restart = exynos4_restart,
1160MACHINE_END 1159MACHINE_END
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index 151259003086..dda9a2bd3acb 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -177,7 +177,8 @@ int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
177static const char *step_sels[] = { "osc", "pll2_pfd2_396m", }; 177static const char *step_sels[] = { "osc", "pll2_pfd2_396m", };
178static const char *pll1_sw_sels[] = { "pll1_sys", "step", }; 178static const char *pll1_sw_sels[] = { "pll1_sys", "step", };
179static const char *periph_pre_sels[] = { "pll2_bus", "pll2_pfd2_396m", "pll2_pfd0_352m", "pll2_198m", }; 179static const char *periph_pre_sels[] = { "pll2_bus", "pll2_pfd2_396m", "pll2_pfd0_352m", "pll2_198m", };
180static const char *periph_clk2_sels[] = { "pll3_usb_otg", "osc", }; 180static const char *periph_clk2_sels[] = { "pll3_usb_otg", "osc", "osc", "dummy", };
181static const char *periph2_clk2_sels[] = { "pll3_usb_otg", "pll2_bus", };
181static const char *periph_sels[] = { "periph_pre", "periph_clk2", }; 182static const char *periph_sels[] = { "periph_pre", "periph_clk2", };
182static const char *periph2_sels[] = { "periph2_pre", "periph2_clk2", }; 183static const char *periph2_sels[] = { "periph2_pre", "periph2_clk2", };
183static const char *axi_sels[] = { "periph", "pll2_pfd2_396m", "pll3_pfd1_540m", }; 184static const char *axi_sels[] = { "periph", "pll2_pfd2_396m", "pll3_pfd1_540m", };
@@ -185,7 +186,7 @@ static const char *audio_sels[] = { "pll4_post_div", "pll3_pfd2_508m", "pll3_pfd
185static const char *gpu_axi_sels[] = { "axi", "ahb", }; 186static const char *gpu_axi_sels[] = { "axi", "ahb", };
186static const char *gpu2d_core_sels[] = { "axi", "pll3_usb_otg", "pll2_pfd0_352m", "pll2_pfd2_396m", }; 187static const char *gpu2d_core_sels[] = { "axi", "pll3_usb_otg", "pll2_pfd0_352m", "pll2_pfd2_396m", };
187static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", }; 188static const char *gpu3d_core_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd2_396m", };
188static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll2_pfd9_720m", }; 189static const char *gpu3d_shader_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll2_pfd1_594m", "pll3_pfd0_720m", };
189static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", }; 190static const char *ipu_sels[] = { "mmdc_ch0_axi", "pll2_pfd2_396m", "pll3_120m", "pll3_pfd1_540m", };
190static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", }; 191static const char *ldb_di_sels[] = { "pll5_video", "pll2_pfd0_352m", "pll2_pfd2_396m", "mmdc_ch1_axi", "pll3_usb_otg", };
191static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", }; 192static const char *ipu_di_pre_sels[] = { "mmdc_ch0_axi", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0_352m", "pll2_pfd2_396m", "pll3_pfd1_540m", };
@@ -369,8 +370,8 @@ int __init mx6q_clocks_init(void)
369 clk[pll1_sw] = imx_clk_mux("pll1_sw", base + 0xc, 2, 1, pll1_sw_sels, ARRAY_SIZE(pll1_sw_sels)); 370 clk[pll1_sw] = imx_clk_mux("pll1_sw", base + 0xc, 2, 1, pll1_sw_sels, ARRAY_SIZE(pll1_sw_sels));
370 clk[periph_pre] = imx_clk_mux("periph_pre", base + 0x18, 18, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels)); 371 clk[periph_pre] = imx_clk_mux("periph_pre", base + 0x18, 18, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels));
371 clk[periph2_pre] = imx_clk_mux("periph2_pre", base + 0x18, 21, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels)); 372 clk[periph2_pre] = imx_clk_mux("periph2_pre", base + 0x18, 21, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels));
372 clk[periph_clk2_sel] = imx_clk_mux("periph_clk2_sel", base + 0x18, 12, 1, periph_clk2_sels, ARRAY_SIZE(periph_clk2_sels)); 373 clk[periph_clk2_sel] = imx_clk_mux("periph_clk2_sel", base + 0x18, 12, 2, periph_clk2_sels, ARRAY_SIZE(periph_clk2_sels));
373 clk[periph2_clk2_sel] = imx_clk_mux("periph2_clk2_sel", base + 0x18, 20, 1, periph_clk2_sels, ARRAY_SIZE(periph_clk2_sels)); 374 clk[periph2_clk2_sel] = imx_clk_mux("periph2_clk2_sel", base + 0x18, 20, 1, periph2_clk2_sels, ARRAY_SIZE(periph2_clk2_sels));
374 clk[axi_sel] = imx_clk_mux("axi_sel", base + 0x14, 6, 2, axi_sels, ARRAY_SIZE(axi_sels)); 375 clk[axi_sel] = imx_clk_mux("axi_sel", base + 0x14, 6, 2, axi_sels, ARRAY_SIZE(axi_sels));
375 clk[esai_sel] = imx_clk_mux("esai_sel", base + 0x20, 19, 2, audio_sels, ARRAY_SIZE(audio_sels)); 376 clk[esai_sel] = imx_clk_mux("esai_sel", base + 0x20, 19, 2, audio_sels, ARRAY_SIZE(audio_sels));
376 clk[asrc_sel] = imx_clk_mux("asrc_sel", base + 0x30, 7, 2, audio_sels, ARRAY_SIZE(audio_sels)); 377 clk[asrc_sel] = imx_clk_mux("asrc_sel", base + 0x30, 7, 2, audio_sels, ARRAY_SIZE(audio_sels));
@@ -498,7 +499,7 @@ int __init mx6q_clocks_init(void)
498 clk[ldb_di1] = imx_clk_gate2("ldb_di1", "ldb_di1_podf", base + 0x74, 14); 499 clk[ldb_di1] = imx_clk_gate2("ldb_di1", "ldb_di1_podf", base + 0x74, 14);
499 clk[ipu2_di1] = imx_clk_gate2("ipu2_di1", "ipu2_di1_sel", base + 0x74, 10); 500 clk[ipu2_di1] = imx_clk_gate2("ipu2_di1", "ipu2_di1_sel", base + 0x74, 10);
500 clk[hsi_tx] = imx_clk_gate2("hsi_tx", "hsi_tx_podf", base + 0x74, 16); 501 clk[hsi_tx] = imx_clk_gate2("hsi_tx", "hsi_tx_podf", base + 0x74, 16);
501 clk[mlb] = imx_clk_gate2("mlb", "pll8_mlb", base + 0x74, 18); 502 clk[mlb] = imx_clk_gate2("mlb", "axi", base + 0x74, 18);
502 clk[mmdc_ch0_axi] = imx_clk_gate2("mmdc_ch0_axi", "mmdc_ch0_axi_podf", base + 0x74, 20); 503 clk[mmdc_ch0_axi] = imx_clk_gate2("mmdc_ch0_axi", "mmdc_ch0_axi_podf", base + 0x74, 20);
503 clk[mmdc_ch1_axi] = imx_clk_gate2("mmdc_ch1_axi", "mmdc_ch1_axi_podf", base + 0x74, 22); 504 clk[mmdc_ch1_axi] = imx_clk_gate2("mmdc_ch1_axi", "mmdc_ch1_axi_podf", base + 0x74, 22);
504 clk[ocram] = imx_clk_gate2("ocram", "ahb", base + 0x74, 28); 505 clk[ocram] = imx_clk_gate2("ocram", "ahb", base + 0x74, 28);
diff --git a/arch/arm/mach-imx/headsmp.S b/arch/arm/mach-imx/headsmp.S
index 67b9c48dcafe..627f16f0e9d1 100644
--- a/arch/arm/mach-imx/headsmp.S
+++ b/arch/arm/mach-imx/headsmp.S
@@ -18,8 +18,20 @@
18 .section ".text.head", "ax" 18 .section ".text.head", "ax"
19 19
20#ifdef CONFIG_SMP 20#ifdef CONFIG_SMP
21diag_reg_offset:
22 .word g_diag_reg - .
23
24 .macro set_diag_reg
25 adr r0, diag_reg_offset
26 ldr r1, [r0]
27 add r1, r1, r0 @ r1 = physical &g_diag_reg
28 ldr r0, [r1]
29 mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register
30 .endm
31
21ENTRY(v7_secondary_startup) 32ENTRY(v7_secondary_startup)
22 bl v7_invalidate_l1 33 bl v7_invalidate_l1
34 set_diag_reg
23 b secondary_startup 35 b secondary_startup
24ENDPROC(v7_secondary_startup) 36ENDPROC(v7_secondary_startup)
25#endif 37#endif
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c
index 4a69305db65e..c6e1ab544882 100644
--- a/arch/arm/mach-imx/platsmp.c
+++ b/arch/arm/mach-imx/platsmp.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/smp.h> 14#include <linux/smp.h>
15#include <asm/cacheflush.h>
15#include <asm/page.h> 16#include <asm/page.h>
16#include <asm/smp_scu.h> 17#include <asm/smp_scu.h>
17#include <asm/mach/map.h> 18#include <asm/mach/map.h>
@@ -21,6 +22,7 @@
21 22
22#define SCU_STANDBY_ENABLE (1 << 5) 23#define SCU_STANDBY_ENABLE (1 << 5)
23 24
25u32 g_diag_reg;
24static void __iomem *scu_base; 26static void __iomem *scu_base;
25 27
26static struct map_desc scu_io_desc __initdata = { 28static struct map_desc scu_io_desc __initdata = {
@@ -80,6 +82,18 @@ void imx_smp_prepare(void)
80static void __init imx_smp_prepare_cpus(unsigned int max_cpus) 82static void __init imx_smp_prepare_cpus(unsigned int max_cpus)
81{ 83{
82 imx_smp_prepare(); 84 imx_smp_prepare();
85
86 /*
87 * The diagnostic register holds the errata bits. Mostly bootloader
88 * does not bring up secondary cores, so that when errata bits are set
89 * in bootloader, they are set only for boot cpu. But on a SMP
90 * configuration, it should be equally done on every single core.
91 * Read the register from boot cpu here, and will replicate it into
92 * secondary cores when booting them.
93 */
94 asm("mrc p15, 0, %0, c15, c0, 1" : "=r" (g_diag_reg) : : "cc");
95 __cpuc_flush_dcache_area(&g_diag_reg, sizeof(g_diag_reg));
96 outer_clean_range(__pa(&g_diag_reg), __pa(&g_diag_reg + 1));
83} 97}
84 98
85struct smp_operations imx_smp_ops __initdata = { 99struct smp_operations imx_smp_ops __initdata = {
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index c2cae69e6d2b..f38922897563 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -528,12 +528,6 @@ void __init kirkwood_init_early(void)
528{ 528{
529 orion_time_set_base(TIMER_VIRT_BASE); 529 orion_time_set_base(TIMER_VIRT_BASE);
530 530
531 /*
532 * Some Kirkwood devices allocate their coherent buffers from atomic
533 * context. Increase size of atomic coherent pool to make sure such
534 * the allocations won't fail.
535 */
536 init_dma_coherent_pool_size(SZ_1M);
537 mvebu_mbus_init("marvell,kirkwood-mbus", 531 mvebu_mbus_init("marvell,kirkwood-mbus",
538 BRIDGE_WINS_BASE, BRIDGE_WINS_SZ, 532 BRIDGE_WINS_BASE, BRIDGE_WINS_SZ,
539 DDR_WINDOW_CPU_BASE, DDR_WINDOW_CPU_SZ); 533 DDR_WINDOW_CPU_BASE, DDR_WINDOW_CPU_SZ);
diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c
index 283abff90228..e1267d6b468f 100644
--- a/arch/arm/mach-kirkwood/ts219-setup.c
+++ b/arch/arm/mach-kirkwood/ts219-setup.c
@@ -124,7 +124,7 @@ static void __init qnap_ts219_init(void)
124static int __init ts219_pci_init(void) 124static int __init ts219_pci_init(void)
125{ 125{
126 if (machine_is_ts219()) 126 if (machine_is_ts219())
127 kirkwood_pcie_init(KW_PCIE0); 127 kirkwood_pcie_init(KW_PCIE1 | KW_PCIE0);
128 128
129 return 0; 129 return 0;
130} 130}
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index e11acbb0a46d..80a8bcacd9d5 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -15,6 +15,7 @@ config ARCH_MVEBU
15 select MVEBU_CLK_GATING 15 select MVEBU_CLK_GATING
16 select MVEBU_MBUS 16 select MVEBU_MBUS
17 select ZONE_DMA if ARM_LPAE 17 select ZONE_DMA if ARM_LPAE
18 select ARCH_REQUIRE_GPIOLIB
18 19
19if ARCH_MVEBU 20if ARCH_MVEBU
20 21
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index 42a4cb3087e2..1c48890bb72b 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -54,13 +54,6 @@ void __init armada_370_xp_init_early(void)
54 char *mbus_soc_name; 54 char *mbus_soc_name;
55 55
56 /* 56 /*
57 * Some Armada 370/XP devices allocate their coherent buffers
58 * from atomic context. Increase size of atomic coherent pool
59 * to make sure such the allocations won't fail.
60 */
61 init_dma_coherent_pool_size(SZ_1M);
62
63 /*
64 * This initialization will be replaced by a DT-based 57 * This initialization will be replaced by a DT-based
65 * initialization once the mvebu-mbus driver gains DT support. 58 * initialization once the mvebu-mbus driver gains DT support.
66 */ 59 */
diff --git a/arch/arm/mach-omap1/dma.c b/arch/arm/mach-omap1/dma.c
index 68ab858e27b7..a94b3a718d1a 100644
--- a/arch/arm/mach-omap1/dma.c
+++ b/arch/arm/mach-omap1/dma.c
@@ -345,6 +345,7 @@ static int __init omap1_system_dma_init(void)
345 dev_err(&pdev->dev, 345 dev_err(&pdev->dev,
346 "%s: Memory allocation failed for d->chan!\n", 346 "%s: Memory allocation failed for d->chan!\n",
347 __func__); 347 __func__);
348 ret = -ENOMEM;
348 goto exit_release_d; 349 goto exit_release_d;
349 } 350 }
350 351
diff --git a/arch/arm/mach-omap2/cclock33xx_data.c b/arch/arm/mach-omap2/cclock33xx_data.c
index 6ebc7803bc3e..af3544ce4f02 100644
--- a/arch/arm/mach-omap2/cclock33xx_data.c
+++ b/arch/arm/mach-omap2/cclock33xx_data.c
@@ -454,9 +454,29 @@ DEFINE_CLK_GATE(cefuse_fck, "sys_clkin_ck", &sys_clkin_ck, 0x0,
454 */ 454 */
455DEFINE_CLK_FIXED_FACTOR(clkdiv32k_ck, "clk_24mhz", &clk_24mhz, 0x0, 1, 732); 455DEFINE_CLK_FIXED_FACTOR(clkdiv32k_ck, "clk_24mhz", &clk_24mhz, 0x0, 1, 732);
456 456
457DEFINE_CLK_GATE(clkdiv32k_ick, "clkdiv32k_ck", &clkdiv32k_ck, 0x0, 457static struct clk clkdiv32k_ick;
458 AM33XX_CM_PER_CLKDIV32K_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT, 458
459 0x0, NULL); 459static const char *clkdiv32k_ick_parent_names[] = {
460 "clkdiv32k_ck",
461};
462
463static const struct clk_ops clkdiv32k_ick_ops = {
464 .enable = &omap2_dflt_clk_enable,
465 .disable = &omap2_dflt_clk_disable,
466 .is_enabled = &omap2_dflt_clk_is_enabled,
467 .init = &omap2_init_clk_clkdm,
468};
469
470static struct clk_hw_omap clkdiv32k_ick_hw = {
471 .hw = {
472 .clk = &clkdiv32k_ick,
473 },
474 .enable_reg = AM33XX_CM_PER_CLKDIV32K_CLKCTRL,
475 .enable_bit = AM33XX_MODULEMODE_SWCTRL_SHIFT,
476 .clkdm_name = "clk_24mhz_clkdm",
477};
478
479DEFINE_STRUCT_CLK(clkdiv32k_ick, clkdiv32k_ick_parent_names, clkdiv32k_ick_ops);
460 480
461/* "usbotg_fck" is an additional clock and not really a modulemode */ 481/* "usbotg_fck" is an additional clock and not really a modulemode */
462DEFINE_CLK_GATE(usbotg_fck, "dpll_per_ck", &dpll_per_ck, 0x0, 482DEFINE_CLK_GATE(usbotg_fck, "dpll_per_ck", &dpll_per_ck, 0x0,
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index d25a95fe9921..7341eff63f56 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1356,13 +1356,27 @@ static void _enable_sysc(struct omap_hwmod *oh)
1356 1356
1357 clkdm = _get_clkdm(oh); 1357 clkdm = _get_clkdm(oh);
1358 if (sf & SYSC_HAS_SIDLEMODE) { 1358 if (sf & SYSC_HAS_SIDLEMODE) {
1359 if (oh->flags & HWMOD_SWSUP_SIDLE ||
1360 oh->flags & HWMOD_SWSUP_SIDLE_ACT) {
1361 idlemode = HWMOD_IDLEMODE_NO;
1362 } else {
1363 if (sf & SYSC_HAS_ENAWAKEUP)
1364 _enable_wakeup(oh, &v);
1365 if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
1366 idlemode = HWMOD_IDLEMODE_SMART_WKUP;
1367 else
1368 idlemode = HWMOD_IDLEMODE_SMART;
1369 }
1370
1371 /*
1372 * This is special handling for some IPs like
1373 * 32k sync timer. Force them to idle!
1374 */
1359 clkdm_act = (clkdm && clkdm->flags & CLKDM_ACTIVE_WITH_MPU); 1375 clkdm_act = (clkdm && clkdm->flags & CLKDM_ACTIVE_WITH_MPU);
1360 if (clkdm_act && !(oh->class->sysc->idlemodes & 1376 if (clkdm_act && !(oh->class->sysc->idlemodes &
1361 (SIDLE_SMART | SIDLE_SMART_WKUP))) 1377 (SIDLE_SMART | SIDLE_SMART_WKUP)))
1362 idlemode = HWMOD_IDLEMODE_FORCE; 1378 idlemode = HWMOD_IDLEMODE_FORCE;
1363 else 1379
1364 idlemode = (oh->flags & HWMOD_SWSUP_SIDLE) ?
1365 HWMOD_IDLEMODE_NO : HWMOD_IDLEMODE_SMART;
1366 _set_slave_idlemode(oh, idlemode, &v); 1380 _set_slave_idlemode(oh, idlemode, &v);
1367 } 1381 }
1368 1382
@@ -1391,10 +1405,6 @@ static void _enable_sysc(struct omap_hwmod *oh)
1391 (sf & SYSC_HAS_CLOCKACTIVITY)) 1405 (sf & SYSC_HAS_CLOCKACTIVITY))
1392 _set_clockactivity(oh, oh->class->sysc->clockact, &v); 1406 _set_clockactivity(oh, oh->class->sysc->clockact, &v);
1393 1407
1394 /* If slave is in SMARTIDLE, also enable wakeup */
1395 if ((sf & SYSC_HAS_SIDLEMODE) && !(oh->flags & HWMOD_SWSUP_SIDLE))
1396 _enable_wakeup(oh, &v);
1397
1398 _write_sysconfig(v, oh); 1408 _write_sysconfig(v, oh);
1399 1409
1400 /* 1410 /*
@@ -1430,13 +1440,16 @@ static void _idle_sysc(struct omap_hwmod *oh)
1430 sf = oh->class->sysc->sysc_flags; 1440 sf = oh->class->sysc->sysc_flags;
1431 1441
1432 if (sf & SYSC_HAS_SIDLEMODE) { 1442 if (sf & SYSC_HAS_SIDLEMODE) {
1433 /* XXX What about HWMOD_IDLEMODE_SMART_WKUP? */ 1443 if (oh->flags & HWMOD_SWSUP_SIDLE) {
1434 if (oh->flags & HWMOD_SWSUP_SIDLE ||
1435 !(oh->class->sysc->idlemodes &
1436 (SIDLE_SMART | SIDLE_SMART_WKUP)))
1437 idlemode = HWMOD_IDLEMODE_FORCE; 1444 idlemode = HWMOD_IDLEMODE_FORCE;
1438 else 1445 } else {
1439 idlemode = HWMOD_IDLEMODE_SMART; 1446 if (sf & SYSC_HAS_ENAWAKEUP)
1447 _enable_wakeup(oh, &v);
1448 if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
1449 idlemode = HWMOD_IDLEMODE_SMART_WKUP;
1450 else
1451 idlemode = HWMOD_IDLEMODE_SMART;
1452 }
1440 _set_slave_idlemode(oh, idlemode, &v); 1453 _set_slave_idlemode(oh, idlemode, &v);
1441 } 1454 }
1442 1455
@@ -1455,10 +1468,6 @@ static void _idle_sysc(struct omap_hwmod *oh)
1455 _set_master_standbymode(oh, idlemode, &v); 1468 _set_master_standbymode(oh, idlemode, &v);
1456 } 1469 }
1457 1470
1458 /* If slave is in SMARTIDLE, also enable wakeup */
1459 if ((sf & SYSC_HAS_SIDLEMODE) && !(oh->flags & HWMOD_SWSUP_SIDLE))
1460 _enable_wakeup(oh, &v);
1461
1462 _write_sysconfig(v, oh); 1471 _write_sysconfig(v, oh);
1463} 1472}
1464 1473
@@ -2065,7 +2074,7 @@ static int _omap4_get_context_lost(struct omap_hwmod *oh)
2065 * do so is present in the hwmod data, then call it and pass along the 2074 * do so is present in the hwmod data, then call it and pass along the
2066 * return value; otherwise, return 0. 2075 * return value; otherwise, return 0.
2067 */ 2076 */
2068static int __init _enable_preprogram(struct omap_hwmod *oh) 2077static int _enable_preprogram(struct omap_hwmod *oh)
2069{ 2078{
2070 if (!oh->class->enable_preprogram) 2079 if (!oh->class->enable_preprogram)
2071 return 0; 2080 return 0;
@@ -2246,42 +2255,6 @@ static int _idle(struct omap_hwmod *oh)
2246} 2255}
2247 2256
2248/** 2257/**
2249 * omap_hwmod_set_ocp_autoidle - set the hwmod's OCP autoidle bit
2250 * @oh: struct omap_hwmod *
2251 * @autoidle: desired AUTOIDLE bitfield value (0 or 1)
2252 *
2253 * Sets the IP block's OCP autoidle bit in hardware, and updates our
2254 * local copy. Intended to be used by drivers that require
2255 * direct manipulation of the AUTOIDLE bits.
2256 * Returns -EINVAL if @oh is null or is not in the ENABLED state, or passes
2257 * along the return value from _set_module_autoidle().
2258 *
2259 * Any users of this function should be scrutinized carefully.
2260 */
2261int omap_hwmod_set_ocp_autoidle(struct omap_hwmod *oh, u8 autoidle)
2262{
2263 u32 v;
2264 int retval = 0;
2265 unsigned long flags;
2266
2267 if (!oh || oh->_state != _HWMOD_STATE_ENABLED)
2268 return -EINVAL;
2269
2270 spin_lock_irqsave(&oh->_lock, flags);
2271
2272 v = oh->_sysc_cache;
2273
2274 retval = _set_module_autoidle(oh, autoidle, &v);
2275
2276 if (!retval)
2277 _write_sysconfig(v, oh);
2278
2279 spin_unlock_irqrestore(&oh->_lock, flags);
2280
2281 return retval;
2282}
2283
2284/**
2285 * _shutdown - shutdown an omap_hwmod 2258 * _shutdown - shutdown an omap_hwmod
2286 * @oh: struct omap_hwmod * 2259 * @oh: struct omap_hwmod *
2287 * 2260 *
@@ -3180,38 +3153,6 @@ error:
3180} 3153}
3181 3154
3182/** 3155/**
3183 * omap_hwmod_set_slave_idlemode - set the hwmod's OCP slave idlemode
3184 * @oh: struct omap_hwmod *
3185 * @idlemode: SIDLEMODE field bits (shifted to bit 0)
3186 *
3187 * Sets the IP block's OCP slave idlemode in hardware, and updates our
3188 * local copy. Intended to be used by drivers that have some erratum
3189 * that requires direct manipulation of the SIDLEMODE bits. Returns
3190 * -EINVAL if @oh is null, or passes along the return value from
3191 * _set_slave_idlemode().
3192 *
3193 * XXX Does this function have any current users? If not, we should
3194 * remove it; it is better to let the rest of the hwmod code handle this.
3195 * Any users of this function should be scrutinized carefully.
3196 */
3197int omap_hwmod_set_slave_idlemode(struct omap_hwmod *oh, u8 idlemode)
3198{
3199 u32 v;
3200 int retval = 0;
3201
3202 if (!oh)
3203 return -EINVAL;
3204
3205 v = oh->_sysc_cache;
3206
3207 retval = _set_slave_idlemode(oh, idlemode, &v);
3208 if (!retval)
3209 _write_sysconfig(v, oh);
3210
3211 return retval;
3212}
3213
3214/**
3215 * omap_hwmod_lookup - look up a registered omap_hwmod by name 3156 * omap_hwmod_lookup - look up a registered omap_hwmod by name
3216 * @name: name of the omap_hwmod to look up 3157 * @name: name of the omap_hwmod to look up
3217 * 3158 *
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index fe5962921f07..0c898f58ac9b 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -463,6 +463,9 @@ struct omap_hwmod_omap4_prcm {
463 * is kept in force-standby mode. Failing to do so causes PM problems 463 * is kept in force-standby mode. Failing to do so causes PM problems
464 * with musb on OMAP3630 at least. Note that musb has a dedicated register 464 * with musb on OMAP3630 at least. Note that musb has a dedicated register
465 * to control MSTANDBY signal when MIDLEMODE is set to force-standby. 465 * to control MSTANDBY signal when MIDLEMODE is set to force-standby.
466 * HWMOD_SWSUP_SIDLE_ACT: omap_hwmod code should manually bring the module
467 * out of idle, but rely on smart-idle to the put it back in idle,
468 * so the wakeups are still functional (Only known case for now is UART)
466 */ 469 */
467#define HWMOD_SWSUP_SIDLE (1 << 0) 470#define HWMOD_SWSUP_SIDLE (1 << 0)
468#define HWMOD_SWSUP_MSTANDBY (1 << 1) 471#define HWMOD_SWSUP_MSTANDBY (1 << 1)
@@ -476,6 +479,7 @@ struct omap_hwmod_omap4_prcm {
476#define HWMOD_EXT_OPT_MAIN_CLK (1 << 9) 479#define HWMOD_EXT_OPT_MAIN_CLK (1 << 9)
477#define HWMOD_BLOCK_WFI (1 << 10) 480#define HWMOD_BLOCK_WFI (1 << 10)
478#define HWMOD_FORCE_MSTANDBY (1 << 11) 481#define HWMOD_FORCE_MSTANDBY (1 << 11)
482#define HWMOD_SWSUP_SIDLE_ACT (1 << 12)
479 483
480/* 484/*
481 * omap_hwmod._int_flags definitions 485 * omap_hwmod._int_flags definitions
@@ -641,9 +645,6 @@ int omap_hwmod_read_hardreset(struct omap_hwmod *oh, const char *name);
641int omap_hwmod_enable_clocks(struct omap_hwmod *oh); 645int omap_hwmod_enable_clocks(struct omap_hwmod *oh);
642int omap_hwmod_disable_clocks(struct omap_hwmod *oh); 646int omap_hwmod_disable_clocks(struct omap_hwmod *oh);
643 647
644int omap_hwmod_set_slave_idlemode(struct omap_hwmod *oh, u8 idlemode);
645int omap_hwmod_set_ocp_autoidle(struct omap_hwmod *oh, u8 autoidle);
646
647int omap_hwmod_reset(struct omap_hwmod *oh); 648int omap_hwmod_reset(struct omap_hwmod *oh);
648void omap_hwmod_ocp_barrier(struct omap_hwmod *oh); 649void omap_hwmod_ocp_barrier(struct omap_hwmod *oh);
649 650
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
index c8c64b3e1acc..d05fc7b54567 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
@@ -512,6 +512,7 @@ struct omap_hwmod omap2xxx_uart1_hwmod = {
512 .mpu_irqs = omap2_uart1_mpu_irqs, 512 .mpu_irqs = omap2_uart1_mpu_irqs,
513 .sdma_reqs = omap2_uart1_sdma_reqs, 513 .sdma_reqs = omap2_uart1_sdma_reqs,
514 .main_clk = "uart1_fck", 514 .main_clk = "uart1_fck",
515 .flags = HWMOD_SWSUP_SIDLE_ACT,
515 .prcm = { 516 .prcm = {
516 .omap2 = { 517 .omap2 = {
517 .module_offs = CORE_MOD, 518 .module_offs = CORE_MOD,
@@ -531,6 +532,7 @@ struct omap_hwmod omap2xxx_uart2_hwmod = {
531 .mpu_irqs = omap2_uart2_mpu_irqs, 532 .mpu_irqs = omap2_uart2_mpu_irqs,
532 .sdma_reqs = omap2_uart2_sdma_reqs, 533 .sdma_reqs = omap2_uart2_sdma_reqs,
533 .main_clk = "uart2_fck", 534 .main_clk = "uart2_fck",
535 .flags = HWMOD_SWSUP_SIDLE_ACT,
534 .prcm = { 536 .prcm = {
535 .omap2 = { 537 .omap2 = {
536 .module_offs = CORE_MOD, 538 .module_offs = CORE_MOD,
@@ -550,6 +552,7 @@ struct omap_hwmod omap2xxx_uart3_hwmod = {
550 .mpu_irqs = omap2_uart3_mpu_irqs, 552 .mpu_irqs = omap2_uart3_mpu_irqs,
551 .sdma_reqs = omap2_uart3_sdma_reqs, 553 .sdma_reqs = omap2_uart3_sdma_reqs,
552 .main_clk = "uart3_fck", 554 .main_clk = "uart3_fck",
555 .flags = HWMOD_SWSUP_SIDLE_ACT,
553 .prcm = { 556 .prcm = {
554 .omap2 = { 557 .omap2 = {
555 .module_offs = CORE_MOD, 558 .module_offs = CORE_MOD,
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 01d8f324450a..075f7cc51026 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -1995,6 +1995,7 @@ static struct omap_hwmod am33xx_uart1_hwmod = {
1995 .name = "uart1", 1995 .name = "uart1",
1996 .class = &uart_class, 1996 .class = &uart_class,
1997 .clkdm_name = "l4_wkup_clkdm", 1997 .clkdm_name = "l4_wkup_clkdm",
1998 .flags = HWMOD_SWSUP_SIDLE_ACT,
1998 .mpu_irqs = am33xx_uart1_irqs, 1999 .mpu_irqs = am33xx_uart1_irqs,
1999 .sdma_reqs = uart1_edma_reqs, 2000 .sdma_reqs = uart1_edma_reqs,
2000 .main_clk = "dpll_per_m2_div4_wkupdm_ck", 2001 .main_clk = "dpll_per_m2_div4_wkupdm_ck",
@@ -2015,6 +2016,7 @@ static struct omap_hwmod am33xx_uart2_hwmod = {
2015 .name = "uart2", 2016 .name = "uart2",
2016 .class = &uart_class, 2017 .class = &uart_class,
2017 .clkdm_name = "l4ls_clkdm", 2018 .clkdm_name = "l4ls_clkdm",
2019 .flags = HWMOD_SWSUP_SIDLE_ACT,
2018 .mpu_irqs = am33xx_uart2_irqs, 2020 .mpu_irqs = am33xx_uart2_irqs,
2019 .sdma_reqs = uart1_edma_reqs, 2021 .sdma_reqs = uart1_edma_reqs,
2020 .main_clk = "dpll_per_m2_div4_ck", 2022 .main_clk = "dpll_per_m2_div4_ck",
@@ -2042,6 +2044,7 @@ static struct omap_hwmod am33xx_uart3_hwmod = {
2042 .name = "uart3", 2044 .name = "uart3",
2043 .class = &uart_class, 2045 .class = &uart_class,
2044 .clkdm_name = "l4ls_clkdm", 2046 .clkdm_name = "l4ls_clkdm",
2047 .flags = HWMOD_SWSUP_SIDLE_ACT,
2045 .mpu_irqs = am33xx_uart3_irqs, 2048 .mpu_irqs = am33xx_uart3_irqs,
2046 .sdma_reqs = uart3_edma_reqs, 2049 .sdma_reqs = uart3_edma_reqs,
2047 .main_clk = "dpll_per_m2_div4_ck", 2050 .main_clk = "dpll_per_m2_div4_ck",
@@ -2062,6 +2065,7 @@ static struct omap_hwmod am33xx_uart4_hwmod = {
2062 .name = "uart4", 2065 .name = "uart4",
2063 .class = &uart_class, 2066 .class = &uart_class,
2064 .clkdm_name = "l4ls_clkdm", 2067 .clkdm_name = "l4ls_clkdm",
2068 .flags = HWMOD_SWSUP_SIDLE_ACT,
2065 .mpu_irqs = am33xx_uart4_irqs, 2069 .mpu_irqs = am33xx_uart4_irqs,
2066 .sdma_reqs = uart1_edma_reqs, 2070 .sdma_reqs = uart1_edma_reqs,
2067 .main_clk = "dpll_per_m2_div4_ck", 2071 .main_clk = "dpll_per_m2_div4_ck",
@@ -2082,6 +2086,7 @@ static struct omap_hwmod am33xx_uart5_hwmod = {
2082 .name = "uart5", 2086 .name = "uart5",
2083 .class = &uart_class, 2087 .class = &uart_class,
2084 .clkdm_name = "l4ls_clkdm", 2088 .clkdm_name = "l4ls_clkdm",
2089 .flags = HWMOD_SWSUP_SIDLE_ACT,
2085 .mpu_irqs = am33xx_uart5_irqs, 2090 .mpu_irqs = am33xx_uart5_irqs,
2086 .sdma_reqs = uart1_edma_reqs, 2091 .sdma_reqs = uart1_edma_reqs,
2087 .main_clk = "dpll_per_m2_div4_ck", 2092 .main_clk = "dpll_per_m2_div4_ck",
@@ -2102,6 +2107,7 @@ static struct omap_hwmod am33xx_uart6_hwmod = {
2102 .name = "uart6", 2107 .name = "uart6",
2103 .class = &uart_class, 2108 .class = &uart_class,
2104 .clkdm_name = "l4ls_clkdm", 2109 .clkdm_name = "l4ls_clkdm",
2110 .flags = HWMOD_SWSUP_SIDLE_ACT,
2105 .mpu_irqs = am33xx_uart6_irqs, 2111 .mpu_irqs = am33xx_uart6_irqs,
2106 .sdma_reqs = uart1_edma_reqs, 2112 .sdma_reqs = uart1_edma_reqs,
2107 .main_clk = "dpll_per_m2_div4_ck", 2113 .main_clk = "dpll_per_m2_div4_ck",
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 4083606ea1da..31c7126eb3bb 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -490,6 +490,7 @@ static struct omap_hwmod omap3xxx_uart1_hwmod = {
490 .mpu_irqs = omap2_uart1_mpu_irqs, 490 .mpu_irqs = omap2_uart1_mpu_irqs,
491 .sdma_reqs = omap2_uart1_sdma_reqs, 491 .sdma_reqs = omap2_uart1_sdma_reqs,
492 .main_clk = "uart1_fck", 492 .main_clk = "uart1_fck",
493 .flags = HWMOD_SWSUP_SIDLE_ACT,
493 .prcm = { 494 .prcm = {
494 .omap2 = { 495 .omap2 = {
495 .module_offs = CORE_MOD, 496 .module_offs = CORE_MOD,
@@ -508,6 +509,7 @@ static struct omap_hwmod omap3xxx_uart2_hwmod = {
508 .mpu_irqs = omap2_uart2_mpu_irqs, 509 .mpu_irqs = omap2_uart2_mpu_irqs,
509 .sdma_reqs = omap2_uart2_sdma_reqs, 510 .sdma_reqs = omap2_uart2_sdma_reqs,
510 .main_clk = "uart2_fck", 511 .main_clk = "uart2_fck",
512 .flags = HWMOD_SWSUP_SIDLE_ACT,
511 .prcm = { 513 .prcm = {
512 .omap2 = { 514 .omap2 = {
513 .module_offs = CORE_MOD, 515 .module_offs = CORE_MOD,
@@ -526,6 +528,7 @@ static struct omap_hwmod omap3xxx_uart3_hwmod = {
526 .mpu_irqs = omap2_uart3_mpu_irqs, 528 .mpu_irqs = omap2_uart3_mpu_irqs,
527 .sdma_reqs = omap2_uart3_sdma_reqs, 529 .sdma_reqs = omap2_uart3_sdma_reqs,
528 .main_clk = "uart3_fck", 530 .main_clk = "uart3_fck",
531 .flags = HWMOD_SWSUP_SIDLE_ACT,
529 .prcm = { 532 .prcm = {
530 .omap2 = { 533 .omap2 = {
531 .module_offs = OMAP3430_PER_MOD, 534 .module_offs = OMAP3430_PER_MOD,
@@ -555,6 +558,7 @@ static struct omap_hwmod omap36xx_uart4_hwmod = {
555 .mpu_irqs = uart4_mpu_irqs, 558 .mpu_irqs = uart4_mpu_irqs,
556 .sdma_reqs = uart4_sdma_reqs, 559 .sdma_reqs = uart4_sdma_reqs,
557 .main_clk = "uart4_fck", 560 .main_clk = "uart4_fck",
561 .flags = HWMOD_SWSUP_SIDLE_ACT,
558 .prcm = { 562 .prcm = {
559 .omap2 = { 563 .omap2 = {
560 .module_offs = OMAP3430_PER_MOD, 564 .module_offs = OMAP3430_PER_MOD,
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index eaba9dc91a0d..848b6dc67590 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -3434,6 +3434,7 @@ static struct omap_hwmod omap44xx_uart1_hwmod = {
3434 .name = "uart1", 3434 .name = "uart1",
3435 .class = &omap44xx_uart_hwmod_class, 3435 .class = &omap44xx_uart_hwmod_class,
3436 .clkdm_name = "l4_per_clkdm", 3436 .clkdm_name = "l4_per_clkdm",
3437 .flags = HWMOD_SWSUP_SIDLE_ACT,
3437 .mpu_irqs = omap44xx_uart1_irqs, 3438 .mpu_irqs = omap44xx_uart1_irqs,
3438 .sdma_reqs = omap44xx_uart1_sdma_reqs, 3439 .sdma_reqs = omap44xx_uart1_sdma_reqs,
3439 .main_clk = "func_48m_fclk", 3440 .main_clk = "func_48m_fclk",
@@ -3462,6 +3463,7 @@ static struct omap_hwmod omap44xx_uart2_hwmod = {
3462 .name = "uart2", 3463 .name = "uart2",
3463 .class = &omap44xx_uart_hwmod_class, 3464 .class = &omap44xx_uart_hwmod_class,
3464 .clkdm_name = "l4_per_clkdm", 3465 .clkdm_name = "l4_per_clkdm",
3466 .flags = HWMOD_SWSUP_SIDLE_ACT,
3465 .mpu_irqs = omap44xx_uart2_irqs, 3467 .mpu_irqs = omap44xx_uart2_irqs,
3466 .sdma_reqs = omap44xx_uart2_sdma_reqs, 3468 .sdma_reqs = omap44xx_uart2_sdma_reqs,
3467 .main_clk = "func_48m_fclk", 3469 .main_clk = "func_48m_fclk",
@@ -3490,7 +3492,8 @@ static struct omap_hwmod omap44xx_uart3_hwmod = {
3490 .name = "uart3", 3492 .name = "uart3",
3491 .class = &omap44xx_uart_hwmod_class, 3493 .class = &omap44xx_uart_hwmod_class,
3492 .clkdm_name = "l4_per_clkdm", 3494 .clkdm_name = "l4_per_clkdm",
3493 .flags = HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET, 3495 .flags = HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET |
3496 HWMOD_SWSUP_SIDLE_ACT,
3494 .mpu_irqs = omap44xx_uart3_irqs, 3497 .mpu_irqs = omap44xx_uart3_irqs,
3495 .sdma_reqs = omap44xx_uart3_sdma_reqs, 3498 .sdma_reqs = omap44xx_uart3_sdma_reqs,
3496 .main_clk = "func_48m_fclk", 3499 .main_clk = "func_48m_fclk",
@@ -3519,6 +3522,7 @@ static struct omap_hwmod omap44xx_uart4_hwmod = {
3519 .name = "uart4", 3522 .name = "uart4",
3520 .class = &omap44xx_uart_hwmod_class, 3523 .class = &omap44xx_uart_hwmod_class,
3521 .clkdm_name = "l4_per_clkdm", 3524 .clkdm_name = "l4_per_clkdm",
3525 .flags = HWMOD_SWSUP_SIDLE_ACT,
3522 .mpu_irqs = omap44xx_uart4_irqs, 3526 .mpu_irqs = omap44xx_uart4_irqs,
3523 .sdma_reqs = omap44xx_uart4_sdma_reqs, 3527 .sdma_reqs = omap44xx_uart4_sdma_reqs,
3524 .main_clk = "func_48m_fclk", 3528 .main_clk = "func_48m_fclk",
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 8396b5b7e912..f6601563aa69 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -95,38 +95,9 @@ static void omap_uart_enable_wakeup(struct device *dev, bool enable)
95 omap_hwmod_disable_wakeup(od->hwmods[0]); 95 omap_hwmod_disable_wakeup(od->hwmods[0]);
96} 96}
97 97
98/*
99 * Errata i291: [UART]:Cannot Acknowledge Idle Requests
100 * in Smartidle Mode When Configured for DMA Operations.
101 * WA: configure uart in force idle mode.
102 */
103static void omap_uart_set_noidle(struct device *dev)
104{
105 struct platform_device *pdev = to_platform_device(dev);
106 struct omap_device *od = to_omap_device(pdev);
107
108 omap_hwmod_set_slave_idlemode(od->hwmods[0], HWMOD_IDLEMODE_NO);
109}
110
111static void omap_uart_set_smartidle(struct device *dev)
112{
113 struct platform_device *pdev = to_platform_device(dev);
114 struct omap_device *od = to_omap_device(pdev);
115 u8 idlemode;
116
117 if (od->hwmods[0]->class->sysc->idlemodes & SIDLE_SMART_WKUP)
118 idlemode = HWMOD_IDLEMODE_SMART_WKUP;
119 else
120 idlemode = HWMOD_IDLEMODE_SMART;
121
122 omap_hwmod_set_slave_idlemode(od->hwmods[0], idlemode);
123}
124
125#else 98#else
126static void omap_uart_enable_wakeup(struct device *dev, bool enable) 99static void omap_uart_enable_wakeup(struct device *dev, bool enable)
127{} 100{}
128static void omap_uart_set_noidle(struct device *dev) {}
129static void omap_uart_set_smartidle(struct device *dev) {}
130#endif /* CONFIG_PM */ 101#endif /* CONFIG_PM */
131 102
132#ifdef CONFIG_OMAP_MUX 103#ifdef CONFIG_OMAP_MUX
@@ -299,8 +270,6 @@ void __init omap_serial_init_port(struct omap_board_data *bdata,
299 omap_up.uartclk = OMAP24XX_BASE_BAUD * 16; 270 omap_up.uartclk = OMAP24XX_BASE_BAUD * 16;
300 omap_up.flags = UPF_BOOT_AUTOCONF; 271 omap_up.flags = UPF_BOOT_AUTOCONF;
301 omap_up.get_context_loss_count = omap_pm_get_dev_context_loss_count; 272 omap_up.get_context_loss_count = omap_pm_get_dev_context_loss_count;
302 omap_up.set_forceidle = omap_uart_set_smartidle;
303 omap_up.set_noidle = omap_uart_set_noidle;
304 omap_up.enable_wakeup = omap_uart_enable_wakeup; 273 omap_up.enable_wakeup = omap_uart_enable_wakeup;
305 omap_up.dma_rx_buf_size = info->dma_rx_buf_size; 274 omap_up.dma_rx_buf_size = info->dma_rx_buf_size;
306 omap_up.dma_rx_timeout = info->dma_rx_timeout; 275 omap_up.dma_rx_timeout = info->dma_rx_timeout;
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index b97fd672e89d..f8a6db9239bf 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -199,13 +199,6 @@ void __init orion5x_init_early(void)
199 199
200 orion_time_set_base(TIMER_VIRT_BASE); 200 orion_time_set_base(TIMER_VIRT_BASE);
201 201
202 /*
203 * Some Orion5x devices allocate their coherent buffers from atomic
204 * context. Increase size of atomic coherent pool to make sure such
205 * the allocations won't fail.
206 */
207 init_dma_coherent_pool_size(SZ_1M);
208
209 /* Initialize the MBUS driver */ 202 /* Initialize the MBUS driver */
210 orion5x_pcie_id(&dev, &rev); 203 orion5x_pcie_id(&dev, &rev);
211 if (dev == MV88F5281_DEV_ID) 204 if (dev == MV88F5281_DEV_ID)
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index 91052855cc12..b9594e911ce7 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -212,8 +212,8 @@ static struct platform_device *marzen_devices[] __initdata = {
212static struct usb_phy *phy; 212static struct usb_phy *phy;
213static int usb_power_on(struct platform_device *pdev) 213static int usb_power_on(struct platform_device *pdev)
214{ 214{
215 if (!phy) 215 if (IS_ERR(phy))
216 return -EIO; 216 return PTR_ERR(phy);
217 217
218 pm_runtime_enable(&pdev->dev); 218 pm_runtime_enable(&pdev->dev);
219 pm_runtime_get_sync(&pdev->dev); 219 pm_runtime_get_sync(&pdev->dev);
@@ -225,7 +225,7 @@ static int usb_power_on(struct platform_device *pdev)
225 225
226static void usb_power_off(struct platform_device *pdev) 226static void usb_power_off(struct platform_device *pdev)
227{ 227{
228 if (!phy) 228 if (IS_ERR(phy))
229 return; 229 return;
230 230
231 usb_phy_shutdown(phy); 231 usb_phy_shutdown(phy);
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index d259c782d742..5b045e302b43 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -1,5 +1,6 @@
1config ARCH_SUNXI 1config ARCH_SUNXI
2 bool "Allwinner A1X SOCs" if ARCH_MULTI_V7 2 bool "Allwinner A1X SOCs" if ARCH_MULTI_V7
3 select ARCH_REQUIRE_GPIOLIB
3 select CLKSRC_MMIO 4 select CLKSRC_MMIO
4 select CLKSRC_OF 5 select CLKSRC_OF
5 select COMMON_CLK 6 select COMMON_CLK
diff --git a/arch/arm/mach-tegra/tegra2_emc.c b/arch/arm/mach-tegra/tegra2_emc.c
index 9e8bdfa2b369..31e69a019bdd 100644
--- a/arch/arm/mach-tegra/tegra2_emc.c
+++ b/arch/arm/mach-tegra/tegra2_emc.c
@@ -307,11 +307,6 @@ static int tegra_emc_probe(struct platform_device *pdev)
307 } 307 }
308 308
309 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 309 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
310 if (!res) {
311 dev_err(&pdev->dev, "missing register base\n");
312 return -ENOMEM;
313 }
314
315 emc_regbase = devm_ioremap_resource(&pdev->dev, res); 310 emc_regbase = devm_ioremap_resource(&pdev->dev, res);
316 if (IS_ERR(emc_regbase)) 311 if (IS_ERR(emc_regbase))
317 return PTR_ERR(emc_regbase); 312 return PTR_ERR(emc_regbase);
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index 6a4387e39df8..b19b07204aaf 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -51,6 +51,7 @@ config MACH_MOP500
51 bool "U8500 Development platform, MOP500 versions" 51 bool "U8500 Development platform, MOP500 versions"
52 select I2C 52 select I2C
53 select I2C_NOMADIK 53 select I2C_NOMADIK
54 select REGULATOR
54 select REGULATOR_FIXED_VOLTAGE 55 select REGULATOR_FIXED_VOLTAGE
55 select SOC_BUS 56 select SOC_BUS
56 select UX500_SOC_DB8500 57 select UX500_SOC_DB8500
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 3cd555ac6d0a..78389de94dde 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -623,7 +623,7 @@ static void __init mop500_init_machine(void)
623 sdi0_reg_info.gpios[0].gpio = GPIO_SDMMC_1V8_3V_SEL; 623 sdi0_reg_info.gpios[0].gpio = GPIO_SDMMC_1V8_3V_SEL;
624 624
625 mop500_pinmaps_init(); 625 mop500_pinmaps_init();
626 parent = u8500_init_devices(&ab8500_platdata); 626 parent = u8500_init_devices();
627 627
628 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) 628 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++)
629 mop500_platform_devs[i]->dev.parent = parent; 629 mop500_platform_devs[i]->dev.parent = parent;
@@ -660,7 +660,7 @@ static void __init snowball_init_machine(void)
660 sdi0_reg_info.gpios[0].gpio = SNOWBALL_SDMMC_1V8_3V_GPIO; 660 sdi0_reg_info.gpios[0].gpio = SNOWBALL_SDMMC_1V8_3V_GPIO;
661 661
662 snowball_pinmaps_init(); 662 snowball_pinmaps_init();
663 parent = u8500_init_devices(&ab8500_platdata); 663 parent = u8500_init_devices();
664 664
665 for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++) 665 for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++)
666 snowball_platform_devs[i]->dev.parent = parent; 666 snowball_platform_devs[i]->dev.parent = parent;
@@ -698,7 +698,7 @@ static void __init hrefv60_init_machine(void)
698 sdi0_reg_info.gpios[0].gpio = HREFV60_SDMMC_1V8_3V_GPIO; 698 sdi0_reg_info.gpios[0].gpio = HREFV60_SDMMC_1V8_3V_GPIO;
699 699
700 hrefv60_pinmaps_init(); 700 hrefv60_pinmaps_init();
701 parent = u8500_init_devices(&ab8500_platdata); 701 parent = u8500_init_devices();
702 702
703 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) 703 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++)
704 mop500_platform_devs[i]->dev.parent = parent; 704 mop500_platform_devs[i]->dev.parent = parent;
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index e90b5ab23b6d..46cca52890bc 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -206,7 +206,7 @@ static struct device * __init db8500_soc_device_init(void)
206/* 206/*
207 * This function is called from the board init 207 * This function is called from the board init
208 */ 208 */
209struct device * __init u8500_init_devices(struct ab8500_platform_data *ab8500) 209struct device * __init u8500_init_devices(void)
210{ 210{
211 struct device *parent; 211 struct device *parent;
212 int i; 212 int i;
@@ -220,8 +220,6 @@ struct device * __init u8500_init_devices(struct ab8500_platform_data *ab8500)
220 for (i = 0; i < ARRAY_SIZE(platform_devs); i++) 220 for (i = 0; i < ARRAY_SIZE(platform_devs); i++)
221 platform_devs[i]->dev.parent = parent; 221 platform_devs[i]->dev.parent = parent;
222 222
223 db8500_prcmu_device.dev.platform_data = ab8500;
224
225 platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs)); 223 platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs));
226 224
227 return parent; 225 return parent;
@@ -278,7 +276,7 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
278 OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL), 276 OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
279 OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", 277 OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
280 &db8500_prcmu_pdata), 278 &db8500_prcmu_pdata),
281 OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x", NULL), 279 OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x.0", NULL),
282 /* Requires device name bindings. */ 280 /* Requires device name bindings. */
283 OF_DEV_AUXDATA("stericsson,nmk-pinctrl", U8500_PRCMU_BASE, 281 OF_DEV_AUXDATA("stericsson,nmk-pinctrl", U8500_PRCMU_BASE,
284 "pinctrl-db8500", NULL), 282 "pinctrl-db8500", NULL),
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
index bddce2b49372..cad3ca86c540 100644
--- a/arch/arm/mach-ux500/setup.h
+++ b/arch/arm/mach-ux500/setup.h
@@ -18,7 +18,7 @@
18void __init ux500_map_io(void); 18void __init ux500_map_io(void);
19extern void __init u8500_map_io(void); 19extern void __init u8500_map_io(void);
20 20
21extern struct device * __init u8500_init_devices(struct ab8500_platform_data *ab8500); 21extern struct device * __init u8500_init_devices(void);
22 22
23extern void __init ux500_init_irq(void); 23extern void __init ux500_init_irq(void);
24extern void __init ux500_init_late(void); 24extern void __init ux500_init_late(void);
diff --git a/arch/arm/mach-vt8500/vt8500.c b/arch/arm/mach-vt8500/vt8500.c
index 1dd281efc020..f5c33df7a597 100644
--- a/arch/arm/mach-vt8500/vt8500.c
+++ b/arch/arm/mach-vt8500/vt8500.c
@@ -173,6 +173,7 @@ static const char * const vt8500_dt_compat[] = {
173 "wm,wm8505", 173 "wm,wm8505",
174 "wm,wm8750", 174 "wm,wm8750",
175 "wm,wm8850", 175 "wm,wm8850",
176 NULL
176}; 177};
177 178
178DT_MACHINE_START(WMT_DT, "VIA/Wondermedia SoC (Device Tree Support)") 179DT_MACHINE_START(WMT_DT, "VIA/Wondermedia SoC (Device Tree Support)")
diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 251f827271e9..c019b7aaf776 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
@@ -383,7 +383,7 @@ static struct resource orion_ge10_shared_resources[] = {
383 383
384static struct platform_device orion_ge10_shared = { 384static struct platform_device orion_ge10_shared = {
385 .name = MV643XX_ETH_SHARED_NAME, 385 .name = MV643XX_ETH_SHARED_NAME,
386 .id = 1, 386 .id = 2,
387 .dev = { 387 .dev = {
388 .platform_data = &orion_ge10_shared_data, 388 .platform_data = &orion_ge10_shared_data,
389 }, 389 },
@@ -398,8 +398,8 @@ static struct resource orion_ge10_resources[] = {
398 398
399static struct platform_device orion_ge10 = { 399static struct platform_device orion_ge10 = {
400 .name = MV643XX_ETH_NAME, 400 .name = MV643XX_ETH_NAME,
401 .id = 1, 401 .id = 2,
402 .num_resources = 2, 402 .num_resources = 1,
403 .resource = orion_ge10_resources, 403 .resource = orion_ge10_resources,
404 .dev = { 404 .dev = {
405 .coherent_dma_mask = DMA_BIT_MASK(32), 405 .coherent_dma_mask = DMA_BIT_MASK(32),
@@ -432,7 +432,7 @@ static struct resource orion_ge11_shared_resources[] = {
432 432
433static struct platform_device orion_ge11_shared = { 433static struct platform_device orion_ge11_shared = {
434 .name = MV643XX_ETH_SHARED_NAME, 434 .name = MV643XX_ETH_SHARED_NAME,
435 .id = 1, 435 .id = 3,
436 .dev = { 436 .dev = {
437 .platform_data = &orion_ge11_shared_data, 437 .platform_data = &orion_ge11_shared_data,
438 }, 438 },
@@ -447,8 +447,8 @@ static struct resource orion_ge11_resources[] = {
447 447
448static struct platform_device orion_ge11 = { 448static struct platform_device orion_ge11 = {
449 .name = MV643XX_ETH_NAME, 449 .name = MV643XX_ETH_NAME,
450 .id = 1, 450 .id = 3,
451 .num_resources = 2, 451 .num_resources = 1,
452 .resource = orion_ge11_resources, 452 .resource = orion_ge11_resources,
453 .dev = { 453 .dev = {
454 .coherent_dma_mask = DMA_BIT_MASK(32), 454 .coherent_dma_mask = DMA_BIT_MASK(32),
diff --git a/arch/arm/plat-orion/include/plat/common.h b/arch/arm/plat-orion/include/plat/common.h
index e06fc5fefa14..d9a24f605a2b 100644
--- a/arch/arm/plat-orion/include/plat/common.h
+++ b/arch/arm/plat-orion/include/plat/common.h
@@ -10,6 +10,7 @@
10 10
11#ifndef __PLAT_COMMON_H 11#ifndef __PLAT_COMMON_H
12#include <linux/mv643xx_eth.h> 12#include <linux/mv643xx_eth.h>
13#include <linux/platform_data/usb-ehci-orion.h>
13 14
14struct dsa_platform_data; 15struct dsa_platform_data;
15struct mv_sata_platform_data; 16struct mv_sata_platform_data;
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c
index ca07cb1b155a..79690f2f6d3f 100644
--- a/arch/arm/plat-samsung/adc.c
+++ b/arch/arm/plat-samsung/adc.c
@@ -381,11 +381,6 @@ static int s3c_adc_probe(struct platform_device *pdev)
381 } 381 }
382 382
383 regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); 383 regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
384 if (!regs) {
385 dev_err(dev, "failed to find registers\n");
386 return -ENXIO;
387 }
388
389 adc->regs = devm_ioremap_resource(dev, regs); 384 adc->regs = devm_ioremap_resource(dev, regs);
390 if (IS_ERR(adc->regs)) 385 if (IS_ERR(adc->regs))
391 return PTR_ERR(adc->regs); 386 return PTR_ERR(adc->regs);
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index 30c2fe243f76..0f9c3f431a5f 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -311,9 +311,9 @@ struct platform_device s5p_device_jpeg = {
311#ifdef CONFIG_S5P_DEV_FIMD0 311#ifdef CONFIG_S5P_DEV_FIMD0
312static struct resource s5p_fimd0_resource[] = { 312static struct resource s5p_fimd0_resource[] = {
313 [0] = DEFINE_RES_MEM(S5P_PA_FIMD0, SZ_32K), 313 [0] = DEFINE_RES_MEM(S5P_PA_FIMD0, SZ_32K),
314 [1] = DEFINE_RES_IRQ(IRQ_FIMD0_VSYNC), 314 [1] = DEFINE_RES_IRQ_NAMED(IRQ_FIMD0_VSYNC, "vsync"),
315 [2] = DEFINE_RES_IRQ(IRQ_FIMD0_FIFO), 315 [2] = DEFINE_RES_IRQ_NAMED(IRQ_FIMD0_FIFO, "fifo"),
316 [3] = DEFINE_RES_IRQ(IRQ_FIMD0_SYSTEM), 316 [3] = DEFINE_RES_IRQ_NAMED(IRQ_FIMD0_SYSTEM, "lcd_sys"),
317}; 317};
318 318
319struct platform_device s5p_device_fimd0 = { 319struct platform_device s5p_device_fimd0 = {
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
index 323ce1a62bbf..46e17492fd1f 100644
--- a/arch/arm/vfp/entry.S
+++ b/arch/arm/vfp/entry.S
@@ -60,7 +60,7 @@ ENTRY(vfp_testing_entry)
60 str r11, [r10, #TI_PREEMPT] 60 str r11, [r10, #TI_PREEMPT]
61#endif 61#endif
62 ldr r0, VFP_arch_address 62 ldr r0, VFP_arch_address
63 str r5, [r0] @ known non-zero value 63 str r0, [r0] @ set to non-zero value
64 mov pc, r9 @ we have handled the fault 64 mov pc, r9 @ we have handled the fault
65ENDPROC(vfp_testing_entry) 65ENDPROC(vfp_testing_entry)
66 66
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index d30042e39974..13609e01f4b7 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -152,11 +152,12 @@ int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
152} 152}
153EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range); 153EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
154 154
155static int __init xen_secondary_init(unsigned int cpu) 155static void __init xen_percpu_init(void *unused)
156{ 156{
157 struct vcpu_register_vcpu_info info; 157 struct vcpu_register_vcpu_info info;
158 struct vcpu_info *vcpup; 158 struct vcpu_info *vcpup;
159 int err; 159 int err;
160 int cpu = get_cpu();
160 161
161 pr_info("Xen: initializing cpu%d\n", cpu); 162 pr_info("Xen: initializing cpu%d\n", cpu);
162 vcpup = per_cpu_ptr(xen_vcpu_info, cpu); 163 vcpup = per_cpu_ptr(xen_vcpu_info, cpu);
@@ -165,14 +166,10 @@ static int __init xen_secondary_init(unsigned int cpu)
165 info.offset = offset_in_page(vcpup); 166 info.offset = offset_in_page(vcpup);
166 167
167 err = HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_info, cpu, &info); 168 err = HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_info, cpu, &info);
168 if (err) { 169 BUG_ON(err);
169 pr_debug("register_vcpu_info failed: err=%d\n", err); 170 per_cpu(xen_vcpu, cpu) = vcpup;
170 } else { 171
171 /* This cpu is using the registered vcpu info, even if 172 enable_percpu_irq(xen_events_irq, 0);
172 later ones fail to. */
173 per_cpu(xen_vcpu, cpu) = vcpup;
174 }
175 return 0;
176} 173}
177 174
178static void xen_restart(char str, const char *cmd) 175static void xen_restart(char str, const char *cmd)
@@ -208,7 +205,6 @@ static int __init xen_guest_init(void)
208 const char *version = NULL; 205 const char *version = NULL;
209 const char *xen_prefix = "xen,xen-"; 206 const char *xen_prefix = "xen,xen-";
210 struct resource res; 207 struct resource res;
211 int i;
212 208
213 node = of_find_compatible_node(NULL, NULL, "xen,xen"); 209 node = of_find_compatible_node(NULL, NULL, "xen,xen");
214 if (!node) { 210 if (!node) {
@@ -265,19 +261,23 @@ static int __init xen_guest_init(void)
265 sizeof(struct vcpu_info)); 261 sizeof(struct vcpu_info));
266 if (xen_vcpu_info == NULL) 262 if (xen_vcpu_info == NULL)
267 return -ENOMEM; 263 return -ENOMEM;
268 for_each_online_cpu(i)
269 xen_secondary_init(i);
270 264
271 gnttab_init(); 265 gnttab_init();
272 if (!xen_initial_domain()) 266 if (!xen_initial_domain())
273 xenbus_probe(NULL); 267 xenbus_probe(NULL);
274 268
269 return 0;
270}
271core_initcall(xen_guest_init);
272
273static int __init xen_pm_init(void)
274{
275 pm_power_off = xen_power_off; 275 pm_power_off = xen_power_off;
276 arm_pm_restart = xen_restart; 276 arm_pm_restart = xen_restart;
277 277
278 return 0; 278 return 0;
279} 279}
280core_initcall(xen_guest_init); 280subsys_initcall(xen_pm_init);
281 281
282static irqreturn_t xen_arm_callback(int irq, void *arg) 282static irqreturn_t xen_arm_callback(int irq, void *arg)
283{ 283{
@@ -285,11 +285,6 @@ static irqreturn_t xen_arm_callback(int irq, void *arg)
285 return IRQ_HANDLED; 285 return IRQ_HANDLED;
286} 286}
287 287
288static __init void xen_percpu_enable_events(void *unused)
289{
290 enable_percpu_irq(xen_events_irq, 0);
291}
292
293static int __init xen_init_events(void) 288static int __init xen_init_events(void)
294{ 289{
295 if (!xen_domain() || xen_events_irq < 0) 290 if (!xen_domain() || xen_events_irq < 0)
@@ -303,7 +298,7 @@ static int __init xen_init_events(void)
303 return -EINVAL; 298 return -EINVAL;
304 } 299 }
305 300
306 on_each_cpu(xen_percpu_enable_events, NULL, 0); 301 on_each_cpu(xen_percpu_init, NULL, 0);
307 302
308 return 0; 303 return 0;
309} 304}
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 48347dcf0566..56b3f6d447ae 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -122,8 +122,6 @@ endmenu
122 122
123menu "Kernel Features" 123menu "Kernel Features"
124 124
125source "kernel/time/Kconfig"
126
127config ARM64_64K_PAGES 125config ARM64_64K_PAGES
128 bool "Enable 64KB pages support" 126 bool "Enable 64KB pages support"
129 help 127 help
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index c8eedc604984..5aceb83b3f5c 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -82,7 +82,7 @@
82 82
83 .macro enable_dbg_if_not_stepping, tmp 83 .macro enable_dbg_if_not_stepping, tmp
84 mrs \tmp, mdscr_el1 84 mrs \tmp, mdscr_el1
85 tbnz \tmp, #1, 9990f 85 tbnz \tmp, #0, 9990f
86 enable_dbg 86 enable_dbg
879990: 879990:
88 .endm 88 .endm
diff --git a/arch/arm64/kernel/arm64ksyms.c b/arch/arm64/kernel/arm64ksyms.c
index 7df1aad29b67..41b4f626d554 100644
--- a/arch/arm64/kernel/arm64ksyms.c
+++ b/arch/arm64/kernel/arm64ksyms.c
@@ -34,6 +34,7 @@ EXPORT_SYMBOL(__strnlen_user);
34EXPORT_SYMBOL(__strncpy_from_user); 34EXPORT_SYMBOL(__strncpy_from_user);
35 35
36EXPORT_SYMBOL(copy_page); 36EXPORT_SYMBOL(copy_page);
37EXPORT_SYMBOL(clear_page);
37 38
38EXPORT_SYMBOL(__copy_from_user); 39EXPORT_SYMBOL(__copy_from_user);
39EXPORT_SYMBOL(__copy_to_user); 40EXPORT_SYMBOL(__copy_to_user);
diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index 0c3ba9f51376..f4726dc054b3 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -136,8 +136,6 @@ void disable_debug_monitors(enum debug_el el)
136 */ 136 */
137static void clear_os_lock(void *unused) 137static void clear_os_lock(void *unused)
138{ 138{
139 asm volatile("msr mdscr_el1, %0" : : "r" (0));
140 isb();
141 asm volatile("msr oslar_el1, %0" : : "r" (0)); 139 asm volatile("msr oslar_el1, %0" : : "r" (0));
142 isb(); 140 isb();
143} 141}
diff --git a/arch/arm64/kernel/early_printk.c b/arch/arm64/kernel/early_printk.c
index ac974f48a7a2..fbb6e1843659 100644
--- a/arch/arm64/kernel/early_printk.c
+++ b/arch/arm64/kernel/early_printk.c
@@ -95,7 +95,7 @@ static void early_write(struct console *con, const char *s, unsigned n)
95 } 95 }
96} 96}
97 97
98static struct console early_console = { 98static struct console early_console_dev = {
99 .name = "earlycon", 99 .name = "earlycon",
100 .write = early_write, 100 .write = early_write,
101 .flags = CON_PRINTBUFFER | CON_BOOT, 101 .flags = CON_PRINTBUFFER | CON_BOOT,
@@ -145,7 +145,8 @@ static int __init setup_early_printk(char *buf)
145 early_base = early_io_map(paddr, EARLYCON_IOBASE); 145 early_base = early_io_map(paddr, EARLYCON_IOBASE);
146 146
147 printch = match->printch; 147 printch = match->printch;
148 register_console(&early_console); 148 early_console = &early_console_dev;
149 register_console(&early_console_dev);
149 150
150 return 0; 151 return 0;
151} 152}
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index c7e047049f2c..1d1314280a03 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -390,6 +390,16 @@ el0_sync_compat:
390 b.eq el0_fpsimd_exc 390 b.eq el0_fpsimd_exc
391 cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0 391 cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0
392 b.eq el0_undef 392 b.eq el0_undef
393 cmp x24, #ESR_EL1_EC_CP15_32 // CP15 MRC/MCR trap
394 b.eq el0_undef
395 cmp x24, #ESR_EL1_EC_CP15_64 // CP15 MRRC/MCRR trap
396 b.eq el0_undef
397 cmp x24, #ESR_EL1_EC_CP14_MR // CP14 MRC/MCR trap
398 b.eq el0_undef
399 cmp x24, #ESR_EL1_EC_CP14_LS // CP14 LDC/STC trap
400 b.eq el0_undef
401 cmp x24, #ESR_EL1_EC_CP14_64 // CP14 MRRC/MCRR trap
402 b.eq el0_undef
393 cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0 403 cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0
394 b.ge el0_dbg 404 b.ge el0_dbg
395 b el0_inv 405 b el0_inv
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 6a9a53292590..add6ea616843 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -282,12 +282,13 @@ void __init setup_arch(char **cmdline_p)
282#endif 282#endif
283} 283}
284 284
285static int __init arm64_of_clk_init(void) 285static int __init arm64_device_init(void)
286{ 286{
287 of_clk_init(NULL); 287 of_clk_init(NULL);
288 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
288 return 0; 289 return 0;
289} 290}
290arch_initcall(arm64_of_clk_init); 291arch_initcall(arm64_device_init);
291 292
292static DEFINE_PER_CPU(struct cpu, cpu_data); 293static DEFINE_PER_CPU(struct cpu, cpu_data);
293 294
@@ -305,13 +306,6 @@ static int __init topology_init(void)
305} 306}
306subsys_initcall(topology_init); 307subsys_initcall(topology_init);
307 308
308static int __init arm64_device_probe(void)
309{
310 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
311 return 0;
312}
313device_initcall(arm64_device_probe);
314
315static const char *hwcap_str[] = { 309static const char *hwcap_str[] = {
316 "fp", 310 "fp",
317 "asimd", 311 "asimd",
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index 61d7dd29f756..f30852d28590 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -267,7 +267,8 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
267 return; 267 return;
268#endif 268#endif
269 269
270 if (show_unhandled_signals) { 270 if (show_unhandled_signals && unhandled_signal(current, SIGILL) &&
271 printk_ratelimit()) {
271 pr_info("%s[%d]: undefined instruction: pc=%p\n", 272 pr_info("%s[%d]: undefined instruction: pc=%p\n",
272 current->comm, task_pid_nr(current), pc); 273 current->comm, task_pid_nr(current), pc);
273 dump_instr(KERN_INFO, regs); 274 dump_instr(KERN_INFO, regs);
@@ -294,7 +295,7 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs)
294 } 295 }
295#endif 296#endif
296 297
297 if (show_unhandled_signals) { 298 if (show_unhandled_signals && printk_ratelimit()) {
298 pr_info("%s[%d]: syscall %d\n", current->comm, 299 pr_info("%s[%d]: syscall %d\n", current->comm,
299 task_pid_nr(current), (int)regs->syscallno); 300 task_pid_nr(current), (int)regs->syscallno);
300 dump_instr("", regs); 301 dump_instr("", regs);
@@ -310,14 +311,20 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs)
310 */ 311 */
311asmlinkage void bad_mode(struct pt_regs *regs, int reason, unsigned int esr) 312asmlinkage void bad_mode(struct pt_regs *regs, int reason, unsigned int esr)
312{ 313{
314 siginfo_t info;
315 void __user *pc = (void __user *)instruction_pointer(regs);
313 console_verbose(); 316 console_verbose();
314 317
315 pr_crit("Bad mode in %s handler detected, code 0x%08x\n", 318 pr_crit("Bad mode in %s handler detected, code 0x%08x\n",
316 handler[reason], esr); 319 handler[reason], esr);
320 __show_regs(regs);
321
322 info.si_signo = SIGILL;
323 info.si_errno = 0;
324 info.si_code = ILL_ILLOPC;
325 info.si_addr = pc;
317 326
318 die("Oops - bad mode", regs, 0); 327 arm64_notify_die("Oops - bad mode", regs, &info, 0);
319 local_irq_disable();
320 panic("bad mode");
321} 328}
322 329
323void __pte_error(const char *file, int line, unsigned long val) 330void __pte_error(const char *file, int line, unsigned long val)
diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
index abe69b80cf7f..48a386094fa3 100644
--- a/arch/arm64/mm/cache.S
+++ b/arch/arm64/mm/cache.S
@@ -52,7 +52,7 @@ loop1:
52 add x2, x2, #4 // add 4 (line length offset) 52 add x2, x2, #4 // add 4 (line length offset)
53 mov x4, #0x3ff 53 mov x4, #0x3ff
54 and x4, x4, x1, lsr #3 // find maximum number on the way size 54 and x4, x4, x1, lsr #3 // find maximum number on the way size
55 clz x5, x4 // find bit position of way size increment 55 clz w5, w4 // find bit position of way size increment
56 mov x7, #0x7fff 56 mov x7, #0x7fff
57 and x7, x7, x1, lsr #13 // extract max number of the index size 57 and x7, x7, x1, lsr #13 // extract max number of the index size
58loop2: 58loop2:
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 98af6e760cce..1426468b77f3 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -113,7 +113,8 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr,
113{ 113{
114 struct siginfo si; 114 struct siginfo si;
115 115
116 if (show_unhandled_signals) { 116 if (show_unhandled_signals && unhandled_signal(tsk, sig) &&
117 printk_ratelimit()) {
117 pr_info("%s[%d]: unhandled %s (%d) at 0x%08lx, esr 0x%03x\n", 118 pr_info("%s[%d]: unhandled %s (%d) at 0x%08lx, esr 0x%03x\n",
118 tsk->comm, task_pid_nr(tsk), fault_name(esr), sig, 119 tsk->comm, task_pid_nr(tsk), fault_name(esr), sig,
119 addr, esr); 120 addr, esr);
diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index f1d8b9bbfdad..a82ae8868077 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -119,8 +119,7 @@ ENTRY(__cpu_setup)
119 119
120 mov x0, #3 << 20 120 mov x0, #3 << 20
121 msr cpacr_el1, x0 // Enable FP/ASIMD 121 msr cpacr_el1, x0 // Enable FP/ASIMD
122 mov x0, #1 122 msr mdscr_el1, xzr // Reset mdscr_el1
123 msr oslar_el1, x0 // Set the debug OS lock
124 tlbi vmalle1is // invalidate I + D TLBs 123 tlbi vmalle1is // invalidate I + D TLBs
125 /* 124 /*
126 * Memory region attributes for LPAE: 125 * Memory region attributes for LPAE:
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index bdc35589277f..549903cfc2cb 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -205,6 +205,11 @@ config ARCH_DISCONTIGMEM_ENABLE
205config ARCH_SPARSEMEM_ENABLE 205config ARCH_SPARSEMEM_ENABLE
206 def_bool n 206 def_bool n
207 207
208config NODES_SHIFT
209 int
210 default "2"
211 depends on NEED_MULTIPLE_NODES
212
208source "mm/Kconfig" 213source "mm/Kconfig"
209 214
210config OWNERSHIP_TRACE 215config OWNERSHIP_TRACE
diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild
index 4dd4f78d3dcc..d22af851f3f6 100644
--- a/arch/avr32/include/asm/Kbuild
+++ b/arch/avr32/include/asm/Kbuild
@@ -2,3 +2,4 @@
2generic-y += clkdev.h 2generic-y += clkdev.h
3generic-y += exec.h 3generic-y += exec.h
4generic-y += trace_clock.h 4generic-y += trace_clock.h
5generic-y += param.h
diff --git a/arch/avr32/include/asm/numnodes.h b/arch/avr32/include/asm/numnodes.h
deleted file mode 100644
index 0b864d7ce330..000000000000
--- a/arch/avr32/include/asm/numnodes.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef __ASM_AVR32_NUMNODES_H
2#define __ASM_AVR32_NUMNODES_H
3
4/* Max 4 nodes */
5#define NODES_SHIFT 2
6
7#endif /* __ASM_AVR32_NUMNODES_H */
diff --git a/arch/avr32/include/asm/param.h b/arch/avr32/include/asm/param.h
deleted file mode 100644
index 009a167aea1f..000000000000
--- a/arch/avr32/include/asm/param.h
+++ /dev/null
@@ -1,9 +0,0 @@
1#ifndef __ASM_AVR32_PARAM_H
2#define __ASM_AVR32_PARAM_H
3
4#include <uapi/asm/param.h>
5
6# define HZ CONFIG_HZ
7# define USER_HZ 100 /* User interfaces are in "ticks" */
8# define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */
9#endif /* __ASM_AVR32_PARAM_H */
diff --git a/arch/avr32/include/uapi/asm/Kbuild b/arch/avr32/include/uapi/asm/Kbuild
index df53e7a46774..3b85eaddf525 100644
--- a/arch/avr32/include/uapi/asm/Kbuild
+++ b/arch/avr32/include/uapi/asm/Kbuild
@@ -33,3 +33,4 @@ header-y += termbits.h
33header-y += termios.h 33header-y += termios.h
34header-y += types.h 34header-y += types.h
35header-y += unistd.h 35header-y += unistd.h
36generic-y += param.h
diff --git a/arch/avr32/include/uapi/asm/param.h b/arch/avr32/include/uapi/asm/param.h
deleted file mode 100644
index d28aa5ee6d37..000000000000
--- a/arch/avr32/include/uapi/asm/param.h
+++ /dev/null
@@ -1,18 +0,0 @@
1#ifndef _UAPI__ASM_AVR32_PARAM_H
2#define _UAPI__ASM_AVR32_PARAM_H
3
4
5#ifndef HZ
6# define HZ 100
7#endif
8
9/* TODO: Should be configurable */
10#define EXEC_PAGESIZE 4096
11
12#ifndef NOGROUP
13# define NOGROUP (-1)
14#endif
15
16#define MAXHOSTNAMELEN 64
17
18#endif /* _UAPI__ASM_AVR32_PARAM_H */
diff --git a/arch/avr32/kernel/module.c b/arch/avr32/kernel/module.c
index 596f7305d93f..2c9412908024 100644
--- a/arch/avr32/kernel/module.c
+++ b/arch/avr32/kernel/module.c
@@ -264,7 +264,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
264 break; 264 break;
265 case R_AVR32_GOT18SW: 265 case R_AVR32_GOT18SW:
266 if ((relocation & 0xfffe0003) != 0 266 if ((relocation & 0xfffe0003) != 0
267 && (relocation & 0xfffc0003) != 0xffff0000) 267 && (relocation & 0xfffc0000) != 0xfffc0000)
268 return reloc_overflow(module, "R_AVR32_GOT18SW", 268 return reloc_overflow(module, "R_AVR32_GOT18SW",
269 relocation); 269 relocation);
270 relocation >>= 2; 270 relocation >>= 2;
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 90d3109c82f4..19325e117eea 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_defconfig
@@ -1,55 +1,78 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-amiga" 1CONFIG_LOCALVERSION="-amiga"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_AMIGA=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_ATARI_PARTITION=y
18CONFIG_MAC_PARTITION=y
19CONFIG_BSD_DISKLABEL=y
20CONFIG_MINIX_SUBPARTITION=y
21CONFIG_SOLARIS_X86_PARTITION=y
22CONFIG_UNIXWARE_DISKLABEL=y
23CONFIG_SUN_PARTITION=y
24# CONFIG_EFI_PARTITION is not set
25CONFIG_SYSV68_PARTITION=y
26CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68020=y 27CONFIG_M68020=y
15CONFIG_M68030=y 28CONFIG_M68030=y
16CONFIG_M68040=y 29CONFIG_M68040=y
17CONFIG_M68060=y 30CONFIG_M68060=y
18CONFIG_BINFMT_AOUT=m 31CONFIG_AMIGA=y
19CONFIG_BINFMT_MISC=m
20CONFIG_ZORRO=y 32CONFIG_ZORRO=y
21CONFIG_AMIGA_PCMCIA=y 33CONFIG_AMIGA_PCMCIA=y
22CONFIG_HEARTBEAT=y
23CONFIG_PROC_HARDWARE=y
24CONFIG_ZORRO_NAMES=y 34CONFIG_ZORRO_NAMES=y
35# CONFIG_COMPACTION is not set
36CONFIG_CLEANCACHE=y
37# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
38CONFIG_BINFMT_AOUT=m
39CONFIG_BINFMT_MISC=m
25CONFIG_NET=y 40CONFIG_NET=y
26CONFIG_PACKET=y 41CONFIG_PACKET=y
42CONFIG_PACKET_DIAG=m
27CONFIG_UNIX=y 43CONFIG_UNIX=y
44CONFIG_UNIX_DIAG=m
45CONFIG_XFRM_MIGRATE=y
28CONFIG_NET_KEY=y 46CONFIG_NET_KEY=y
29CONFIG_NET_KEY_MIGRATE=y
30CONFIG_INET=y 47CONFIG_INET=y
31CONFIG_IP_PNP=y 48CONFIG_IP_PNP=y
49CONFIG_IP_PNP_DHCP=y
50CONFIG_IP_PNP_BOOTP=y
51CONFIG_IP_PNP_RARP=y
32CONFIG_NET_IPIP=m 52CONFIG_NET_IPIP=m
53CONFIG_NET_IPGRE_DEMUX=m
33CONFIG_NET_IPGRE=m 54CONFIG_NET_IPGRE=m
34CONFIG_SYN_COOKIES=y 55CONFIG_SYN_COOKIES=y
56CONFIG_NET_IPVTI=m
35CONFIG_INET_AH=m 57CONFIG_INET_AH=m
36CONFIG_INET_ESP=m 58CONFIG_INET_ESP=m
37CONFIG_INET_IPCOMP=m 59CONFIG_INET_IPCOMP=m
38CONFIG_INET_XFRM_MODE_TRANSPORT=m 60CONFIG_INET_XFRM_MODE_TRANSPORT=m
39CONFIG_INET_XFRM_MODE_TUNNEL=m 61CONFIG_INET_XFRM_MODE_TUNNEL=m
40CONFIG_INET_XFRM_MODE_BEET=m 62CONFIG_INET_XFRM_MODE_BEET=m
63# CONFIG_INET_LRO is not set
41CONFIG_INET_DIAG=m 64CONFIG_INET_DIAG=m
65CONFIG_INET_UDP_DIAG=m
42CONFIG_IPV6_PRIVACY=y 66CONFIG_IPV6_PRIVACY=y
43CONFIG_IPV6_ROUTER_PREF=y 67CONFIG_IPV6_ROUTER_PREF=y
44CONFIG_IPV6_ROUTE_INFO=y
45CONFIG_INET6_AH=m 68CONFIG_INET6_AH=m
46CONFIG_INET6_ESP=m 69CONFIG_INET6_ESP=m
47CONFIG_INET6_IPCOMP=m 70CONFIG_INET6_IPCOMP=m
48CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 71CONFIG_IPV6_GRE=m
49CONFIG_IPV6_TUNNEL=m
50CONFIG_NETFILTER=y 72CONFIG_NETFILTER=y
51CONFIG_NETFILTER_NETLINK_QUEUE=m
52CONFIG_NF_CONNTRACK=m 73CONFIG_NF_CONNTRACK=m
74CONFIG_NF_CONNTRACK_ZONES=y
75# CONFIG_NF_CONNTRACK_PROCFS is not set
53# CONFIG_NF_CT_PROTO_DCCP is not set 76# CONFIG_NF_CT_PROTO_DCCP is not set
54CONFIG_NF_CT_PROTO_UDPLITE=m 77CONFIG_NF_CT_PROTO_UDPLITE=m
55CONFIG_NF_CONNTRACK_AMANDA=m 78CONFIG_NF_CONNTRACK_AMANDA=m
@@ -57,25 +80,37 @@ CONFIG_NF_CONNTRACK_FTP=m
57CONFIG_NF_CONNTRACK_H323=m 80CONFIG_NF_CONNTRACK_H323=m
58CONFIG_NF_CONNTRACK_IRC=m 81CONFIG_NF_CONNTRACK_IRC=m
59CONFIG_NF_CONNTRACK_NETBIOS_NS=m 82CONFIG_NF_CONNTRACK_NETBIOS_NS=m
83CONFIG_NF_CONNTRACK_SNMP=m
60CONFIG_NF_CONNTRACK_PPTP=m 84CONFIG_NF_CONNTRACK_PPTP=m
61CONFIG_NF_CONNTRACK_SANE=m 85CONFIG_NF_CONNTRACK_SANE=m
62CONFIG_NF_CONNTRACK_SIP=m 86CONFIG_NF_CONNTRACK_SIP=m
63CONFIG_NF_CONNTRACK_TFTP=m 87CONFIG_NF_CONNTRACK_TFTP=m
88CONFIG_NETFILTER_XT_SET=m
89CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
64CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 90CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
65CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 91CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
66CONFIG_NETFILTER_XT_TARGET_DSCP=m 92CONFIG_NETFILTER_XT_TARGET_DSCP=m
93CONFIG_NETFILTER_XT_TARGET_HMARK=m
94CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
95CONFIG_NETFILTER_XT_TARGET_LOG=m
67CONFIG_NETFILTER_XT_TARGET_MARK=m 96CONFIG_NETFILTER_XT_TARGET_MARK=m
68CONFIG_NETFILTER_XT_TARGET_NFLOG=m 97CONFIG_NETFILTER_XT_TARGET_NFLOG=m
69CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 98CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
99CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
100CONFIG_NETFILTER_XT_TARGET_TEE=m
70CONFIG_NETFILTER_XT_TARGET_TRACE=m 101CONFIG_NETFILTER_XT_TARGET_TRACE=m
71CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 102CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
72CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 103CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
104CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
105CONFIG_NETFILTER_XT_MATCH_BPF=m
73CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 106CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
74CONFIG_NETFILTER_XT_MATCH_COMMENT=m 107CONFIG_NETFILTER_XT_MATCH_COMMENT=m
75CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 108CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
109CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
76CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 110CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
77CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 111CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
78CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 112CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
113CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
79CONFIG_NETFILTER_XT_MATCH_DSCP=m 114CONFIG_NETFILTER_XT_MATCH_DSCP=m
80CONFIG_NETFILTER_XT_MATCH_ESP=m 115CONFIG_NETFILTER_XT_MATCH_ESP=m
81CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 116CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -86,6 +121,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
86CONFIG_NETFILTER_XT_MATCH_MAC=m 121CONFIG_NETFILTER_XT_MATCH_MAC=m
87CONFIG_NETFILTER_XT_MATCH_MARK=m 122CONFIG_NETFILTER_XT_MATCH_MARK=m
88CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 123CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
124CONFIG_NETFILTER_XT_MATCH_NFACCT=m
125CONFIG_NETFILTER_XT_MATCH_OSF=m
89CONFIG_NETFILTER_XT_MATCH_OWNER=m 126CONFIG_NETFILTER_XT_MATCH_OWNER=m
90CONFIG_NETFILTER_XT_MATCH_POLICY=m 127CONFIG_NETFILTER_XT_MATCH_POLICY=m
91CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 128CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -99,22 +136,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
99CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 136CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
100CONFIG_NETFILTER_XT_MATCH_TIME=m 137CONFIG_NETFILTER_XT_MATCH_TIME=m
101CONFIG_NETFILTER_XT_MATCH_U32=m 138CONFIG_NETFILTER_XT_MATCH_U32=m
139CONFIG_IP_SET=m
140CONFIG_IP_SET_BITMAP_IP=m
141CONFIG_IP_SET_BITMAP_IPMAC=m
142CONFIG_IP_SET_BITMAP_PORT=m
143CONFIG_IP_SET_HASH_IP=m
144CONFIG_IP_SET_HASH_IPPORT=m
145CONFIG_IP_SET_HASH_IPPORTIP=m
146CONFIG_IP_SET_HASH_IPPORTNET=m
147CONFIG_IP_SET_HASH_NET=m
148CONFIG_IP_SET_HASH_NETPORT=m
149CONFIG_IP_SET_HASH_NETIFACE=m
150CONFIG_IP_SET_LIST_SET=m
102CONFIG_NF_CONNTRACK_IPV4=m 151CONFIG_NF_CONNTRACK_IPV4=m
103CONFIG_IP_NF_QUEUE=m
104CONFIG_IP_NF_IPTABLES=m 152CONFIG_IP_NF_IPTABLES=m
105CONFIG_IP_NF_MATCH_ADDRTYPE=m
106CONFIG_IP_NF_MATCH_AH=m 153CONFIG_IP_NF_MATCH_AH=m
107CONFIG_IP_NF_MATCH_ECN=m 154CONFIG_IP_NF_MATCH_ECN=m
155CONFIG_IP_NF_MATCH_RPFILTER=m
108CONFIG_IP_NF_MATCH_TTL=m 156CONFIG_IP_NF_MATCH_TTL=m
109CONFIG_IP_NF_FILTER=m 157CONFIG_IP_NF_FILTER=m
110CONFIG_IP_NF_TARGET_REJECT=m 158CONFIG_IP_NF_TARGET_REJECT=m
111CONFIG_IP_NF_TARGET_LOG=m
112CONFIG_IP_NF_TARGET_ULOG=m 159CONFIG_IP_NF_TARGET_ULOG=m
113CONFIG_NF_NAT=m 160CONFIG_NF_NAT_IPV4=m
114CONFIG_IP_NF_TARGET_MASQUERADE=m 161CONFIG_IP_NF_TARGET_MASQUERADE=m
115CONFIG_IP_NF_TARGET_NETMAP=m 162CONFIG_IP_NF_TARGET_NETMAP=m
116CONFIG_IP_NF_TARGET_REDIRECT=m 163CONFIG_IP_NF_TARGET_REDIRECT=m
117CONFIG_NF_NAT_SNMP_BASIC=m
118CONFIG_IP_NF_MANGLE=m 164CONFIG_IP_NF_MANGLE=m
119CONFIG_IP_NF_TARGET_CLUSTERIP=m 165CONFIG_IP_NF_TARGET_CLUSTERIP=m
120CONFIG_IP_NF_TARGET_ECN=m 166CONFIG_IP_NF_TARGET_ECN=m
@@ -124,7 +170,6 @@ CONFIG_IP_NF_ARPTABLES=m
124CONFIG_IP_NF_ARPFILTER=m 170CONFIG_IP_NF_ARPFILTER=m
125CONFIG_IP_NF_ARP_MANGLE=m 171CONFIG_IP_NF_ARP_MANGLE=m
126CONFIG_NF_CONNTRACK_IPV6=m 172CONFIG_NF_CONNTRACK_IPV6=m
127CONFIG_IP6_NF_QUEUE=m
128CONFIG_IP6_NF_IPTABLES=m 173CONFIG_IP6_NF_IPTABLES=m
129CONFIG_IP6_NF_MATCH_AH=m 174CONFIG_IP6_NF_MATCH_AH=m
130CONFIG_IP6_NF_MATCH_EUI64=m 175CONFIG_IP6_NF_MATCH_EUI64=m
@@ -133,18 +178,30 @@ CONFIG_IP6_NF_MATCH_OPTS=m
133CONFIG_IP6_NF_MATCH_HL=m 178CONFIG_IP6_NF_MATCH_HL=m
134CONFIG_IP6_NF_MATCH_IPV6HEADER=m 179CONFIG_IP6_NF_MATCH_IPV6HEADER=m
135CONFIG_IP6_NF_MATCH_MH=m 180CONFIG_IP6_NF_MATCH_MH=m
181CONFIG_IP6_NF_MATCH_RPFILTER=m
136CONFIG_IP6_NF_MATCH_RT=m 182CONFIG_IP6_NF_MATCH_RT=m
137CONFIG_IP6_NF_TARGET_HL=m 183CONFIG_IP6_NF_TARGET_HL=m
138CONFIG_IP6_NF_TARGET_LOG=m
139CONFIG_IP6_NF_FILTER=m 184CONFIG_IP6_NF_FILTER=m
140CONFIG_IP6_NF_TARGET_REJECT=m 185CONFIG_IP6_NF_TARGET_REJECT=m
141CONFIG_IP6_NF_MANGLE=m 186CONFIG_IP6_NF_MANGLE=m
142CONFIG_IP6_NF_RAW=m 187CONFIG_IP6_NF_RAW=m
188CONFIG_NF_NAT_IPV6=m
189CONFIG_IP6_NF_TARGET_MASQUERADE=m
190CONFIG_IP6_NF_TARGET_NPT=m
143CONFIG_IP_DCCP=m 191CONFIG_IP_DCCP=m
144# CONFIG_IP_DCCP_CCID3 is not set 192# CONFIG_IP_DCCP_CCID3 is not set
193CONFIG_SCTP_COOKIE_HMAC_SHA1=y
194CONFIG_RDS=m
195CONFIG_RDS_TCP=m
196CONFIG_L2TP=m
145CONFIG_ATALK=m 197CONFIG_ATALK=m
198CONFIG_BATMAN_ADV=m
199CONFIG_BATMAN_ADV_DAT=y
200# CONFIG_WIRELESS is not set
146CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 201CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
202CONFIG_DEVTMPFS=y
147# CONFIG_FIRMWARE_IN_KERNEL is not set 203# CONFIG_FIRMWARE_IN_KERNEL is not set
204# CONFIG_FW_LOADER_USER_HELPER is not set
148CONFIG_CONNECTOR=m 205CONFIG_CONNECTOR=m
149CONFIG_PARPORT=m 206CONFIG_PARPORT=m
150CONFIG_PARPORT_AMIGA=m 207CONFIG_PARPORT_AMIGA=m
@@ -154,11 +211,13 @@ CONFIG_AMIGA_FLOPPY=y
154CONFIG_AMIGA_Z2RAM=y 211CONFIG_AMIGA_Z2RAM=y
155CONFIG_BLK_DEV_LOOP=y 212CONFIG_BLK_DEV_LOOP=y
156CONFIG_BLK_DEV_CRYPTOLOOP=m 213CONFIG_BLK_DEV_CRYPTOLOOP=m
214CONFIG_BLK_DEV_DRBD=m
157CONFIG_BLK_DEV_NBD=m 215CONFIG_BLK_DEV_NBD=m
158CONFIG_BLK_DEV_RAM=y 216CONFIG_BLK_DEV_RAM=y
159CONFIG_CDROM_PKTCDVD=m 217CONFIG_CDROM_PKTCDVD=m
160CONFIG_ATA_OVER_ETH=m 218CONFIG_ATA_OVER_ETH=m
161CONFIG_IDE=y 219CONFIG_IDE=y
220CONFIG_IDE_GD_ATAPI=y
162CONFIG_BLK_DEV_IDECD=y 221CONFIG_BLK_DEV_IDECD=y
163CONFIG_BLK_DEV_GAYLE=y 222CONFIG_BLK_DEV_GAYLE=y
164CONFIG_BLK_DEV_BUDDHA=y 223CONFIG_BLK_DEV_BUDDHA=y
@@ -172,57 +231,77 @@ CONFIG_BLK_DEV_SR=y
172CONFIG_BLK_DEV_SR_VENDOR=y 231CONFIG_BLK_DEV_SR_VENDOR=y
173CONFIG_CHR_DEV_SG=m 232CONFIG_CHR_DEV_SG=m
174CONFIG_SCSI_CONSTANTS=y 233CONFIG_SCSI_CONSTANTS=y
175CONFIG_SCSI_SAS_LIBSAS=m 234CONFIG_SCSI_SAS_ATTRS=m
176# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
177CONFIG_SCSI_SRP_ATTRS=m
178CONFIG_SCSI_SRP_TGT_ATTRS=y
179CONFIG_ISCSI_TCP=m 235CONFIG_ISCSI_TCP=m
236CONFIG_ISCSI_BOOT_SYSFS=m
180CONFIG_A3000_SCSI=y 237CONFIG_A3000_SCSI=y
181CONFIG_A2091_SCSI=y 238CONFIG_A2091_SCSI=y
182CONFIG_GVP11_SCSI=y 239CONFIG_GVP11_SCSI=y
183CONFIG_SCSI_A4000T=y 240CONFIG_SCSI_A4000T=y
184CONFIG_SCSI_ZORRO7XX=y 241CONFIG_SCSI_ZORRO7XX=y
185CONFIG_MD=y 242CONFIG_MD=y
186CONFIG_BLK_DEV_MD=m
187CONFIG_MD_LINEAR=m 243CONFIG_MD_LINEAR=m
188CONFIG_MD_RAID0=m 244CONFIG_MD_RAID0=m
189CONFIG_MD_RAID1=m
190CONFIG_MD_RAID456=m
191CONFIG_BLK_DEV_DM=m 245CONFIG_BLK_DEV_DM=m
192CONFIG_DM_CRYPT=m 246CONFIG_DM_CRYPT=m
193CONFIG_DM_SNAPSHOT=m 247CONFIG_DM_SNAPSHOT=m
248CONFIG_DM_THIN_PROVISIONING=m
249CONFIG_DM_CACHE=m
194CONFIG_DM_MIRROR=m 250CONFIG_DM_MIRROR=m
251CONFIG_DM_RAID=m
195CONFIG_DM_ZERO=m 252CONFIG_DM_ZERO=m
196CONFIG_DM_MULTIPATH=m 253CONFIG_DM_MULTIPATH=m
197CONFIG_DM_UEVENT=y 254CONFIG_DM_UEVENT=y
255CONFIG_TARGET_CORE=m
256CONFIG_TCM_IBLOCK=m
257CONFIG_TCM_FILEIO=m
258CONFIG_TCM_PSCSI=m
198CONFIG_NETDEVICES=y 259CONFIG_NETDEVICES=y
199CONFIG_DUMMY=m 260CONFIG_DUMMY=m
200CONFIG_MACVLAN=m
201CONFIG_EQUALIZER=m 261CONFIG_EQUALIZER=m
262CONFIG_NET_TEAM=m
263CONFIG_NET_TEAM_MODE_BROADCAST=m
264CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
265CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
266CONFIG_NET_TEAM_MODE_LOADBALANCE=m
267CONFIG_VXLAN=m
268CONFIG_NETCONSOLE=m
269CONFIG_NETCONSOLE_DYNAMIC=y
202CONFIG_VETH=m 270CONFIG_VETH=m
203CONFIG_NET_ETHERNET=y 271# CONFIG_NET_VENDOR_3COM is not set
204CONFIG_ARIADNE=y
205CONFIG_A2065=y 272CONFIG_A2065=y
273CONFIG_ARIADNE=y
274# CONFIG_NET_CADENCE is not set
275# CONFIG_NET_VENDOR_BROADCOM is not set
276# CONFIG_NET_VENDOR_CIRRUS is not set
277# CONFIG_NET_VENDOR_FUJITSU is not set
278# CONFIG_NET_VENDOR_HP is not set
279# CONFIG_NET_VENDOR_INTEL is not set
280# CONFIG_NET_VENDOR_MARVELL is not set
281# CONFIG_NET_VENDOR_MICREL is not set
206CONFIG_HYDRA=y 282CONFIG_HYDRA=y
207CONFIG_ZORRO8390=y
208CONFIG_APNE=y 283CONFIG_APNE=y
209# CONFIG_NETDEV_1000 is not set 284CONFIG_ZORRO8390=y
210# CONFIG_NETDEV_10000 is not set 285# CONFIG_NET_VENDOR_SEEQ is not set
286# CONFIG_NET_VENDOR_SMSC is not set
287# CONFIG_NET_VENDOR_STMICRO is not set
288# CONFIG_NET_VENDOR_WIZNET is not set
211CONFIG_PPP=m 289CONFIG_PPP=m
212CONFIG_PPP_FILTER=y
213CONFIG_PPP_ASYNC=m
214CONFIG_PPP_SYNC_TTY=m
215CONFIG_PPP_DEFLATE=m
216CONFIG_PPP_BSDCOMP=m 290CONFIG_PPP_BSDCOMP=m
291CONFIG_PPP_DEFLATE=m
292CONFIG_PPP_FILTER=y
217CONFIG_PPP_MPPE=m 293CONFIG_PPP_MPPE=m
218CONFIG_PPPOE=m 294CONFIG_PPPOE=m
295CONFIG_PPTP=m
296CONFIG_PPPOL2TP=m
297CONFIG_PPP_ASYNC=m
298CONFIG_PPP_SYNC_TTY=m
219CONFIG_SLIP=m 299CONFIG_SLIP=m
220CONFIG_SLIP_COMPRESSED=y 300CONFIG_SLIP_COMPRESSED=y
221CONFIG_SLIP_SMART=y 301CONFIG_SLIP_SMART=y
222CONFIG_SLIP_MODE_SLIP6=y 302CONFIG_SLIP_MODE_SLIP6=y
223CONFIG_NETCONSOLE=m 303# CONFIG_WLAN is not set
224CONFIG_NETCONSOLE_DYNAMIC=y 304CONFIG_INPUT_EVDEV=m
225CONFIG_INPUT_FF_MEMLESS=m
226CONFIG_KEYBOARD_AMIGA=y 305CONFIG_KEYBOARD_AMIGA=y
227# CONFIG_KEYBOARD_ATKBD is not set 306# CONFIG_KEYBOARD_ATKBD is not set
228# CONFIG_MOUSE_PS2 is not set 307# CONFIG_MOUSE_PS2 is not set
@@ -233,11 +312,14 @@ CONFIG_INPUT_MISC=y
233CONFIG_INPUT_M68K_BEEP=m 312CONFIG_INPUT_M68K_BEEP=m
234# CONFIG_SERIO is not set 313# CONFIG_SERIO is not set
235CONFIG_VT_HW_CONSOLE_BINDING=y 314CONFIG_VT_HW_CONSOLE_BINDING=y
315# CONFIG_LEGACY_PTYS is not set
236# CONFIG_DEVKMEM is not set 316# CONFIG_DEVKMEM is not set
237CONFIG_PRINTER=m 317CONFIG_PRINTER=m
238# CONFIG_HW_RANDOM is not set 318# CONFIG_HW_RANDOM is not set
239CONFIG_GEN_RTC=m 319CONFIG_NTP_PPS=y
240CONFIG_GEN_RTC_X=y 320CONFIG_PPS_CLIENT_LDISC=m
321CONFIG_PPS_CLIENT_PARPORT=m
322CONFIG_PTP_1588_CLOCK=m
241# CONFIG_HWMON is not set 323# CONFIG_HWMON is not set
242CONFIG_FB=y 324CONFIG_FB=y
243CONFIG_FB_CIRRUS=y 325CONFIG_FB_CIRRUS=y
@@ -252,48 +334,64 @@ CONFIG_SOUND=m
252CONFIG_DMASOUND_PAULA=m 334CONFIG_DMASOUND_PAULA=m
253CONFIG_HID=m 335CONFIG_HID=m
254CONFIG_HIDRAW=y 336CONFIG_HIDRAW=y
337CONFIG_UHID=m
338# CONFIG_HID_GENERIC is not set
255# CONFIG_USB_SUPPORT is not set 339# CONFIG_USB_SUPPORT is not set
340CONFIG_RTC_CLASS=y
341CONFIG_RTC_DRV_MSM6242=m
342CONFIG_RTC_DRV_RP5C01=m
343# CONFIG_IOMMU_SUPPORT is not set
344CONFIG_HEARTBEAT=y
345CONFIG_PROC_HARDWARE=y
256CONFIG_AMIGA_BUILTIN_SERIAL=y 346CONFIG_AMIGA_BUILTIN_SERIAL=y
257CONFIG_SERIAL_CONSOLE=y 347CONFIG_SERIAL_CONSOLE=y
258CONFIG_EXT2_FS=y 348CONFIG_EXT2_FS=y
259CONFIG_EXT3_FS=y 349CONFIG_EXT3_FS=y
260# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 350# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
261# CONFIG_EXT3_FS_XATTR is not set 351# CONFIG_EXT3_FS_XATTR is not set
352CONFIG_EXT4_FS=y
262CONFIG_REISERFS_FS=m 353CONFIG_REISERFS_FS=m
263CONFIG_JFS_FS=m 354CONFIG_JFS_FS=m
264CONFIG_XFS_FS=m 355CONFIG_XFS_FS=m
265CONFIG_OCFS2_FS=m 356CONFIG_OCFS2_FS=m
266# CONFIG_OCFS2_FS_STATS is not set
267# CONFIG_OCFS2_DEBUG_MASKLOG is not set 357# CONFIG_OCFS2_DEBUG_MASKLOG is not set
358CONFIG_FANOTIFY=y
268CONFIG_QUOTA_NETLINK_INTERFACE=y 359CONFIG_QUOTA_NETLINK_INTERFACE=y
269# CONFIG_PRINT_QUOTA_WARNING is not set 360# CONFIG_PRINT_QUOTA_WARNING is not set
270CONFIG_AUTOFS_FS=m
271CONFIG_AUTOFS4_FS=m 361CONFIG_AUTOFS4_FS=m
272CONFIG_FUSE_FS=m 362CONFIG_FUSE_FS=m
363CONFIG_CUSE=m
273CONFIG_ISO9660_FS=y 364CONFIG_ISO9660_FS=y
274CONFIG_JOLIET=y 365CONFIG_JOLIET=y
275CONFIG_ZISOFS=y 366CONFIG_ZISOFS=y
276CONFIG_UDF_FS=m 367CONFIG_UDF_FS=m
277CONFIG_MSDOS_FS=y 368CONFIG_MSDOS_FS=m
278CONFIG_VFAT_FS=m 369CONFIG_VFAT_FS=m
279CONFIG_PROC_KCORE=y 370CONFIG_PROC_KCORE=y
280CONFIG_TMPFS=y 371CONFIG_TMPFS=y
281CONFIG_AFFS_FS=m 372CONFIG_AFFS_FS=m
373CONFIG_ECRYPT_FS=m
374CONFIG_ECRYPT_FS_MESSAGING=y
282CONFIG_HFS_FS=m 375CONFIG_HFS_FS=m
283CONFIG_HFSPLUS_FS=m 376CONFIG_HFSPLUS_FS=m
284CONFIG_CRAMFS=m 377CONFIG_CRAMFS=m
285CONFIG_SQUASHFS=m 378CONFIG_SQUASHFS=m
286CONFIG_MINIX_FS=y 379CONFIG_SQUASHFS_LZO=y
380CONFIG_MINIX_FS=m
381CONFIG_OMFS_FS=m
287CONFIG_HPFS_FS=m 382CONFIG_HPFS_FS=m
383CONFIG_QNX4FS_FS=m
384CONFIG_QNX6FS_FS=m
288CONFIG_SYSV_FS=m 385CONFIG_SYSV_FS=m
289CONFIG_UFS_FS=m 386CONFIG_UFS_FS=m
290CONFIG_NFS_FS=y 387CONFIG_NFS_FS=y
291CONFIG_NFS_V3=y
292CONFIG_NFS_V4=y 388CONFIG_NFS_V4=y
389CONFIG_NFS_SWAP=y
390CONFIG_ROOT_NFS=y
293CONFIG_NFSD=m 391CONFIG_NFSD=m
294CONFIG_NFSD_V3=y 392CONFIG_NFSD_V3=y
295CONFIG_SMB_FS=m 393CONFIG_CIFS=m
296CONFIG_SMB_NLS_DEFAULT=y 394# CONFIG_CIFS_DEBUG is not set
297CONFIG_CODA_FS=m 395CONFIG_CODA_FS=m
298CONFIG_NLS_CODEPAGE_437=y 396CONFIG_NLS_CODEPAGE_437=y
299CONFIG_NLS_CODEPAGE_737=m 397CONFIG_NLS_CODEPAGE_737=m
@@ -332,10 +430,23 @@ CONFIG_NLS_ISO8859_14=m
332CONFIG_NLS_ISO8859_15=m 430CONFIG_NLS_ISO8859_15=m
333CONFIG_NLS_KOI8_R=m 431CONFIG_NLS_KOI8_R=m
334CONFIG_NLS_KOI8_U=m 432CONFIG_NLS_KOI8_U=m
433CONFIG_NLS_MAC_ROMAN=m
434CONFIG_NLS_MAC_CELTIC=m
435CONFIG_NLS_MAC_CENTEURO=m
436CONFIG_NLS_MAC_CROATIAN=m
437CONFIG_NLS_MAC_CYRILLIC=m
438CONFIG_NLS_MAC_GAELIC=m
439CONFIG_NLS_MAC_GREEK=m
440CONFIG_NLS_MAC_ICELAND=m
441CONFIG_NLS_MAC_INUIT=m
442CONFIG_NLS_MAC_ROMANIAN=m
443CONFIG_NLS_MAC_TURKISH=m
335CONFIG_DLM=m 444CONFIG_DLM=m
336CONFIG_MAGIC_SYSRQ=y 445CONFIG_MAGIC_SYSRQ=y
337# CONFIG_RCU_CPU_STALL_DETECTOR is not set 446CONFIG_ASYNC_RAID6_TEST=m
338CONFIG_SYSCTL_SYSCALL_CHECK=y 447CONFIG_ENCRYPTED_KEYS=m
448CONFIG_CRYPTO_MANAGER=y
449CONFIG_CRYPTO_USER=m
339CONFIG_CRYPTO_NULL=m 450CONFIG_CRYPTO_NULL=m
340CONFIG_CRYPTO_CRYPTD=m 451CONFIG_CRYPTO_CRYPTD=m
341CONFIG_CRYPTO_TEST=m 452CONFIG_CRYPTO_TEST=m
@@ -345,19 +456,16 @@ CONFIG_CRYPTO_CTS=m
345CONFIG_CRYPTO_LRW=m 456CONFIG_CRYPTO_LRW=m
346CONFIG_CRYPTO_PCBC=m 457CONFIG_CRYPTO_PCBC=m
347CONFIG_CRYPTO_XTS=m 458CONFIG_CRYPTO_XTS=m
348CONFIG_CRYPTO_HMAC=y
349CONFIG_CRYPTO_XCBC=m 459CONFIG_CRYPTO_XCBC=m
350CONFIG_CRYPTO_MD4=m 460CONFIG_CRYPTO_VMAC=m
351CONFIG_CRYPTO_MICHAEL_MIC=m 461CONFIG_CRYPTO_MICHAEL_MIC=m
352CONFIG_CRYPTO_RMD128=m 462CONFIG_CRYPTO_RMD128=m
353CONFIG_CRYPTO_RMD160=m 463CONFIG_CRYPTO_RMD160=m
354CONFIG_CRYPTO_RMD256=m 464CONFIG_CRYPTO_RMD256=m
355CONFIG_CRYPTO_RMD320=m 465CONFIG_CRYPTO_RMD320=m
356CONFIG_CRYPTO_SHA256=m
357CONFIG_CRYPTO_SHA512=m 466CONFIG_CRYPTO_SHA512=m
358CONFIG_CRYPTO_TGR192=m 467CONFIG_CRYPTO_TGR192=m
359CONFIG_CRYPTO_WP512=m 468CONFIG_CRYPTO_WP512=m
360CONFIG_CRYPTO_AES=m
361CONFIG_CRYPTO_ANUBIS=m 469CONFIG_CRYPTO_ANUBIS=m
362CONFIG_CRYPTO_BLOWFISH=m 470CONFIG_CRYPTO_BLOWFISH=m
363CONFIG_CRYPTO_CAMELLIA=m 471CONFIG_CRYPTO_CAMELLIA=m
@@ -373,6 +481,14 @@ CONFIG_CRYPTO_TWOFISH=m
373CONFIG_CRYPTO_ZLIB=m 481CONFIG_CRYPTO_ZLIB=m
374CONFIG_CRYPTO_LZO=m 482CONFIG_CRYPTO_LZO=m
375# CONFIG_CRYPTO_ANSI_CPRNG is not set 483# CONFIG_CRYPTO_ANSI_CPRNG is not set
484CONFIG_CRYPTO_USER_API_HASH=m
485CONFIG_CRYPTO_USER_API_SKCIPHER=m
376# CONFIG_CRYPTO_HW is not set 486# CONFIG_CRYPTO_HW is not set
377CONFIG_CRC16=m
378CONFIG_CRC_T10DIF=y 487CONFIG_CRC_T10DIF=y
488CONFIG_XZ_DEC_X86=y
489CONFIG_XZ_DEC_POWERPC=y
490CONFIG_XZ_DEC_IA64=y
491CONFIG_XZ_DEC_ARM=y
492CONFIG_XZ_DEC_ARMTHUMB=y
493CONFIG_XZ_DEC_SPARC=y
494CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index 8f4f657fdbc6..14dc6ccda7f4 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_defconfig
@@ -1,55 +1,76 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-apollo" 1CONFIG_LOCALVERSION="-apollo"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_APOLLO=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_SYSV68_PARTITION=y
27CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68020=y 28CONFIG_M68020=y
15CONFIG_M68030=y 29CONFIG_M68030=y
16CONFIG_M68040=y 30CONFIG_M68040=y
17CONFIG_M68060=y 31CONFIG_M68060=y
32CONFIG_APOLLO=y
33# CONFIG_COMPACTION is not set
34CONFIG_CLEANCACHE=y
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
18CONFIG_BINFMT_AOUT=m 36CONFIG_BINFMT_AOUT=m
19CONFIG_BINFMT_MISC=m 37CONFIG_BINFMT_MISC=m
20CONFIG_HEARTBEAT=y
21CONFIG_PROC_HARDWARE=y
22CONFIG_NET=y 38CONFIG_NET=y
23CONFIG_PACKET=y 39CONFIG_PACKET=y
40CONFIG_PACKET_DIAG=m
24CONFIG_UNIX=y 41CONFIG_UNIX=y
42CONFIG_UNIX_DIAG=m
43CONFIG_XFRM_MIGRATE=y
25CONFIG_NET_KEY=y 44CONFIG_NET_KEY=y
26CONFIG_NET_KEY_MIGRATE=y
27CONFIG_INET=y 45CONFIG_INET=y
28CONFIG_IP_PNP=y 46CONFIG_IP_PNP=y
29CONFIG_IP_PNP_DHCP=y 47CONFIG_IP_PNP_DHCP=y
30CONFIG_IP_PNP_BOOTP=y 48CONFIG_IP_PNP_BOOTP=y
31CONFIG_IP_PNP_RARP=y 49CONFIG_IP_PNP_RARP=y
32CONFIG_NET_IPIP=m 50CONFIG_NET_IPIP=m
51CONFIG_NET_IPGRE_DEMUX=m
33CONFIG_NET_IPGRE=m 52CONFIG_NET_IPGRE=m
34CONFIG_SYN_COOKIES=y 53CONFIG_SYN_COOKIES=y
54CONFIG_NET_IPVTI=m
35CONFIG_INET_AH=m 55CONFIG_INET_AH=m
36CONFIG_INET_ESP=m 56CONFIG_INET_ESP=m
37CONFIG_INET_IPCOMP=m 57CONFIG_INET_IPCOMP=m
38CONFIG_INET_XFRM_MODE_TRANSPORT=m 58CONFIG_INET_XFRM_MODE_TRANSPORT=m
39CONFIG_INET_XFRM_MODE_TUNNEL=m 59CONFIG_INET_XFRM_MODE_TUNNEL=m
40CONFIG_INET_XFRM_MODE_BEET=m 60CONFIG_INET_XFRM_MODE_BEET=m
61# CONFIG_INET_LRO is not set
41CONFIG_INET_DIAG=m 62CONFIG_INET_DIAG=m
63CONFIG_INET_UDP_DIAG=m
42CONFIG_IPV6_PRIVACY=y 64CONFIG_IPV6_PRIVACY=y
43CONFIG_IPV6_ROUTER_PREF=y 65CONFIG_IPV6_ROUTER_PREF=y
44CONFIG_IPV6_ROUTE_INFO=y
45CONFIG_INET6_AH=m 66CONFIG_INET6_AH=m
46CONFIG_INET6_ESP=m 67CONFIG_INET6_ESP=m
47CONFIG_INET6_IPCOMP=m 68CONFIG_INET6_IPCOMP=m
48CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 69CONFIG_IPV6_GRE=m
49CONFIG_IPV6_TUNNEL=m
50CONFIG_NETFILTER=y 70CONFIG_NETFILTER=y
51CONFIG_NETFILTER_NETLINK_QUEUE=m
52CONFIG_NF_CONNTRACK=m 71CONFIG_NF_CONNTRACK=m
72CONFIG_NF_CONNTRACK_ZONES=y
73# CONFIG_NF_CONNTRACK_PROCFS is not set
53# CONFIG_NF_CT_PROTO_DCCP is not set 74# CONFIG_NF_CT_PROTO_DCCP is not set
54CONFIG_NF_CT_PROTO_UDPLITE=m 75CONFIG_NF_CT_PROTO_UDPLITE=m
55CONFIG_NF_CONNTRACK_AMANDA=m 76CONFIG_NF_CONNTRACK_AMANDA=m
@@ -57,25 +78,37 @@ CONFIG_NF_CONNTRACK_FTP=m
57CONFIG_NF_CONNTRACK_H323=m 78CONFIG_NF_CONNTRACK_H323=m
58CONFIG_NF_CONNTRACK_IRC=m 79CONFIG_NF_CONNTRACK_IRC=m
59CONFIG_NF_CONNTRACK_NETBIOS_NS=m 80CONFIG_NF_CONNTRACK_NETBIOS_NS=m
81CONFIG_NF_CONNTRACK_SNMP=m
60CONFIG_NF_CONNTRACK_PPTP=m 82CONFIG_NF_CONNTRACK_PPTP=m
61CONFIG_NF_CONNTRACK_SANE=m 83CONFIG_NF_CONNTRACK_SANE=m
62CONFIG_NF_CONNTRACK_SIP=m 84CONFIG_NF_CONNTRACK_SIP=m
63CONFIG_NF_CONNTRACK_TFTP=m 85CONFIG_NF_CONNTRACK_TFTP=m
86CONFIG_NETFILTER_XT_SET=m
87CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
64CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 88CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
65CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 89CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
66CONFIG_NETFILTER_XT_TARGET_DSCP=m 90CONFIG_NETFILTER_XT_TARGET_DSCP=m
91CONFIG_NETFILTER_XT_TARGET_HMARK=m
92CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
93CONFIG_NETFILTER_XT_TARGET_LOG=m
67CONFIG_NETFILTER_XT_TARGET_MARK=m 94CONFIG_NETFILTER_XT_TARGET_MARK=m
68CONFIG_NETFILTER_XT_TARGET_NFLOG=m 95CONFIG_NETFILTER_XT_TARGET_NFLOG=m
69CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 96CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
97CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
98CONFIG_NETFILTER_XT_TARGET_TEE=m
70CONFIG_NETFILTER_XT_TARGET_TRACE=m 99CONFIG_NETFILTER_XT_TARGET_TRACE=m
71CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 100CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
72CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 101CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
102CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
103CONFIG_NETFILTER_XT_MATCH_BPF=m
73CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 104CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
74CONFIG_NETFILTER_XT_MATCH_COMMENT=m 105CONFIG_NETFILTER_XT_MATCH_COMMENT=m
75CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 106CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
107CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
76CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 108CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
77CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 109CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
78CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 110CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
111CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
79CONFIG_NETFILTER_XT_MATCH_DSCP=m 112CONFIG_NETFILTER_XT_MATCH_DSCP=m
80CONFIG_NETFILTER_XT_MATCH_ESP=m 113CONFIG_NETFILTER_XT_MATCH_ESP=m
81CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 114CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -86,6 +119,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
86CONFIG_NETFILTER_XT_MATCH_MAC=m 119CONFIG_NETFILTER_XT_MATCH_MAC=m
87CONFIG_NETFILTER_XT_MATCH_MARK=m 120CONFIG_NETFILTER_XT_MATCH_MARK=m
88CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 121CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
122CONFIG_NETFILTER_XT_MATCH_NFACCT=m
123CONFIG_NETFILTER_XT_MATCH_OSF=m
89CONFIG_NETFILTER_XT_MATCH_OWNER=m 124CONFIG_NETFILTER_XT_MATCH_OWNER=m
90CONFIG_NETFILTER_XT_MATCH_POLICY=m 125CONFIG_NETFILTER_XT_MATCH_POLICY=m
91CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 126CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -99,22 +134,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
99CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 134CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
100CONFIG_NETFILTER_XT_MATCH_TIME=m 135CONFIG_NETFILTER_XT_MATCH_TIME=m
101CONFIG_NETFILTER_XT_MATCH_U32=m 136CONFIG_NETFILTER_XT_MATCH_U32=m
137CONFIG_IP_SET=m
138CONFIG_IP_SET_BITMAP_IP=m
139CONFIG_IP_SET_BITMAP_IPMAC=m
140CONFIG_IP_SET_BITMAP_PORT=m
141CONFIG_IP_SET_HASH_IP=m
142CONFIG_IP_SET_HASH_IPPORT=m
143CONFIG_IP_SET_HASH_IPPORTIP=m
144CONFIG_IP_SET_HASH_IPPORTNET=m
145CONFIG_IP_SET_HASH_NET=m
146CONFIG_IP_SET_HASH_NETPORT=m
147CONFIG_IP_SET_HASH_NETIFACE=m
148CONFIG_IP_SET_LIST_SET=m
102CONFIG_NF_CONNTRACK_IPV4=m 149CONFIG_NF_CONNTRACK_IPV4=m
103CONFIG_IP_NF_QUEUE=m
104CONFIG_IP_NF_IPTABLES=m 150CONFIG_IP_NF_IPTABLES=m
105CONFIG_IP_NF_MATCH_ADDRTYPE=m
106CONFIG_IP_NF_MATCH_AH=m 151CONFIG_IP_NF_MATCH_AH=m
107CONFIG_IP_NF_MATCH_ECN=m 152CONFIG_IP_NF_MATCH_ECN=m
153CONFIG_IP_NF_MATCH_RPFILTER=m
108CONFIG_IP_NF_MATCH_TTL=m 154CONFIG_IP_NF_MATCH_TTL=m
109CONFIG_IP_NF_FILTER=m 155CONFIG_IP_NF_FILTER=m
110CONFIG_IP_NF_TARGET_REJECT=m 156CONFIG_IP_NF_TARGET_REJECT=m
111CONFIG_IP_NF_TARGET_LOG=m
112CONFIG_IP_NF_TARGET_ULOG=m 157CONFIG_IP_NF_TARGET_ULOG=m
113CONFIG_NF_NAT=m 158CONFIG_NF_NAT_IPV4=m
114CONFIG_IP_NF_TARGET_MASQUERADE=m 159CONFIG_IP_NF_TARGET_MASQUERADE=m
115CONFIG_IP_NF_TARGET_NETMAP=m 160CONFIG_IP_NF_TARGET_NETMAP=m
116CONFIG_IP_NF_TARGET_REDIRECT=m 161CONFIG_IP_NF_TARGET_REDIRECT=m
117CONFIG_NF_NAT_SNMP_BASIC=m
118CONFIG_IP_NF_MANGLE=m 162CONFIG_IP_NF_MANGLE=m
119CONFIG_IP_NF_TARGET_CLUSTERIP=m 163CONFIG_IP_NF_TARGET_CLUSTERIP=m
120CONFIG_IP_NF_TARGET_ECN=m 164CONFIG_IP_NF_TARGET_ECN=m
@@ -124,7 +168,6 @@ CONFIG_IP_NF_ARPTABLES=m
124CONFIG_IP_NF_ARPFILTER=m 168CONFIG_IP_NF_ARPFILTER=m
125CONFIG_IP_NF_ARP_MANGLE=m 169CONFIG_IP_NF_ARP_MANGLE=m
126CONFIG_NF_CONNTRACK_IPV6=m 170CONFIG_NF_CONNTRACK_IPV6=m
127CONFIG_IP6_NF_QUEUE=m
128CONFIG_IP6_NF_IPTABLES=m 171CONFIG_IP6_NF_IPTABLES=m
129CONFIG_IP6_NF_MATCH_AH=m 172CONFIG_IP6_NF_MATCH_AH=m
130CONFIG_IP6_NF_MATCH_EUI64=m 173CONFIG_IP6_NF_MATCH_EUI64=m
@@ -133,21 +176,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
133CONFIG_IP6_NF_MATCH_HL=m 176CONFIG_IP6_NF_MATCH_HL=m
134CONFIG_IP6_NF_MATCH_IPV6HEADER=m 177CONFIG_IP6_NF_MATCH_IPV6HEADER=m
135CONFIG_IP6_NF_MATCH_MH=m 178CONFIG_IP6_NF_MATCH_MH=m
179CONFIG_IP6_NF_MATCH_RPFILTER=m
136CONFIG_IP6_NF_MATCH_RT=m 180CONFIG_IP6_NF_MATCH_RT=m
137CONFIG_IP6_NF_TARGET_HL=m 181CONFIG_IP6_NF_TARGET_HL=m
138CONFIG_IP6_NF_TARGET_LOG=m
139CONFIG_IP6_NF_FILTER=m 182CONFIG_IP6_NF_FILTER=m
140CONFIG_IP6_NF_TARGET_REJECT=m 183CONFIG_IP6_NF_TARGET_REJECT=m
141CONFIG_IP6_NF_MANGLE=m 184CONFIG_IP6_NF_MANGLE=m
142CONFIG_IP6_NF_RAW=m 185CONFIG_IP6_NF_RAW=m
186CONFIG_NF_NAT_IPV6=m
187CONFIG_IP6_NF_TARGET_MASQUERADE=m
188CONFIG_IP6_NF_TARGET_NPT=m
143CONFIG_IP_DCCP=m 189CONFIG_IP_DCCP=m
144# CONFIG_IP_DCCP_CCID3 is not set 190# CONFIG_IP_DCCP_CCID3 is not set
191CONFIG_SCTP_COOKIE_HMAC_SHA1=y
192CONFIG_RDS=m
193CONFIG_RDS_TCP=m
194CONFIG_L2TP=m
145CONFIG_ATALK=m 195CONFIG_ATALK=m
196CONFIG_BATMAN_ADV=m
197CONFIG_BATMAN_ADV_DAT=y
198# CONFIG_WIRELESS is not set
146CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 199CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
200CONFIG_DEVTMPFS=y
147# CONFIG_FIRMWARE_IN_KERNEL is not set 201# CONFIG_FIRMWARE_IN_KERNEL is not set
202# CONFIG_FW_LOADER_USER_HELPER is not set
148CONFIG_CONNECTOR=m 203CONFIG_CONNECTOR=m
149CONFIG_BLK_DEV_LOOP=y 204CONFIG_BLK_DEV_LOOP=y
150CONFIG_BLK_DEV_CRYPTOLOOP=m 205CONFIG_BLK_DEV_CRYPTOLOOP=m
206CONFIG_BLK_DEV_DRBD=m
151CONFIG_BLK_DEV_NBD=m 207CONFIG_BLK_DEV_NBD=m
152CONFIG_BLK_DEV_RAM=y 208CONFIG_BLK_DEV_RAM=y
153CONFIG_CDROM_PKTCDVD=m 209CONFIG_CDROM_PKTCDVD=m
@@ -162,57 +218,74 @@ CONFIG_BLK_DEV_SR=y
162CONFIG_BLK_DEV_SR_VENDOR=y 218CONFIG_BLK_DEV_SR_VENDOR=y
163CONFIG_CHR_DEV_SG=m 219CONFIG_CHR_DEV_SG=m
164CONFIG_SCSI_CONSTANTS=y 220CONFIG_SCSI_CONSTANTS=y
165CONFIG_SCSI_SAS_LIBSAS=m 221CONFIG_SCSI_SAS_ATTRS=m
166# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
167CONFIG_SCSI_SRP_ATTRS=m
168CONFIG_SCSI_SRP_TGT_ATTRS=y
169CONFIG_ISCSI_TCP=m 222CONFIG_ISCSI_TCP=m
223CONFIG_ISCSI_BOOT_SYSFS=m
170CONFIG_MD=y 224CONFIG_MD=y
171CONFIG_BLK_DEV_MD=m
172CONFIG_MD_LINEAR=m 225CONFIG_MD_LINEAR=m
173CONFIG_MD_RAID0=m 226CONFIG_MD_RAID0=m
174CONFIG_MD_RAID1=m
175CONFIG_MD_RAID456=m
176CONFIG_BLK_DEV_DM=m 227CONFIG_BLK_DEV_DM=m
177CONFIG_DM_CRYPT=m 228CONFIG_DM_CRYPT=m
178CONFIG_DM_SNAPSHOT=m 229CONFIG_DM_SNAPSHOT=m
230CONFIG_DM_THIN_PROVISIONING=m
231CONFIG_DM_CACHE=m
179CONFIG_DM_MIRROR=m 232CONFIG_DM_MIRROR=m
233CONFIG_DM_RAID=m
180CONFIG_DM_ZERO=m 234CONFIG_DM_ZERO=m
181CONFIG_DM_MULTIPATH=m 235CONFIG_DM_MULTIPATH=m
182CONFIG_DM_UEVENT=y 236CONFIG_DM_UEVENT=y
237CONFIG_TARGET_CORE=m
238CONFIG_TCM_IBLOCK=m
239CONFIG_TCM_FILEIO=m
240CONFIG_TCM_PSCSI=m
183CONFIG_NETDEVICES=y 241CONFIG_NETDEVICES=y
184CONFIG_DUMMY=m 242CONFIG_DUMMY=m
185CONFIG_MACVLAN=m
186CONFIG_EQUALIZER=m 243CONFIG_EQUALIZER=m
244CONFIG_NET_TEAM=m
245CONFIG_NET_TEAM_MODE_BROADCAST=m
246CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
247CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
248CONFIG_NET_TEAM_MODE_LOADBALANCE=m
249CONFIG_VXLAN=m
250CONFIG_NETCONSOLE=m
251CONFIG_NETCONSOLE_DYNAMIC=y
187CONFIG_VETH=m 252CONFIG_VETH=m
188CONFIG_NET_ETHERNET=y 253# CONFIG_NET_CADENCE is not set
189# CONFIG_NETDEV_1000 is not set 254# CONFIG_NET_VENDOR_BROADCOM is not set
190# CONFIG_NETDEV_10000 is not set 255# CONFIG_NET_VENDOR_INTEL is not set
256# CONFIG_NET_VENDOR_MARVELL is not set
257# CONFIG_NET_VENDOR_MICREL is not set
258# CONFIG_NET_VENDOR_NATSEMI is not set
259# CONFIG_NET_VENDOR_SEEQ is not set
260# CONFIG_NET_VENDOR_STMICRO is not set
261# CONFIG_NET_VENDOR_WIZNET is not set
191CONFIG_PPP=m 262CONFIG_PPP=m
192CONFIG_PPP_FILTER=y
193CONFIG_PPP_ASYNC=m
194CONFIG_PPP_SYNC_TTY=m
195CONFIG_PPP_DEFLATE=m
196CONFIG_PPP_BSDCOMP=m 263CONFIG_PPP_BSDCOMP=m
264CONFIG_PPP_DEFLATE=m
265CONFIG_PPP_FILTER=y
197CONFIG_PPP_MPPE=m 266CONFIG_PPP_MPPE=m
198CONFIG_PPPOE=m 267CONFIG_PPPOE=m
268CONFIG_PPTP=m
269CONFIG_PPPOL2TP=m
270CONFIG_PPP_ASYNC=m
271CONFIG_PPP_SYNC_TTY=m
199CONFIG_SLIP=m 272CONFIG_SLIP=m
200CONFIG_SLIP_COMPRESSED=y 273CONFIG_SLIP_COMPRESSED=y
201CONFIG_SLIP_SMART=y 274CONFIG_SLIP_SMART=y
202CONFIG_SLIP_MODE_SLIP6=y 275CONFIG_SLIP_MODE_SLIP6=y
203CONFIG_NETCONSOLE=m 276# CONFIG_WLAN is not set
204CONFIG_NETCONSOLE_DYNAMIC=y 277CONFIG_INPUT_EVDEV=m
205CONFIG_INPUT_FF_MEMLESS=m
206# CONFIG_KEYBOARD_ATKBD is not set 278# CONFIG_KEYBOARD_ATKBD is not set
207CONFIG_MOUSE_PS2=m 279# CONFIG_MOUSE_PS2 is not set
208CONFIG_MOUSE_SERIAL=m 280CONFIG_MOUSE_SERIAL=m
209CONFIG_SERIO=m 281CONFIG_SERIO=m
210# CONFIG_SERIO_SERPORT is not set
211CONFIG_VT_HW_CONSOLE_BINDING=y 282CONFIG_VT_HW_CONSOLE_BINDING=y
283# CONFIG_LEGACY_PTYS is not set
212# CONFIG_DEVKMEM is not set 284# CONFIG_DEVKMEM is not set
213# CONFIG_HW_RANDOM is not set 285# CONFIG_HW_RANDOM is not set
214CONFIG_GEN_RTC=m 286CONFIG_NTP_PPS=y
215CONFIG_GEN_RTC_X=y 287CONFIG_PPS_CLIENT_LDISC=m
288CONFIG_PTP_1588_CLOCK=m
216# CONFIG_HWMON is not set 289# CONFIG_HWMON is not set
217CONFIG_FB=y 290CONFIG_FB=y
218CONFIG_FRAMEBUFFER_CONSOLE=y 291CONFIG_FRAMEBUFFER_CONSOLE=y
@@ -221,47 +294,61 @@ CONFIG_LOGO=y
221# CONFIG_LOGO_LINUX_CLUT224 is not set 294# CONFIG_LOGO_LINUX_CLUT224 is not set
222CONFIG_HID=m 295CONFIG_HID=m
223CONFIG_HIDRAW=y 296CONFIG_HIDRAW=y
297CONFIG_UHID=m
298# CONFIG_HID_GENERIC is not set
224# CONFIG_USB_SUPPORT is not set 299# CONFIG_USB_SUPPORT is not set
300CONFIG_RTC_CLASS=y
301CONFIG_RTC_DRV_GENERIC=m
302# CONFIG_IOMMU_SUPPORT is not set
303CONFIG_HEARTBEAT=y
304CONFIG_PROC_HARDWARE=y
225CONFIG_EXT2_FS=y 305CONFIG_EXT2_FS=y
226CONFIG_EXT3_FS=y 306CONFIG_EXT3_FS=y
227# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 307# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
228# CONFIG_EXT3_FS_XATTR is not set 308# CONFIG_EXT3_FS_XATTR is not set
309CONFIG_EXT4_FS=y
229CONFIG_REISERFS_FS=m 310CONFIG_REISERFS_FS=m
230CONFIG_JFS_FS=m 311CONFIG_JFS_FS=m
231CONFIG_XFS_FS=m 312CONFIG_XFS_FS=m
232CONFIG_OCFS2_FS=m 313CONFIG_OCFS2_FS=m
233# CONFIG_OCFS2_FS_STATS is not set
234# CONFIG_OCFS2_DEBUG_MASKLOG is not set 314# CONFIG_OCFS2_DEBUG_MASKLOG is not set
315CONFIG_FANOTIFY=y
235CONFIG_QUOTA_NETLINK_INTERFACE=y 316CONFIG_QUOTA_NETLINK_INTERFACE=y
236# CONFIG_PRINT_QUOTA_WARNING is not set 317# CONFIG_PRINT_QUOTA_WARNING is not set
237CONFIG_AUTOFS_FS=m
238CONFIG_AUTOFS4_FS=m 318CONFIG_AUTOFS4_FS=m
239CONFIG_FUSE_FS=m 319CONFIG_FUSE_FS=m
320CONFIG_CUSE=m
240CONFIG_ISO9660_FS=y 321CONFIG_ISO9660_FS=y
241CONFIG_JOLIET=y 322CONFIG_JOLIET=y
242CONFIG_ZISOFS=y 323CONFIG_ZISOFS=y
243CONFIG_UDF_FS=m 324CONFIG_UDF_FS=m
244CONFIG_MSDOS_FS=y 325CONFIG_MSDOS_FS=m
245CONFIG_VFAT_FS=m 326CONFIG_VFAT_FS=m
246CONFIG_PROC_KCORE=y 327CONFIG_PROC_KCORE=y
247CONFIG_TMPFS=y 328CONFIG_TMPFS=y
248CONFIG_AFFS_FS=m 329CONFIG_AFFS_FS=m
330CONFIG_ECRYPT_FS=m
331CONFIG_ECRYPT_FS_MESSAGING=y
249CONFIG_HFS_FS=m 332CONFIG_HFS_FS=m
250CONFIG_HFSPLUS_FS=m 333CONFIG_HFSPLUS_FS=m
251CONFIG_CRAMFS=m 334CONFIG_CRAMFS=m
252CONFIG_SQUASHFS=m 335CONFIG_SQUASHFS=m
253CONFIG_MINIX_FS=y 336CONFIG_SQUASHFS_LZO=y
337CONFIG_MINIX_FS=m
338CONFIG_OMFS_FS=m
254CONFIG_HPFS_FS=m 339CONFIG_HPFS_FS=m
340CONFIG_QNX4FS_FS=m
341CONFIG_QNX6FS_FS=m
255CONFIG_SYSV_FS=m 342CONFIG_SYSV_FS=m
256CONFIG_UFS_FS=m 343CONFIG_UFS_FS=m
257CONFIG_NFS_FS=y 344CONFIG_NFS_FS=y
258CONFIG_NFS_V3=y
259CONFIG_NFS_V4=y 345CONFIG_NFS_V4=y
346CONFIG_NFS_SWAP=y
260CONFIG_ROOT_NFS=y 347CONFIG_ROOT_NFS=y
261CONFIG_NFSD=m 348CONFIG_NFSD=m
262CONFIG_NFSD_V3=y 349CONFIG_NFSD_V3=y
263CONFIG_SMB_FS=m 350CONFIG_CIFS=m
264CONFIG_SMB_NLS_DEFAULT=y 351# CONFIG_CIFS_DEBUG is not set
265CONFIG_CODA_FS=m 352CONFIG_CODA_FS=m
266CONFIG_NLS_CODEPAGE_437=y 353CONFIG_NLS_CODEPAGE_437=y
267CONFIG_NLS_CODEPAGE_737=m 354CONFIG_NLS_CODEPAGE_737=m
@@ -300,10 +387,23 @@ CONFIG_NLS_ISO8859_14=m
300CONFIG_NLS_ISO8859_15=m 387CONFIG_NLS_ISO8859_15=m
301CONFIG_NLS_KOI8_R=m 388CONFIG_NLS_KOI8_R=m
302CONFIG_NLS_KOI8_U=m 389CONFIG_NLS_KOI8_U=m
390CONFIG_NLS_MAC_ROMAN=m
391CONFIG_NLS_MAC_CELTIC=m
392CONFIG_NLS_MAC_CENTEURO=m
393CONFIG_NLS_MAC_CROATIAN=m
394CONFIG_NLS_MAC_CYRILLIC=m
395CONFIG_NLS_MAC_GAELIC=m
396CONFIG_NLS_MAC_GREEK=m
397CONFIG_NLS_MAC_ICELAND=m
398CONFIG_NLS_MAC_INUIT=m
399CONFIG_NLS_MAC_ROMANIAN=m
400CONFIG_NLS_MAC_TURKISH=m
303CONFIG_DLM=m 401CONFIG_DLM=m
304CONFIG_MAGIC_SYSRQ=y 402CONFIG_MAGIC_SYSRQ=y
305# CONFIG_RCU_CPU_STALL_DETECTOR is not set 403CONFIG_ASYNC_RAID6_TEST=m
306CONFIG_SYSCTL_SYSCALL_CHECK=y 404CONFIG_ENCRYPTED_KEYS=m
405CONFIG_CRYPTO_MANAGER=y
406CONFIG_CRYPTO_USER=m
307CONFIG_CRYPTO_NULL=m 407CONFIG_CRYPTO_NULL=m
308CONFIG_CRYPTO_CRYPTD=m 408CONFIG_CRYPTO_CRYPTD=m
309CONFIG_CRYPTO_TEST=m 409CONFIG_CRYPTO_TEST=m
@@ -313,19 +413,16 @@ CONFIG_CRYPTO_CTS=m
313CONFIG_CRYPTO_LRW=m 413CONFIG_CRYPTO_LRW=m
314CONFIG_CRYPTO_PCBC=m 414CONFIG_CRYPTO_PCBC=m
315CONFIG_CRYPTO_XTS=m 415CONFIG_CRYPTO_XTS=m
316CONFIG_CRYPTO_HMAC=y
317CONFIG_CRYPTO_XCBC=m 416CONFIG_CRYPTO_XCBC=m
318CONFIG_CRYPTO_MD4=m 417CONFIG_CRYPTO_VMAC=m
319CONFIG_CRYPTO_MICHAEL_MIC=m 418CONFIG_CRYPTO_MICHAEL_MIC=m
320CONFIG_CRYPTO_RMD128=m 419CONFIG_CRYPTO_RMD128=m
321CONFIG_CRYPTO_RMD160=m 420CONFIG_CRYPTO_RMD160=m
322CONFIG_CRYPTO_RMD256=m 421CONFIG_CRYPTO_RMD256=m
323CONFIG_CRYPTO_RMD320=m 422CONFIG_CRYPTO_RMD320=m
324CONFIG_CRYPTO_SHA256=m
325CONFIG_CRYPTO_SHA512=m 423CONFIG_CRYPTO_SHA512=m
326CONFIG_CRYPTO_TGR192=m 424CONFIG_CRYPTO_TGR192=m
327CONFIG_CRYPTO_WP512=m 425CONFIG_CRYPTO_WP512=m
328CONFIG_CRYPTO_AES=m
329CONFIG_CRYPTO_ANUBIS=m 426CONFIG_CRYPTO_ANUBIS=m
330CONFIG_CRYPTO_BLOWFISH=m 427CONFIG_CRYPTO_BLOWFISH=m
331CONFIG_CRYPTO_CAMELLIA=m 428CONFIG_CRYPTO_CAMELLIA=m
@@ -341,6 +438,14 @@ CONFIG_CRYPTO_TWOFISH=m
341CONFIG_CRYPTO_ZLIB=m 438CONFIG_CRYPTO_ZLIB=m
342CONFIG_CRYPTO_LZO=m 439CONFIG_CRYPTO_LZO=m
343# CONFIG_CRYPTO_ANSI_CPRNG is not set 440# CONFIG_CRYPTO_ANSI_CPRNG is not set
441CONFIG_CRYPTO_USER_API_HASH=m
442CONFIG_CRYPTO_USER_API_SKCIPHER=m
344# CONFIG_CRYPTO_HW is not set 443# CONFIG_CRYPTO_HW is not set
345CONFIG_CRC16=m
346CONFIG_CRC_T10DIF=y 444CONFIG_CRC_T10DIF=y
445CONFIG_XZ_DEC_X86=y
446CONFIG_XZ_DEC_POWERPC=y
447CONFIG_XZ_DEC_IA64=y
448CONFIG_XZ_DEC_ARM=y
449CONFIG_XZ_DEC_ARMTHUMB=y
450CONFIG_XZ_DEC_SPARC=y
451CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 4571d33903fe..6d5370c914b2 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_defconfig
@@ -1,53 +1,75 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-atari" 1CONFIG_LOCALVERSION="-atari"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_ATARI=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_MAC_PARTITION=y
19CONFIG_BSD_DISKLABEL=y
20CONFIG_MINIX_SUBPARTITION=y
21CONFIG_SOLARIS_X86_PARTITION=y
22CONFIG_UNIXWARE_DISKLABEL=y
23CONFIG_SUN_PARTITION=y
24# CONFIG_EFI_PARTITION is not set
25CONFIG_SYSV68_PARTITION=y
26CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68020=y 27CONFIG_M68020=y
15CONFIG_M68030=y 28CONFIG_M68030=y
16CONFIG_M68040=y 29CONFIG_M68040=y
17CONFIG_M68060=y 30CONFIG_M68060=y
31CONFIG_ATARI=y
32# CONFIG_COMPACTION is not set
33CONFIG_CLEANCACHE=y
34# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
18CONFIG_BINFMT_AOUT=m 35CONFIG_BINFMT_AOUT=m
19CONFIG_BINFMT_MISC=m 36CONFIG_BINFMT_MISC=m
20CONFIG_STRAM_PROC=y
21CONFIG_HEARTBEAT=y
22CONFIG_PROC_HARDWARE=y
23CONFIG_NET=y 37CONFIG_NET=y
24CONFIG_PACKET=y 38CONFIG_PACKET=y
39CONFIG_PACKET_DIAG=m
25CONFIG_UNIX=y 40CONFIG_UNIX=y
41CONFIG_UNIX_DIAG=m
42CONFIG_XFRM_MIGRATE=y
26CONFIG_NET_KEY=y 43CONFIG_NET_KEY=y
27CONFIG_NET_KEY_MIGRATE=y
28CONFIG_INET=y 44CONFIG_INET=y
29CONFIG_IP_PNP=y 45CONFIG_IP_PNP=y
46CONFIG_IP_PNP_DHCP=y
47CONFIG_IP_PNP_BOOTP=y
48CONFIG_IP_PNP_RARP=y
30CONFIG_NET_IPIP=m 49CONFIG_NET_IPIP=m
50CONFIG_NET_IPGRE_DEMUX=m
31CONFIG_NET_IPGRE=m 51CONFIG_NET_IPGRE=m
32CONFIG_SYN_COOKIES=y 52CONFIG_SYN_COOKIES=y
53CONFIG_NET_IPVTI=m
33CONFIG_INET_AH=m 54CONFIG_INET_AH=m
34CONFIG_INET_ESP=m 55CONFIG_INET_ESP=m
35CONFIG_INET_IPCOMP=m 56CONFIG_INET_IPCOMP=m
36CONFIG_INET_XFRM_MODE_TRANSPORT=m 57CONFIG_INET_XFRM_MODE_TRANSPORT=m
37CONFIG_INET_XFRM_MODE_TUNNEL=m 58CONFIG_INET_XFRM_MODE_TUNNEL=m
38CONFIG_INET_XFRM_MODE_BEET=m 59CONFIG_INET_XFRM_MODE_BEET=m
60# CONFIG_INET_LRO is not set
39CONFIG_INET_DIAG=m 61CONFIG_INET_DIAG=m
62CONFIG_INET_UDP_DIAG=m
40CONFIG_IPV6_PRIVACY=y 63CONFIG_IPV6_PRIVACY=y
41CONFIG_IPV6_ROUTER_PREF=y 64CONFIG_IPV6_ROUTER_PREF=y
42CONFIG_IPV6_ROUTE_INFO=y
43CONFIG_INET6_AH=m 65CONFIG_INET6_AH=m
44CONFIG_INET6_ESP=m 66CONFIG_INET6_ESP=m
45CONFIG_INET6_IPCOMP=m 67CONFIG_INET6_IPCOMP=m
46CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 68CONFIG_IPV6_GRE=m
47CONFIG_IPV6_TUNNEL=m
48CONFIG_NETFILTER=y 69CONFIG_NETFILTER=y
49CONFIG_NETFILTER_NETLINK_QUEUE=m
50CONFIG_NF_CONNTRACK=m 70CONFIG_NF_CONNTRACK=m
71CONFIG_NF_CONNTRACK_ZONES=y
72# CONFIG_NF_CONNTRACK_PROCFS is not set
51# CONFIG_NF_CT_PROTO_DCCP is not set 73# CONFIG_NF_CT_PROTO_DCCP is not set
52CONFIG_NF_CT_PROTO_UDPLITE=m 74CONFIG_NF_CT_PROTO_UDPLITE=m
53CONFIG_NF_CONNTRACK_AMANDA=m 75CONFIG_NF_CONNTRACK_AMANDA=m
@@ -55,25 +77,37 @@ CONFIG_NF_CONNTRACK_FTP=m
55CONFIG_NF_CONNTRACK_H323=m 77CONFIG_NF_CONNTRACK_H323=m
56CONFIG_NF_CONNTRACK_IRC=m 78CONFIG_NF_CONNTRACK_IRC=m
57CONFIG_NF_CONNTRACK_NETBIOS_NS=m 79CONFIG_NF_CONNTRACK_NETBIOS_NS=m
80CONFIG_NF_CONNTRACK_SNMP=m
58CONFIG_NF_CONNTRACK_PPTP=m 81CONFIG_NF_CONNTRACK_PPTP=m
59CONFIG_NF_CONNTRACK_SANE=m 82CONFIG_NF_CONNTRACK_SANE=m
60CONFIG_NF_CONNTRACK_SIP=m 83CONFIG_NF_CONNTRACK_SIP=m
61CONFIG_NF_CONNTRACK_TFTP=m 84CONFIG_NF_CONNTRACK_TFTP=m
85CONFIG_NETFILTER_XT_SET=m
86CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
62CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 87CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
63CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 88CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
64CONFIG_NETFILTER_XT_TARGET_DSCP=m 89CONFIG_NETFILTER_XT_TARGET_DSCP=m
90CONFIG_NETFILTER_XT_TARGET_HMARK=m
91CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
92CONFIG_NETFILTER_XT_TARGET_LOG=m
65CONFIG_NETFILTER_XT_TARGET_MARK=m 93CONFIG_NETFILTER_XT_TARGET_MARK=m
66CONFIG_NETFILTER_XT_TARGET_NFLOG=m 94CONFIG_NETFILTER_XT_TARGET_NFLOG=m
67CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 95CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
96CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
97CONFIG_NETFILTER_XT_TARGET_TEE=m
68CONFIG_NETFILTER_XT_TARGET_TRACE=m 98CONFIG_NETFILTER_XT_TARGET_TRACE=m
69CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 99CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
70CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 100CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
101CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
102CONFIG_NETFILTER_XT_MATCH_BPF=m
71CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 103CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
72CONFIG_NETFILTER_XT_MATCH_COMMENT=m 104CONFIG_NETFILTER_XT_MATCH_COMMENT=m
73CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 105CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
106CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
74CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 107CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
75CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 108CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
76CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 109CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
110CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
77CONFIG_NETFILTER_XT_MATCH_DSCP=m 111CONFIG_NETFILTER_XT_MATCH_DSCP=m
78CONFIG_NETFILTER_XT_MATCH_ESP=m 112CONFIG_NETFILTER_XT_MATCH_ESP=m
79CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 113CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -84,6 +118,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
84CONFIG_NETFILTER_XT_MATCH_MAC=m 118CONFIG_NETFILTER_XT_MATCH_MAC=m
85CONFIG_NETFILTER_XT_MATCH_MARK=m 119CONFIG_NETFILTER_XT_MATCH_MARK=m
86CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 120CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
121CONFIG_NETFILTER_XT_MATCH_NFACCT=m
122CONFIG_NETFILTER_XT_MATCH_OSF=m
87CONFIG_NETFILTER_XT_MATCH_OWNER=m 123CONFIG_NETFILTER_XT_MATCH_OWNER=m
88CONFIG_NETFILTER_XT_MATCH_POLICY=m 124CONFIG_NETFILTER_XT_MATCH_POLICY=m
89CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 125CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -97,22 +133,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
97CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 133CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
98CONFIG_NETFILTER_XT_MATCH_TIME=m 134CONFIG_NETFILTER_XT_MATCH_TIME=m
99CONFIG_NETFILTER_XT_MATCH_U32=m 135CONFIG_NETFILTER_XT_MATCH_U32=m
136CONFIG_IP_SET=m
137CONFIG_IP_SET_BITMAP_IP=m
138CONFIG_IP_SET_BITMAP_IPMAC=m
139CONFIG_IP_SET_BITMAP_PORT=m
140CONFIG_IP_SET_HASH_IP=m
141CONFIG_IP_SET_HASH_IPPORT=m
142CONFIG_IP_SET_HASH_IPPORTIP=m
143CONFIG_IP_SET_HASH_IPPORTNET=m
144CONFIG_IP_SET_HASH_NET=m
145CONFIG_IP_SET_HASH_NETPORT=m
146CONFIG_IP_SET_HASH_NETIFACE=m
147CONFIG_IP_SET_LIST_SET=m
100CONFIG_NF_CONNTRACK_IPV4=m 148CONFIG_NF_CONNTRACK_IPV4=m
101CONFIG_IP_NF_QUEUE=m
102CONFIG_IP_NF_IPTABLES=m 149CONFIG_IP_NF_IPTABLES=m
103CONFIG_IP_NF_MATCH_ADDRTYPE=m
104CONFIG_IP_NF_MATCH_AH=m 150CONFIG_IP_NF_MATCH_AH=m
105CONFIG_IP_NF_MATCH_ECN=m 151CONFIG_IP_NF_MATCH_ECN=m
152CONFIG_IP_NF_MATCH_RPFILTER=m
106CONFIG_IP_NF_MATCH_TTL=m 153CONFIG_IP_NF_MATCH_TTL=m
107CONFIG_IP_NF_FILTER=m 154CONFIG_IP_NF_FILTER=m
108CONFIG_IP_NF_TARGET_REJECT=m 155CONFIG_IP_NF_TARGET_REJECT=m
109CONFIG_IP_NF_TARGET_LOG=m
110CONFIG_IP_NF_TARGET_ULOG=m 156CONFIG_IP_NF_TARGET_ULOG=m
111CONFIG_NF_NAT=m 157CONFIG_NF_NAT_IPV4=m
112CONFIG_IP_NF_TARGET_MASQUERADE=m 158CONFIG_IP_NF_TARGET_MASQUERADE=m
113CONFIG_IP_NF_TARGET_NETMAP=m 159CONFIG_IP_NF_TARGET_NETMAP=m
114CONFIG_IP_NF_TARGET_REDIRECT=m 160CONFIG_IP_NF_TARGET_REDIRECT=m
115CONFIG_NF_NAT_SNMP_BASIC=m
116CONFIG_IP_NF_MANGLE=m 161CONFIG_IP_NF_MANGLE=m
117CONFIG_IP_NF_TARGET_CLUSTERIP=m 162CONFIG_IP_NF_TARGET_CLUSTERIP=m
118CONFIG_IP_NF_TARGET_ECN=m 163CONFIG_IP_NF_TARGET_ECN=m
@@ -122,7 +167,6 @@ CONFIG_IP_NF_ARPTABLES=m
122CONFIG_IP_NF_ARPFILTER=m 167CONFIG_IP_NF_ARPFILTER=m
123CONFIG_IP_NF_ARP_MANGLE=m 168CONFIG_IP_NF_ARP_MANGLE=m
124CONFIG_NF_CONNTRACK_IPV6=m 169CONFIG_NF_CONNTRACK_IPV6=m
125CONFIG_IP6_NF_QUEUE=m
126CONFIG_IP6_NF_IPTABLES=m 170CONFIG_IP6_NF_IPTABLES=m
127CONFIG_IP6_NF_MATCH_AH=m 171CONFIG_IP6_NF_MATCH_AH=m
128CONFIG_IP6_NF_MATCH_EUI64=m 172CONFIG_IP6_NF_MATCH_EUI64=m
@@ -131,18 +175,30 @@ CONFIG_IP6_NF_MATCH_OPTS=m
131CONFIG_IP6_NF_MATCH_HL=m 175CONFIG_IP6_NF_MATCH_HL=m
132CONFIG_IP6_NF_MATCH_IPV6HEADER=m 176CONFIG_IP6_NF_MATCH_IPV6HEADER=m
133CONFIG_IP6_NF_MATCH_MH=m 177CONFIG_IP6_NF_MATCH_MH=m
178CONFIG_IP6_NF_MATCH_RPFILTER=m
134CONFIG_IP6_NF_MATCH_RT=m 179CONFIG_IP6_NF_MATCH_RT=m
135CONFIG_IP6_NF_TARGET_HL=m 180CONFIG_IP6_NF_TARGET_HL=m
136CONFIG_IP6_NF_TARGET_LOG=m
137CONFIG_IP6_NF_FILTER=m 181CONFIG_IP6_NF_FILTER=m
138CONFIG_IP6_NF_TARGET_REJECT=m 182CONFIG_IP6_NF_TARGET_REJECT=m
139CONFIG_IP6_NF_MANGLE=m 183CONFIG_IP6_NF_MANGLE=m
140CONFIG_IP6_NF_RAW=m 184CONFIG_IP6_NF_RAW=m
185CONFIG_NF_NAT_IPV6=m
186CONFIG_IP6_NF_TARGET_MASQUERADE=m
187CONFIG_IP6_NF_TARGET_NPT=m
141CONFIG_IP_DCCP=m 188CONFIG_IP_DCCP=m
142# CONFIG_IP_DCCP_CCID3 is not set 189# CONFIG_IP_DCCP_CCID3 is not set
190CONFIG_SCTP_COOKIE_HMAC_SHA1=y
191CONFIG_RDS=m
192CONFIG_RDS_TCP=m
193CONFIG_L2TP=m
143CONFIG_ATALK=m 194CONFIG_ATALK=m
195CONFIG_BATMAN_ADV=m
196CONFIG_BATMAN_ADV_DAT=y
197# CONFIG_WIRELESS is not set
144CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 198CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
199CONFIG_DEVTMPFS=y
145# CONFIG_FIRMWARE_IN_KERNEL is not set 200# CONFIG_FIRMWARE_IN_KERNEL is not set
201# CONFIG_FW_LOADER_USER_HELPER is not set
146CONFIG_CONNECTOR=m 202CONFIG_CONNECTOR=m
147CONFIG_PARPORT=m 203CONFIG_PARPORT=m
148CONFIG_PARPORT_ATARI=m 204CONFIG_PARPORT_ATARI=m
@@ -150,11 +206,13 @@ CONFIG_PARPORT_1284=y
150CONFIG_ATARI_FLOPPY=y 206CONFIG_ATARI_FLOPPY=y
151CONFIG_BLK_DEV_LOOP=y 207CONFIG_BLK_DEV_LOOP=y
152CONFIG_BLK_DEV_CRYPTOLOOP=m 208CONFIG_BLK_DEV_CRYPTOLOOP=m
209CONFIG_BLK_DEV_DRBD=m
153CONFIG_BLK_DEV_NBD=m 210CONFIG_BLK_DEV_NBD=m
154CONFIG_BLK_DEV_RAM=y 211CONFIG_BLK_DEV_RAM=y
155CONFIG_CDROM_PKTCDVD=m 212CONFIG_CDROM_PKTCDVD=m
156CONFIG_ATA_OVER_ETH=m 213CONFIG_ATA_OVER_ETH=m
157CONFIG_IDE=y 214CONFIG_IDE=y
215CONFIG_IDE_GD_ATAPI=y
158CONFIG_BLK_DEV_IDECD=y 216CONFIG_BLK_DEV_IDECD=y
159CONFIG_BLK_DEV_FALCON_IDE=y 217CONFIG_BLK_DEV_FALCON_IDE=y
160CONFIG_RAID_ATTRS=m 218CONFIG_RAID_ATTRS=m
@@ -167,63 +225,81 @@ CONFIG_BLK_DEV_SR=y
167CONFIG_BLK_DEV_SR_VENDOR=y 225CONFIG_BLK_DEV_SR_VENDOR=y
168CONFIG_CHR_DEV_SG=m 226CONFIG_CHR_DEV_SG=m
169CONFIG_SCSI_CONSTANTS=y 227CONFIG_SCSI_CONSTANTS=y
170CONFIG_SCSI_SAS_LIBSAS=m 228CONFIG_SCSI_SAS_ATTRS=m
171# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
172CONFIG_SCSI_SRP_ATTRS=m
173CONFIG_SCSI_SRP_TGT_ATTRS=y
174CONFIG_ISCSI_TCP=m 229CONFIG_ISCSI_TCP=m
230CONFIG_ISCSI_BOOT_SYSFS=m
175CONFIG_ATARI_SCSI=y 231CONFIG_ATARI_SCSI=y
176CONFIG_MD=y 232CONFIG_MD=y
177CONFIG_BLK_DEV_MD=m
178CONFIG_MD_LINEAR=m 233CONFIG_MD_LINEAR=m
179CONFIG_MD_RAID0=m 234CONFIG_MD_RAID0=m
180CONFIG_MD_RAID1=m
181CONFIG_MD_RAID456=m
182CONFIG_BLK_DEV_DM=m 235CONFIG_BLK_DEV_DM=m
183CONFIG_DM_CRYPT=m 236CONFIG_DM_CRYPT=m
184CONFIG_DM_SNAPSHOT=m 237CONFIG_DM_SNAPSHOT=m
238CONFIG_DM_THIN_PROVISIONING=m
239CONFIG_DM_CACHE=m
185CONFIG_DM_MIRROR=m 240CONFIG_DM_MIRROR=m
241CONFIG_DM_RAID=m
186CONFIG_DM_ZERO=m 242CONFIG_DM_ZERO=m
187CONFIG_DM_MULTIPATH=m 243CONFIG_DM_MULTIPATH=m
188CONFIG_DM_UEVENT=y 244CONFIG_DM_UEVENT=y
245CONFIG_TARGET_CORE=m
246CONFIG_TCM_IBLOCK=m
247CONFIG_TCM_FILEIO=m
248CONFIG_TCM_PSCSI=m
189CONFIG_NETDEVICES=y 249CONFIG_NETDEVICES=y
190CONFIG_DUMMY=m 250CONFIG_DUMMY=m
191CONFIG_MACVLAN=m
192CONFIG_EQUALIZER=m 251CONFIG_EQUALIZER=m
193CONFIG_VETH=m
194CONFIG_NET_ETHERNET=y
195CONFIG_MII=y 252CONFIG_MII=y
253CONFIG_NET_TEAM=m
254CONFIG_NET_TEAM_MODE_BROADCAST=m
255CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
256CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
257CONFIG_NET_TEAM_MODE_LOADBALANCE=m
258CONFIG_VXLAN=m
259CONFIG_NETCONSOLE=m
260CONFIG_NETCONSOLE_DYNAMIC=y
261CONFIG_VETH=m
196CONFIG_ATARILANCE=y 262CONFIG_ATARILANCE=y
197# CONFIG_NETDEV_1000 is not set 263# CONFIG_NET_CADENCE is not set
198# CONFIG_NETDEV_10000 is not set 264# CONFIG_NET_VENDOR_BROADCOM is not set
265# CONFIG_NET_VENDOR_INTEL is not set
266# CONFIG_NET_VENDOR_MARVELL is not set
267# CONFIG_NET_VENDOR_MICREL is not set
268# CONFIG_NET_VENDOR_SEEQ is not set
269# CONFIG_NET_VENDOR_STMICRO is not set
270# CONFIG_NET_VENDOR_WIZNET is not set
199CONFIG_PPP=m 271CONFIG_PPP=m
200CONFIG_PPP_FILTER=y
201CONFIG_PPP_ASYNC=m
202CONFIG_PPP_SYNC_TTY=m
203CONFIG_PPP_DEFLATE=m
204CONFIG_PPP_BSDCOMP=m 272CONFIG_PPP_BSDCOMP=m
273CONFIG_PPP_DEFLATE=m
274CONFIG_PPP_FILTER=y
205CONFIG_PPP_MPPE=m 275CONFIG_PPP_MPPE=m
206CONFIG_PPPOE=m 276CONFIG_PPPOE=m
277CONFIG_PPTP=m
278CONFIG_PPPOL2TP=m
279CONFIG_PPP_ASYNC=m
280CONFIG_PPP_SYNC_TTY=m
207CONFIG_SLIP=m 281CONFIG_SLIP=m
208CONFIG_SLIP_COMPRESSED=y 282CONFIG_SLIP_COMPRESSED=y
209CONFIG_SLIP_SMART=y 283CONFIG_SLIP_SMART=y
210CONFIG_SLIP_MODE_SLIP6=y 284CONFIG_SLIP_MODE_SLIP6=y
211CONFIG_NETCONSOLE=m 285# CONFIG_WLAN is not set
212CONFIG_NETCONSOLE_DYNAMIC=y 286CONFIG_INPUT_EVDEV=m
213CONFIG_INPUT_FF_MEMLESS=m
214CONFIG_KEYBOARD_ATARI=y 287CONFIG_KEYBOARD_ATARI=y
215# CONFIG_KEYBOARD_ATKBD is not set 288# CONFIG_KEYBOARD_ATKBD is not set
216CONFIG_MOUSE_PS2=m 289# CONFIG_MOUSE_PS2 is not set
217CONFIG_MOUSE_ATARI=m 290CONFIG_MOUSE_ATARI=m
218CONFIG_INPUT_MISC=y 291CONFIG_INPUT_MISC=y
219CONFIG_INPUT_M68K_BEEP=m 292CONFIG_INPUT_M68K_BEEP=m
220# CONFIG_SERIO_SERPORT is not set 293# CONFIG_SERIO is not set
221CONFIG_VT_HW_CONSOLE_BINDING=y 294CONFIG_VT_HW_CONSOLE_BINDING=y
295# CONFIG_LEGACY_PTYS is not set
222# CONFIG_DEVKMEM is not set 296# CONFIG_DEVKMEM is not set
223CONFIG_PRINTER=m 297CONFIG_PRINTER=m
224# CONFIG_HW_RANDOM is not set 298# CONFIG_HW_RANDOM is not set
225CONFIG_GEN_RTC=m 299CONFIG_NTP_PPS=y
226CONFIG_GEN_RTC_X=y 300CONFIG_PPS_CLIENT_LDISC=m
301CONFIG_PPS_CLIENT_PARPORT=m
302CONFIG_PTP_1588_CLOCK=m
227# CONFIG_HWMON is not set 303# CONFIG_HWMON is not set
228CONFIG_FB=y 304CONFIG_FB=y
229CONFIG_FB_ATARI=y 305CONFIG_FB_ATARI=y
@@ -233,47 +309,64 @@ CONFIG_SOUND=m
233CONFIG_DMASOUND_ATARI=m 309CONFIG_DMASOUND_ATARI=m
234CONFIG_HID=m 310CONFIG_HID=m
235CONFIG_HIDRAW=y 311CONFIG_HIDRAW=y
236# CONFIG_USB_SUPPORT is not set 312CONFIG_UHID=m
313CONFIG_RTC_CLASS=y
314CONFIG_RTC_DRV_GENERIC=m
315# CONFIG_IOMMU_SUPPORT is not set
316CONFIG_HEARTBEAT=y
317CONFIG_PROC_HARDWARE=y
318CONFIG_NATFEAT=y
319CONFIG_NFBLOCK=y
320CONFIG_NFCON=y
321CONFIG_NFETH=y
237CONFIG_ATARI_DSP56K=m 322CONFIG_ATARI_DSP56K=m
238CONFIG_EXT2_FS=y 323CONFIG_EXT2_FS=y
239CONFIG_EXT3_FS=y 324CONFIG_EXT3_FS=y
240# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 325# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
241# CONFIG_EXT3_FS_XATTR is not set 326# CONFIG_EXT3_FS_XATTR is not set
327CONFIG_EXT4_FS=y
242CONFIG_REISERFS_FS=m 328CONFIG_REISERFS_FS=m
243CONFIG_JFS_FS=m 329CONFIG_JFS_FS=m
244CONFIG_XFS_FS=m 330CONFIG_XFS_FS=m
245CONFIG_OCFS2_FS=m 331CONFIG_OCFS2_FS=m
246# CONFIG_OCFS2_FS_STATS is not set
247# CONFIG_OCFS2_DEBUG_MASKLOG is not set 332# CONFIG_OCFS2_DEBUG_MASKLOG is not set
333CONFIG_FANOTIFY=y
248CONFIG_QUOTA_NETLINK_INTERFACE=y 334CONFIG_QUOTA_NETLINK_INTERFACE=y
249# CONFIG_PRINT_QUOTA_WARNING is not set 335# CONFIG_PRINT_QUOTA_WARNING is not set
250CONFIG_AUTOFS_FS=m
251CONFIG_AUTOFS4_FS=m 336CONFIG_AUTOFS4_FS=m
252CONFIG_FUSE_FS=m 337CONFIG_FUSE_FS=m
338CONFIG_CUSE=m
253CONFIG_ISO9660_FS=y 339CONFIG_ISO9660_FS=y
254CONFIG_JOLIET=y 340CONFIG_JOLIET=y
255CONFIG_ZISOFS=y 341CONFIG_ZISOFS=y
256CONFIG_UDF_FS=m 342CONFIG_UDF_FS=m
257CONFIG_MSDOS_FS=y 343CONFIG_MSDOS_FS=m
258CONFIG_VFAT_FS=m 344CONFIG_VFAT_FS=m
259CONFIG_PROC_KCORE=y 345CONFIG_PROC_KCORE=y
260CONFIG_TMPFS=y 346CONFIG_TMPFS=y
261CONFIG_AFFS_FS=m 347CONFIG_AFFS_FS=m
348CONFIG_ECRYPT_FS=m
349CONFIG_ECRYPT_FS_MESSAGING=y
262CONFIG_HFS_FS=m 350CONFIG_HFS_FS=m
263CONFIG_HFSPLUS_FS=m 351CONFIG_HFSPLUS_FS=m
264CONFIG_CRAMFS=m 352CONFIG_CRAMFS=m
265CONFIG_SQUASHFS=m 353CONFIG_SQUASHFS=m
266CONFIG_MINIX_FS=y 354CONFIG_SQUASHFS_LZO=y
355CONFIG_MINIX_FS=m
356CONFIG_OMFS_FS=m
267CONFIG_HPFS_FS=m 357CONFIG_HPFS_FS=m
358CONFIG_QNX4FS_FS=m
359CONFIG_QNX6FS_FS=m
268CONFIG_SYSV_FS=m 360CONFIG_SYSV_FS=m
269CONFIG_UFS_FS=m 361CONFIG_UFS_FS=m
270CONFIG_NFS_FS=y 362CONFIG_NFS_FS=y
271CONFIG_NFS_V3=y
272CONFIG_NFS_V4=y 363CONFIG_NFS_V4=y
364CONFIG_NFS_SWAP=y
365CONFIG_ROOT_NFS=y
273CONFIG_NFSD=m 366CONFIG_NFSD=m
274CONFIG_NFSD_V3=y 367CONFIG_NFSD_V3=y
275CONFIG_SMB_FS=m 368CONFIG_CIFS=m
276CONFIG_SMB_NLS_DEFAULT=y 369# CONFIG_CIFS_DEBUG is not set
277CONFIG_CODA_FS=m 370CONFIG_CODA_FS=m
278CONFIG_NLS_CODEPAGE_437=y 371CONFIG_NLS_CODEPAGE_437=y
279CONFIG_NLS_CODEPAGE_737=m 372CONFIG_NLS_CODEPAGE_737=m
@@ -312,10 +405,23 @@ CONFIG_NLS_ISO8859_14=m
312CONFIG_NLS_ISO8859_15=m 405CONFIG_NLS_ISO8859_15=m
313CONFIG_NLS_KOI8_R=m 406CONFIG_NLS_KOI8_R=m
314CONFIG_NLS_KOI8_U=m 407CONFIG_NLS_KOI8_U=m
408CONFIG_NLS_MAC_ROMAN=m
409CONFIG_NLS_MAC_CELTIC=m
410CONFIG_NLS_MAC_CENTEURO=m
411CONFIG_NLS_MAC_CROATIAN=m
412CONFIG_NLS_MAC_CYRILLIC=m
413CONFIG_NLS_MAC_GAELIC=m
414CONFIG_NLS_MAC_GREEK=m
415CONFIG_NLS_MAC_ICELAND=m
416CONFIG_NLS_MAC_INUIT=m
417CONFIG_NLS_MAC_ROMANIAN=m
418CONFIG_NLS_MAC_TURKISH=m
315CONFIG_DLM=m 419CONFIG_DLM=m
316CONFIG_MAGIC_SYSRQ=y 420CONFIG_MAGIC_SYSRQ=y
317# CONFIG_RCU_CPU_STALL_DETECTOR is not set 421CONFIG_ASYNC_RAID6_TEST=m
318CONFIG_SYSCTL_SYSCALL_CHECK=y 422CONFIG_ENCRYPTED_KEYS=m
423CONFIG_CRYPTO_MANAGER=y
424CONFIG_CRYPTO_USER=m
319CONFIG_CRYPTO_NULL=m 425CONFIG_CRYPTO_NULL=m
320CONFIG_CRYPTO_CRYPTD=m 426CONFIG_CRYPTO_CRYPTD=m
321CONFIG_CRYPTO_TEST=m 427CONFIG_CRYPTO_TEST=m
@@ -325,19 +431,16 @@ CONFIG_CRYPTO_CTS=m
325CONFIG_CRYPTO_LRW=m 431CONFIG_CRYPTO_LRW=m
326CONFIG_CRYPTO_PCBC=m 432CONFIG_CRYPTO_PCBC=m
327CONFIG_CRYPTO_XTS=m 433CONFIG_CRYPTO_XTS=m
328CONFIG_CRYPTO_HMAC=y
329CONFIG_CRYPTO_XCBC=m 434CONFIG_CRYPTO_XCBC=m
330CONFIG_CRYPTO_MD4=m 435CONFIG_CRYPTO_VMAC=m
331CONFIG_CRYPTO_MICHAEL_MIC=m 436CONFIG_CRYPTO_MICHAEL_MIC=m
332CONFIG_CRYPTO_RMD128=m 437CONFIG_CRYPTO_RMD128=m
333CONFIG_CRYPTO_RMD160=m 438CONFIG_CRYPTO_RMD160=m
334CONFIG_CRYPTO_RMD256=m 439CONFIG_CRYPTO_RMD256=m
335CONFIG_CRYPTO_RMD320=m 440CONFIG_CRYPTO_RMD320=m
336CONFIG_CRYPTO_SHA256=m
337CONFIG_CRYPTO_SHA512=m 441CONFIG_CRYPTO_SHA512=m
338CONFIG_CRYPTO_TGR192=m 442CONFIG_CRYPTO_TGR192=m
339CONFIG_CRYPTO_WP512=m 443CONFIG_CRYPTO_WP512=m
340CONFIG_CRYPTO_AES=m
341CONFIG_CRYPTO_ANUBIS=m 444CONFIG_CRYPTO_ANUBIS=m
342CONFIG_CRYPTO_BLOWFISH=m 445CONFIG_CRYPTO_BLOWFISH=m
343CONFIG_CRYPTO_CAMELLIA=m 446CONFIG_CRYPTO_CAMELLIA=m
@@ -353,6 +456,14 @@ CONFIG_CRYPTO_TWOFISH=m
353CONFIG_CRYPTO_ZLIB=m 456CONFIG_CRYPTO_ZLIB=m
354CONFIG_CRYPTO_LZO=m 457CONFIG_CRYPTO_LZO=m
355# CONFIG_CRYPTO_ANSI_CPRNG is not set 458# CONFIG_CRYPTO_ANSI_CPRNG is not set
459CONFIG_CRYPTO_USER_API_HASH=m
460CONFIG_CRYPTO_USER_API_SKCIPHER=m
356# CONFIG_CRYPTO_HW is not set 461# CONFIG_CRYPTO_HW is not set
357CONFIG_CRC16=y
358CONFIG_CRC_T10DIF=y 462CONFIG_CRC_T10DIF=y
463CONFIG_XZ_DEC_X86=y
464CONFIG_XZ_DEC_POWERPC=y
465CONFIG_XZ_DEC_IA64=y
466CONFIG_XZ_DEC_ARM=y
467CONFIG_XZ_DEC_ARMTHUMB=y
468CONFIG_XZ_DEC_SPARC=y
469CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index 12f211733ba0..c015ddb6fd80 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_defconfig
@@ -1,53 +1,74 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-bvme6000" 1CONFIG_LOCALVERSION="-bvme6000"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_VME=y 16CONFIG_PARTITION_ADVANCED=y
14CONFIG_BVME6000=y 17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_IOSCHED_DEADLINE=m
15CONFIG_M68040=y 27CONFIG_M68040=y
16CONFIG_M68060=y 28CONFIG_M68060=y
29CONFIG_VME=y
30CONFIG_BVME6000=y
31# CONFIG_COMPACTION is not set
32CONFIG_CLEANCACHE=y
33# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
17CONFIG_BINFMT_AOUT=m 34CONFIG_BINFMT_AOUT=m
18CONFIG_BINFMT_MISC=m 35CONFIG_BINFMT_MISC=m
19CONFIG_PROC_HARDWARE=y
20CONFIG_NET=y 36CONFIG_NET=y
21CONFIG_PACKET=y 37CONFIG_PACKET=y
38CONFIG_PACKET_DIAG=m
22CONFIG_UNIX=y 39CONFIG_UNIX=y
40CONFIG_UNIX_DIAG=m
41CONFIG_XFRM_MIGRATE=y
23CONFIG_NET_KEY=y 42CONFIG_NET_KEY=y
24CONFIG_NET_KEY_MIGRATE=y
25CONFIG_INET=y 43CONFIG_INET=y
26CONFIG_IP_PNP=y 44CONFIG_IP_PNP=y
27CONFIG_IP_PNP_DHCP=y 45CONFIG_IP_PNP_DHCP=y
28CONFIG_IP_PNP_BOOTP=y 46CONFIG_IP_PNP_BOOTP=y
29CONFIG_IP_PNP_RARP=y 47CONFIG_IP_PNP_RARP=y
30CONFIG_NET_IPIP=m 48CONFIG_NET_IPIP=m
49CONFIG_NET_IPGRE_DEMUX=m
31CONFIG_NET_IPGRE=m 50CONFIG_NET_IPGRE=m
32CONFIG_SYN_COOKIES=y 51CONFIG_SYN_COOKIES=y
52CONFIG_NET_IPVTI=m
33CONFIG_INET_AH=m 53CONFIG_INET_AH=m
34CONFIG_INET_ESP=m 54CONFIG_INET_ESP=m
35CONFIG_INET_IPCOMP=m 55CONFIG_INET_IPCOMP=m
36CONFIG_INET_XFRM_MODE_TRANSPORT=m 56CONFIG_INET_XFRM_MODE_TRANSPORT=m
37CONFIG_INET_XFRM_MODE_TUNNEL=m 57CONFIG_INET_XFRM_MODE_TUNNEL=m
38CONFIG_INET_XFRM_MODE_BEET=m 58CONFIG_INET_XFRM_MODE_BEET=m
59# CONFIG_INET_LRO is not set
39CONFIG_INET_DIAG=m 60CONFIG_INET_DIAG=m
61CONFIG_INET_UDP_DIAG=m
40CONFIG_IPV6_PRIVACY=y 62CONFIG_IPV6_PRIVACY=y
41CONFIG_IPV6_ROUTER_PREF=y 63CONFIG_IPV6_ROUTER_PREF=y
42CONFIG_IPV6_ROUTE_INFO=y
43CONFIG_INET6_AH=m 64CONFIG_INET6_AH=m
44CONFIG_INET6_ESP=m 65CONFIG_INET6_ESP=m
45CONFIG_INET6_IPCOMP=m 66CONFIG_INET6_IPCOMP=m
46CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 67CONFIG_IPV6_GRE=m
47CONFIG_IPV6_TUNNEL=m
48CONFIG_NETFILTER=y 68CONFIG_NETFILTER=y
49CONFIG_NETFILTER_NETLINK_QUEUE=m
50CONFIG_NF_CONNTRACK=m 69CONFIG_NF_CONNTRACK=m
70CONFIG_NF_CONNTRACK_ZONES=y
71# CONFIG_NF_CONNTRACK_PROCFS is not set
51# CONFIG_NF_CT_PROTO_DCCP is not set 72# CONFIG_NF_CT_PROTO_DCCP is not set
52CONFIG_NF_CT_PROTO_UDPLITE=m 73CONFIG_NF_CT_PROTO_UDPLITE=m
53CONFIG_NF_CONNTRACK_AMANDA=m 74CONFIG_NF_CONNTRACK_AMANDA=m
@@ -55,25 +76,37 @@ CONFIG_NF_CONNTRACK_FTP=m
55CONFIG_NF_CONNTRACK_H323=m 76CONFIG_NF_CONNTRACK_H323=m
56CONFIG_NF_CONNTRACK_IRC=m 77CONFIG_NF_CONNTRACK_IRC=m
57CONFIG_NF_CONNTRACK_NETBIOS_NS=m 78CONFIG_NF_CONNTRACK_NETBIOS_NS=m
79CONFIG_NF_CONNTRACK_SNMP=m
58CONFIG_NF_CONNTRACK_PPTP=m 80CONFIG_NF_CONNTRACK_PPTP=m
59CONFIG_NF_CONNTRACK_SANE=m 81CONFIG_NF_CONNTRACK_SANE=m
60CONFIG_NF_CONNTRACK_SIP=m 82CONFIG_NF_CONNTRACK_SIP=m
61CONFIG_NF_CONNTRACK_TFTP=m 83CONFIG_NF_CONNTRACK_TFTP=m
84CONFIG_NETFILTER_XT_SET=m
85CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
62CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 86CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
63CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 87CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
64CONFIG_NETFILTER_XT_TARGET_DSCP=m 88CONFIG_NETFILTER_XT_TARGET_DSCP=m
89CONFIG_NETFILTER_XT_TARGET_HMARK=m
90CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
91CONFIG_NETFILTER_XT_TARGET_LOG=m
65CONFIG_NETFILTER_XT_TARGET_MARK=m 92CONFIG_NETFILTER_XT_TARGET_MARK=m
66CONFIG_NETFILTER_XT_TARGET_NFLOG=m 93CONFIG_NETFILTER_XT_TARGET_NFLOG=m
67CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 94CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
95CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
96CONFIG_NETFILTER_XT_TARGET_TEE=m
68CONFIG_NETFILTER_XT_TARGET_TRACE=m 97CONFIG_NETFILTER_XT_TARGET_TRACE=m
69CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 98CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
70CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 99CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
100CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
101CONFIG_NETFILTER_XT_MATCH_BPF=m
71CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 102CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
72CONFIG_NETFILTER_XT_MATCH_COMMENT=m 103CONFIG_NETFILTER_XT_MATCH_COMMENT=m
73CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 104CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
105CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
74CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 106CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
75CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 107CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
76CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 108CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
109CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
77CONFIG_NETFILTER_XT_MATCH_DSCP=m 110CONFIG_NETFILTER_XT_MATCH_DSCP=m
78CONFIG_NETFILTER_XT_MATCH_ESP=m 111CONFIG_NETFILTER_XT_MATCH_ESP=m
79CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 112CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -84,6 +117,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
84CONFIG_NETFILTER_XT_MATCH_MAC=m 117CONFIG_NETFILTER_XT_MATCH_MAC=m
85CONFIG_NETFILTER_XT_MATCH_MARK=m 118CONFIG_NETFILTER_XT_MATCH_MARK=m
86CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 119CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
120CONFIG_NETFILTER_XT_MATCH_NFACCT=m
121CONFIG_NETFILTER_XT_MATCH_OSF=m
87CONFIG_NETFILTER_XT_MATCH_OWNER=m 122CONFIG_NETFILTER_XT_MATCH_OWNER=m
88CONFIG_NETFILTER_XT_MATCH_POLICY=m 123CONFIG_NETFILTER_XT_MATCH_POLICY=m
89CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 124CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -97,22 +132,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
97CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 132CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
98CONFIG_NETFILTER_XT_MATCH_TIME=m 133CONFIG_NETFILTER_XT_MATCH_TIME=m
99CONFIG_NETFILTER_XT_MATCH_U32=m 134CONFIG_NETFILTER_XT_MATCH_U32=m
135CONFIG_IP_SET=m
136CONFIG_IP_SET_BITMAP_IP=m
137CONFIG_IP_SET_BITMAP_IPMAC=m
138CONFIG_IP_SET_BITMAP_PORT=m
139CONFIG_IP_SET_HASH_IP=m
140CONFIG_IP_SET_HASH_IPPORT=m
141CONFIG_IP_SET_HASH_IPPORTIP=m
142CONFIG_IP_SET_HASH_IPPORTNET=m
143CONFIG_IP_SET_HASH_NET=m
144CONFIG_IP_SET_HASH_NETPORT=m
145CONFIG_IP_SET_HASH_NETIFACE=m
146CONFIG_IP_SET_LIST_SET=m
100CONFIG_NF_CONNTRACK_IPV4=m 147CONFIG_NF_CONNTRACK_IPV4=m
101CONFIG_IP_NF_QUEUE=m
102CONFIG_IP_NF_IPTABLES=m 148CONFIG_IP_NF_IPTABLES=m
103CONFIG_IP_NF_MATCH_ADDRTYPE=m
104CONFIG_IP_NF_MATCH_AH=m 149CONFIG_IP_NF_MATCH_AH=m
105CONFIG_IP_NF_MATCH_ECN=m 150CONFIG_IP_NF_MATCH_ECN=m
151CONFIG_IP_NF_MATCH_RPFILTER=m
106CONFIG_IP_NF_MATCH_TTL=m 152CONFIG_IP_NF_MATCH_TTL=m
107CONFIG_IP_NF_FILTER=m 153CONFIG_IP_NF_FILTER=m
108CONFIG_IP_NF_TARGET_REJECT=m 154CONFIG_IP_NF_TARGET_REJECT=m
109CONFIG_IP_NF_TARGET_LOG=m
110CONFIG_IP_NF_TARGET_ULOG=m 155CONFIG_IP_NF_TARGET_ULOG=m
111CONFIG_NF_NAT=m 156CONFIG_NF_NAT_IPV4=m
112CONFIG_IP_NF_TARGET_MASQUERADE=m 157CONFIG_IP_NF_TARGET_MASQUERADE=m
113CONFIG_IP_NF_TARGET_NETMAP=m 158CONFIG_IP_NF_TARGET_NETMAP=m
114CONFIG_IP_NF_TARGET_REDIRECT=m 159CONFIG_IP_NF_TARGET_REDIRECT=m
115CONFIG_NF_NAT_SNMP_BASIC=m
116CONFIG_IP_NF_MANGLE=m 160CONFIG_IP_NF_MANGLE=m
117CONFIG_IP_NF_TARGET_CLUSTERIP=m 161CONFIG_IP_NF_TARGET_CLUSTERIP=m
118CONFIG_IP_NF_TARGET_ECN=m 162CONFIG_IP_NF_TARGET_ECN=m
@@ -122,7 +166,6 @@ CONFIG_IP_NF_ARPTABLES=m
122CONFIG_IP_NF_ARPFILTER=m 166CONFIG_IP_NF_ARPFILTER=m
123CONFIG_IP_NF_ARP_MANGLE=m 167CONFIG_IP_NF_ARP_MANGLE=m
124CONFIG_NF_CONNTRACK_IPV6=m 168CONFIG_NF_CONNTRACK_IPV6=m
125CONFIG_IP6_NF_QUEUE=m
126CONFIG_IP6_NF_IPTABLES=m 169CONFIG_IP6_NF_IPTABLES=m
127CONFIG_IP6_NF_MATCH_AH=m 170CONFIG_IP6_NF_MATCH_AH=m
128CONFIG_IP6_NF_MATCH_EUI64=m 171CONFIG_IP6_NF_MATCH_EUI64=m
@@ -131,21 +174,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
131CONFIG_IP6_NF_MATCH_HL=m 174CONFIG_IP6_NF_MATCH_HL=m
132CONFIG_IP6_NF_MATCH_IPV6HEADER=m 175CONFIG_IP6_NF_MATCH_IPV6HEADER=m
133CONFIG_IP6_NF_MATCH_MH=m 176CONFIG_IP6_NF_MATCH_MH=m
177CONFIG_IP6_NF_MATCH_RPFILTER=m
134CONFIG_IP6_NF_MATCH_RT=m 178CONFIG_IP6_NF_MATCH_RT=m
135CONFIG_IP6_NF_TARGET_HL=m 179CONFIG_IP6_NF_TARGET_HL=m
136CONFIG_IP6_NF_TARGET_LOG=m
137CONFIG_IP6_NF_FILTER=m 180CONFIG_IP6_NF_FILTER=m
138CONFIG_IP6_NF_TARGET_REJECT=m 181CONFIG_IP6_NF_TARGET_REJECT=m
139CONFIG_IP6_NF_MANGLE=m 182CONFIG_IP6_NF_MANGLE=m
140CONFIG_IP6_NF_RAW=m 183CONFIG_IP6_NF_RAW=m
184CONFIG_NF_NAT_IPV6=m
185CONFIG_IP6_NF_TARGET_MASQUERADE=m
186CONFIG_IP6_NF_TARGET_NPT=m
141CONFIG_IP_DCCP=m 187CONFIG_IP_DCCP=m
142# CONFIG_IP_DCCP_CCID3 is not set 188# CONFIG_IP_DCCP_CCID3 is not set
189CONFIG_SCTP_COOKIE_HMAC_SHA1=y
190CONFIG_RDS=m
191CONFIG_RDS_TCP=m
192CONFIG_L2TP=m
143CONFIG_ATALK=m 193CONFIG_ATALK=m
194CONFIG_BATMAN_ADV=m
195CONFIG_BATMAN_ADV_DAT=y
196# CONFIG_WIRELESS is not set
144CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 197CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
198CONFIG_DEVTMPFS=y
145# CONFIG_FIRMWARE_IN_KERNEL is not set 199# CONFIG_FIRMWARE_IN_KERNEL is not set
200# CONFIG_FW_LOADER_USER_HELPER is not set
146CONFIG_CONNECTOR=m 201CONFIG_CONNECTOR=m
147CONFIG_BLK_DEV_LOOP=y 202CONFIG_BLK_DEV_LOOP=y
148CONFIG_BLK_DEV_CRYPTOLOOP=m 203CONFIG_BLK_DEV_CRYPTOLOOP=m
204CONFIG_BLK_DEV_DRBD=m
149CONFIG_BLK_DEV_NBD=m 205CONFIG_BLK_DEV_NBD=m
150CONFIG_BLK_DEV_RAM=y 206CONFIG_BLK_DEV_RAM=y
151CONFIG_CDROM_PKTCDVD=m 207CONFIG_CDROM_PKTCDVD=m
@@ -160,103 +216,131 @@ CONFIG_BLK_DEV_SR=y
160CONFIG_BLK_DEV_SR_VENDOR=y 216CONFIG_BLK_DEV_SR_VENDOR=y
161CONFIG_CHR_DEV_SG=m 217CONFIG_CHR_DEV_SG=m
162CONFIG_SCSI_CONSTANTS=y 218CONFIG_SCSI_CONSTANTS=y
163CONFIG_SCSI_SAS_LIBSAS=m 219CONFIG_SCSI_SAS_ATTRS=m
164# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
165CONFIG_SCSI_SRP_ATTRS=m
166CONFIG_SCSI_SRP_TGT_ATTRS=y
167CONFIG_ISCSI_TCP=m 220CONFIG_ISCSI_TCP=m
221CONFIG_ISCSI_BOOT_SYSFS=m
168CONFIG_BVME6000_SCSI=y 222CONFIG_BVME6000_SCSI=y
169CONFIG_MD=y 223CONFIG_MD=y
170CONFIG_BLK_DEV_MD=m
171CONFIG_MD_LINEAR=m 224CONFIG_MD_LINEAR=m
172CONFIG_MD_RAID0=m 225CONFIG_MD_RAID0=m
173CONFIG_MD_RAID1=m
174CONFIG_MD_RAID456=m
175CONFIG_BLK_DEV_DM=m 226CONFIG_BLK_DEV_DM=m
176CONFIG_DM_CRYPT=m 227CONFIG_DM_CRYPT=m
177CONFIG_DM_SNAPSHOT=m 228CONFIG_DM_SNAPSHOT=m
229CONFIG_DM_THIN_PROVISIONING=m
230CONFIG_DM_CACHE=m
178CONFIG_DM_MIRROR=m 231CONFIG_DM_MIRROR=m
232CONFIG_DM_RAID=m
179CONFIG_DM_ZERO=m 233CONFIG_DM_ZERO=m
180CONFIG_DM_MULTIPATH=m 234CONFIG_DM_MULTIPATH=m
181CONFIG_DM_UEVENT=y 235CONFIG_DM_UEVENT=y
236CONFIG_TARGET_CORE=m
237CONFIG_TCM_IBLOCK=m
238CONFIG_TCM_FILEIO=m
239CONFIG_TCM_PSCSI=m
182CONFIG_NETDEVICES=y 240CONFIG_NETDEVICES=y
183CONFIG_DUMMY=m 241CONFIG_DUMMY=m
184CONFIG_MACVLAN=m
185CONFIG_EQUALIZER=m 242CONFIG_EQUALIZER=m
243CONFIG_NET_TEAM=m
244CONFIG_NET_TEAM_MODE_BROADCAST=m
245CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
246CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
247CONFIG_NET_TEAM_MODE_LOADBALANCE=m
248CONFIG_VXLAN=m
249CONFIG_NETCONSOLE=m
250CONFIG_NETCONSOLE_DYNAMIC=y
186CONFIG_VETH=m 251CONFIG_VETH=m
187CONFIG_NET_ETHERNET=y 252# CONFIG_NET_CADENCE is not set
253# CONFIG_NET_VENDOR_BROADCOM is not set
188CONFIG_BVME6000_NET=y 254CONFIG_BVME6000_NET=y
189# CONFIG_NETDEV_1000 is not set 255# CONFIG_NET_VENDOR_MARVELL is not set
190# CONFIG_NETDEV_10000 is not set 256# CONFIG_NET_VENDOR_MICREL is not set
257# CONFIG_NET_VENDOR_NATSEMI is not set
258# CONFIG_NET_VENDOR_SEEQ is not set
259# CONFIG_NET_VENDOR_STMICRO is not set
260# CONFIG_NET_VENDOR_WIZNET is not set
191CONFIG_PPP=m 261CONFIG_PPP=m
192CONFIG_PPP_FILTER=y
193CONFIG_PPP_ASYNC=m
194CONFIG_PPP_SYNC_TTY=m
195CONFIG_PPP_DEFLATE=m
196CONFIG_PPP_BSDCOMP=m 262CONFIG_PPP_BSDCOMP=m
263CONFIG_PPP_DEFLATE=m
264CONFIG_PPP_FILTER=y
197CONFIG_PPP_MPPE=m 265CONFIG_PPP_MPPE=m
198CONFIG_PPPOE=m 266CONFIG_PPPOE=m
267CONFIG_PPTP=m
268CONFIG_PPPOL2TP=m
269CONFIG_PPP_ASYNC=m
270CONFIG_PPP_SYNC_TTY=m
199CONFIG_SLIP=m 271CONFIG_SLIP=m
200CONFIG_SLIP_COMPRESSED=y 272CONFIG_SLIP_COMPRESSED=y
201CONFIG_SLIP_SMART=y 273CONFIG_SLIP_SMART=y
202CONFIG_SLIP_MODE_SLIP6=y 274CONFIG_SLIP_MODE_SLIP6=y
203CONFIG_NETCONSOLE=m 275# CONFIG_WLAN is not set
204CONFIG_NETCONSOLE_DYNAMIC=y 276CONFIG_INPUT_EVDEV=m
205CONFIG_INPUT_FF_MEMLESS=m
206# CONFIG_KEYBOARD_ATKBD is not set 277# CONFIG_KEYBOARD_ATKBD is not set
207CONFIG_MOUSE_PS2=m 278# CONFIG_MOUSE_PS2 is not set
208CONFIG_MOUSE_SERIAL=m 279# CONFIG_SERIO is not set
209CONFIG_SERIO=m
210# CONFIG_SERIO_SERPORT is not set
211CONFIG_VT_HW_CONSOLE_BINDING=y 280CONFIG_VT_HW_CONSOLE_BINDING=y
281# CONFIG_LEGACY_PTYS is not set
212# CONFIG_DEVKMEM is not set 282# CONFIG_DEVKMEM is not set
213# CONFIG_HW_RANDOM is not set 283# CONFIG_HW_RANDOM is not set
214CONFIG_GEN_RTC=m 284CONFIG_NTP_PPS=y
215CONFIG_GEN_RTC_X=y 285CONFIG_PPS_CLIENT_LDISC=m
286CONFIG_PTP_1588_CLOCK=m
216# CONFIG_HWMON is not set 287# CONFIG_HWMON is not set
217CONFIG_HID=m 288CONFIG_HID=m
218CONFIG_HIDRAW=y 289CONFIG_HIDRAW=y
290CONFIG_UHID=m
291# CONFIG_HID_GENERIC is not set
219# CONFIG_USB_SUPPORT is not set 292# CONFIG_USB_SUPPORT is not set
293CONFIG_RTC_CLASS=y
294CONFIG_RTC_DRV_GENERIC=m
295# CONFIG_IOMMU_SUPPORT is not set
296CONFIG_PROC_HARDWARE=y
220CONFIG_EXT2_FS=y 297CONFIG_EXT2_FS=y
221CONFIG_EXT3_FS=y 298CONFIG_EXT3_FS=y
222# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 299# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
223# CONFIG_EXT3_FS_XATTR is not set 300# CONFIG_EXT3_FS_XATTR is not set
301CONFIG_EXT4_FS=y
224CONFIG_REISERFS_FS=m 302CONFIG_REISERFS_FS=m
225CONFIG_JFS_FS=m 303CONFIG_JFS_FS=m
226CONFIG_XFS_FS=m 304CONFIG_XFS_FS=m
227CONFIG_OCFS2_FS=m 305CONFIG_OCFS2_FS=m
228# CONFIG_OCFS2_FS_STATS is not set
229# CONFIG_OCFS2_DEBUG_MASKLOG is not set 306# CONFIG_OCFS2_DEBUG_MASKLOG is not set
307CONFIG_FANOTIFY=y
230CONFIG_QUOTA_NETLINK_INTERFACE=y 308CONFIG_QUOTA_NETLINK_INTERFACE=y
231# CONFIG_PRINT_QUOTA_WARNING is not set 309# CONFIG_PRINT_QUOTA_WARNING is not set
232CONFIG_AUTOFS_FS=m
233CONFIG_AUTOFS4_FS=m 310CONFIG_AUTOFS4_FS=m
234CONFIG_FUSE_FS=m 311CONFIG_FUSE_FS=m
312CONFIG_CUSE=m
235CONFIG_ISO9660_FS=y 313CONFIG_ISO9660_FS=y
236CONFIG_JOLIET=y 314CONFIG_JOLIET=y
237CONFIG_ZISOFS=y 315CONFIG_ZISOFS=y
238CONFIG_UDF_FS=m 316CONFIG_UDF_FS=m
239CONFIG_MSDOS_FS=y 317CONFIG_MSDOS_FS=m
240CONFIG_VFAT_FS=m 318CONFIG_VFAT_FS=m
241CONFIG_PROC_KCORE=y 319CONFIG_PROC_KCORE=y
242CONFIG_TMPFS=y 320CONFIG_TMPFS=y
243CONFIG_AFFS_FS=m 321CONFIG_AFFS_FS=m
322CONFIG_ECRYPT_FS=m
323CONFIG_ECRYPT_FS_MESSAGING=y
244CONFIG_HFS_FS=m 324CONFIG_HFS_FS=m
245CONFIG_HFSPLUS_FS=m 325CONFIG_HFSPLUS_FS=m
246CONFIG_CRAMFS=m 326CONFIG_CRAMFS=m
247CONFIG_SQUASHFS=m 327CONFIG_SQUASHFS=m
248CONFIG_MINIX_FS=y 328CONFIG_SQUASHFS_LZO=y
329CONFIG_MINIX_FS=m
330CONFIG_OMFS_FS=m
249CONFIG_HPFS_FS=m 331CONFIG_HPFS_FS=m
332CONFIG_QNX4FS_FS=m
333CONFIG_QNX6FS_FS=m
250CONFIG_SYSV_FS=m 334CONFIG_SYSV_FS=m
251CONFIG_UFS_FS=m 335CONFIG_UFS_FS=m
252CONFIG_NFS_FS=y 336CONFIG_NFS_FS=y
253CONFIG_NFS_V3=y
254CONFIG_NFS_V4=y 337CONFIG_NFS_V4=y
338CONFIG_NFS_SWAP=y
255CONFIG_ROOT_NFS=y 339CONFIG_ROOT_NFS=y
256CONFIG_NFSD=m 340CONFIG_NFSD=m
257CONFIG_NFSD_V3=y 341CONFIG_NFSD_V3=y
258CONFIG_SMB_FS=m 342CONFIG_CIFS=m
259CONFIG_SMB_NLS_DEFAULT=y 343# CONFIG_CIFS_DEBUG is not set
260CONFIG_CODA_FS=m 344CONFIG_CODA_FS=m
261CONFIG_NLS_CODEPAGE_437=y 345CONFIG_NLS_CODEPAGE_437=y
262CONFIG_NLS_CODEPAGE_737=m 346CONFIG_NLS_CODEPAGE_737=m
@@ -295,10 +379,23 @@ CONFIG_NLS_ISO8859_14=m
295CONFIG_NLS_ISO8859_15=m 379CONFIG_NLS_ISO8859_15=m
296CONFIG_NLS_KOI8_R=m 380CONFIG_NLS_KOI8_R=m
297CONFIG_NLS_KOI8_U=m 381CONFIG_NLS_KOI8_U=m
382CONFIG_NLS_MAC_ROMAN=m
383CONFIG_NLS_MAC_CELTIC=m
384CONFIG_NLS_MAC_CENTEURO=m
385CONFIG_NLS_MAC_CROATIAN=m
386CONFIG_NLS_MAC_CYRILLIC=m
387CONFIG_NLS_MAC_GAELIC=m
388CONFIG_NLS_MAC_GREEK=m
389CONFIG_NLS_MAC_ICELAND=m
390CONFIG_NLS_MAC_INUIT=m
391CONFIG_NLS_MAC_ROMANIAN=m
392CONFIG_NLS_MAC_TURKISH=m
298CONFIG_DLM=m 393CONFIG_DLM=m
299CONFIG_MAGIC_SYSRQ=y 394CONFIG_MAGIC_SYSRQ=y
300# CONFIG_RCU_CPU_STALL_DETECTOR is not set 395CONFIG_ASYNC_RAID6_TEST=m
301CONFIG_SYSCTL_SYSCALL_CHECK=y 396CONFIG_ENCRYPTED_KEYS=m
397CONFIG_CRYPTO_MANAGER=y
398CONFIG_CRYPTO_USER=m
302CONFIG_CRYPTO_NULL=m 399CONFIG_CRYPTO_NULL=m
303CONFIG_CRYPTO_CRYPTD=m 400CONFIG_CRYPTO_CRYPTD=m
304CONFIG_CRYPTO_TEST=m 401CONFIG_CRYPTO_TEST=m
@@ -308,19 +405,16 @@ CONFIG_CRYPTO_CTS=m
308CONFIG_CRYPTO_LRW=m 405CONFIG_CRYPTO_LRW=m
309CONFIG_CRYPTO_PCBC=m 406CONFIG_CRYPTO_PCBC=m
310CONFIG_CRYPTO_XTS=m 407CONFIG_CRYPTO_XTS=m
311CONFIG_CRYPTO_HMAC=y
312CONFIG_CRYPTO_XCBC=m 408CONFIG_CRYPTO_XCBC=m
313CONFIG_CRYPTO_MD4=m 409CONFIG_CRYPTO_VMAC=m
314CONFIG_CRYPTO_MICHAEL_MIC=m 410CONFIG_CRYPTO_MICHAEL_MIC=m
315CONFIG_CRYPTO_RMD128=m 411CONFIG_CRYPTO_RMD128=m
316CONFIG_CRYPTO_RMD160=m 412CONFIG_CRYPTO_RMD160=m
317CONFIG_CRYPTO_RMD256=m 413CONFIG_CRYPTO_RMD256=m
318CONFIG_CRYPTO_RMD320=m 414CONFIG_CRYPTO_RMD320=m
319CONFIG_CRYPTO_SHA256=m
320CONFIG_CRYPTO_SHA512=m 415CONFIG_CRYPTO_SHA512=m
321CONFIG_CRYPTO_TGR192=m 416CONFIG_CRYPTO_TGR192=m
322CONFIG_CRYPTO_WP512=m 417CONFIG_CRYPTO_WP512=m
323CONFIG_CRYPTO_AES=m
324CONFIG_CRYPTO_ANUBIS=m 418CONFIG_CRYPTO_ANUBIS=m
325CONFIG_CRYPTO_BLOWFISH=m 419CONFIG_CRYPTO_BLOWFISH=m
326CONFIG_CRYPTO_CAMELLIA=m 420CONFIG_CRYPTO_CAMELLIA=m
@@ -336,7 +430,14 @@ CONFIG_CRYPTO_TWOFISH=m
336CONFIG_CRYPTO_ZLIB=m 430CONFIG_CRYPTO_ZLIB=m
337CONFIG_CRYPTO_LZO=m 431CONFIG_CRYPTO_LZO=m
338# CONFIG_CRYPTO_ANSI_CPRNG is not set 432# CONFIG_CRYPTO_ANSI_CPRNG is not set
433CONFIG_CRYPTO_USER_API_HASH=m
434CONFIG_CRYPTO_USER_API_SKCIPHER=m
339# CONFIG_CRYPTO_HW is not set 435# CONFIG_CRYPTO_HW is not set
340CONFIG_CRC16=m
341CONFIG_CRC_T10DIF=y 436CONFIG_CRC_T10DIF=y
342CONFIG_CRC32=m 437CONFIG_XZ_DEC_X86=y
438CONFIG_XZ_DEC_POWERPC=y
439CONFIG_XZ_DEC_IA64=y
440CONFIG_XZ_DEC_ARM=y
441CONFIG_XZ_DEC_ARMTHUMB=y
442CONFIG_XZ_DEC_SPARC=y
443CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 215389a5407f..ec7382d8afff 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_defconfig
@@ -1,54 +1,76 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-hp300" 1CONFIG_LOCALVERSION="-hp300"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_HP300=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_SYSV68_PARTITION=y
27CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68020=y 28CONFIG_M68020=y
15CONFIG_M68030=y 29CONFIG_M68030=y
16CONFIG_M68040=y 30CONFIG_M68040=y
17CONFIG_M68060=y 31CONFIG_M68060=y
32CONFIG_HP300=y
33# CONFIG_COMPACTION is not set
34CONFIG_CLEANCACHE=y
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
18CONFIG_BINFMT_AOUT=m 36CONFIG_BINFMT_AOUT=m
19CONFIG_BINFMT_MISC=m 37CONFIG_BINFMT_MISC=m
20CONFIG_PROC_HARDWARE=y
21CONFIG_NET=y 38CONFIG_NET=y
22CONFIG_PACKET=y 39CONFIG_PACKET=y
40CONFIG_PACKET_DIAG=m
23CONFIG_UNIX=y 41CONFIG_UNIX=y
42CONFIG_UNIX_DIAG=m
43CONFIG_XFRM_MIGRATE=y
24CONFIG_NET_KEY=y 44CONFIG_NET_KEY=y
25CONFIG_NET_KEY_MIGRATE=y
26CONFIG_INET=y 45CONFIG_INET=y
27CONFIG_IP_PNP=y 46CONFIG_IP_PNP=y
28CONFIG_IP_PNP_DHCP=y 47CONFIG_IP_PNP_DHCP=y
29CONFIG_IP_PNP_BOOTP=y 48CONFIG_IP_PNP_BOOTP=y
30CONFIG_IP_PNP_RARP=y 49CONFIG_IP_PNP_RARP=y
31CONFIG_NET_IPIP=m 50CONFIG_NET_IPIP=m
51CONFIG_NET_IPGRE_DEMUX=m
32CONFIG_NET_IPGRE=m 52CONFIG_NET_IPGRE=m
33CONFIG_SYN_COOKIES=y 53CONFIG_SYN_COOKIES=y
54CONFIG_NET_IPVTI=m
34CONFIG_INET_AH=m 55CONFIG_INET_AH=m
35CONFIG_INET_ESP=m 56CONFIG_INET_ESP=m
36CONFIG_INET_IPCOMP=m 57CONFIG_INET_IPCOMP=m
37CONFIG_INET_XFRM_MODE_TRANSPORT=m 58CONFIG_INET_XFRM_MODE_TRANSPORT=m
38CONFIG_INET_XFRM_MODE_TUNNEL=m 59CONFIG_INET_XFRM_MODE_TUNNEL=m
39CONFIG_INET_XFRM_MODE_BEET=m 60CONFIG_INET_XFRM_MODE_BEET=m
61# CONFIG_INET_LRO is not set
40CONFIG_INET_DIAG=m 62CONFIG_INET_DIAG=m
63CONFIG_INET_UDP_DIAG=m
41CONFIG_IPV6_PRIVACY=y 64CONFIG_IPV6_PRIVACY=y
42CONFIG_IPV6_ROUTER_PREF=y 65CONFIG_IPV6_ROUTER_PREF=y
43CONFIG_IPV6_ROUTE_INFO=y
44CONFIG_INET6_AH=m 66CONFIG_INET6_AH=m
45CONFIG_INET6_ESP=m 67CONFIG_INET6_ESP=m
46CONFIG_INET6_IPCOMP=m 68CONFIG_INET6_IPCOMP=m
47CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 69CONFIG_IPV6_GRE=m
48CONFIG_IPV6_TUNNEL=m
49CONFIG_NETFILTER=y 70CONFIG_NETFILTER=y
50CONFIG_NETFILTER_NETLINK_QUEUE=m
51CONFIG_NF_CONNTRACK=m 71CONFIG_NF_CONNTRACK=m
72CONFIG_NF_CONNTRACK_ZONES=y
73# CONFIG_NF_CONNTRACK_PROCFS is not set
52# CONFIG_NF_CT_PROTO_DCCP is not set 74# CONFIG_NF_CT_PROTO_DCCP is not set
53CONFIG_NF_CT_PROTO_UDPLITE=m 75CONFIG_NF_CT_PROTO_UDPLITE=m
54CONFIG_NF_CONNTRACK_AMANDA=m 76CONFIG_NF_CONNTRACK_AMANDA=m
@@ -56,25 +78,37 @@ CONFIG_NF_CONNTRACK_FTP=m
56CONFIG_NF_CONNTRACK_H323=m 78CONFIG_NF_CONNTRACK_H323=m
57CONFIG_NF_CONNTRACK_IRC=m 79CONFIG_NF_CONNTRACK_IRC=m
58CONFIG_NF_CONNTRACK_NETBIOS_NS=m 80CONFIG_NF_CONNTRACK_NETBIOS_NS=m
81CONFIG_NF_CONNTRACK_SNMP=m
59CONFIG_NF_CONNTRACK_PPTP=m 82CONFIG_NF_CONNTRACK_PPTP=m
60CONFIG_NF_CONNTRACK_SANE=m 83CONFIG_NF_CONNTRACK_SANE=m
61CONFIG_NF_CONNTRACK_SIP=m 84CONFIG_NF_CONNTRACK_SIP=m
62CONFIG_NF_CONNTRACK_TFTP=m 85CONFIG_NF_CONNTRACK_TFTP=m
86CONFIG_NETFILTER_XT_SET=m
87CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
63CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 88CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
64CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 89CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
65CONFIG_NETFILTER_XT_TARGET_DSCP=m 90CONFIG_NETFILTER_XT_TARGET_DSCP=m
91CONFIG_NETFILTER_XT_TARGET_HMARK=m
92CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
93CONFIG_NETFILTER_XT_TARGET_LOG=m
66CONFIG_NETFILTER_XT_TARGET_MARK=m 94CONFIG_NETFILTER_XT_TARGET_MARK=m
67CONFIG_NETFILTER_XT_TARGET_NFLOG=m 95CONFIG_NETFILTER_XT_TARGET_NFLOG=m
68CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 96CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
97CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
98CONFIG_NETFILTER_XT_TARGET_TEE=m
69CONFIG_NETFILTER_XT_TARGET_TRACE=m 99CONFIG_NETFILTER_XT_TARGET_TRACE=m
70CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 100CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
71CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 101CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
102CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
103CONFIG_NETFILTER_XT_MATCH_BPF=m
72CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 104CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
73CONFIG_NETFILTER_XT_MATCH_COMMENT=m 105CONFIG_NETFILTER_XT_MATCH_COMMENT=m
74CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 106CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
107CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
75CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 108CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
76CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 109CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
77CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 110CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
111CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
78CONFIG_NETFILTER_XT_MATCH_DSCP=m 112CONFIG_NETFILTER_XT_MATCH_DSCP=m
79CONFIG_NETFILTER_XT_MATCH_ESP=m 113CONFIG_NETFILTER_XT_MATCH_ESP=m
80CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 114CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -85,6 +119,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
85CONFIG_NETFILTER_XT_MATCH_MAC=m 119CONFIG_NETFILTER_XT_MATCH_MAC=m
86CONFIG_NETFILTER_XT_MATCH_MARK=m 120CONFIG_NETFILTER_XT_MATCH_MARK=m
87CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 121CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
122CONFIG_NETFILTER_XT_MATCH_NFACCT=m
123CONFIG_NETFILTER_XT_MATCH_OSF=m
88CONFIG_NETFILTER_XT_MATCH_OWNER=m 124CONFIG_NETFILTER_XT_MATCH_OWNER=m
89CONFIG_NETFILTER_XT_MATCH_POLICY=m 125CONFIG_NETFILTER_XT_MATCH_POLICY=m
90CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 126CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -98,22 +134,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
98CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 134CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
99CONFIG_NETFILTER_XT_MATCH_TIME=m 135CONFIG_NETFILTER_XT_MATCH_TIME=m
100CONFIG_NETFILTER_XT_MATCH_U32=m 136CONFIG_NETFILTER_XT_MATCH_U32=m
137CONFIG_IP_SET=m
138CONFIG_IP_SET_BITMAP_IP=m
139CONFIG_IP_SET_BITMAP_IPMAC=m
140CONFIG_IP_SET_BITMAP_PORT=m
141CONFIG_IP_SET_HASH_IP=m
142CONFIG_IP_SET_HASH_IPPORT=m
143CONFIG_IP_SET_HASH_IPPORTIP=m
144CONFIG_IP_SET_HASH_IPPORTNET=m
145CONFIG_IP_SET_HASH_NET=m
146CONFIG_IP_SET_HASH_NETPORT=m
147CONFIG_IP_SET_HASH_NETIFACE=m
148CONFIG_IP_SET_LIST_SET=m
101CONFIG_NF_CONNTRACK_IPV4=m 149CONFIG_NF_CONNTRACK_IPV4=m
102CONFIG_IP_NF_QUEUE=m
103CONFIG_IP_NF_IPTABLES=m 150CONFIG_IP_NF_IPTABLES=m
104CONFIG_IP_NF_MATCH_ADDRTYPE=m
105CONFIG_IP_NF_MATCH_AH=m 151CONFIG_IP_NF_MATCH_AH=m
106CONFIG_IP_NF_MATCH_ECN=m 152CONFIG_IP_NF_MATCH_ECN=m
153CONFIG_IP_NF_MATCH_RPFILTER=m
107CONFIG_IP_NF_MATCH_TTL=m 154CONFIG_IP_NF_MATCH_TTL=m
108CONFIG_IP_NF_FILTER=m 155CONFIG_IP_NF_FILTER=m
109CONFIG_IP_NF_TARGET_REJECT=m 156CONFIG_IP_NF_TARGET_REJECT=m
110CONFIG_IP_NF_TARGET_LOG=m
111CONFIG_IP_NF_TARGET_ULOG=m 157CONFIG_IP_NF_TARGET_ULOG=m
112CONFIG_NF_NAT=m 158CONFIG_NF_NAT_IPV4=m
113CONFIG_IP_NF_TARGET_MASQUERADE=m 159CONFIG_IP_NF_TARGET_MASQUERADE=m
114CONFIG_IP_NF_TARGET_NETMAP=m 160CONFIG_IP_NF_TARGET_NETMAP=m
115CONFIG_IP_NF_TARGET_REDIRECT=m 161CONFIG_IP_NF_TARGET_REDIRECT=m
116CONFIG_NF_NAT_SNMP_BASIC=m
117CONFIG_IP_NF_MANGLE=m 162CONFIG_IP_NF_MANGLE=m
118CONFIG_IP_NF_TARGET_CLUSTERIP=m 163CONFIG_IP_NF_TARGET_CLUSTERIP=m
119CONFIG_IP_NF_TARGET_ECN=m 164CONFIG_IP_NF_TARGET_ECN=m
@@ -123,7 +168,6 @@ CONFIG_IP_NF_ARPTABLES=m
123CONFIG_IP_NF_ARPFILTER=m 168CONFIG_IP_NF_ARPFILTER=m
124CONFIG_IP_NF_ARP_MANGLE=m 169CONFIG_IP_NF_ARP_MANGLE=m
125CONFIG_NF_CONNTRACK_IPV6=m 170CONFIG_NF_CONNTRACK_IPV6=m
126CONFIG_IP6_NF_QUEUE=m
127CONFIG_IP6_NF_IPTABLES=m 171CONFIG_IP6_NF_IPTABLES=m
128CONFIG_IP6_NF_MATCH_AH=m 172CONFIG_IP6_NF_MATCH_AH=m
129CONFIG_IP6_NF_MATCH_EUI64=m 173CONFIG_IP6_NF_MATCH_EUI64=m
@@ -132,21 +176,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
132CONFIG_IP6_NF_MATCH_HL=m 176CONFIG_IP6_NF_MATCH_HL=m
133CONFIG_IP6_NF_MATCH_IPV6HEADER=m 177CONFIG_IP6_NF_MATCH_IPV6HEADER=m
134CONFIG_IP6_NF_MATCH_MH=m 178CONFIG_IP6_NF_MATCH_MH=m
179CONFIG_IP6_NF_MATCH_RPFILTER=m
135CONFIG_IP6_NF_MATCH_RT=m 180CONFIG_IP6_NF_MATCH_RT=m
136CONFIG_IP6_NF_TARGET_HL=m 181CONFIG_IP6_NF_TARGET_HL=m
137CONFIG_IP6_NF_TARGET_LOG=m
138CONFIG_IP6_NF_FILTER=m 182CONFIG_IP6_NF_FILTER=m
139CONFIG_IP6_NF_TARGET_REJECT=m 183CONFIG_IP6_NF_TARGET_REJECT=m
140CONFIG_IP6_NF_MANGLE=m 184CONFIG_IP6_NF_MANGLE=m
141CONFIG_IP6_NF_RAW=m 185CONFIG_IP6_NF_RAW=m
186CONFIG_NF_NAT_IPV6=m
187CONFIG_IP6_NF_TARGET_MASQUERADE=m
188CONFIG_IP6_NF_TARGET_NPT=m
142CONFIG_IP_DCCP=m 189CONFIG_IP_DCCP=m
143# CONFIG_IP_DCCP_CCID3 is not set 190# CONFIG_IP_DCCP_CCID3 is not set
191CONFIG_SCTP_COOKIE_HMAC_SHA1=y
192CONFIG_RDS=m
193CONFIG_RDS_TCP=m
194CONFIG_L2TP=m
144CONFIG_ATALK=m 195CONFIG_ATALK=m
196CONFIG_BATMAN_ADV=m
197CONFIG_BATMAN_ADV_DAT=y
198# CONFIG_WIRELESS is not set
145CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 199CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
200CONFIG_DEVTMPFS=y
146# CONFIG_FIRMWARE_IN_KERNEL is not set 201# CONFIG_FIRMWARE_IN_KERNEL is not set
202# CONFIG_FW_LOADER_USER_HELPER is not set
147CONFIG_CONNECTOR=m 203CONFIG_CONNECTOR=m
148CONFIG_BLK_DEV_LOOP=y 204CONFIG_BLK_DEV_LOOP=y
149CONFIG_BLK_DEV_CRYPTOLOOP=m 205CONFIG_BLK_DEV_CRYPTOLOOP=m
206CONFIG_BLK_DEV_DRBD=m
150CONFIG_BLK_DEV_NBD=m 207CONFIG_BLK_DEV_NBD=m
151CONFIG_BLK_DEV_RAM=y 208CONFIG_BLK_DEV_RAM=y
152CONFIG_CDROM_PKTCDVD=m 209CONFIG_CDROM_PKTCDVD=m
@@ -161,59 +218,77 @@ CONFIG_BLK_DEV_SR=y
161CONFIG_BLK_DEV_SR_VENDOR=y 218CONFIG_BLK_DEV_SR_VENDOR=y
162CONFIG_CHR_DEV_SG=m 219CONFIG_CHR_DEV_SG=m
163CONFIG_SCSI_CONSTANTS=y 220CONFIG_SCSI_CONSTANTS=y
164CONFIG_SCSI_SAS_LIBSAS=m 221CONFIG_SCSI_SAS_ATTRS=m
165# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
166CONFIG_SCSI_SRP_ATTRS=m
167CONFIG_SCSI_SRP_TGT_ATTRS=y
168CONFIG_ISCSI_TCP=m 222CONFIG_ISCSI_TCP=m
223CONFIG_ISCSI_BOOT_SYSFS=m
169CONFIG_MD=y 224CONFIG_MD=y
170CONFIG_BLK_DEV_MD=m
171CONFIG_MD_LINEAR=m 225CONFIG_MD_LINEAR=m
172CONFIG_MD_RAID0=m 226CONFIG_MD_RAID0=m
173CONFIG_MD_RAID1=m
174CONFIG_MD_RAID456=m
175CONFIG_BLK_DEV_DM=m 227CONFIG_BLK_DEV_DM=m
176CONFIG_DM_CRYPT=m 228CONFIG_DM_CRYPT=m
177CONFIG_DM_SNAPSHOT=m 229CONFIG_DM_SNAPSHOT=m
230CONFIG_DM_THIN_PROVISIONING=m
231CONFIG_DM_CACHE=m
178CONFIG_DM_MIRROR=m 232CONFIG_DM_MIRROR=m
233CONFIG_DM_RAID=m
179CONFIG_DM_ZERO=m 234CONFIG_DM_ZERO=m
180CONFIG_DM_MULTIPATH=m 235CONFIG_DM_MULTIPATH=m
181CONFIG_DM_UEVENT=y 236CONFIG_DM_UEVENT=y
237CONFIG_TARGET_CORE=m
238CONFIG_TCM_IBLOCK=m
239CONFIG_TCM_FILEIO=m
240CONFIG_TCM_PSCSI=m
182CONFIG_NETDEVICES=y 241CONFIG_NETDEVICES=y
183CONFIG_DUMMY=m 242CONFIG_DUMMY=m
184CONFIG_MACVLAN=m
185CONFIG_EQUALIZER=m 243CONFIG_EQUALIZER=m
244CONFIG_NET_TEAM=m
245CONFIG_NET_TEAM_MODE_BROADCAST=m
246CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
247CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
248CONFIG_NET_TEAM_MODE_LOADBALANCE=m
249CONFIG_VXLAN=m
250CONFIG_NETCONSOLE=m
251CONFIG_NETCONSOLE_DYNAMIC=y
186CONFIG_VETH=m 252CONFIG_VETH=m
187CONFIG_NET_ETHERNET=y
188CONFIG_HPLANCE=y 253CONFIG_HPLANCE=y
189# CONFIG_NETDEV_1000 is not set 254# CONFIG_NET_CADENCE is not set
190# CONFIG_NETDEV_10000 is not set 255# CONFIG_NET_VENDOR_BROADCOM is not set
256# CONFIG_NET_VENDOR_INTEL is not set
257# CONFIG_NET_VENDOR_MARVELL is not set
258# CONFIG_NET_VENDOR_MICREL is not set
259# CONFIG_NET_VENDOR_NATSEMI is not set
260# CONFIG_NET_VENDOR_SEEQ is not set
261# CONFIG_NET_VENDOR_STMICRO is not set
262# CONFIG_NET_VENDOR_WIZNET is not set
191CONFIG_PPP=m 263CONFIG_PPP=m
192CONFIG_PPP_FILTER=y
193CONFIG_PPP_ASYNC=m
194CONFIG_PPP_SYNC_TTY=m
195CONFIG_PPP_DEFLATE=m
196CONFIG_PPP_BSDCOMP=m 264CONFIG_PPP_BSDCOMP=m
265CONFIG_PPP_DEFLATE=m
266CONFIG_PPP_FILTER=y
197CONFIG_PPP_MPPE=m 267CONFIG_PPP_MPPE=m
198CONFIG_PPPOE=m 268CONFIG_PPPOE=m
269CONFIG_PPTP=m
270CONFIG_PPPOL2TP=m
271CONFIG_PPP_ASYNC=m
272CONFIG_PPP_SYNC_TTY=m
199CONFIG_SLIP=m 273CONFIG_SLIP=m
200CONFIG_SLIP_COMPRESSED=y 274CONFIG_SLIP_COMPRESSED=y
201CONFIG_SLIP_SMART=y 275CONFIG_SLIP_SMART=y
202CONFIG_SLIP_MODE_SLIP6=y 276CONFIG_SLIP_MODE_SLIP6=y
203CONFIG_NETCONSOLE=m 277# CONFIG_WLAN is not set
204CONFIG_NETCONSOLE_DYNAMIC=y 278CONFIG_INPUT_EVDEV=m
205CONFIG_INPUT_FF_MEMLESS=m
206# CONFIG_KEYBOARD_ATKBD is not set 279# CONFIG_KEYBOARD_ATKBD is not set
207CONFIG_MOUSE_PS2=m 280# CONFIG_MOUSE_PS2 is not set
208CONFIG_MOUSE_SERIAL=m 281CONFIG_MOUSE_SERIAL=m
209CONFIG_INPUT_MISC=y 282CONFIG_INPUT_MISC=y
210CONFIG_HP_SDC_RTC=m 283CONFIG_HP_SDC_RTC=m
211# CONFIG_SERIO_SERPORT is not set 284CONFIG_SERIO_SERPORT=m
212CONFIG_VT_HW_CONSOLE_BINDING=y 285CONFIG_VT_HW_CONSOLE_BINDING=y
286# CONFIG_LEGACY_PTYS is not set
213# CONFIG_DEVKMEM is not set 287# CONFIG_DEVKMEM is not set
214# CONFIG_HW_RANDOM is not set 288# CONFIG_HW_RANDOM is not set
215CONFIG_GEN_RTC=m 289CONFIG_NTP_PPS=y
216CONFIG_GEN_RTC_X=y 290CONFIG_PPS_CLIENT_LDISC=m
291CONFIG_PTP_1588_CLOCK=m
217# CONFIG_HWMON is not set 292# CONFIG_HWMON is not set
218CONFIG_FB=y 293CONFIG_FB=y
219CONFIG_FRAMEBUFFER_CONSOLE=y 294CONFIG_FRAMEBUFFER_CONSOLE=y
@@ -222,47 +297,60 @@ CONFIG_LOGO=y
222# CONFIG_LOGO_LINUX_VGA16 is not set 297# CONFIG_LOGO_LINUX_VGA16 is not set
223CONFIG_HID=m 298CONFIG_HID=m
224CONFIG_HIDRAW=y 299CONFIG_HIDRAW=y
300CONFIG_UHID=m
301# CONFIG_HID_GENERIC is not set
225# CONFIG_USB_SUPPORT is not set 302# CONFIG_USB_SUPPORT is not set
303CONFIG_RTC_CLASS=y
304CONFIG_RTC_DRV_GENERIC=m
305# CONFIG_IOMMU_SUPPORT is not set
306CONFIG_PROC_HARDWARE=y
226CONFIG_EXT2_FS=y 307CONFIG_EXT2_FS=y
227CONFIG_EXT3_FS=y 308CONFIG_EXT3_FS=y
228# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 309# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
229# CONFIG_EXT3_FS_XATTR is not set 310# CONFIG_EXT3_FS_XATTR is not set
311CONFIG_EXT4_FS=y
230CONFIG_REISERFS_FS=m 312CONFIG_REISERFS_FS=m
231CONFIG_JFS_FS=m 313CONFIG_JFS_FS=m
232CONFIG_XFS_FS=m 314CONFIG_XFS_FS=m
233CONFIG_OCFS2_FS=m 315CONFIG_OCFS2_FS=m
234# CONFIG_OCFS2_FS_STATS is not set
235# CONFIG_OCFS2_DEBUG_MASKLOG is not set 316# CONFIG_OCFS2_DEBUG_MASKLOG is not set
317CONFIG_FANOTIFY=y
236CONFIG_QUOTA_NETLINK_INTERFACE=y 318CONFIG_QUOTA_NETLINK_INTERFACE=y
237# CONFIG_PRINT_QUOTA_WARNING is not set 319# CONFIG_PRINT_QUOTA_WARNING is not set
238CONFIG_AUTOFS_FS=m
239CONFIG_AUTOFS4_FS=m 320CONFIG_AUTOFS4_FS=m
240CONFIG_FUSE_FS=m 321CONFIG_FUSE_FS=m
322CONFIG_CUSE=m
241CONFIG_ISO9660_FS=y 323CONFIG_ISO9660_FS=y
242CONFIG_JOLIET=y 324CONFIG_JOLIET=y
243CONFIG_ZISOFS=y 325CONFIG_ZISOFS=y
244CONFIG_UDF_FS=m 326CONFIG_UDF_FS=m
245CONFIG_MSDOS_FS=y 327CONFIG_MSDOS_FS=m
246CONFIG_VFAT_FS=m 328CONFIG_VFAT_FS=m
247CONFIG_PROC_KCORE=y 329CONFIG_PROC_KCORE=y
248CONFIG_TMPFS=y 330CONFIG_TMPFS=y
249CONFIG_AFFS_FS=m 331CONFIG_AFFS_FS=m
332CONFIG_ECRYPT_FS=m
333CONFIG_ECRYPT_FS_MESSAGING=y
250CONFIG_HFS_FS=m 334CONFIG_HFS_FS=m
251CONFIG_HFSPLUS_FS=m 335CONFIG_HFSPLUS_FS=m
252CONFIG_CRAMFS=m 336CONFIG_CRAMFS=m
253CONFIG_SQUASHFS=m 337CONFIG_SQUASHFS=m
254CONFIG_MINIX_FS=y 338CONFIG_SQUASHFS_LZO=y
339CONFIG_MINIX_FS=m
340CONFIG_OMFS_FS=m
255CONFIG_HPFS_FS=m 341CONFIG_HPFS_FS=m
342CONFIG_QNX4FS_FS=m
343CONFIG_QNX6FS_FS=m
256CONFIG_SYSV_FS=m 344CONFIG_SYSV_FS=m
257CONFIG_UFS_FS=m 345CONFIG_UFS_FS=m
258CONFIG_NFS_FS=y 346CONFIG_NFS_FS=y
259CONFIG_NFS_V3=y
260CONFIG_NFS_V4=y 347CONFIG_NFS_V4=y
348CONFIG_NFS_SWAP=y
261CONFIG_ROOT_NFS=y 349CONFIG_ROOT_NFS=y
262CONFIG_NFSD=m 350CONFIG_NFSD=m
263CONFIG_NFSD_V3=y 351CONFIG_NFSD_V3=y
264CONFIG_SMB_FS=m 352CONFIG_CIFS=m
265CONFIG_SMB_NLS_DEFAULT=y 353# CONFIG_CIFS_DEBUG is not set
266CONFIG_CODA_FS=m 354CONFIG_CODA_FS=m
267CONFIG_NLS_CODEPAGE_437=y 355CONFIG_NLS_CODEPAGE_437=y
268CONFIG_NLS_CODEPAGE_737=m 356CONFIG_NLS_CODEPAGE_737=m
@@ -301,10 +389,23 @@ CONFIG_NLS_ISO8859_14=m
301CONFIG_NLS_ISO8859_15=m 389CONFIG_NLS_ISO8859_15=m
302CONFIG_NLS_KOI8_R=m 390CONFIG_NLS_KOI8_R=m
303CONFIG_NLS_KOI8_U=m 391CONFIG_NLS_KOI8_U=m
392CONFIG_NLS_MAC_ROMAN=m
393CONFIG_NLS_MAC_CELTIC=m
394CONFIG_NLS_MAC_CENTEURO=m
395CONFIG_NLS_MAC_CROATIAN=m
396CONFIG_NLS_MAC_CYRILLIC=m
397CONFIG_NLS_MAC_GAELIC=m
398CONFIG_NLS_MAC_GREEK=m
399CONFIG_NLS_MAC_ICELAND=m
400CONFIG_NLS_MAC_INUIT=m
401CONFIG_NLS_MAC_ROMANIAN=m
402CONFIG_NLS_MAC_TURKISH=m
304CONFIG_DLM=m 403CONFIG_DLM=m
305CONFIG_MAGIC_SYSRQ=y 404CONFIG_MAGIC_SYSRQ=y
306# CONFIG_RCU_CPU_STALL_DETECTOR is not set 405CONFIG_ASYNC_RAID6_TEST=m
307CONFIG_SYSCTL_SYSCALL_CHECK=y 406CONFIG_ENCRYPTED_KEYS=m
407CONFIG_CRYPTO_MANAGER=y
408CONFIG_CRYPTO_USER=m
308CONFIG_CRYPTO_NULL=m 409CONFIG_CRYPTO_NULL=m
309CONFIG_CRYPTO_CRYPTD=m 410CONFIG_CRYPTO_CRYPTD=m
310CONFIG_CRYPTO_TEST=m 411CONFIG_CRYPTO_TEST=m
@@ -314,19 +415,16 @@ CONFIG_CRYPTO_CTS=m
314CONFIG_CRYPTO_LRW=m 415CONFIG_CRYPTO_LRW=m
315CONFIG_CRYPTO_PCBC=m 416CONFIG_CRYPTO_PCBC=m
316CONFIG_CRYPTO_XTS=m 417CONFIG_CRYPTO_XTS=m
317CONFIG_CRYPTO_HMAC=y
318CONFIG_CRYPTO_XCBC=m 418CONFIG_CRYPTO_XCBC=m
319CONFIG_CRYPTO_MD4=m 419CONFIG_CRYPTO_VMAC=m
320CONFIG_CRYPTO_MICHAEL_MIC=m 420CONFIG_CRYPTO_MICHAEL_MIC=m
321CONFIG_CRYPTO_RMD128=m 421CONFIG_CRYPTO_RMD128=m
322CONFIG_CRYPTO_RMD160=m 422CONFIG_CRYPTO_RMD160=m
323CONFIG_CRYPTO_RMD256=m 423CONFIG_CRYPTO_RMD256=m
324CONFIG_CRYPTO_RMD320=m 424CONFIG_CRYPTO_RMD320=m
325CONFIG_CRYPTO_SHA256=m
326CONFIG_CRYPTO_SHA512=m 425CONFIG_CRYPTO_SHA512=m
327CONFIG_CRYPTO_TGR192=m 426CONFIG_CRYPTO_TGR192=m
328CONFIG_CRYPTO_WP512=m 427CONFIG_CRYPTO_WP512=m
329CONFIG_CRYPTO_AES=m
330CONFIG_CRYPTO_ANUBIS=m 428CONFIG_CRYPTO_ANUBIS=m
331CONFIG_CRYPTO_BLOWFISH=m 429CONFIG_CRYPTO_BLOWFISH=m
332CONFIG_CRYPTO_CAMELLIA=m 430CONFIG_CRYPTO_CAMELLIA=m
@@ -342,6 +440,14 @@ CONFIG_CRYPTO_TWOFISH=m
342CONFIG_CRYPTO_ZLIB=m 440CONFIG_CRYPTO_ZLIB=m
343CONFIG_CRYPTO_LZO=m 441CONFIG_CRYPTO_LZO=m
344# CONFIG_CRYPTO_ANSI_CPRNG is not set 442# CONFIG_CRYPTO_ANSI_CPRNG is not set
443CONFIG_CRYPTO_USER_API_HASH=m
444CONFIG_CRYPTO_USER_API_SKCIPHER=m
345# CONFIG_CRYPTO_HW is not set 445# CONFIG_CRYPTO_HW is not set
346CONFIG_CRC16=m
347CONFIG_CRC_T10DIF=y 446CONFIG_CRC_T10DIF=y
447CONFIG_XZ_DEC_X86=y
448CONFIG_XZ_DEC_POWERPC=y
449CONFIG_XZ_DEC_IA64=y
450CONFIG_XZ_DEC_ARM=y
451CONFIG_XZ_DEC_ARMTHUMB=y
452CONFIG_XZ_DEC_SPARC=y
453CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index cb9dfb30b674..7d46fbec7042 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_defconfig
@@ -1,49 +1,75 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-mac" 1CONFIG_LOCALVERSION="-mac"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_MAC=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_BSD_DISKLABEL=y
20CONFIG_MINIX_SUBPARTITION=y
21CONFIG_SOLARIS_X86_PARTITION=y
22CONFIG_UNIXWARE_DISKLABEL=y
23CONFIG_SUN_PARTITION=y
24# CONFIG_EFI_PARTITION is not set
25CONFIG_SYSV68_PARTITION=y
26CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68020=y 27CONFIG_M68020=y
15CONFIG_M68030=y 28CONFIG_M68030=y
16CONFIG_M68040=y 29CONFIG_M68040=y
30CONFIG_M68KFPU_EMU=y
31CONFIG_MAC=y
32# CONFIG_COMPACTION is not set
33CONFIG_CLEANCACHE=y
34# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
17CONFIG_BINFMT_AOUT=m 35CONFIG_BINFMT_AOUT=m
18CONFIG_BINFMT_MISC=m 36CONFIG_BINFMT_MISC=m
19CONFIG_PROC_HARDWARE=y
20CONFIG_NET=y 37CONFIG_NET=y
21CONFIG_PACKET=y 38CONFIG_PACKET=y
39CONFIG_PACKET_DIAG=m
22CONFIG_UNIX=y 40CONFIG_UNIX=y
41CONFIG_UNIX_DIAG=m
42CONFIG_XFRM_MIGRATE=y
23CONFIG_NET_KEY=y 43CONFIG_NET_KEY=y
24CONFIG_NET_KEY_MIGRATE=y
25CONFIG_INET=y 44CONFIG_INET=y
45CONFIG_IP_PNP=y
46CONFIG_IP_PNP_DHCP=y
47CONFIG_IP_PNP_BOOTP=y
48CONFIG_IP_PNP_RARP=y
26CONFIG_NET_IPIP=m 49CONFIG_NET_IPIP=m
50CONFIG_NET_IPGRE_DEMUX=m
27CONFIG_NET_IPGRE=m 51CONFIG_NET_IPGRE=m
28CONFIG_SYN_COOKIES=y 52CONFIG_SYN_COOKIES=y
53CONFIG_NET_IPVTI=m
29CONFIG_INET_AH=m 54CONFIG_INET_AH=m
30CONFIG_INET_ESP=m 55CONFIG_INET_ESP=m
31CONFIG_INET_IPCOMP=m 56CONFIG_INET_IPCOMP=m
32CONFIG_INET_XFRM_MODE_TRANSPORT=m 57CONFIG_INET_XFRM_MODE_TRANSPORT=m
33CONFIG_INET_XFRM_MODE_TUNNEL=m 58CONFIG_INET_XFRM_MODE_TUNNEL=m
34CONFIG_INET_XFRM_MODE_BEET=m 59CONFIG_INET_XFRM_MODE_BEET=m
60# CONFIG_INET_LRO is not set
35CONFIG_INET_DIAG=m 61CONFIG_INET_DIAG=m
62CONFIG_INET_UDP_DIAG=m
36CONFIG_IPV6_PRIVACY=y 63CONFIG_IPV6_PRIVACY=y
37CONFIG_IPV6_ROUTER_PREF=y 64CONFIG_IPV6_ROUTER_PREF=y
38CONFIG_IPV6_ROUTE_INFO=y
39CONFIG_INET6_AH=m 65CONFIG_INET6_AH=m
40CONFIG_INET6_ESP=m 66CONFIG_INET6_ESP=m
41CONFIG_INET6_IPCOMP=m 67CONFIG_INET6_IPCOMP=m
42CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 68CONFIG_IPV6_GRE=m
43CONFIG_IPV6_TUNNEL=m
44CONFIG_NETFILTER=y 69CONFIG_NETFILTER=y
45CONFIG_NETFILTER_NETLINK_QUEUE=m
46CONFIG_NF_CONNTRACK=m 70CONFIG_NF_CONNTRACK=m
71CONFIG_NF_CONNTRACK_ZONES=y
72# CONFIG_NF_CONNTRACK_PROCFS is not set
47# CONFIG_NF_CT_PROTO_DCCP is not set 73# CONFIG_NF_CT_PROTO_DCCP is not set
48CONFIG_NF_CT_PROTO_UDPLITE=m 74CONFIG_NF_CT_PROTO_UDPLITE=m
49CONFIG_NF_CONNTRACK_AMANDA=m 75CONFIG_NF_CONNTRACK_AMANDA=m
@@ -51,25 +77,37 @@ CONFIG_NF_CONNTRACK_FTP=m
51CONFIG_NF_CONNTRACK_H323=m 77CONFIG_NF_CONNTRACK_H323=m
52CONFIG_NF_CONNTRACK_IRC=m 78CONFIG_NF_CONNTRACK_IRC=m
53CONFIG_NF_CONNTRACK_NETBIOS_NS=m 79CONFIG_NF_CONNTRACK_NETBIOS_NS=m
80CONFIG_NF_CONNTRACK_SNMP=m
54CONFIG_NF_CONNTRACK_PPTP=m 81CONFIG_NF_CONNTRACK_PPTP=m
55CONFIG_NF_CONNTRACK_SANE=m 82CONFIG_NF_CONNTRACK_SANE=m
56CONFIG_NF_CONNTRACK_SIP=m 83CONFIG_NF_CONNTRACK_SIP=m
57CONFIG_NF_CONNTRACK_TFTP=m 84CONFIG_NF_CONNTRACK_TFTP=m
85CONFIG_NETFILTER_XT_SET=m
86CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
58CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 87CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
59CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 88CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
60CONFIG_NETFILTER_XT_TARGET_DSCP=m 89CONFIG_NETFILTER_XT_TARGET_DSCP=m
90CONFIG_NETFILTER_XT_TARGET_HMARK=m
91CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
92CONFIG_NETFILTER_XT_TARGET_LOG=m
61CONFIG_NETFILTER_XT_TARGET_MARK=m 93CONFIG_NETFILTER_XT_TARGET_MARK=m
62CONFIG_NETFILTER_XT_TARGET_NFLOG=m 94CONFIG_NETFILTER_XT_TARGET_NFLOG=m
63CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 95CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
96CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
97CONFIG_NETFILTER_XT_TARGET_TEE=m
64CONFIG_NETFILTER_XT_TARGET_TRACE=m 98CONFIG_NETFILTER_XT_TARGET_TRACE=m
65CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 99CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
66CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 100CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
101CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
102CONFIG_NETFILTER_XT_MATCH_BPF=m
67CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 103CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
68CONFIG_NETFILTER_XT_MATCH_COMMENT=m 104CONFIG_NETFILTER_XT_MATCH_COMMENT=m
69CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 105CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
106CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
70CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 107CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
71CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 108CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
72CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 109CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
110CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
73CONFIG_NETFILTER_XT_MATCH_DSCP=m 111CONFIG_NETFILTER_XT_MATCH_DSCP=m
74CONFIG_NETFILTER_XT_MATCH_ESP=m 112CONFIG_NETFILTER_XT_MATCH_ESP=m
75CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 113CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -80,6 +118,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
80CONFIG_NETFILTER_XT_MATCH_MAC=m 118CONFIG_NETFILTER_XT_MATCH_MAC=m
81CONFIG_NETFILTER_XT_MATCH_MARK=m 119CONFIG_NETFILTER_XT_MATCH_MARK=m
82CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 120CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
121CONFIG_NETFILTER_XT_MATCH_NFACCT=m
122CONFIG_NETFILTER_XT_MATCH_OSF=m
83CONFIG_NETFILTER_XT_MATCH_OWNER=m 123CONFIG_NETFILTER_XT_MATCH_OWNER=m
84CONFIG_NETFILTER_XT_MATCH_POLICY=m 124CONFIG_NETFILTER_XT_MATCH_POLICY=m
85CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 125CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -93,22 +133,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
93CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 133CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
94CONFIG_NETFILTER_XT_MATCH_TIME=m 134CONFIG_NETFILTER_XT_MATCH_TIME=m
95CONFIG_NETFILTER_XT_MATCH_U32=m 135CONFIG_NETFILTER_XT_MATCH_U32=m
136CONFIG_IP_SET=m
137CONFIG_IP_SET_BITMAP_IP=m
138CONFIG_IP_SET_BITMAP_IPMAC=m
139CONFIG_IP_SET_BITMAP_PORT=m
140CONFIG_IP_SET_HASH_IP=m
141CONFIG_IP_SET_HASH_IPPORT=m
142CONFIG_IP_SET_HASH_IPPORTIP=m
143CONFIG_IP_SET_HASH_IPPORTNET=m
144CONFIG_IP_SET_HASH_NET=m
145CONFIG_IP_SET_HASH_NETPORT=m
146CONFIG_IP_SET_HASH_NETIFACE=m
147CONFIG_IP_SET_LIST_SET=m
96CONFIG_NF_CONNTRACK_IPV4=m 148CONFIG_NF_CONNTRACK_IPV4=m
97CONFIG_IP_NF_QUEUE=m
98CONFIG_IP_NF_IPTABLES=m 149CONFIG_IP_NF_IPTABLES=m
99CONFIG_IP_NF_MATCH_ADDRTYPE=m
100CONFIG_IP_NF_MATCH_AH=m 150CONFIG_IP_NF_MATCH_AH=m
101CONFIG_IP_NF_MATCH_ECN=m 151CONFIG_IP_NF_MATCH_ECN=m
152CONFIG_IP_NF_MATCH_RPFILTER=m
102CONFIG_IP_NF_MATCH_TTL=m 153CONFIG_IP_NF_MATCH_TTL=m
103CONFIG_IP_NF_FILTER=m 154CONFIG_IP_NF_FILTER=m
104CONFIG_IP_NF_TARGET_REJECT=m 155CONFIG_IP_NF_TARGET_REJECT=m
105CONFIG_IP_NF_TARGET_LOG=m
106CONFIG_IP_NF_TARGET_ULOG=m 156CONFIG_IP_NF_TARGET_ULOG=m
107CONFIG_NF_NAT=m 157CONFIG_NF_NAT_IPV4=m
108CONFIG_IP_NF_TARGET_MASQUERADE=m 158CONFIG_IP_NF_TARGET_MASQUERADE=m
109CONFIG_IP_NF_TARGET_NETMAP=m 159CONFIG_IP_NF_TARGET_NETMAP=m
110CONFIG_IP_NF_TARGET_REDIRECT=m 160CONFIG_IP_NF_TARGET_REDIRECT=m
111CONFIG_NF_NAT_SNMP_BASIC=m
112CONFIG_IP_NF_MANGLE=m 161CONFIG_IP_NF_MANGLE=m
113CONFIG_IP_NF_TARGET_CLUSTERIP=m 162CONFIG_IP_NF_TARGET_CLUSTERIP=m
114CONFIG_IP_NF_TARGET_ECN=m 163CONFIG_IP_NF_TARGET_ECN=m
@@ -118,7 +167,6 @@ CONFIG_IP_NF_ARPTABLES=m
118CONFIG_IP_NF_ARPFILTER=m 167CONFIG_IP_NF_ARPFILTER=m
119CONFIG_IP_NF_ARP_MANGLE=m 168CONFIG_IP_NF_ARP_MANGLE=m
120CONFIG_NF_CONNTRACK_IPV6=m 169CONFIG_NF_CONNTRACK_IPV6=m
121CONFIG_IP6_NF_QUEUE=m
122CONFIG_IP6_NF_IPTABLES=m 170CONFIG_IP6_NF_IPTABLES=m
123CONFIG_IP6_NF_MATCH_AH=m 171CONFIG_IP6_NF_MATCH_AH=m
124CONFIG_IP6_NF_MATCH_EUI64=m 172CONFIG_IP6_NF_MATCH_EUI64=m
@@ -127,31 +175,45 @@ CONFIG_IP6_NF_MATCH_OPTS=m
127CONFIG_IP6_NF_MATCH_HL=m 175CONFIG_IP6_NF_MATCH_HL=m
128CONFIG_IP6_NF_MATCH_IPV6HEADER=m 176CONFIG_IP6_NF_MATCH_IPV6HEADER=m
129CONFIG_IP6_NF_MATCH_MH=m 177CONFIG_IP6_NF_MATCH_MH=m
178CONFIG_IP6_NF_MATCH_RPFILTER=m
130CONFIG_IP6_NF_MATCH_RT=m 179CONFIG_IP6_NF_MATCH_RT=m
131CONFIG_IP6_NF_TARGET_HL=m 180CONFIG_IP6_NF_TARGET_HL=m
132CONFIG_IP6_NF_TARGET_LOG=m
133CONFIG_IP6_NF_FILTER=m 181CONFIG_IP6_NF_FILTER=m
134CONFIG_IP6_NF_TARGET_REJECT=m 182CONFIG_IP6_NF_TARGET_REJECT=m
135CONFIG_IP6_NF_MANGLE=m 183CONFIG_IP6_NF_MANGLE=m
136CONFIG_IP6_NF_RAW=m 184CONFIG_IP6_NF_RAW=m
185CONFIG_NF_NAT_IPV6=m
186CONFIG_IP6_NF_TARGET_MASQUERADE=m
187CONFIG_IP6_NF_TARGET_NPT=m
137CONFIG_IP_DCCP=m 188CONFIG_IP_DCCP=m
138# CONFIG_IP_DCCP_CCID3 is not set 189# CONFIG_IP_DCCP_CCID3 is not set
190CONFIG_SCTP_COOKIE_HMAC_SHA1=y
191CONFIG_RDS=m
192CONFIG_RDS_TCP=m
193CONFIG_L2TP=m
139CONFIG_ATALK=m 194CONFIG_ATALK=m
140CONFIG_DEV_APPLETALK=m 195CONFIG_DEV_APPLETALK=m
141CONFIG_IPDDP=m 196CONFIG_IPDDP=m
142CONFIG_IPDDP_ENCAP=y 197CONFIG_IPDDP_ENCAP=y
143CONFIG_IPDDP_DECAP=y 198CONFIG_IPDDP_DECAP=y
199CONFIG_BATMAN_ADV=m
200CONFIG_BATMAN_ADV_DAT=y
201# CONFIG_WIRELESS is not set
144CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 202CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
203CONFIG_DEVTMPFS=y
145# CONFIG_FIRMWARE_IN_KERNEL is not set 204# CONFIG_FIRMWARE_IN_KERNEL is not set
205# CONFIG_FW_LOADER_USER_HELPER is not set
146CONFIG_CONNECTOR=m 206CONFIG_CONNECTOR=m
147CONFIG_BLK_DEV_SWIM=y 207CONFIG_BLK_DEV_SWIM=m
148CONFIG_BLK_DEV_LOOP=y 208CONFIG_BLK_DEV_LOOP=y
149CONFIG_BLK_DEV_CRYPTOLOOP=m 209CONFIG_BLK_DEV_CRYPTOLOOP=m
210CONFIG_BLK_DEV_DRBD=m
150CONFIG_BLK_DEV_NBD=m 211CONFIG_BLK_DEV_NBD=m
151CONFIG_BLK_DEV_RAM=y 212CONFIG_BLK_DEV_RAM=y
152CONFIG_CDROM_PKTCDVD=m 213CONFIG_CDROM_PKTCDVD=m
153CONFIG_ATA_OVER_ETH=m 214CONFIG_ATA_OVER_ETH=m
154CONFIG_IDE=y 215CONFIG_IDE=y
216CONFIG_IDE_GD_ATAPI=y
155CONFIG_BLK_DEV_IDECD=y 217CONFIG_BLK_DEV_IDECD=y
156CONFIG_BLK_DEV_MAC_IDE=y 218CONFIG_BLK_DEV_MAC_IDE=y
157CONFIG_RAID_ATTRS=m 219CONFIG_RAID_ATTRS=m
@@ -164,29 +226,30 @@ CONFIG_BLK_DEV_SR=y
164CONFIG_BLK_DEV_SR_VENDOR=y 226CONFIG_BLK_DEV_SR_VENDOR=y
165CONFIG_CHR_DEV_SG=m 227CONFIG_CHR_DEV_SG=m
166CONFIG_SCSI_CONSTANTS=y 228CONFIG_SCSI_CONSTANTS=y
167CONFIG_SCSI_SAS_LIBSAS=m 229CONFIG_SCSI_SAS_ATTRS=m
168# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
169CONFIG_SCSI_SRP_ATTRS=m
170CONFIG_SCSI_SRP_TGT_ATTRS=y
171CONFIG_ISCSI_TCP=m 230CONFIG_ISCSI_TCP=m
231CONFIG_ISCSI_BOOT_SYSFS=m
172CONFIG_MAC_SCSI=y 232CONFIG_MAC_SCSI=y
173CONFIG_SCSI_MAC_ESP=y 233CONFIG_SCSI_MAC_ESP=y
174CONFIG_MD=y 234CONFIG_MD=y
175CONFIG_BLK_DEV_MD=m
176CONFIG_MD_LINEAR=m 235CONFIG_MD_LINEAR=m
177CONFIG_MD_RAID0=m 236CONFIG_MD_RAID0=m
178CONFIG_MD_RAID1=m
179CONFIG_MD_RAID456=m
180CONFIG_BLK_DEV_DM=m 237CONFIG_BLK_DEV_DM=m
181CONFIG_DM_CRYPT=m 238CONFIG_DM_CRYPT=m
182CONFIG_DM_SNAPSHOT=m 239CONFIG_DM_SNAPSHOT=m
240CONFIG_DM_THIN_PROVISIONING=m
241CONFIG_DM_CACHE=m
183CONFIG_DM_MIRROR=m 242CONFIG_DM_MIRROR=m
243CONFIG_DM_RAID=m
184CONFIG_DM_ZERO=m 244CONFIG_DM_ZERO=m
185CONFIG_DM_MULTIPATH=m 245CONFIG_DM_MULTIPATH=m
186CONFIG_DM_UEVENT=y 246CONFIG_DM_UEVENT=y
247CONFIG_TARGET_CORE=m
248CONFIG_TCM_IBLOCK=m
249CONFIG_TCM_FILEIO=m
250CONFIG_TCM_PSCSI=m
187CONFIG_ADB=y 251CONFIG_ADB=y
188CONFIG_ADB_MACII=y 252CONFIG_ADB_MACII=y
189CONFIG_ADB_MACIISI=y
190CONFIG_ADB_IOP=y 253CONFIG_ADB_IOP=y
191CONFIG_ADB_PMU68K=y 254CONFIG_ADB_PMU68K=y
192CONFIG_ADB_CUDA=y 255CONFIG_ADB_CUDA=y
@@ -194,46 +257,61 @@ CONFIG_INPUT_ADBHID=y
194CONFIG_MAC_EMUMOUSEBTN=y 257CONFIG_MAC_EMUMOUSEBTN=y
195CONFIG_NETDEVICES=y 258CONFIG_NETDEVICES=y
196CONFIG_DUMMY=m 259CONFIG_DUMMY=m
197CONFIG_MACVLAN=m
198CONFIG_EQUALIZER=m 260CONFIG_EQUALIZER=m
261CONFIG_NET_TEAM=m
262CONFIG_NET_TEAM_MODE_BROADCAST=m
263CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
264CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
265CONFIG_NET_TEAM_MODE_LOADBALANCE=m
266CONFIG_VXLAN=m
267CONFIG_NETCONSOLE=m
268CONFIG_NETCONSOLE_DYNAMIC=y
199CONFIG_VETH=m 269CONFIG_VETH=m
200CONFIG_NET_ETHERNET=y
201CONFIG_MAC8390=y
202CONFIG_MAC89x0=m
203CONFIG_MACSONIC=m
204CONFIG_MACMACE=y 270CONFIG_MACMACE=y
205# CONFIG_NETDEV_1000 is not set 271# CONFIG_NET_CADENCE is not set
206# CONFIG_NETDEV_10000 is not set 272# CONFIG_NET_VENDOR_BROADCOM is not set
273CONFIG_MAC89x0=y
274# CONFIG_NET_VENDOR_INTEL is not set
275# CONFIG_NET_VENDOR_MARVELL is not set
276# CONFIG_NET_VENDOR_MICREL is not set
277CONFIG_MACSONIC=y
278CONFIG_MAC8390=y
279# CONFIG_NET_VENDOR_SEEQ is not set
280# CONFIG_NET_VENDOR_SMSC is not set
281# CONFIG_NET_VENDOR_STMICRO is not set
282# CONFIG_NET_VENDOR_WIZNET is not set
207CONFIG_PPP=m 283CONFIG_PPP=m
208CONFIG_PPP_FILTER=y
209CONFIG_PPP_ASYNC=m
210CONFIG_PPP_SYNC_TTY=m
211CONFIG_PPP_DEFLATE=m
212CONFIG_PPP_BSDCOMP=m 284CONFIG_PPP_BSDCOMP=m
285CONFIG_PPP_DEFLATE=m
286CONFIG_PPP_FILTER=y
213CONFIG_PPP_MPPE=m 287CONFIG_PPP_MPPE=m
214CONFIG_PPPOE=m 288CONFIG_PPPOE=m
289CONFIG_PPTP=m
290CONFIG_PPPOL2TP=m
291CONFIG_PPP_ASYNC=m
292CONFIG_PPP_SYNC_TTY=m
215CONFIG_SLIP=m 293CONFIG_SLIP=m
216CONFIG_SLIP_COMPRESSED=y 294CONFIG_SLIP_COMPRESSED=y
217CONFIG_SLIP_SMART=y 295CONFIG_SLIP_SMART=y
218CONFIG_SLIP_MODE_SLIP6=y 296CONFIG_SLIP_MODE_SLIP6=y
219CONFIG_NETCONSOLE=m 297# CONFIG_WLAN is not set
220CONFIG_NETCONSOLE_DYNAMIC=y 298CONFIG_INPUT_EVDEV=m
221CONFIG_INPUT_FF_MEMLESS=m
222# CONFIG_KEYBOARD_ATKBD is not set 299# CONFIG_KEYBOARD_ATKBD is not set
223CONFIG_MOUSE_PS2=m 300# CONFIG_MOUSE_PS2 is not set
224CONFIG_MOUSE_SERIAL=m 301CONFIG_MOUSE_SERIAL=m
225CONFIG_INPUT_MISC=y 302CONFIG_INPUT_MISC=y
226CONFIG_INPUT_M68K_BEEP=m 303CONFIG_INPUT_M68K_BEEP=m
227CONFIG_SERIO=m 304CONFIG_SERIO=m
228# CONFIG_SERIO_SERPORT is not set
229CONFIG_VT_HW_CONSOLE_BINDING=y 305CONFIG_VT_HW_CONSOLE_BINDING=y
306# CONFIG_LEGACY_PTYS is not set
230# CONFIG_DEVKMEM is not set 307# CONFIG_DEVKMEM is not set
231CONFIG_SERIAL_PMACZILOG=y 308CONFIG_SERIAL_PMACZILOG=y
232CONFIG_SERIAL_PMACZILOG_TTYS=y 309CONFIG_SERIAL_PMACZILOG_TTYS=y
233CONFIG_SERIAL_PMACZILOG_CONSOLE=y 310CONFIG_SERIAL_PMACZILOG_CONSOLE=y
234# CONFIG_HW_RANDOM is not set 311# CONFIG_HW_RANDOM is not set
235CONFIG_GEN_RTC=m 312CONFIG_NTP_PPS=y
236CONFIG_GEN_RTC_X=y 313CONFIG_PPS_CLIENT_LDISC=m
314CONFIG_PTP_1588_CLOCK=m
237# CONFIG_HWMON is not set 315# CONFIG_HWMON is not set
238CONFIG_FB=y 316CONFIG_FB=y
239CONFIG_FB_VALKYRIE=y 317CONFIG_FB_VALKYRIE=y
@@ -242,46 +320,60 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
242CONFIG_LOGO=y 320CONFIG_LOGO=y
243CONFIG_HID=m 321CONFIG_HID=m
244CONFIG_HIDRAW=y 322CONFIG_HIDRAW=y
323CONFIG_UHID=m
324# CONFIG_HID_GENERIC is not set
245# CONFIG_USB_SUPPORT is not set 325# CONFIG_USB_SUPPORT is not set
326CONFIG_RTC_CLASS=y
327CONFIG_RTC_DRV_GENERIC=m
328# CONFIG_IOMMU_SUPPORT is not set
329CONFIG_PROC_HARDWARE=y
246CONFIG_EXT2_FS=y 330CONFIG_EXT2_FS=y
247CONFIG_EXT3_FS=y 331CONFIG_EXT3_FS=y
248# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 332# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
249# CONFIG_EXT3_FS_XATTR is not set 333# CONFIG_EXT3_FS_XATTR is not set
334CONFIG_EXT4_FS=y
250CONFIG_REISERFS_FS=m 335CONFIG_REISERFS_FS=m
251CONFIG_JFS_FS=m 336CONFIG_JFS_FS=m
252CONFIG_XFS_FS=m 337CONFIG_XFS_FS=m
253CONFIG_OCFS2_FS=m 338CONFIG_OCFS2_FS=m
254# CONFIG_OCFS2_FS_STATS is not set
255# CONFIG_OCFS2_DEBUG_MASKLOG is not set 339# CONFIG_OCFS2_DEBUG_MASKLOG is not set
340CONFIG_FANOTIFY=y
256CONFIG_QUOTA_NETLINK_INTERFACE=y 341CONFIG_QUOTA_NETLINK_INTERFACE=y
257# CONFIG_PRINT_QUOTA_WARNING is not set 342# CONFIG_PRINT_QUOTA_WARNING is not set
258CONFIG_AUTOFS_FS=m
259CONFIG_AUTOFS4_FS=m 343CONFIG_AUTOFS4_FS=m
260CONFIG_FUSE_FS=m 344CONFIG_FUSE_FS=m
345CONFIG_CUSE=m
261CONFIG_ISO9660_FS=y 346CONFIG_ISO9660_FS=y
262CONFIG_JOLIET=y 347CONFIG_JOLIET=y
263CONFIG_ZISOFS=y 348CONFIG_ZISOFS=y
264CONFIG_UDF_FS=m 349CONFIG_UDF_FS=m
265CONFIG_MSDOS_FS=y 350CONFIG_MSDOS_FS=m
266CONFIG_VFAT_FS=m 351CONFIG_VFAT_FS=m
267CONFIG_PROC_KCORE=y 352CONFIG_PROC_KCORE=y
268CONFIG_TMPFS=y 353CONFIG_TMPFS=y
269CONFIG_AFFS_FS=m 354CONFIG_AFFS_FS=m
270CONFIG_HFS_FS=y 355CONFIG_ECRYPT_FS=m
271CONFIG_HFSPLUS_FS=y 356CONFIG_ECRYPT_FS_MESSAGING=y
357CONFIG_HFS_FS=m
358CONFIG_HFSPLUS_FS=m
272CONFIG_CRAMFS=m 359CONFIG_CRAMFS=m
273CONFIG_SQUASHFS=m 360CONFIG_SQUASHFS=m
274CONFIG_MINIX_FS=y 361CONFIG_SQUASHFS_LZO=y
362CONFIG_MINIX_FS=m
363CONFIG_OMFS_FS=m
275CONFIG_HPFS_FS=m 364CONFIG_HPFS_FS=m
365CONFIG_QNX4FS_FS=m
366CONFIG_QNX6FS_FS=m
276CONFIG_SYSV_FS=m 367CONFIG_SYSV_FS=m
277CONFIG_UFS_FS=m 368CONFIG_UFS_FS=m
278CONFIG_NFS_FS=m 369CONFIG_NFS_FS=y
279CONFIG_NFS_V3=y
280CONFIG_NFS_V4=y 370CONFIG_NFS_V4=y
371CONFIG_NFS_SWAP=y
372CONFIG_ROOT_NFS=y
281CONFIG_NFSD=m 373CONFIG_NFSD=m
282CONFIG_NFSD_V3=y 374CONFIG_NFSD_V3=y
283CONFIG_SMB_FS=m 375CONFIG_CIFS=m
284CONFIG_SMB_NLS_DEFAULT=y 376# CONFIG_CIFS_DEBUG is not set
285CONFIG_CODA_FS=m 377CONFIG_CODA_FS=m
286CONFIG_NLS_CODEPAGE_437=y 378CONFIG_NLS_CODEPAGE_437=y
287CONFIG_NLS_CODEPAGE_737=m 379CONFIG_NLS_CODEPAGE_737=m
@@ -320,10 +412,23 @@ CONFIG_NLS_ISO8859_14=m
320CONFIG_NLS_ISO8859_15=m 412CONFIG_NLS_ISO8859_15=m
321CONFIG_NLS_KOI8_R=m 413CONFIG_NLS_KOI8_R=m
322CONFIG_NLS_KOI8_U=m 414CONFIG_NLS_KOI8_U=m
415CONFIG_NLS_MAC_ROMAN=m
416CONFIG_NLS_MAC_CELTIC=m
417CONFIG_NLS_MAC_CENTEURO=m
418CONFIG_NLS_MAC_CROATIAN=m
419CONFIG_NLS_MAC_CYRILLIC=m
420CONFIG_NLS_MAC_GAELIC=m
421CONFIG_NLS_MAC_GREEK=m
422CONFIG_NLS_MAC_ICELAND=m
423CONFIG_NLS_MAC_INUIT=m
424CONFIG_NLS_MAC_ROMANIAN=m
425CONFIG_NLS_MAC_TURKISH=m
323CONFIG_DLM=m 426CONFIG_DLM=m
324CONFIG_MAGIC_SYSRQ=y 427CONFIG_MAGIC_SYSRQ=y
325# CONFIG_RCU_CPU_STALL_DETECTOR is not set 428CONFIG_ASYNC_RAID6_TEST=m
326CONFIG_SYSCTL_SYSCALL_CHECK=y 429CONFIG_ENCRYPTED_KEYS=m
430CONFIG_CRYPTO_MANAGER=y
431CONFIG_CRYPTO_USER=m
327CONFIG_CRYPTO_NULL=m 432CONFIG_CRYPTO_NULL=m
328CONFIG_CRYPTO_CRYPTD=m 433CONFIG_CRYPTO_CRYPTD=m
329CONFIG_CRYPTO_TEST=m 434CONFIG_CRYPTO_TEST=m
@@ -333,19 +438,16 @@ CONFIG_CRYPTO_CTS=m
333CONFIG_CRYPTO_LRW=m 438CONFIG_CRYPTO_LRW=m
334CONFIG_CRYPTO_PCBC=m 439CONFIG_CRYPTO_PCBC=m
335CONFIG_CRYPTO_XTS=m 440CONFIG_CRYPTO_XTS=m
336CONFIG_CRYPTO_HMAC=y
337CONFIG_CRYPTO_XCBC=m 441CONFIG_CRYPTO_XCBC=m
338CONFIG_CRYPTO_MD4=m 442CONFIG_CRYPTO_VMAC=m
339CONFIG_CRYPTO_MICHAEL_MIC=m 443CONFIG_CRYPTO_MICHAEL_MIC=m
340CONFIG_CRYPTO_RMD128=m 444CONFIG_CRYPTO_RMD128=m
341CONFIG_CRYPTO_RMD160=m 445CONFIG_CRYPTO_RMD160=m
342CONFIG_CRYPTO_RMD256=m 446CONFIG_CRYPTO_RMD256=m
343CONFIG_CRYPTO_RMD320=m 447CONFIG_CRYPTO_RMD320=m
344CONFIG_CRYPTO_SHA256=m
345CONFIG_CRYPTO_SHA512=m 448CONFIG_CRYPTO_SHA512=m
346CONFIG_CRYPTO_TGR192=m 449CONFIG_CRYPTO_TGR192=m
347CONFIG_CRYPTO_WP512=m 450CONFIG_CRYPTO_WP512=m
348CONFIG_CRYPTO_AES=m
349CONFIG_CRYPTO_ANUBIS=m 451CONFIG_CRYPTO_ANUBIS=m
350CONFIG_CRYPTO_BLOWFISH=m 452CONFIG_CRYPTO_BLOWFISH=m
351CONFIG_CRYPTO_CAMELLIA=m 453CONFIG_CRYPTO_CAMELLIA=m
@@ -361,6 +463,14 @@ CONFIG_CRYPTO_TWOFISH=m
361CONFIG_CRYPTO_ZLIB=m 463CONFIG_CRYPTO_ZLIB=m
362CONFIG_CRYPTO_LZO=m 464CONFIG_CRYPTO_LZO=m
363# CONFIG_CRYPTO_ANSI_CPRNG is not set 465# CONFIG_CRYPTO_ANSI_CPRNG is not set
466CONFIG_CRYPTO_USER_API_HASH=m
467CONFIG_CRYPTO_USER_API_SKCIPHER=m
364# CONFIG_CRYPTO_HW is not set 468# CONFIG_CRYPTO_HW is not set
365CONFIG_CRC16=m
366CONFIG_CRC_T10DIF=y 469CONFIG_CRC_T10DIF=y
470CONFIG_XZ_DEC_X86=y
471CONFIG_XZ_DEC_POWERPC=y
472CONFIG_XZ_DEC_IA64=y
473CONFIG_XZ_DEC_ARM=y
474CONFIG_XZ_DEC_ARMTHUMB=y
475CONFIG_XZ_DEC_SPARC=y
476CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 8d5def4a31e0..0f795d8e65fa 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_defconfig
@@ -1,15 +1,29 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-multi" 1CONFIG_LOCALVERSION="-multi"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
16CONFIG_PARTITION_ADVANCED=y
17CONFIG_BSD_DISKLABEL=y
18CONFIG_MINIX_SUBPARTITION=y
19CONFIG_SOLARIS_X86_PARTITION=y
20CONFIG_UNIXWARE_DISKLABEL=y
21# CONFIG_EFI_PARTITION is not set
22CONFIG_IOSCHED_DEADLINE=m
23CONFIG_M68020=y
24CONFIG_M68040=y
25CONFIG_M68060=y
26CONFIG_M68KFPU_EMU=y
13CONFIG_AMIGA=y 27CONFIG_AMIGA=y
14CONFIG_ATARI=y 28CONFIG_ATARI=y
15CONFIG_MAC=y 29CONFIG_MAC=y
@@ -21,48 +35,50 @@ CONFIG_BVME6000=y
21CONFIG_HP300=y 35CONFIG_HP300=y
22CONFIG_SUN3X=y 36CONFIG_SUN3X=y
23CONFIG_Q40=y 37CONFIG_Q40=y
24CONFIG_M68020=y
25CONFIG_M68040=y
26CONFIG_M68060=y
27CONFIG_BINFMT_AOUT=m
28CONFIG_BINFMT_MISC=m
29CONFIG_ZORRO=y 38CONFIG_ZORRO=y
30CONFIG_AMIGA_PCMCIA=y 39CONFIG_AMIGA_PCMCIA=y
31CONFIG_STRAM_PROC=y
32CONFIG_HEARTBEAT=y
33CONFIG_PROC_HARDWARE=y
34CONFIG_ZORRO_NAMES=y 40CONFIG_ZORRO_NAMES=y
41# CONFIG_COMPACTION is not set
42CONFIG_CLEANCACHE=y
43# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
44CONFIG_BINFMT_AOUT=m
45CONFIG_BINFMT_MISC=m
35CONFIG_NET=y 46CONFIG_NET=y
36CONFIG_PACKET=y 47CONFIG_PACKET=y
48CONFIG_PACKET_DIAG=m
37CONFIG_UNIX=y 49CONFIG_UNIX=y
50CONFIG_UNIX_DIAG=m
51CONFIG_XFRM_MIGRATE=y
38CONFIG_NET_KEY=y 52CONFIG_NET_KEY=y
39CONFIG_NET_KEY_MIGRATE=y
40CONFIG_INET=y 53CONFIG_INET=y
41CONFIG_IP_PNP=y 54CONFIG_IP_PNP=y
42CONFIG_IP_PNP_DHCP=y 55CONFIG_IP_PNP_DHCP=y
43CONFIG_IP_PNP_BOOTP=y 56CONFIG_IP_PNP_BOOTP=y
44CONFIG_IP_PNP_RARP=y 57CONFIG_IP_PNP_RARP=y
45CONFIG_NET_IPIP=m 58CONFIG_NET_IPIP=m
59CONFIG_NET_IPGRE_DEMUX=m
46CONFIG_NET_IPGRE=m 60CONFIG_NET_IPGRE=m
47CONFIG_SYN_COOKIES=y 61CONFIG_SYN_COOKIES=y
62CONFIG_NET_IPVTI=m
48CONFIG_INET_AH=m 63CONFIG_INET_AH=m
49CONFIG_INET_ESP=m 64CONFIG_INET_ESP=m
50CONFIG_INET_IPCOMP=m 65CONFIG_INET_IPCOMP=m
51CONFIG_INET_XFRM_MODE_TRANSPORT=m 66CONFIG_INET_XFRM_MODE_TRANSPORT=m
52CONFIG_INET_XFRM_MODE_TUNNEL=m 67CONFIG_INET_XFRM_MODE_TUNNEL=m
53CONFIG_INET_XFRM_MODE_BEET=m 68CONFIG_INET_XFRM_MODE_BEET=m
69# CONFIG_INET_LRO is not set
54CONFIG_INET_DIAG=m 70CONFIG_INET_DIAG=m
71CONFIG_INET_UDP_DIAG=m
55CONFIG_IPV6_PRIVACY=y 72CONFIG_IPV6_PRIVACY=y
56CONFIG_IPV6_ROUTER_PREF=y 73CONFIG_IPV6_ROUTER_PREF=y
57CONFIG_IPV6_ROUTE_INFO=y
58CONFIG_INET6_AH=m 74CONFIG_INET6_AH=m
59CONFIG_INET6_ESP=m 75CONFIG_INET6_ESP=m
60CONFIG_INET6_IPCOMP=m 76CONFIG_INET6_IPCOMP=m
61CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 77CONFIG_IPV6_GRE=m
62CONFIG_IPV6_TUNNEL=m
63CONFIG_NETFILTER=y 78CONFIG_NETFILTER=y
64CONFIG_NETFILTER_NETLINK_QUEUE=m
65CONFIG_NF_CONNTRACK=m 79CONFIG_NF_CONNTRACK=m
80CONFIG_NF_CONNTRACK_ZONES=y
81# CONFIG_NF_CONNTRACK_PROCFS is not set
66# CONFIG_NF_CT_PROTO_DCCP is not set 82# CONFIG_NF_CT_PROTO_DCCP is not set
67CONFIG_NF_CT_PROTO_UDPLITE=m 83CONFIG_NF_CT_PROTO_UDPLITE=m
68CONFIG_NF_CONNTRACK_AMANDA=m 84CONFIG_NF_CONNTRACK_AMANDA=m
@@ -70,25 +86,37 @@ CONFIG_NF_CONNTRACK_FTP=m
70CONFIG_NF_CONNTRACK_H323=m 86CONFIG_NF_CONNTRACK_H323=m
71CONFIG_NF_CONNTRACK_IRC=m 87CONFIG_NF_CONNTRACK_IRC=m
72CONFIG_NF_CONNTRACK_NETBIOS_NS=m 88CONFIG_NF_CONNTRACK_NETBIOS_NS=m
89CONFIG_NF_CONNTRACK_SNMP=m
73CONFIG_NF_CONNTRACK_PPTP=m 90CONFIG_NF_CONNTRACK_PPTP=m
74CONFIG_NF_CONNTRACK_SANE=m 91CONFIG_NF_CONNTRACK_SANE=m
75CONFIG_NF_CONNTRACK_SIP=m 92CONFIG_NF_CONNTRACK_SIP=m
76CONFIG_NF_CONNTRACK_TFTP=m 93CONFIG_NF_CONNTRACK_TFTP=m
94CONFIG_NETFILTER_XT_SET=m
95CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
77CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 96CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
78CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 97CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
79CONFIG_NETFILTER_XT_TARGET_DSCP=m 98CONFIG_NETFILTER_XT_TARGET_DSCP=m
99CONFIG_NETFILTER_XT_TARGET_HMARK=m
100CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
101CONFIG_NETFILTER_XT_TARGET_LOG=m
80CONFIG_NETFILTER_XT_TARGET_MARK=m 102CONFIG_NETFILTER_XT_TARGET_MARK=m
81CONFIG_NETFILTER_XT_TARGET_NFLOG=m 103CONFIG_NETFILTER_XT_TARGET_NFLOG=m
82CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 104CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
105CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
106CONFIG_NETFILTER_XT_TARGET_TEE=m
83CONFIG_NETFILTER_XT_TARGET_TRACE=m 107CONFIG_NETFILTER_XT_TARGET_TRACE=m
84CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 108CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
85CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 109CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
110CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
111CONFIG_NETFILTER_XT_MATCH_BPF=m
86CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 112CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
87CONFIG_NETFILTER_XT_MATCH_COMMENT=m 113CONFIG_NETFILTER_XT_MATCH_COMMENT=m
88CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 114CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
115CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
89CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 116CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
90CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 117CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
91CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 118CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
119CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
92CONFIG_NETFILTER_XT_MATCH_DSCP=m 120CONFIG_NETFILTER_XT_MATCH_DSCP=m
93CONFIG_NETFILTER_XT_MATCH_ESP=m 121CONFIG_NETFILTER_XT_MATCH_ESP=m
94CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 122CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -99,6 +127,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
99CONFIG_NETFILTER_XT_MATCH_MAC=m 127CONFIG_NETFILTER_XT_MATCH_MAC=m
100CONFIG_NETFILTER_XT_MATCH_MARK=m 128CONFIG_NETFILTER_XT_MATCH_MARK=m
101CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 129CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
130CONFIG_NETFILTER_XT_MATCH_NFACCT=m
131CONFIG_NETFILTER_XT_MATCH_OSF=m
102CONFIG_NETFILTER_XT_MATCH_OWNER=m 132CONFIG_NETFILTER_XT_MATCH_OWNER=m
103CONFIG_NETFILTER_XT_MATCH_POLICY=m 133CONFIG_NETFILTER_XT_MATCH_POLICY=m
104CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 134CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -112,22 +142,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
112CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 142CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
113CONFIG_NETFILTER_XT_MATCH_TIME=m 143CONFIG_NETFILTER_XT_MATCH_TIME=m
114CONFIG_NETFILTER_XT_MATCH_U32=m 144CONFIG_NETFILTER_XT_MATCH_U32=m
145CONFIG_IP_SET=m
146CONFIG_IP_SET_BITMAP_IP=m
147CONFIG_IP_SET_BITMAP_IPMAC=m
148CONFIG_IP_SET_BITMAP_PORT=m
149CONFIG_IP_SET_HASH_IP=m
150CONFIG_IP_SET_HASH_IPPORT=m
151CONFIG_IP_SET_HASH_IPPORTIP=m
152CONFIG_IP_SET_HASH_IPPORTNET=m
153CONFIG_IP_SET_HASH_NET=m
154CONFIG_IP_SET_HASH_NETPORT=m
155CONFIG_IP_SET_HASH_NETIFACE=m
156CONFIG_IP_SET_LIST_SET=m
115CONFIG_NF_CONNTRACK_IPV4=m 157CONFIG_NF_CONNTRACK_IPV4=m
116CONFIG_IP_NF_QUEUE=m
117CONFIG_IP_NF_IPTABLES=m 158CONFIG_IP_NF_IPTABLES=m
118CONFIG_IP_NF_MATCH_ADDRTYPE=m
119CONFIG_IP_NF_MATCH_AH=m 159CONFIG_IP_NF_MATCH_AH=m
120CONFIG_IP_NF_MATCH_ECN=m 160CONFIG_IP_NF_MATCH_ECN=m
161CONFIG_IP_NF_MATCH_RPFILTER=m
121CONFIG_IP_NF_MATCH_TTL=m 162CONFIG_IP_NF_MATCH_TTL=m
122CONFIG_IP_NF_FILTER=m 163CONFIG_IP_NF_FILTER=m
123CONFIG_IP_NF_TARGET_REJECT=m 164CONFIG_IP_NF_TARGET_REJECT=m
124CONFIG_IP_NF_TARGET_LOG=m
125CONFIG_IP_NF_TARGET_ULOG=m 165CONFIG_IP_NF_TARGET_ULOG=m
126CONFIG_NF_NAT=m 166CONFIG_NF_NAT_IPV4=m
127CONFIG_IP_NF_TARGET_MASQUERADE=m 167CONFIG_IP_NF_TARGET_MASQUERADE=m
128CONFIG_IP_NF_TARGET_NETMAP=m 168CONFIG_IP_NF_TARGET_NETMAP=m
129CONFIG_IP_NF_TARGET_REDIRECT=m 169CONFIG_IP_NF_TARGET_REDIRECT=m
130CONFIG_NF_NAT_SNMP_BASIC=m
131CONFIG_IP_NF_MANGLE=m 170CONFIG_IP_NF_MANGLE=m
132CONFIG_IP_NF_TARGET_CLUSTERIP=m 171CONFIG_IP_NF_TARGET_CLUSTERIP=m
133CONFIG_IP_NF_TARGET_ECN=m 172CONFIG_IP_NF_TARGET_ECN=m
@@ -137,7 +176,6 @@ CONFIG_IP_NF_ARPTABLES=m
137CONFIG_IP_NF_ARPFILTER=m 176CONFIG_IP_NF_ARPFILTER=m
138CONFIG_IP_NF_ARP_MANGLE=m 177CONFIG_IP_NF_ARP_MANGLE=m
139CONFIG_NF_CONNTRACK_IPV6=m 178CONFIG_NF_CONNTRACK_IPV6=m
140CONFIG_IP6_NF_QUEUE=m
141CONFIG_IP6_NF_IPTABLES=m 179CONFIG_IP6_NF_IPTABLES=m
142CONFIG_IP6_NF_MATCH_AH=m 180CONFIG_IP6_NF_MATCH_AH=m
143CONFIG_IP6_NF_MATCH_EUI64=m 181CONFIG_IP6_NF_MATCH_EUI64=m
@@ -146,22 +184,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
146CONFIG_IP6_NF_MATCH_HL=m 184CONFIG_IP6_NF_MATCH_HL=m
147CONFIG_IP6_NF_MATCH_IPV6HEADER=m 185CONFIG_IP6_NF_MATCH_IPV6HEADER=m
148CONFIG_IP6_NF_MATCH_MH=m 186CONFIG_IP6_NF_MATCH_MH=m
187CONFIG_IP6_NF_MATCH_RPFILTER=m
149CONFIG_IP6_NF_MATCH_RT=m 188CONFIG_IP6_NF_MATCH_RT=m
150CONFIG_IP6_NF_TARGET_HL=m 189CONFIG_IP6_NF_TARGET_HL=m
151CONFIG_IP6_NF_TARGET_LOG=m
152CONFIG_IP6_NF_FILTER=m 190CONFIG_IP6_NF_FILTER=m
153CONFIG_IP6_NF_TARGET_REJECT=m 191CONFIG_IP6_NF_TARGET_REJECT=m
154CONFIG_IP6_NF_MANGLE=m 192CONFIG_IP6_NF_MANGLE=m
155CONFIG_IP6_NF_RAW=m 193CONFIG_IP6_NF_RAW=m
194CONFIG_NF_NAT_IPV6=m
195CONFIG_IP6_NF_TARGET_MASQUERADE=m
196CONFIG_IP6_NF_TARGET_NPT=m
156CONFIG_IP_DCCP=m 197CONFIG_IP_DCCP=m
157# CONFIG_IP_DCCP_CCID3 is not set 198# CONFIG_IP_DCCP_CCID3 is not set
199CONFIG_SCTP_COOKIE_HMAC_SHA1=y
200CONFIG_RDS=m
201CONFIG_RDS_TCP=m
202CONFIG_L2TP=m
158CONFIG_ATALK=m 203CONFIG_ATALK=m
159CONFIG_DEV_APPLETALK=m 204CONFIG_DEV_APPLETALK=m
160CONFIG_IPDDP=m 205CONFIG_IPDDP=m
161CONFIG_IPDDP_ENCAP=y 206CONFIG_IPDDP_ENCAP=y
162CONFIG_IPDDP_DECAP=y 207CONFIG_IPDDP_DECAP=y
208CONFIG_BATMAN_ADV=m
209CONFIG_BATMAN_ADV_DAT=y
210# CONFIG_WIRELESS is not set
163CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 211CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
212CONFIG_DEVTMPFS=y
164# CONFIG_FIRMWARE_IN_KERNEL is not set 213# CONFIG_FIRMWARE_IN_KERNEL is not set
214# CONFIG_FW_LOADER_USER_HELPER is not set
165CONFIG_CONNECTOR=m 215CONFIG_CONNECTOR=m
166CONFIG_PARPORT=m 216CONFIG_PARPORT=m
167CONFIG_PARPORT_AMIGA=m 217CONFIG_PARPORT_AMIGA=m
@@ -170,15 +220,17 @@ CONFIG_PARPORT_ATARI=m
170CONFIG_PARPORT_1284=y 220CONFIG_PARPORT_1284=y
171CONFIG_AMIGA_FLOPPY=y 221CONFIG_AMIGA_FLOPPY=y
172CONFIG_ATARI_FLOPPY=y 222CONFIG_ATARI_FLOPPY=y
173CONFIG_BLK_DEV_SWIM=y 223CONFIG_BLK_DEV_SWIM=m
174CONFIG_AMIGA_Z2RAM=y 224CONFIG_AMIGA_Z2RAM=y
175CONFIG_BLK_DEV_LOOP=y 225CONFIG_BLK_DEV_LOOP=y
176CONFIG_BLK_DEV_CRYPTOLOOP=m 226CONFIG_BLK_DEV_CRYPTOLOOP=m
227CONFIG_BLK_DEV_DRBD=m
177CONFIG_BLK_DEV_NBD=m 228CONFIG_BLK_DEV_NBD=m
178CONFIG_BLK_DEV_RAM=y 229CONFIG_BLK_DEV_RAM=y
179CONFIG_CDROM_PKTCDVD=m 230CONFIG_CDROM_PKTCDVD=m
180CONFIG_ATA_OVER_ETH=m 231CONFIG_ATA_OVER_ETH=m
181CONFIG_IDE=y 232CONFIG_IDE=y
233CONFIG_IDE_GD_ATAPI=y
182CONFIG_BLK_DEV_IDECD=y 234CONFIG_BLK_DEV_IDECD=y
183CONFIG_BLK_DEV_GAYLE=y 235CONFIG_BLK_DEV_GAYLE=y
184CONFIG_BLK_DEV_BUDDHA=y 236CONFIG_BLK_DEV_BUDDHA=y
@@ -195,11 +247,9 @@ CONFIG_BLK_DEV_SR=y
195CONFIG_BLK_DEV_SR_VENDOR=y 247CONFIG_BLK_DEV_SR_VENDOR=y
196CONFIG_CHR_DEV_SG=m 248CONFIG_CHR_DEV_SG=m
197CONFIG_SCSI_CONSTANTS=y 249CONFIG_SCSI_CONSTANTS=y
198CONFIG_SCSI_SAS_LIBSAS=m 250CONFIG_SCSI_SAS_ATTRS=m
199# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
200CONFIG_SCSI_SRP_ATTRS=m
201CONFIG_SCSI_SRP_TGT_ATTRS=y
202CONFIG_ISCSI_TCP=m 251CONFIG_ISCSI_TCP=m
252CONFIG_ISCSI_BOOT_SYSFS=m
203CONFIG_A3000_SCSI=y 253CONFIG_A3000_SCSI=y
204CONFIG_A2091_SCSI=y 254CONFIG_A2091_SCSI=y
205CONFIG_GVP11_SCSI=y 255CONFIG_GVP11_SCSI=y
@@ -213,21 +263,24 @@ CONFIG_MVME16x_SCSI=y
213CONFIG_BVME6000_SCSI=y 263CONFIG_BVME6000_SCSI=y
214CONFIG_SUN3X_ESP=y 264CONFIG_SUN3X_ESP=y
215CONFIG_MD=y 265CONFIG_MD=y
216CONFIG_BLK_DEV_MD=m
217CONFIG_MD_LINEAR=m 266CONFIG_MD_LINEAR=m
218CONFIG_MD_RAID0=m 267CONFIG_MD_RAID0=m
219CONFIG_MD_RAID1=m
220CONFIG_MD_RAID456=m
221CONFIG_BLK_DEV_DM=m 268CONFIG_BLK_DEV_DM=m
222CONFIG_DM_CRYPT=m 269CONFIG_DM_CRYPT=m
223CONFIG_DM_SNAPSHOT=m 270CONFIG_DM_SNAPSHOT=m
271CONFIG_DM_THIN_PROVISIONING=m
272CONFIG_DM_CACHE=m
224CONFIG_DM_MIRROR=m 273CONFIG_DM_MIRROR=m
274CONFIG_DM_RAID=m
225CONFIG_DM_ZERO=m 275CONFIG_DM_ZERO=m
226CONFIG_DM_MULTIPATH=m 276CONFIG_DM_MULTIPATH=m
227CONFIG_DM_UEVENT=y 277CONFIG_DM_UEVENT=y
278CONFIG_TARGET_CORE=m
279CONFIG_TCM_IBLOCK=m
280CONFIG_TCM_FILEIO=m
281CONFIG_TCM_PSCSI=m
228CONFIG_ADB=y 282CONFIG_ADB=y
229CONFIG_ADB_MACII=y 283CONFIG_ADB_MACII=y
230CONFIG_ADB_MACIISI=y
231CONFIG_ADB_IOP=y 284CONFIG_ADB_IOP=y
232CONFIG_ADB_PMU68K=y 285CONFIG_ADB_PMU68K=y
233CONFIG_ADB_CUDA=y 286CONFIG_ADB_CUDA=y
@@ -235,49 +288,64 @@ CONFIG_INPUT_ADBHID=y
235CONFIG_MAC_EMUMOUSEBTN=y 288CONFIG_MAC_EMUMOUSEBTN=y
236CONFIG_NETDEVICES=y 289CONFIG_NETDEVICES=y
237CONFIG_DUMMY=m 290CONFIG_DUMMY=m
238CONFIG_MACVLAN=m
239CONFIG_EQUALIZER=m 291CONFIG_EQUALIZER=m
240CONFIG_VETH=m
241CONFIG_NET_ETHERNET=y
242CONFIG_MII=y 292CONFIG_MII=y
243CONFIG_ARIADNE=y 293CONFIG_NET_TEAM=m
294CONFIG_NET_TEAM_MODE_BROADCAST=m
295CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
296CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
297CONFIG_NET_TEAM_MODE_LOADBALANCE=m
298CONFIG_VXLAN=m
299CONFIG_NETCONSOLE=m
300CONFIG_NETCONSOLE_DYNAMIC=y
301CONFIG_VETH=m
302# CONFIG_NET_VENDOR_3COM is not set
244CONFIG_A2065=y 303CONFIG_A2065=y
245CONFIG_HYDRA=y 304CONFIG_ARIADNE=y
246CONFIG_ZORRO8390=y
247CONFIG_APNE=y
248CONFIG_MAC8390=y
249CONFIG_MAC89x0=y
250CONFIG_MACSONIC=y
251CONFIG_MACMACE=y
252CONFIG_MVME147_NET=y
253CONFIG_MVME16x_NET=y
254CONFIG_BVME6000_NET=y
255CONFIG_ATARILANCE=y 305CONFIG_ATARILANCE=y
256CONFIG_SUN3LANCE=y
257CONFIG_HPLANCE=y 306CONFIG_HPLANCE=y
307CONFIG_MVME147_NET=y
308CONFIG_SUN3LANCE=y
309CONFIG_MACMACE=y
310# CONFIG_NET_CADENCE is not set
311# CONFIG_NET_VENDOR_BROADCOM is not set
312CONFIG_MAC89x0=y
313# CONFIG_NET_VENDOR_FUJITSU is not set
314# CONFIG_NET_VENDOR_HP is not set
315CONFIG_BVME6000_NET=y
316CONFIG_MVME16x_NET=y
317# CONFIG_NET_VENDOR_MARVELL is not set
318# CONFIG_NET_VENDOR_MICREL is not set
319CONFIG_MACSONIC=y
320CONFIG_HYDRA=y
321CONFIG_MAC8390=y
258CONFIG_NE2000=m 322CONFIG_NE2000=m
259# CONFIG_NETDEV_1000 is not set 323CONFIG_APNE=y
260# CONFIG_NETDEV_10000 is not set 324CONFIG_ZORRO8390=y
325# CONFIG_NET_VENDOR_SEEQ is not set
326# CONFIG_NET_VENDOR_STMICRO is not set
327# CONFIG_NET_VENDOR_WIZNET is not set
261CONFIG_PPP=m 328CONFIG_PPP=m
262CONFIG_PPP_FILTER=y
263CONFIG_PPP_ASYNC=m
264CONFIG_PPP_SYNC_TTY=m
265CONFIG_PPP_DEFLATE=m
266CONFIG_PPP_BSDCOMP=m 329CONFIG_PPP_BSDCOMP=m
330CONFIG_PPP_DEFLATE=m
331CONFIG_PPP_FILTER=y
267CONFIG_PPP_MPPE=m 332CONFIG_PPP_MPPE=m
268CONFIG_PPPOE=m 333CONFIG_PPPOE=m
334CONFIG_PPTP=m
335CONFIG_PPPOL2TP=m
336CONFIG_PPP_ASYNC=m
337CONFIG_PPP_SYNC_TTY=m
269CONFIG_SLIP=m 338CONFIG_SLIP=m
270CONFIG_SLIP_COMPRESSED=y 339CONFIG_SLIP_COMPRESSED=y
271CONFIG_SLIP_SMART=y 340CONFIG_SLIP_SMART=y
272CONFIG_SLIP_MODE_SLIP6=y 341CONFIG_SLIP_MODE_SLIP6=y
273CONFIG_NETCONSOLE=m 342# CONFIG_WLAN is not set
274CONFIG_NETCONSOLE_DYNAMIC=y 343CONFIG_INPUT_EVDEV=m
275CONFIG_INPUT_FF_MEMLESS=m
276CONFIG_KEYBOARD_AMIGA=y 344CONFIG_KEYBOARD_AMIGA=y
277CONFIG_KEYBOARD_ATARI=y 345CONFIG_KEYBOARD_ATARI=y
278# CONFIG_KEYBOARD_ATKBD is not set 346# CONFIG_KEYBOARD_ATKBD is not set
279CONFIG_KEYBOARD_SUNKBD=y 347CONFIG_KEYBOARD_SUNKBD=y
280CONFIG_MOUSE_PS2=m 348# CONFIG_MOUSE_PS2 is not set
281CONFIG_MOUSE_SERIAL=m 349CONFIG_MOUSE_SERIAL=m
282CONFIG_MOUSE_AMIGA=m 350CONFIG_MOUSE_AMIGA=m
283CONFIG_MOUSE_ATARI=m 351CONFIG_MOUSE_ATARI=m
@@ -285,18 +353,20 @@ CONFIG_INPUT_JOYSTICK=y
285CONFIG_JOYSTICK_AMIGA=m 353CONFIG_JOYSTICK_AMIGA=m
286CONFIG_INPUT_MISC=y 354CONFIG_INPUT_MISC=y
287CONFIG_INPUT_M68K_BEEP=m 355CONFIG_INPUT_M68K_BEEP=m
288CONFIG_HP_SDC_RTC=y 356CONFIG_HP_SDC_RTC=m
289# CONFIG_SERIO_SERPORT is not set
290CONFIG_SERIO_Q40KBD=y 357CONFIG_SERIO_Q40KBD=y
291CONFIG_VT_HW_CONSOLE_BINDING=y 358CONFIG_VT_HW_CONSOLE_BINDING=y
359# CONFIG_LEGACY_PTYS is not set
292# CONFIG_DEVKMEM is not set 360# CONFIG_DEVKMEM is not set
293CONFIG_SERIAL_PMACZILOG=y 361CONFIG_SERIAL_PMACZILOG=y
294CONFIG_SERIAL_PMACZILOG_TTYS=y 362CONFIG_SERIAL_PMACZILOG_TTYS=y
295CONFIG_SERIAL_PMACZILOG_CONSOLE=y 363CONFIG_SERIAL_PMACZILOG_CONSOLE=y
296CONFIG_PRINTER=m 364CONFIG_PRINTER=m
297# CONFIG_HW_RANDOM is not set 365# CONFIG_HW_RANDOM is not set
298CONFIG_GEN_RTC=y 366CONFIG_NTP_PPS=y
299CONFIG_GEN_RTC_X=y 367CONFIG_PPS_CLIENT_LDISC=m
368CONFIG_PPS_CLIENT_PARPORT=m
369CONFIG_PTP_1588_CLOCK=m
300# CONFIG_HWMON is not set 370# CONFIG_HWMON is not set
301CONFIG_FB=y 371CONFIG_FB=y
302CONFIG_FB_CIRRUS=y 372CONFIG_FB_CIRRUS=y
@@ -316,7 +386,20 @@ CONFIG_DMASOUND_PAULA=m
316CONFIG_DMASOUND_Q40=m 386CONFIG_DMASOUND_Q40=m
317CONFIG_HID=m 387CONFIG_HID=m
318CONFIG_HIDRAW=y 388CONFIG_HIDRAW=y
389CONFIG_UHID=m
390# CONFIG_HID_GENERIC is not set
319# CONFIG_USB_SUPPORT is not set 391# CONFIG_USB_SUPPORT is not set
392CONFIG_RTC_CLASS=y
393CONFIG_RTC_DRV_MSM6242=m
394CONFIG_RTC_DRV_RP5C01=m
395CONFIG_RTC_DRV_GENERIC=m
396# CONFIG_IOMMU_SUPPORT is not set
397CONFIG_HEARTBEAT=y
398CONFIG_PROC_HARDWARE=y
399CONFIG_NATFEAT=y
400CONFIG_NFBLOCK=y
401CONFIG_NFCON=y
402CONFIG_NFETH=y
320CONFIG_ATARI_DSP56K=m 403CONFIG_ATARI_DSP56K=m
321CONFIG_AMIGA_BUILTIN_SERIAL=y 404CONFIG_AMIGA_BUILTIN_SERIAL=y
322CONFIG_SERIAL_CONSOLE=y 405CONFIG_SERIAL_CONSOLE=y
@@ -324,42 +407,49 @@ CONFIG_EXT2_FS=y
324CONFIG_EXT3_FS=y 407CONFIG_EXT3_FS=y
325# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 408# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
326# CONFIG_EXT3_FS_XATTR is not set 409# CONFIG_EXT3_FS_XATTR is not set
410CONFIG_EXT4_FS=y
327CONFIG_REISERFS_FS=m 411CONFIG_REISERFS_FS=m
328CONFIG_JFS_FS=m 412CONFIG_JFS_FS=m
329CONFIG_XFS_FS=m 413CONFIG_XFS_FS=m
330CONFIG_OCFS2_FS=m 414CONFIG_OCFS2_FS=m
331# CONFIG_OCFS2_FS_STATS is not set
332# CONFIG_OCFS2_DEBUG_MASKLOG is not set 415# CONFIG_OCFS2_DEBUG_MASKLOG is not set
416CONFIG_FANOTIFY=y
333CONFIG_QUOTA_NETLINK_INTERFACE=y 417CONFIG_QUOTA_NETLINK_INTERFACE=y
334# CONFIG_PRINT_QUOTA_WARNING is not set 418# CONFIG_PRINT_QUOTA_WARNING is not set
335CONFIG_AUTOFS_FS=m
336CONFIG_AUTOFS4_FS=m 419CONFIG_AUTOFS4_FS=m
337CONFIG_FUSE_FS=m 420CONFIG_FUSE_FS=m
421CONFIG_CUSE=m
338CONFIG_ISO9660_FS=y 422CONFIG_ISO9660_FS=y
339CONFIG_JOLIET=y 423CONFIG_JOLIET=y
340CONFIG_ZISOFS=y 424CONFIG_ZISOFS=y
341CONFIG_UDF_FS=m 425CONFIG_UDF_FS=m
342CONFIG_MSDOS_FS=y 426CONFIG_MSDOS_FS=m
343CONFIG_VFAT_FS=m 427CONFIG_VFAT_FS=m
344CONFIG_PROC_KCORE=y 428CONFIG_PROC_KCORE=y
345CONFIG_TMPFS=y 429CONFIG_TMPFS=y
346CONFIG_AFFS_FS=m 430CONFIG_AFFS_FS=m
347CONFIG_HFS_FS=y 431CONFIG_ECRYPT_FS=m
348CONFIG_HFSPLUS_FS=y 432CONFIG_ECRYPT_FS_MESSAGING=y
433CONFIG_HFS_FS=m
434CONFIG_HFSPLUS_FS=m
349CONFIG_CRAMFS=m 435CONFIG_CRAMFS=m
350CONFIG_SQUASHFS=m 436CONFIG_SQUASHFS=m
351CONFIG_MINIX_FS=y 437CONFIG_SQUASHFS_LZO=y
438CONFIG_MINIX_FS=m
439CONFIG_OMFS_FS=m
352CONFIG_HPFS_FS=m 440CONFIG_HPFS_FS=m
441CONFIG_QNX4FS_FS=m
442CONFIG_QNX6FS_FS=m
353CONFIG_SYSV_FS=m 443CONFIG_SYSV_FS=m
354CONFIG_UFS_FS=m 444CONFIG_UFS_FS=m
355CONFIG_NFS_FS=y 445CONFIG_NFS_FS=y
356CONFIG_NFS_V3=y
357CONFIG_NFS_V4=y 446CONFIG_NFS_V4=y
447CONFIG_NFS_SWAP=y
358CONFIG_ROOT_NFS=y 448CONFIG_ROOT_NFS=y
359CONFIG_NFSD=m 449CONFIG_NFSD=m
360CONFIG_NFSD_V3=y 450CONFIG_NFSD_V3=y
361CONFIG_SMB_FS=m 451CONFIG_CIFS=m
362CONFIG_SMB_NLS_DEFAULT=y 452# CONFIG_CIFS_DEBUG is not set
363CONFIG_CODA_FS=m 453CONFIG_CODA_FS=m
364CONFIG_NLS_CODEPAGE_437=y 454CONFIG_NLS_CODEPAGE_437=y
365CONFIG_NLS_CODEPAGE_737=m 455CONFIG_NLS_CODEPAGE_737=m
@@ -398,10 +488,23 @@ CONFIG_NLS_ISO8859_14=m
398CONFIG_NLS_ISO8859_15=m 488CONFIG_NLS_ISO8859_15=m
399CONFIG_NLS_KOI8_R=m 489CONFIG_NLS_KOI8_R=m
400CONFIG_NLS_KOI8_U=m 490CONFIG_NLS_KOI8_U=m
491CONFIG_NLS_MAC_ROMAN=m
492CONFIG_NLS_MAC_CELTIC=m
493CONFIG_NLS_MAC_CENTEURO=m
494CONFIG_NLS_MAC_CROATIAN=m
495CONFIG_NLS_MAC_CYRILLIC=m
496CONFIG_NLS_MAC_GAELIC=m
497CONFIG_NLS_MAC_GREEK=m
498CONFIG_NLS_MAC_ICELAND=m
499CONFIG_NLS_MAC_INUIT=m
500CONFIG_NLS_MAC_ROMANIAN=m
501CONFIG_NLS_MAC_TURKISH=m
401CONFIG_DLM=m 502CONFIG_DLM=m
402CONFIG_MAGIC_SYSRQ=y 503CONFIG_MAGIC_SYSRQ=y
403# CONFIG_RCU_CPU_STALL_DETECTOR is not set 504CONFIG_ASYNC_RAID6_TEST=m
404CONFIG_SYSCTL_SYSCALL_CHECK=y 505CONFIG_ENCRYPTED_KEYS=m
506CONFIG_CRYPTO_MANAGER=y
507CONFIG_CRYPTO_USER=m
405CONFIG_CRYPTO_NULL=m 508CONFIG_CRYPTO_NULL=m
406CONFIG_CRYPTO_CRYPTD=m 509CONFIG_CRYPTO_CRYPTD=m
407CONFIG_CRYPTO_TEST=m 510CONFIG_CRYPTO_TEST=m
@@ -411,19 +514,16 @@ CONFIG_CRYPTO_CTS=m
411CONFIG_CRYPTO_LRW=m 514CONFIG_CRYPTO_LRW=m
412CONFIG_CRYPTO_PCBC=m 515CONFIG_CRYPTO_PCBC=m
413CONFIG_CRYPTO_XTS=m 516CONFIG_CRYPTO_XTS=m
414CONFIG_CRYPTO_HMAC=y
415CONFIG_CRYPTO_XCBC=m 517CONFIG_CRYPTO_XCBC=m
416CONFIG_CRYPTO_MD4=m 518CONFIG_CRYPTO_VMAC=m
417CONFIG_CRYPTO_MICHAEL_MIC=m 519CONFIG_CRYPTO_MICHAEL_MIC=m
418CONFIG_CRYPTO_RMD128=m 520CONFIG_CRYPTO_RMD128=m
419CONFIG_CRYPTO_RMD160=m 521CONFIG_CRYPTO_RMD160=m
420CONFIG_CRYPTO_RMD256=m 522CONFIG_CRYPTO_RMD256=m
421CONFIG_CRYPTO_RMD320=m 523CONFIG_CRYPTO_RMD320=m
422CONFIG_CRYPTO_SHA256=m
423CONFIG_CRYPTO_SHA512=m 524CONFIG_CRYPTO_SHA512=m
424CONFIG_CRYPTO_TGR192=m 525CONFIG_CRYPTO_TGR192=m
425CONFIG_CRYPTO_WP512=m 526CONFIG_CRYPTO_WP512=m
426CONFIG_CRYPTO_AES=m
427CONFIG_CRYPTO_ANUBIS=m 527CONFIG_CRYPTO_ANUBIS=m
428CONFIG_CRYPTO_BLOWFISH=m 528CONFIG_CRYPTO_BLOWFISH=m
429CONFIG_CRYPTO_CAMELLIA=m 529CONFIG_CRYPTO_CAMELLIA=m
@@ -439,6 +539,14 @@ CONFIG_CRYPTO_TWOFISH=m
439CONFIG_CRYPTO_ZLIB=m 539CONFIG_CRYPTO_ZLIB=m
440CONFIG_CRYPTO_LZO=m 540CONFIG_CRYPTO_LZO=m
441# CONFIG_CRYPTO_ANSI_CPRNG is not set 541# CONFIG_CRYPTO_ANSI_CPRNG is not set
542CONFIG_CRYPTO_USER_API_HASH=m
543CONFIG_CRYPTO_USER_API_SKCIPHER=m
442# CONFIG_CRYPTO_HW is not set 544# CONFIG_CRYPTO_HW is not set
443CONFIG_CRC16=y
444CONFIG_CRC_T10DIF=y 545CONFIG_CRC_T10DIF=y
546CONFIG_XZ_DEC_X86=y
547CONFIG_XZ_DEC_POWERPC=y
548CONFIG_XZ_DEC_IA64=y
549CONFIG_XZ_DEC_ARM=y
550CONFIG_XZ_DEC_ARMTHUMB=y
551CONFIG_XZ_DEC_SPARC=y
552CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index e2af46f530c1..5586c6529fce 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_defconfig
@@ -1,52 +1,73 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-mvme147" 1CONFIG_LOCALVERSION="-mvme147"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_IOSCHED_DEADLINE=m
27CONFIG_M68030=y
13CONFIG_VME=y 28CONFIG_VME=y
14CONFIG_MVME147=y 29CONFIG_MVME147=y
15CONFIG_M68030=y 30# CONFIG_COMPACTION is not set
31CONFIG_CLEANCACHE=y
32# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
16CONFIG_BINFMT_AOUT=m 33CONFIG_BINFMT_AOUT=m
17CONFIG_BINFMT_MISC=m 34CONFIG_BINFMT_MISC=m
18CONFIG_PROC_HARDWARE=y
19CONFIG_NET=y 35CONFIG_NET=y
20CONFIG_PACKET=y 36CONFIG_PACKET=y
37CONFIG_PACKET_DIAG=m
21CONFIG_UNIX=y 38CONFIG_UNIX=y
39CONFIG_UNIX_DIAG=m
40CONFIG_XFRM_MIGRATE=y
22CONFIG_NET_KEY=y 41CONFIG_NET_KEY=y
23CONFIG_NET_KEY_MIGRATE=y
24CONFIG_INET=y 42CONFIG_INET=y
25CONFIG_IP_PNP=y 43CONFIG_IP_PNP=y
26CONFIG_IP_PNP_DHCP=y 44CONFIG_IP_PNP_DHCP=y
27CONFIG_IP_PNP_BOOTP=y 45CONFIG_IP_PNP_BOOTP=y
28CONFIG_IP_PNP_RARP=y 46CONFIG_IP_PNP_RARP=y
29CONFIG_NET_IPIP=m 47CONFIG_NET_IPIP=m
48CONFIG_NET_IPGRE_DEMUX=m
30CONFIG_NET_IPGRE=m 49CONFIG_NET_IPGRE=m
31CONFIG_SYN_COOKIES=y 50CONFIG_SYN_COOKIES=y
51CONFIG_NET_IPVTI=m
32CONFIG_INET_AH=m 52CONFIG_INET_AH=m
33CONFIG_INET_ESP=m 53CONFIG_INET_ESP=m
34CONFIG_INET_IPCOMP=m 54CONFIG_INET_IPCOMP=m
35CONFIG_INET_XFRM_MODE_TRANSPORT=m 55CONFIG_INET_XFRM_MODE_TRANSPORT=m
36CONFIG_INET_XFRM_MODE_TUNNEL=m 56CONFIG_INET_XFRM_MODE_TUNNEL=m
37CONFIG_INET_XFRM_MODE_BEET=m 57CONFIG_INET_XFRM_MODE_BEET=m
58# CONFIG_INET_LRO is not set
38CONFIG_INET_DIAG=m 59CONFIG_INET_DIAG=m
60CONFIG_INET_UDP_DIAG=m
39CONFIG_IPV6_PRIVACY=y 61CONFIG_IPV6_PRIVACY=y
40CONFIG_IPV6_ROUTER_PREF=y 62CONFIG_IPV6_ROUTER_PREF=y
41CONFIG_IPV6_ROUTE_INFO=y
42CONFIG_INET6_AH=m 63CONFIG_INET6_AH=m
43CONFIG_INET6_ESP=m 64CONFIG_INET6_ESP=m
44CONFIG_INET6_IPCOMP=m 65CONFIG_INET6_IPCOMP=m
45CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 66CONFIG_IPV6_GRE=m
46CONFIG_IPV6_TUNNEL=m
47CONFIG_NETFILTER=y 67CONFIG_NETFILTER=y
48CONFIG_NETFILTER_NETLINK_QUEUE=m
49CONFIG_NF_CONNTRACK=m 68CONFIG_NF_CONNTRACK=m
69CONFIG_NF_CONNTRACK_ZONES=y
70# CONFIG_NF_CONNTRACK_PROCFS is not set
50# CONFIG_NF_CT_PROTO_DCCP is not set 71# CONFIG_NF_CT_PROTO_DCCP is not set
51CONFIG_NF_CT_PROTO_UDPLITE=m 72CONFIG_NF_CT_PROTO_UDPLITE=m
52CONFIG_NF_CONNTRACK_AMANDA=m 73CONFIG_NF_CONNTRACK_AMANDA=m
@@ -54,25 +75,37 @@ CONFIG_NF_CONNTRACK_FTP=m
54CONFIG_NF_CONNTRACK_H323=m 75CONFIG_NF_CONNTRACK_H323=m
55CONFIG_NF_CONNTRACK_IRC=m 76CONFIG_NF_CONNTRACK_IRC=m
56CONFIG_NF_CONNTRACK_NETBIOS_NS=m 77CONFIG_NF_CONNTRACK_NETBIOS_NS=m
78CONFIG_NF_CONNTRACK_SNMP=m
57CONFIG_NF_CONNTRACK_PPTP=m 79CONFIG_NF_CONNTRACK_PPTP=m
58CONFIG_NF_CONNTRACK_SANE=m 80CONFIG_NF_CONNTRACK_SANE=m
59CONFIG_NF_CONNTRACK_SIP=m 81CONFIG_NF_CONNTRACK_SIP=m
60CONFIG_NF_CONNTRACK_TFTP=m 82CONFIG_NF_CONNTRACK_TFTP=m
83CONFIG_NETFILTER_XT_SET=m
84CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
61CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 85CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
62CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 86CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
63CONFIG_NETFILTER_XT_TARGET_DSCP=m 87CONFIG_NETFILTER_XT_TARGET_DSCP=m
88CONFIG_NETFILTER_XT_TARGET_HMARK=m
89CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
90CONFIG_NETFILTER_XT_TARGET_LOG=m
64CONFIG_NETFILTER_XT_TARGET_MARK=m 91CONFIG_NETFILTER_XT_TARGET_MARK=m
65CONFIG_NETFILTER_XT_TARGET_NFLOG=m 92CONFIG_NETFILTER_XT_TARGET_NFLOG=m
66CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 93CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
94CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
95CONFIG_NETFILTER_XT_TARGET_TEE=m
67CONFIG_NETFILTER_XT_TARGET_TRACE=m 96CONFIG_NETFILTER_XT_TARGET_TRACE=m
68CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 97CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
69CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 98CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
99CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
100CONFIG_NETFILTER_XT_MATCH_BPF=m
70CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 101CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
71CONFIG_NETFILTER_XT_MATCH_COMMENT=m 102CONFIG_NETFILTER_XT_MATCH_COMMENT=m
72CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 103CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
104CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
73CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 105CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
74CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 106CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
75CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 107CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
108CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
76CONFIG_NETFILTER_XT_MATCH_DSCP=m 109CONFIG_NETFILTER_XT_MATCH_DSCP=m
77CONFIG_NETFILTER_XT_MATCH_ESP=m 110CONFIG_NETFILTER_XT_MATCH_ESP=m
78CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 111CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -83,6 +116,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
83CONFIG_NETFILTER_XT_MATCH_MAC=m 116CONFIG_NETFILTER_XT_MATCH_MAC=m
84CONFIG_NETFILTER_XT_MATCH_MARK=m 117CONFIG_NETFILTER_XT_MATCH_MARK=m
85CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 118CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
119CONFIG_NETFILTER_XT_MATCH_NFACCT=m
120CONFIG_NETFILTER_XT_MATCH_OSF=m
86CONFIG_NETFILTER_XT_MATCH_OWNER=m 121CONFIG_NETFILTER_XT_MATCH_OWNER=m
87CONFIG_NETFILTER_XT_MATCH_POLICY=m 122CONFIG_NETFILTER_XT_MATCH_POLICY=m
88CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 123CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -96,22 +131,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
96CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 131CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
97CONFIG_NETFILTER_XT_MATCH_TIME=m 132CONFIG_NETFILTER_XT_MATCH_TIME=m
98CONFIG_NETFILTER_XT_MATCH_U32=m 133CONFIG_NETFILTER_XT_MATCH_U32=m
134CONFIG_IP_SET=m
135CONFIG_IP_SET_BITMAP_IP=m
136CONFIG_IP_SET_BITMAP_IPMAC=m
137CONFIG_IP_SET_BITMAP_PORT=m
138CONFIG_IP_SET_HASH_IP=m
139CONFIG_IP_SET_HASH_IPPORT=m
140CONFIG_IP_SET_HASH_IPPORTIP=m
141CONFIG_IP_SET_HASH_IPPORTNET=m
142CONFIG_IP_SET_HASH_NET=m
143CONFIG_IP_SET_HASH_NETPORT=m
144CONFIG_IP_SET_HASH_NETIFACE=m
145CONFIG_IP_SET_LIST_SET=m
99CONFIG_NF_CONNTRACK_IPV4=m 146CONFIG_NF_CONNTRACK_IPV4=m
100CONFIG_IP_NF_QUEUE=m
101CONFIG_IP_NF_IPTABLES=m 147CONFIG_IP_NF_IPTABLES=m
102CONFIG_IP_NF_MATCH_ADDRTYPE=m
103CONFIG_IP_NF_MATCH_AH=m 148CONFIG_IP_NF_MATCH_AH=m
104CONFIG_IP_NF_MATCH_ECN=m 149CONFIG_IP_NF_MATCH_ECN=m
150CONFIG_IP_NF_MATCH_RPFILTER=m
105CONFIG_IP_NF_MATCH_TTL=m 151CONFIG_IP_NF_MATCH_TTL=m
106CONFIG_IP_NF_FILTER=m 152CONFIG_IP_NF_FILTER=m
107CONFIG_IP_NF_TARGET_REJECT=m 153CONFIG_IP_NF_TARGET_REJECT=m
108CONFIG_IP_NF_TARGET_LOG=m
109CONFIG_IP_NF_TARGET_ULOG=m 154CONFIG_IP_NF_TARGET_ULOG=m
110CONFIG_NF_NAT=m 155CONFIG_NF_NAT_IPV4=m
111CONFIG_IP_NF_TARGET_MASQUERADE=m 156CONFIG_IP_NF_TARGET_MASQUERADE=m
112CONFIG_IP_NF_TARGET_NETMAP=m 157CONFIG_IP_NF_TARGET_NETMAP=m
113CONFIG_IP_NF_TARGET_REDIRECT=m 158CONFIG_IP_NF_TARGET_REDIRECT=m
114CONFIG_NF_NAT_SNMP_BASIC=m
115CONFIG_IP_NF_MANGLE=m 159CONFIG_IP_NF_MANGLE=m
116CONFIG_IP_NF_TARGET_CLUSTERIP=m 160CONFIG_IP_NF_TARGET_CLUSTERIP=m
117CONFIG_IP_NF_TARGET_ECN=m 161CONFIG_IP_NF_TARGET_ECN=m
@@ -121,7 +165,6 @@ CONFIG_IP_NF_ARPTABLES=m
121CONFIG_IP_NF_ARPFILTER=m 165CONFIG_IP_NF_ARPFILTER=m
122CONFIG_IP_NF_ARP_MANGLE=m 166CONFIG_IP_NF_ARP_MANGLE=m
123CONFIG_NF_CONNTRACK_IPV6=m 167CONFIG_NF_CONNTRACK_IPV6=m
124CONFIG_IP6_NF_QUEUE=m
125CONFIG_IP6_NF_IPTABLES=m 168CONFIG_IP6_NF_IPTABLES=m
126CONFIG_IP6_NF_MATCH_AH=m 169CONFIG_IP6_NF_MATCH_AH=m
127CONFIG_IP6_NF_MATCH_EUI64=m 170CONFIG_IP6_NF_MATCH_EUI64=m
@@ -130,21 +173,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
130CONFIG_IP6_NF_MATCH_HL=m 173CONFIG_IP6_NF_MATCH_HL=m
131CONFIG_IP6_NF_MATCH_IPV6HEADER=m 174CONFIG_IP6_NF_MATCH_IPV6HEADER=m
132CONFIG_IP6_NF_MATCH_MH=m 175CONFIG_IP6_NF_MATCH_MH=m
176CONFIG_IP6_NF_MATCH_RPFILTER=m
133CONFIG_IP6_NF_MATCH_RT=m 177CONFIG_IP6_NF_MATCH_RT=m
134CONFIG_IP6_NF_TARGET_HL=m 178CONFIG_IP6_NF_TARGET_HL=m
135CONFIG_IP6_NF_TARGET_LOG=m
136CONFIG_IP6_NF_FILTER=m 179CONFIG_IP6_NF_FILTER=m
137CONFIG_IP6_NF_TARGET_REJECT=m 180CONFIG_IP6_NF_TARGET_REJECT=m
138CONFIG_IP6_NF_MANGLE=m 181CONFIG_IP6_NF_MANGLE=m
139CONFIG_IP6_NF_RAW=m 182CONFIG_IP6_NF_RAW=m
183CONFIG_NF_NAT_IPV6=m
184CONFIG_IP6_NF_TARGET_MASQUERADE=m
185CONFIG_IP6_NF_TARGET_NPT=m
140CONFIG_IP_DCCP=m 186CONFIG_IP_DCCP=m
141# CONFIG_IP_DCCP_CCID3 is not set 187# CONFIG_IP_DCCP_CCID3 is not set
188CONFIG_SCTP_COOKIE_HMAC_SHA1=y
189CONFIG_RDS=m
190CONFIG_RDS_TCP=m
191CONFIG_L2TP=m
142CONFIG_ATALK=m 192CONFIG_ATALK=m
193CONFIG_BATMAN_ADV=m
194CONFIG_BATMAN_ADV_DAT=y
195# CONFIG_WIRELESS is not set
143CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 196CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
197CONFIG_DEVTMPFS=y
144# CONFIG_FIRMWARE_IN_KERNEL is not set 198# CONFIG_FIRMWARE_IN_KERNEL is not set
199# CONFIG_FW_LOADER_USER_HELPER is not set
145CONFIG_CONNECTOR=m 200CONFIG_CONNECTOR=m
146CONFIG_BLK_DEV_LOOP=y 201CONFIG_BLK_DEV_LOOP=y
147CONFIG_BLK_DEV_CRYPTOLOOP=m 202CONFIG_BLK_DEV_CRYPTOLOOP=m
203CONFIG_BLK_DEV_DRBD=m
148CONFIG_BLK_DEV_NBD=m 204CONFIG_BLK_DEV_NBD=m
149CONFIG_BLK_DEV_RAM=y 205CONFIG_BLK_DEV_RAM=y
150CONFIG_CDROM_PKTCDVD=m 206CONFIG_CDROM_PKTCDVD=m
@@ -159,103 +215,132 @@ CONFIG_BLK_DEV_SR=y
159CONFIG_BLK_DEV_SR_VENDOR=y 215CONFIG_BLK_DEV_SR_VENDOR=y
160CONFIG_CHR_DEV_SG=m 216CONFIG_CHR_DEV_SG=m
161CONFIG_SCSI_CONSTANTS=y 217CONFIG_SCSI_CONSTANTS=y
162CONFIG_SCSI_SAS_LIBSAS=m 218CONFIG_SCSI_SAS_ATTRS=m
163# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
164CONFIG_SCSI_SRP_ATTRS=m
165CONFIG_SCSI_SRP_TGT_ATTRS=y
166CONFIG_ISCSI_TCP=m 219CONFIG_ISCSI_TCP=m
220CONFIG_ISCSI_BOOT_SYSFS=m
167CONFIG_MVME147_SCSI=y 221CONFIG_MVME147_SCSI=y
168CONFIG_MD=y 222CONFIG_MD=y
169CONFIG_BLK_DEV_MD=m
170CONFIG_MD_LINEAR=m 223CONFIG_MD_LINEAR=m
171CONFIG_MD_RAID0=m 224CONFIG_MD_RAID0=m
172CONFIG_MD_RAID1=m
173CONFIG_MD_RAID456=m
174CONFIG_BLK_DEV_DM=m 225CONFIG_BLK_DEV_DM=m
175CONFIG_DM_CRYPT=m 226CONFIG_DM_CRYPT=m
176CONFIG_DM_SNAPSHOT=m 227CONFIG_DM_SNAPSHOT=m
228CONFIG_DM_THIN_PROVISIONING=m
229CONFIG_DM_CACHE=m
177CONFIG_DM_MIRROR=m 230CONFIG_DM_MIRROR=m
231CONFIG_DM_RAID=m
178CONFIG_DM_ZERO=m 232CONFIG_DM_ZERO=m
179CONFIG_DM_MULTIPATH=m 233CONFIG_DM_MULTIPATH=m
180CONFIG_DM_UEVENT=y 234CONFIG_DM_UEVENT=y
235CONFIG_TARGET_CORE=m
236CONFIG_TCM_IBLOCK=m
237CONFIG_TCM_FILEIO=m
238CONFIG_TCM_PSCSI=m
181CONFIG_NETDEVICES=y 239CONFIG_NETDEVICES=y
182CONFIG_DUMMY=m 240CONFIG_DUMMY=m
183CONFIG_MACVLAN=m
184CONFIG_EQUALIZER=m 241CONFIG_EQUALIZER=m
242CONFIG_NET_TEAM=m
243CONFIG_NET_TEAM_MODE_BROADCAST=m
244CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
245CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
246CONFIG_NET_TEAM_MODE_LOADBALANCE=m
247CONFIG_VXLAN=m
248CONFIG_NETCONSOLE=m
249CONFIG_NETCONSOLE_DYNAMIC=y
185CONFIG_VETH=m 250CONFIG_VETH=m
186CONFIG_NET_ETHERNET=y
187CONFIG_MVME147_NET=y 251CONFIG_MVME147_NET=y
188# CONFIG_NETDEV_1000 is not set 252# CONFIG_NET_CADENCE is not set
189# CONFIG_NETDEV_10000 is not set 253# CONFIG_NET_VENDOR_BROADCOM is not set
254# CONFIG_NET_VENDOR_INTEL is not set
255# CONFIG_NET_VENDOR_MARVELL is not set
256# CONFIG_NET_VENDOR_MICREL is not set
257# CONFIG_NET_VENDOR_NATSEMI is not set
258# CONFIG_NET_VENDOR_SEEQ is not set
259# CONFIG_NET_VENDOR_STMICRO is not set
260# CONFIG_NET_VENDOR_WIZNET is not set
190CONFIG_PPP=m 261CONFIG_PPP=m
191CONFIG_PPP_FILTER=y
192CONFIG_PPP_ASYNC=m
193CONFIG_PPP_SYNC_TTY=m
194CONFIG_PPP_DEFLATE=m
195CONFIG_PPP_BSDCOMP=m 262CONFIG_PPP_BSDCOMP=m
263CONFIG_PPP_DEFLATE=m
264CONFIG_PPP_FILTER=y
196CONFIG_PPP_MPPE=m 265CONFIG_PPP_MPPE=m
197CONFIG_PPPOE=m 266CONFIG_PPPOE=m
267CONFIG_PPTP=m
268CONFIG_PPPOL2TP=m
269CONFIG_PPP_ASYNC=m
270CONFIG_PPP_SYNC_TTY=m
198CONFIG_SLIP=m 271CONFIG_SLIP=m
199CONFIG_SLIP_COMPRESSED=y 272CONFIG_SLIP_COMPRESSED=y
200CONFIG_SLIP_SMART=y 273CONFIG_SLIP_SMART=y
201CONFIG_SLIP_MODE_SLIP6=y 274CONFIG_SLIP_MODE_SLIP6=y
202CONFIG_NETCONSOLE=m 275# CONFIG_WLAN is not set
203CONFIG_NETCONSOLE_DYNAMIC=y 276CONFIG_INPUT_EVDEV=m
204CONFIG_INPUT_FF_MEMLESS=m
205# CONFIG_KEYBOARD_ATKBD is not set 277# CONFIG_KEYBOARD_ATKBD is not set
206CONFIG_MOUSE_PS2=m 278# CONFIG_MOUSE_PS2 is not set
207CONFIG_MOUSE_SERIAL=m 279# CONFIG_SERIO is not set
208CONFIG_SERIO=m
209# CONFIG_SERIO_SERPORT is not set
210CONFIG_VT_HW_CONSOLE_BINDING=y 280CONFIG_VT_HW_CONSOLE_BINDING=y
281# CONFIG_LEGACY_PTYS is not set
211# CONFIG_DEVKMEM is not set 282# CONFIG_DEVKMEM is not set
212# CONFIG_HW_RANDOM is not set 283# CONFIG_HW_RANDOM is not set
213CONFIG_GEN_RTC=m 284CONFIG_NTP_PPS=y
214CONFIG_GEN_RTC_X=y 285CONFIG_PPS_CLIENT_LDISC=m
286CONFIG_PTP_1588_CLOCK=m
215# CONFIG_HWMON is not set 287# CONFIG_HWMON is not set
216CONFIG_HID=m 288CONFIG_HID=m
217CONFIG_HIDRAW=y 289CONFIG_HIDRAW=y
290CONFIG_UHID=m
291# CONFIG_HID_GENERIC is not set
218# CONFIG_USB_SUPPORT is not set 292# CONFIG_USB_SUPPORT is not set
293CONFIG_RTC_CLASS=y
294CONFIG_RTC_DRV_GENERIC=m
295# CONFIG_IOMMU_SUPPORT is not set
296CONFIG_PROC_HARDWARE=y
219CONFIG_EXT2_FS=y 297CONFIG_EXT2_FS=y
220CONFIG_EXT3_FS=y 298CONFIG_EXT3_FS=y
221# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 299# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
222# CONFIG_EXT3_FS_XATTR is not set 300# CONFIG_EXT3_FS_XATTR is not set
301CONFIG_EXT4_FS=y
223CONFIG_REISERFS_FS=m 302CONFIG_REISERFS_FS=m
224CONFIG_JFS_FS=m 303CONFIG_JFS_FS=m
225CONFIG_XFS_FS=m 304CONFIG_XFS_FS=m
226CONFIG_OCFS2_FS=m 305CONFIG_OCFS2_FS=m
227# CONFIG_OCFS2_FS_STATS is not set
228# CONFIG_OCFS2_DEBUG_MASKLOG is not set 306# CONFIG_OCFS2_DEBUG_MASKLOG is not set
307CONFIG_FANOTIFY=y
229CONFIG_QUOTA_NETLINK_INTERFACE=y 308CONFIG_QUOTA_NETLINK_INTERFACE=y
230# CONFIG_PRINT_QUOTA_WARNING is not set 309# CONFIG_PRINT_QUOTA_WARNING is not set
231CONFIG_AUTOFS_FS=m
232CONFIG_AUTOFS4_FS=m 310CONFIG_AUTOFS4_FS=m
233CONFIG_FUSE_FS=m 311CONFIG_FUSE_FS=m
312CONFIG_CUSE=m
234CONFIG_ISO9660_FS=y 313CONFIG_ISO9660_FS=y
235CONFIG_JOLIET=y 314CONFIG_JOLIET=y
236CONFIG_ZISOFS=y 315CONFIG_ZISOFS=y
237CONFIG_UDF_FS=m 316CONFIG_UDF_FS=m
238CONFIG_MSDOS_FS=y 317CONFIG_MSDOS_FS=m
239CONFIG_VFAT_FS=m 318CONFIG_VFAT_FS=m
240CONFIG_PROC_KCORE=y 319CONFIG_PROC_KCORE=y
241CONFIG_TMPFS=y 320CONFIG_TMPFS=y
242CONFIG_AFFS_FS=m 321CONFIG_AFFS_FS=m
322CONFIG_ECRYPT_FS=m
323CONFIG_ECRYPT_FS_MESSAGING=y
243CONFIG_HFS_FS=m 324CONFIG_HFS_FS=m
244CONFIG_HFSPLUS_FS=m 325CONFIG_HFSPLUS_FS=m
245CONFIG_CRAMFS=m 326CONFIG_CRAMFS=m
246CONFIG_SQUASHFS=m 327CONFIG_SQUASHFS=m
247CONFIG_MINIX_FS=y 328CONFIG_SQUASHFS_LZO=y
329CONFIG_MINIX_FS=m
330CONFIG_OMFS_FS=m
248CONFIG_HPFS_FS=m 331CONFIG_HPFS_FS=m
332CONFIG_QNX4FS_FS=m
333CONFIG_QNX6FS_FS=m
249CONFIG_SYSV_FS=m 334CONFIG_SYSV_FS=m
250CONFIG_UFS_FS=m 335CONFIG_UFS_FS=m
251CONFIG_NFS_FS=y 336CONFIG_NFS_FS=y
252CONFIG_NFS_V3=y
253CONFIG_NFS_V4=y 337CONFIG_NFS_V4=y
338CONFIG_NFS_SWAP=y
254CONFIG_ROOT_NFS=y 339CONFIG_ROOT_NFS=y
255CONFIG_NFSD=m 340CONFIG_NFSD=m
256CONFIG_NFSD_V3=y 341CONFIG_NFSD_V3=y
257CONFIG_SMB_FS=m 342CONFIG_CIFS=m
258CONFIG_SMB_NLS_DEFAULT=y 343# CONFIG_CIFS_DEBUG is not set
259CONFIG_CODA_FS=m 344CONFIG_CODA_FS=m
260CONFIG_NLS_CODEPAGE_437=y 345CONFIG_NLS_CODEPAGE_437=y
261CONFIG_NLS_CODEPAGE_737=m 346CONFIG_NLS_CODEPAGE_737=m
@@ -294,10 +379,23 @@ CONFIG_NLS_ISO8859_14=m
294CONFIG_NLS_ISO8859_15=m 379CONFIG_NLS_ISO8859_15=m
295CONFIG_NLS_KOI8_R=m 380CONFIG_NLS_KOI8_R=m
296CONFIG_NLS_KOI8_U=m 381CONFIG_NLS_KOI8_U=m
382CONFIG_NLS_MAC_ROMAN=m
383CONFIG_NLS_MAC_CELTIC=m
384CONFIG_NLS_MAC_CENTEURO=m
385CONFIG_NLS_MAC_CROATIAN=m
386CONFIG_NLS_MAC_CYRILLIC=m
387CONFIG_NLS_MAC_GAELIC=m
388CONFIG_NLS_MAC_GREEK=m
389CONFIG_NLS_MAC_ICELAND=m
390CONFIG_NLS_MAC_INUIT=m
391CONFIG_NLS_MAC_ROMANIAN=m
392CONFIG_NLS_MAC_TURKISH=m
297CONFIG_DLM=m 393CONFIG_DLM=m
298CONFIG_MAGIC_SYSRQ=y 394CONFIG_MAGIC_SYSRQ=y
299# CONFIG_RCU_CPU_STALL_DETECTOR is not set 395CONFIG_ASYNC_RAID6_TEST=m
300CONFIG_SYSCTL_SYSCALL_CHECK=y 396CONFIG_ENCRYPTED_KEYS=m
397CONFIG_CRYPTO_MANAGER=y
398CONFIG_CRYPTO_USER=m
301CONFIG_CRYPTO_NULL=m 399CONFIG_CRYPTO_NULL=m
302CONFIG_CRYPTO_CRYPTD=m 400CONFIG_CRYPTO_CRYPTD=m
303CONFIG_CRYPTO_TEST=m 401CONFIG_CRYPTO_TEST=m
@@ -307,19 +405,16 @@ CONFIG_CRYPTO_CTS=m
307CONFIG_CRYPTO_LRW=m 405CONFIG_CRYPTO_LRW=m
308CONFIG_CRYPTO_PCBC=m 406CONFIG_CRYPTO_PCBC=m
309CONFIG_CRYPTO_XTS=m 407CONFIG_CRYPTO_XTS=m
310CONFIG_CRYPTO_HMAC=y
311CONFIG_CRYPTO_XCBC=m 408CONFIG_CRYPTO_XCBC=m
312CONFIG_CRYPTO_MD4=m 409CONFIG_CRYPTO_VMAC=m
313CONFIG_CRYPTO_MICHAEL_MIC=m 410CONFIG_CRYPTO_MICHAEL_MIC=m
314CONFIG_CRYPTO_RMD128=m 411CONFIG_CRYPTO_RMD128=m
315CONFIG_CRYPTO_RMD160=m 412CONFIG_CRYPTO_RMD160=m
316CONFIG_CRYPTO_RMD256=m 413CONFIG_CRYPTO_RMD256=m
317CONFIG_CRYPTO_RMD320=m 414CONFIG_CRYPTO_RMD320=m
318CONFIG_CRYPTO_SHA256=m
319CONFIG_CRYPTO_SHA512=m 415CONFIG_CRYPTO_SHA512=m
320CONFIG_CRYPTO_TGR192=m 416CONFIG_CRYPTO_TGR192=m
321CONFIG_CRYPTO_WP512=m 417CONFIG_CRYPTO_WP512=m
322CONFIG_CRYPTO_AES=m
323CONFIG_CRYPTO_ANUBIS=m 418CONFIG_CRYPTO_ANUBIS=m
324CONFIG_CRYPTO_BLOWFISH=m 419CONFIG_CRYPTO_BLOWFISH=m
325CONFIG_CRYPTO_CAMELLIA=m 420CONFIG_CRYPTO_CAMELLIA=m
@@ -335,6 +430,14 @@ CONFIG_CRYPTO_TWOFISH=m
335CONFIG_CRYPTO_ZLIB=m 430CONFIG_CRYPTO_ZLIB=m
336CONFIG_CRYPTO_LZO=m 431CONFIG_CRYPTO_LZO=m
337# CONFIG_CRYPTO_ANSI_CPRNG is not set 432# CONFIG_CRYPTO_ANSI_CPRNG is not set
433CONFIG_CRYPTO_USER_API_HASH=m
434CONFIG_CRYPTO_USER_API_SKCIPHER=m
338# CONFIG_CRYPTO_HW is not set 435# CONFIG_CRYPTO_HW is not set
339CONFIG_CRC16=m
340CONFIG_CRC_T10DIF=y 436CONFIG_CRC_T10DIF=y
437CONFIG_XZ_DEC_X86=y
438CONFIG_XZ_DEC_POWERPC=y
439CONFIG_XZ_DEC_IA64=y
440CONFIG_XZ_DEC_ARM=y
441CONFIG_XZ_DEC_ARMTHUMB=y
442CONFIG_XZ_DEC_SPARC=y
443CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index 7c9402b2097f..e5e8262bbacd 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_defconfig
@@ -1,53 +1,74 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-mvme16x" 1CONFIG_LOCALVERSION="-mvme16x"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_VME=y 16CONFIG_PARTITION_ADVANCED=y
14CONFIG_MVME16x=y 17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_IOSCHED_DEADLINE=m
15CONFIG_M68040=y 27CONFIG_M68040=y
16CONFIG_M68060=y 28CONFIG_M68060=y
29CONFIG_VME=y
30CONFIG_MVME16x=y
31# CONFIG_COMPACTION is not set
32CONFIG_CLEANCACHE=y
33# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
17CONFIG_BINFMT_AOUT=m 34CONFIG_BINFMT_AOUT=m
18CONFIG_BINFMT_MISC=m 35CONFIG_BINFMT_MISC=m
19CONFIG_PROC_HARDWARE=y
20CONFIG_NET=y 36CONFIG_NET=y
21CONFIG_PACKET=y 37CONFIG_PACKET=y
38CONFIG_PACKET_DIAG=m
22CONFIG_UNIX=y 39CONFIG_UNIX=y
40CONFIG_UNIX_DIAG=m
41CONFIG_XFRM_MIGRATE=y
23CONFIG_NET_KEY=y 42CONFIG_NET_KEY=y
24CONFIG_NET_KEY_MIGRATE=y
25CONFIG_INET=y 43CONFIG_INET=y
26CONFIG_IP_PNP=y 44CONFIG_IP_PNP=y
27CONFIG_IP_PNP_DHCP=y 45CONFIG_IP_PNP_DHCP=y
28CONFIG_IP_PNP_BOOTP=y 46CONFIG_IP_PNP_BOOTP=y
29CONFIG_IP_PNP_RARP=y 47CONFIG_IP_PNP_RARP=y
30CONFIG_NET_IPIP=m 48CONFIG_NET_IPIP=m
49CONFIG_NET_IPGRE_DEMUX=m
31CONFIG_NET_IPGRE=m 50CONFIG_NET_IPGRE=m
32CONFIG_SYN_COOKIES=y 51CONFIG_SYN_COOKIES=y
52CONFIG_NET_IPVTI=m
33CONFIG_INET_AH=m 53CONFIG_INET_AH=m
34CONFIG_INET_ESP=m 54CONFIG_INET_ESP=m
35CONFIG_INET_IPCOMP=m 55CONFIG_INET_IPCOMP=m
36CONFIG_INET_XFRM_MODE_TRANSPORT=m 56CONFIG_INET_XFRM_MODE_TRANSPORT=m
37CONFIG_INET_XFRM_MODE_TUNNEL=m 57CONFIG_INET_XFRM_MODE_TUNNEL=m
38CONFIG_INET_XFRM_MODE_BEET=m 58CONFIG_INET_XFRM_MODE_BEET=m
59# CONFIG_INET_LRO is not set
39CONFIG_INET_DIAG=m 60CONFIG_INET_DIAG=m
61CONFIG_INET_UDP_DIAG=m
40CONFIG_IPV6_PRIVACY=y 62CONFIG_IPV6_PRIVACY=y
41CONFIG_IPV6_ROUTER_PREF=y 63CONFIG_IPV6_ROUTER_PREF=y
42CONFIG_IPV6_ROUTE_INFO=y
43CONFIG_INET6_AH=m 64CONFIG_INET6_AH=m
44CONFIG_INET6_ESP=m 65CONFIG_INET6_ESP=m
45CONFIG_INET6_IPCOMP=m 66CONFIG_INET6_IPCOMP=m
46CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 67CONFIG_IPV6_GRE=m
47CONFIG_IPV6_TUNNEL=m
48CONFIG_NETFILTER=y 68CONFIG_NETFILTER=y
49CONFIG_NETFILTER_NETLINK_QUEUE=m
50CONFIG_NF_CONNTRACK=m 69CONFIG_NF_CONNTRACK=m
70CONFIG_NF_CONNTRACK_ZONES=y
71# CONFIG_NF_CONNTRACK_PROCFS is not set
51# CONFIG_NF_CT_PROTO_DCCP is not set 72# CONFIG_NF_CT_PROTO_DCCP is not set
52CONFIG_NF_CT_PROTO_UDPLITE=m 73CONFIG_NF_CT_PROTO_UDPLITE=m
53CONFIG_NF_CONNTRACK_AMANDA=m 74CONFIG_NF_CONNTRACK_AMANDA=m
@@ -55,25 +76,37 @@ CONFIG_NF_CONNTRACK_FTP=m
55CONFIG_NF_CONNTRACK_H323=m 76CONFIG_NF_CONNTRACK_H323=m
56CONFIG_NF_CONNTRACK_IRC=m 77CONFIG_NF_CONNTRACK_IRC=m
57CONFIG_NF_CONNTRACK_NETBIOS_NS=m 78CONFIG_NF_CONNTRACK_NETBIOS_NS=m
79CONFIG_NF_CONNTRACK_SNMP=m
58CONFIG_NF_CONNTRACK_PPTP=m 80CONFIG_NF_CONNTRACK_PPTP=m
59CONFIG_NF_CONNTRACK_SANE=m 81CONFIG_NF_CONNTRACK_SANE=m
60CONFIG_NF_CONNTRACK_SIP=m 82CONFIG_NF_CONNTRACK_SIP=m
61CONFIG_NF_CONNTRACK_TFTP=m 83CONFIG_NF_CONNTRACK_TFTP=m
84CONFIG_NETFILTER_XT_SET=m
85CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
62CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 86CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
63CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 87CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
64CONFIG_NETFILTER_XT_TARGET_DSCP=m 88CONFIG_NETFILTER_XT_TARGET_DSCP=m
89CONFIG_NETFILTER_XT_TARGET_HMARK=m
90CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
91CONFIG_NETFILTER_XT_TARGET_LOG=m
65CONFIG_NETFILTER_XT_TARGET_MARK=m 92CONFIG_NETFILTER_XT_TARGET_MARK=m
66CONFIG_NETFILTER_XT_TARGET_NFLOG=m 93CONFIG_NETFILTER_XT_TARGET_NFLOG=m
67CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 94CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
95CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
96CONFIG_NETFILTER_XT_TARGET_TEE=m
68CONFIG_NETFILTER_XT_TARGET_TRACE=m 97CONFIG_NETFILTER_XT_TARGET_TRACE=m
69CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 98CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
70CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 99CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
100CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
101CONFIG_NETFILTER_XT_MATCH_BPF=m
71CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 102CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
72CONFIG_NETFILTER_XT_MATCH_COMMENT=m 103CONFIG_NETFILTER_XT_MATCH_COMMENT=m
73CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 104CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
105CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
74CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 106CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
75CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 107CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
76CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 108CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
109CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
77CONFIG_NETFILTER_XT_MATCH_DSCP=m 110CONFIG_NETFILTER_XT_MATCH_DSCP=m
78CONFIG_NETFILTER_XT_MATCH_ESP=m 111CONFIG_NETFILTER_XT_MATCH_ESP=m
79CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 112CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -84,6 +117,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
84CONFIG_NETFILTER_XT_MATCH_MAC=m 117CONFIG_NETFILTER_XT_MATCH_MAC=m
85CONFIG_NETFILTER_XT_MATCH_MARK=m 118CONFIG_NETFILTER_XT_MATCH_MARK=m
86CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 119CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
120CONFIG_NETFILTER_XT_MATCH_NFACCT=m
121CONFIG_NETFILTER_XT_MATCH_OSF=m
87CONFIG_NETFILTER_XT_MATCH_OWNER=m 122CONFIG_NETFILTER_XT_MATCH_OWNER=m
88CONFIG_NETFILTER_XT_MATCH_POLICY=m 123CONFIG_NETFILTER_XT_MATCH_POLICY=m
89CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 124CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -97,22 +132,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
97CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 132CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
98CONFIG_NETFILTER_XT_MATCH_TIME=m 133CONFIG_NETFILTER_XT_MATCH_TIME=m
99CONFIG_NETFILTER_XT_MATCH_U32=m 134CONFIG_NETFILTER_XT_MATCH_U32=m
135CONFIG_IP_SET=m
136CONFIG_IP_SET_BITMAP_IP=m
137CONFIG_IP_SET_BITMAP_IPMAC=m
138CONFIG_IP_SET_BITMAP_PORT=m
139CONFIG_IP_SET_HASH_IP=m
140CONFIG_IP_SET_HASH_IPPORT=m
141CONFIG_IP_SET_HASH_IPPORTIP=m
142CONFIG_IP_SET_HASH_IPPORTNET=m
143CONFIG_IP_SET_HASH_NET=m
144CONFIG_IP_SET_HASH_NETPORT=m
145CONFIG_IP_SET_HASH_NETIFACE=m
146CONFIG_IP_SET_LIST_SET=m
100CONFIG_NF_CONNTRACK_IPV4=m 147CONFIG_NF_CONNTRACK_IPV4=m
101CONFIG_IP_NF_QUEUE=m
102CONFIG_IP_NF_IPTABLES=m 148CONFIG_IP_NF_IPTABLES=m
103CONFIG_IP_NF_MATCH_ADDRTYPE=m
104CONFIG_IP_NF_MATCH_AH=m 149CONFIG_IP_NF_MATCH_AH=m
105CONFIG_IP_NF_MATCH_ECN=m 150CONFIG_IP_NF_MATCH_ECN=m
151CONFIG_IP_NF_MATCH_RPFILTER=m
106CONFIG_IP_NF_MATCH_TTL=m 152CONFIG_IP_NF_MATCH_TTL=m
107CONFIG_IP_NF_FILTER=m 153CONFIG_IP_NF_FILTER=m
108CONFIG_IP_NF_TARGET_REJECT=m 154CONFIG_IP_NF_TARGET_REJECT=m
109CONFIG_IP_NF_TARGET_LOG=m
110CONFIG_IP_NF_TARGET_ULOG=m 155CONFIG_IP_NF_TARGET_ULOG=m
111CONFIG_NF_NAT=m 156CONFIG_NF_NAT_IPV4=m
112CONFIG_IP_NF_TARGET_MASQUERADE=m 157CONFIG_IP_NF_TARGET_MASQUERADE=m
113CONFIG_IP_NF_TARGET_NETMAP=m 158CONFIG_IP_NF_TARGET_NETMAP=m
114CONFIG_IP_NF_TARGET_REDIRECT=m 159CONFIG_IP_NF_TARGET_REDIRECT=m
115CONFIG_NF_NAT_SNMP_BASIC=m
116CONFIG_IP_NF_MANGLE=m 160CONFIG_IP_NF_MANGLE=m
117CONFIG_IP_NF_TARGET_CLUSTERIP=m 161CONFIG_IP_NF_TARGET_CLUSTERIP=m
118CONFIG_IP_NF_TARGET_ECN=m 162CONFIG_IP_NF_TARGET_ECN=m
@@ -122,7 +166,6 @@ CONFIG_IP_NF_ARPTABLES=m
122CONFIG_IP_NF_ARPFILTER=m 166CONFIG_IP_NF_ARPFILTER=m
123CONFIG_IP_NF_ARP_MANGLE=m 167CONFIG_IP_NF_ARP_MANGLE=m
124CONFIG_NF_CONNTRACK_IPV6=m 168CONFIG_NF_CONNTRACK_IPV6=m
125CONFIG_IP6_NF_QUEUE=m
126CONFIG_IP6_NF_IPTABLES=m 169CONFIG_IP6_NF_IPTABLES=m
127CONFIG_IP6_NF_MATCH_AH=m 170CONFIG_IP6_NF_MATCH_AH=m
128CONFIG_IP6_NF_MATCH_EUI64=m 171CONFIG_IP6_NF_MATCH_EUI64=m
@@ -131,21 +174,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
131CONFIG_IP6_NF_MATCH_HL=m 174CONFIG_IP6_NF_MATCH_HL=m
132CONFIG_IP6_NF_MATCH_IPV6HEADER=m 175CONFIG_IP6_NF_MATCH_IPV6HEADER=m
133CONFIG_IP6_NF_MATCH_MH=m 176CONFIG_IP6_NF_MATCH_MH=m
177CONFIG_IP6_NF_MATCH_RPFILTER=m
134CONFIG_IP6_NF_MATCH_RT=m 178CONFIG_IP6_NF_MATCH_RT=m
135CONFIG_IP6_NF_TARGET_HL=m 179CONFIG_IP6_NF_TARGET_HL=m
136CONFIG_IP6_NF_TARGET_LOG=m
137CONFIG_IP6_NF_FILTER=m 180CONFIG_IP6_NF_FILTER=m
138CONFIG_IP6_NF_TARGET_REJECT=m 181CONFIG_IP6_NF_TARGET_REJECT=m
139CONFIG_IP6_NF_MANGLE=m 182CONFIG_IP6_NF_MANGLE=m
140CONFIG_IP6_NF_RAW=m 183CONFIG_IP6_NF_RAW=m
184CONFIG_NF_NAT_IPV6=m
185CONFIG_IP6_NF_TARGET_MASQUERADE=m
186CONFIG_IP6_NF_TARGET_NPT=m
141CONFIG_IP_DCCP=m 187CONFIG_IP_DCCP=m
142# CONFIG_IP_DCCP_CCID3 is not set 188# CONFIG_IP_DCCP_CCID3 is not set
189CONFIG_SCTP_COOKIE_HMAC_SHA1=y
190CONFIG_RDS=m
191CONFIG_RDS_TCP=m
192CONFIG_L2TP=m
143CONFIG_ATALK=m 193CONFIG_ATALK=m
194CONFIG_BATMAN_ADV=m
195CONFIG_BATMAN_ADV_DAT=y
196# CONFIG_WIRELESS is not set
144CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 197CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
198CONFIG_DEVTMPFS=y
145# CONFIG_FIRMWARE_IN_KERNEL is not set 199# CONFIG_FIRMWARE_IN_KERNEL is not set
200# CONFIG_FW_LOADER_USER_HELPER is not set
146CONFIG_CONNECTOR=m 201CONFIG_CONNECTOR=m
147CONFIG_BLK_DEV_LOOP=y 202CONFIG_BLK_DEV_LOOP=y
148CONFIG_BLK_DEV_CRYPTOLOOP=m 203CONFIG_BLK_DEV_CRYPTOLOOP=m
204CONFIG_BLK_DEV_DRBD=m
149CONFIG_BLK_DEV_NBD=m 205CONFIG_BLK_DEV_NBD=m
150CONFIG_BLK_DEV_RAM=y 206CONFIG_BLK_DEV_RAM=y
151CONFIG_CDROM_PKTCDVD=m 207CONFIG_CDROM_PKTCDVD=m
@@ -160,103 +216,131 @@ CONFIG_BLK_DEV_SR=y
160CONFIG_BLK_DEV_SR_VENDOR=y 216CONFIG_BLK_DEV_SR_VENDOR=y
161CONFIG_CHR_DEV_SG=m 217CONFIG_CHR_DEV_SG=m
162CONFIG_SCSI_CONSTANTS=y 218CONFIG_SCSI_CONSTANTS=y
163CONFIG_SCSI_SAS_LIBSAS=m 219CONFIG_SCSI_SAS_ATTRS=m
164# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
165CONFIG_SCSI_SRP_ATTRS=m
166CONFIG_SCSI_SRP_TGT_ATTRS=y
167CONFIG_ISCSI_TCP=m 220CONFIG_ISCSI_TCP=m
221CONFIG_ISCSI_BOOT_SYSFS=m
168CONFIG_MVME16x_SCSI=y 222CONFIG_MVME16x_SCSI=y
169CONFIG_MD=y 223CONFIG_MD=y
170CONFIG_BLK_DEV_MD=m
171CONFIG_MD_LINEAR=m 224CONFIG_MD_LINEAR=m
172CONFIG_MD_RAID0=m 225CONFIG_MD_RAID0=m
173CONFIG_MD_RAID1=m
174CONFIG_MD_RAID456=m
175CONFIG_BLK_DEV_DM=m 226CONFIG_BLK_DEV_DM=m
176CONFIG_DM_CRYPT=m 227CONFIG_DM_CRYPT=m
177CONFIG_DM_SNAPSHOT=m 228CONFIG_DM_SNAPSHOT=m
229CONFIG_DM_THIN_PROVISIONING=m
230CONFIG_DM_CACHE=m
178CONFIG_DM_MIRROR=m 231CONFIG_DM_MIRROR=m
232CONFIG_DM_RAID=m
179CONFIG_DM_ZERO=m 233CONFIG_DM_ZERO=m
180CONFIG_DM_MULTIPATH=m 234CONFIG_DM_MULTIPATH=m
181CONFIG_DM_UEVENT=y 235CONFIG_DM_UEVENT=y
236CONFIG_TARGET_CORE=m
237CONFIG_TCM_IBLOCK=m
238CONFIG_TCM_FILEIO=m
239CONFIG_TCM_PSCSI=m
182CONFIG_NETDEVICES=y 240CONFIG_NETDEVICES=y
183CONFIG_DUMMY=m 241CONFIG_DUMMY=m
184CONFIG_MACVLAN=m
185CONFIG_EQUALIZER=m 242CONFIG_EQUALIZER=m
243CONFIG_NET_TEAM=m
244CONFIG_NET_TEAM_MODE_BROADCAST=m
245CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
246CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
247CONFIG_NET_TEAM_MODE_LOADBALANCE=m
248CONFIG_VXLAN=m
249CONFIG_NETCONSOLE=m
250CONFIG_NETCONSOLE_DYNAMIC=y
186CONFIG_VETH=m 251CONFIG_VETH=m
187CONFIG_NET_ETHERNET=y 252# CONFIG_NET_CADENCE is not set
253# CONFIG_NET_VENDOR_BROADCOM is not set
188CONFIG_MVME16x_NET=y 254CONFIG_MVME16x_NET=y
189# CONFIG_NETDEV_1000 is not set 255# CONFIG_NET_VENDOR_MARVELL is not set
190# CONFIG_NETDEV_10000 is not set 256# CONFIG_NET_VENDOR_MICREL is not set
257# CONFIG_NET_VENDOR_NATSEMI is not set
258# CONFIG_NET_VENDOR_SEEQ is not set
259# CONFIG_NET_VENDOR_STMICRO is not set
260# CONFIG_NET_VENDOR_WIZNET is not set
191CONFIG_PPP=m 261CONFIG_PPP=m
192CONFIG_PPP_FILTER=y
193CONFIG_PPP_ASYNC=m
194CONFIG_PPP_SYNC_TTY=m
195CONFIG_PPP_DEFLATE=m
196CONFIG_PPP_BSDCOMP=m 262CONFIG_PPP_BSDCOMP=m
263CONFIG_PPP_DEFLATE=m
264CONFIG_PPP_FILTER=y
197CONFIG_PPP_MPPE=m 265CONFIG_PPP_MPPE=m
198CONFIG_PPPOE=m 266CONFIG_PPPOE=m
267CONFIG_PPTP=m
268CONFIG_PPPOL2TP=m
269CONFIG_PPP_ASYNC=m
270CONFIG_PPP_SYNC_TTY=m
199CONFIG_SLIP=m 271CONFIG_SLIP=m
200CONFIG_SLIP_COMPRESSED=y 272CONFIG_SLIP_COMPRESSED=y
201CONFIG_SLIP_SMART=y 273CONFIG_SLIP_SMART=y
202CONFIG_SLIP_MODE_SLIP6=y 274CONFIG_SLIP_MODE_SLIP6=y
203CONFIG_NETCONSOLE=m 275# CONFIG_WLAN is not set
204CONFIG_NETCONSOLE_DYNAMIC=y 276CONFIG_INPUT_EVDEV=m
205CONFIG_INPUT_FF_MEMLESS=m
206# CONFIG_KEYBOARD_ATKBD is not set 277# CONFIG_KEYBOARD_ATKBD is not set
207CONFIG_MOUSE_PS2=m 278# CONFIG_MOUSE_PS2 is not set
208CONFIG_MOUSE_SERIAL=m 279# CONFIG_SERIO is not set
209CONFIG_SERIO=m
210# CONFIG_SERIO_SERPORT is not set
211CONFIG_VT_HW_CONSOLE_BINDING=y 280CONFIG_VT_HW_CONSOLE_BINDING=y
281# CONFIG_LEGACY_PTYS is not set
212# CONFIG_DEVKMEM is not set 282# CONFIG_DEVKMEM is not set
213# CONFIG_HW_RANDOM is not set 283# CONFIG_HW_RANDOM is not set
214CONFIG_GEN_RTC=m 284CONFIG_NTP_PPS=y
215CONFIG_GEN_RTC_X=y 285CONFIG_PPS_CLIENT_LDISC=m
286CONFIG_PTP_1588_CLOCK=m
216# CONFIG_HWMON is not set 287# CONFIG_HWMON is not set
217CONFIG_HID=m 288CONFIG_HID=m
218CONFIG_HIDRAW=y 289CONFIG_HIDRAW=y
290CONFIG_UHID=m
291# CONFIG_HID_GENERIC is not set
219# CONFIG_USB_SUPPORT is not set 292# CONFIG_USB_SUPPORT is not set
293CONFIG_RTC_CLASS=y
294CONFIG_RTC_DRV_GENERIC=m
295# CONFIG_IOMMU_SUPPORT is not set
296CONFIG_PROC_HARDWARE=y
220CONFIG_EXT2_FS=y 297CONFIG_EXT2_FS=y
221CONFIG_EXT3_FS=y 298CONFIG_EXT3_FS=y
222# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 299# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
223# CONFIG_EXT3_FS_XATTR is not set 300# CONFIG_EXT3_FS_XATTR is not set
301CONFIG_EXT4_FS=y
224CONFIG_REISERFS_FS=m 302CONFIG_REISERFS_FS=m
225CONFIG_JFS_FS=m 303CONFIG_JFS_FS=m
226CONFIG_XFS_FS=m 304CONFIG_XFS_FS=m
227CONFIG_OCFS2_FS=m 305CONFIG_OCFS2_FS=m
228# CONFIG_OCFS2_FS_STATS is not set
229# CONFIG_OCFS2_DEBUG_MASKLOG is not set 306# CONFIG_OCFS2_DEBUG_MASKLOG is not set
307CONFIG_FANOTIFY=y
230CONFIG_QUOTA_NETLINK_INTERFACE=y 308CONFIG_QUOTA_NETLINK_INTERFACE=y
231# CONFIG_PRINT_QUOTA_WARNING is not set 309# CONFIG_PRINT_QUOTA_WARNING is not set
232CONFIG_AUTOFS_FS=m
233CONFIG_AUTOFS4_FS=m 310CONFIG_AUTOFS4_FS=m
234CONFIG_FUSE_FS=m 311CONFIG_FUSE_FS=m
312CONFIG_CUSE=m
235CONFIG_ISO9660_FS=y 313CONFIG_ISO9660_FS=y
236CONFIG_JOLIET=y 314CONFIG_JOLIET=y
237CONFIG_ZISOFS=y 315CONFIG_ZISOFS=y
238CONFIG_UDF_FS=m 316CONFIG_UDF_FS=m
239CONFIG_MSDOS_FS=y 317CONFIG_MSDOS_FS=m
240CONFIG_VFAT_FS=m 318CONFIG_VFAT_FS=m
241CONFIG_PROC_KCORE=y 319CONFIG_PROC_KCORE=y
242CONFIG_TMPFS=y 320CONFIG_TMPFS=y
243CONFIG_AFFS_FS=m 321CONFIG_AFFS_FS=m
322CONFIG_ECRYPT_FS=m
323CONFIG_ECRYPT_FS_MESSAGING=y
244CONFIG_HFS_FS=m 324CONFIG_HFS_FS=m
245CONFIG_HFSPLUS_FS=m 325CONFIG_HFSPLUS_FS=m
246CONFIG_CRAMFS=m 326CONFIG_CRAMFS=m
247CONFIG_SQUASHFS=m 327CONFIG_SQUASHFS=m
248CONFIG_MINIX_FS=y 328CONFIG_SQUASHFS_LZO=y
329CONFIG_MINIX_FS=m
330CONFIG_OMFS_FS=m
249CONFIG_HPFS_FS=m 331CONFIG_HPFS_FS=m
332CONFIG_QNX4FS_FS=m
333CONFIG_QNX6FS_FS=m
250CONFIG_SYSV_FS=m 334CONFIG_SYSV_FS=m
251CONFIG_UFS_FS=m 335CONFIG_UFS_FS=m
252CONFIG_NFS_FS=y 336CONFIG_NFS_FS=y
253CONFIG_NFS_V3=y
254CONFIG_NFS_V4=y 337CONFIG_NFS_V4=y
338CONFIG_NFS_SWAP=y
255CONFIG_ROOT_NFS=y 339CONFIG_ROOT_NFS=y
256CONFIG_NFSD=m 340CONFIG_NFSD=m
257CONFIG_NFSD_V3=y 341CONFIG_NFSD_V3=y
258CONFIG_SMB_FS=m 342CONFIG_CIFS=m
259CONFIG_SMB_NLS_DEFAULT=y 343# CONFIG_CIFS_DEBUG is not set
260CONFIG_CODA_FS=m 344CONFIG_CODA_FS=m
261CONFIG_NLS_CODEPAGE_437=y 345CONFIG_NLS_CODEPAGE_437=y
262CONFIG_NLS_CODEPAGE_737=m 346CONFIG_NLS_CODEPAGE_737=m
@@ -295,10 +379,23 @@ CONFIG_NLS_ISO8859_14=m
295CONFIG_NLS_ISO8859_15=m 379CONFIG_NLS_ISO8859_15=m
296CONFIG_NLS_KOI8_R=m 380CONFIG_NLS_KOI8_R=m
297CONFIG_NLS_KOI8_U=m 381CONFIG_NLS_KOI8_U=m
382CONFIG_NLS_MAC_ROMAN=m
383CONFIG_NLS_MAC_CELTIC=m
384CONFIG_NLS_MAC_CENTEURO=m
385CONFIG_NLS_MAC_CROATIAN=m
386CONFIG_NLS_MAC_CYRILLIC=m
387CONFIG_NLS_MAC_GAELIC=m
388CONFIG_NLS_MAC_GREEK=m
389CONFIG_NLS_MAC_ICELAND=m
390CONFIG_NLS_MAC_INUIT=m
391CONFIG_NLS_MAC_ROMANIAN=m
392CONFIG_NLS_MAC_TURKISH=m
298CONFIG_DLM=m 393CONFIG_DLM=m
299CONFIG_MAGIC_SYSRQ=y 394CONFIG_MAGIC_SYSRQ=y
300# CONFIG_RCU_CPU_STALL_DETECTOR is not set 395CONFIG_ASYNC_RAID6_TEST=m
301CONFIG_SYSCTL_SYSCALL_CHECK=y 396CONFIG_ENCRYPTED_KEYS=m
397CONFIG_CRYPTO_MANAGER=y
398CONFIG_CRYPTO_USER=m
302CONFIG_CRYPTO_NULL=m 399CONFIG_CRYPTO_NULL=m
303CONFIG_CRYPTO_CRYPTD=m 400CONFIG_CRYPTO_CRYPTD=m
304CONFIG_CRYPTO_TEST=m 401CONFIG_CRYPTO_TEST=m
@@ -308,19 +405,16 @@ CONFIG_CRYPTO_CTS=m
308CONFIG_CRYPTO_LRW=m 405CONFIG_CRYPTO_LRW=m
309CONFIG_CRYPTO_PCBC=m 406CONFIG_CRYPTO_PCBC=m
310CONFIG_CRYPTO_XTS=m 407CONFIG_CRYPTO_XTS=m
311CONFIG_CRYPTO_HMAC=y
312CONFIG_CRYPTO_XCBC=m 408CONFIG_CRYPTO_XCBC=m
313CONFIG_CRYPTO_MD4=m 409CONFIG_CRYPTO_VMAC=m
314CONFIG_CRYPTO_MICHAEL_MIC=m 410CONFIG_CRYPTO_MICHAEL_MIC=m
315CONFIG_CRYPTO_RMD128=m 411CONFIG_CRYPTO_RMD128=m
316CONFIG_CRYPTO_RMD160=m 412CONFIG_CRYPTO_RMD160=m
317CONFIG_CRYPTO_RMD256=m 413CONFIG_CRYPTO_RMD256=m
318CONFIG_CRYPTO_RMD320=m 414CONFIG_CRYPTO_RMD320=m
319CONFIG_CRYPTO_SHA256=m
320CONFIG_CRYPTO_SHA512=m 415CONFIG_CRYPTO_SHA512=m
321CONFIG_CRYPTO_TGR192=m 416CONFIG_CRYPTO_TGR192=m
322CONFIG_CRYPTO_WP512=m 417CONFIG_CRYPTO_WP512=m
323CONFIG_CRYPTO_AES=m
324CONFIG_CRYPTO_ANUBIS=m 418CONFIG_CRYPTO_ANUBIS=m
325CONFIG_CRYPTO_BLOWFISH=m 419CONFIG_CRYPTO_BLOWFISH=m
326CONFIG_CRYPTO_CAMELLIA=m 420CONFIG_CRYPTO_CAMELLIA=m
@@ -336,6 +430,14 @@ CONFIG_CRYPTO_TWOFISH=m
336CONFIG_CRYPTO_ZLIB=m 430CONFIG_CRYPTO_ZLIB=m
337CONFIG_CRYPTO_LZO=m 431CONFIG_CRYPTO_LZO=m
338# CONFIG_CRYPTO_ANSI_CPRNG is not set 432# CONFIG_CRYPTO_ANSI_CPRNG is not set
433CONFIG_CRYPTO_USER_API_HASH=m
434CONFIG_CRYPTO_USER_API_SKCIPHER=m
339# CONFIG_CRYPTO_HW is not set 435# CONFIG_CRYPTO_HW is not set
340CONFIG_CRC16=m
341CONFIG_CRC_T10DIF=y 436CONFIG_CRC_T10DIF=y
437CONFIG_XZ_DEC_X86=y
438CONFIG_XZ_DEC_POWERPC=y
439CONFIG_XZ_DEC_IA64=y
440CONFIG_XZ_DEC_ARM=y
441CONFIG_XZ_DEC_ARMTHUMB=y
442CONFIG_XZ_DEC_SPARC=y
443CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index 19d23db690a4..8982370e8b42 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_defconfig
@@ -1,49 +1,74 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-q40" 1CONFIG_LOCALVERSION="-q40"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
13CONFIG_Q40=y 16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24CONFIG_SUN_PARTITION=y
25# CONFIG_EFI_PARTITION is not set
26CONFIG_SYSV68_PARTITION=y
27CONFIG_IOSCHED_DEADLINE=m
14CONFIG_M68040=y 28CONFIG_M68040=y
15CONFIG_M68060=y 29CONFIG_M68060=y
30CONFIG_Q40=y
31# CONFIG_COMPACTION is not set
32CONFIG_CLEANCACHE=y
33# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
16CONFIG_BINFMT_AOUT=m 34CONFIG_BINFMT_AOUT=m
17CONFIG_BINFMT_MISC=m 35CONFIG_BINFMT_MISC=m
18CONFIG_HEARTBEAT=y
19CONFIG_PROC_HARDWARE=y
20CONFIG_NET=y 36CONFIG_NET=y
21CONFIG_PACKET=y 37CONFIG_PACKET=y
38CONFIG_PACKET_DIAG=m
22CONFIG_UNIX=y 39CONFIG_UNIX=y
40CONFIG_UNIX_DIAG=m
41CONFIG_XFRM_MIGRATE=y
23CONFIG_NET_KEY=y 42CONFIG_NET_KEY=y
24CONFIG_NET_KEY_MIGRATE=y
25CONFIG_INET=y 43CONFIG_INET=y
44CONFIG_IP_PNP=y
45CONFIG_IP_PNP_DHCP=y
46CONFIG_IP_PNP_BOOTP=y
47CONFIG_IP_PNP_RARP=y
26CONFIG_NET_IPIP=m 48CONFIG_NET_IPIP=m
49CONFIG_NET_IPGRE_DEMUX=m
27CONFIG_NET_IPGRE=m 50CONFIG_NET_IPGRE=m
28CONFIG_SYN_COOKIES=y 51CONFIG_SYN_COOKIES=y
52CONFIG_NET_IPVTI=m
29CONFIG_INET_AH=m 53CONFIG_INET_AH=m
30CONFIG_INET_ESP=m 54CONFIG_INET_ESP=m
31CONFIG_INET_IPCOMP=m 55CONFIG_INET_IPCOMP=m
32CONFIG_INET_XFRM_MODE_TRANSPORT=m 56CONFIG_INET_XFRM_MODE_TRANSPORT=m
33CONFIG_INET_XFRM_MODE_TUNNEL=m 57CONFIG_INET_XFRM_MODE_TUNNEL=m
34CONFIG_INET_XFRM_MODE_BEET=m 58CONFIG_INET_XFRM_MODE_BEET=m
59# CONFIG_INET_LRO is not set
35CONFIG_INET_DIAG=m 60CONFIG_INET_DIAG=m
61CONFIG_INET_UDP_DIAG=m
36CONFIG_IPV6_PRIVACY=y 62CONFIG_IPV6_PRIVACY=y
37CONFIG_IPV6_ROUTER_PREF=y 63CONFIG_IPV6_ROUTER_PREF=y
38CONFIG_IPV6_ROUTE_INFO=y
39CONFIG_INET6_AH=m 64CONFIG_INET6_AH=m
40CONFIG_INET6_ESP=m 65CONFIG_INET6_ESP=m
41CONFIG_INET6_IPCOMP=m 66CONFIG_INET6_IPCOMP=m
42CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 67CONFIG_IPV6_GRE=m
43CONFIG_IPV6_TUNNEL=m
44CONFIG_NETFILTER=y 68CONFIG_NETFILTER=y
45CONFIG_NETFILTER_NETLINK_QUEUE=m
46CONFIG_NF_CONNTRACK=m 69CONFIG_NF_CONNTRACK=m
70CONFIG_NF_CONNTRACK_ZONES=y
71# CONFIG_NF_CONNTRACK_PROCFS is not set
47# CONFIG_NF_CT_PROTO_DCCP is not set 72# CONFIG_NF_CT_PROTO_DCCP is not set
48CONFIG_NF_CT_PROTO_UDPLITE=m 73CONFIG_NF_CT_PROTO_UDPLITE=m
49CONFIG_NF_CONNTRACK_AMANDA=m 74CONFIG_NF_CONNTRACK_AMANDA=m
@@ -51,25 +76,37 @@ CONFIG_NF_CONNTRACK_FTP=m
51CONFIG_NF_CONNTRACK_H323=m 76CONFIG_NF_CONNTRACK_H323=m
52CONFIG_NF_CONNTRACK_IRC=m 77CONFIG_NF_CONNTRACK_IRC=m
53CONFIG_NF_CONNTRACK_NETBIOS_NS=m 78CONFIG_NF_CONNTRACK_NETBIOS_NS=m
79CONFIG_NF_CONNTRACK_SNMP=m
54CONFIG_NF_CONNTRACK_PPTP=m 80CONFIG_NF_CONNTRACK_PPTP=m
55CONFIG_NF_CONNTRACK_SANE=m 81CONFIG_NF_CONNTRACK_SANE=m
56CONFIG_NF_CONNTRACK_SIP=m 82CONFIG_NF_CONNTRACK_SIP=m
57CONFIG_NF_CONNTRACK_TFTP=m 83CONFIG_NF_CONNTRACK_TFTP=m
84CONFIG_NETFILTER_XT_SET=m
85CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
58CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 86CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
59CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 87CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
60CONFIG_NETFILTER_XT_TARGET_DSCP=m 88CONFIG_NETFILTER_XT_TARGET_DSCP=m
89CONFIG_NETFILTER_XT_TARGET_HMARK=m
90CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
91CONFIG_NETFILTER_XT_TARGET_LOG=m
61CONFIG_NETFILTER_XT_TARGET_MARK=m 92CONFIG_NETFILTER_XT_TARGET_MARK=m
62CONFIG_NETFILTER_XT_TARGET_NFLOG=m 93CONFIG_NETFILTER_XT_TARGET_NFLOG=m
63CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 94CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
95CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
96CONFIG_NETFILTER_XT_TARGET_TEE=m
64CONFIG_NETFILTER_XT_TARGET_TRACE=m 97CONFIG_NETFILTER_XT_TARGET_TRACE=m
65CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 98CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
66CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 99CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
100CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
101CONFIG_NETFILTER_XT_MATCH_BPF=m
67CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 102CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
68CONFIG_NETFILTER_XT_MATCH_COMMENT=m 103CONFIG_NETFILTER_XT_MATCH_COMMENT=m
69CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 104CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
105CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
70CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 106CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
71CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 107CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
72CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 108CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
109CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
73CONFIG_NETFILTER_XT_MATCH_DSCP=m 110CONFIG_NETFILTER_XT_MATCH_DSCP=m
74CONFIG_NETFILTER_XT_MATCH_ESP=m 111CONFIG_NETFILTER_XT_MATCH_ESP=m
75CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 112CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -80,6 +117,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
80CONFIG_NETFILTER_XT_MATCH_MAC=m 117CONFIG_NETFILTER_XT_MATCH_MAC=m
81CONFIG_NETFILTER_XT_MATCH_MARK=m 118CONFIG_NETFILTER_XT_MATCH_MARK=m
82CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 119CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
120CONFIG_NETFILTER_XT_MATCH_NFACCT=m
121CONFIG_NETFILTER_XT_MATCH_OSF=m
83CONFIG_NETFILTER_XT_MATCH_OWNER=m 122CONFIG_NETFILTER_XT_MATCH_OWNER=m
84CONFIG_NETFILTER_XT_MATCH_POLICY=m 123CONFIG_NETFILTER_XT_MATCH_POLICY=m
85CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 124CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -93,22 +132,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
93CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 132CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
94CONFIG_NETFILTER_XT_MATCH_TIME=m 133CONFIG_NETFILTER_XT_MATCH_TIME=m
95CONFIG_NETFILTER_XT_MATCH_U32=m 134CONFIG_NETFILTER_XT_MATCH_U32=m
135CONFIG_IP_SET=m
136CONFIG_IP_SET_BITMAP_IP=m
137CONFIG_IP_SET_BITMAP_IPMAC=m
138CONFIG_IP_SET_BITMAP_PORT=m
139CONFIG_IP_SET_HASH_IP=m
140CONFIG_IP_SET_HASH_IPPORT=m
141CONFIG_IP_SET_HASH_IPPORTIP=m
142CONFIG_IP_SET_HASH_IPPORTNET=m
143CONFIG_IP_SET_HASH_NET=m
144CONFIG_IP_SET_HASH_NETPORT=m
145CONFIG_IP_SET_HASH_NETIFACE=m
146CONFIG_IP_SET_LIST_SET=m
96CONFIG_NF_CONNTRACK_IPV4=m 147CONFIG_NF_CONNTRACK_IPV4=m
97CONFIG_IP_NF_QUEUE=m
98CONFIG_IP_NF_IPTABLES=m 148CONFIG_IP_NF_IPTABLES=m
99CONFIG_IP_NF_MATCH_ADDRTYPE=m
100CONFIG_IP_NF_MATCH_AH=m 149CONFIG_IP_NF_MATCH_AH=m
101CONFIG_IP_NF_MATCH_ECN=m 150CONFIG_IP_NF_MATCH_ECN=m
151CONFIG_IP_NF_MATCH_RPFILTER=m
102CONFIG_IP_NF_MATCH_TTL=m 152CONFIG_IP_NF_MATCH_TTL=m
103CONFIG_IP_NF_FILTER=m 153CONFIG_IP_NF_FILTER=m
104CONFIG_IP_NF_TARGET_REJECT=m 154CONFIG_IP_NF_TARGET_REJECT=m
105CONFIG_IP_NF_TARGET_LOG=m
106CONFIG_IP_NF_TARGET_ULOG=m 155CONFIG_IP_NF_TARGET_ULOG=m
107CONFIG_NF_NAT=m 156CONFIG_NF_NAT_IPV4=m
108CONFIG_IP_NF_TARGET_MASQUERADE=m 157CONFIG_IP_NF_TARGET_MASQUERADE=m
109CONFIG_IP_NF_TARGET_NETMAP=m 158CONFIG_IP_NF_TARGET_NETMAP=m
110CONFIG_IP_NF_TARGET_REDIRECT=m 159CONFIG_IP_NF_TARGET_REDIRECT=m
111CONFIG_NF_NAT_SNMP_BASIC=m
112CONFIG_IP_NF_MANGLE=m 160CONFIG_IP_NF_MANGLE=m
113CONFIG_IP_NF_TARGET_CLUSTERIP=m 161CONFIG_IP_NF_TARGET_CLUSTERIP=m
114CONFIG_IP_NF_TARGET_ECN=m 162CONFIG_IP_NF_TARGET_ECN=m
@@ -118,7 +166,6 @@ CONFIG_IP_NF_ARPTABLES=m
118CONFIG_IP_NF_ARPFILTER=m 166CONFIG_IP_NF_ARPFILTER=m
119CONFIG_IP_NF_ARP_MANGLE=m 167CONFIG_IP_NF_ARP_MANGLE=m
120CONFIG_NF_CONNTRACK_IPV6=m 168CONFIG_NF_CONNTRACK_IPV6=m
121CONFIG_IP6_NF_QUEUE=m
122CONFIG_IP6_NF_IPTABLES=m 169CONFIG_IP6_NF_IPTABLES=m
123CONFIG_IP6_NF_MATCH_AH=m 170CONFIG_IP6_NF_MATCH_AH=m
124CONFIG_IP6_NF_MATCH_EUI64=m 171CONFIG_IP6_NF_MATCH_EUI64=m
@@ -127,26 +174,40 @@ CONFIG_IP6_NF_MATCH_OPTS=m
127CONFIG_IP6_NF_MATCH_HL=m 174CONFIG_IP6_NF_MATCH_HL=m
128CONFIG_IP6_NF_MATCH_IPV6HEADER=m 175CONFIG_IP6_NF_MATCH_IPV6HEADER=m
129CONFIG_IP6_NF_MATCH_MH=m 176CONFIG_IP6_NF_MATCH_MH=m
177CONFIG_IP6_NF_MATCH_RPFILTER=m
130CONFIG_IP6_NF_MATCH_RT=m 178CONFIG_IP6_NF_MATCH_RT=m
131CONFIG_IP6_NF_TARGET_HL=m 179CONFIG_IP6_NF_TARGET_HL=m
132CONFIG_IP6_NF_TARGET_LOG=m
133CONFIG_IP6_NF_FILTER=m 180CONFIG_IP6_NF_FILTER=m
134CONFIG_IP6_NF_TARGET_REJECT=m 181CONFIG_IP6_NF_TARGET_REJECT=m
135CONFIG_IP6_NF_MANGLE=m 182CONFIG_IP6_NF_MANGLE=m
136CONFIG_IP6_NF_RAW=m 183CONFIG_IP6_NF_RAW=m
184CONFIG_NF_NAT_IPV6=m
185CONFIG_IP6_NF_TARGET_MASQUERADE=m
186CONFIG_IP6_NF_TARGET_NPT=m
137CONFIG_IP_DCCP=m 187CONFIG_IP_DCCP=m
138# CONFIG_IP_DCCP_CCID3 is not set 188# CONFIG_IP_DCCP_CCID3 is not set
189CONFIG_SCTP_COOKIE_HMAC_SHA1=y
190CONFIG_RDS=m
191CONFIG_RDS_TCP=m
192CONFIG_L2TP=m
139CONFIG_ATALK=m 193CONFIG_ATALK=m
194CONFIG_BATMAN_ADV=m
195CONFIG_BATMAN_ADV_DAT=y
196# CONFIG_WIRELESS is not set
140CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 197CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
198CONFIG_DEVTMPFS=y
141# CONFIG_FIRMWARE_IN_KERNEL is not set 199# CONFIG_FIRMWARE_IN_KERNEL is not set
200# CONFIG_FW_LOADER_USER_HELPER is not set
142CONFIG_CONNECTOR=m 201CONFIG_CONNECTOR=m
143CONFIG_BLK_DEV_LOOP=y 202CONFIG_BLK_DEV_LOOP=y
144CONFIG_BLK_DEV_CRYPTOLOOP=m 203CONFIG_BLK_DEV_CRYPTOLOOP=m
204CONFIG_BLK_DEV_DRBD=m
145CONFIG_BLK_DEV_NBD=m 205CONFIG_BLK_DEV_NBD=m
146CONFIG_BLK_DEV_RAM=y 206CONFIG_BLK_DEV_RAM=y
147CONFIG_CDROM_PKTCDVD=m 207CONFIG_CDROM_PKTCDVD=m
148CONFIG_ATA_OVER_ETH=m 208CONFIG_ATA_OVER_ETH=m
149CONFIG_IDE=y 209CONFIG_IDE=y
210CONFIG_IDE_GD_ATAPI=y
150CONFIG_BLK_DEV_IDECD=y 211CONFIG_BLK_DEV_IDECD=y
151CONFIG_BLK_DEV_Q40IDE=y 212CONFIG_BLK_DEV_Q40IDE=y
152CONFIG_RAID_ATTRS=m 213CONFIG_RAID_ATTRS=m
@@ -159,61 +220,82 @@ CONFIG_BLK_DEV_SR=y
159CONFIG_BLK_DEV_SR_VENDOR=y 220CONFIG_BLK_DEV_SR_VENDOR=y
160CONFIG_CHR_DEV_SG=m 221CONFIG_CHR_DEV_SG=m
161CONFIG_SCSI_CONSTANTS=y 222CONFIG_SCSI_CONSTANTS=y
162CONFIG_SCSI_SAS_LIBSAS=m 223CONFIG_SCSI_SAS_ATTRS=m
163# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
164CONFIG_SCSI_SRP_ATTRS=m
165CONFIG_SCSI_SRP_TGT_ATTRS=y
166CONFIG_ISCSI_TCP=m 224CONFIG_ISCSI_TCP=m
225CONFIG_ISCSI_BOOT_SYSFS=m
167CONFIG_MD=y 226CONFIG_MD=y
168CONFIG_BLK_DEV_MD=m
169CONFIG_MD_LINEAR=m 227CONFIG_MD_LINEAR=m
170CONFIG_MD_RAID0=m 228CONFIG_MD_RAID0=m
171CONFIG_MD_RAID1=m
172CONFIG_MD_RAID456=m
173CONFIG_BLK_DEV_DM=m 229CONFIG_BLK_DEV_DM=m
174CONFIG_DM_CRYPT=m 230CONFIG_DM_CRYPT=m
175CONFIG_DM_SNAPSHOT=m 231CONFIG_DM_SNAPSHOT=m
232CONFIG_DM_THIN_PROVISIONING=m
233CONFIG_DM_CACHE=m
176CONFIG_DM_MIRROR=m 234CONFIG_DM_MIRROR=m
235CONFIG_DM_RAID=m
177CONFIG_DM_ZERO=m 236CONFIG_DM_ZERO=m
178CONFIG_DM_MULTIPATH=m 237CONFIG_DM_MULTIPATH=m
179CONFIG_DM_UEVENT=y 238CONFIG_DM_UEVENT=y
239CONFIG_TARGET_CORE=m
240CONFIG_TCM_IBLOCK=m
241CONFIG_TCM_FILEIO=m
242CONFIG_TCM_PSCSI=m
180CONFIG_NETDEVICES=y 243CONFIG_NETDEVICES=y
181CONFIG_DUMMY=m 244CONFIG_DUMMY=m
182CONFIG_MACVLAN=m
183CONFIG_EQUALIZER=m 245CONFIG_EQUALIZER=m
246CONFIG_NET_TEAM=m
247CONFIG_NET_TEAM_MODE_BROADCAST=m
248CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
249CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
250CONFIG_NET_TEAM_MODE_LOADBALANCE=m
251CONFIG_VXLAN=m
252CONFIG_NETCONSOLE=m
253CONFIG_NETCONSOLE_DYNAMIC=y
184CONFIG_VETH=m 254CONFIG_VETH=m
185CONFIG_NET_ETHERNET=y 255# CONFIG_NET_VENDOR_3COM is not set
256# CONFIG_NET_VENDOR_AMD is not set
257# CONFIG_NET_CADENCE is not set
258# CONFIG_NET_VENDOR_BROADCOM is not set
259# CONFIG_NET_VENDOR_CIRRUS is not set
260# CONFIG_NET_VENDOR_FUJITSU is not set
261# CONFIG_NET_VENDOR_HP is not set
262# CONFIG_NET_VENDOR_INTEL is not set
263# CONFIG_NET_VENDOR_MARVELL is not set
264# CONFIG_NET_VENDOR_MICREL is not set
186CONFIG_NE2000=m 265CONFIG_NE2000=m
187# CONFIG_NETDEV_1000 is not set 266# CONFIG_NET_VENDOR_SEEQ is not set
188# CONFIG_NETDEV_10000 is not set 267# CONFIG_NET_VENDOR_SMSC is not set
268# CONFIG_NET_VENDOR_STMICRO is not set
269# CONFIG_NET_VENDOR_WIZNET is not set
189CONFIG_PPP=m 270CONFIG_PPP=m
190CONFIG_PPP_FILTER=y
191CONFIG_PPP_ASYNC=m
192CONFIG_PPP_SYNC_TTY=m
193CONFIG_PPP_DEFLATE=m
194CONFIG_PPP_BSDCOMP=m 271CONFIG_PPP_BSDCOMP=m
272CONFIG_PPP_DEFLATE=m
273CONFIG_PPP_FILTER=y
195CONFIG_PPP_MPPE=m 274CONFIG_PPP_MPPE=m
196CONFIG_PPPOE=m 275CONFIG_PPPOE=m
276CONFIG_PPTP=m
277CONFIG_PPPOL2TP=m
278CONFIG_PPP_ASYNC=m
279CONFIG_PPP_SYNC_TTY=m
197CONFIG_SLIP=m 280CONFIG_SLIP=m
198CONFIG_SLIP_COMPRESSED=y 281CONFIG_SLIP_COMPRESSED=y
199CONFIG_SLIP_SMART=y 282CONFIG_SLIP_SMART=y
200CONFIG_SLIP_MODE_SLIP6=y 283CONFIG_SLIP_MODE_SLIP6=y
201CONFIG_NETCONSOLE=m 284# CONFIG_WLAN is not set
202CONFIG_NETCONSOLE_DYNAMIC=y 285CONFIG_INPUT_EVDEV=m
203CONFIG_INPUT_FF_MEMLESS=m
204# CONFIG_KEYBOARD_ATKBD is not set 286# CONFIG_KEYBOARD_ATKBD is not set
205CONFIG_MOUSE_PS2=m 287# CONFIG_MOUSE_PS2 is not set
206CONFIG_MOUSE_SERIAL=m 288CONFIG_MOUSE_SERIAL=m
207CONFIG_INPUT_MISC=y 289CONFIG_INPUT_MISC=y
208CONFIG_INPUT_M68K_BEEP=m 290CONFIG_INPUT_M68K_BEEP=m
209CONFIG_SERIO=m 291CONFIG_SERIO_Q40KBD=y
210# CONFIG_SERIO_SERPORT is not set
211CONFIG_SERIO_Q40KBD=m
212CONFIG_VT_HW_CONSOLE_BINDING=y 292CONFIG_VT_HW_CONSOLE_BINDING=y
293# CONFIG_LEGACY_PTYS is not set
213# CONFIG_DEVKMEM is not set 294# CONFIG_DEVKMEM is not set
214# CONFIG_HW_RANDOM is not set 295# CONFIG_HW_RANDOM is not set
215CONFIG_GEN_RTC=m 296CONFIG_NTP_PPS=y
216CONFIG_GEN_RTC_X=y 297CONFIG_PPS_CLIENT_LDISC=m
298CONFIG_PTP_1588_CLOCK=m
217# CONFIG_HWMON is not set 299# CONFIG_HWMON is not set
218CONFIG_FB=y 300CONFIG_FB=y
219CONFIG_FRAMEBUFFER_CONSOLE=y 301CONFIG_FRAMEBUFFER_CONSOLE=y
@@ -222,46 +304,61 @@ CONFIG_SOUND=m
222CONFIG_DMASOUND_Q40=m 304CONFIG_DMASOUND_Q40=m
223CONFIG_HID=m 305CONFIG_HID=m
224CONFIG_HIDRAW=y 306CONFIG_HIDRAW=y
307CONFIG_UHID=m
308# CONFIG_HID_GENERIC is not set
225# CONFIG_USB_SUPPORT is not set 309# CONFIG_USB_SUPPORT is not set
310CONFIG_RTC_CLASS=y
311CONFIG_RTC_DRV_GENERIC=m
312# CONFIG_IOMMU_SUPPORT is not set
313CONFIG_HEARTBEAT=y
314CONFIG_PROC_HARDWARE=y
226CONFIG_EXT2_FS=y 315CONFIG_EXT2_FS=y
227CONFIG_EXT3_FS=y 316CONFIG_EXT3_FS=y
228# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 317# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
229# CONFIG_EXT3_FS_XATTR is not set 318# CONFIG_EXT3_FS_XATTR is not set
319CONFIG_EXT4_FS=y
230CONFIG_REISERFS_FS=m 320CONFIG_REISERFS_FS=m
231CONFIG_JFS_FS=m 321CONFIG_JFS_FS=m
232CONFIG_XFS_FS=m 322CONFIG_XFS_FS=m
233CONFIG_OCFS2_FS=m 323CONFIG_OCFS2_FS=m
234# CONFIG_OCFS2_FS_STATS is not set
235# CONFIG_OCFS2_DEBUG_MASKLOG is not set 324# CONFIG_OCFS2_DEBUG_MASKLOG is not set
325CONFIG_FANOTIFY=y
236CONFIG_QUOTA_NETLINK_INTERFACE=y 326CONFIG_QUOTA_NETLINK_INTERFACE=y
237# CONFIG_PRINT_QUOTA_WARNING is not set 327# CONFIG_PRINT_QUOTA_WARNING is not set
238CONFIG_AUTOFS_FS=m
239CONFIG_AUTOFS4_FS=m 328CONFIG_AUTOFS4_FS=m
240CONFIG_FUSE_FS=m 329CONFIG_FUSE_FS=m
330CONFIG_CUSE=m
241CONFIG_ISO9660_FS=y 331CONFIG_ISO9660_FS=y
242CONFIG_JOLIET=y 332CONFIG_JOLIET=y
243CONFIG_ZISOFS=y 333CONFIG_ZISOFS=y
244CONFIG_UDF_FS=m 334CONFIG_UDF_FS=m
245CONFIG_MSDOS_FS=y 335CONFIG_MSDOS_FS=m
246CONFIG_VFAT_FS=m 336CONFIG_VFAT_FS=m
247CONFIG_PROC_KCORE=y 337CONFIG_PROC_KCORE=y
248CONFIG_TMPFS=y 338CONFIG_TMPFS=y
249CONFIG_AFFS_FS=m 339CONFIG_AFFS_FS=m
340CONFIG_ECRYPT_FS=m
341CONFIG_ECRYPT_FS_MESSAGING=y
250CONFIG_HFS_FS=m 342CONFIG_HFS_FS=m
251CONFIG_HFSPLUS_FS=m 343CONFIG_HFSPLUS_FS=m
252CONFIG_CRAMFS=m 344CONFIG_CRAMFS=m
253CONFIG_SQUASHFS=m 345CONFIG_SQUASHFS=m
254CONFIG_MINIX_FS=y 346CONFIG_SQUASHFS_LZO=y
347CONFIG_MINIX_FS=m
348CONFIG_OMFS_FS=m
255CONFIG_HPFS_FS=m 349CONFIG_HPFS_FS=m
350CONFIG_QNX4FS_FS=m
351CONFIG_QNX6FS_FS=m
256CONFIG_SYSV_FS=m 352CONFIG_SYSV_FS=m
257CONFIG_UFS_FS=m 353CONFIG_UFS_FS=m
258CONFIG_NFS_FS=y 354CONFIG_NFS_FS=y
259CONFIG_NFS_V3=y
260CONFIG_NFS_V4=y 355CONFIG_NFS_V4=y
356CONFIG_NFS_SWAP=y
357CONFIG_ROOT_NFS=y
261CONFIG_NFSD=m 358CONFIG_NFSD=m
262CONFIG_NFSD_V3=y 359CONFIG_NFSD_V3=y
263CONFIG_SMB_FS=m 360CONFIG_CIFS=m
264CONFIG_SMB_NLS_DEFAULT=y 361# CONFIG_CIFS_DEBUG is not set
265CONFIG_CODA_FS=m 362CONFIG_CODA_FS=m
266CONFIG_NLS_CODEPAGE_437=y 363CONFIG_NLS_CODEPAGE_437=y
267CONFIG_NLS_CODEPAGE_737=m 364CONFIG_NLS_CODEPAGE_737=m
@@ -300,10 +397,23 @@ CONFIG_NLS_ISO8859_14=m
300CONFIG_NLS_ISO8859_15=m 397CONFIG_NLS_ISO8859_15=m
301CONFIG_NLS_KOI8_R=m 398CONFIG_NLS_KOI8_R=m
302CONFIG_NLS_KOI8_U=m 399CONFIG_NLS_KOI8_U=m
400CONFIG_NLS_MAC_ROMAN=m
401CONFIG_NLS_MAC_CELTIC=m
402CONFIG_NLS_MAC_CENTEURO=m
403CONFIG_NLS_MAC_CROATIAN=m
404CONFIG_NLS_MAC_CYRILLIC=m
405CONFIG_NLS_MAC_GAELIC=m
406CONFIG_NLS_MAC_GREEK=m
407CONFIG_NLS_MAC_ICELAND=m
408CONFIG_NLS_MAC_INUIT=m
409CONFIG_NLS_MAC_ROMANIAN=m
410CONFIG_NLS_MAC_TURKISH=m
303CONFIG_DLM=m 411CONFIG_DLM=m
304CONFIG_MAGIC_SYSRQ=y 412CONFIG_MAGIC_SYSRQ=y
305# CONFIG_RCU_CPU_STALL_DETECTOR is not set 413CONFIG_ASYNC_RAID6_TEST=m
306CONFIG_SYSCTL_SYSCALL_CHECK=y 414CONFIG_ENCRYPTED_KEYS=m
415CONFIG_CRYPTO_MANAGER=y
416CONFIG_CRYPTO_USER=m
307CONFIG_CRYPTO_NULL=m 417CONFIG_CRYPTO_NULL=m
308CONFIG_CRYPTO_CRYPTD=m 418CONFIG_CRYPTO_CRYPTD=m
309CONFIG_CRYPTO_TEST=m 419CONFIG_CRYPTO_TEST=m
@@ -313,19 +423,16 @@ CONFIG_CRYPTO_CTS=m
313CONFIG_CRYPTO_LRW=m 423CONFIG_CRYPTO_LRW=m
314CONFIG_CRYPTO_PCBC=m 424CONFIG_CRYPTO_PCBC=m
315CONFIG_CRYPTO_XTS=m 425CONFIG_CRYPTO_XTS=m
316CONFIG_CRYPTO_HMAC=y
317CONFIG_CRYPTO_XCBC=m 426CONFIG_CRYPTO_XCBC=m
318CONFIG_CRYPTO_MD4=m 427CONFIG_CRYPTO_VMAC=m
319CONFIG_CRYPTO_MICHAEL_MIC=m 428CONFIG_CRYPTO_MICHAEL_MIC=m
320CONFIG_CRYPTO_RMD128=m 429CONFIG_CRYPTO_RMD128=m
321CONFIG_CRYPTO_RMD160=m 430CONFIG_CRYPTO_RMD160=m
322CONFIG_CRYPTO_RMD256=m 431CONFIG_CRYPTO_RMD256=m
323CONFIG_CRYPTO_RMD320=m 432CONFIG_CRYPTO_RMD320=m
324CONFIG_CRYPTO_SHA256=m
325CONFIG_CRYPTO_SHA512=m 433CONFIG_CRYPTO_SHA512=m
326CONFIG_CRYPTO_TGR192=m 434CONFIG_CRYPTO_TGR192=m
327CONFIG_CRYPTO_WP512=m 435CONFIG_CRYPTO_WP512=m
328CONFIG_CRYPTO_AES=m
329CONFIG_CRYPTO_ANUBIS=m 436CONFIG_CRYPTO_ANUBIS=m
330CONFIG_CRYPTO_BLOWFISH=m 437CONFIG_CRYPTO_BLOWFISH=m
331CONFIG_CRYPTO_CAMELLIA=m 438CONFIG_CRYPTO_CAMELLIA=m
@@ -341,6 +448,14 @@ CONFIG_CRYPTO_TWOFISH=m
341CONFIG_CRYPTO_ZLIB=m 448CONFIG_CRYPTO_ZLIB=m
342CONFIG_CRYPTO_LZO=m 449CONFIG_CRYPTO_LZO=m
343# CONFIG_CRYPTO_ANSI_CPRNG is not set 450# CONFIG_CRYPTO_ANSI_CPRNG is not set
451CONFIG_CRYPTO_USER_API_HASH=m
452CONFIG_CRYPTO_USER_API_SKCIPHER=m
344# CONFIG_CRYPTO_HW is not set 453# CONFIG_CRYPTO_HW is not set
345CONFIG_CRC16=m
346CONFIG_CRC_T10DIF=y 454CONFIG_CRC_T10DIF=y
455CONFIG_XZ_DEC_X86=y
456CONFIG_XZ_DEC_POWERPC=y
457CONFIG_XZ_DEC_IA64=y
458CONFIG_XZ_DEC_ARM=y
459CONFIG_XZ_DEC_ARMTHUMB=y
460CONFIG_XZ_DEC_SPARC=y
461CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index ca6c0b4cab77..54674d61e001 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_defconfig
@@ -1,50 +1,71 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-sun3" 1CONFIG_LOCALVERSION="-sun3"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24# CONFIG_EFI_PARTITION is not set
25CONFIG_SYSV68_PARTITION=y
26CONFIG_IOSCHED_DEADLINE=m
13CONFIG_SUN3=y 27CONFIG_SUN3=y
28# CONFIG_COMPACTION is not set
29CONFIG_CLEANCACHE=y
30# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
14CONFIG_BINFMT_AOUT=m 31CONFIG_BINFMT_AOUT=m
15CONFIG_BINFMT_MISC=m 32CONFIG_BINFMT_MISC=m
16CONFIG_PROC_HARDWARE=y
17CONFIG_NET=y 33CONFIG_NET=y
18CONFIG_PACKET=y 34CONFIG_PACKET=y
35CONFIG_PACKET_DIAG=m
19CONFIG_UNIX=y 36CONFIG_UNIX=y
37CONFIG_UNIX_DIAG=m
38CONFIG_XFRM_MIGRATE=y
20CONFIG_NET_KEY=y 39CONFIG_NET_KEY=y
21CONFIG_NET_KEY_MIGRATE=y
22CONFIG_INET=y 40CONFIG_INET=y
23CONFIG_IP_PNP=y 41CONFIG_IP_PNP=y
24CONFIG_IP_PNP_DHCP=y 42CONFIG_IP_PNP_DHCP=y
25CONFIG_IP_PNP_BOOTP=y 43CONFIG_IP_PNP_BOOTP=y
26CONFIG_IP_PNP_RARP=y 44CONFIG_IP_PNP_RARP=y
27CONFIG_NET_IPIP=m 45CONFIG_NET_IPIP=m
46CONFIG_NET_IPGRE_DEMUX=m
28CONFIG_NET_IPGRE=m 47CONFIG_NET_IPGRE=m
29CONFIG_SYN_COOKIES=y 48CONFIG_SYN_COOKIES=y
49CONFIG_NET_IPVTI=m
30CONFIG_INET_AH=m 50CONFIG_INET_AH=m
31CONFIG_INET_ESP=m 51CONFIG_INET_ESP=m
32CONFIG_INET_IPCOMP=m 52CONFIG_INET_IPCOMP=m
33CONFIG_INET_XFRM_MODE_TRANSPORT=m 53CONFIG_INET_XFRM_MODE_TRANSPORT=m
34CONFIG_INET_XFRM_MODE_TUNNEL=m 54CONFIG_INET_XFRM_MODE_TUNNEL=m
35CONFIG_INET_XFRM_MODE_BEET=m 55CONFIG_INET_XFRM_MODE_BEET=m
56# CONFIG_INET_LRO is not set
36CONFIG_INET_DIAG=m 57CONFIG_INET_DIAG=m
58CONFIG_INET_UDP_DIAG=m
37CONFIG_IPV6_PRIVACY=y 59CONFIG_IPV6_PRIVACY=y
38CONFIG_IPV6_ROUTER_PREF=y 60CONFIG_IPV6_ROUTER_PREF=y
39CONFIG_IPV6_ROUTE_INFO=y
40CONFIG_INET6_AH=m 61CONFIG_INET6_AH=m
41CONFIG_INET6_ESP=m 62CONFIG_INET6_ESP=m
42CONFIG_INET6_IPCOMP=m 63CONFIG_INET6_IPCOMP=m
43CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 64CONFIG_IPV6_GRE=m
44CONFIG_IPV6_TUNNEL=m
45CONFIG_NETFILTER=y 65CONFIG_NETFILTER=y
46CONFIG_NETFILTER_NETLINK_QUEUE=m
47CONFIG_NF_CONNTRACK=m 66CONFIG_NF_CONNTRACK=m
67CONFIG_NF_CONNTRACK_ZONES=y
68# CONFIG_NF_CONNTRACK_PROCFS is not set
48# CONFIG_NF_CT_PROTO_DCCP is not set 69# CONFIG_NF_CT_PROTO_DCCP is not set
49CONFIG_NF_CT_PROTO_UDPLITE=m 70CONFIG_NF_CT_PROTO_UDPLITE=m
50CONFIG_NF_CONNTRACK_AMANDA=m 71CONFIG_NF_CONNTRACK_AMANDA=m
@@ -52,25 +73,37 @@ CONFIG_NF_CONNTRACK_FTP=m
52CONFIG_NF_CONNTRACK_H323=m 73CONFIG_NF_CONNTRACK_H323=m
53CONFIG_NF_CONNTRACK_IRC=m 74CONFIG_NF_CONNTRACK_IRC=m
54CONFIG_NF_CONNTRACK_NETBIOS_NS=m 75CONFIG_NF_CONNTRACK_NETBIOS_NS=m
76CONFIG_NF_CONNTRACK_SNMP=m
55CONFIG_NF_CONNTRACK_PPTP=m 77CONFIG_NF_CONNTRACK_PPTP=m
56CONFIG_NF_CONNTRACK_SANE=m 78CONFIG_NF_CONNTRACK_SANE=m
57CONFIG_NF_CONNTRACK_SIP=m 79CONFIG_NF_CONNTRACK_SIP=m
58CONFIG_NF_CONNTRACK_TFTP=m 80CONFIG_NF_CONNTRACK_TFTP=m
81CONFIG_NETFILTER_XT_SET=m
82CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
59CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 83CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
60CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 84CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
61CONFIG_NETFILTER_XT_TARGET_DSCP=m 85CONFIG_NETFILTER_XT_TARGET_DSCP=m
86CONFIG_NETFILTER_XT_TARGET_HMARK=m
87CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
88CONFIG_NETFILTER_XT_TARGET_LOG=m
62CONFIG_NETFILTER_XT_TARGET_MARK=m 89CONFIG_NETFILTER_XT_TARGET_MARK=m
63CONFIG_NETFILTER_XT_TARGET_NFLOG=m 90CONFIG_NETFILTER_XT_TARGET_NFLOG=m
64CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 91CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
92CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
93CONFIG_NETFILTER_XT_TARGET_TEE=m
65CONFIG_NETFILTER_XT_TARGET_TRACE=m 94CONFIG_NETFILTER_XT_TARGET_TRACE=m
66CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 95CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
67CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 96CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
97CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
98CONFIG_NETFILTER_XT_MATCH_BPF=m
68CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 99CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
69CONFIG_NETFILTER_XT_MATCH_COMMENT=m 100CONFIG_NETFILTER_XT_MATCH_COMMENT=m
70CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 101CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
102CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
71CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 103CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
72CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 104CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
73CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 105CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
106CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
74CONFIG_NETFILTER_XT_MATCH_DSCP=m 107CONFIG_NETFILTER_XT_MATCH_DSCP=m
75CONFIG_NETFILTER_XT_MATCH_ESP=m 108CONFIG_NETFILTER_XT_MATCH_ESP=m
76CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 109CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -81,6 +114,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
81CONFIG_NETFILTER_XT_MATCH_MAC=m 114CONFIG_NETFILTER_XT_MATCH_MAC=m
82CONFIG_NETFILTER_XT_MATCH_MARK=m 115CONFIG_NETFILTER_XT_MATCH_MARK=m
83CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 116CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
117CONFIG_NETFILTER_XT_MATCH_NFACCT=m
118CONFIG_NETFILTER_XT_MATCH_OSF=m
84CONFIG_NETFILTER_XT_MATCH_OWNER=m 119CONFIG_NETFILTER_XT_MATCH_OWNER=m
85CONFIG_NETFILTER_XT_MATCH_POLICY=m 120CONFIG_NETFILTER_XT_MATCH_POLICY=m
86CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 121CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -94,22 +129,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
94CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 129CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
95CONFIG_NETFILTER_XT_MATCH_TIME=m 130CONFIG_NETFILTER_XT_MATCH_TIME=m
96CONFIG_NETFILTER_XT_MATCH_U32=m 131CONFIG_NETFILTER_XT_MATCH_U32=m
132CONFIG_IP_SET=m
133CONFIG_IP_SET_BITMAP_IP=m
134CONFIG_IP_SET_BITMAP_IPMAC=m
135CONFIG_IP_SET_BITMAP_PORT=m
136CONFIG_IP_SET_HASH_IP=m
137CONFIG_IP_SET_HASH_IPPORT=m
138CONFIG_IP_SET_HASH_IPPORTIP=m
139CONFIG_IP_SET_HASH_IPPORTNET=m
140CONFIG_IP_SET_HASH_NET=m
141CONFIG_IP_SET_HASH_NETPORT=m
142CONFIG_IP_SET_HASH_NETIFACE=m
143CONFIG_IP_SET_LIST_SET=m
97CONFIG_NF_CONNTRACK_IPV4=m 144CONFIG_NF_CONNTRACK_IPV4=m
98CONFIG_IP_NF_QUEUE=m
99CONFIG_IP_NF_IPTABLES=m 145CONFIG_IP_NF_IPTABLES=m
100CONFIG_IP_NF_MATCH_ADDRTYPE=m
101CONFIG_IP_NF_MATCH_AH=m 146CONFIG_IP_NF_MATCH_AH=m
102CONFIG_IP_NF_MATCH_ECN=m 147CONFIG_IP_NF_MATCH_ECN=m
148CONFIG_IP_NF_MATCH_RPFILTER=m
103CONFIG_IP_NF_MATCH_TTL=m 149CONFIG_IP_NF_MATCH_TTL=m
104CONFIG_IP_NF_FILTER=m 150CONFIG_IP_NF_FILTER=m
105CONFIG_IP_NF_TARGET_REJECT=m 151CONFIG_IP_NF_TARGET_REJECT=m
106CONFIG_IP_NF_TARGET_LOG=m
107CONFIG_IP_NF_TARGET_ULOG=m 152CONFIG_IP_NF_TARGET_ULOG=m
108CONFIG_NF_NAT=m 153CONFIG_NF_NAT_IPV4=m
109CONFIG_IP_NF_TARGET_MASQUERADE=m 154CONFIG_IP_NF_TARGET_MASQUERADE=m
110CONFIG_IP_NF_TARGET_NETMAP=m 155CONFIG_IP_NF_TARGET_NETMAP=m
111CONFIG_IP_NF_TARGET_REDIRECT=m 156CONFIG_IP_NF_TARGET_REDIRECT=m
112CONFIG_NF_NAT_SNMP_BASIC=m
113CONFIG_IP_NF_MANGLE=m 157CONFIG_IP_NF_MANGLE=m
114CONFIG_IP_NF_TARGET_CLUSTERIP=m 158CONFIG_IP_NF_TARGET_CLUSTERIP=m
115CONFIG_IP_NF_TARGET_ECN=m 159CONFIG_IP_NF_TARGET_ECN=m
@@ -119,7 +163,6 @@ CONFIG_IP_NF_ARPTABLES=m
119CONFIG_IP_NF_ARPFILTER=m 163CONFIG_IP_NF_ARPFILTER=m
120CONFIG_IP_NF_ARP_MANGLE=m 164CONFIG_IP_NF_ARP_MANGLE=m
121CONFIG_NF_CONNTRACK_IPV6=m 165CONFIG_NF_CONNTRACK_IPV6=m
122CONFIG_IP6_NF_QUEUE=m
123CONFIG_IP6_NF_IPTABLES=m 166CONFIG_IP6_NF_IPTABLES=m
124CONFIG_IP6_NF_MATCH_AH=m 167CONFIG_IP6_NF_MATCH_AH=m
125CONFIG_IP6_NF_MATCH_EUI64=m 168CONFIG_IP6_NF_MATCH_EUI64=m
@@ -128,21 +171,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
128CONFIG_IP6_NF_MATCH_HL=m 171CONFIG_IP6_NF_MATCH_HL=m
129CONFIG_IP6_NF_MATCH_IPV6HEADER=m 172CONFIG_IP6_NF_MATCH_IPV6HEADER=m
130CONFIG_IP6_NF_MATCH_MH=m 173CONFIG_IP6_NF_MATCH_MH=m
174CONFIG_IP6_NF_MATCH_RPFILTER=m
131CONFIG_IP6_NF_MATCH_RT=m 175CONFIG_IP6_NF_MATCH_RT=m
132CONFIG_IP6_NF_TARGET_HL=m 176CONFIG_IP6_NF_TARGET_HL=m
133CONFIG_IP6_NF_TARGET_LOG=m
134CONFIG_IP6_NF_FILTER=m 177CONFIG_IP6_NF_FILTER=m
135CONFIG_IP6_NF_TARGET_REJECT=m 178CONFIG_IP6_NF_TARGET_REJECT=m
136CONFIG_IP6_NF_MANGLE=m 179CONFIG_IP6_NF_MANGLE=m
137CONFIG_IP6_NF_RAW=m 180CONFIG_IP6_NF_RAW=m
181CONFIG_NF_NAT_IPV6=m
182CONFIG_IP6_NF_TARGET_MASQUERADE=m
183CONFIG_IP6_NF_TARGET_NPT=m
138CONFIG_IP_DCCP=m 184CONFIG_IP_DCCP=m
139# CONFIG_IP_DCCP_CCID3 is not set 185# CONFIG_IP_DCCP_CCID3 is not set
186CONFIG_SCTP_COOKIE_HMAC_SHA1=y
187CONFIG_RDS=m
188CONFIG_RDS_TCP=m
189CONFIG_L2TP=m
140CONFIG_ATALK=m 190CONFIG_ATALK=m
191CONFIG_BATMAN_ADV=m
192CONFIG_BATMAN_ADV_DAT=y
193# CONFIG_WIRELESS is not set
141CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 194CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
195CONFIG_DEVTMPFS=y
142# CONFIG_FIRMWARE_IN_KERNEL is not set 196# CONFIG_FIRMWARE_IN_KERNEL is not set
197# CONFIG_FW_LOADER_USER_HELPER is not set
143CONFIG_CONNECTOR=m 198CONFIG_CONNECTOR=m
144CONFIG_BLK_DEV_LOOP=y 199CONFIG_BLK_DEV_LOOP=y
145CONFIG_BLK_DEV_CRYPTOLOOP=m 200CONFIG_BLK_DEV_CRYPTOLOOP=m
201CONFIG_BLK_DEV_DRBD=m
146CONFIG_BLK_DEV_NBD=m 202CONFIG_BLK_DEV_NBD=m
147CONFIG_BLK_DEV_RAM=y 203CONFIG_BLK_DEV_RAM=y
148CONFIG_CDROM_PKTCDVD=m 204CONFIG_CDROM_PKTCDVD=m
@@ -157,107 +213,136 @@ CONFIG_BLK_DEV_SR=y
157CONFIG_BLK_DEV_SR_VENDOR=y 213CONFIG_BLK_DEV_SR_VENDOR=y
158CONFIG_CHR_DEV_SG=m 214CONFIG_CHR_DEV_SG=m
159CONFIG_SCSI_CONSTANTS=y 215CONFIG_SCSI_CONSTANTS=y
160CONFIG_SCSI_SAS_LIBSAS=m 216CONFIG_SCSI_SAS_ATTRS=m
161# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
162CONFIG_SCSI_SRP_ATTRS=m
163CONFIG_SCSI_SRP_TGT_ATTRS=y
164CONFIG_ISCSI_TCP=m 217CONFIG_ISCSI_TCP=m
218CONFIG_ISCSI_BOOT_SYSFS=m
165CONFIG_SUN3_SCSI=y 219CONFIG_SUN3_SCSI=y
166CONFIG_MD=y 220CONFIG_MD=y
167CONFIG_BLK_DEV_MD=m
168CONFIG_MD_LINEAR=m 221CONFIG_MD_LINEAR=m
169CONFIG_MD_RAID0=m 222CONFIG_MD_RAID0=m
170CONFIG_MD_RAID1=m
171CONFIG_MD_RAID456=m
172CONFIG_BLK_DEV_DM=m 223CONFIG_BLK_DEV_DM=m
173CONFIG_DM_CRYPT=m 224CONFIG_DM_CRYPT=m
174CONFIG_DM_SNAPSHOT=m 225CONFIG_DM_SNAPSHOT=m
226CONFIG_DM_THIN_PROVISIONING=m
227CONFIG_DM_CACHE=m
175CONFIG_DM_MIRROR=m 228CONFIG_DM_MIRROR=m
229CONFIG_DM_RAID=m
176CONFIG_DM_ZERO=m 230CONFIG_DM_ZERO=m
177CONFIG_DM_MULTIPATH=m 231CONFIG_DM_MULTIPATH=m
178CONFIG_DM_UEVENT=y 232CONFIG_DM_UEVENT=y
233CONFIG_TARGET_CORE=m
234CONFIG_TCM_IBLOCK=m
235CONFIG_TCM_FILEIO=m
236CONFIG_TCM_PSCSI=m
179CONFIG_NETDEVICES=y 237CONFIG_NETDEVICES=y
180CONFIG_DUMMY=m 238CONFIG_DUMMY=m
181CONFIG_MACVLAN=m
182CONFIG_EQUALIZER=m 239CONFIG_EQUALIZER=m
240CONFIG_NET_TEAM=m
241CONFIG_NET_TEAM_MODE_BROADCAST=m
242CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
243CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
244CONFIG_NET_TEAM_MODE_LOADBALANCE=m
245CONFIG_VXLAN=m
246CONFIG_NETCONSOLE=m
247CONFIG_NETCONSOLE_DYNAMIC=y
183CONFIG_VETH=m 248CONFIG_VETH=m
184CONFIG_NET_ETHERNET=y
185CONFIG_SUN3LANCE=y 249CONFIG_SUN3LANCE=y
250# CONFIG_NET_CADENCE is not set
186CONFIG_SUN3_82586=y 251CONFIG_SUN3_82586=y
187# CONFIG_NETDEV_1000 is not set 252# CONFIG_NET_VENDOR_MARVELL is not set
188# CONFIG_NETDEV_10000 is not set 253# CONFIG_NET_VENDOR_MICREL is not set
254# CONFIG_NET_VENDOR_NATSEMI is not set
255# CONFIG_NET_VENDOR_SEEQ is not set
256# CONFIG_NET_VENDOR_STMICRO is not set
257# CONFIG_NET_VENDOR_SUN is not set
258# CONFIG_NET_VENDOR_WIZNET is not set
189CONFIG_PPP=m 259CONFIG_PPP=m
190CONFIG_PPP_FILTER=y
191CONFIG_PPP_ASYNC=m
192CONFIG_PPP_SYNC_TTY=m
193CONFIG_PPP_DEFLATE=m
194CONFIG_PPP_BSDCOMP=m 260CONFIG_PPP_BSDCOMP=m
261CONFIG_PPP_DEFLATE=m
262CONFIG_PPP_FILTER=y
195CONFIG_PPP_MPPE=m 263CONFIG_PPP_MPPE=m
196CONFIG_PPPOE=m 264CONFIG_PPPOE=m
265CONFIG_PPTP=m
266CONFIG_PPPOL2TP=m
267CONFIG_PPP_ASYNC=m
268CONFIG_PPP_SYNC_TTY=m
197CONFIG_SLIP=m 269CONFIG_SLIP=m
198CONFIG_SLIP_COMPRESSED=y 270CONFIG_SLIP_COMPRESSED=y
199CONFIG_SLIP_SMART=y 271CONFIG_SLIP_SMART=y
200CONFIG_SLIP_MODE_SLIP6=y 272CONFIG_SLIP_MODE_SLIP6=y
201CONFIG_NETCONSOLE=m 273# CONFIG_WLAN is not set
202CONFIG_NETCONSOLE_DYNAMIC=y 274CONFIG_INPUT_EVDEV=m
203CONFIG_INPUT_FF_MEMLESS=m
204# CONFIG_KEYBOARD_ATKBD is not set 275# CONFIG_KEYBOARD_ATKBD is not set
205CONFIG_KEYBOARD_SUNKBD=y 276CONFIG_KEYBOARD_SUNKBD=y
206CONFIG_MOUSE_PS2=m 277# CONFIG_MOUSE_PS2 is not set
207CONFIG_MOUSE_SERIAL=m 278CONFIG_MOUSE_SERIAL=m
208# CONFIG_SERIO_SERPORT is not set
209CONFIG_VT_HW_CONSOLE_BINDING=y 279CONFIG_VT_HW_CONSOLE_BINDING=y
280# CONFIG_LEGACY_PTYS is not set
210# CONFIG_DEVKMEM is not set 281# CONFIG_DEVKMEM is not set
211# CONFIG_HW_RANDOM is not set 282# CONFIG_HW_RANDOM is not set
212CONFIG_GEN_RTC=m 283CONFIG_NTP_PPS=y
213CONFIG_GEN_RTC_X=y 284CONFIG_PPS_CLIENT_LDISC=m
285CONFIG_PTP_1588_CLOCK=m
214# CONFIG_HWMON is not set 286# CONFIG_HWMON is not set
215CONFIG_FB=y 287CONFIG_FB=y
216CONFIG_FRAMEBUFFER_CONSOLE=y 288CONFIG_FRAMEBUFFER_CONSOLE=y
217CONFIG_LOGO=y 289CONFIG_LOGO=y
218CONFIG_HID=m 290CONFIG_HID=m
219CONFIG_HIDRAW=y 291CONFIG_HIDRAW=y
292CONFIG_UHID=m
293# CONFIG_HID_GENERIC is not set
220# CONFIG_USB_SUPPORT is not set 294# CONFIG_USB_SUPPORT is not set
295CONFIG_RTC_CLASS=y
296CONFIG_RTC_DRV_GENERIC=m
297# CONFIG_IOMMU_SUPPORT is not set
298CONFIG_PROC_HARDWARE=y
221CONFIG_EXT2_FS=y 299CONFIG_EXT2_FS=y
222CONFIG_EXT3_FS=y 300CONFIG_EXT3_FS=y
223# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 301# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
224# CONFIG_EXT3_FS_XATTR is not set 302# CONFIG_EXT3_FS_XATTR is not set
303CONFIG_EXT4_FS=y
225CONFIG_REISERFS_FS=m 304CONFIG_REISERFS_FS=m
226CONFIG_JFS_FS=m 305CONFIG_JFS_FS=m
227CONFIG_XFS_FS=m 306CONFIG_XFS_FS=m
228CONFIG_OCFS2_FS=m 307CONFIG_OCFS2_FS=m
229# CONFIG_OCFS2_FS_STATS is not set
230# CONFIG_OCFS2_DEBUG_MASKLOG is not set 308# CONFIG_OCFS2_DEBUG_MASKLOG is not set
309CONFIG_FANOTIFY=y
231CONFIG_QUOTA_NETLINK_INTERFACE=y 310CONFIG_QUOTA_NETLINK_INTERFACE=y
232# CONFIG_PRINT_QUOTA_WARNING is not set 311# CONFIG_PRINT_QUOTA_WARNING is not set
233CONFIG_AUTOFS_FS=m
234CONFIG_AUTOFS4_FS=m 312CONFIG_AUTOFS4_FS=m
235CONFIG_FUSE_FS=m 313CONFIG_FUSE_FS=m
314CONFIG_CUSE=m
236CONFIG_ISO9660_FS=y 315CONFIG_ISO9660_FS=y
237CONFIG_JOLIET=y 316CONFIG_JOLIET=y
238CONFIG_ZISOFS=y 317CONFIG_ZISOFS=y
239CONFIG_UDF_FS=m 318CONFIG_UDF_FS=m
240CONFIG_MSDOS_FS=y 319CONFIG_MSDOS_FS=m
241CONFIG_VFAT_FS=m 320CONFIG_VFAT_FS=m
242CONFIG_PROC_KCORE=y 321CONFIG_PROC_KCORE=y
243CONFIG_TMPFS=y 322CONFIG_TMPFS=y
244CONFIG_AFFS_FS=m 323CONFIG_AFFS_FS=m
324CONFIG_ECRYPT_FS=m
325CONFIG_ECRYPT_FS_MESSAGING=y
245CONFIG_HFS_FS=m 326CONFIG_HFS_FS=m
246CONFIG_HFSPLUS_FS=m 327CONFIG_HFSPLUS_FS=m
247CONFIG_CRAMFS=m 328CONFIG_CRAMFS=m
248CONFIG_SQUASHFS=m 329CONFIG_SQUASHFS=m
249CONFIG_MINIX_FS=y 330CONFIG_SQUASHFS_LZO=y
331CONFIG_MINIX_FS=m
332CONFIG_OMFS_FS=m
250CONFIG_HPFS_FS=m 333CONFIG_HPFS_FS=m
334CONFIG_QNX4FS_FS=m
335CONFIG_QNX6FS_FS=m
251CONFIG_SYSV_FS=m 336CONFIG_SYSV_FS=m
252CONFIG_UFS_FS=m 337CONFIG_UFS_FS=m
253CONFIG_NFS_FS=y 338CONFIG_NFS_FS=y
254CONFIG_NFS_V3=y
255CONFIG_NFS_V4=y 339CONFIG_NFS_V4=y
340CONFIG_NFS_SWAP=y
256CONFIG_ROOT_NFS=y 341CONFIG_ROOT_NFS=y
257CONFIG_NFSD=m 342CONFIG_NFSD=m
258CONFIG_NFSD_V3=y 343CONFIG_NFSD_V3=y
259CONFIG_SMB_FS=m 344CONFIG_CIFS=m
260CONFIG_SMB_NLS_DEFAULT=y 345# CONFIG_CIFS_DEBUG is not set
261CONFIG_CODA_FS=m 346CONFIG_CODA_FS=m
262CONFIG_NLS_CODEPAGE_437=y 347CONFIG_NLS_CODEPAGE_437=y
263CONFIG_NLS_CODEPAGE_737=m 348CONFIG_NLS_CODEPAGE_737=m
@@ -296,10 +381,23 @@ CONFIG_NLS_ISO8859_14=m
296CONFIG_NLS_ISO8859_15=m 381CONFIG_NLS_ISO8859_15=m
297CONFIG_NLS_KOI8_R=m 382CONFIG_NLS_KOI8_R=m
298CONFIG_NLS_KOI8_U=m 383CONFIG_NLS_KOI8_U=m
384CONFIG_NLS_MAC_ROMAN=m
385CONFIG_NLS_MAC_CELTIC=m
386CONFIG_NLS_MAC_CENTEURO=m
387CONFIG_NLS_MAC_CROATIAN=m
388CONFIG_NLS_MAC_CYRILLIC=m
389CONFIG_NLS_MAC_GAELIC=m
390CONFIG_NLS_MAC_GREEK=m
391CONFIG_NLS_MAC_ICELAND=m
392CONFIG_NLS_MAC_INUIT=m
393CONFIG_NLS_MAC_ROMANIAN=m
394CONFIG_NLS_MAC_TURKISH=m
299CONFIG_DLM=m 395CONFIG_DLM=m
300CONFIG_MAGIC_SYSRQ=y 396CONFIG_MAGIC_SYSRQ=y
301# CONFIG_RCU_CPU_STALL_DETECTOR is not set 397CONFIG_ASYNC_RAID6_TEST=m
302CONFIG_SYSCTL_SYSCALL_CHECK=y 398CONFIG_ENCRYPTED_KEYS=m
399CONFIG_CRYPTO_MANAGER=y
400CONFIG_CRYPTO_USER=m
303CONFIG_CRYPTO_NULL=m 401CONFIG_CRYPTO_NULL=m
304CONFIG_CRYPTO_CRYPTD=m 402CONFIG_CRYPTO_CRYPTD=m
305CONFIG_CRYPTO_TEST=m 403CONFIG_CRYPTO_TEST=m
@@ -309,19 +407,16 @@ CONFIG_CRYPTO_CTS=m
309CONFIG_CRYPTO_LRW=m 407CONFIG_CRYPTO_LRW=m
310CONFIG_CRYPTO_PCBC=m 408CONFIG_CRYPTO_PCBC=m
311CONFIG_CRYPTO_XTS=m 409CONFIG_CRYPTO_XTS=m
312CONFIG_CRYPTO_HMAC=y
313CONFIG_CRYPTO_XCBC=m 410CONFIG_CRYPTO_XCBC=m
314CONFIG_CRYPTO_MD4=m 411CONFIG_CRYPTO_VMAC=m
315CONFIG_CRYPTO_MICHAEL_MIC=m 412CONFIG_CRYPTO_MICHAEL_MIC=m
316CONFIG_CRYPTO_RMD128=m 413CONFIG_CRYPTO_RMD128=m
317CONFIG_CRYPTO_RMD160=m 414CONFIG_CRYPTO_RMD160=m
318CONFIG_CRYPTO_RMD256=m 415CONFIG_CRYPTO_RMD256=m
319CONFIG_CRYPTO_RMD320=m 416CONFIG_CRYPTO_RMD320=m
320CONFIG_CRYPTO_SHA256=m
321CONFIG_CRYPTO_SHA512=m 417CONFIG_CRYPTO_SHA512=m
322CONFIG_CRYPTO_TGR192=m 418CONFIG_CRYPTO_TGR192=m
323CONFIG_CRYPTO_WP512=m 419CONFIG_CRYPTO_WP512=m
324CONFIG_CRYPTO_AES=m
325CONFIG_CRYPTO_ANUBIS=m 420CONFIG_CRYPTO_ANUBIS=m
326CONFIG_CRYPTO_BLOWFISH=m 421CONFIG_CRYPTO_BLOWFISH=m
327CONFIG_CRYPTO_CAMELLIA=m 422CONFIG_CRYPTO_CAMELLIA=m
@@ -337,6 +432,14 @@ CONFIG_CRYPTO_TWOFISH=m
337CONFIG_CRYPTO_ZLIB=m 432CONFIG_CRYPTO_ZLIB=m
338CONFIG_CRYPTO_LZO=m 433CONFIG_CRYPTO_LZO=m
339# CONFIG_CRYPTO_ANSI_CPRNG is not set 434# CONFIG_CRYPTO_ANSI_CPRNG is not set
435CONFIG_CRYPTO_USER_API_HASH=m
436CONFIG_CRYPTO_USER_API_SKCIPHER=m
340# CONFIG_CRYPTO_HW is not set 437# CONFIG_CRYPTO_HW is not set
341CONFIG_CRC16=m
342CONFIG_CRC_T10DIF=y 438CONFIG_CRC_T10DIF=y
439CONFIG_XZ_DEC_X86=y
440CONFIG_XZ_DEC_POWERPC=y
441CONFIG_XZ_DEC_IA64=y
442CONFIG_XZ_DEC_ARM=y
443CONFIG_XZ_DEC_ARMTHUMB=y
444CONFIG_XZ_DEC_SPARC=y
445CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index c80941c7759e..832d9539f441 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_defconfig
@@ -1,50 +1,71 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOCALVERSION="-sun3x" 1CONFIG_LOCALVERSION="-sun3x"
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_LOG_BUF_SHIFT=14 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_RELAY=y 7CONFIG_LOG_BUF_SHIFT=16
8# CONFIG_UTS_NS is not set
9# CONFIG_IPC_NS is not set
10# CONFIG_PID_NS is not set
11# CONFIG_NET_NS is not set
8CONFIG_BLK_DEV_INITRD=y 12CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_SLAB=y 13CONFIG_SLAB=y
11CONFIG_MODULES=y 14CONFIG_MODULES=y
12CONFIG_MODULE_UNLOAD=y 15CONFIG_MODULE_UNLOAD=y
16CONFIG_PARTITION_ADVANCED=y
17CONFIG_AMIGA_PARTITION=y
18CONFIG_ATARI_PARTITION=y
19CONFIG_MAC_PARTITION=y
20CONFIG_BSD_DISKLABEL=y
21CONFIG_MINIX_SUBPARTITION=y
22CONFIG_SOLARIS_X86_PARTITION=y
23CONFIG_UNIXWARE_DISKLABEL=y
24# CONFIG_EFI_PARTITION is not set
25CONFIG_SYSV68_PARTITION=y
26CONFIG_IOSCHED_DEADLINE=m
13CONFIG_SUN3X=y 27CONFIG_SUN3X=y
28# CONFIG_COMPACTION is not set
29CONFIG_CLEANCACHE=y
30# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
14CONFIG_BINFMT_AOUT=m 31CONFIG_BINFMT_AOUT=m
15CONFIG_BINFMT_MISC=m 32CONFIG_BINFMT_MISC=m
16CONFIG_PROC_HARDWARE=y
17CONFIG_NET=y 33CONFIG_NET=y
18CONFIG_PACKET=y 34CONFIG_PACKET=y
35CONFIG_PACKET_DIAG=m
19CONFIG_UNIX=y 36CONFIG_UNIX=y
37CONFIG_UNIX_DIAG=m
38CONFIG_XFRM_MIGRATE=y
20CONFIG_NET_KEY=y 39CONFIG_NET_KEY=y
21CONFIG_NET_KEY_MIGRATE=y
22CONFIG_INET=y 40CONFIG_INET=y
23CONFIG_IP_PNP=y 41CONFIG_IP_PNP=y
24CONFIG_IP_PNP_DHCP=y 42CONFIG_IP_PNP_DHCP=y
25CONFIG_IP_PNP_BOOTP=y 43CONFIG_IP_PNP_BOOTP=y
26CONFIG_IP_PNP_RARP=y 44CONFIG_IP_PNP_RARP=y
27CONFIG_NET_IPIP=m 45CONFIG_NET_IPIP=m
46CONFIG_NET_IPGRE_DEMUX=m
28CONFIG_NET_IPGRE=m 47CONFIG_NET_IPGRE=m
29CONFIG_SYN_COOKIES=y 48CONFIG_SYN_COOKIES=y
49CONFIG_NET_IPVTI=m
30CONFIG_INET_AH=m 50CONFIG_INET_AH=m
31CONFIG_INET_ESP=m 51CONFIG_INET_ESP=m
32CONFIG_INET_IPCOMP=m 52CONFIG_INET_IPCOMP=m
33CONFIG_INET_XFRM_MODE_TRANSPORT=m 53CONFIG_INET_XFRM_MODE_TRANSPORT=m
34CONFIG_INET_XFRM_MODE_TUNNEL=m 54CONFIG_INET_XFRM_MODE_TUNNEL=m
35CONFIG_INET_XFRM_MODE_BEET=m 55CONFIG_INET_XFRM_MODE_BEET=m
56# CONFIG_INET_LRO is not set
36CONFIG_INET_DIAG=m 57CONFIG_INET_DIAG=m
58CONFIG_INET_UDP_DIAG=m
37CONFIG_IPV6_PRIVACY=y 59CONFIG_IPV6_PRIVACY=y
38CONFIG_IPV6_ROUTER_PREF=y 60CONFIG_IPV6_ROUTER_PREF=y
39CONFIG_IPV6_ROUTE_INFO=y
40CONFIG_INET6_AH=m 61CONFIG_INET6_AH=m
41CONFIG_INET6_ESP=m 62CONFIG_INET6_ESP=m
42CONFIG_INET6_IPCOMP=m 63CONFIG_INET6_IPCOMP=m
43CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 64CONFIG_IPV6_GRE=m
44CONFIG_IPV6_TUNNEL=m
45CONFIG_NETFILTER=y 65CONFIG_NETFILTER=y
46CONFIG_NETFILTER_NETLINK_QUEUE=m
47CONFIG_NF_CONNTRACK=m 66CONFIG_NF_CONNTRACK=m
67CONFIG_NF_CONNTRACK_ZONES=y
68# CONFIG_NF_CONNTRACK_PROCFS is not set
48# CONFIG_NF_CT_PROTO_DCCP is not set 69# CONFIG_NF_CT_PROTO_DCCP is not set
49CONFIG_NF_CT_PROTO_UDPLITE=m 70CONFIG_NF_CT_PROTO_UDPLITE=m
50CONFIG_NF_CONNTRACK_AMANDA=m 71CONFIG_NF_CONNTRACK_AMANDA=m
@@ -52,25 +73,37 @@ CONFIG_NF_CONNTRACK_FTP=m
52CONFIG_NF_CONNTRACK_H323=m 73CONFIG_NF_CONNTRACK_H323=m
53CONFIG_NF_CONNTRACK_IRC=m 74CONFIG_NF_CONNTRACK_IRC=m
54CONFIG_NF_CONNTRACK_NETBIOS_NS=m 75CONFIG_NF_CONNTRACK_NETBIOS_NS=m
76CONFIG_NF_CONNTRACK_SNMP=m
55CONFIG_NF_CONNTRACK_PPTP=m 77CONFIG_NF_CONNTRACK_PPTP=m
56CONFIG_NF_CONNTRACK_SANE=m 78CONFIG_NF_CONNTRACK_SANE=m
57CONFIG_NF_CONNTRACK_SIP=m 79CONFIG_NF_CONNTRACK_SIP=m
58CONFIG_NF_CONNTRACK_TFTP=m 80CONFIG_NF_CONNTRACK_TFTP=m
81CONFIG_NETFILTER_XT_SET=m
82CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
59CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 83CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
60CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 84CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
61CONFIG_NETFILTER_XT_TARGET_DSCP=m 85CONFIG_NETFILTER_XT_TARGET_DSCP=m
86CONFIG_NETFILTER_XT_TARGET_HMARK=m
87CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
88CONFIG_NETFILTER_XT_TARGET_LOG=m
62CONFIG_NETFILTER_XT_TARGET_MARK=m 89CONFIG_NETFILTER_XT_TARGET_MARK=m
63CONFIG_NETFILTER_XT_TARGET_NFLOG=m 90CONFIG_NETFILTER_XT_TARGET_NFLOG=m
64CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 91CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
92CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
93CONFIG_NETFILTER_XT_TARGET_TEE=m
65CONFIG_NETFILTER_XT_TARGET_TRACE=m 94CONFIG_NETFILTER_XT_TARGET_TRACE=m
66CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 95CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
67CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 96CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
97CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
98CONFIG_NETFILTER_XT_MATCH_BPF=m
68CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 99CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
69CONFIG_NETFILTER_XT_MATCH_COMMENT=m 100CONFIG_NETFILTER_XT_MATCH_COMMENT=m
70CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 101CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
102CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
71CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 103CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
72CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 104CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
73CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 105CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
106CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
74CONFIG_NETFILTER_XT_MATCH_DSCP=m 107CONFIG_NETFILTER_XT_MATCH_DSCP=m
75CONFIG_NETFILTER_XT_MATCH_ESP=m 108CONFIG_NETFILTER_XT_MATCH_ESP=m
76CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 109CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
@@ -81,6 +114,8 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
81CONFIG_NETFILTER_XT_MATCH_MAC=m 114CONFIG_NETFILTER_XT_MATCH_MAC=m
82CONFIG_NETFILTER_XT_MATCH_MARK=m 115CONFIG_NETFILTER_XT_MATCH_MARK=m
83CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 116CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
117CONFIG_NETFILTER_XT_MATCH_NFACCT=m
118CONFIG_NETFILTER_XT_MATCH_OSF=m
84CONFIG_NETFILTER_XT_MATCH_OWNER=m 119CONFIG_NETFILTER_XT_MATCH_OWNER=m
85CONFIG_NETFILTER_XT_MATCH_POLICY=m 120CONFIG_NETFILTER_XT_MATCH_POLICY=m
86CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 121CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
@@ -94,22 +129,31 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
94CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 129CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
95CONFIG_NETFILTER_XT_MATCH_TIME=m 130CONFIG_NETFILTER_XT_MATCH_TIME=m
96CONFIG_NETFILTER_XT_MATCH_U32=m 131CONFIG_NETFILTER_XT_MATCH_U32=m
132CONFIG_IP_SET=m
133CONFIG_IP_SET_BITMAP_IP=m
134CONFIG_IP_SET_BITMAP_IPMAC=m
135CONFIG_IP_SET_BITMAP_PORT=m
136CONFIG_IP_SET_HASH_IP=m
137CONFIG_IP_SET_HASH_IPPORT=m
138CONFIG_IP_SET_HASH_IPPORTIP=m
139CONFIG_IP_SET_HASH_IPPORTNET=m
140CONFIG_IP_SET_HASH_NET=m
141CONFIG_IP_SET_HASH_NETPORT=m
142CONFIG_IP_SET_HASH_NETIFACE=m
143CONFIG_IP_SET_LIST_SET=m
97CONFIG_NF_CONNTRACK_IPV4=m 144CONFIG_NF_CONNTRACK_IPV4=m
98CONFIG_IP_NF_QUEUE=m
99CONFIG_IP_NF_IPTABLES=m 145CONFIG_IP_NF_IPTABLES=m
100CONFIG_IP_NF_MATCH_ADDRTYPE=m
101CONFIG_IP_NF_MATCH_AH=m 146CONFIG_IP_NF_MATCH_AH=m
102CONFIG_IP_NF_MATCH_ECN=m 147CONFIG_IP_NF_MATCH_ECN=m
148CONFIG_IP_NF_MATCH_RPFILTER=m
103CONFIG_IP_NF_MATCH_TTL=m 149CONFIG_IP_NF_MATCH_TTL=m
104CONFIG_IP_NF_FILTER=m 150CONFIG_IP_NF_FILTER=m
105CONFIG_IP_NF_TARGET_REJECT=m 151CONFIG_IP_NF_TARGET_REJECT=m
106CONFIG_IP_NF_TARGET_LOG=m
107CONFIG_IP_NF_TARGET_ULOG=m 152CONFIG_IP_NF_TARGET_ULOG=m
108CONFIG_NF_NAT=m 153CONFIG_NF_NAT_IPV4=m
109CONFIG_IP_NF_TARGET_MASQUERADE=m 154CONFIG_IP_NF_TARGET_MASQUERADE=m
110CONFIG_IP_NF_TARGET_NETMAP=m 155CONFIG_IP_NF_TARGET_NETMAP=m
111CONFIG_IP_NF_TARGET_REDIRECT=m 156CONFIG_IP_NF_TARGET_REDIRECT=m
112CONFIG_NF_NAT_SNMP_BASIC=m
113CONFIG_IP_NF_MANGLE=m 157CONFIG_IP_NF_MANGLE=m
114CONFIG_IP_NF_TARGET_CLUSTERIP=m 158CONFIG_IP_NF_TARGET_CLUSTERIP=m
115CONFIG_IP_NF_TARGET_ECN=m 159CONFIG_IP_NF_TARGET_ECN=m
@@ -119,7 +163,6 @@ CONFIG_IP_NF_ARPTABLES=m
119CONFIG_IP_NF_ARPFILTER=m 163CONFIG_IP_NF_ARPFILTER=m
120CONFIG_IP_NF_ARP_MANGLE=m 164CONFIG_IP_NF_ARP_MANGLE=m
121CONFIG_NF_CONNTRACK_IPV6=m 165CONFIG_NF_CONNTRACK_IPV6=m
122CONFIG_IP6_NF_QUEUE=m
123CONFIG_IP6_NF_IPTABLES=m 166CONFIG_IP6_NF_IPTABLES=m
124CONFIG_IP6_NF_MATCH_AH=m 167CONFIG_IP6_NF_MATCH_AH=m
125CONFIG_IP6_NF_MATCH_EUI64=m 168CONFIG_IP6_NF_MATCH_EUI64=m
@@ -128,21 +171,34 @@ CONFIG_IP6_NF_MATCH_OPTS=m
128CONFIG_IP6_NF_MATCH_HL=m 171CONFIG_IP6_NF_MATCH_HL=m
129CONFIG_IP6_NF_MATCH_IPV6HEADER=m 172CONFIG_IP6_NF_MATCH_IPV6HEADER=m
130CONFIG_IP6_NF_MATCH_MH=m 173CONFIG_IP6_NF_MATCH_MH=m
174CONFIG_IP6_NF_MATCH_RPFILTER=m
131CONFIG_IP6_NF_MATCH_RT=m 175CONFIG_IP6_NF_MATCH_RT=m
132CONFIG_IP6_NF_TARGET_HL=m 176CONFIG_IP6_NF_TARGET_HL=m
133CONFIG_IP6_NF_TARGET_LOG=m
134CONFIG_IP6_NF_FILTER=m 177CONFIG_IP6_NF_FILTER=m
135CONFIG_IP6_NF_TARGET_REJECT=m 178CONFIG_IP6_NF_TARGET_REJECT=m
136CONFIG_IP6_NF_MANGLE=m 179CONFIG_IP6_NF_MANGLE=m
137CONFIG_IP6_NF_RAW=m 180CONFIG_IP6_NF_RAW=m
181CONFIG_NF_NAT_IPV6=m
182CONFIG_IP6_NF_TARGET_MASQUERADE=m
183CONFIG_IP6_NF_TARGET_NPT=m
138CONFIG_IP_DCCP=m 184CONFIG_IP_DCCP=m
139# CONFIG_IP_DCCP_CCID3 is not set 185# CONFIG_IP_DCCP_CCID3 is not set
186CONFIG_SCTP_COOKIE_HMAC_SHA1=y
187CONFIG_RDS=m
188CONFIG_RDS_TCP=m
189CONFIG_L2TP=m
140CONFIG_ATALK=m 190CONFIG_ATALK=m
191CONFIG_BATMAN_ADV=m
192CONFIG_BATMAN_ADV_DAT=y
193# CONFIG_WIRELESS is not set
141CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 194CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
195CONFIG_DEVTMPFS=y
142# CONFIG_FIRMWARE_IN_KERNEL is not set 196# CONFIG_FIRMWARE_IN_KERNEL is not set
197# CONFIG_FW_LOADER_USER_HELPER is not set
143CONFIG_CONNECTOR=m 198CONFIG_CONNECTOR=m
144CONFIG_BLK_DEV_LOOP=y 199CONFIG_BLK_DEV_LOOP=y
145CONFIG_BLK_DEV_CRYPTOLOOP=m 200CONFIG_BLK_DEV_CRYPTOLOOP=m
201CONFIG_BLK_DEV_DRBD=m
146CONFIG_BLK_DEV_NBD=m 202CONFIG_BLK_DEV_NBD=m
147CONFIG_BLK_DEV_RAM=y 203CONFIG_BLK_DEV_RAM=y
148CONFIG_CDROM_PKTCDVD=m 204CONFIG_CDROM_PKTCDVD=m
@@ -157,106 +213,136 @@ CONFIG_BLK_DEV_SR=y
157CONFIG_BLK_DEV_SR_VENDOR=y 213CONFIG_BLK_DEV_SR_VENDOR=y
158CONFIG_CHR_DEV_SG=m 214CONFIG_CHR_DEV_SG=m
159CONFIG_SCSI_CONSTANTS=y 215CONFIG_SCSI_CONSTANTS=y
160CONFIG_SCSI_SAS_LIBSAS=m 216CONFIG_SCSI_SAS_ATTRS=m
161# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
162CONFIG_SCSI_SRP_ATTRS=m
163CONFIG_SCSI_SRP_TGT_ATTRS=y
164CONFIG_ISCSI_TCP=m 217CONFIG_ISCSI_TCP=m
218CONFIG_ISCSI_BOOT_SYSFS=m
165CONFIG_SUN3X_ESP=y 219CONFIG_SUN3X_ESP=y
166CONFIG_MD=y 220CONFIG_MD=y
167CONFIG_BLK_DEV_MD=m
168CONFIG_MD_LINEAR=m 221CONFIG_MD_LINEAR=m
169CONFIG_MD_RAID0=m 222CONFIG_MD_RAID0=m
170CONFIG_MD_RAID1=m
171CONFIG_MD_RAID456=m
172CONFIG_BLK_DEV_DM=m 223CONFIG_BLK_DEV_DM=m
173CONFIG_DM_CRYPT=m 224CONFIG_DM_CRYPT=m
174CONFIG_DM_SNAPSHOT=m 225CONFIG_DM_SNAPSHOT=m
226CONFIG_DM_THIN_PROVISIONING=m
227CONFIG_DM_CACHE=m
175CONFIG_DM_MIRROR=m 228CONFIG_DM_MIRROR=m
229CONFIG_DM_RAID=m
176CONFIG_DM_ZERO=m 230CONFIG_DM_ZERO=m
177CONFIG_DM_MULTIPATH=m 231CONFIG_DM_MULTIPATH=m
178CONFIG_DM_UEVENT=y 232CONFIG_DM_UEVENT=y
233CONFIG_TARGET_CORE=m
234CONFIG_TCM_IBLOCK=m
235CONFIG_TCM_FILEIO=m
236CONFIG_TCM_PSCSI=m
179CONFIG_NETDEVICES=y 237CONFIG_NETDEVICES=y
180CONFIG_DUMMY=m 238CONFIG_DUMMY=m
181CONFIG_MACVLAN=m
182CONFIG_EQUALIZER=m 239CONFIG_EQUALIZER=m
240CONFIG_NET_TEAM=m
241CONFIG_NET_TEAM_MODE_BROADCAST=m
242CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
243CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
244CONFIG_NET_TEAM_MODE_LOADBALANCE=m
245CONFIG_VXLAN=m
246CONFIG_NETCONSOLE=m
247CONFIG_NETCONSOLE_DYNAMIC=y
183CONFIG_VETH=m 248CONFIG_VETH=m
184CONFIG_NET_ETHERNET=y
185CONFIG_SUN3LANCE=y 249CONFIG_SUN3LANCE=y
186# CONFIG_NETDEV_1000 is not set 250# CONFIG_NET_CADENCE is not set
187# CONFIG_NETDEV_10000 is not set 251# CONFIG_NET_VENDOR_BROADCOM is not set
252# CONFIG_NET_VENDOR_INTEL is not set
253# CONFIG_NET_VENDOR_MARVELL is not set
254# CONFIG_NET_VENDOR_MICREL is not set
255# CONFIG_NET_VENDOR_NATSEMI is not set
256# CONFIG_NET_VENDOR_SEEQ is not set
257# CONFIG_NET_VENDOR_STMICRO is not set
258# CONFIG_NET_VENDOR_WIZNET is not set
188CONFIG_PPP=m 259CONFIG_PPP=m
189CONFIG_PPP_FILTER=y
190CONFIG_PPP_ASYNC=m
191CONFIG_PPP_SYNC_TTY=m
192CONFIG_PPP_DEFLATE=m
193CONFIG_PPP_BSDCOMP=m 260CONFIG_PPP_BSDCOMP=m
261CONFIG_PPP_DEFLATE=m
262CONFIG_PPP_FILTER=y
194CONFIG_PPP_MPPE=m 263CONFIG_PPP_MPPE=m
195CONFIG_PPPOE=m 264CONFIG_PPPOE=m
265CONFIG_PPTP=m
266CONFIG_PPPOL2TP=m
267CONFIG_PPP_ASYNC=m
268CONFIG_PPP_SYNC_TTY=m
196CONFIG_SLIP=m 269CONFIG_SLIP=m
197CONFIG_SLIP_COMPRESSED=y 270CONFIG_SLIP_COMPRESSED=y
198CONFIG_SLIP_SMART=y 271CONFIG_SLIP_SMART=y
199CONFIG_SLIP_MODE_SLIP6=y 272CONFIG_SLIP_MODE_SLIP6=y
200CONFIG_NETCONSOLE=m 273# CONFIG_WLAN is not set
201CONFIG_NETCONSOLE_DYNAMIC=y 274CONFIG_INPUT_EVDEV=m
202CONFIG_INPUT_FF_MEMLESS=m
203# CONFIG_KEYBOARD_ATKBD is not set 275# CONFIG_KEYBOARD_ATKBD is not set
204CONFIG_KEYBOARD_SUNKBD=y 276CONFIG_KEYBOARD_SUNKBD=y
205CONFIG_MOUSE_PS2=m 277# CONFIG_MOUSE_PS2 is not set
206CONFIG_MOUSE_SERIAL=m 278CONFIG_MOUSE_SERIAL=m
207# CONFIG_SERIO_SERPORT is not set
208CONFIG_VT_HW_CONSOLE_BINDING=y 279CONFIG_VT_HW_CONSOLE_BINDING=y
280# CONFIG_LEGACY_PTYS is not set
209# CONFIG_DEVKMEM is not set 281# CONFIG_DEVKMEM is not set
210# CONFIG_HW_RANDOM is not set 282# CONFIG_HW_RANDOM is not set
211CONFIG_GEN_RTC=m 283CONFIG_NTP_PPS=y
212CONFIG_GEN_RTC_X=y 284CONFIG_PPS_CLIENT_LDISC=m
285CONFIG_PTP_1588_CLOCK=m
213# CONFIG_HWMON is not set 286# CONFIG_HWMON is not set
214CONFIG_FB=y 287CONFIG_FB=y
215CONFIG_FRAMEBUFFER_CONSOLE=y 288CONFIG_FRAMEBUFFER_CONSOLE=y
216CONFIG_LOGO=y 289CONFIG_LOGO=y
217CONFIG_HID=m 290CONFIG_HID=m
218CONFIG_HIDRAW=y 291CONFIG_HIDRAW=y
292CONFIG_UHID=m
293# CONFIG_HID_GENERIC is not set
219# CONFIG_USB_SUPPORT is not set 294# CONFIG_USB_SUPPORT is not set
295CONFIG_RTC_CLASS=y
296CONFIG_RTC_DRV_GENERIC=m
297# CONFIG_IOMMU_SUPPORT is not set
298CONFIG_PROC_HARDWARE=y
220CONFIG_EXT2_FS=y 299CONFIG_EXT2_FS=y
221CONFIG_EXT3_FS=y 300CONFIG_EXT3_FS=y
222# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 301# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
223# CONFIG_EXT3_FS_XATTR is not set 302# CONFIG_EXT3_FS_XATTR is not set
303CONFIG_EXT4_FS=y
224CONFIG_REISERFS_FS=m 304CONFIG_REISERFS_FS=m
225CONFIG_JFS_FS=m 305CONFIG_JFS_FS=m
226CONFIG_XFS_FS=m 306CONFIG_XFS_FS=m
227CONFIG_OCFS2_FS=m 307CONFIG_OCFS2_FS=m
228# CONFIG_OCFS2_FS_STATS is not set
229# CONFIG_OCFS2_DEBUG_MASKLOG is not set 308# CONFIG_OCFS2_DEBUG_MASKLOG is not set
309CONFIG_FANOTIFY=y
230CONFIG_QUOTA_NETLINK_INTERFACE=y 310CONFIG_QUOTA_NETLINK_INTERFACE=y
231# CONFIG_PRINT_QUOTA_WARNING is not set 311# CONFIG_PRINT_QUOTA_WARNING is not set
232CONFIG_AUTOFS_FS=m
233CONFIG_AUTOFS4_FS=m 312CONFIG_AUTOFS4_FS=m
234CONFIG_FUSE_FS=m 313CONFIG_FUSE_FS=m
314CONFIG_CUSE=m
235CONFIG_ISO9660_FS=y 315CONFIG_ISO9660_FS=y
236CONFIG_JOLIET=y 316CONFIG_JOLIET=y
237CONFIG_ZISOFS=y 317CONFIG_ZISOFS=y
238CONFIG_UDF_FS=m 318CONFIG_UDF_FS=m
239CONFIG_MSDOS_FS=y 319CONFIG_MSDOS_FS=m
240CONFIG_VFAT_FS=m 320CONFIG_VFAT_FS=m
241CONFIG_PROC_KCORE=y 321CONFIG_PROC_KCORE=y
242CONFIG_TMPFS=y 322CONFIG_TMPFS=y
243CONFIG_AFFS_FS=m 323CONFIG_AFFS_FS=m
324CONFIG_ECRYPT_FS=m
325CONFIG_ECRYPT_FS_MESSAGING=y
244CONFIG_HFS_FS=m 326CONFIG_HFS_FS=m
245CONFIG_HFSPLUS_FS=m 327CONFIG_HFSPLUS_FS=m
246CONFIG_CRAMFS=m 328CONFIG_CRAMFS=m
247CONFIG_SQUASHFS=m 329CONFIG_SQUASHFS=m
248CONFIG_MINIX_FS=y 330CONFIG_SQUASHFS_LZO=y
331CONFIG_MINIX_FS=m
332CONFIG_OMFS_FS=m
249CONFIG_HPFS_FS=m 333CONFIG_HPFS_FS=m
334CONFIG_QNX4FS_FS=m
335CONFIG_QNX6FS_FS=m
250CONFIG_SYSV_FS=m 336CONFIG_SYSV_FS=m
251CONFIG_UFS_FS=m 337CONFIG_UFS_FS=m
252CONFIG_NFS_FS=y 338CONFIG_NFS_FS=y
253CONFIG_NFS_V3=y
254CONFIG_NFS_V4=y 339CONFIG_NFS_V4=y
340CONFIG_NFS_SWAP=y
255CONFIG_ROOT_NFS=y 341CONFIG_ROOT_NFS=y
256CONFIG_NFSD=m 342CONFIG_NFSD=m
257CONFIG_NFSD_V3=y 343CONFIG_NFSD_V3=y
258CONFIG_SMB_FS=m 344CONFIG_CIFS=m
259CONFIG_SMB_NLS_DEFAULT=y 345# CONFIG_CIFS_DEBUG is not set
260CONFIG_CODA_FS=m 346CONFIG_CODA_FS=m
261CONFIG_NLS_CODEPAGE_437=y 347CONFIG_NLS_CODEPAGE_437=y
262CONFIG_NLS_CODEPAGE_737=m 348CONFIG_NLS_CODEPAGE_737=m
@@ -295,10 +381,23 @@ CONFIG_NLS_ISO8859_14=m
295CONFIG_NLS_ISO8859_15=m 381CONFIG_NLS_ISO8859_15=m
296CONFIG_NLS_KOI8_R=m 382CONFIG_NLS_KOI8_R=m
297CONFIG_NLS_KOI8_U=m 383CONFIG_NLS_KOI8_U=m
384CONFIG_NLS_MAC_ROMAN=m
385CONFIG_NLS_MAC_CELTIC=m
386CONFIG_NLS_MAC_CENTEURO=m
387CONFIG_NLS_MAC_CROATIAN=m
388CONFIG_NLS_MAC_CYRILLIC=m
389CONFIG_NLS_MAC_GAELIC=m
390CONFIG_NLS_MAC_GREEK=m
391CONFIG_NLS_MAC_ICELAND=m
392CONFIG_NLS_MAC_INUIT=m
393CONFIG_NLS_MAC_ROMANIAN=m
394CONFIG_NLS_MAC_TURKISH=m
298CONFIG_DLM=m 395CONFIG_DLM=m
299CONFIG_MAGIC_SYSRQ=y 396CONFIG_MAGIC_SYSRQ=y
300# CONFIG_RCU_CPU_STALL_DETECTOR is not set 397CONFIG_ASYNC_RAID6_TEST=m
301CONFIG_SYSCTL_SYSCALL_CHECK=y 398CONFIG_ENCRYPTED_KEYS=m
399CONFIG_CRYPTO_MANAGER=y
400CONFIG_CRYPTO_USER=m
302CONFIG_CRYPTO_NULL=m 401CONFIG_CRYPTO_NULL=m
303CONFIG_CRYPTO_CRYPTD=m 402CONFIG_CRYPTO_CRYPTD=m
304CONFIG_CRYPTO_TEST=m 403CONFIG_CRYPTO_TEST=m
@@ -308,19 +407,16 @@ CONFIG_CRYPTO_CTS=m
308CONFIG_CRYPTO_LRW=m 407CONFIG_CRYPTO_LRW=m
309CONFIG_CRYPTO_PCBC=m 408CONFIG_CRYPTO_PCBC=m
310CONFIG_CRYPTO_XTS=m 409CONFIG_CRYPTO_XTS=m
311CONFIG_CRYPTO_HMAC=y
312CONFIG_CRYPTO_XCBC=m 410CONFIG_CRYPTO_XCBC=m
313CONFIG_CRYPTO_MD4=m 411CONFIG_CRYPTO_VMAC=m
314CONFIG_CRYPTO_MICHAEL_MIC=m 412CONFIG_CRYPTO_MICHAEL_MIC=m
315CONFIG_CRYPTO_RMD128=m 413CONFIG_CRYPTO_RMD128=m
316CONFIG_CRYPTO_RMD160=m 414CONFIG_CRYPTO_RMD160=m
317CONFIG_CRYPTO_RMD256=m 415CONFIG_CRYPTO_RMD256=m
318CONFIG_CRYPTO_RMD320=m 416CONFIG_CRYPTO_RMD320=m
319CONFIG_CRYPTO_SHA256=m
320CONFIG_CRYPTO_SHA512=m 417CONFIG_CRYPTO_SHA512=m
321CONFIG_CRYPTO_TGR192=m 418CONFIG_CRYPTO_TGR192=m
322CONFIG_CRYPTO_WP512=m 419CONFIG_CRYPTO_WP512=m
323CONFIG_CRYPTO_AES=m
324CONFIG_CRYPTO_ANUBIS=m 420CONFIG_CRYPTO_ANUBIS=m
325CONFIG_CRYPTO_BLOWFISH=m 421CONFIG_CRYPTO_BLOWFISH=m
326CONFIG_CRYPTO_CAMELLIA=m 422CONFIG_CRYPTO_CAMELLIA=m
@@ -336,6 +432,14 @@ CONFIG_CRYPTO_TWOFISH=m
336CONFIG_CRYPTO_ZLIB=m 432CONFIG_CRYPTO_ZLIB=m
337CONFIG_CRYPTO_LZO=m 433CONFIG_CRYPTO_LZO=m
338# CONFIG_CRYPTO_ANSI_CPRNG is not set 434# CONFIG_CRYPTO_ANSI_CPRNG is not set
435CONFIG_CRYPTO_USER_API_HASH=m
436CONFIG_CRYPTO_USER_API_SKCIPHER=m
339# CONFIG_CRYPTO_HW is not set 437# CONFIG_CRYPTO_HW is not set
340CONFIG_CRC16=m
341CONFIG_CRC_T10DIF=y 438CONFIG_CRC_T10DIF=y
439CONFIG_XZ_DEC_X86=y
440CONFIG_XZ_DEC_POWERPC=y
441CONFIG_XZ_DEC_IA64=y
442CONFIG_XZ_DEC_ARM=y
443CONFIG_XZ_DEC_ARMTHUMB=y
444CONFIG_XZ_DEC_SPARC=y
445CONFIG_XZ_DEC_TEST=m
diff --git a/arch/m68k/include/asm/Kbuild b/arch/m68k/include/asm/Kbuild
index c7933e41f10d..09d77a862da3 100644
--- a/arch/m68k/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -6,7 +6,6 @@ generic-y += device.h
6generic-y += emergency-restart.h 6generic-y += emergency-restart.h
7generic-y += errno.h 7generic-y += errno.h
8generic-y += exec.h 8generic-y += exec.h
9generic-y += futex.h
10generic-y += hw_irq.h 9generic-y += hw_irq.h
11generic-y += ioctl.h 10generic-y += ioctl.h
12generic-y += ipcbuf.h 11generic-y += ipcbuf.h
diff --git a/arch/m68k/include/asm/futex.h b/arch/m68k/include/asm/futex.h
new file mode 100644
index 000000000000..bc868af10c96
--- /dev/null
+++ b/arch/m68k/include/asm/futex.h
@@ -0,0 +1,94 @@
1#ifndef _ASM_M68K_FUTEX_H
2#define _ASM_M68K_FUTEX_H
3
4#ifdef __KERNEL__
5#if !defined(CONFIG_MMU)
6#include <asm-generic/futex.h>
7#else /* CONFIG_MMU */
8
9#include <linux/futex.h>
10#include <linux/uaccess.h>
11#include <asm/errno.h>
12
13static inline int
14futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
15 u32 oldval, u32 newval)
16{
17 u32 val;
18
19 if (unlikely(get_user(val, uaddr) != 0))
20 return -EFAULT;
21
22 if (val == oldval && unlikely(put_user(newval, uaddr) != 0))
23 return -EFAULT;
24
25 *uval = val;
26
27 return 0;
28}
29
30static inline int
31futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
32{
33 int op = (encoded_op >> 28) & 7;
34 int cmp = (encoded_op >> 24) & 15;
35 int oparg = (encoded_op << 8) >> 20;
36 int cmparg = (encoded_op << 20) >> 20;
37 int oldval, ret;
38 u32 tmp;
39
40 if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
41 oparg = 1 << oparg;
42
43 pagefault_disable(); /* implies preempt_disable() */
44
45 ret = -EFAULT;
46 if (unlikely(get_user(oldval, uaddr) != 0))
47 goto out_pagefault_enable;
48
49 ret = 0;
50 tmp = oldval;
51
52 switch (op) {
53 case FUTEX_OP_SET:
54 tmp = oparg;
55 break;
56 case FUTEX_OP_ADD:
57 tmp += oparg;
58 break;
59 case FUTEX_OP_OR:
60 tmp |= oparg;
61 break;
62 case FUTEX_OP_ANDN:
63 tmp &= ~oparg;
64 break;
65 case FUTEX_OP_XOR:
66 tmp ^= oparg;
67 break;
68 default:
69 ret = -ENOSYS;
70 }
71
72 if (ret == 0 && unlikely(put_user(tmp, uaddr) != 0))
73 ret = -EFAULT;
74
75out_pagefault_enable:
76 pagefault_enable(); /* subsumes preempt_enable() */
77
78 if (ret == 0) {
79 switch (cmp) {
80 case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
81 case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
82 case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
83 case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
84 case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
85 case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
86 default: ret = -ENOSYS;
87 }
88 }
89 return ret;
90}
91
92#endif /* CONFIG_MMU */
93#endif /* __KERNEL__ */
94#endif /* _ASM_M68K_FUTEX_H */
diff --git a/arch/microblaze/include/asm/futex.h b/arch/microblaze/include/asm/futex.h
index ff8cde159d9a..01848f056f43 100644
--- a/arch/microblaze/include/asm/futex.h
+++ b/arch/microblaze/include/asm/futex.h
@@ -105,7 +105,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
105 105
106 __asm__ __volatile__ ("1: lwx %1, %3, r0; \ 106 __asm__ __volatile__ ("1: lwx %1, %3, r0; \
107 cmp %2, %1, %4; \ 107 cmp %2, %1, %4; \
108 beqi %2, 3f; \ 108 bnei %2, 3f; \
109 2: swx %5, %3, r0; \ 109 2: swx %5, %3, r0; \
110 addic %2, r0, 0; \ 110 addic %2, r0, 0; \
111 bnei %2, 1b; \ 111 bnei %2, 1b; \
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 8cb8a8566ede..2565cb94f32f 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -123,11 +123,11 @@ static inline void writel(unsigned int v, volatile void __iomem *addr)
123 * inb_p/inw_p/... 123 * inb_p/inw_p/...
124 * The macros don't do byte-swapping. 124 * The macros don't do byte-swapping.
125 */ 125 */
126#define inb(port) readb((u8 *)((port))) 126#define inb(port) readb((u8 *)((unsigned long)(port)))
127#define outb(val, port) writeb((val), (u8 *)((unsigned long)(port))) 127#define outb(val, port) writeb((val), (u8 *)((unsigned long)(port)))
128#define inw(port) readw((u16 *)((port))) 128#define inw(port) readw((u16 *)((unsigned long)(port)))
129#define outw(val, port) writew((val), (u16 *)((unsigned long)(port))) 129#define outw(val, port) writew((val), (u16 *)((unsigned long)(port)))
130#define inl(port) readl((u32 *)((port))) 130#define inl(port) readl((u32 *)((unsigned long)(port)))
131#define outl(val, port) writel((val), (u32 *)((unsigned long)(port))) 131#define outl(val, port) writel((val), (u32 *)((unsigned long)(port)))
132 132
133#define inb_p(port) inb((port)) 133#define inb_p(port) inb((port))
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c
index 4254514b4c8c..a6e44410672d 100644
--- a/arch/microblaze/kernel/cpu/cache.c
+++ b/arch/microblaze/kernel/cpu/cache.c
@@ -140,7 +140,7 @@ do { \
140/* It is used only first parameter for OP - for wic, wdc */ 140/* It is used only first parameter for OP - for wic, wdc */
141#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ 141#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \
142do { \ 142do { \
143 int volatile temp; \ 143 int volatile temp = 0; \
144 int align = ~(line_length - 1); \ 144 int align = ~(line_length - 1); \
145 end = ((end & align) == end) ? end - line_length : end & align; \ 145 end = ((end & align) == end) ? end - line_length : end & align; \
146 WARN_ON(end - start < 0); \ 146 WARN_ON(end - start < 0); \
diff --git a/arch/mips/alchemy/board-gpr.c b/arch/mips/alchemy/board-gpr.c
index cb0f6afb7389..9edc35ff8cf1 100644
--- a/arch/mips/alchemy/board-gpr.c
+++ b/arch/mips/alchemy/board-gpr.c
@@ -31,6 +31,7 @@
31#include <linux/i2c.h> 31#include <linux/i2c.h>
32#include <linux/i2c-gpio.h> 32#include <linux/i2c-gpio.h>
33#include <asm/bootinfo.h> 33#include <asm/bootinfo.h>
34#include <asm/idle.h>
34#include <asm/reboot.h> 35#include <asm/reboot.h>
35#include <asm/mach-au1x00/au1000.h> 36#include <asm/mach-au1x00/au1000.h>
36#include <prom.h> 37#include <prom.h>
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index 38afb11ba2c4..93fa586d52e2 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -36,6 +36,7 @@
36#include <linux/interrupt.h> 36#include <linux/interrupt.h>
37#include <linux/spinlock.h> 37#include <linux/spinlock.h>
38 38
39#include <asm/idle.h>
39#include <asm/processor.h> 40#include <asm/processor.h>
40#include <asm/time.h> 41#include <asm/time.h>
41#include <asm/mach-au1x00/au1000.h> 42#include <asm/mach-au1x00/au1000.h>
diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
index a0233a2c1988..8be4e856b8b8 100644
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
@@ -19,6 +19,7 @@
19#include <linux/clk.h> 19#include <linux/clk.h>
20 20
21#include <asm/bootinfo.h> 21#include <asm/bootinfo.h>
22#include <asm/idle.h>
22#include <asm/time.h> /* for mips_hpt_frequency */ 23#include <asm/time.h> /* for mips_hpt_frequency */
23#include <asm/reboot.h> /* for _machine_{restart,halt} */ 24#include <asm/reboot.h> /* for _machine_{restart,halt} */
24#include <asm/mips_machine.h> 25#include <asm/mips_machine.h>
diff --git a/arch/mips/cobalt/reset.c b/arch/mips/cobalt/reset.c
index 516b4428df4e..4eedd481dd00 100644
--- a/arch/mips/cobalt/reset.c
+++ b/arch/mips/cobalt/reset.c
@@ -12,6 +12,7 @@
12#include <linux/io.h> 12#include <linux/io.h>
13#include <linux/leds.h> 13#include <linux/leds.h>
14 14
15#include <asm/idle.h>
15#include <asm/processor.h> 16#include <asm/processor.h>
16 17
17#include <cobalt.h> 18#include <cobalt.h>
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index face9d26e6d5..bac26b971c5e 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_defconfig
@@ -228,7 +228,6 @@ CONFIG_HIDRAW=y
228CONFIG_USB_HID=y 228CONFIG_USB_HID=y
229CONFIG_USB_SUPPORT=y 229CONFIG_USB_SUPPORT=y
230CONFIG_USB=y 230CONFIG_USB=y
231CONFIG_USB_SUSPEND=y
232CONFIG_USB_EHCI_HCD=y 231CONFIG_USB_EHCI_HCD=y
233CONFIG_USB_EHCI_ROOT_HUB_TT=y 232CONFIG_USB_EHCI_ROOT_HUB_TT=y
234CONFIG_USB_EHCI_TT_NEWSCHED=y 233CONFIG_USB_EHCI_TT_NEWSCHED=y
diff --git a/arch/mips/configs/db1235_defconfig b/arch/mips/configs/db1235_defconfig
index 14752dde7540..e2b4ad55462f 100644
--- a/arch/mips/configs/db1235_defconfig
+++ b/arch/mips/configs/db1235_defconfig
@@ -344,7 +344,6 @@ CONFIG_UHID=y
344CONFIG_USB_HIDDEV=y 344CONFIG_USB_HIDDEV=y
345CONFIG_USB=y 345CONFIG_USB=y
346CONFIG_USB_DYNAMIC_MINORS=y 346CONFIG_USB_DYNAMIC_MINORS=y
347CONFIG_USB_SUSPEND=y
348CONFIG_USB_EHCI_HCD=y 347CONFIG_USB_EHCI_HCD=y
349CONFIG_USB_EHCI_HCD_PLATFORM=y 348CONFIG_USB_EHCI_HCD_PLATFORM=y
350CONFIG_USB_EHCI_ROOT_HUB_TT=y 349CONFIG_USB_EHCI_ROOT_HUB_TT=y
diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemote2f_defconfig
index b6acd2f256b6..343bebc4b63b 100644
--- a/arch/mips/configs/lemote2f_defconfig
+++ b/arch/mips/configs/lemote2f_defconfig
@@ -300,7 +300,6 @@ CONFIG_USB=y
300CONFIG_USB_DEVICEFS=y 300CONFIG_USB_DEVICEFS=y
301# CONFIG_USB_DEVICE_CLASS is not set 301# CONFIG_USB_DEVICE_CLASS is not set
302CONFIG_USB_DYNAMIC_MINORS=y 302CONFIG_USB_DYNAMIC_MINORS=y
303CONFIG_USB_SUSPEND=y
304CONFIG_USB_OTG_WHITELIST=y 303CONFIG_USB_OTG_WHITELIST=y
305CONFIG_USB_MON=y 304CONFIG_USB_MON=y
306CONFIG_USB_EHCI_HCD=y 305CONFIG_USB_EHCI_HCD=y
diff --git a/arch/mips/include/asm/clock.h b/arch/mips/include/asm/clock.h
index c9456e7a7283..778e32d817bc 100644
--- a/arch/mips/include/asm/clock.h
+++ b/arch/mips/include/asm/clock.h
@@ -6,8 +6,6 @@
6#include <linux/seq_file.h> 6#include <linux/seq_file.h>
7#include <linux/clk.h> 7#include <linux/clk.h>
8 8
9extern void (*cpu_wait) (void);
10
11struct clk; 9struct clk;
12 10
13struct clk_ops { 11struct clk_ops {
diff --git a/arch/mips/include/asm/idle.h b/arch/mips/include/asm/idle.h
new file mode 100644
index 000000000000..d192158886b1
--- /dev/null
+++ b/arch/mips/include/asm/idle.h
@@ -0,0 +1,23 @@
1#ifndef __ASM_IDLE_H
2#define __ASM_IDLE_H
3
4#include <linux/linkage.h>
5
6extern void (*cpu_wait)(void);
7extern void r4k_wait(void);
8extern asmlinkage void __r4k_wait(void);
9extern void r4k_wait_irqoff(void);
10extern void __pastwait(void);
11
12static inline int using_rollback_handler(void)
13{
14 return cpu_wait == r4k_wait;
15}
16
17static inline int address_is_in_r4k_wait_irqoff(unsigned long addr)
18{
19 return addr >= (unsigned long)r4k_wait_irqoff &&
20 addr < (unsigned long)__pastwait;
21}
22
23#endif /* __ASM_IDLE_H */
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 1be13727323f..b7e59853fd33 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -118,7 +118,7 @@ static inline void set_io_port_base(unsigned long base)
118 */ 118 */
119static inline unsigned long virt_to_phys(volatile const void *address) 119static inline unsigned long virt_to_phys(volatile const void *address)
120{ 120{
121 return (unsigned long)address - PAGE_OFFSET + PHYS_OFFSET; 121 return __pa(address);
122} 122}
123 123
124/* 124/*
diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h
index e68781e18387..143875c6c95a 100644
--- a/arch/mips/include/asm/kvm_host.h
+++ b/arch/mips/include/asm/kvm_host.h
@@ -336,7 +336,7 @@ enum emulation_result {
336#define VPN2_MASK 0xffffe000 336#define VPN2_MASK 0xffffe000
337#define TLB_IS_GLOBAL(x) (((x).tlb_lo0 & MIPS3_PG_G) && ((x).tlb_lo1 & MIPS3_PG_G)) 337#define TLB_IS_GLOBAL(x) (((x).tlb_lo0 & MIPS3_PG_G) && ((x).tlb_lo1 & MIPS3_PG_G))
338#define TLB_VPN2(x) ((x).tlb_hi & VPN2_MASK) 338#define TLB_VPN2(x) ((x).tlb_hi & VPN2_MASK)
339#define TLB_ASID(x) (ASID_MASK((x).tlb_hi)) 339#define TLB_ASID(x) ((x).tlb_hi & ASID_MASK)
340#define TLB_IS_VALID(x, va) (((va) & (1 << PAGE_SHIFT)) ? ((x).tlb_lo1 & MIPS3_PG_V) : ((x).tlb_lo0 & MIPS3_PG_V)) 340#define TLB_IS_VALID(x, va) (((va) & (1 << PAGE_SHIFT)) ? ((x).tlb_lo1 & MIPS3_PG_V) : ((x).tlb_lo0 & MIPS3_PG_V))
341 341
342struct kvm_mips_tlb { 342struct kvm_mips_tlb {
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h
index 1554721e4808..820116067c10 100644
--- a/arch/mips/include/asm/mmu_context.h
+++ b/arch/mips/include/asm/mmu_context.h
@@ -67,68 +67,45 @@ extern unsigned long pgd_current[];
67 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) 67 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
68#endif 68#endif
69#endif /* CONFIG_MIPS_PGD_C0_CONTEXT*/ 69#endif /* CONFIG_MIPS_PGD_C0_CONTEXT*/
70#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
70 71
71#define ASID_INC(asid) \ 72#define ASID_INC 0x40
72({ \ 73#define ASID_MASK 0xfc0
73 unsigned long __asid = asid; \ 74
74 __asm__("1:\taddiu\t%0,1\t\t\t\t# patched\n\t" \ 75#elif defined(CONFIG_CPU_R8000)
75 ".section\t__asid_inc,\"a\"\n\t" \ 76
76 ".word\t1b\n\t" \ 77#define ASID_INC 0x10
77 ".previous" \ 78#define ASID_MASK 0xff0
78 :"=r" (__asid) \ 79
79 :"0" (__asid)); \ 80#elif defined(CONFIG_MIPS_MT_SMTC)
80 __asid; \ 81
81}) 82#define ASID_INC 0x1
82#define ASID_MASK(asid) \ 83extern unsigned long smtc_asid_mask;
83({ \ 84#define ASID_MASK (smtc_asid_mask)
84 unsigned long __asid = asid; \ 85#define HW_ASID_MASK 0xff
85 __asm__("1:\tandi\t%0,%1,0xfc0\t\t\t# patched\n\t" \ 86/* End SMTC/34K debug hack */
86 ".section\t__asid_mask,\"a\"\n\t" \ 87#else /* FIXME: not correct for R6000 */
87 ".word\t1b\n\t" \ 88
88 ".previous" \ 89#define ASID_INC 0x1
89 :"=r" (__asid) \ 90#define ASID_MASK 0xff
90 :"r" (__asid)); \
91 __asid; \
92})
93#define ASID_VERSION_MASK \
94({ \
95 unsigned long __asid; \
96 __asm__("1:\taddiu\t%0,$0,0xff00\t\t\t\t# patched\n\t" \
97 ".section\t__asid_version_mask,\"a\"\n\t" \
98 ".word\t1b\n\t" \
99 ".previous" \
100 :"=r" (__asid)); \
101 __asid; \
102})
103#define ASID_FIRST_VERSION \
104({ \
105 unsigned long __asid = asid; \
106 __asm__("1:\tli\t%0,0x100\t\t\t\t# patched\n\t" \
107 ".section\t__asid_first_version,\"a\"\n\t" \
108 ".word\t1b\n\t" \
109 ".previous" \
110 :"=r" (__asid)); \
111 __asid; \
112})
113
114#define ASID_FIRST_VERSION_R3000 0x1000
115#define ASID_FIRST_VERSION_R4000 0x100
116#define ASID_FIRST_VERSION_R8000 0x1000
117#define ASID_FIRST_VERSION_RM9000 0x1000
118 91
119#ifdef CONFIG_MIPS_MT_SMTC
120#define SMTC_HW_ASID_MASK 0xff
121extern unsigned int smtc_asid_mask;
122#endif 92#endif
123 93
124#define cpu_context(cpu, mm) ((mm)->context.asid[cpu]) 94#define cpu_context(cpu, mm) ((mm)->context.asid[cpu])
125#define cpu_asid(cpu, mm) ASID_MASK(cpu_context((cpu), (mm))) 95#define cpu_asid(cpu, mm) (cpu_context((cpu), (mm)) & ASID_MASK)
126#define asid_cache(cpu) (cpu_data[cpu].asid_cache) 96#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
127 97
128static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) 98static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
129{ 99{
130} 100}
131 101
102/*
103 * All unused by hardware upper bits will be considered
104 * as a software asid extension.
105 */
106#define ASID_VERSION_MASK ((unsigned long)~(ASID_MASK|(ASID_MASK-1)))
107#define ASID_FIRST_VERSION ((unsigned long)(~ASID_VERSION_MASK) + 1)
108
132#ifndef CONFIG_MIPS_MT_SMTC 109#ifndef CONFIG_MIPS_MT_SMTC
133/* Normal, classic MIPS get_new_mmu_context */ 110/* Normal, classic MIPS get_new_mmu_context */
134static inline void 111static inline void
@@ -137,7 +114,7 @@ get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
137 extern void kvm_local_flush_tlb_all(void); 114 extern void kvm_local_flush_tlb_all(void);
138 unsigned long asid = asid_cache(cpu); 115 unsigned long asid = asid_cache(cpu);
139 116
140 if (!ASID_MASK((asid = ASID_INC(asid)))) { 117 if (! ((asid += ASID_INC) & ASID_MASK) ) {
141 if (cpu_has_vtag_icache) 118 if (cpu_has_vtag_icache)
142 flush_icache_all(); 119 flush_icache_all();
143#ifdef CONFIG_VIRTUALIZATION 120#ifdef CONFIG_VIRTUALIZATION
@@ -200,7 +177,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
200 * free up the ASID value for use and flush any old 177 * free up the ASID value for use and flush any old
201 * instances of it from the TLB. 178 * instances of it from the TLB.
202 */ 179 */
203 oldasid = ASID_MASK(read_c0_entryhi()); 180 oldasid = (read_c0_entryhi() & ASID_MASK);
204 if(smtc_live_asid[mytlb][oldasid]) { 181 if(smtc_live_asid[mytlb][oldasid]) {
205 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu); 182 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu);
206 if(smtc_live_asid[mytlb][oldasid] == 0) 183 if(smtc_live_asid[mytlb][oldasid] == 0)
@@ -211,7 +188,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
211 * having ASID_MASK smaller than the hardware maximum, 188 * having ASID_MASK smaller than the hardware maximum,
212 * make sure no "soft" bits become "hard"... 189 * make sure no "soft" bits become "hard"...
213 */ 190 */
214 write_c0_entryhi((read_c0_entryhi() & ~SMTC_HW_ASID_MASK) | 191 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) |
215 cpu_asid(cpu, next)); 192 cpu_asid(cpu, next));
216 ehb(); /* Make sure it propagates to TCStatus */ 193 ehb(); /* Make sure it propagates to TCStatus */
217 evpe(mtflags); 194 evpe(mtflags);
@@ -264,15 +241,15 @@ activate_mm(struct mm_struct *prev, struct mm_struct *next)
264#ifdef CONFIG_MIPS_MT_SMTC 241#ifdef CONFIG_MIPS_MT_SMTC
265 /* See comments for similar code above */ 242 /* See comments for similar code above */
266 mtflags = dvpe(); 243 mtflags = dvpe();
267 oldasid = ASID_MASK(read_c0_entryhi()); 244 oldasid = read_c0_entryhi() & ASID_MASK;
268 if(smtc_live_asid[mytlb][oldasid]) { 245 if(smtc_live_asid[mytlb][oldasid]) {
269 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu); 246 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu);
270 if(smtc_live_asid[mytlb][oldasid] == 0) 247 if(smtc_live_asid[mytlb][oldasid] == 0)
271 smtc_flush_tlb_asid(oldasid); 248 smtc_flush_tlb_asid(oldasid);
272 } 249 }
273 /* See comments for similar code above */ 250 /* See comments for similar code above */
274 write_c0_entryhi((read_c0_entryhi() & ~SMTC_HW_ASID_MASK) | 251 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK) |
275 cpu_asid(cpu, next)); 252 cpu_asid(cpu, next));
276 ehb(); /* Make sure it propagates to TCStatus */ 253 ehb(); /* Make sure it propagates to TCStatus */
277 evpe(mtflags); 254 evpe(mtflags);
278#else 255#else
@@ -309,14 +286,14 @@ drop_mmu_context(struct mm_struct *mm, unsigned cpu)
309#ifdef CONFIG_MIPS_MT_SMTC 286#ifdef CONFIG_MIPS_MT_SMTC
310 /* See comments for similar code above */ 287 /* See comments for similar code above */
311 prevvpe = dvpe(); 288 prevvpe = dvpe();
312 oldasid = ASID_MASK(read_c0_entryhi()); 289 oldasid = (read_c0_entryhi() & ASID_MASK);
313 if (smtc_live_asid[mytlb][oldasid]) { 290 if (smtc_live_asid[mytlb][oldasid]) {
314 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu); 291 smtc_live_asid[mytlb][oldasid] &= ~(0x1 << cpu);
315 if(smtc_live_asid[mytlb][oldasid] == 0) 292 if(smtc_live_asid[mytlb][oldasid] == 0)
316 smtc_flush_tlb_asid(oldasid); 293 smtc_flush_tlb_asid(oldasid);
317 } 294 }
318 /* See comments for similar code above */ 295 /* See comments for similar code above */
319 write_c0_entryhi((read_c0_entryhi() & ~SMTC_HW_ASID_MASK) 296 write_c0_entryhi((read_c0_entryhi() & ~HW_ASID_MASK)
320 | cpu_asid(cpu, mm)); 297 | cpu_asid(cpu, mm));
321 ehb(); /* Make sure it propagates to TCStatus */ 298 ehb(); /* Make sure it propagates to TCStatus */
322 evpe(prevvpe); 299 evpe(prevvpe);
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
index eab99e536b5c..f59552fae917 100644
--- a/arch/mips/include/asm/page.h
+++ b/arch/mips/include/asm/page.h
@@ -46,7 +46,6 @@
46#endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ 46#endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */
47 47
48#include <linux/pfn.h> 48#include <linux/pfn.h>
49#include <asm/io.h>
50 49
51extern void build_clear_page(void); 50extern void build_clear_page(void);
52extern void build_copy_page(void); 51extern void build_copy_page(void);
@@ -151,6 +150,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
151 ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET) 150 ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET)
152#endif 151#endif
153#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) 152#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET))
153#include <asm/io.h>
154 154
155/* 155/*
156 * RELOC_HIDE was originally added by 6007b903dfe5f1d13e0c711ac2894bdd4a61b1ad 156 * RELOC_HIDE was originally added by 6007b903dfe5f1d13e0c711ac2894bdd4a61b1ad
@@ -171,14 +171,13 @@ typedef struct { unsigned long pgprot; } pgprot_t;
171 171
172#ifdef CONFIG_FLATMEM 172#ifdef CONFIG_FLATMEM
173 173
174#define pfn_valid(pfn) \ 174static inline int pfn_valid(unsigned long pfn)
175({ \ 175{
176 unsigned long __pfn = (pfn); \ 176 /* avoid <linux/mm.h> include hell */
177 /* avoid <linux/bootmem.h> include hell */ \ 177 extern unsigned long max_mapnr;
178 extern unsigned long min_low_pfn; \ 178
179 \ 179 return pfn >= ARCH_PFN_OFFSET && pfn < max_mapnr;
180 __pfn >= min_low_pfn && __pfn < max_mapnr; \ 180}
181})
182 181
183#elif defined(CONFIG_SPARSEMEM) 182#elif defined(CONFIG_SPARSEMEM)
184 183
diff --git a/arch/mips/include/asm/processor.h b/arch/mips/include/asm/processor.h
index 71686c897dea..1470b7b68b0e 100644
--- a/arch/mips/include/asm/processor.h
+++ b/arch/mips/include/asm/processor.h
@@ -28,7 +28,6 @@
28/* 28/*
29 * System setup and hardware flags.. 29 * System setup and hardware flags..
30 */ 30 */
31extern void (*cpu_wait)(void);
32 31
33extern unsigned int vced_count, vcei_count; 32extern unsigned int vced_count, vcei_count;
34 33
diff --git a/arch/mips/include/asm/kvm.h b/arch/mips/include/uapi/asm/kvm.h
index 85789eacbf18..85789eacbf18 100644
--- a/arch/mips/include/asm/kvm.h
+++ b/arch/mips/include/uapi/asm/kvm.h
diff --git a/arch/mips/include/uapi/asm/unistd.h b/arch/mips/include/uapi/asm/unistd.h
index 16338b84fa79..1dee279f9665 100644
--- a/arch/mips/include/uapi/asm/unistd.h
+++ b/arch/mips/include/uapi/asm/unistd.h
@@ -694,16 +694,17 @@
694#define __NR_process_vm_writev (__NR_Linux + 305) 694#define __NR_process_vm_writev (__NR_Linux + 305)
695#define __NR_kcmp (__NR_Linux + 306) 695#define __NR_kcmp (__NR_Linux + 306)
696#define __NR_finit_module (__NR_Linux + 307) 696#define __NR_finit_module (__NR_Linux + 307)
697#define __NR_getdents64 (__NR_Linux + 308)
697 698
698/* 699/*
699 * Offset of the last Linux 64-bit flavoured syscall 700 * Offset of the last Linux 64-bit flavoured syscall
700 */ 701 */
701#define __NR_Linux_syscalls 307 702#define __NR_Linux_syscalls 308
702 703
703#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 704#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
704 705
705#define __NR_64_Linux 5000 706#define __NR_64_Linux 5000
706#define __NR_64_Linux_syscalls 307 707#define __NR_64_Linux_syscalls 308
707 708
708#if _MIPS_SIM == _MIPS_SIM_NABI32 709#if _MIPS_SIM == _MIPS_SIM_NABI32
709 710
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 6ad9e04bdf62..423d871a946b 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -4,7 +4,7 @@
4 4
5extra-y := head.o vmlinux.lds 5extra-y := head.o vmlinux.lds
6 6
7obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \ 7obj-y += cpu-probe.o branch.o entry.o genex.o idle.o irq.o process.o \
8 prom.o ptrace.o reset.o setup.o signal.o syscall.o \ 8 prom.o ptrace.o reset.o setup.o signal.o syscall.o \
9 time.o topology.o traps.o unaligned.o watch.o vdso.o 9 time.o topology.o traps.o unaligned.o watch.o vdso.o
10 10
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 4bbffdb9024f..c6568bf4b1b0 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -27,105 +27,6 @@
27#include <asm/spram.h> 27#include <asm/spram.h>
28#include <asm/uaccess.h> 28#include <asm/uaccess.h>
29 29
30/*
31 * Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
32 * the implementation of the "wait" feature differs between CPU families. This
33 * points to the function that implements CPU specific wait.
34 * The wait instruction stops the pipeline and reduces the power consumption of
35 * the CPU very much.
36 */
37void (*cpu_wait)(void);
38EXPORT_SYMBOL(cpu_wait);
39
40static void r3081_wait(void)
41{
42 unsigned long cfg = read_c0_conf();
43 write_c0_conf(cfg | R30XX_CONF_HALT);
44}
45
46static void r39xx_wait(void)
47{
48 local_irq_disable();
49 if (!need_resched())
50 write_c0_conf(read_c0_conf() | TX39_CONF_HALT);
51 local_irq_enable();
52}
53
54extern void r4k_wait(void);
55
56/*
57 * This variant is preferable as it allows testing need_resched and going to
58 * sleep depending on the outcome atomically. Unfortunately the "It is
59 * implementation-dependent whether the pipeline restarts when a non-enabled
60 * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes
61 * using this version a gamble.
62 */
63void r4k_wait_irqoff(void)
64{
65 local_irq_disable();
66 if (!need_resched())
67 __asm__(" .set push \n"
68 " .set mips3 \n"
69 " wait \n"
70 " .set pop \n");
71 local_irq_enable();
72 __asm__(" .globl __pastwait \n"
73 "__pastwait: \n");
74}
75
76/*
77 * The RM7000 variant has to handle erratum 38. The workaround is to not
78 * have any pending stores when the WAIT instruction is executed.
79 */
80static void rm7k_wait_irqoff(void)
81{
82 local_irq_disable();
83 if (!need_resched())
84 __asm__(
85 " .set push \n"
86 " .set mips3 \n"
87 " .set noat \n"
88 " mfc0 $1, $12 \n"
89 " sync \n"
90 " mtc0 $1, $12 # stalls until W stage \n"
91 " wait \n"
92 " mtc0 $1, $12 # stalls until W stage \n"
93 " .set pop \n");
94 local_irq_enable();
95}
96
97/*
98 * The Au1xxx wait is available only if using 32khz counter or
99 * external timer source, but specifically not CP0 Counter.
100 * alchemy/common/time.c may override cpu_wait!
101 */
102static void au1k_wait(void)
103{
104 __asm__(" .set mips3 \n"
105 " cache 0x14, 0(%0) \n"
106 " cache 0x14, 32(%0) \n"
107 " sync \n"
108 " nop \n"
109 " wait \n"
110 " nop \n"
111 " nop \n"
112 " nop \n"
113 " nop \n"
114 " .set mips0 \n"
115 : : "r" (au1k_wait));
116}
117
118static int __initdata nowait;
119
120static int __init wait_disable(char *s)
121{
122 nowait = 1;
123
124 return 1;
125}
126
127__setup("nowait", wait_disable);
128
129static int __cpuinitdata mips_fpu_disabled; 30static int __cpuinitdata mips_fpu_disabled;
130 31
131static int __init fpu_disable(char *s) 32static int __init fpu_disable(char *s)
@@ -150,105 +51,6 @@ static int __init dsp_disable(char *s)
150 51
151__setup("nodsp", dsp_disable); 52__setup("nodsp", dsp_disable);
152 53
153void __init check_wait(void)
154{
155 struct cpuinfo_mips *c = &current_cpu_data;
156
157 if (nowait) {
158 printk("Wait instruction disabled.\n");
159 return;
160 }
161
162 switch (c->cputype) {
163 case CPU_R3081:
164 case CPU_R3081E:
165 cpu_wait = r3081_wait;
166 break;
167 case CPU_TX3927:
168 cpu_wait = r39xx_wait;
169 break;
170 case CPU_R4200:
171/* case CPU_R4300: */
172 case CPU_R4600:
173 case CPU_R4640:
174 case CPU_R4650:
175 case CPU_R4700:
176 case CPU_R5000:
177 case CPU_R5500:
178 case CPU_NEVADA:
179 case CPU_4KC:
180 case CPU_4KEC:
181 case CPU_4KSC:
182 case CPU_5KC:
183 case CPU_25KF:
184 case CPU_PR4450:
185 case CPU_BMIPS3300:
186 case CPU_BMIPS4350:
187 case CPU_BMIPS4380:
188 case CPU_BMIPS5000:
189 case CPU_CAVIUM_OCTEON:
190 case CPU_CAVIUM_OCTEON_PLUS:
191 case CPU_CAVIUM_OCTEON2:
192 case CPU_JZRISC:
193 case CPU_LOONGSON1:
194 case CPU_XLR:
195 case CPU_XLP:
196 cpu_wait = r4k_wait;
197 break;
198
199 case CPU_RM7000:
200 cpu_wait = rm7k_wait_irqoff;
201 break;
202
203 case CPU_M14KC:
204 case CPU_M14KEC:
205 case CPU_24K:
206 case CPU_34K:
207 case CPU_1004K:
208 cpu_wait = r4k_wait;
209 if (read_c0_config7() & MIPS_CONF7_WII)
210 cpu_wait = r4k_wait_irqoff;
211 break;
212
213 case CPU_74K:
214 cpu_wait = r4k_wait;
215 if ((c->processor_id & 0xff) >= PRID_REV_ENCODE_332(2, 1, 0))
216 cpu_wait = r4k_wait_irqoff;
217 break;
218
219 case CPU_TX49XX:
220 cpu_wait = r4k_wait_irqoff;
221 break;
222 case CPU_ALCHEMY:
223 cpu_wait = au1k_wait;
224 break;
225 case CPU_20KC:
226 /*
227 * WAIT on Rev1.0 has E1, E2, E3 and E16.
228 * WAIT on Rev2.0 and Rev3.0 has E16.
229 * Rev3.1 WAIT is nop, why bother
230 */
231 if ((c->processor_id & 0xff) <= 0x64)
232 break;
233
234 /*
235 * Another rev is incremeting c0_count at a reduced clock
236 * rate while in WAIT mode. So we basically have the choice
237 * between using the cp0 timer as clocksource or avoiding
238 * the WAIT instruction. Until more details are known,
239 * disable the use of WAIT for 20Kc entirely.
240 cpu_wait = r4k_wait;
241 */
242 break;
243 case CPU_RM9000:
244 if ((c->processor_id & 0x00ff) >= 0x40)
245 cpu_wait = r4k_wait;
246 break;
247 default:
248 break;
249 }
250}
251
252static inline void check_errata(void) 54static inline void check_errata(void)
253{ 55{
254 struct cpuinfo_mips *c = &current_cpu_data; 56 struct cpuinfo_mips *c = &current_cpu_data;
diff --git a/arch/mips/kernel/crash_dump.c b/arch/mips/kernel/crash_dump.c
index 35bed0d2342c..3be9e7bb30ff 100644
--- a/arch/mips/kernel/crash_dump.c
+++ b/arch/mips/kernel/crash_dump.c
@@ -2,6 +2,7 @@
2#include <linux/bootmem.h> 2#include <linux/bootmem.h>
3#include <linux/crash_dump.h> 3#include <linux/crash_dump.h>
4#include <asm/uaccess.h> 4#include <asm/uaccess.h>
5#include <linux/slab.h>
5 6
6static int __init parse_savemaxmem(char *p) 7static int __init parse_savemaxmem(char *p)
7{ 8{
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 5c2ba9f08a80..31fa856829cb 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -122,7 +122,7 @@ handle_vcei:
122 __FINIT 122 __FINIT
123 123
124 .align 5 /* 32 byte rollback region */ 124 .align 5 /* 32 byte rollback region */
125LEAF(r4k_wait) 125LEAF(__r4k_wait)
126 .set push 126 .set push
127 .set noreorder 127 .set noreorder
128 /* start of rollback region */ 128 /* start of rollback region */
@@ -146,14 +146,14 @@ LEAF(r4k_wait)
146 jr ra 146 jr ra
147 nop 147 nop
148 .set pop 148 .set pop
149 END(r4k_wait) 149 END(__r4k_wait)
150 150
151 .macro BUILD_ROLLBACK_PROLOGUE handler 151 .macro BUILD_ROLLBACK_PROLOGUE handler
152 FEXPORT(rollback_\handler) 152 FEXPORT(rollback_\handler)
153 .set push 153 .set push
154 .set noat 154 .set noat
155 MFC0 k0, CP0_EPC 155 MFC0 k0, CP0_EPC
156 PTR_LA k1, r4k_wait 156 PTR_LA k1, __r4k_wait
157 ori k0, 0x1f /* 32 byte rollback region */ 157 ori k0, 0x1f /* 32 byte rollback region */
158 xori k0, 0x1f 158 xori k0, 0x1f
159 bne k0, k1, 9f 159 bne k0, k1, 9f
@@ -493,7 +493,7 @@ NESTED(nmi_handler, PT_SIZE, sp)
493 .set noreorder 493 .set noreorder
494 /* check if TLB contains a entry for EPC */ 494 /* check if TLB contains a entry for EPC */
495 MFC0 k1, CP0_ENTRYHI 495 MFC0 k1, CP0_ENTRYHI
496 andi k1, 0xff /* ASID_MASK patched at run-time!! */ 496 andi k1, 0xff /* ASID_MASK */
497 MFC0 k0, CP0_EPC 497 MFC0 k0, CP0_EPC
498 PTR_SRL k0, _PAGE_SHIFT + 1 498 PTR_SRL k0, _PAGE_SHIFT + 1
499 PTR_SLL k0, _PAGE_SHIFT + 1 499 PTR_SLL k0, _PAGE_SHIFT + 1
diff --git a/arch/mips/kernel/idle.c b/arch/mips/kernel/idle.c
new file mode 100644
index 000000000000..3b09b888afa9
--- /dev/null
+++ b/arch/mips/kernel/idle.c
@@ -0,0 +1,244 @@
1/*
2 * MIPS idle loop and WAIT instruction support.
3 *
4 * Copyright (C) xxxx the Anonymous
5 * Copyright (C) 1994 - 2006 Ralf Baechle
6 * Copyright (C) 2003, 2004 Maciej W. Rozycki
7 * Copyright (C) 2001, 2004, 2011, 2012 MIPS Technologies, Inc.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
13 */
14#include <linux/export.h>
15#include <linux/init.h>
16#include <linux/irqflags.h>
17#include <linux/printk.h>
18#include <linux/sched.h>
19#include <asm/cpu.h>
20#include <asm/cpu-info.h>
21#include <asm/idle.h>
22#include <asm/mipsregs.h>
23
24/*
25 * Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
26 * the implementation of the "wait" feature differs between CPU families. This
27 * points to the function that implements CPU specific wait.
28 * The wait instruction stops the pipeline and reduces the power consumption of
29 * the CPU very much.
30 */
31void (*cpu_wait)(void);
32EXPORT_SYMBOL(cpu_wait);
33
34static void r3081_wait(void)
35{
36 unsigned long cfg = read_c0_conf();
37 write_c0_conf(cfg | R30XX_CONF_HALT);
38 local_irq_enable();
39}
40
41static void r39xx_wait(void)
42{
43 if (!need_resched())
44 write_c0_conf(read_c0_conf() | TX39_CONF_HALT);
45 local_irq_enable();
46}
47
48void r4k_wait(void)
49{
50 local_irq_enable();
51 __r4k_wait();
52}
53
54/*
55 * This variant is preferable as it allows testing need_resched and going to
56 * sleep depending on the outcome atomically. Unfortunately the "It is
57 * implementation-dependent whether the pipeline restarts when a non-enabled
58 * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes
59 * using this version a gamble.
60 */
61void r4k_wait_irqoff(void)
62{
63 if (!need_resched())
64 __asm__(
65 " .set push \n"
66 " .set mips3 \n"
67 " wait \n"
68 " .set pop \n");
69 local_irq_enable();
70 __asm__(
71 " .globl __pastwait \n"
72 "__pastwait: \n");
73}
74
75/*
76 * The RM7000 variant has to handle erratum 38. The workaround is to not
77 * have any pending stores when the WAIT instruction is executed.
78 */
79static void rm7k_wait_irqoff(void)
80{
81 if (!need_resched())
82 __asm__(
83 " .set push \n"
84 " .set mips3 \n"
85 " .set noat \n"
86 " mfc0 $1, $12 \n"
87 " sync \n"
88 " mtc0 $1, $12 # stalls until W stage \n"
89 " wait \n"
90 " mtc0 $1, $12 # stalls until W stage \n"
91 " .set pop \n");
92 local_irq_enable();
93}
94
95/*
96 * The Au1xxx wait is available only if using 32khz counter or
97 * external timer source, but specifically not CP0 Counter.
98 * alchemy/common/time.c may override cpu_wait!
99 */
100static void au1k_wait(void)
101{
102 __asm__(
103 " .set mips3 \n"
104 " cache 0x14, 0(%0) \n"
105 " cache 0x14, 32(%0) \n"
106 " sync \n"
107 " nop \n"
108 " wait \n"
109 " nop \n"
110 " nop \n"
111 " nop \n"
112 " nop \n"
113 " .set mips0 \n"
114 : : "r" (au1k_wait));
115 local_irq_enable();
116}
117
118static int __initdata nowait;
119
120static int __init wait_disable(char *s)
121{
122 nowait = 1;
123
124 return 1;
125}
126
127__setup("nowait", wait_disable);
128
129void __init check_wait(void)
130{
131 struct cpuinfo_mips *c = &current_cpu_data;
132
133 if (nowait) {
134 printk("Wait instruction disabled.\n");
135 return;
136 }
137
138 switch (c->cputype) {
139 case CPU_R3081:
140 case CPU_R3081E:
141 cpu_wait = r3081_wait;
142 break;
143 case CPU_TX3927:
144 cpu_wait = r39xx_wait;
145 break;
146 case CPU_R4200:
147/* case CPU_R4300: */
148 case CPU_R4600:
149 case CPU_R4640:
150 case CPU_R4650:
151 case CPU_R4700:
152 case CPU_R5000:
153 case CPU_R5500:
154 case CPU_NEVADA:
155 case CPU_4KC:
156 case CPU_4KEC:
157 case CPU_4KSC:
158 case CPU_5KC:
159 case CPU_25KF:
160 case CPU_PR4450:
161 case CPU_BMIPS3300:
162 case CPU_BMIPS4350:
163 case CPU_BMIPS4380:
164 case CPU_BMIPS5000:
165 case CPU_CAVIUM_OCTEON:
166 case CPU_CAVIUM_OCTEON_PLUS:
167 case CPU_CAVIUM_OCTEON2:
168 case CPU_JZRISC:
169 case CPU_LOONGSON1:
170 case CPU_XLR:
171 case CPU_XLP:
172 cpu_wait = r4k_wait;
173 break;
174
175 case CPU_RM7000:
176 cpu_wait = rm7k_wait_irqoff;
177 break;
178
179 case CPU_M14KC:
180 case CPU_M14KEC:
181 case CPU_24K:
182 case CPU_34K:
183 case CPU_1004K:
184 cpu_wait = r4k_wait;
185 if (read_c0_config7() & MIPS_CONF7_WII)
186 cpu_wait = r4k_wait_irqoff;
187 break;
188
189 case CPU_74K:
190 cpu_wait = r4k_wait;
191 if ((c->processor_id & 0xff) >= PRID_REV_ENCODE_332(2, 1, 0))
192 cpu_wait = r4k_wait_irqoff;
193 break;
194
195 case CPU_TX49XX:
196 cpu_wait = r4k_wait_irqoff;
197 break;
198 case CPU_ALCHEMY:
199 cpu_wait = au1k_wait;
200 break;
201 case CPU_20KC:
202 /*
203 * WAIT on Rev1.0 has E1, E2, E3 and E16.
204 * WAIT on Rev2.0 and Rev3.0 has E16.
205 * Rev3.1 WAIT is nop, why bother
206 */
207 if ((c->processor_id & 0xff) <= 0x64)
208 break;
209
210 /*
211 * Another rev is incremeting c0_count at a reduced clock
212 * rate while in WAIT mode. So we basically have the choice
213 * between using the cp0 timer as clocksource or avoiding
214 * the WAIT instruction. Until more details are known,
215 * disable the use of WAIT for 20Kc entirely.
216 cpu_wait = r4k_wait;
217 */
218 break;
219 case CPU_RM9000:
220 if ((c->processor_id & 0x00ff) >= 0x40)
221 cpu_wait = r4k_wait;
222 break;
223 default:
224 break;
225 }
226}
227
228static void smtc_idle_hook(void)
229{
230#ifdef CONFIG_MIPS_MT_SMTC
231 void smtc_idle_loop_hook(void);
232
233 smtc_idle_loop_hook();
234#endif
235}
236
237void arch_cpu_idle(void)
238{
239 smtc_idle_hook();
240 if (cpu_wait)
241 cpu_wait();
242 else
243 local_irq_enable();
244}
diff --git a/arch/mips/kernel/kprobes.c b/arch/mips/kernel/kprobes.c
index 12bc4ebdf55b..1f8187ab0997 100644
--- a/arch/mips/kernel/kprobes.c
+++ b/arch/mips/kernel/kprobes.c
@@ -207,7 +207,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
207 207
208void __kprobes arch_remove_kprobe(struct kprobe *p) 208void __kprobes arch_remove_kprobe(struct kprobe *p)
209{ 209{
210 free_insn_slot(p->ainsn.insn, 0); 210 if (p->ainsn.insn) {
211 free_insn_slot(p->ainsn.insn, 0);
212 p->ainsn.insn = NULL;
213 }
211} 214}
212 215
213static void save_previous_kprobe(struct kprobe_ctlblk *kcb) 216static void save_previous_kprobe(struct kprobe_ctlblk *kcb)
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index a3e461408b7e..acb34373679e 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -10,6 +10,7 @@
10#include <asm/bootinfo.h> 10#include <asm/bootinfo.h>
11#include <asm/cpu.h> 11#include <asm/cpu.h>
12#include <asm/cpu-features.h> 12#include <asm/cpu-features.h>
13#include <asm/idle.h>
13#include <asm/mipsregs.h> 14#include <asm/mipsregs.h>
14#include <asm/processor.h> 15#include <asm/processor.h>
15#include <asm/prom.h> 16#include <asm/prom.h>
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index eb902c1f0cad..c6a041d9d05d 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -51,19 +51,6 @@ void arch_cpu_idle_dead(void)
51} 51}
52#endif 52#endif
53 53
54void arch_cpu_idle(void)
55{
56#ifdef CONFIG_MIPS_MT_SMTC
57 extern void smtc_idle_loop_hook(void);
58
59 smtc_idle_loop_hook();
60#endif
61 if (cpu_wait)
62 (*cpu_wait)();
63 else
64 local_irq_enable();
65}
66
67asmlinkage void ret_from_fork(void); 54asmlinkage void ret_from_fork(void);
68asmlinkage void ret_from_kernel_thread(void); 55asmlinkage void ret_from_kernel_thread(void);
69 56
@@ -224,6 +211,9 @@ struct mips_frame_info {
224 int pc_offset; 211 int pc_offset;
225}; 212};
226 213
214#define J_TARGET(pc,target) \
215 (((unsigned long)(pc) & 0xf0000000) | ((target) << 2))
216
227static inline int is_ra_save_ins(union mips_instruction *ip) 217static inline int is_ra_save_ins(union mips_instruction *ip)
228{ 218{
229#ifdef CONFIG_CPU_MICROMIPS 219#ifdef CONFIG_CPU_MICROMIPS
@@ -264,7 +254,7 @@ static inline int is_ra_save_ins(union mips_instruction *ip)
264#endif 254#endif
265} 255}
266 256
267static inline int is_jal_jalr_jr_ins(union mips_instruction *ip) 257static inline int is_jump_ins(union mips_instruction *ip)
268{ 258{
269#ifdef CONFIG_CPU_MICROMIPS 259#ifdef CONFIG_CPU_MICROMIPS
270 /* 260 /*
@@ -288,6 +278,8 @@ static inline int is_jal_jalr_jr_ins(union mips_instruction *ip)
288 return 0; 278 return 0;
289 return (((ip->u_format.uimmediate >> 6) & mm_jalr_op) == mm_jalr_op); 279 return (((ip->u_format.uimmediate >> 6) & mm_jalr_op) == mm_jalr_op);
290#else 280#else
281 if (ip->j_format.opcode == j_op)
282 return 1;
291 if (ip->j_format.opcode == jal_op) 283 if (ip->j_format.opcode == jal_op)
292 return 1; 284 return 1;
293 if (ip->r_format.opcode != spec_op) 285 if (ip->r_format.opcode != spec_op)
@@ -350,7 +342,7 @@ static int get_frame_info(struct mips_frame_info *info)
350 342
351 for (i = 0; i < max_insns; i++, ip++) { 343 for (i = 0; i < max_insns; i++, ip++) {
352 344
353 if (is_jal_jalr_jr_ins(ip)) 345 if (is_jump_ins(ip))
354 break; 346 break;
355 if (!info->frame_size) { 347 if (!info->frame_size) {
356 if (is_sp_move_ins(ip)) 348 if (is_sp_move_ins(ip))
@@ -393,15 +385,42 @@ err:
393 385
394static struct mips_frame_info schedule_mfi __read_mostly; 386static struct mips_frame_info schedule_mfi __read_mostly;
395 387
388#ifdef CONFIG_KALLSYMS
389static unsigned long get___schedule_addr(void)
390{
391 return kallsyms_lookup_name("__schedule");
392}
393#else
394static unsigned long get___schedule_addr(void)
395{
396 union mips_instruction *ip = (void *)schedule;
397 int max_insns = 8;
398 int i;
399
400 for (i = 0; i < max_insns; i++, ip++) {
401 if (ip->j_format.opcode == j_op)
402 return J_TARGET(ip, ip->j_format.target);
403 }
404 return 0;
405}
406#endif
407
396static int __init frame_info_init(void) 408static int __init frame_info_init(void)
397{ 409{
398 unsigned long size = 0; 410 unsigned long size = 0;
399#ifdef CONFIG_KALLSYMS 411#ifdef CONFIG_KALLSYMS
400 unsigned long ofs; 412 unsigned long ofs;
413#endif
414 unsigned long addr;
415
416 addr = get___schedule_addr();
417 if (!addr)
418 addr = (unsigned long)schedule;
401 419
402 kallsyms_lookup_size_offset((unsigned long)schedule, &size, &ofs); 420#ifdef CONFIG_KALLSYMS
421 kallsyms_lookup_size_offset(addr, &size, &ofs);
403#endif 422#endif
404 schedule_mfi.func = schedule; 423 schedule_mfi.func = (void *)addr;
405 schedule_mfi.func_size = size; 424 schedule_mfi.func_size = size;
406 425
407 get_frame_info(&schedule_mfi); 426 get_frame_info(&schedule_mfi);
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index 36cfd4060e1f..97a5909a61cf 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -423,4 +423,5 @@ sys_call_table:
423 PTR sys_process_vm_writev /* 5305 */ 423 PTR sys_process_vm_writev /* 5305 */
424 PTR sys_kcmp 424 PTR sys_kcmp
425 PTR sys_finit_module 425 PTR sys_finit_module
426 PTR sys_getdents64
426 .size sys_call_table,.-sys_call_table 427 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index c17619fe18e3..6e7862ab46cc 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -37,6 +37,7 @@
37#include <linux/atomic.h> 37#include <linux/atomic.h>
38#include <asm/cpu.h> 38#include <asm/cpu.h>
39#include <asm/processor.h> 39#include <asm/processor.h>
40#include <asm/idle.h>
40#include <asm/r4k-timer.h> 41#include <asm/r4k-timer.h>
41#include <asm/mmu_context.h> 42#include <asm/mmu_context.h>
42#include <asm/time.h> 43#include <asm/time.h>
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index 31d22f3121c9..75a4fd709841 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -34,6 +34,7 @@
34#include <asm/hardirq.h> 34#include <asm/hardirq.h>
35#include <asm/hazards.h> 35#include <asm/hazards.h>
36#include <asm/irq.h> 36#include <asm/irq.h>
37#include <asm/idle.h>
37#include <asm/mmu_context.h> 38#include <asm/mmu_context.h>
38#include <asm/mipsregs.h> 39#include <asm/mipsregs.h>
39#include <asm/cacheflush.h> 40#include <asm/cacheflush.h>
@@ -111,7 +112,7 @@ static int vpe0limit;
111static int ipibuffers; 112static int ipibuffers;
112static int nostlb; 113static int nostlb;
113static int asidmask; 114static int asidmask;
114unsigned int smtc_asid_mask = 0xff; 115unsigned long smtc_asid_mask = 0xff;
115 116
116static int __init vpe0tcs(char *str) 117static int __init vpe0tcs(char *str)
117{ 118{
@@ -858,7 +859,6 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
858 unsigned long flags; 859 unsigned long flags;
859 int mtflags; 860 int mtflags;
860 unsigned long tcrestart; 861 unsigned long tcrestart;
861 extern void r4k_wait_irqoff(void), __pastwait(void);
862 int set_resched_flag = (type == LINUX_SMP_IPI && 862 int set_resched_flag = (type == LINUX_SMP_IPI &&
863 action == SMP_RESCHEDULE_YOURSELF); 863 action == SMP_RESCHEDULE_YOURSELF);
864 864
@@ -914,8 +914,7 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
914 */ 914 */
915 if (cpu_wait == r4k_wait_irqoff) { 915 if (cpu_wait == r4k_wait_irqoff) {
916 tcrestart = read_tc_c0_tcrestart(); 916 tcrestart = read_tc_c0_tcrestart();
917 if (tcrestart >= (unsigned long)r4k_wait_irqoff 917 if (address_is_in_r4k_wait_irqoff(tcrestart)) {
918 && tcrestart < (unsigned long)__pastwait) {
919 write_tc_c0_tcrestart(__pastwait); 918 write_tc_c0_tcrestart(__pastwait);
920 tcstatus &= ~TCSTATUS_IXMT; 919 tcstatus &= ~TCSTATUS_IXMT;
921 write_tc_c0_tcstatus(tcstatus); 920 write_tc_c0_tcstatus(tcstatus);
@@ -1395,7 +1394,7 @@ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
1395 asid = asid_cache(cpu); 1394 asid = asid_cache(cpu);
1396 1395
1397 do { 1396 do {
1398 if (!ASID_MASK(ASID_INC(asid))) { 1397 if (!((asid += ASID_INC) & ASID_MASK) ) {
1399 if (cpu_has_vtag_icache) 1398 if (cpu_has_vtag_icache)
1400 flush_icache_all(); 1399 flush_icache_all();
1401 /* Traverse all online CPUs (hack requires contiguous range) */ 1400 /* Traverse all online CPUs (hack requires contiguous range) */
@@ -1414,7 +1413,7 @@ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
1414 mips_ihb(); 1413 mips_ihb();
1415 } 1414 }
1416 tcstat = read_tc_c0_tcstatus(); 1415 tcstat = read_tc_c0_tcstatus();
1417 smtc_live_asid[tlb][ASID_MASK(tcstat)] |= (asiduse)(0x1 << i); 1416 smtc_live_asid[tlb][(tcstat & ASID_MASK)] |= (asiduse)(0x1 << i);
1418 if (!prevhalt) 1417 if (!prevhalt)
1419 write_tc_c0_tchalt(0); 1418 write_tc_c0_tchalt(0);
1420 } 1419 }
@@ -1423,7 +1422,7 @@ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
1423 asid = ASID_FIRST_VERSION; 1422 asid = ASID_FIRST_VERSION;
1424 local_flush_tlb_all(); /* start new asid cycle */ 1423 local_flush_tlb_all(); /* start new asid cycle */
1425 } 1424 }
1426 } while (smtc_live_asid[tlb][ASID_MASK(asid)]); 1425 } while (smtc_live_asid[tlb][(asid & ASID_MASK)]);
1427 1426
1428 /* 1427 /*
1429 * SMTC shares the TLB within VPEs and possibly across all VPEs. 1428 * SMTC shares the TLB within VPEs and possibly across all VPEs.
@@ -1461,7 +1460,7 @@ void smtc_flush_tlb_asid(unsigned long asid)
1461 tlb_read(); 1460 tlb_read();
1462 ehb(); 1461 ehb();
1463 ehi = read_c0_entryhi(); 1462 ehi = read_c0_entryhi();
1464 if (ASID_MASK(ehi) == asid) { 1463 if ((ehi & ASID_MASK) == asid) {
1465 /* 1464 /*
1466 * Invalidate only entries with specified ASID, 1465 * Invalidate only entries with specified ASID,
1467 * makiing sure all entries differ. 1466 * makiing sure all entries differ.
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 77cff1f6d050..e3be67012d78 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -41,6 +41,7 @@
41#include <asm/dsp.h> 41#include <asm/dsp.h>
42#include <asm/fpu.h> 42#include <asm/fpu.h>
43#include <asm/fpu_emulator.h> 43#include <asm/fpu_emulator.h>
44#include <asm/idle.h>
44#include <asm/mipsregs.h> 45#include <asm/mipsregs.h>
45#include <asm/mipsmtregs.h> 46#include <asm/mipsmtregs.h>
46#include <asm/module.h> 47#include <asm/module.h>
@@ -57,7 +58,6 @@
57#include <asm/uasm.h> 58#include <asm/uasm.h>
58 59
59extern void check_wait(void); 60extern void check_wait(void);
60extern asmlinkage void r4k_wait(void);
61extern asmlinkage void rollback_handle_int(void); 61extern asmlinkage void rollback_handle_int(void);
62extern asmlinkage void handle_int(void); 62extern asmlinkage void handle_int(void);
63extern u32 handle_tlbl[]; 63extern u32 handle_tlbl[];
@@ -1542,7 +1542,7 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1542 extern char except_vec_vi, except_vec_vi_lui; 1542 extern char except_vec_vi, except_vec_vi_lui;
1543 extern char except_vec_vi_ori, except_vec_vi_end; 1543 extern char except_vec_vi_ori, except_vec_vi_end;
1544 extern char rollback_except_vec_vi; 1544 extern char rollback_except_vec_vi;
1545 char *vec_start = (cpu_wait == r4k_wait) ? 1545 char *vec_start = using_rollback_handler() ?
1546 &rollback_except_vec_vi : &except_vec_vi; 1546 &rollback_except_vec_vi : &except_vec_vi;
1547#ifdef CONFIG_MIPS_MT_SMTC 1547#ifdef CONFIG_MIPS_MT_SMTC
1548 /* 1548 /*
@@ -1656,7 +1656,6 @@ void __cpuinit per_cpu_trap_init(bool is_boot_cpu)
1656 unsigned int cpu = smp_processor_id(); 1656 unsigned int cpu = smp_processor_id();
1657 unsigned int status_set = ST0_CU0; 1657 unsigned int status_set = ST0_CU0;
1658 unsigned int hwrena = cpu_hwrena_impl_bits; 1658 unsigned int hwrena = cpu_hwrena_impl_bits;
1659 unsigned long asid = 0;
1660#ifdef CONFIG_MIPS_MT_SMTC 1659#ifdef CONFIG_MIPS_MT_SMTC
1661 int secondaryTC = 0; 1660 int secondaryTC = 0;
1662 int bootTC = (cpu == 0); 1661 int bootTC = (cpu == 0);
@@ -1740,9 +1739,8 @@ void __cpuinit per_cpu_trap_init(bool is_boot_cpu)
1740 } 1739 }
1741#endif /* CONFIG_MIPS_MT_SMTC */ 1740#endif /* CONFIG_MIPS_MT_SMTC */
1742 1741
1743 asid = ASID_FIRST_VERSION; 1742 if (!cpu_data[cpu].asid_cache)
1744 cpu_data[cpu].asid_cache = asid; 1743 cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
1745 TLBMISS_HANDLER_SETUP();
1746 1744
1747 atomic_inc(&init_mm.mm_count); 1745 atomic_inc(&init_mm.mm_count);
1748 current->active_mm = &init_mm; 1746 current->active_mm = &init_mm;
@@ -1814,10 +1812,8 @@ void __init trap_init(void)
1814 extern char except_vec4; 1812 extern char except_vec4;
1815 extern char except_vec3_r4000; 1813 extern char except_vec3_r4000;
1816 unsigned long i; 1814 unsigned long i;
1817 int rollback;
1818 1815
1819 check_wait(); 1816 check_wait();
1820 rollback = (cpu_wait == r4k_wait);
1821 1817
1822#if defined(CONFIG_KGDB) 1818#if defined(CONFIG_KGDB)
1823 if (kgdb_early_setup) 1819 if (kgdb_early_setup)
@@ -1894,7 +1890,8 @@ void __init trap_init(void)
1894 if (board_be_init) 1890 if (board_be_init)
1895 board_be_init(); 1891 board_be_init();
1896 1892
1897 set_except_vector(0, rollback ? rollback_handle_int : handle_int); 1893 set_except_vector(0, using_rollback_handler() ? rollback_handle_int
1894 : handle_int);
1898 set_except_vector(1, handle_tlbm); 1895 set_except_vector(1, handle_tlbm);
1899 set_except_vector(2, handle_tlbl); 1896 set_except_vector(2, handle_tlbl);
1900 set_except_vector(3, handle_tlbs); 1897 set_except_vector(3, handle_tlbs);
diff --git a/arch/mips/kvm/kvm_mips_emul.c b/arch/mips/kvm/kvm_mips_emul.c
index 2b2bac9a40aa..4b6274b47f33 100644
--- a/arch/mips/kvm/kvm_mips_emul.c
+++ b/arch/mips/kvm/kvm_mips_emul.c
@@ -525,16 +525,18 @@ kvm_mips_emulate_CP0(uint32_t inst, uint32_t *opc, uint32_t cause,
525 printk("MTCz, cop0->reg[EBASE]: %#lx\n", 525 printk("MTCz, cop0->reg[EBASE]: %#lx\n",
526 kvm_read_c0_guest_ebase(cop0)); 526 kvm_read_c0_guest_ebase(cop0));
527 } else if (rd == MIPS_CP0_TLB_HI && sel == 0) { 527 } else if (rd == MIPS_CP0_TLB_HI && sel == 0) {
528 uint32_t nasid = ASID_MASK(vcpu->arch.gprs[rt]); 528 uint32_t nasid =
529 vcpu->arch.gprs[rt] & ASID_MASK;
529 if ((KSEGX(vcpu->arch.gprs[rt]) != CKSEG0) 530 if ((KSEGX(vcpu->arch.gprs[rt]) != CKSEG0)
530 && 531 &&
531 (ASID_MASK(kvm_read_c0_guest_entryhi(cop0)) 532 ((kvm_read_c0_guest_entryhi(cop0) &
532 != nasid)) { 533 ASID_MASK) != nasid)) {
533 534
534 kvm_debug 535 kvm_debug
535 ("MTCz, change ASID from %#lx to %#lx\n", 536 ("MTCz, change ASID from %#lx to %#lx\n",
536 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)), 537 kvm_read_c0_guest_entryhi(cop0) &
537 ASID_MASK(vcpu->arch.gprs[rt])); 538 ASID_MASK,
539 vcpu->arch.gprs[rt] & ASID_MASK);
538 540
539 /* Blow away the shadow host TLBs */ 541 /* Blow away the shadow host TLBs */
540 kvm_mips_flush_host_tlb(1); 542 kvm_mips_flush_host_tlb(1);
@@ -986,7 +988,8 @@ kvm_mips_emulate_cache(uint32_t inst, uint32_t *opc, uint32_t cause,
986 * resulting handler will do the right thing 988 * resulting handler will do the right thing
987 */ 989 */
988 index = kvm_mips_guest_tlb_lookup(vcpu, (va & VPN2_MASK) | 990 index = kvm_mips_guest_tlb_lookup(vcpu, (va & VPN2_MASK) |
989 ASID_MASK(kvm_read_c0_guest_entryhi(cop0))); 991 (kvm_read_c0_guest_entryhi
992 (cop0) & ASID_MASK));
990 993
991 if (index < 0) { 994 if (index < 0) {
992 vcpu->arch.host_cp0_entryhi = (va & VPN2_MASK); 995 vcpu->arch.host_cp0_entryhi = (va & VPN2_MASK);
@@ -1151,7 +1154,7 @@ kvm_mips_emulate_tlbmiss_ld(unsigned long cause, uint32_t *opc,
1151 struct kvm_vcpu_arch *arch = &vcpu->arch; 1154 struct kvm_vcpu_arch *arch = &vcpu->arch;
1152 enum emulation_result er = EMULATE_DONE; 1155 enum emulation_result er = EMULATE_DONE;
1153 unsigned long entryhi = (vcpu->arch. host_cp0_badvaddr & VPN2_MASK) | 1156 unsigned long entryhi = (vcpu->arch. host_cp0_badvaddr & VPN2_MASK) |
1154 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)); 1157 (kvm_read_c0_guest_entryhi(cop0) & ASID_MASK);
1155 1158
1156 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) { 1159 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
1157 /* save old pc */ 1160 /* save old pc */
@@ -1198,7 +1201,7 @@ kvm_mips_emulate_tlbinv_ld(unsigned long cause, uint32_t *opc,
1198 enum emulation_result er = EMULATE_DONE; 1201 enum emulation_result er = EMULATE_DONE;
1199 unsigned long entryhi = 1202 unsigned long entryhi =
1200 (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) | 1203 (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
1201 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)); 1204 (kvm_read_c0_guest_entryhi(cop0) & ASID_MASK);
1202 1205
1203 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) { 1206 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
1204 /* save old pc */ 1207 /* save old pc */
@@ -1243,7 +1246,7 @@ kvm_mips_emulate_tlbmiss_st(unsigned long cause, uint32_t *opc,
1243 struct kvm_vcpu_arch *arch = &vcpu->arch; 1246 struct kvm_vcpu_arch *arch = &vcpu->arch;
1244 enum emulation_result er = EMULATE_DONE; 1247 enum emulation_result er = EMULATE_DONE;
1245 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) | 1248 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
1246 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)); 1249 (kvm_read_c0_guest_entryhi(cop0) & ASID_MASK);
1247 1250
1248 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) { 1251 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
1249 /* save old pc */ 1252 /* save old pc */
@@ -1287,7 +1290,7 @@ kvm_mips_emulate_tlbinv_st(unsigned long cause, uint32_t *opc,
1287 struct kvm_vcpu_arch *arch = &vcpu->arch; 1290 struct kvm_vcpu_arch *arch = &vcpu->arch;
1288 enum emulation_result er = EMULATE_DONE; 1291 enum emulation_result er = EMULATE_DONE;
1289 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) | 1292 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
1290 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)); 1293 (kvm_read_c0_guest_entryhi(cop0) & ASID_MASK);
1291 1294
1292 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) { 1295 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
1293 /* save old pc */ 1296 /* save old pc */
@@ -1356,7 +1359,7 @@ kvm_mips_emulate_tlbmod(unsigned long cause, uint32_t *opc,
1356{ 1359{
1357 struct mips_coproc *cop0 = vcpu->arch.cop0; 1360 struct mips_coproc *cop0 = vcpu->arch.cop0;
1358 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) | 1361 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
1359 ASID_MASK(kvm_read_c0_guest_entryhi(cop0)); 1362 (kvm_read_c0_guest_entryhi(cop0) & ASID_MASK);
1360 struct kvm_vcpu_arch *arch = &vcpu->arch; 1363 struct kvm_vcpu_arch *arch = &vcpu->arch;
1361 enum emulation_result er = EMULATE_DONE; 1364 enum emulation_result er = EMULATE_DONE;
1362 1365
@@ -1783,8 +1786,8 @@ kvm_mips_handle_tlbmiss(unsigned long cause, uint32_t *opc,
1783 */ 1786 */
1784 index = kvm_mips_guest_tlb_lookup(vcpu, 1787 index = kvm_mips_guest_tlb_lookup(vcpu,
1785 (va & VPN2_MASK) | 1788 (va & VPN2_MASK) |
1786 ASID_MASK(kvm_read_c0_guest_entryhi 1789 (kvm_read_c0_guest_entryhi
1787 (vcpu->arch.cop0))); 1790 (vcpu->arch.cop0) & ASID_MASK));
1788 if (index < 0) { 1791 if (index < 0) {
1789 if (exccode == T_TLB_LD_MISS) { 1792 if (exccode == T_TLB_LD_MISS) {
1790 er = kvm_mips_emulate_tlbmiss_ld(cause, opc, run, vcpu); 1793 er = kvm_mips_emulate_tlbmiss_ld(cause, opc, run, vcpu);
diff --git a/arch/mips/kvm/kvm_tlb.c b/arch/mips/kvm/kvm_tlb.c
index 89511a9258d3..c777dd36d4a8 100644
--- a/arch/mips/kvm/kvm_tlb.c
+++ b/arch/mips/kvm/kvm_tlb.c
@@ -17,6 +17,8 @@
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/kvm_host.h> 19#include <linux/kvm_host.h>
20#include <linux/srcu.h>
21
20 22
21#include <asm/cpu.h> 23#include <asm/cpu.h>
22#include <asm/bootinfo.h> 24#include <asm/bootinfo.h>
@@ -51,13 +53,13 @@ EXPORT_SYMBOL(kvm_mips_is_error_pfn);
51 53
52uint32_t kvm_mips_get_kernel_asid(struct kvm_vcpu *vcpu) 54uint32_t kvm_mips_get_kernel_asid(struct kvm_vcpu *vcpu)
53{ 55{
54 return ASID_MASK(vcpu->arch.guest_kernel_asid[smp_processor_id()]); 56 return vcpu->arch.guest_kernel_asid[smp_processor_id()] & ASID_MASK;
55} 57}
56 58
57 59
58uint32_t kvm_mips_get_user_asid(struct kvm_vcpu *vcpu) 60uint32_t kvm_mips_get_user_asid(struct kvm_vcpu *vcpu)
59{ 61{
60 return ASID_MASK(vcpu->arch.guest_user_asid[smp_processor_id()]); 62 return vcpu->arch.guest_user_asid[smp_processor_id()] & ASID_MASK;
61} 63}
62 64
63inline uint32_t kvm_mips_get_commpage_asid (struct kvm_vcpu *vcpu) 65inline uint32_t kvm_mips_get_commpage_asid (struct kvm_vcpu *vcpu)
@@ -84,7 +86,7 @@ void kvm_mips_dump_host_tlbs(void)
84 old_pagemask = read_c0_pagemask(); 86 old_pagemask = read_c0_pagemask();
85 87
86 printk("HOST TLBs:\n"); 88 printk("HOST TLBs:\n");
87 printk("ASID: %#lx\n", ASID_MASK(read_c0_entryhi())); 89 printk("ASID: %#lx\n", read_c0_entryhi() & ASID_MASK);
88 90
89 for (i = 0; i < current_cpu_data.tlbsize; i++) { 91 for (i = 0; i < current_cpu_data.tlbsize; i++) {
90 write_c0_index(i); 92 write_c0_index(i);
@@ -169,21 +171,27 @@ void kvm_mips_dump_shadow_tlbs(struct kvm_vcpu *vcpu)
169 } 171 }
170} 172}
171 173
172static void kvm_mips_map_page(struct kvm *kvm, gfn_t gfn) 174static int kvm_mips_map_page(struct kvm *kvm, gfn_t gfn)
173{ 175{
176 int srcu_idx, err = 0;
174 pfn_t pfn; 177 pfn_t pfn;
175 178
176 if (kvm->arch.guest_pmap[gfn] != KVM_INVALID_PAGE) 179 if (kvm->arch.guest_pmap[gfn] != KVM_INVALID_PAGE)
177 return; 180 return 0;
178 181
182 srcu_idx = srcu_read_lock(&kvm->srcu);
179 pfn = kvm_mips_gfn_to_pfn(kvm, gfn); 183 pfn = kvm_mips_gfn_to_pfn(kvm, gfn);
180 184
181 if (kvm_mips_is_error_pfn(pfn)) { 185 if (kvm_mips_is_error_pfn(pfn)) {
182 panic("Couldn't get pfn for gfn %#" PRIx64 "!\n", gfn); 186 kvm_err("Couldn't get pfn for gfn %#" PRIx64 "!\n", gfn);
187 err = -EFAULT;
188 goto out;
183 } 189 }
184 190
185 kvm->arch.guest_pmap[gfn] = pfn; 191 kvm->arch.guest_pmap[gfn] = pfn;
186 return; 192out:
193 srcu_read_unlock(&kvm->srcu, srcu_idx);
194 return err;
187} 195}
188 196
189/* Translate guest KSEG0 addresses to Host PA */ 197/* Translate guest KSEG0 addresses to Host PA */
@@ -207,7 +215,10 @@ unsigned long kvm_mips_translate_guest_kseg0_to_hpa(struct kvm_vcpu *vcpu,
207 gva); 215 gva);
208 return KVM_INVALID_PAGE; 216 return KVM_INVALID_PAGE;
209 } 217 }
210 kvm_mips_map_page(vcpu->kvm, gfn); 218
219 if (kvm_mips_map_page(vcpu->kvm, gfn) < 0)
220 return KVM_INVALID_ADDR;
221
211 return (kvm->arch.guest_pmap[gfn] << PAGE_SHIFT) + offset; 222 return (kvm->arch.guest_pmap[gfn] << PAGE_SHIFT) + offset;
212} 223}
213 224
@@ -310,8 +321,11 @@ int kvm_mips_handle_kseg0_tlb_fault(unsigned long badvaddr,
310 even = !(gfn & 0x1); 321 even = !(gfn & 0x1);
311 vaddr = badvaddr & (PAGE_MASK << 1); 322 vaddr = badvaddr & (PAGE_MASK << 1);
312 323
313 kvm_mips_map_page(vcpu->kvm, gfn); 324 if (kvm_mips_map_page(vcpu->kvm, gfn) < 0)
314 kvm_mips_map_page(vcpu->kvm, gfn ^ 0x1); 325 return -1;
326
327 if (kvm_mips_map_page(vcpu->kvm, gfn ^ 0x1) < 0)
328 return -1;
315 329
316 if (even) { 330 if (even) {
317 pfn0 = kvm->arch.guest_pmap[gfn]; 331 pfn0 = kvm->arch.guest_pmap[gfn];
@@ -389,8 +403,11 @@ kvm_mips_handle_mapped_seg_tlb_fault(struct kvm_vcpu *vcpu,
389 pfn0 = 0; 403 pfn0 = 0;
390 pfn1 = 0; 404 pfn1 = 0;
391 } else { 405 } else {
392 kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb->tlb_lo0) >> PAGE_SHIFT); 406 if (kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb->tlb_lo0) >> PAGE_SHIFT) < 0)
393 kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb->tlb_lo1) >> PAGE_SHIFT); 407 return -1;
408
409 if (kvm_mips_map_page(kvm, mips3_tlbpfn_to_paddr(tlb->tlb_lo1) >> PAGE_SHIFT) < 0)
410 return -1;
394 411
395 pfn0 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb->tlb_lo0) >> PAGE_SHIFT]; 412 pfn0 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb->tlb_lo0) >> PAGE_SHIFT];
396 pfn1 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb->tlb_lo1) >> PAGE_SHIFT]; 413 pfn1 = kvm->arch.guest_pmap[mips3_tlbpfn_to_paddr(tlb->tlb_lo1) >> PAGE_SHIFT];
@@ -428,7 +445,7 @@ int kvm_mips_guest_tlb_lookup(struct kvm_vcpu *vcpu, unsigned long entryhi)
428 445
429 for (i = 0; i < KVM_MIPS_GUEST_TLB_SIZE; i++) { 446 for (i = 0; i < KVM_MIPS_GUEST_TLB_SIZE; i++) {
430 if (((TLB_VPN2(tlb[i]) & ~tlb[i].tlb_mask) == ((entryhi & VPN2_MASK) & ~tlb[i].tlb_mask)) && 447 if (((TLB_VPN2(tlb[i]) & ~tlb[i].tlb_mask) == ((entryhi & VPN2_MASK) & ~tlb[i].tlb_mask)) &&
431 (TLB_IS_GLOBAL(tlb[i]) || (TLB_ASID(tlb[i]) == ASID_MASK(entryhi)))) { 448 (TLB_IS_GLOBAL(tlb[i]) || (TLB_ASID(tlb[i]) == (entryhi & ASID_MASK)))) {
432 index = i; 449 index = i;
433 break; 450 break;
434 } 451 }
@@ -626,7 +643,7 @@ kvm_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu,
626{ 643{
627 unsigned long asid = asid_cache(cpu); 644 unsigned long asid = asid_cache(cpu);
628 645
629 if (!(ASID_MASK(ASID_INC(asid)))) { 646 if (!((asid += ASID_INC) & ASID_MASK)) {
630 if (cpu_has_vtag_icache) { 647 if (cpu_has_vtag_icache) {
631 flush_icache_all(); 648 flush_icache_all();
632 } 649 }
@@ -804,7 +821,8 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
804 if (!newasid) { 821 if (!newasid) {
805 /* If we preempted while the guest was executing, then reload the pre-empted ASID */ 822 /* If we preempted while the guest was executing, then reload the pre-empted ASID */
806 if (current->flags & PF_VCPU) { 823 if (current->flags & PF_VCPU) {
807 write_c0_entryhi(ASID_MASK(vcpu->arch.preempt_entryhi)); 824 write_c0_entryhi(vcpu->arch.
825 preempt_entryhi & ASID_MASK);
808 ehb(); 826 ehb();
809 } 827 }
810 } else { 828 } else {
@@ -816,11 +834,13 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
816 */ 834 */
817 if (current->flags & PF_VCPU) { 835 if (current->flags & PF_VCPU) {
818 if (KVM_GUEST_KERNEL_MODE(vcpu)) 836 if (KVM_GUEST_KERNEL_MODE(vcpu))
819 write_c0_entryhi(ASID_MASK(vcpu->arch. 837 write_c0_entryhi(vcpu->arch.
820 guest_kernel_asid[cpu])); 838 guest_kernel_asid[cpu] &
839 ASID_MASK);
821 else 840 else
822 write_c0_entryhi(ASID_MASK(vcpu->arch. 841 write_c0_entryhi(vcpu->arch.
823 guest_user_asid[cpu])); 842 guest_user_asid[cpu] &
843 ASID_MASK);
824 ehb(); 844 ehb();
825 } 845 }
826 } 846 }
@@ -879,7 +899,8 @@ uint32_t kvm_get_inst(uint32_t *opc, struct kvm_vcpu *vcpu)
879 kvm_mips_guest_tlb_lookup(vcpu, 899 kvm_mips_guest_tlb_lookup(vcpu,
880 ((unsigned long) opc & VPN2_MASK) 900 ((unsigned long) opc & VPN2_MASK)
881 | 901 |
882 ASID_MASK(kvm_read_c0_guest_entryhi(cop0))); 902 (kvm_read_c0_guest_entryhi
903 (cop0) & ASID_MASK));
883 if (index < 0) { 904 if (index < 0) {
884 kvm_err 905 kvm_err
885 ("%s: get_user_failed for %p, vcpu: %p, ASID: %#lx\n", 906 ("%s: get_user_failed for %p, vcpu: %p, ASID: %#lx\n",
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c
index 9861c8669fab..850821df924c 100644
--- a/arch/mips/lantiq/xway/gptu.c
+++ b/arch/mips/lantiq/xway/gptu.c
@@ -144,10 +144,6 @@ static int gptu_probe(struct platform_device *pdev)
144 } 144 }
145 145
146 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 146 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
147 if (!res) {
148 dev_err(&pdev->dev, "Failed to get resource\n");
149 return -ENOMEM;
150 }
151 147
152 /* remap gptu register range */ 148 /* remap gptu register range */
153 gptu_membase = devm_ioremap_resource(&pdev->dev, res); 149 gptu_membase = devm_ioremap_resource(&pdev->dev, res);
@@ -169,6 +165,8 @@ static int gptu_probe(struct platform_device *pdev)
169 if (((gptu_r32(GPTU_ID) >> 8) & 0xff) != GPTU_MAGIC) { 165 if (((gptu_r32(GPTU_ID) >> 8) & 0xff) != GPTU_MAGIC) {
170 dev_err(&pdev->dev, "Failed to find magic\n"); 166 dev_err(&pdev->dev, "Failed to find magic\n");
171 gptu_hwexit(); 167 gptu_hwexit();
168 clk_disable(clk);
169 clk_put(clk);
172 return -ENAVAIL; 170 return -ENAVAIL;
173 } 171 }
174 172
diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c
index 8a12d00908e0..32b9f21bfd85 100644
--- a/arch/mips/lib/dump_tlb.c
+++ b/arch/mips/lib/dump_tlb.c
@@ -11,7 +11,6 @@
11#include <asm/page.h> 11#include <asm/page.h>
12#include <asm/pgtable.h> 12#include <asm/pgtable.h>
13#include <asm/tlbdebug.h> 13#include <asm/tlbdebug.h>
14#include <asm/mmu_context.h>
15 14
16static inline const char *msk2str(unsigned int mask) 15static inline const char *msk2str(unsigned int mask)
17{ 16{
@@ -56,7 +55,7 @@ static void dump_tlb(int first, int last)
56 s_pagemask = read_c0_pagemask(); 55 s_pagemask = read_c0_pagemask();
57 s_entryhi = read_c0_entryhi(); 56 s_entryhi = read_c0_entryhi();
58 s_index = read_c0_index(); 57 s_index = read_c0_index();
59 asid = ASID_MASK(s_entryhi); 58 asid = s_entryhi & 0xff;
60 59
61 for (i = first; i <= last; i++) { 60 for (i = first; i <= last; i++) {
62 write_c0_index(i); 61 write_c0_index(i);
@@ -86,7 +85,7 @@ static void dump_tlb(int first, int last)
86 85
87 printk("va=%0*lx asid=%02lx\n", 86 printk("va=%0*lx asid=%02lx\n",
88 width, (entryhi & ~0x1fffUL), 87 width, (entryhi & ~0x1fffUL),
89 ASID_MASK(entryhi)); 88 entryhi & 0xff);
90 printk("\t[pa=%0*llx c=%d d=%d v=%d g=%d] ", 89 printk("\t[pa=%0*llx c=%d d=%d v=%d g=%d] ",
91 width, 90 width,
92 (entrylo0 << 6) & PAGE_MASK, c0, 91 (entrylo0 << 6) & PAGE_MASK, c0,
diff --git a/arch/mips/lib/r3k_dump_tlb.c b/arch/mips/lib/r3k_dump_tlb.c
index 8327698b9937..91615c2ef0cf 100644
--- a/arch/mips/lib/r3k_dump_tlb.c
+++ b/arch/mips/lib/r3k_dump_tlb.c
@@ -9,7 +9,6 @@
9#include <linux/mm.h> 9#include <linux/mm.h>
10 10
11#include <asm/mipsregs.h> 11#include <asm/mipsregs.h>
12#include <asm/mmu_context.h>
13#include <asm/page.h> 12#include <asm/page.h>
14#include <asm/pgtable.h> 13#include <asm/pgtable.h>
15#include <asm/tlbdebug.h> 14#include <asm/tlbdebug.h>
@@ -22,7 +21,7 @@ static void dump_tlb(int first, int last)
22 unsigned int asid; 21 unsigned int asid;
23 unsigned long entryhi, entrylo0; 22 unsigned long entryhi, entrylo0;
24 23
25 asid = ASID_MASK(read_c0_entryhi()); 24 asid = read_c0_entryhi() & 0xfc0;
26 25
27 for (i = first; i <= last; i++) { 26 for (i = first; i <= last; i++) {
28 write_c0_index(i<<8); 27 write_c0_index(i<<8);
@@ -36,7 +35,7 @@ static void dump_tlb(int first, int last)
36 35
37 /* Unused entries have a virtual address of KSEG0. */ 36 /* Unused entries have a virtual address of KSEG0. */
38 if ((entryhi & 0xffffe000) != 0x80000000 37 if ((entryhi & 0xffffe000) != 0x80000000
39 && (ASID_MASK(entryhi) == asid)) { 38 && (entryhi & 0xfc0) == asid) {
40 /* 39 /*
41 * Only print entries in use 40 * Only print entries in use
42 */ 41 */
@@ -45,7 +44,7 @@ static void dump_tlb(int first, int last)
45 printk("va=%08lx asid=%08lx" 44 printk("va=%08lx asid=%08lx"
46 " [pa=%06lx n=%d d=%d v=%d g=%d]", 45 " [pa=%06lx n=%d d=%d v=%d g=%d]",
47 (entryhi & 0xffffe000), 46 (entryhi & 0xffffe000),
48 ASID_MASK(entryhi), 47 entryhi & 0xfc0,
49 entrylo0 & PAGE_MASK, 48 entrylo0 & PAGE_MASK,
50 (entrylo0 & (1 << 11)) ? 1 : 0, 49 (entrylo0 & (1 << 11)) ? 1 : 0,
51 (entrylo0 & (1 << 10)) ? 1 : 0, 50 (entrylo0 & (1 << 10)) ? 1 : 0,
diff --git a/arch/mips/loongson/common/reset.c b/arch/mips/loongson/common/reset.c
index 35c8c6468494..65bfbb5d06f4 100644
--- a/arch/mips/loongson/common/reset.c
+++ b/arch/mips/loongson/common/reset.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/pm.h> 13#include <linux/pm.h>
14 14
15#include <asm/idle.h>
15#include <asm/reboot.h> 16#include <asm/reboot.h>
16 17
17#include <loongson.h> 18#include <loongson.h>
diff --git a/arch/mips/loongson1/common/reset.c b/arch/mips/loongson1/common/reset.c
index d4f610f9604a..547f34b69e4c 100644
--- a/arch/mips/loongson1/common/reset.c
+++ b/arch/mips/loongson1/common/reset.c
@@ -9,6 +9,7 @@
9 9
10#include <linux/io.h> 10#include <linux/io.h>
11#include <linux/pm.h> 11#include <linux/pm.h>
12#include <asm/idle.h>
12#include <asm/reboot.h> 13#include <asm/reboot.h>
13 14
14#include <loongson1.h> 15#include <loongson1.h>
diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
index 4a13c150f31b..a63d1ed0827f 100644
--- a/arch/mips/mm/tlb-r3k.c
+++ b/arch/mips/mm/tlb-r3k.c
@@ -51,7 +51,7 @@ void local_flush_tlb_all(void)
51#endif 51#endif
52 52
53 local_irq_save(flags); 53 local_irq_save(flags);
54 old_ctx = ASID_MASK(read_c0_entryhi()); 54 old_ctx = read_c0_entryhi() & ASID_MASK;
55 write_c0_entrylo0(0); 55 write_c0_entrylo0(0);
56 entry = r3k_have_wired_reg ? read_c0_wired() : 8; 56 entry = r3k_have_wired_reg ? read_c0_wired() : 8;
57 for (; entry < current_cpu_data.tlbsize; entry++) { 57 for (; entry < current_cpu_data.tlbsize; entry++) {
@@ -87,13 +87,13 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
87 87
88#ifdef DEBUG_TLB 88#ifdef DEBUG_TLB
89 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", 89 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]",
90 ASID_MASK(cpu_context(cpu, mm)), start, end); 90 cpu_context(cpu, mm) & ASID_MASK, start, end);
91#endif 91#endif
92 local_irq_save(flags); 92 local_irq_save(flags);
93 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 93 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
94 if (size <= current_cpu_data.tlbsize) { 94 if (size <= current_cpu_data.tlbsize) {
95 int oldpid = ASID_MASK(read_c0_entryhi()); 95 int oldpid = read_c0_entryhi() & ASID_MASK;
96 int newpid = ASID_MASK(cpu_context(cpu, mm)); 96 int newpid = cpu_context(cpu, mm) & ASID_MASK;
97 97
98 start &= PAGE_MASK; 98 start &= PAGE_MASK;
99 end += PAGE_SIZE - 1; 99 end += PAGE_SIZE - 1;
@@ -166,10 +166,10 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
166#ifdef DEBUG_TLB 166#ifdef DEBUG_TLB
167 printk("[tlbpage<%lu,0x%08lx>]", cpu_context(cpu, vma->vm_mm), page); 167 printk("[tlbpage<%lu,0x%08lx>]", cpu_context(cpu, vma->vm_mm), page);
168#endif 168#endif
169 newpid = ASID_MASK(cpu_context(cpu, vma->vm_mm)); 169 newpid = cpu_context(cpu, vma->vm_mm) & ASID_MASK;
170 page &= PAGE_MASK; 170 page &= PAGE_MASK;
171 local_irq_save(flags); 171 local_irq_save(flags);
172 oldpid = ASID_MASK(read_c0_entryhi()); 172 oldpid = read_c0_entryhi() & ASID_MASK;
173 write_c0_entryhi(page | newpid); 173 write_c0_entryhi(page | newpid);
174 BARRIER; 174 BARRIER;
175 tlb_probe(); 175 tlb_probe();
@@ -197,10 +197,10 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
197 if (current->active_mm != vma->vm_mm) 197 if (current->active_mm != vma->vm_mm)
198 return; 198 return;
199 199
200 pid = ASID_MASK(read_c0_entryhi()); 200 pid = read_c0_entryhi() & ASID_MASK;
201 201
202#ifdef DEBUG_TLB 202#ifdef DEBUG_TLB
203 if ((pid != ASID_MASK(cpu_context(cpu, vma->vm_mm))) || (cpu_context(cpu, vma->vm_mm) == 0)) { 203 if ((pid != (cpu_context(cpu, vma->vm_mm) & ASID_MASK)) || (cpu_context(cpu, vma->vm_mm) == 0)) {
204 printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%lu tlbpid=%d\n", 204 printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%lu tlbpid=%d\n",
205 (cpu_context(cpu, vma->vm_mm)), pid); 205 (cpu_context(cpu, vma->vm_mm)), pid);
206 } 206 }
@@ -241,7 +241,7 @@ void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
241 241
242 local_irq_save(flags); 242 local_irq_save(flags);
243 /* Save old context and create impossible VPN2 value */ 243 /* Save old context and create impossible VPN2 value */
244 old_ctx = ASID_MASK(read_c0_entryhi()); 244 old_ctx = read_c0_entryhi() & ASID_MASK;
245 old_pagemask = read_c0_pagemask(); 245 old_pagemask = read_c0_pagemask();
246 w = read_c0_wired(); 246 w = read_c0_wired();
247 write_c0_wired(w + 1); 247 write_c0_wired(w + 1);
@@ -264,7 +264,7 @@ void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
264#endif 264#endif
265 265
266 local_irq_save(flags); 266 local_irq_save(flags);
267 old_ctx = ASID_MASK(read_c0_entryhi()); 267 old_ctx = read_c0_entryhi() & ASID_MASK;
268 write_c0_entrylo0(entrylo0); 268 write_c0_entrylo0(entrylo0);
269 write_c0_entryhi(entryhi); 269 write_c0_entryhi(entryhi);
270 write_c0_index(wired); 270 write_c0_index(wired);
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 09653b290d53..c643de4c473a 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -287,7 +287,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
287 287
288 ENTER_CRITICAL(flags); 288 ENTER_CRITICAL(flags);
289 289
290 pid = ASID_MASK(read_c0_entryhi()); 290 pid = read_c0_entryhi() & ASID_MASK;
291 address &= (PAGE_MASK << 1); 291 address &= (PAGE_MASK << 1);
292 write_c0_entryhi(address | pid); 292 write_c0_entryhi(address | pid);
293 pgdp = pgd_offset(vma->vm_mm, address); 293 pgdp = pgd_offset(vma->vm_mm, address);
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c
index 122f9207f49e..91c2499f806a 100644
--- a/arch/mips/mm/tlb-r8k.c
+++ b/arch/mips/mm/tlb-r8k.c
@@ -195,7 +195,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
195 if (current->active_mm != vma->vm_mm) 195 if (current->active_mm != vma->vm_mm)
196 return; 196 return;
197 197
198 pid = ASID_MASK(read_c0_entryhi()); 198 pid = read_c0_entryhi() & ASID_MASK;
199 199
200 local_irq_save(flags); 200 local_irq_save(flags);
201 address &= PAGE_MASK; 201 address &= PAGE_MASK;
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 4d46d3787576..ce9818eef7d3 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -29,7 +29,6 @@
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/cache.h> 30#include <linux/cache.h>
31 31
32#include <asm/mmu_context.h>
33#include <asm/cacheflush.h> 32#include <asm/cacheflush.h>
34#include <asm/pgtable.h> 33#include <asm/pgtable.h>
35#include <asm/war.h> 34#include <asm/war.h>
@@ -306,78 +305,6 @@ static struct uasm_reloc relocs[128] __cpuinitdata;
306static int check_for_high_segbits __cpuinitdata; 305static int check_for_high_segbits __cpuinitdata;
307#endif 306#endif
308 307
309static void __cpuinit insn_fixup(unsigned int **start, unsigned int **stop,
310 unsigned int i_const)
311{
312 unsigned int **p;
313
314 for (p = start; p < stop; p++) {
315#ifndef CONFIG_CPU_MICROMIPS
316 unsigned int *ip;
317
318 ip = *p;
319 *ip = (*ip & 0xffff0000) | i_const;
320#else
321 unsigned short *ip;
322
323 ip = ((unsigned short *)((unsigned int)*p - 1));
324 if ((*ip & 0xf000) == 0x4000) {
325 *ip &= 0xfff1;
326 *ip |= (i_const << 1);
327 } else if ((*ip & 0xf000) == 0x6000) {
328 *ip &= 0xfff1;
329 *ip |= ((i_const >> 2) << 1);
330 } else {
331 ip++;
332 *ip = i_const;
333 }
334#endif
335 local_flush_icache_range((unsigned long)ip,
336 (unsigned long)ip + sizeof(*ip));
337 }
338}
339
340#define asid_insn_fixup(section, const) \
341do { \
342 extern unsigned int *__start_ ## section; \
343 extern unsigned int *__stop_ ## section; \
344 insn_fixup(&__start_ ## section, &__stop_ ## section, const); \
345} while(0)
346
347/*
348 * Caller is assumed to flush the caches before the first context switch.
349 */
350static void __cpuinit setup_asid(unsigned int inc, unsigned int mask,
351 unsigned int version_mask,
352 unsigned int first_version)
353{
354 extern asmlinkage void handle_ri_rdhwr_vivt(void);
355 unsigned long *vivt_exc;
356
357#ifdef CONFIG_CPU_MICROMIPS
358 /*
359 * Worst case optimised microMIPS addiu instructions support
360 * only a 3-bit immediate value.
361 */
362 if(inc > 7)
363 panic("Invalid ASID increment value!");
364#endif
365 asid_insn_fixup(__asid_inc, inc);
366 asid_insn_fixup(__asid_mask, mask);
367 asid_insn_fixup(__asid_version_mask, version_mask);
368 asid_insn_fixup(__asid_first_version, first_version);
369
370 /* Patch up the 'handle_ri_rdhwr_vivt' handler. */
371 vivt_exc = (unsigned long *) &handle_ri_rdhwr_vivt;
372#ifdef CONFIG_CPU_MICROMIPS
373 vivt_exc = (unsigned long *)((unsigned long) vivt_exc - 1);
374#endif
375 vivt_exc++;
376 *vivt_exc = (*vivt_exc & ~mask) | mask;
377
378 current_cpu_data.asid_cache = first_version;
379}
380
381static int check_for_high_segbits __cpuinitdata; 308static int check_for_high_segbits __cpuinitdata;
382 309
383static unsigned int kscratch_used_mask __cpuinitdata; 310static unsigned int kscratch_used_mask __cpuinitdata;
@@ -2256,7 +2183,6 @@ void __cpuinit build_tlb_refill_handler(void)
2256 case CPU_TX3922: 2183 case CPU_TX3922:
2257 case CPU_TX3927: 2184 case CPU_TX3927:
2258#ifndef CONFIG_MIPS_PGD_C0_CONTEXT 2185#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
2259 setup_asid(0x40, 0xfc0, 0xf000, ASID_FIRST_VERSION_R3000);
2260 if (cpu_has_local_ebase) 2186 if (cpu_has_local_ebase)
2261 build_r3000_tlb_refill_handler(); 2187 build_r3000_tlb_refill_handler();
2262 if (!run_once) { 2188 if (!run_once) {
@@ -2282,11 +2208,6 @@ void __cpuinit build_tlb_refill_handler(void)
2282 break; 2208 break;
2283 2209
2284 default: 2210 default:
2285#ifndef CONFIG_MIPS_MT_SMTC
2286 setup_asid(0x1, 0xff, 0xff00, ASID_FIRST_VERSION_R4000);
2287#else
2288 setup_asid(0x1, smtc_asid_mask, 0xff00, ASID_FIRST_VERSION_R4000);
2289#endif
2290 if (!run_once) { 2211 if (!run_once) {
2291 scratch_reg = allocate_kscratch(); 2212 scratch_reg = allocate_kscratch();
2292#ifdef CONFIG_MIPS_PGD_C0_CONTEXT 2213#ifdef CONFIG_MIPS_PGD_C0_CONTEXT
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c
index af319143b591..eaa99d28cb8e 100644
--- a/arch/mips/netlogic/xlp/setup.c
+++ b/arch/mips/netlogic/xlp/setup.c
@@ -37,6 +37,7 @@
37#include <linux/pm.h> 37#include <linux/pm.h>
38#include <linux/bootmem.h> 38#include <linux/bootmem.h>
39 39
40#include <asm/idle.h>
40#include <asm/reboot.h> 41#include <asm/reboot.h>
41#include <asm/time.h> 42#include <asm/time.h>
42#include <asm/bootinfo.h> 43#include <asm/bootinfo.h>
diff --git a/arch/mips/netlogic/xlr/setup.c b/arch/mips/netlogic/xlr/setup.c
index e3e094100e3e..89c8c1066632 100644
--- a/arch/mips/netlogic/xlr/setup.c
+++ b/arch/mips/netlogic/xlr/setup.c
@@ -36,6 +36,7 @@
36#include <linux/serial_8250.h> 36#include <linux/serial_8250.h>
37#include <linux/pm.h> 37#include <linux/pm.h>
38 38
39#include <asm/idle.h>
39#include <asm/reboot.h> 40#include <asm/reboot.h>
40#include <asm/time.h> 41#include <asm/time.h>
41#include <asm/bootinfo.h> 42#include <asm/bootinfo.h>
diff --git a/arch/mips/pmcs-msp71xx/msp_prom.c b/arch/mips/pmcs-msp71xx/msp_prom.c
index 0edb89a63516..1c9897531660 100644
--- a/arch/mips/pmcs-msp71xx/msp_prom.c
+++ b/arch/mips/pmcs-msp71xx/msp_prom.c
@@ -83,7 +83,7 @@ static inline unsigned char str2hexnum(unsigned char c)
83 return 0; /* foo */ 83 return 0; /* foo */
84} 84}
85 85
86static inline int str2eaddr(unsigned char *ea, unsigned char *str) 86int str2eaddr(unsigned char *ea, unsigned char *str)
87{ 87{
88 int index = 0; 88 int index = 0;
89 unsigned char num = 0; 89 unsigned char num = 0;
diff --git a/arch/mips/pmcs-msp71xx/msp_setup.c b/arch/mips/pmcs-msp71xx/msp_setup.c
index 1651cfdbfe7b..396b2967ad85 100644
--- a/arch/mips/pmcs-msp71xx/msp_setup.c
+++ b/arch/mips/pmcs-msp71xx/msp_setup.c
@@ -12,6 +12,7 @@
12 12
13#include <asm/bootinfo.h> 13#include <asm/bootinfo.h>
14#include <asm/cacheflush.h> 14#include <asm/cacheflush.h>
15#include <asm/idle.h>
15#include <asm/r4kcache.h> 16#include <asm/r4kcache.h>
16#include <asm/reboot.h> 17#include <asm/reboot.h>
17#include <asm/smp-ops.h> 18#include <asm/smp-ops.h>
diff --git a/arch/mips/ralink/dts/rt3050.dtsi b/arch/mips/ralink/dts/rt3050.dtsi
index ef7da1e227e6..e3203d414fee 100644
--- a/arch/mips/ralink/dts/rt3050.dtsi
+++ b/arch/mips/ralink/dts/rt3050.dtsi
@@ -55,4 +55,14 @@
55 reg-shift = <2>; 55 reg-shift = <2>;
56 }; 56 };
57 }; 57 };
58
59 usb@101c0000 {
60 compatible = "ralink,rt3050-usb", "snps,dwc2";
61 reg = <0x101c0000 40000>;
62
63 interrupt-parent = <&intc>;
64 interrupts = <18>;
65
66 status = "disabled";
67 };
58}; 68};
diff --git a/arch/mips/ralink/dts/rt3052_eval.dts b/arch/mips/ralink/dts/rt3052_eval.dts
index c18c9a84f4c4..0ac73ea28198 100644
--- a/arch/mips/ralink/dts/rt3052_eval.dts
+++ b/arch/mips/ralink/dts/rt3052_eval.dts
@@ -43,4 +43,8 @@
43 reg = <0x50000 0x7b0000>; 43 reg = <0x50000 0x7b0000>;
44 }; 44 };
45 }; 45 };
46
47 usb@101c0000 {
48 status = "ok";
49 };
46}; 50};
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 5364aabc2102..681e7f86c080 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -26,6 +26,7 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/irq.h> 27#include <linux/irq.h>
28#include <asm/bootinfo.h> 28#include <asm/bootinfo.h>
29#include <asm/idle.h>
29#include <asm/time.h> 30#include <asm/time.h>
30#include <asm/reboot.h> 31#include <asm/reboot.h>
31#include <asm/r4kcache.h> 32#include <asm/r4kcache.h>
diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c
index 70a3f90131d8..d7f755833c3f 100644
--- a/arch/mips/vr41xx/common/pmu.c
+++ b/arch/mips/vr41xx/common/pmu.c
@@ -27,6 +27,7 @@
27 27
28#include <asm/cacheflush.h> 28#include <asm/cacheflush.h>
29#include <asm/cpu.h> 29#include <asm/cpu.h>
30#include <asm/idle.h>
30#include <asm/io.h> 31#include <asm/io.h>
31#include <asm/processor.h> 32#include <asm/processor.h>
32#include <asm/reboot.h> 33#include <asm/reboot.h>
diff --git a/arch/mips/wrppmc/reset.c b/arch/mips/wrppmc/reset.c
index cc5474b24f06..80beb188ed47 100644
--- a/arch/mips/wrppmc/reset.c
+++ b/arch/mips/wrppmc/reset.c
@@ -9,6 +9,7 @@
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10 10
11#include <asm/cacheflush.h> 11#include <asm/cacheflush.h>
12#include <asm/idle.h>
12#include <asm/mipsregs.h> 13#include <asm/mipsregs.h>
13#include <asm/processor.h> 14#include <asm/processor.h>
14 15
diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
index 8137c25c4e15..6f31cc0f1a87 100644
--- a/arch/mn10300/include/asm/pci.h
+++ b/arch/mn10300/include/asm/pci.h
@@ -103,4 +103,6 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
103 return channel ? 15 : 14; 103 return channel ? 15 : 14;
104} 104}
105 105
106#include <asm-generic/pci_iomap.h>
107
106#endif /* _ASM_PCI_H */ 108#endif /* _ASM_PCI_H */
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index 68fcab8f8f6f..222152a3f751 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -60,6 +60,7 @@ ENTRY(ret_from_kernel_thread)
60 mov (REG_D0,fp),d0 60 mov (REG_D0,fp),d0
61 mov (REG_A0,fp),a0 61 mov (REG_A0,fp),a0
62 calls (a0) 62 calls (a0)
63 GET_THREAD_INFO a2 # A2 must be set on return from sys_exit()
63 clr d0 64 clr d0
64 mov d0,(REG_D0,fp) 65 mov d0,(REG_D0,fp)
65 jmp syscall_exit 66 jmp syscall_exit
@@ -107,10 +108,10 @@ syscall_exit_work:
107 and EPSW_nSL,d0 108 and EPSW_nSL,d0
108 beq resume_kernel # returning to supervisor mode 109 beq resume_kernel # returning to supervisor mode
109 110
110 btst _TIF_SYSCALL_TRACE,d2
111 beq work_pending
112 LOCAL_IRQ_ENABLE # could let syscall_trace_exit() call 111 LOCAL_IRQ_ENABLE # could let syscall_trace_exit() call
113 # schedule() instead 112 # schedule() instead
113 btst _TIF_SYSCALL_TRACE,d2
114 beq work_pending
114 mov fp,d0 115 mov fp,d0
115 call syscall_trace_exit[],0 # do_syscall_trace(regs) 116 call syscall_trace_exit[],0 # do_syscall_trace(regs)
116 jmp resume_userspace 117 jmp resume_userspace
@@ -123,6 +124,7 @@ work_pending:
123work_resched: 124work_resched:
124 call schedule[],0 125 call schedule[],0
125 126
127resume_userspace:
126 # make sure we don't miss an interrupt setting need_resched or 128 # make sure we don't miss an interrupt setting need_resched or
127 # sigpending between sampling and the rti 129 # sigpending between sampling and the rti
128 LOCAL_IRQ_DISABLE 130 LOCAL_IRQ_DISABLE
@@ -131,6 +133,8 @@ work_resched:
131 mov (TI_flags,a2),d2 133 mov (TI_flags,a2),d2
132 btst _TIF_WORK_MASK,d2 134 btst _TIF_WORK_MASK,d2
133 beq restore_all 135 beq restore_all
136
137 LOCAL_IRQ_ENABLE
134 btst _TIF_NEED_RESCHED,d2 138 btst _TIF_NEED_RESCHED,d2
135 bne work_resched 139 bne work_resched
136 140
@@ -169,17 +173,6 @@ ret_from_intr:
169 and EPSW_nSL,d0 173 and EPSW_nSL,d0
170 beq resume_kernel # returning to supervisor mode 174 beq resume_kernel # returning to supervisor mode
171 175
172ENTRY(resume_userspace)
173 # make sure we don't miss an interrupt setting need_resched or
174 # sigpending between sampling and the rti
175 LOCAL_IRQ_DISABLE
176
177 # is there any work to be done on int/exception return?
178 mov (TI_flags,a2),d2
179 btst _TIF_WORK_MASK,d2
180 bne work_pending
181 jmp restore_all
182
183#ifdef CONFIG_PREEMPT 176#ifdef CONFIG_PREEMPT
184ENTRY(resume_kernel) 177ENTRY(resume_kernel)
185 LOCAL_IRQ_DISABLE 178 LOCAL_IRQ_DISABLE
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index 1adcf024bb9a..e37fac0461f3 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -19,6 +19,7 @@
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/irq.h> 20#include <linux/irq.h>
21#include <asm/io.h> 21#include <asm/io.h>
22#include <asm/irq.h>
22#include "pci-asb2305.h" 23#include "pci-asb2305.h"
23 24
24unsigned int pci_probe = 1; 25unsigned int pci_probe = 1;
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index cad060f288cf..6507dabdd5dd 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -245,7 +245,7 @@ config SMP
245 245
246config IRQSTACKS 246config IRQSTACKS
247 bool "Use separate kernel stacks when processing interrupts" 247 bool "Use separate kernel stacks when processing interrupts"
248 default n 248 default y
249 help 249 help
250 If you say Y here the kernel will use separate kernel stacks 250 If you say Y here the kernel will use separate kernel stacks
251 for handling hard and soft interrupts. This can help avoid 251 for handling hard and soft interrupts. This can help avoid
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index 2f967cc6649e..96ec3982be8d 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -23,24 +23,21 @@ NM = sh $(srctree)/arch/parisc/nm
23CHECKFLAGS += -D__hppa__=1 23CHECKFLAGS += -D__hppa__=1
24LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) 24LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
25 25
26MACHINE := $(shell uname -m)
27NATIVE := $(if $(filter parisc%,$(MACHINE)),1,0)
28
29ifdef CONFIG_64BIT 26ifdef CONFIG_64BIT
30UTS_MACHINE := parisc64 27UTS_MACHINE := parisc64
31CHECKFLAGS += -D__LP64__=1 -m64 28CHECKFLAGS += -D__LP64__=1 -m64
32WIDTH := 64 29CC_ARCHES = hppa64
33else # 32-bit 30else # 32-bit
34WIDTH := 31CC_ARCHES = hppa hppa2.0 hppa1.1
35endif 32endif
36 33
37# attempt to help out folks who are cross-compiling 34ifneq ($(SUBARCH),$(UTS_MACHINE))
38ifeq ($(NATIVE),1) 35 ifeq ($(CROSS_COMPILE),)
39CROSS_COMPILE := hppa$(WIDTH)-linux- 36 CC_SUFFIXES = linux linux-gnu unknown-linux-gnu
40else 37 CROSS_COMPILE := $(call cc-cross-prefix, \
41 ifeq ($(CROSS_COMPILE),) 38 $(foreach a,$(CC_ARCHES), \
42 CROSS_COMPILE := hppa$(WIDTH)-linux-gnu- 39 $(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
43 endif 40 endif
44endif 41endif
45 42
46OBJCOPY_FLAGS =-O binary -R .note -R .comment -S 43OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
@@ -69,7 +66,7 @@ KBUILD_CFLAGS_KERNEL += -mlong-calls
69endif 66endif
70 67
71# select which processor to optimise for 68# select which processor to optimise for
72cflags-$(CONFIG_PA7100) += -march=1.1 -mschedule=7100 69cflags-$(CONFIG_PA7000) += -march=1.1 -mschedule=7100
73cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200 70cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200
74cflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC 71cflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC
75cflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300 72cflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300
diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h
index 89fb40005e3f..0da848232344 100644
--- a/arch/parisc/include/asm/assembly.h
+++ b/arch/parisc/include/asm/assembly.h
@@ -438,7 +438,6 @@
438 SAVE_SP (%sr4, PT_SR4 (\regs)) 438 SAVE_SP (%sr4, PT_SR4 (\regs))
439 SAVE_SP (%sr5, PT_SR5 (\regs)) 439 SAVE_SP (%sr5, PT_SR5 (\regs))
440 SAVE_SP (%sr6, PT_SR6 (\regs)) 440 SAVE_SP (%sr6, PT_SR6 (\regs))
441 SAVE_SP (%sr7, PT_SR7 (\regs))
442 441
443 SAVE_CR (%cr17, PT_IASQ0(\regs)) 442 SAVE_CR (%cr17, PT_IASQ0(\regs))
444 mtctl %r0, %cr17 443 mtctl %r0, %cr17
diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h
index 12373c4dabab..241c34518465 100644
--- a/arch/parisc/include/asm/hardirq.h
+++ b/arch/parisc/include/asm/hardirq.h
@@ -11,15 +11,20 @@
11#include <linux/threads.h> 11#include <linux/threads.h>
12#include <linux/irq.h> 12#include <linux/irq.h>
13 13
14#ifdef CONFIG_IRQSTACKS
15#define __ARCH_HAS_DO_SOFTIRQ
16#endif
17
14typedef struct { 18typedef struct {
15 unsigned int __softirq_pending; 19 unsigned int __softirq_pending;
16#ifdef CONFIG_DEBUG_STACKOVERFLOW
17 unsigned int kernel_stack_usage; 20 unsigned int kernel_stack_usage;
18#endif 21 unsigned int irq_stack_usage;
19#ifdef CONFIG_SMP 22#ifdef CONFIG_SMP
20 unsigned int irq_resched_count; 23 unsigned int irq_resched_count;
21 unsigned int irq_call_count; 24 unsigned int irq_call_count;
22#endif 25#endif
26 unsigned int irq_unaligned_count;
27 unsigned int irq_fpassist_count;
23 unsigned int irq_tlb_count; 28 unsigned int irq_tlb_count;
24} ____cacheline_aligned irq_cpustat_t; 29} ____cacheline_aligned irq_cpustat_t;
25 30
@@ -28,6 +33,7 @@ DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
28#define __ARCH_IRQ_STAT 33#define __ARCH_IRQ_STAT
29#define __IRQ_STAT(cpu, member) (irq_stat[cpu].member) 34#define __IRQ_STAT(cpu, member) (irq_stat[cpu].member)
30#define inc_irq_stat(member) this_cpu_inc(irq_stat.member) 35#define inc_irq_stat(member) this_cpu_inc(irq_stat.member)
36#define __inc_irq_stat(member) __this_cpu_inc(irq_stat.member)
31#define local_softirq_pending() this_cpu_read(irq_stat.__softirq_pending) 37#define local_softirq_pending() this_cpu_read(irq_stat.__softirq_pending)
32 38
33#define __ARCH_SET_SOFTIRQ_PENDING 39#define __ARCH_SET_SOFTIRQ_PENDING
diff --git a/arch/parisc/include/asm/mmzone.h b/arch/parisc/include/asm/mmzone.h
index 0e625ab9aaec..cc50d33b7b88 100644
--- a/arch/parisc/include/asm/mmzone.h
+++ b/arch/parisc/include/asm/mmzone.h
@@ -39,17 +39,14 @@ extern unsigned char pfnnid_map[PFNNID_MAP_MAX];
39static inline int pfn_to_nid(unsigned long pfn) 39static inline int pfn_to_nid(unsigned long pfn)
40{ 40{
41 unsigned int i; 41 unsigned int i;
42 unsigned char r;
43 42
44 if (unlikely(pfn_is_io(pfn))) 43 if (unlikely(pfn_is_io(pfn)))
45 return 0; 44 return 0;
46 45
47 i = pfn >> PFNNID_SHIFT; 46 i = pfn >> PFNNID_SHIFT;
48 BUG_ON(i >= ARRAY_SIZE(pfnnid_map)); 47 BUG_ON(i >= ARRAY_SIZE(pfnnid_map));
49 r = pfnnid_map[i];
50 BUG_ON(r == 0xff);
51 48
52 return (int)r; 49 return (int)pfnnid_map[i];
53} 50}
54 51
55static inline int pfn_valid(int pfn) 52static inline int pfn_valid(int pfn)
diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h
index 064015547d1e..cc2290a3cace 100644
--- a/arch/parisc/include/asm/processor.h
+++ b/arch/parisc/include/asm/processor.h
@@ -17,7 +17,6 @@
17#include <asm/ptrace.h> 17#include <asm/ptrace.h>
18#include <asm/types.h> 18#include <asm/types.h>
19#include <asm/percpu.h> 19#include <asm/percpu.h>
20
21#endif /* __ASSEMBLY__ */ 20#endif /* __ASSEMBLY__ */
22 21
23/* 22/*
@@ -59,23 +58,6 @@
59#ifndef __ASSEMBLY__ 58#ifndef __ASSEMBLY__
60 59
61/* 60/*
62 * IRQ STACK - used for irq handler
63 */
64#ifdef __KERNEL__
65
66#define IRQ_STACK_SIZE (4096 << 2) /* 16k irq stack size */
67
68union irq_stack_union {
69 unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)];
70};
71
72DECLARE_PER_CPU(union irq_stack_union, irq_stack_union);
73
74void call_on_stack(unsigned long p1, void *func, unsigned long new_stack);
75
76#endif /* __KERNEL__ */
77
78/*
79 * Data detected about CPUs at boot time which is the same for all CPU's. 61 * Data detected about CPUs at boot time which is the same for all CPU's.
80 * HP boxes are SMP - ie identical processors. 62 * HP boxes are SMP - ie identical processors.
81 * 63 *
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c
index 5709c5e59be8..14285caec71a 100644
--- a/arch/parisc/kernel/drivers.c
+++ b/arch/parisc/kernel/drivers.c
@@ -394,7 +394,7 @@ EXPORT_SYMBOL(print_pci_hwpath);
394static void setup_bus_id(struct parisc_device *padev) 394static void setup_bus_id(struct parisc_device *padev)
395{ 395{
396 struct hardware_path path; 396 struct hardware_path path;
397 char name[20]; 397 char name[28];
398 char *output = name; 398 char *output = name;
399 int i; 399 int i;
400 400
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 4bb96ad9b0b1..e8f07dd28401 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -65,15 +65,11 @@
65 rsm PSW_SM_I, %r0 /* barrier for "Relied upon Translation */ 65 rsm PSW_SM_I, %r0 /* barrier for "Relied upon Translation */
66 mtsp %r0, %sr4 66 mtsp %r0, %sr4
67 mtsp %r0, %sr5 67 mtsp %r0, %sr5
68 mfsp %sr7, %r1 68 mtsp %r0, %sr6
69 or,= %r0,%r1,%r0 /* Only save sr7 in sr3 if sr7 != 0 */
70 mtsp %r1, %sr3
71 tovirt_r1 %r29 69 tovirt_r1 %r29
72 load32 KERNEL_PSW, %r1 70 load32 KERNEL_PSW, %r1
73 71
74 rsm PSW_SM_QUIET,%r0 /* second "heavy weight" ctl op */ 72 rsm PSW_SM_QUIET,%r0 /* second "heavy weight" ctl op */
75 mtsp %r0, %sr6
76 mtsp %r0, %sr7
77 mtctl %r0, %cr17 /* Clear IIASQ tail */ 73 mtctl %r0, %cr17 /* Clear IIASQ tail */
78 mtctl %r0, %cr17 /* Clear IIASQ head */ 74 mtctl %r0, %cr17 /* Clear IIASQ head */
79 mtctl %r1, %ipsw 75 mtctl %r1, %ipsw
@@ -119,17 +115,20 @@
119 115
120 /* we save the registers in the task struct */ 116 /* we save the registers in the task struct */
121 117
118 copy %r30, %r17
122 mfctl %cr30, %r1 119 mfctl %cr30, %r1
120 ldo THREAD_SZ_ALGN(%r1), %r30
121 mtsp %r0,%sr7
122 mtsp %r16,%sr3
123 tophys %r1,%r9 123 tophys %r1,%r9
124 LDREG TI_TASK(%r9), %r1 /* thread_info -> task_struct */ 124 LDREG TI_TASK(%r9), %r1 /* thread_info -> task_struct */
125 tophys %r1,%r9 125 tophys %r1,%r9
126 ldo TASK_REGS(%r9),%r9 126 ldo TASK_REGS(%r9),%r9
127 STREG %r30, PT_GR30(%r9) 127 STREG %r17,PT_GR30(%r9)
128 STREG %r29,PT_GR29(%r9) 128 STREG %r29,PT_GR29(%r9)
129 STREG %r26,PT_GR26(%r9) 129 STREG %r26,PT_GR26(%r9)
130 STREG %r16,PT_SR7(%r9)
130 copy %r9,%r29 131 copy %r9,%r29
131 mfctl %cr30, %r1
132 ldo THREAD_SZ_ALGN(%r1), %r30
133 .endm 132 .endm
134 133
135 .macro get_stack_use_r30 134 .macro get_stack_use_r30
@@ -137,10 +136,12 @@
137 /* we put a struct pt_regs on the stack and save the registers there */ 136 /* we put a struct pt_regs on the stack and save the registers there */
138 137
139 tophys %r30,%r9 138 tophys %r30,%r9
140 STREG %r30,PT_GR30(%r9) 139 copy %r30,%r1
141 ldo PT_SZ_ALGN(%r30),%r30 140 ldo PT_SZ_ALGN(%r30),%r30
141 STREG %r1,PT_GR30(%r9)
142 STREG %r29,PT_GR29(%r9) 142 STREG %r29,PT_GR29(%r9)
143 STREG %r26,PT_GR26(%r9) 143 STREG %r26,PT_GR26(%r9)
144 STREG %r16,PT_SR7(%r9)
144 copy %r9,%r29 145 copy %r9,%r29
145 .endm 146 .endm
146 147
@@ -452,9 +453,41 @@
452 L2_ptep \pgd,\pte,\index,\va,\fault 453 L2_ptep \pgd,\pte,\index,\va,\fault
453 .endm 454 .endm
454 455
456 /* Acquire pa_dbit_lock lock. */
457 .macro dbit_lock spc,tmp,tmp1
458#ifdef CONFIG_SMP
459 cmpib,COND(=),n 0,\spc,2f
460 load32 PA(pa_dbit_lock),\tmp
4611: LDCW 0(\tmp),\tmp1
462 cmpib,COND(=) 0,\tmp1,1b
463 nop
4642:
465#endif
466 .endm
467
468 /* Release pa_dbit_lock lock without reloading lock address. */
469 .macro dbit_unlock0 spc,tmp
470#ifdef CONFIG_SMP
471 or,COND(=) %r0,\spc,%r0
472 stw \spc,0(\tmp)
473#endif
474 .endm
475
476 /* Release pa_dbit_lock lock. */
477 .macro dbit_unlock1 spc,tmp
478#ifdef CONFIG_SMP
479 load32 PA(pa_dbit_lock),\tmp
480 dbit_unlock0 \spc,\tmp
481#endif
482 .endm
483
455 /* Set the _PAGE_ACCESSED bit of the PTE. Be clever and 484 /* Set the _PAGE_ACCESSED bit of the PTE. Be clever and
456 * don't needlessly dirty the cache line if it was already set */ 485 * don't needlessly dirty the cache line if it was already set */
457 .macro update_ptep ptep,pte,tmp,tmp1 486 .macro update_ptep spc,ptep,pte,tmp,tmp1
487#ifdef CONFIG_SMP
488 or,COND(=) %r0,\spc,%r0
489 LDREG 0(\ptep),\pte
490#endif
458 ldi _PAGE_ACCESSED,\tmp1 491 ldi _PAGE_ACCESSED,\tmp1
459 or \tmp1,\pte,\tmp 492 or \tmp1,\pte,\tmp
460 and,COND(<>) \tmp1,\pte,%r0 493 and,COND(<>) \tmp1,\pte,%r0
@@ -463,7 +496,11 @@
463 496
464 /* Set the dirty bit (and accessed bit). No need to be 497 /* Set the dirty bit (and accessed bit). No need to be
465 * clever, this is only used from the dirty fault */ 498 * clever, this is only used from the dirty fault */
466 .macro update_dirty ptep,pte,tmp 499 .macro update_dirty spc,ptep,pte,tmp
500#ifdef CONFIG_SMP
501 or,COND(=) %r0,\spc,%r0
502 LDREG 0(\ptep),\pte
503#endif
467 ldi _PAGE_ACCESSED|_PAGE_DIRTY,\tmp 504 ldi _PAGE_ACCESSED|_PAGE_DIRTY,\tmp
468 or \tmp,\pte,\pte 505 or \tmp,\pte,\pte
469 STREG \pte,0(\ptep) 506 STREG \pte,0(\ptep)
@@ -1111,11 +1148,13 @@ dtlb_miss_20w:
1111 1148
1112 L3_ptep ptp,pte,t0,va,dtlb_check_alias_20w 1149 L3_ptep ptp,pte,t0,va,dtlb_check_alias_20w
1113 1150
1114 update_ptep ptp,pte,t0,t1 1151 dbit_lock spc,t0,t1
1152 update_ptep spc,ptp,pte,t0,t1
1115 1153
1116 make_insert_tlb spc,pte,prot 1154 make_insert_tlb spc,pte,prot
1117 1155
1118 idtlbt pte,prot 1156 idtlbt pte,prot
1157 dbit_unlock1 spc,t0
1119 1158
1120 rfir 1159 rfir
1121 nop 1160 nop
@@ -1135,11 +1174,13 @@ nadtlb_miss_20w:
1135 1174
1136 L3_ptep ptp,pte,t0,va,nadtlb_check_alias_20w 1175 L3_ptep ptp,pte,t0,va,nadtlb_check_alias_20w
1137 1176
1138 update_ptep ptp,pte,t0,t1 1177 dbit_lock spc,t0,t1
1178 update_ptep spc,ptp,pte,t0,t1
1139 1179
1140 make_insert_tlb spc,pte,prot 1180 make_insert_tlb spc,pte,prot
1141 1181
1142 idtlbt pte,prot 1182 idtlbt pte,prot
1183 dbit_unlock1 spc,t0
1143 1184
1144 rfir 1185 rfir
1145 nop 1186 nop
@@ -1161,7 +1202,8 @@ dtlb_miss_11:
1161 1202
1162 L2_ptep ptp,pte,t0,va,dtlb_check_alias_11 1203 L2_ptep ptp,pte,t0,va,dtlb_check_alias_11
1163 1204
1164 update_ptep ptp,pte,t0,t1 1205 dbit_lock spc,t0,t1
1206 update_ptep spc,ptp,pte,t0,t1
1165 1207
1166 make_insert_tlb_11 spc,pte,prot 1208 make_insert_tlb_11 spc,pte,prot
1167 1209
@@ -1172,6 +1214,7 @@ dtlb_miss_11:
1172 idtlbp prot,(%sr1,va) 1214 idtlbp prot,(%sr1,va)
1173 1215
1174 mtsp t0, %sr1 /* Restore sr1 */ 1216 mtsp t0, %sr1 /* Restore sr1 */
1217 dbit_unlock1 spc,t0
1175 1218
1176 rfir 1219 rfir
1177 nop 1220 nop
@@ -1192,7 +1235,8 @@ nadtlb_miss_11:
1192 1235
1193 L2_ptep ptp,pte,t0,va,nadtlb_check_alias_11 1236 L2_ptep ptp,pte,t0,va,nadtlb_check_alias_11
1194 1237
1195 update_ptep ptp,pte,t0,t1 1238 dbit_lock spc,t0,t1
1239 update_ptep spc,ptp,pte,t0,t1
1196 1240
1197 make_insert_tlb_11 spc,pte,prot 1241 make_insert_tlb_11 spc,pte,prot
1198 1242
@@ -1204,6 +1248,7 @@ nadtlb_miss_11:
1204 idtlbp prot,(%sr1,va) 1248 idtlbp prot,(%sr1,va)
1205 1249
1206 mtsp t0, %sr1 /* Restore sr1 */ 1250 mtsp t0, %sr1 /* Restore sr1 */
1251 dbit_unlock1 spc,t0
1207 1252
1208 rfir 1253 rfir
1209 nop 1254 nop
@@ -1224,13 +1269,15 @@ dtlb_miss_20:
1224 1269
1225 L2_ptep ptp,pte,t0,va,dtlb_check_alias_20 1270 L2_ptep ptp,pte,t0,va,dtlb_check_alias_20
1226 1271
1227 update_ptep ptp,pte,t0,t1 1272 dbit_lock spc,t0,t1
1273 update_ptep spc,ptp,pte,t0,t1
1228 1274
1229 make_insert_tlb spc,pte,prot 1275 make_insert_tlb spc,pte,prot
1230 1276
1231 f_extend pte,t0 1277 f_extend pte,t0
1232 1278
1233 idtlbt pte,prot 1279 idtlbt pte,prot
1280 dbit_unlock1 spc,t0
1234 1281
1235 rfir 1282 rfir
1236 nop 1283 nop
@@ -1250,13 +1297,15 @@ nadtlb_miss_20:
1250 1297
1251 L2_ptep ptp,pte,t0,va,nadtlb_check_alias_20 1298 L2_ptep ptp,pte,t0,va,nadtlb_check_alias_20
1252 1299
1253 update_ptep ptp,pte,t0,t1 1300 dbit_lock spc,t0,t1
1301 update_ptep spc,ptp,pte,t0,t1
1254 1302
1255 make_insert_tlb spc,pte,prot 1303 make_insert_tlb spc,pte,prot
1256 1304
1257 f_extend pte,t0 1305 f_extend pte,t0
1258 1306
1259 idtlbt pte,prot 1307 idtlbt pte,prot
1308 dbit_unlock1 spc,t0
1260 1309
1261 rfir 1310 rfir
1262 nop 1311 nop
@@ -1357,11 +1406,13 @@ itlb_miss_20w:
1357 1406
1358 L3_ptep ptp,pte,t0,va,itlb_fault 1407 L3_ptep ptp,pte,t0,va,itlb_fault
1359 1408
1360 update_ptep ptp,pte,t0,t1 1409 dbit_lock spc,t0,t1
1410 update_ptep spc,ptp,pte,t0,t1
1361 1411
1362 make_insert_tlb spc,pte,prot 1412 make_insert_tlb spc,pte,prot
1363 1413
1364 iitlbt pte,prot 1414 iitlbt pte,prot
1415 dbit_unlock1 spc,t0
1365 1416
1366 rfir 1417 rfir
1367 nop 1418 nop
@@ -1379,11 +1430,13 @@ naitlb_miss_20w:
1379 1430
1380 L3_ptep ptp,pte,t0,va,naitlb_check_alias_20w 1431 L3_ptep ptp,pte,t0,va,naitlb_check_alias_20w
1381 1432
1382 update_ptep ptp,pte,t0,t1 1433 dbit_lock spc,t0,t1
1434 update_ptep spc,ptp,pte,t0,t1
1383 1435
1384 make_insert_tlb spc,pte,prot 1436 make_insert_tlb spc,pte,prot
1385 1437
1386 iitlbt pte,prot 1438 iitlbt pte,prot
1439 dbit_unlock1 spc,t0
1387 1440
1388 rfir 1441 rfir
1389 nop 1442 nop
@@ -1405,7 +1458,8 @@ itlb_miss_11:
1405 1458
1406 L2_ptep ptp,pte,t0,va,itlb_fault 1459 L2_ptep ptp,pte,t0,va,itlb_fault
1407 1460
1408 update_ptep ptp,pte,t0,t1 1461 dbit_lock spc,t0,t1
1462 update_ptep spc,ptp,pte,t0,t1
1409 1463
1410 make_insert_tlb_11 spc,pte,prot 1464 make_insert_tlb_11 spc,pte,prot
1411 1465
@@ -1416,6 +1470,7 @@ itlb_miss_11:
1416 iitlbp prot,(%sr1,va) 1470 iitlbp prot,(%sr1,va)
1417 1471
1418 mtsp t0, %sr1 /* Restore sr1 */ 1472 mtsp t0, %sr1 /* Restore sr1 */
1473 dbit_unlock1 spc,t0
1419 1474
1420 rfir 1475 rfir
1421 nop 1476 nop
@@ -1427,7 +1482,8 @@ naitlb_miss_11:
1427 1482
1428 L2_ptep ptp,pte,t0,va,naitlb_check_alias_11 1483 L2_ptep ptp,pte,t0,va,naitlb_check_alias_11
1429 1484
1430 update_ptep ptp,pte,t0,t1 1485 dbit_lock spc,t0,t1
1486 update_ptep spc,ptp,pte,t0,t1
1431 1487
1432 make_insert_tlb_11 spc,pte,prot 1488 make_insert_tlb_11 spc,pte,prot
1433 1489
@@ -1438,6 +1494,7 @@ naitlb_miss_11:
1438 iitlbp prot,(%sr1,va) 1494 iitlbp prot,(%sr1,va)
1439 1495
1440 mtsp t0, %sr1 /* Restore sr1 */ 1496 mtsp t0, %sr1 /* Restore sr1 */
1497 dbit_unlock1 spc,t0
1441 1498
1442 rfir 1499 rfir
1443 nop 1500 nop
@@ -1459,13 +1516,15 @@ itlb_miss_20:
1459 1516
1460 L2_ptep ptp,pte,t0,va,itlb_fault 1517 L2_ptep ptp,pte,t0,va,itlb_fault
1461 1518
1462 update_ptep ptp,pte,t0,t1 1519 dbit_lock spc,t0,t1
1520 update_ptep spc,ptp,pte,t0,t1
1463 1521
1464 make_insert_tlb spc,pte,prot 1522 make_insert_tlb spc,pte,prot
1465 1523
1466 f_extend pte,t0 1524 f_extend pte,t0
1467 1525
1468 iitlbt pte,prot 1526 iitlbt pte,prot
1527 dbit_unlock1 spc,t0
1469 1528
1470 rfir 1529 rfir
1471 nop 1530 nop
@@ -1477,13 +1536,15 @@ naitlb_miss_20:
1477 1536
1478 L2_ptep ptp,pte,t0,va,naitlb_check_alias_20 1537 L2_ptep ptp,pte,t0,va,naitlb_check_alias_20
1479 1538
1480 update_ptep ptp,pte,t0,t1 1539 dbit_lock spc,t0,t1
1540 update_ptep spc,ptp,pte,t0,t1
1481 1541
1482 make_insert_tlb spc,pte,prot 1542 make_insert_tlb spc,pte,prot
1483 1543
1484 f_extend pte,t0 1544 f_extend pte,t0
1485 1545
1486 iitlbt pte,prot 1546 iitlbt pte,prot
1547 dbit_unlock1 spc,t0
1487 1548
1488 rfir 1549 rfir
1489 nop 1550 nop
@@ -1507,29 +1568,13 @@ dbit_trap_20w:
1507 1568
1508 L3_ptep ptp,pte,t0,va,dbit_fault 1569 L3_ptep ptp,pte,t0,va,dbit_fault
1509 1570
1510#ifdef CONFIG_SMP 1571 dbit_lock spc,t0,t1
1511 cmpib,COND(=),n 0,spc,dbit_nolock_20w 1572 update_dirty spc,ptp,pte,t1
1512 load32 PA(pa_dbit_lock),t0
1513
1514dbit_spin_20w:
1515 LDCW 0(t0),t1
1516 cmpib,COND(=) 0,t1,dbit_spin_20w
1517 nop
1518
1519dbit_nolock_20w:
1520#endif
1521 update_dirty ptp,pte,t1
1522 1573
1523 make_insert_tlb spc,pte,prot 1574 make_insert_tlb spc,pte,prot
1524 1575
1525 idtlbt pte,prot 1576 idtlbt pte,prot
1526#ifdef CONFIG_SMP 1577 dbit_unlock0 spc,t0
1527 cmpib,COND(=),n 0,spc,dbit_nounlock_20w
1528 ldi 1,t1
1529 stw t1,0(t0)
1530
1531dbit_nounlock_20w:
1532#endif
1533 1578
1534 rfir 1579 rfir
1535 nop 1580 nop
@@ -1543,18 +1588,8 @@ dbit_trap_11:
1543 1588
1544 L2_ptep ptp,pte,t0,va,dbit_fault 1589 L2_ptep ptp,pte,t0,va,dbit_fault
1545 1590
1546#ifdef CONFIG_SMP 1591 dbit_lock spc,t0,t1
1547 cmpib,COND(=),n 0,spc,dbit_nolock_11 1592 update_dirty spc,ptp,pte,t1
1548 load32 PA(pa_dbit_lock),t0
1549
1550dbit_spin_11:
1551 LDCW 0(t0),t1
1552 cmpib,= 0,t1,dbit_spin_11
1553 nop
1554
1555dbit_nolock_11:
1556#endif
1557 update_dirty ptp,pte,t1
1558 1593
1559 make_insert_tlb_11 spc,pte,prot 1594 make_insert_tlb_11 spc,pte,prot
1560 1595
@@ -1565,13 +1600,7 @@ dbit_nolock_11:
1565 idtlbp prot,(%sr1,va) 1600 idtlbp prot,(%sr1,va)
1566 1601
1567 mtsp t1, %sr1 /* Restore sr1 */ 1602 mtsp t1, %sr1 /* Restore sr1 */
1568#ifdef CONFIG_SMP 1603 dbit_unlock0 spc,t0
1569 cmpib,COND(=),n 0,spc,dbit_nounlock_11
1570 ldi 1,t1
1571 stw t1,0(t0)
1572
1573dbit_nounlock_11:
1574#endif
1575 1604
1576 rfir 1605 rfir
1577 nop 1606 nop
@@ -1583,32 +1612,15 @@ dbit_trap_20:
1583 1612
1584 L2_ptep ptp,pte,t0,va,dbit_fault 1613 L2_ptep ptp,pte,t0,va,dbit_fault
1585 1614
1586#ifdef CONFIG_SMP 1615 dbit_lock spc,t0,t1
1587 cmpib,COND(=),n 0,spc,dbit_nolock_20 1616 update_dirty spc,ptp,pte,t1
1588 load32 PA(pa_dbit_lock),t0
1589
1590dbit_spin_20:
1591 LDCW 0(t0),t1
1592 cmpib,= 0,t1,dbit_spin_20
1593 nop
1594
1595dbit_nolock_20:
1596#endif
1597 update_dirty ptp,pte,t1
1598 1617
1599 make_insert_tlb spc,pte,prot 1618 make_insert_tlb spc,pte,prot
1600 1619
1601 f_extend pte,t1 1620 f_extend pte,t1
1602 1621
1603 idtlbt pte,prot 1622 idtlbt pte,prot
1604 1623 dbit_unlock0 spc,t0
1605#ifdef CONFIG_SMP
1606 cmpib,COND(=),n 0,spc,dbit_nounlock_20
1607 ldi 1,t1
1608 stw t1,0(t0)
1609
1610dbit_nounlock_20:
1611#endif
1612 1624
1613 rfir 1625 rfir
1614 nop 1626 nop
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c
index f7752f6af29e..9e2d2e408529 100644
--- a/arch/parisc/kernel/hardware.c
+++ b/arch/parisc/kernel/hardware.c
@@ -222,6 +222,7 @@ static struct hp_hardware hp_hardware_list[] = {
222 {HPHW_NPROC,0x5DD,0x4,0x81,"Duet W2"}, 222 {HPHW_NPROC,0x5DD,0x4,0x81,"Duet W2"},
223 {HPHW_NPROC,0x5DE,0x4,0x81,"Piccolo W+"}, 223 {HPHW_NPROC,0x5DE,0x4,0x81,"Piccolo W+"},
224 {HPHW_NPROC,0x5DF,0x4,0x81,"Cantata W2"}, 224 {HPHW_NPROC,0x5DF,0x4,0x81,"Cantata W2"},
225 {HPHW_NPROC,0x5DF,0x0,0x00,"Marcato W+? (rp5470)"},
225 {HPHW_NPROC,0x5E0,0x4,0x91,"Cantata DC- W2"}, 226 {HPHW_NPROC,0x5E0,0x4,0x91,"Cantata DC- W2"},
226 {HPHW_NPROC,0x5E1,0x4,0x91,"Crescendo DC- W2"}, 227 {HPHW_NPROC,0x5E1,0x4,0x91,"Crescendo DC- W2"},
227 {HPHW_NPROC,0x5E2,0x4,0x91,"Crescendo 650 W2"}, 228 {HPHW_NPROC,0x5E2,0x4,0x91,"Crescendo 650 W2"},
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index e255db0bb761..2e6443b1e922 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -27,11 +27,11 @@
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/kernel_stat.h> 28#include <linux/kernel_stat.h>
29#include <linux/seq_file.h> 29#include <linux/seq_file.h>
30#include <linux/spinlock.h>
31#include <linux/types.h> 30#include <linux/types.h>
32#include <asm/io.h> 31#include <asm/io.h>
33 32
34#include <asm/smp.h> 33#include <asm/smp.h>
34#include <asm/ldcw.h>
35 35
36#undef PARISC_IRQ_CR16_COUNTS 36#undef PARISC_IRQ_CR16_COUNTS
37 37
@@ -166,22 +166,36 @@ int arch_show_interrupts(struct seq_file *p, int prec)
166 seq_printf(p, "%*s: ", prec, "STK"); 166 seq_printf(p, "%*s: ", prec, "STK");
167 for_each_online_cpu(j) 167 for_each_online_cpu(j)
168 seq_printf(p, "%10u ", irq_stats(j)->kernel_stack_usage); 168 seq_printf(p, "%10u ", irq_stats(j)->kernel_stack_usage);
169 seq_printf(p, " Kernel stack usage\n"); 169 seq_puts(p, " Kernel stack usage\n");
170# ifdef CONFIG_IRQSTACKS
171 seq_printf(p, "%*s: ", prec, "IST");
172 for_each_online_cpu(j)
173 seq_printf(p, "%10u ", irq_stats(j)->irq_stack_usage);
174 seq_puts(p, " Interrupt stack usage\n");
175# endif
170#endif 176#endif
171#ifdef CONFIG_SMP 177#ifdef CONFIG_SMP
172 seq_printf(p, "%*s: ", prec, "RES"); 178 seq_printf(p, "%*s: ", prec, "RES");
173 for_each_online_cpu(j) 179 for_each_online_cpu(j)
174 seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count); 180 seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count);
175 seq_printf(p, " Rescheduling interrupts\n"); 181 seq_puts(p, " Rescheduling interrupts\n");
176 seq_printf(p, "%*s: ", prec, "CAL"); 182 seq_printf(p, "%*s: ", prec, "CAL");
177 for_each_online_cpu(j) 183 for_each_online_cpu(j)
178 seq_printf(p, "%10u ", irq_stats(j)->irq_call_count); 184 seq_printf(p, "%10u ", irq_stats(j)->irq_call_count);
179 seq_printf(p, " Function call interrupts\n"); 185 seq_puts(p, " Function call interrupts\n");
180#endif 186#endif
187 seq_printf(p, "%*s: ", prec, "UAH");
188 for_each_online_cpu(j)
189 seq_printf(p, "%10u ", irq_stats(j)->irq_unaligned_count);
190 seq_puts(p, " Unaligned access handler traps\n");
191 seq_printf(p, "%*s: ", prec, "FPA");
192 for_each_online_cpu(j)
193 seq_printf(p, "%10u ", irq_stats(j)->irq_fpassist_count);
194 seq_puts(p, " Floating point assist traps\n");
181 seq_printf(p, "%*s: ", prec, "TLB"); 195 seq_printf(p, "%*s: ", prec, "TLB");
182 for_each_online_cpu(j) 196 for_each_online_cpu(j)
183 seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count); 197 seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count);
184 seq_printf(p, " TLB shootdowns\n"); 198 seq_puts(p, " TLB shootdowns\n");
185 return 0; 199 return 0;
186} 200}
187 201
@@ -366,6 +380,24 @@ static inline int eirr_to_irq(unsigned long eirr)
366 return (BITS_PER_LONG - bit) + TIMER_IRQ; 380 return (BITS_PER_LONG - bit) + TIMER_IRQ;
367} 381}
368 382
383#ifdef CONFIG_IRQSTACKS
384/*
385 * IRQ STACK - used for irq handler
386 */
387#define IRQ_STACK_SIZE (4096 << 2) /* 16k irq stack size */
388
389union irq_stack_union {
390 unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)];
391 volatile unsigned int slock[4];
392 volatile unsigned int lock[1];
393};
394
395DEFINE_PER_CPU(union irq_stack_union, irq_stack_union) = {
396 .slock = { 1,1,1,1 },
397 };
398#endif
399
400
369int sysctl_panic_on_stackoverflow = 1; 401int sysctl_panic_on_stackoverflow = 1;
370 402
371static inline void stack_overflow_check(struct pt_regs *regs) 403static inline void stack_overflow_check(struct pt_regs *regs)
@@ -378,6 +410,7 @@ static inline void stack_overflow_check(struct pt_regs *regs)
378 unsigned long sp = regs->gr[30]; 410 unsigned long sp = regs->gr[30];
379 unsigned long stack_usage; 411 unsigned long stack_usage;
380 unsigned int *last_usage; 412 unsigned int *last_usage;
413 int cpu = smp_processor_id();
381 414
382 /* if sr7 != 0, we interrupted a userspace process which we do not want 415 /* if sr7 != 0, we interrupted a userspace process which we do not want
383 * to check for stack overflow. We will only check the kernel stack. */ 416 * to check for stack overflow. We will only check the kernel stack. */
@@ -386,7 +419,31 @@ static inline void stack_overflow_check(struct pt_regs *regs)
386 419
387 /* calculate kernel stack usage */ 420 /* calculate kernel stack usage */
388 stack_usage = sp - stack_start; 421 stack_usage = sp - stack_start;
389 last_usage = &per_cpu(irq_stat.kernel_stack_usage, smp_processor_id()); 422#ifdef CONFIG_IRQSTACKS
423 if (likely(stack_usage <= THREAD_SIZE))
424 goto check_kernel_stack; /* found kernel stack */
425
426 /* check irq stack usage */
427 stack_start = (unsigned long) &per_cpu(irq_stack_union, cpu).stack;
428 stack_usage = sp - stack_start;
429
430 last_usage = &per_cpu(irq_stat.irq_stack_usage, cpu);
431 if (unlikely(stack_usage > *last_usage))
432 *last_usage = stack_usage;
433
434 if (likely(stack_usage < (IRQ_STACK_SIZE - STACK_MARGIN)))
435 return;
436
437 pr_emerg("stackcheck: %s will most likely overflow irq stack "
438 "(sp:%lx, stk bottom-top:%lx-%lx)\n",
439 current->comm, sp, stack_start, stack_start + IRQ_STACK_SIZE);
440 goto panic_check;
441
442check_kernel_stack:
443#endif
444
445 /* check kernel stack usage */
446 last_usage = &per_cpu(irq_stat.kernel_stack_usage, cpu);
390 447
391 if (unlikely(stack_usage > *last_usage)) 448 if (unlikely(stack_usage > *last_usage))
392 *last_usage = stack_usage; 449 *last_usage = stack_usage;
@@ -398,31 +455,66 @@ static inline void stack_overflow_check(struct pt_regs *regs)
398 "(sp:%lx, stk bottom-top:%lx-%lx)\n", 455 "(sp:%lx, stk bottom-top:%lx-%lx)\n",
399 current->comm, sp, stack_start, stack_start + THREAD_SIZE); 456 current->comm, sp, stack_start, stack_start + THREAD_SIZE);
400 457
458#ifdef CONFIG_IRQSTACKS
459panic_check:
460#endif
401 if (sysctl_panic_on_stackoverflow) 461 if (sysctl_panic_on_stackoverflow)
402 panic("low stack detected by irq handler - check messages\n"); 462 panic("low stack detected by irq handler - check messages\n");
403#endif 463#endif
404} 464}
405 465
406#ifdef CONFIG_IRQSTACKS 466#ifdef CONFIG_IRQSTACKS
407DEFINE_PER_CPU(union irq_stack_union, irq_stack_union); 467/* in entry.S: */
468void call_on_stack(unsigned long p1, void *func, unsigned long new_stack);
408 469
409static void execute_on_irq_stack(void *func, unsigned long param1) 470static void execute_on_irq_stack(void *func, unsigned long param1)
410{ 471{
411 unsigned long *irq_stack_start; 472 union irq_stack_union *union_ptr;
412 unsigned long irq_stack; 473 unsigned long irq_stack;
413 int cpu = smp_processor_id(); 474 volatile unsigned int *irq_stack_in_use;
475
476 union_ptr = &per_cpu(irq_stack_union, smp_processor_id());
477 irq_stack = (unsigned long) &union_ptr->stack;
478 irq_stack = ALIGN(irq_stack + sizeof(irq_stack_union.slock),
479 64); /* align for stack frame usage */
414 480
415 irq_stack_start = &per_cpu(irq_stack_union, cpu).stack[0]; 481 /* We may be called recursive. If we are already using the irq stack,
416 irq_stack = (unsigned long) irq_stack_start; 482 * just continue to use it. Use spinlocks to serialize
417 irq_stack = ALIGN(irq_stack, 16); /* align for stack frame usage */ 483 * the irq stack usage.
484 */
485 irq_stack_in_use = (volatile unsigned int *)__ldcw_align(union_ptr);
486 if (!__ldcw(irq_stack_in_use)) {
487 void (*direct_call)(unsigned long p1) = func;
418 488
419 BUG_ON(*irq_stack_start); /* report bug if we were called recursive. */ 489 /* We are using the IRQ stack already.
420 *irq_stack_start = 1; 490 * Do direct call on current stack. */
491 direct_call(param1);
492 return;
493 }
421 494
422 /* This is where we switch to the IRQ stack. */ 495 /* This is where we switch to the IRQ stack. */
423 call_on_stack(param1, func, irq_stack); 496 call_on_stack(param1, func, irq_stack);
424 497
425 *irq_stack_start = 0; 498 /* free up irq stack usage. */
499 *irq_stack_in_use = 1;
500}
501
502asmlinkage void do_softirq(void)
503{
504 __u32 pending;
505 unsigned long flags;
506
507 if (in_interrupt())
508 return;
509
510 local_irq_save(flags);
511
512 pending = local_softirq_pending();
513
514 if (pending)
515 execute_on_irq_stack(__do_softirq, 0);
516
517 local_irq_restore(flags);
426} 518}
427#endif /* CONFIG_IRQSTACKS */ 519#endif /* CONFIG_IRQSTACKS */
428 520
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index 5e1de6072be5..36d7f402e48e 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -605,14 +605,14 @@ ENTRY(copy_user_page_asm)
605 convert_phys_for_tlb_insert20 %r26 /* convert phys addr to tlb insert format */ 605 convert_phys_for_tlb_insert20 %r26 /* convert phys addr to tlb insert format */
606 convert_phys_for_tlb_insert20 %r23 /* convert phys addr to tlb insert format */ 606 convert_phys_for_tlb_insert20 %r23 /* convert phys addr to tlb insert format */
607 depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */ 607 depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */
608 depdi 0, 63,PAGE_SHIFT, %r28 /* Clear any offset bits */ 608 depdi 0, 63,PAGE_SHIFT, %r28 /* Clear any offset bits */
609 copy %r28, %r29 609 copy %r28, %r29
610 depdi 1, 41,1, %r29 /* Form aliased virtual address 'from' */ 610 depdi 1, 41,1, %r29 /* Form aliased virtual address 'from' */
611#else 611#else
612 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */ 612 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */
613 extrw,u %r23, 24,25, %r23 /* convert phys addr to tlb insert format */ 613 extrw,u %r23, 24,25, %r23 /* convert phys addr to tlb insert format */
614 depw %r24, 31,22, %r28 /* Form aliased virtual address 'to' */ 614 depw %r24, 31,22, %r28 /* Form aliased virtual address 'to' */
615 depwi 0, 31,12, %r28 /* Clear any offset bits */ 615 depwi 0, 31,PAGE_SHIFT, %r28 /* Clear any offset bits */
616 copy %r28, %r29 616 copy %r28, %r29
617 depwi 1, 9,1, %r29 /* Form aliased virtual address 'from' */ 617 depwi 1, 9,1, %r29 /* Form aliased virtual address 'from' */
618#endif 618#endif
@@ -762,7 +762,7 @@ ENTRY(clear_user_page_asm)
762#else 762#else
763 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */ 763 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */
764 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */ 764 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */
765 depwi 0, 31,12, %r28 /* Clear any offset bits */ 765 depwi 0, 31,PAGE_SHIFT, %r28 /* Clear any offset bits */
766#endif 766#endif
767 767
768 /* Purge any old translation */ 768 /* Purge any old translation */
@@ -846,7 +846,7 @@ ENTRY(flush_dcache_page_asm)
846#else 846#else
847 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */ 847 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */
848 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */ 848 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */
849 depwi 0, 31,12, %r28 /* Clear any offset bits */ 849 depwi 0, 31,PAGE_SHIFT, %r28 /* Clear any offset bits */
850#endif 850#endif
851 851
852 /* Purge any old translation */ 852 /* Purge any old translation */
@@ -918,11 +918,11 @@ ENTRY(flush_icache_page_asm)
918#endif 918#endif
919 convert_phys_for_tlb_insert20 %r26 /* convert phys addr to tlb insert format */ 919 convert_phys_for_tlb_insert20 %r26 /* convert phys addr to tlb insert format */
920 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */ 920 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */
921 depdi 0, 63,PAGE_SHIFT, %r28 /* Clear any offset bits */ 921 depdi 0, 63,PAGE_SHIFT, %r28 /* Clear any offset bits */
922#else 922#else
923 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */ 923 extrw,u %r26, 24,25, %r26 /* convert phys addr to tlb insert format */
924 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */ 924 depw %r25, 31,22, %r28 /* Form aliased virtual address 'to' */
925 depwi 0, 31,12, %r28 /* Clear any offset bits */ 925 depwi 0, 31,PAGE_SHIFT, %r28 /* Clear any offset bits */
926#endif 926#endif
927 927
928 /* Purge any old translation */ 928 /* Purge any old translation */
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c
index 76b63e726a53..1e95b2000ce8 100644
--- a/arch/parisc/kernel/setup.c
+++ b/arch/parisc/kernel/setup.c
@@ -69,7 +69,8 @@ void __init setup_cmdline(char **cmdline_p)
69 /* called from hpux boot loader */ 69 /* called from hpux boot loader */
70 boot_command_line[0] = '\0'; 70 boot_command_line[0] = '\0';
71 } else { 71 } else {
72 strcpy(boot_command_line, (char *)__va(boot_args[1])); 72 strlcpy(boot_command_line, (char *)__va(boot_args[1]),
73 COMMAND_LINE_SIZE);
73 74
74#ifdef CONFIG_BLK_DEV_INITRD 75#ifdef CONFIG_BLK_DEV_INITRD
75 if (boot_args[2] != 0) /* did palo pass us a ramdisk? */ 76 if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index fe41a98043bb..04e47c6a4562 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -646,6 +646,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
646 case 14: 646 case 14:
647 /* Assist Exception Trap, i.e. floating point exception. */ 647 /* Assist Exception Trap, i.e. floating point exception. */
648 die_if_kernel("Floating point exception", regs, 0); /* quiet */ 648 die_if_kernel("Floating point exception", regs, 0); /* quiet */
649 __inc_irq_stat(irq_fpassist_count);
649 handle_fpe(regs); 650 handle_fpe(regs);
650 return; 651 return;
651 652
diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c
index 234e3682cf09..d7c0acb35ec2 100644
--- a/arch/parisc/kernel/unaligned.c
+++ b/arch/parisc/kernel/unaligned.c
@@ -27,6 +27,7 @@
27#include <linux/signal.h> 27#include <linux/signal.h>
28#include <linux/ratelimit.h> 28#include <linux/ratelimit.h>
29#include <asm/uaccess.h> 29#include <asm/uaccess.h>
30#include <asm/hardirq.h>
30 31
31/* #define DEBUG_UNALIGNED 1 */ 32/* #define DEBUG_UNALIGNED 1 */
32 33
@@ -454,6 +455,8 @@ void handle_unaligned(struct pt_regs *regs)
454 struct siginfo si; 455 struct siginfo si;
455 register int flop=0; /* true if this is a flop */ 456 register int flop=0; /* true if this is a flop */
456 457
458 __inc_irq_stat(irq_unaligned_count);
459
457 /* log a message with pacing */ 460 /* log a message with pacing */
458 if (user_mode(regs)) { 461 if (user_mode(regs)) {
459 if (current->thread.flags & PARISC_UAC_SIGBUS) { 462 if (current->thread.flags & PARISC_UAC_SIGBUS) {
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index ce939ac8622b..1c965642068b 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -1069,7 +1069,7 @@ void flush_tlb_all(void)
1069{ 1069{
1070 int do_recycle; 1070 int do_recycle;
1071 1071
1072 inc_irq_stat(irq_tlb_count); 1072 __inc_irq_stat(irq_tlb_count);
1073 do_recycle = 0; 1073 do_recycle = 0;
1074 spin_lock(&sid_lock); 1074 spin_lock(&sid_lock);
1075 if (dirty_space_ids > RECYCLE_THRESHOLD) { 1075 if (dirty_space_ids > RECYCLE_THRESHOLD) {
@@ -1090,7 +1090,7 @@ void flush_tlb_all(void)
1090#else 1090#else
1091void flush_tlb_all(void) 1091void flush_tlb_all(void)
1092{ 1092{
1093 inc_irq_stat(irq_tlb_count); 1093 __inc_irq_stat(irq_tlb_count);
1094 spin_lock(&sid_lock); 1094 spin_lock(&sid_lock);
1095 flush_tlb_all_local(NULL); 1095 flush_tlb_all_local(NULL);
1096 recycle_sids(); 1096 recycle_sids();
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index 5416e28a7538..863d877e0b5f 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -262,8 +262,31 @@ config PPC_EARLY_DEBUG_OPAL_HVSI
262 Select this to enable early debugging for the PowerNV platform 262 Select this to enable early debugging for the PowerNV platform
263 using an "hvsi" console 263 using an "hvsi" console
264 264
265config PPC_EARLY_DEBUG_MEMCONS
266 bool "In memory console"
267 help
268 Select this to enable early debugging using an in memory console.
269 This console provides input and output buffers stored within the
270 kernel BSS and should be safe to select on any system. A debugger
271 can then be used to read kernel output or send input to the console.
265endchoice 272endchoice
266 273
274config PPC_MEMCONS_OUTPUT_SIZE
275 int "In memory console output buffer size"
276 depends on PPC_EARLY_DEBUG_MEMCONS
277 default 4096
278 help
279 Selects the size of the output buffer (in bytes) of the in memory
280 console.
281
282config PPC_MEMCONS_INPUT_SIZE
283 int "In memory console input buffer size"
284 depends on PPC_EARLY_DEBUG_MEMCONS
285 default 128
286 help
287 Selects the size of the input buffer (in bytes) of the in memory
288 console.
289
267config PPC_EARLY_DEBUG_OPAL 290config PPC_EARLY_DEBUG_OPAL
268 def_bool y 291 def_bool y
269 depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI 292 depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index f79196232917..139a8308070c 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -136,7 +136,6 @@ CONFIG_HID_SMARTJOYPLUS=m
136CONFIG_USB_HIDDEV=y 136CONFIG_USB_HIDDEV=y
137CONFIG_USB=m 137CONFIG_USB=m
138CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 138CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
139CONFIG_USB_SUSPEND=y
140CONFIG_USB_MON=m 139CONFIG_USB_MON=m
141CONFIG_USB_EHCI_HCD=m 140CONFIG_USB_EHCI_HCD=m
142# CONFIG_USB_EHCI_HCD_PPC_OF is not set 141# CONFIG_USB_EHCI_HCD_PPC_OF is not set
diff --git a/arch/powerpc/include/asm/context_tracking.h b/arch/powerpc/include/asm/context_tracking.h
new file mode 100644
index 000000000000..b6f5a33b8ee2
--- /dev/null
+++ b/arch/powerpc/include/asm/context_tracking.h
@@ -0,0 +1,10 @@
1#ifndef _ASM_POWERPC_CONTEXT_TRACKING_H
2#define _ASM_POWERPC_CONTEXT_TRACKING_H
3
4#ifdef CONFIG_CONTEXT_TRACKING
5#define SCHEDULE_USER bl .schedule_user
6#else
7#define SCHEDULE_USER bl .schedule
8#endif
9
10#endif
diff --git a/arch/powerpc/include/asm/firmware.h b/arch/powerpc/include/asm/firmware.h
index 0df54646f968..681bc0314b6b 100644
--- a/arch/powerpc/include/asm/firmware.h
+++ b/arch/powerpc/include/asm/firmware.h
@@ -52,6 +52,7 @@
52#define FW_FEATURE_BEST_ENERGY ASM_CONST(0x0000000080000000) 52#define FW_FEATURE_BEST_ENERGY ASM_CONST(0x0000000080000000)
53#define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000) 53#define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000)
54#define FW_FEATURE_PRRN ASM_CONST(0x0000000200000000) 54#define FW_FEATURE_PRRN ASM_CONST(0x0000000200000000)
55#define FW_FEATURE_OPALv3 ASM_CONST(0x0000000400000000)
55 56
56#ifndef __ASSEMBLY__ 57#ifndef __ASSEMBLY__
57 58
@@ -69,7 +70,8 @@ enum {
69 FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY | 70 FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
70 FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN, 71 FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN,
71 FW_FEATURE_PSERIES_ALWAYS = 0, 72 FW_FEATURE_PSERIES_ALWAYS = 0,
72 FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_OPALv2, 73 FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_OPALv2 |
74 FW_FEATURE_OPALv3,
73 FW_FEATURE_POWERNV_ALWAYS = 0, 75 FW_FEATURE_POWERNV_ALWAYS = 0,
74 FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1, 76 FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
75 FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1, 77 FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
diff --git a/arch/powerpc/include/asm/hvcall.h b/arch/powerpc/include/asm/hvcall.h
index cf4df8e2139a..0c7f2bfcf134 100644
--- a/arch/powerpc/include/asm/hvcall.h
+++ b/arch/powerpc/include/asm/hvcall.h
@@ -264,6 +264,7 @@
264#define H_GET_MPP 0x2D4 264#define H_GET_MPP 0x2D4
265#define H_HOME_NODE_ASSOCIATIVITY 0x2EC 265#define H_HOME_NODE_ASSOCIATIVITY 0x2EC
266#define H_BEST_ENERGY 0x2F4 266#define H_BEST_ENERGY 0x2F4
267#define H_XIRR_X 0x2FC
267#define H_RANDOM 0x300 268#define H_RANDOM 0x300
268#define H_COP 0x304 269#define H_COP 0x304
269#define H_GET_MPP_X 0x314 270#define H_GET_MPP_X 0x314
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index d615b28dda82..ba713f166fa5 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -96,11 +96,12 @@ static inline bool arch_irqs_disabled(void)
96#endif 96#endif
97 97
98#define hard_irq_disable() do { \ 98#define hard_irq_disable() do { \
99 u8 _was_enabled = get_paca()->soft_enabled; \
99 __hard_irq_disable(); \ 100 __hard_irq_disable(); \
100 if (local_paca->soft_enabled) \
101 trace_hardirqs_off(); \
102 get_paca()->soft_enabled = 0; \ 101 get_paca()->soft_enabled = 0; \
103 get_paca()->irq_happened |= PACA_IRQ_HARD_DIS; \ 102 get_paca()->irq_happened |= PACA_IRQ_HARD_DIS; \
103 if (_was_enabled) \
104 trace_hardirqs_off(); \
104} while(0) 105} while(0)
105 106
106static inline bool lazy_irq_pending(void) 107static inline bool lazy_irq_pending(void)
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index b6c8b58b1d76..cbb9305ab15a 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -243,7 +243,8 @@ enum OpalMCE_TlbErrorType {
243 243
244enum OpalThreadStatus { 244enum OpalThreadStatus {
245 OPAL_THREAD_INACTIVE = 0x0, 245 OPAL_THREAD_INACTIVE = 0x0,
246 OPAL_THREAD_STARTED = 0x1 246 OPAL_THREAD_STARTED = 0x1,
247 OPAL_THREAD_UNAVAILABLE = 0x2 /* opal-v3 */
247}; 248};
248 249
249enum OpalPciBusCompare { 250enum OpalPciBusCompare {
@@ -563,6 +564,8 @@ extern void opal_nvram_init(void);
563 564
564extern int opal_machine_check(struct pt_regs *regs); 565extern int opal_machine_check(struct pt_regs *regs);
565 566
567extern void opal_shutdown(void);
568
566#endif /* __ASSEMBLY__ */ 569#endif /* __ASSEMBLY__ */
567 570
568#endif /* __OPAL_H */ 571#endif /* __OPAL_H */
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h
index 8b11b5bd9938..2c1d8cb9b265 100644
--- a/arch/powerpc/include/asm/pci-bridge.h
+++ b/arch/powerpc/include/asm/pci-bridge.h
@@ -174,6 +174,8 @@ struct pci_dn {
174/* Get the pointer to a device_node's pci_dn */ 174/* Get the pointer to a device_node's pci_dn */
175#define PCI_DN(dn) ((struct pci_dn *) (dn)->data) 175#define PCI_DN(dn) ((struct pci_dn *) (dn)->data)
176 176
177extern struct pci_dn *pci_get_pdn(struct pci_dev *pdev);
178
177extern void * update_dn_pci_info(struct device_node *dn, void *data); 179extern void * update_dn_pci_info(struct device_node *dn, void *data);
178 180
179static inline int pci_device_from_OF_node(struct device_node *np, 181static inline int pci_device_from_OF_node(struct device_node *np,
diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
index 91acb12bac92..b66ae722a8e9 100644
--- a/arch/powerpc/include/asm/pgalloc-64.h
+++ b/arch/powerpc/include/asm/pgalloc-64.h
@@ -186,7 +186,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
186 186
187static inline pgtable_t pmd_pgtable(pmd_t pmd) 187static inline pgtable_t pmd_pgtable(pmd_t pmd)
188{ 188{
189 return (pgtable_t)(pmd_val(pmd) & -sizeof(pte_t)*PTRS_PER_PTE); 189 return (pgtable_t)(pmd_val(pmd) & ~PMD_MASKED_BITS);
190} 190}
191 191
192static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, 192static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index cea8496091ff..2f1b6c5f8174 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -523,6 +523,17 @@ END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,946)
523#define PPC440EP_ERR42 523#define PPC440EP_ERR42
524#endif 524#endif
525 525
526/* The following stops all load and store data streams associated with stream
527 * ID (ie. streams created explicitly). The embedded and server mnemonics for
528 * dcbt are different so we use machine "power4" here explicitly.
529 */
530#define DCBT_STOP_ALL_STREAM_IDS(scratch) \
531.machine push ; \
532.machine "power4" ; \
533 lis scratch,0x60000000@h; \
534 dcbt r0,scratch,0b01010; \
535.machine pop
536
526/* 537/*
527 * toreal/fromreal/tophys/tovirt macros. 32-bit BookE makes them 538 * toreal/fromreal/tophys/tovirt macros. 32-bit BookE makes them
528 * keep the address intact to be compatible with code shared with 539 * keep the address intact to be compatible with code shared with
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
index d7e67ca8b4a6..14a658363698 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -284,6 +284,12 @@ struct thread_struct {
284 unsigned long ebbrr; 284 unsigned long ebbrr;
285 unsigned long ebbhr; 285 unsigned long ebbhr;
286 unsigned long bescr; 286 unsigned long bescr;
287 unsigned long siar;
288 unsigned long sdar;
289 unsigned long sier;
290 unsigned long mmcr0;
291 unsigned long mmcr2;
292 unsigned long mmcra;
287#endif 293#endif
288}; 294};
289 295
@@ -403,21 +409,16 @@ static inline void prefetchw(const void *x)
403#endif 409#endif
404 410
405#ifdef CONFIG_PPC64 411#ifdef CONFIG_PPC64
406static inline unsigned long get_clean_sp(struct pt_regs *regs, int is_32) 412static inline unsigned long get_clean_sp(unsigned long sp, int is_32)
407{ 413{
408 unsigned long sp;
409
410 if (is_32) 414 if (is_32)
411 sp = regs->gpr[1] & 0x0ffffffffUL; 415 return sp & 0x0ffffffffUL;
412 else
413 sp = regs->gpr[1];
414
415 return sp; 416 return sp;
416} 417}
417#else 418#else
418static inline unsigned long get_clean_sp(struct pt_regs *regs, int is_32) 419static inline unsigned long get_clean_sp(unsigned long sp, int is_32)
419{ 420{
420 return regs->gpr[1]; 421 return sp;
421} 422}
422#endif 423#endif
423 424
diff --git a/arch/powerpc/include/asm/pte-hash64-64k.h b/arch/powerpc/include/asm/pte-hash64-64k.h
index 3e13e23e4fdf..d836d945068d 100644
--- a/arch/powerpc/include/asm/pte-hash64-64k.h
+++ b/arch/powerpc/include/asm/pte-hash64-64k.h
@@ -47,7 +47,7 @@
47 * generic accessors and iterators here 47 * generic accessors and iterators here
48 */ 48 */
49#define __real_pte(e,p) ((real_pte_t) { \ 49#define __real_pte(e,p) ((real_pte_t) { \
50 (e), ((e) & _PAGE_COMBO) ? \ 50 (e), (pte_val(e) & _PAGE_COMBO) ? \
51 (pte_val(*((p) + PTRS_PER_PTE))) : 0 }) 51 (pte_val(*((p) + PTRS_PER_PTE))) : 0 })
52#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \ 52#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \
53 (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf)) 53 (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf))
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index a6136515c7f2..4a9e408644fe 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -111,17 +111,6 @@
111#define MSR_TM_TRANSACTIONAL(x) (((x) & MSR_TS_MASK) == MSR_TS_T) 111#define MSR_TM_TRANSACTIONAL(x) (((x) & MSR_TS_MASK) == MSR_TS_T)
112#define MSR_TM_SUSPENDED(x) (((x) & MSR_TS_MASK) == MSR_TS_S) 112#define MSR_TM_SUSPENDED(x) (((x) & MSR_TS_MASK) == MSR_TS_S)
113 113
114/* Reason codes describing kernel causes for transaction aborts. By
115 convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if
116 the failure is persistent.
117*/
118#define TM_CAUSE_RESCHED 0xfe
119#define TM_CAUSE_TLBI 0xfc
120#define TM_CAUSE_FAC_UNAV 0xfa
121#define TM_CAUSE_SYSCALL 0xf9 /* Persistent */
122#define TM_CAUSE_MISC 0xf6
123#define TM_CAUSE_SIGNAL 0xf4
124
125#if defined(CONFIG_PPC_BOOK3S_64) 114#if defined(CONFIG_PPC_BOOK3S_64)
126#define MSR_64BIT MSR_SF 115#define MSR_64BIT MSR_SF
127 116
diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index a8bc2bb4adc9..34fd70488d83 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -264,6 +264,8 @@ extern void rtas_progress(char *s, unsigned short hex);
264extern void rtas_initialize(void); 264extern void rtas_initialize(void);
265extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data); 265extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data);
266extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data); 266extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data);
267extern int rtas_online_cpus_mask(cpumask_var_t cpus);
268extern int rtas_offline_cpus_mask(cpumask_var_t cpus);
267extern int rtas_ibm_suspend_me(struct rtas_args *); 269extern int rtas_ibm_suspend_me(struct rtas_args *);
268 270
269struct rtc_time; 271struct rtc_time;
diff --git a/arch/powerpc/include/asm/signal.h b/arch/powerpc/include/asm/signal.h
index fbe66c463891..9322c28aebd2 100644
--- a/arch/powerpc/include/asm/signal.h
+++ b/arch/powerpc/include/asm/signal.h
@@ -3,5 +3,8 @@
3 3
4#define __ARCH_HAS_SA_RESTORER 4#define __ARCH_HAS_SA_RESTORER
5#include <uapi/asm/signal.h> 5#include <uapi/asm/signal.h>
6#include <uapi/asm/ptrace.h>
7
8extern unsigned long get_tm_stackpointer(struct pt_regs *regs);
6 9
7#endif /* _ASM_POWERPC_SIGNAL_H */ 10#endif /* _ASM_POWERPC_SIGNAL_H */
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index 8ceea14d6fe4..ba7b1973866e 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -97,7 +97,7 @@ static inline struct thread_info *current_thread_info(void)
97#define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */ 97#define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */
98#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ 98#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
99#define TIF_SINGLESTEP 8 /* singlestepping active */ 99#define TIF_SINGLESTEP 8 /* singlestepping active */
100#define TIF_MEMDIE 9 /* is terminating due to OOM killer */ 100#define TIF_NOHZ 9 /* in adaptive nohz mode */
101#define TIF_SECCOMP 10 /* secure computing */ 101#define TIF_SECCOMP 10 /* secure computing */
102#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */ 102#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */
103#define TIF_NOERROR 12 /* Force successful syscall return */ 103#define TIF_NOERROR 12 /* Force successful syscall return */
@@ -106,6 +106,7 @@ static inline struct thread_info *current_thread_info(void)
106#define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */ 106#define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */
107#define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation 107#define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation
108 for stack store? */ 108 for stack store? */
109#define TIF_MEMDIE 17 /* is terminating due to OOM killer */
109 110
110/* as above, but as bit values */ 111/* as above, but as bit values */
111#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 112#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
@@ -124,8 +125,10 @@ static inline struct thread_info *current_thread_info(void)
124#define _TIF_UPROBE (1<<TIF_UPROBE) 125#define _TIF_UPROBE (1<<TIF_UPROBE)
125#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) 126#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
126#define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE) 127#define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
128#define _TIF_NOHZ (1<<TIF_NOHZ)
127#define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ 129#define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
128 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT) 130 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
131 _TIF_NOHZ)
129 132
130#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ 133#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
131 _TIF_NOTIFY_RESUME | _TIF_UPROBE) 134 _TIF_NOTIFY_RESUME | _TIF_UPROBE)
diff --git a/arch/powerpc/include/asm/tm.h b/arch/powerpc/include/asm/tm.h
index 4b4449abf3f8..9dfbc34bdbf5 100644
--- a/arch/powerpc/include/asm/tm.h
+++ b/arch/powerpc/include/asm/tm.h
@@ -5,6 +5,8 @@
5 * Copyright 2012 Matt Evans & Michael Neuling, IBM Corporation. 5 * Copyright 2012 Matt Evans & Michael Neuling, IBM Corporation.
6 */ 6 */
7 7
8#include <uapi/asm/tm.h>
9
8#ifdef CONFIG_PPC_TRANSACTIONAL_MEM 10#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
9extern void do_load_up_transact_fpu(struct thread_struct *thread); 11extern void do_load_up_transact_fpu(struct thread_struct *thread);
10extern void do_load_up_transact_altivec(struct thread_struct *thread); 12extern void do_load_up_transact_altivec(struct thread_struct *thread);
diff --git a/arch/powerpc/include/asm/udbg.h b/arch/powerpc/include/asm/udbg.h
index 5a7510e9d09d..dc590919f8eb 100644
--- a/arch/powerpc/include/asm/udbg.h
+++ b/arch/powerpc/include/asm/udbg.h
@@ -52,6 +52,7 @@ extern void __init udbg_init_40x_realmode(void);
52extern void __init udbg_init_cpm(void); 52extern void __init udbg_init_cpm(void);
53extern void __init udbg_init_usbgecko(void); 53extern void __init udbg_init_usbgecko(void);
54extern void __init udbg_init_wsp(void); 54extern void __init udbg_init_wsp(void);
55extern void __init udbg_init_memcons(void);
55extern void __init udbg_init_ehv_bc(void); 56extern void __init udbg_init_ehv_bc(void);
56extern void __init udbg_init_ps3gelic(void); 57extern void __init udbg_init_ps3gelic(void);
57extern void __init udbg_init_debug_opal_raw(void); 58extern void __init udbg_init_debug_opal_raw(void);
diff --git a/arch/powerpc/include/uapi/asm/Kbuild b/arch/powerpc/include/uapi/asm/Kbuild
index f7bca6370745..5182c8622b54 100644
--- a/arch/powerpc/include/uapi/asm/Kbuild
+++ b/arch/powerpc/include/uapi/asm/Kbuild
@@ -40,6 +40,7 @@ header-y += statfs.h
40header-y += swab.h 40header-y += swab.h
41header-y += termbits.h 41header-y += termbits.h
42header-y += termios.h 42header-y += termios.h
43header-y += tm.h
43header-y += types.h 44header-y += types.h
44header-y += ucontext.h 45header-y += ucontext.h
45header-y += unistd.h 46header-y += unistd.h
diff --git a/arch/powerpc/include/uapi/asm/tm.h b/arch/powerpc/include/uapi/asm/tm.h
new file mode 100644
index 000000000000..85059a00f560
--- /dev/null
+++ b/arch/powerpc/include/uapi/asm/tm.h
@@ -0,0 +1,18 @@
1#ifndef _ASM_POWERPC_TM_H
2#define _ASM_POWERPC_TM_H
3
4/* Reason codes describing kernel causes for transaction aborts. By
5 * convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if
6 * the failure is persistent. PAPR saves 0xff-0xe0 for the hypervisor.
7 */
8#define TM_CAUSE_PERSISTENT 0x01
9#define TM_CAUSE_RESCHED 0xde
10#define TM_CAUSE_TLBI 0xdc
11#define TM_CAUSE_FAC_UNAV 0xda
12#define TM_CAUSE_SYSCALL 0xd8 /* future use */
13#define TM_CAUSE_MISC 0xd6 /* future use */
14#define TM_CAUSE_SIGNAL 0xd4
15#define TM_CAUSE_ALIGNMENT 0xd2
16#define TM_CAUSE_EMULATE 0xd0
17
18#endif
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index b51a97cfedf8..6f16ffafa6f0 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -127,6 +127,12 @@ int main(void)
127 DEFINE(THREAD_BESCR, offsetof(struct thread_struct, bescr)); 127 DEFINE(THREAD_BESCR, offsetof(struct thread_struct, bescr));
128 DEFINE(THREAD_EBBHR, offsetof(struct thread_struct, ebbhr)); 128 DEFINE(THREAD_EBBHR, offsetof(struct thread_struct, ebbhr));
129 DEFINE(THREAD_EBBRR, offsetof(struct thread_struct, ebbrr)); 129 DEFINE(THREAD_EBBRR, offsetof(struct thread_struct, ebbrr));
130 DEFINE(THREAD_SIAR, offsetof(struct thread_struct, siar));
131 DEFINE(THREAD_SDAR, offsetof(struct thread_struct, sdar));
132 DEFINE(THREAD_SIER, offsetof(struct thread_struct, sier));
133 DEFINE(THREAD_MMCR0, offsetof(struct thread_struct, mmcr0));
134 DEFINE(THREAD_MMCR2, offsetof(struct thread_struct, mmcr2));
135 DEFINE(THREAD_MMCRA, offsetof(struct thread_struct, mmcra));
130#endif 136#endif
131#ifdef CONFIG_PPC_TRANSACTIONAL_MEM 137#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
132 DEFINE(PACATMSCRATCH, offsetof(struct paca_struct, tm_scratch)); 138 DEFINE(PACATMSCRATCH, offsetof(struct paca_struct, tm_scratch));
diff --git a/arch/powerpc/kernel/cpu_setup_power.S b/arch/powerpc/kernel/cpu_setup_power.S
index a283b6442b26..18b5b9cf8e37 100644
--- a/arch/powerpc/kernel/cpu_setup_power.S
+++ b/arch/powerpc/kernel/cpu_setup_power.S
@@ -135,8 +135,12 @@ __init_HFSCR:
135 blr 135 blr
136 136
137__init_TLB: 137__init_TLB:
138 /* Clear the TLB */ 138 /*
139 li r6,128 139 * Clear the TLB using the "IS 3" form of tlbiel instruction
140 * (invalidate by congruence class). P7 has 128 CCs, P8 has 512
141 * so we just always do 512
142 */
143 li r6,512
140 mtctr r6 144 mtctr r6
141 li r7,0xc00 /* IS field = 0b11 */ 145 li r7,0xc00 /* IS field = 0b11 */
142 ptesync 146 ptesync
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index c60bbec25c1f..1f0937d7d4b5 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -453,7 +453,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
453 .icache_bsize = 128, 453 .icache_bsize = 128,
454 .dcache_bsize = 128, 454 .dcache_bsize = 128,
455 .oprofile_type = PPC_OPROFILE_POWER4, 455 .oprofile_type = PPC_OPROFILE_POWER4,
456 .oprofile_cpu_type = "ppc64/ibm-compat-v1", 456 .oprofile_cpu_type = 0,
457 .cpu_setup = __setup_cpu_power8, 457 .cpu_setup = __setup_cpu_power8,
458 .cpu_restore = __restore_cpu_power8, 458 .cpu_restore = __restore_cpu_power8,
459 .platform = "power8", 459 .platform = "power8",
@@ -482,7 +482,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
482 .cpu_name = "POWER7+ (raw)", 482 .cpu_name = "POWER7+ (raw)",
483 .cpu_features = CPU_FTRS_POWER7, 483 .cpu_features = CPU_FTRS_POWER7,
484 .cpu_user_features = COMMON_USER_POWER7, 484 .cpu_user_features = COMMON_USER_POWER7,
485 .cpu_user_features = COMMON_USER2_POWER7, 485 .cpu_user_features2 = COMMON_USER2_POWER7,
486 .mmu_features = MMU_FTRS_POWER7, 486 .mmu_features = MMU_FTRS_POWER7,
487 .icache_bsize = 128, 487 .icache_bsize = 128,
488 .dcache_bsize = 128, 488 .dcache_bsize = 128,
@@ -506,7 +506,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
506 .dcache_bsize = 128, 506 .dcache_bsize = 128,
507 .num_pmcs = 6, 507 .num_pmcs = 6,
508 .pmc_type = PPC_PMC_IBM, 508 .pmc_type = PPC_PMC_IBM,
509 .oprofile_cpu_type = "ppc64/power8", 509 .oprofile_cpu_type = 0,
510 .oprofile_type = PPC_OPROFILE_POWER4, 510 .oprofile_type = PPC_OPROFILE_POWER4,
511 .cpu_setup = __setup_cpu_power8, 511 .cpu_setup = __setup_cpu_power8,
512 .cpu_restore = __restore_cpu_power8, 512 .cpu_restore = __restore_cpu_power8,
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index e514de57a125..22b45a4955cd 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -439,8 +439,6 @@ ret_from_fork:
439ret_from_kernel_thread: 439ret_from_kernel_thread:
440 REST_NVGPRS(r1) 440 REST_NVGPRS(r1)
441 bl schedule_tail 441 bl schedule_tail
442 li r3,0
443 stw r3,0(r1)
444 mtlr r14 442 mtlr r14
445 mr r3,r15 443 mr r3,r15
446 PPC440EP_ERR42 444 PPC440EP_ERR42
@@ -851,7 +849,7 @@ resume_kernel:
851 /* check current_thread_info, _TIF_EMULATE_STACK_STORE */ 849 /* check current_thread_info, _TIF_EMULATE_STACK_STORE */
852 CURRENT_THREAD_INFO(r9, r1) 850 CURRENT_THREAD_INFO(r9, r1)
853 lwz r8,TI_FLAGS(r9) 851 lwz r8,TI_FLAGS(r9)
854 andis. r8,r8,_TIF_EMULATE_STACK_STORE@h 852 andis. r0,r8,_TIF_EMULATE_STACK_STORE@h
855 beq+ 1f 853 beq+ 1f
856 854
857 addi r8,r1,INT_FRAME_SIZE /* Get the kprobed function entry */ 855 addi r8,r1,INT_FRAME_SIZE /* Get the kprobed function entry */
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 915fbb4fc2fe..246b11c4fe7e 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -33,6 +33,7 @@
33#include <asm/irqflags.h> 33#include <asm/irqflags.h>
34#include <asm/ftrace.h> 34#include <asm/ftrace.h>
35#include <asm/hw_irq.h> 35#include <asm/hw_irq.h>
36#include <asm/context_tracking.h>
36 37
37/* 38/*
38 * System calls. 39 * System calls.
@@ -376,8 +377,6 @@ _GLOBAL(ret_from_fork)
376_GLOBAL(ret_from_kernel_thread) 377_GLOBAL(ret_from_kernel_thread)
377 bl .schedule_tail 378 bl .schedule_tail
378 REST_NVGPRS(r1) 379 REST_NVGPRS(r1)
379 li r3,0
380 std r3,0(r1)
381 ld r14, 0(r14) 380 ld r14, 0(r14)
382 mtlr r14 381 mtlr r14
383 mr r3,r15 382 mr r3,r15
@@ -466,6 +465,20 @@ BEGIN_FTR_SECTION
466 std r0, THREAD_EBBHR(r3) 465 std r0, THREAD_EBBHR(r3)
467 mfspr r0, SPRN_EBBRR 466 mfspr r0, SPRN_EBBRR
468 std r0, THREAD_EBBRR(r3) 467 std r0, THREAD_EBBRR(r3)
468
469 /* PMU registers made user read/(write) by EBB */
470 mfspr r0, SPRN_SIAR
471 std r0, THREAD_SIAR(r3)
472 mfspr r0, SPRN_SDAR
473 std r0, THREAD_SDAR(r3)
474 mfspr r0, SPRN_SIER
475 std r0, THREAD_SIER(r3)
476 mfspr r0, SPRN_MMCR0
477 std r0, THREAD_MMCR0(r3)
478 mfspr r0, SPRN_MMCR2
479 std r0, THREAD_MMCR2(r3)
480 mfspr r0, SPRN_MMCRA
481 std r0, THREAD_MMCRA(r3)
469END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) 482END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
470#endif 483#endif
471 484
@@ -488,6 +501,13 @@ BEGIN_FTR_SECTION
488 ldarx r6,0,r1 501 ldarx r6,0,r1
489END_FTR_SECTION_IFSET(CPU_FTR_STCX_CHECKS_ADDRESS) 502END_FTR_SECTION_IFSET(CPU_FTR_STCX_CHECKS_ADDRESS)
490 503
504#ifdef CONFIG_PPC_BOOK3S
505/* Cancel all explict user streams as they will have no use after context
506 * switch and will stop the HW from creating streams itself
507 */
508 DCBT_STOP_ALL_STREAM_IDS(r6)
509#endif
510
491 addi r6,r4,-THREAD /* Convert THREAD to 'current' */ 511 addi r6,r4,-THREAD /* Convert THREAD to 'current' */
492 std r6,PACACURRENT(r13) /* Set new 'current' */ 512 std r6,PACACURRENT(r13) /* Set new 'current' */
493 513
@@ -561,6 +581,20 @@ BEGIN_FTR_SECTION
561 ld r0, THREAD_EBBRR(r4) 581 ld r0, THREAD_EBBRR(r4)
562 mtspr SPRN_EBBRR, r0 582 mtspr SPRN_EBBRR, r0
563 583
584 /* PMU registers made user read/(write) by EBB */
585 ld r0, THREAD_SIAR(r4)
586 mtspr SPRN_SIAR, r0
587 ld r0, THREAD_SDAR(r4)
588 mtspr SPRN_SDAR, r0
589 ld r0, THREAD_SIER(r4)
590 mtspr SPRN_SIER, r0
591 ld r0, THREAD_MMCR0(r4)
592 mtspr SPRN_MMCR0, r0
593 ld r0, THREAD_MMCR2(r4)
594 mtspr SPRN_MMCR2, r0
595 ld r0, THREAD_MMCRA(r4)
596 mtspr SPRN_MMCRA, r0
597
564 ld r0,THREAD_TAR(r4) 598 ld r0,THREAD_TAR(r4)
565 mtspr SPRN_TAR,r0 599 mtspr SPRN_TAR,r0
566END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) 600END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
@@ -634,7 +668,7 @@ _GLOBAL(ret_from_except_lite)
634 andi. r0,r4,_TIF_NEED_RESCHED 668 andi. r0,r4,_TIF_NEED_RESCHED
635 beq 1f 669 beq 1f
636 bl .restore_interrupts 670 bl .restore_interrupts
637 bl .schedule 671 SCHEDULE_USER
638 b .ret_from_except_lite 672 b .ret_from_except_lite
639 673
6401: bl .save_nvgprs 6741: bl .save_nvgprs
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 42a756eec9ff..645170a07ada 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -489,7 +489,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
489 */ 489 */
490 490
491 mfspr r14,SPRN_DBSR /* check single-step/branch taken */ 491 mfspr r14,SPRN_DBSR /* check single-step/branch taken */
492 andis. r15,r14,DBSR_IC@h 492 andis. r15,r14,(DBSR_IC|DBSR_BT)@h
493 beq+ 1f 493 beq+ 1f
494 494
495 LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e) 495 LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e)
@@ -500,7 +500,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
500 bge+ cr1,1f 500 bge+ cr1,1f
501 501
502 /* here it looks like we got an inappropriate debug exception. */ 502 /* here it looks like we got an inappropriate debug exception. */
503 lis r14,DBSR_IC@h /* clear the IC event */ 503 lis r14,(DBSR_IC|DBSR_BT)@h /* clear the event */
504 rlwinm r11,r11,0,~MSR_DE /* clear DE in the CSRR1 value */ 504 rlwinm r11,r11,0,~MSR_DE /* clear DE in the CSRR1 value */
505 mtspr SPRN_DBSR,r14 505 mtspr SPRN_DBSR,r14
506 mtspr SPRN_CSRR1,r11 506 mtspr SPRN_CSRR1,r11
@@ -555,7 +555,7 @@ kernel_dbg_exc:
555 */ 555 */
556 556
557 mfspr r14,SPRN_DBSR /* check single-step/branch taken */ 557 mfspr r14,SPRN_DBSR /* check single-step/branch taken */
558 andis. r15,r14,DBSR_IC@h 558 andis. r15,r14,(DBSR_IC|DBSR_BT)@h
559 beq+ 1f 559 beq+ 1f
560 560
561 LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e) 561 LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e)
@@ -566,7 +566,7 @@ kernel_dbg_exc:
566 bge+ cr1,1f 566 bge+ cr1,1f
567 567
568 /* here it looks like we got an inappropriate debug exception. */ 568 /* here it looks like we got an inappropriate debug exception. */
569 lis r14,DBSR_IC@h /* clear the IC event */ 569 lis r14,(DBSR_IC|DBSR_BT)@h /* clear the event */
570 rlwinm r11,r11,0,~MSR_DE /* clear DE in the DSRR1 value */ 570 rlwinm r11,r11,0,~MSR_DE /* clear DE in the DSRR1 value */
571 mtspr SPRN_DBSR,r14 571 mtspr SPRN_DBSR,r14
572 mtspr SPRN_DSRR1,r11 572 mtspr SPRN_DSRR1,r11
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c
index 466a2908bb63..611acdf30096 100644
--- a/arch/powerpc/kernel/machine_kexec_64.c
+++ b/arch/powerpc/kernel/machine_kexec_64.c
@@ -17,6 +17,7 @@
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/cpu.h> 19#include <linux/cpu.h>
20#include <linux/hardirq.h>
20 21
21#include <asm/page.h> 22#include <asm/page.h>
22#include <asm/current.h> 23#include <asm/current.h>
@@ -335,10 +336,13 @@ void default_machine_kexec(struct kimage *image)
335 pr_debug("kexec: Starting switchover sequence.\n"); 336 pr_debug("kexec: Starting switchover sequence.\n");
336 337
337 /* switch to a staticly allocated stack. Based on irq stack code. 338 /* switch to a staticly allocated stack. Based on irq stack code.
339 * We setup preempt_count to avoid using VMX in memcpy.
338 * XXX: the task struct will likely be invalid once we do the copy! 340 * XXX: the task struct will likely be invalid once we do the copy!
339 */ 341 */
340 kexec_stack.thread_info.task = current_thread_info()->task; 342 kexec_stack.thread_info.task = current_thread_info()->task;
341 kexec_stack.thread_info.flags = 0; 343 kexec_stack.thread_info.flags = 0;
344 kexec_stack.thread_info.preempt_count = HARDIRQ_OFFSET;
345 kexec_stack.thread_info.cpu = current_thread_info()->cpu;
342 346
343 /* We need a static PACA, too; copy this CPU's PACA over and switch to 347 /* We need a static PACA, too; copy this CPU's PACA over and switch to
344 * it. Also poison per_cpu_offset to catch anyone using non-static 348 * it. Also poison per_cpu_offset to catch anyone using non-static
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 19e096bd0e73..e469f30e6eeb 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -657,6 +657,17 @@ _GLOBAL(__ucmpdi2)
657 li r3,2 657 li r3,2
658 blr 658 blr
659 659
660_GLOBAL(__bswapdi2)
661 rotlwi r9,r4,8
662 rotlwi r10,r3,8
663 rlwimi r9,r4,24,0,7
664 rlwimi r10,r3,24,0,7
665 rlwimi r9,r4,24,16,23
666 rlwimi r10,r3,24,16,23
667 mr r3,r9
668 mr r4,r10
669 blr
670
660_GLOBAL(abs) 671_GLOBAL(abs)
661 srawi r4,r3,31 672 srawi r4,r3,31
662 xor r3,r3,r4 673 xor r3,r3,r4
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index 5cfa8008693b..6820e45f557b 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -234,6 +234,17 @@ _GLOBAL(__flush_dcache_icache)
234 isync 234 isync
235 blr 235 blr
236 236
237_GLOBAL(__bswapdi2)
238 srdi r8,r3,32
239 rlwinm r7,r3,8,0xffffffff
240 rlwimi r7,r3,24,0,7
241 rlwinm r9,r8,8,0xffffffff
242 rlwimi r7,r3,24,16,23
243 rlwimi r9,r8,24,0,7
244 rlwimi r9,r8,24,16,23
245 sldi r7,r7,32
246 or r3,r7,r9
247 blr
237 248
238#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE) 249#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE)
239/* 250/*
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index f5c5c90799a7..7f2273cc3c7d 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -359,7 +359,6 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp,
359 enum pci_mmap_state mmap_state, 359 enum pci_mmap_state mmap_state,
360 int write_combine) 360 int write_combine)
361{ 361{
362 unsigned long prot = pgprot_val(protection);
363 362
364 /* Write combine is always 0 on non-memory space mappings. On 363 /* Write combine is always 0 on non-memory space mappings. On
365 * memory space, if the user didn't pass 1, we check for a 364 * memory space, if the user didn't pass 1, we check for a
@@ -376,9 +375,9 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp,
376 375
377 /* XXX would be nice to have a way to ask for write-through */ 376 /* XXX would be nice to have a way to ask for write-through */
378 if (write_combine) 377 if (write_combine)
379 return pgprot_noncached_wc(prot); 378 return pgprot_noncached_wc(protection);
380 else 379 else
381 return pgprot_noncached(prot); 380 return pgprot_noncached(protection);
382} 381}
383 382
384/* 383/*
@@ -658,15 +657,6 @@ void pci_resource_to_user(const struct pci_dev *dev, int bar,
658 * ranges. However, some machines (thanks Apple !) tend to split their 657 * ranges. However, some machines (thanks Apple !) tend to split their
659 * space into lots of small contiguous ranges. So we have to coalesce. 658 * space into lots of small contiguous ranges. So we have to coalesce.
660 * 659 *
661 * - We can only cope with all memory ranges having the same offset
662 * between CPU addresses and PCI addresses. Unfortunately, some bridges
663 * are setup for a large 1:1 mapping along with a small "window" which
664 * maps PCI address 0 to some arbitrary high address of the CPU space in
665 * order to give access to the ISA memory hole.
666 * The way out of here that I've chosen for now is to always set the
667 * offset based on the first resource found, then override it if we
668 * have a different offset and the previous was set by an ISA hole.
669 *
670 * - Some busses have IO space not starting at 0, which causes trouble with 660 * - Some busses have IO space not starting at 0, which causes trouble with
671 * the way we do our IO resource renumbering. The code somewhat deals with 661 * the way we do our IO resource renumbering. The code somewhat deals with
672 * it for 64 bits but I would expect problems on 32 bits. 662 * it for 64 bits but I would expect problems on 32 bits.
@@ -681,10 +671,9 @@ void pci_process_bridge_OF_ranges(struct pci_controller *hose,
681 int rlen; 671 int rlen;
682 int pna = of_n_addr_cells(dev); 672 int pna = of_n_addr_cells(dev);
683 int np = pna + 5; 673 int np = pna + 5;
684 int memno = 0, isa_hole = -1; 674 int memno = 0;
685 u32 pci_space; 675 u32 pci_space;
686 unsigned long long pci_addr, cpu_addr, pci_next, cpu_next, size; 676 unsigned long long pci_addr, cpu_addr, pci_next, cpu_next, size;
687 unsigned long long isa_mb = 0;
688 struct resource *res; 677 struct resource *res;
689 678
690 printk(KERN_INFO "PCI host bridge %s %s ranges:\n", 679 printk(KERN_INFO "PCI host bridge %s %s ranges:\n",
@@ -778,8 +767,6 @@ void pci_process_bridge_OF_ranges(struct pci_controller *hose,
778 } 767 }
779 /* Handles ISA memory hole space here */ 768 /* Handles ISA memory hole space here */
780 if (pci_addr == 0) { 769 if (pci_addr == 0) {
781 isa_mb = cpu_addr;
782 isa_hole = memno;
783 if (primary || isa_mem_base == 0) 770 if (primary || isa_mem_base == 0)
784 isa_mem_base = cpu_addr; 771 isa_mem_base = cpu_addr;
785 hose->isa_mem_phys = cpu_addr; 772 hose->isa_mem_phys = cpu_addr;
@@ -1521,9 +1508,10 @@ static void pcibios_setup_phb_resources(struct pci_controller *hose,
1521 for (i = 0; i < 3; ++i) { 1508 for (i = 0; i < 3; ++i) {
1522 res = &hose->mem_resources[i]; 1509 res = &hose->mem_resources[i];
1523 if (!res->flags) { 1510 if (!res->flags) {
1524 printk(KERN_ERR "PCI: Memory resource 0 not set for " 1511 if (i == 0)
1525 "host bridge %s (domain %d)\n", 1512 printk(KERN_ERR "PCI: Memory resource 0 not set for "
1526 hose->dn->full_name, hose->global_number); 1513 "host bridge %s (domain %d)\n",
1514 hose->dn->full_name, hose->global_number);
1527 continue; 1515 continue;
1528 } 1516 }
1529 offset = hose->mem_offset[i]; 1517 offset = hose->mem_offset[i];
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 873050d26840..2e8629654ca8 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -266,3 +266,13 @@ int pcibus_to_node(struct pci_bus *bus)
266} 266}
267EXPORT_SYMBOL(pcibus_to_node); 267EXPORT_SYMBOL(pcibus_to_node);
268#endif 268#endif
269
270static void quirk_radeon_32bit_msi(struct pci_dev *dev)
271{
272 struct pci_dn *pdn = pci_get_pdn(dev);
273
274 if (pdn)
275 pdn->force_32bit_msi = 1;
276}
277DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x68f2, quirk_radeon_32bit_msi);
278DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0xaa68, quirk_radeon_32bit_msi);
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index e7af165f8b9d..df038442548a 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -32,6 +32,14 @@
32#include <asm/ppc-pci.h> 32#include <asm/ppc-pci.h>
33#include <asm/firmware.h> 33#include <asm/firmware.h>
34 34
35struct pci_dn *pci_get_pdn(struct pci_dev *pdev)
36{
37 struct device_node *dn = pci_device_to_OF_node(pdev);
38 if (!dn)
39 return NULL;
40 return PCI_DN(dn);
41}
42
35/* 43/*
36 * Traverse_func that inits the PCI fields of the device node. 44 * Traverse_func that inits the PCI fields of the device node.
37 * NOTE: this *must* be done before read/write config to the device. 45 * NOTE: this *must* be done before read/write config to the device.
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index 78b8766fd79e..c29666586998 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -143,7 +143,8 @@ EXPORT_SYMBOL(__lshrdi3);
143int __ucmpdi2(unsigned long long, unsigned long long); 143int __ucmpdi2(unsigned long long, unsigned long long);
144EXPORT_SYMBOL(__ucmpdi2); 144EXPORT_SYMBOL(__ucmpdi2);
145#endif 145#endif
146 146long long __bswapdi2(long long);
147EXPORT_SYMBOL(__bswapdi2);
147EXPORT_SYMBOL(memcpy); 148EXPORT_SYMBOL(memcpy);
148EXPORT_SYMBOL(memset); 149EXPORT_SYMBOL(memset);
149EXPORT_SYMBOL(memmove); 150EXPORT_SYMBOL(memmove);
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index ceb4e7b62cf4..a902723fdc69 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -339,6 +339,13 @@ static void set_debug_reg_defaults(struct thread_struct *thread)
339 339
340static void prime_debug_regs(struct thread_struct *thread) 340static void prime_debug_regs(struct thread_struct *thread)
341{ 341{
342 /*
343 * We could have inherited MSR_DE from userspace, since
344 * it doesn't get cleared on exception entry. Make sure
345 * MSR_DE is clear before we enable any debug events.
346 */
347 mtmsr(mfmsr() & ~MSR_DE);
348
342 mtspr(SPRN_IAC1, thread->iac1); 349 mtspr(SPRN_IAC1, thread->iac1);
343 mtspr(SPRN_IAC2, thread->iac2); 350 mtspr(SPRN_IAC2, thread->iac2);
344#if CONFIG_PPC_ADV_DEBUG_IACS > 2 351#if CONFIG_PPC_ADV_DEBUG_IACS > 2
@@ -971,6 +978,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
971 * do some house keeping and then return from the fork or clone 978 * do some house keeping and then return from the fork or clone
972 * system call, using the stack frame created above. 979 * system call, using the stack frame created above.
973 */ 980 */
981 ((unsigned long *)sp)[0] = 0;
974 sp -= sizeof(struct pt_regs); 982 sp -= sizeof(struct pt_regs);
975 kregs = (struct pt_regs *) sp; 983 kregs = (struct pt_regs *) sp;
976 sp -= STACK_FRAME_OVERHEAD; 984 sp -= STACK_FRAME_OVERHEAD;
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 3b14d320e69f..98c2fc198712 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -32,6 +32,7 @@
32#include <trace/syscall.h> 32#include <trace/syscall.h>
33#include <linux/hw_breakpoint.h> 33#include <linux/hw_breakpoint.h>
34#include <linux/perf_event.h> 34#include <linux/perf_event.h>
35#include <linux/context_tracking.h>
35 36
36#include <asm/uaccess.h> 37#include <asm/uaccess.h>
37#include <asm/page.h> 38#include <asm/page.h>
@@ -1788,6 +1789,8 @@ long do_syscall_trace_enter(struct pt_regs *regs)
1788{ 1789{
1789 long ret = 0; 1790 long ret = 0;
1790 1791
1792 user_exit();
1793
1791 secure_computing_strict(regs->gpr[0]); 1794 secure_computing_strict(regs->gpr[0]);
1792 1795
1793 if (test_thread_flag(TIF_SYSCALL_TRACE) && 1796 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
@@ -1832,4 +1835,6 @@ void do_syscall_trace_leave(struct pt_regs *regs)
1832 step = test_thread_flag(TIF_SINGLESTEP); 1835 step = test_thread_flag(TIF_SINGLESTEP);
1833 if (step || test_thread_flag(TIF_SYSCALL_TRACE)) 1836 if (step || test_thread_flag(TIF_SYSCALL_TRACE))
1834 tracehook_report_syscall_exit(regs, step); 1837 tracehook_report_syscall_exit(regs, step);
1838
1839 user_enter();
1835} 1840}
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 1fd6e7b2f390..52add6f3e201 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -19,6 +19,7 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/capability.h> 20#include <linux/capability.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/cpu.h>
22#include <linux/smp.h> 23#include <linux/smp.h>
23#include <linux/completion.h> 24#include <linux/completion.h>
24#include <linux/cpumask.h> 25#include <linux/cpumask.h>
@@ -807,6 +808,95 @@ static void rtas_percpu_suspend_me(void *info)
807 __rtas_suspend_cpu((struct rtas_suspend_me_data *)info, 1); 808 __rtas_suspend_cpu((struct rtas_suspend_me_data *)info, 1);
808} 809}
809 810
811enum rtas_cpu_state {
812 DOWN,
813 UP,
814};
815
816#ifndef CONFIG_SMP
817static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
818 cpumask_var_t cpus)
819{
820 if (!cpumask_empty(cpus)) {
821 cpumask_clear(cpus);
822 return -EINVAL;
823 } else
824 return 0;
825}
826#else
827/* On return cpumask will be altered to indicate CPUs changed.
828 * CPUs with states changed will be set in the mask,
829 * CPUs with status unchanged will be unset in the mask. */
830static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
831 cpumask_var_t cpus)
832{
833 int cpu;
834 int cpuret = 0;
835 int ret = 0;
836
837 if (cpumask_empty(cpus))
838 return 0;
839
840 for_each_cpu(cpu, cpus) {
841 switch (state) {
842 case DOWN:
843 cpuret = cpu_down(cpu);
844 break;
845 case UP:
846 cpuret = cpu_up(cpu);
847 break;
848 }
849 if (cpuret) {
850 pr_debug("%s: cpu_%s for cpu#%d returned %d.\n",
851 __func__,
852 ((state == UP) ? "up" : "down"),
853 cpu, cpuret);
854 if (!ret)
855 ret = cpuret;
856 if (state == UP) {
857 /* clear bits for unchanged cpus, return */
858 cpumask_shift_right(cpus, cpus, cpu);
859 cpumask_shift_left(cpus, cpus, cpu);
860 break;
861 } else {
862 /* clear bit for unchanged cpu, continue */
863 cpumask_clear_cpu(cpu, cpus);
864 }
865 }
866 }
867
868 return ret;
869}
870#endif
871
872int rtas_online_cpus_mask(cpumask_var_t cpus)
873{
874 int ret;
875
876 ret = rtas_cpu_state_change_mask(UP, cpus);
877
878 if (ret) {
879 cpumask_var_t tmp_mask;
880
881 if (!alloc_cpumask_var(&tmp_mask, GFP_TEMPORARY))
882 return ret;
883
884 /* Use tmp_mask to preserve cpus mask from first failure */
885 cpumask_copy(tmp_mask, cpus);
886 rtas_offline_cpus_mask(tmp_mask);
887 free_cpumask_var(tmp_mask);
888 }
889
890 return ret;
891}
892EXPORT_SYMBOL(rtas_online_cpus_mask);
893
894int rtas_offline_cpus_mask(cpumask_var_t cpus)
895{
896 return rtas_cpu_state_change_mask(DOWN, cpus);
897}
898EXPORT_SYMBOL(rtas_offline_cpus_mask);
899
810int rtas_ibm_suspend_me(struct rtas_args *args) 900int rtas_ibm_suspend_me(struct rtas_args *args)
811{ 901{
812 long state; 902 long state;
@@ -814,6 +904,8 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
814 unsigned long retbuf[PLPAR_HCALL_BUFSIZE]; 904 unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
815 struct rtas_suspend_me_data data; 905 struct rtas_suspend_me_data data;
816 DECLARE_COMPLETION_ONSTACK(done); 906 DECLARE_COMPLETION_ONSTACK(done);
907 cpumask_var_t offline_mask;
908 int cpuret;
817 909
818 if (!rtas_service_present("ibm,suspend-me")) 910 if (!rtas_service_present("ibm,suspend-me"))
819 return -ENOSYS; 911 return -ENOSYS;
@@ -837,11 +929,24 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
837 return 0; 929 return 0;
838 } 930 }
839 931
932 if (!alloc_cpumask_var(&offline_mask, GFP_TEMPORARY))
933 return -ENOMEM;
934
840 atomic_set(&data.working, 0); 935 atomic_set(&data.working, 0);
841 atomic_set(&data.done, 0); 936 atomic_set(&data.done, 0);
842 atomic_set(&data.error, 0); 937 atomic_set(&data.error, 0);
843 data.token = rtas_token("ibm,suspend-me"); 938 data.token = rtas_token("ibm,suspend-me");
844 data.complete = &done; 939 data.complete = &done;
940
941 /* All present CPUs must be online */
942 cpumask_andnot(offline_mask, cpu_present_mask, cpu_online_mask);
943 cpuret = rtas_online_cpus_mask(offline_mask);
944 if (cpuret) {
945 pr_err("%s: Could not bring present CPUs online.\n", __func__);
946 atomic_set(&data.error, cpuret);
947 goto out;
948 }
949
845 stop_topology_update(); 950 stop_topology_update();
846 951
847 /* Call function on all CPUs. One of us will make the 952 /* Call function on all CPUs. One of us will make the
@@ -857,6 +962,14 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
857 962
858 start_topology_update(); 963 start_topology_update();
859 964
965 /* Take down CPUs not online prior to suspend */
966 cpuret = rtas_offline_cpus_mask(offline_mask);
967 if (cpuret)
968 pr_warn("%s: Could not restore CPUs to offline state.\n",
969 __func__);
970
971out:
972 free_cpumask_var(offline_mask);
860 return atomic_read(&data.error); 973 return atomic_read(&data.error);
861} 974}
862#else /* CONFIG_PPC_PSERIES */ 975#else /* CONFIG_PPC_PSERIES */
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index 5b3022470126..2f3cdb01506d 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -89,6 +89,7 @@
89 89
90/* Array sizes */ 90/* Array sizes */
91#define VALIDATE_BUF_SIZE 4096 91#define VALIDATE_BUF_SIZE 4096
92#define VALIDATE_MSG_LEN 256
92#define RTAS_MSG_MAXLEN 64 93#define RTAS_MSG_MAXLEN 64
93 94
94/* Quirk - RTAS requires 4k list length and block size */ 95/* Quirk - RTAS requires 4k list length and block size */
@@ -466,7 +467,7 @@ static void validate_flash(struct rtas_validate_flash_t *args_buf)
466} 467}
467 468
468static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf, 469static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf,
469 char *msg) 470 char *msg, int msglen)
470{ 471{
471 int n; 472 int n;
472 473
@@ -474,7 +475,8 @@ static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf,
474 n = sprintf(msg, "%d\n", args_buf->update_results); 475 n = sprintf(msg, "%d\n", args_buf->update_results);
475 if ((args_buf->update_results >= VALIDATE_CUR_UNKNOWN) || 476 if ((args_buf->update_results >= VALIDATE_CUR_UNKNOWN) ||
476 (args_buf->update_results == VALIDATE_TMP_UPDATE)) 477 (args_buf->update_results == VALIDATE_TMP_UPDATE))
477 n += sprintf(msg + n, "%s\n", args_buf->buf); 478 n += snprintf(msg + n, msglen - n, "%s\n",
479 args_buf->buf);
478 } else { 480 } else {
479 n = sprintf(msg, "%d\n", args_buf->status); 481 n = sprintf(msg, "%d\n", args_buf->status);
480 } 482 }
@@ -486,11 +488,11 @@ static ssize_t validate_flash_read(struct file *file, char __user *buf,
486{ 488{
487 struct rtas_validate_flash_t *const args_buf = 489 struct rtas_validate_flash_t *const args_buf =
488 &rtas_validate_flash_data; 490 &rtas_validate_flash_data;
489 char msg[RTAS_MSG_MAXLEN]; 491 char msg[VALIDATE_MSG_LEN];
490 int msglen; 492 int msglen;
491 493
492 mutex_lock(&rtas_validate_flash_mutex); 494 mutex_lock(&rtas_validate_flash_mutex);
493 msglen = get_validate_flash_msg(args_buf, msg); 495 msglen = get_validate_flash_msg(args_buf, msg, VALIDATE_MSG_LEN);
494 mutex_unlock(&rtas_validate_flash_mutex); 496 mutex_unlock(&rtas_validate_flash_mutex);
495 497
496 return simple_read_from_buffer(buf, count, ppos, msg, msglen); 498 return simple_read_from_buffer(buf, count, ppos, msg, msglen);
diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c
index cf12eae02de5..457e97aa2945 100644
--- a/arch/powerpc/kernel/signal.c
+++ b/arch/powerpc/kernel/signal.c
@@ -13,10 +13,12 @@
13#include <linux/signal.h> 13#include <linux/signal.h>
14#include <linux/uprobes.h> 14#include <linux/uprobes.h>
15#include <linux/key.h> 15#include <linux/key.h>
16#include <linux/context_tracking.h>
16#include <asm/hw_breakpoint.h> 17#include <asm/hw_breakpoint.h>
17#include <asm/uaccess.h> 18#include <asm/uaccess.h>
18#include <asm/unistd.h> 19#include <asm/unistd.h>
19#include <asm/debug.h> 20#include <asm/debug.h>
21#include <asm/tm.h>
20 22
21#include "signal.h" 23#include "signal.h"
22 24
@@ -24,18 +26,18 @@
24 * through debug.exception-trace sysctl. 26 * through debug.exception-trace sysctl.
25 */ 27 */
26 28
27int show_unhandled_signals = 0; 29int show_unhandled_signals = 1;
28 30
29/* 31/*
30 * Allocate space for the signal frame 32 * Allocate space for the signal frame
31 */ 33 */
32void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, 34void __user * get_sigframe(struct k_sigaction *ka, unsigned long sp,
33 size_t frame_size, int is_32) 35 size_t frame_size, int is_32)
34{ 36{
35 unsigned long oldsp, newsp; 37 unsigned long oldsp, newsp;
36 38
37 /* Default to using normal stack */ 39 /* Default to using normal stack */
38 oldsp = get_clean_sp(regs, is_32); 40 oldsp = get_clean_sp(sp, is_32);
39 41
40 /* Check for alt stack */ 42 /* Check for alt stack */
41 if ((ka->sa.sa_flags & SA_ONSTACK) && 43 if ((ka->sa.sa_flags & SA_ONSTACK) &&
@@ -159,6 +161,8 @@ static int do_signal(struct pt_regs *regs)
159 161
160void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags) 162void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags)
161{ 163{
164 user_exit();
165
162 if (thread_info_flags & _TIF_UPROBE) 166 if (thread_info_flags & _TIF_UPROBE)
163 uprobe_notify_resume(regs); 167 uprobe_notify_resume(regs);
164 168
@@ -169,4 +173,41 @@ void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags)
169 clear_thread_flag(TIF_NOTIFY_RESUME); 173 clear_thread_flag(TIF_NOTIFY_RESUME);
170 tracehook_notify_resume(regs); 174 tracehook_notify_resume(regs);
171 } 175 }
176
177 user_enter();
178}
179
180unsigned long get_tm_stackpointer(struct pt_regs *regs)
181{
182 /* When in an active transaction that takes a signal, we need to be
183 * careful with the stack. It's possible that the stack has moved back
184 * up after the tbegin. The obvious case here is when the tbegin is
185 * called inside a function that returns before a tend. In this case,
186 * the stack is part of the checkpointed transactional memory state.
187 * If we write over this non transactionally or in suspend, we are in
188 * trouble because if we get a tm abort, the program counter and stack
189 * pointer will be back at the tbegin but our in memory stack won't be
190 * valid anymore.
191 *
192 * To avoid this, when taking a signal in an active transaction, we
193 * need to use the stack pointer from the checkpointed state, rather
194 * than the speculated state. This ensures that the signal context
195 * (written tm suspended) will be written below the stack required for
196 * the rollback. The transaction is aborted becuase of the treclaim,
197 * so any memory written between the tbegin and the signal will be
198 * rolled back anyway.
199 *
200 * For signals taken in non-TM or suspended mode, we use the
201 * normal/non-checkpointed stack pointer.
202 */
203
204#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
205 if (MSR_TM_ACTIVE(regs->msr)) {
206 tm_enable();
207 tm_reclaim(&current->thread, regs->msr, TM_CAUSE_SIGNAL);
208 if (MSR_TM_TRANSACTIONAL(regs->msr))
209 return current->thread.ckpt_regs.gpr[1];
210 }
211#endif
212 return regs->gpr[1];
172} 213}
diff --git a/arch/powerpc/kernel/signal.h b/arch/powerpc/kernel/signal.h
index ec84c901ceab..c69b9aeb9f23 100644
--- a/arch/powerpc/kernel/signal.h
+++ b/arch/powerpc/kernel/signal.h
@@ -12,7 +12,7 @@
12 12
13extern void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags); 13extern void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags);
14 14
15extern void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, 15extern void __user * get_sigframe(struct k_sigaction *ka, unsigned long sp,
16 size_t frame_size, int is_32); 16 size_t frame_size, int is_32);
17 17
18extern int handle_signal32(unsigned long sig, struct k_sigaction *ka, 18extern int handle_signal32(unsigned long sig, struct k_sigaction *ka,
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 95068bf569ad..201385c3a1ae 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -503,12 +503,6 @@ static int save_tm_user_regs(struct pt_regs *regs,
503{ 503{
504 unsigned long msr = regs->msr; 504 unsigned long msr = regs->msr;
505 505
506 /* tm_reclaim rolls back all reg states, updating thread.ckpt_regs,
507 * thread.transact_fpr[], thread.transact_vr[], etc.
508 */
509 tm_enable();
510 tm_reclaim(&current->thread, msr, TM_CAUSE_SIGNAL);
511
512 /* Make sure floating point registers are stored in regs */ 506 /* Make sure floating point registers are stored in regs */
513 flush_fp_to_thread(current); 507 flush_fp_to_thread(current);
514 508
@@ -965,7 +959,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
965 959
966 /* Set up Signal Frame */ 960 /* Set up Signal Frame */
967 /* Put a Real Time Context onto stack */ 961 /* Put a Real Time Context onto stack */
968 rt_sf = get_sigframe(ka, regs, sizeof(*rt_sf), 1); 962 rt_sf = get_sigframe(ka, get_tm_stackpointer(regs), sizeof(*rt_sf), 1);
969 addr = rt_sf; 963 addr = rt_sf;
970 if (unlikely(rt_sf == NULL)) 964 if (unlikely(rt_sf == NULL))
971 goto badframe; 965 goto badframe;
@@ -1403,7 +1397,7 @@ int handle_signal32(unsigned long sig, struct k_sigaction *ka,
1403 unsigned long tramp; 1397 unsigned long tramp;
1404 1398
1405 /* Set up Signal Frame */ 1399 /* Set up Signal Frame */
1406 frame = get_sigframe(ka, regs, sizeof(*frame), 1); 1400 frame = get_sigframe(ka, get_tm_stackpointer(regs), sizeof(*frame), 1);
1407 if (unlikely(frame == NULL)) 1401 if (unlikely(frame == NULL))
1408 goto badframe; 1402 goto badframe;
1409 sc = (struct sigcontext __user *) &frame->sctx; 1403 sc = (struct sigcontext __user *) &frame->sctx;
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index c1794286098c..345947367ec0 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -154,11 +154,12 @@ static long setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
154 * As above, but Transactional Memory is in use, so deliver sigcontexts 154 * As above, but Transactional Memory is in use, so deliver sigcontexts
155 * containing checkpointed and transactional register states. 155 * containing checkpointed and transactional register states.
156 * 156 *
157 * To do this, we treclaim to gather both sets of registers and set up the 157 * To do this, we treclaim (done before entering here) to gather both sets of
158 * 'normal' sigcontext registers with rolled-back register values such that a 158 * registers and set up the 'normal' sigcontext registers with rolled-back
159 * simple signal handler sees a correct checkpointed register state. 159 * register values such that a simple signal handler sees a correct
160 * If interested, a TM-aware sighandler can examine the transactional registers 160 * checkpointed register state. If interested, a TM-aware sighandler can
161 * in the 2nd sigcontext to determine the real origin of the signal. 161 * examine the transactional registers in the 2nd sigcontext to determine the
162 * real origin of the signal.
162 */ 163 */
163static long setup_tm_sigcontexts(struct sigcontext __user *sc, 164static long setup_tm_sigcontexts(struct sigcontext __user *sc,
164 struct sigcontext __user *tm_sc, 165 struct sigcontext __user *tm_sc,
@@ -184,16 +185,6 @@ static long setup_tm_sigcontexts(struct sigcontext __user *sc,
184 185
185 BUG_ON(!MSR_TM_ACTIVE(regs->msr)); 186 BUG_ON(!MSR_TM_ACTIVE(regs->msr));
186 187
187 /* tm_reclaim rolls back all reg states, saving checkpointed (older)
188 * GPRs to thread.ckpt_regs and (if used) FPRs to (newer)
189 * thread.transact_fp and/or VRs to (newer) thread.transact_vr.
190 * THEN we save out FP/VRs, if necessary, to the checkpointed (older)
191 * thread.fr[]/vr[]s. The transactional (newer) GPRs are on the
192 * stack, in *regs.
193 */
194 tm_enable();
195 tm_reclaim(&current->thread, msr, TM_CAUSE_SIGNAL);
196
197 flush_fp_to_thread(current); 188 flush_fp_to_thread(current);
198 189
199#ifdef CONFIG_ALTIVEC 190#ifdef CONFIG_ALTIVEC
@@ -711,7 +702,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
711 unsigned long newsp = 0; 702 unsigned long newsp = 0;
712 long err = 0; 703 long err = 0;
713 704
714 frame = get_sigframe(ka, regs, sizeof(*frame), 0); 705 frame = get_sigframe(ka, get_tm_stackpointer(regs), sizeof(*frame), 0);
715 if (unlikely(frame == NULL)) 706 if (unlikely(frame == NULL))
716 goto badframe; 707 goto badframe;
717 708
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 83efa2f7d926..f18c79c324ef 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -35,6 +35,7 @@
35#include <linux/kdebug.h> 35#include <linux/kdebug.h>
36#include <linux/debugfs.h> 36#include <linux/debugfs.h>
37#include <linux/ratelimit.h> 37#include <linux/ratelimit.h>
38#include <linux/context_tracking.h>
38 39
39#include <asm/emulated_ops.h> 40#include <asm/emulated_ops.h>
40#include <asm/pgtable.h> 41#include <asm/pgtable.h>
@@ -52,6 +53,7 @@
52#ifdef CONFIG_PPC64 53#ifdef CONFIG_PPC64
53#include <asm/firmware.h> 54#include <asm/firmware.h>
54#include <asm/processor.h> 55#include <asm/processor.h>
56#include <asm/tm.h>
55#endif 57#endif
56#include <asm/kexec.h> 58#include <asm/kexec.h>
57#include <asm/ppc-opcode.h> 59#include <asm/ppc-opcode.h>
@@ -667,6 +669,7 @@ int machine_check_generic(struct pt_regs *regs)
667 669
668void machine_check_exception(struct pt_regs *regs) 670void machine_check_exception(struct pt_regs *regs)
669{ 671{
672 enum ctx_state prev_state = exception_enter();
670 int recover = 0; 673 int recover = 0;
671 674
672 __get_cpu_var(irq_stat).mce_exceptions++; 675 __get_cpu_var(irq_stat).mce_exceptions++;
@@ -683,7 +686,7 @@ void machine_check_exception(struct pt_regs *regs)
683 recover = cur_cpu_spec->machine_check(regs); 686 recover = cur_cpu_spec->machine_check(regs);
684 687
685 if (recover > 0) 688 if (recover > 0)
686 return; 689 goto bail;
687 690
688#if defined(CONFIG_8xx) && defined(CONFIG_PCI) 691#if defined(CONFIG_8xx) && defined(CONFIG_PCI)
689 /* the qspan pci read routines can cause machine checks -- Cort 692 /* the qspan pci read routines can cause machine checks -- Cort
@@ -693,20 +696,23 @@ void machine_check_exception(struct pt_regs *regs)
693 * -- BenH 696 * -- BenH
694 */ 697 */
695 bad_page_fault(regs, regs->dar, SIGBUS); 698 bad_page_fault(regs, regs->dar, SIGBUS);
696 return; 699 goto bail;
697#endif 700#endif
698 701
699 if (debugger_fault_handler(regs)) 702 if (debugger_fault_handler(regs))
700 return; 703 goto bail;
701 704
702 if (check_io_access(regs)) 705 if (check_io_access(regs))
703 return; 706 goto bail;
704 707
705 die("Machine check", regs, SIGBUS); 708 die("Machine check", regs, SIGBUS);
706 709
707 /* Must die if the interrupt is not recoverable */ 710 /* Must die if the interrupt is not recoverable */
708 if (!(regs->msr & MSR_RI)) 711 if (!(regs->msr & MSR_RI))
709 panic("Unrecoverable Machine check"); 712 panic("Unrecoverable Machine check");
713
714bail:
715 exception_exit(prev_state);
710} 716}
711 717
712void SMIException(struct pt_regs *regs) 718void SMIException(struct pt_regs *regs)
@@ -716,20 +722,29 @@ void SMIException(struct pt_regs *regs)
716 722
717void unknown_exception(struct pt_regs *regs) 723void unknown_exception(struct pt_regs *regs)
718{ 724{
725 enum ctx_state prev_state = exception_enter();
726
719 printk("Bad trap at PC: %lx, SR: %lx, vector=%lx\n", 727 printk("Bad trap at PC: %lx, SR: %lx, vector=%lx\n",
720 regs->nip, regs->msr, regs->trap); 728 regs->nip, regs->msr, regs->trap);
721 729
722 _exception(SIGTRAP, regs, 0, 0); 730 _exception(SIGTRAP, regs, 0, 0);
731
732 exception_exit(prev_state);
723} 733}
724 734
725void instruction_breakpoint_exception(struct pt_regs *regs) 735void instruction_breakpoint_exception(struct pt_regs *regs)
726{ 736{
737 enum ctx_state prev_state = exception_enter();
738
727 if (notify_die(DIE_IABR_MATCH, "iabr_match", regs, 5, 739 if (notify_die(DIE_IABR_MATCH, "iabr_match", regs, 5,
728 5, SIGTRAP) == NOTIFY_STOP) 740 5, SIGTRAP) == NOTIFY_STOP)
729 return; 741 goto bail;
730 if (debugger_iabr_match(regs)) 742 if (debugger_iabr_match(regs))
731 return; 743 goto bail;
732 _exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip); 744 _exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip);
745
746bail:
747 exception_exit(prev_state);
733} 748}
734 749
735void RunModeException(struct pt_regs *regs) 750void RunModeException(struct pt_regs *regs)
@@ -739,15 +754,20 @@ void RunModeException(struct pt_regs *regs)
739 754
740void __kprobes single_step_exception(struct pt_regs *regs) 755void __kprobes single_step_exception(struct pt_regs *regs)
741{ 756{
757 enum ctx_state prev_state = exception_enter();
758
742 clear_single_step(regs); 759 clear_single_step(regs);
743 760
744 if (notify_die(DIE_SSTEP, "single_step", regs, 5, 761 if (notify_die(DIE_SSTEP, "single_step", regs, 5,
745 5, SIGTRAP) == NOTIFY_STOP) 762 5, SIGTRAP) == NOTIFY_STOP)
746 return; 763 goto bail;
747 if (debugger_sstep(regs)) 764 if (debugger_sstep(regs))
748 return; 765 goto bail;
749 766
750 _exception(SIGTRAP, regs, TRAP_TRACE, regs->nip); 767 _exception(SIGTRAP, regs, TRAP_TRACE, regs->nip);
768
769bail:
770 exception_exit(prev_state);
751} 771}
752 772
753/* 773/*
@@ -913,6 +933,28 @@ static int emulate_isel(struct pt_regs *regs, u32 instword)
913 return 0; 933 return 0;
914} 934}
915 935
936#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
937static inline bool tm_abort_check(struct pt_regs *regs, int cause)
938{
939 /* If we're emulating a load/store in an active transaction, we cannot
940 * emulate it as the kernel operates in transaction suspended context.
941 * We need to abort the transaction. This creates a persistent TM
942 * abort so tell the user what caused it with a new code.
943 */
944 if (MSR_TM_TRANSACTIONAL(regs->msr)) {
945 tm_enable();
946 tm_abort(cause);
947 return true;
948 }
949 return false;
950}
951#else
952static inline bool tm_abort_check(struct pt_regs *regs, int reason)
953{
954 return false;
955}
956#endif
957
916static int emulate_instruction(struct pt_regs *regs) 958static int emulate_instruction(struct pt_regs *regs)
917{ 959{
918 u32 instword; 960 u32 instword;
@@ -952,6 +994,9 @@ static int emulate_instruction(struct pt_regs *regs)
952 994
953 /* Emulate load/store string insn. */ 995 /* Emulate load/store string insn. */
954 if ((instword & PPC_INST_STRING_GEN_MASK) == PPC_INST_STRING) { 996 if ((instword & PPC_INST_STRING_GEN_MASK) == PPC_INST_STRING) {
997 if (tm_abort_check(regs,
998 TM_CAUSE_EMULATE | TM_CAUSE_PERSISTENT))
999 return -EINVAL;
955 PPC_WARN_EMULATED(string, regs); 1000 PPC_WARN_EMULATED(string, regs);
956 return emulate_string_inst(regs, instword); 1001 return emulate_string_inst(regs, instword);
957 } 1002 }
@@ -1005,6 +1050,7 @@ int is_valid_bugaddr(unsigned long addr)
1005 1050
1006void __kprobes program_check_exception(struct pt_regs *regs) 1051void __kprobes program_check_exception(struct pt_regs *regs)
1007{ 1052{
1053 enum ctx_state prev_state = exception_enter();
1008 unsigned int reason = get_reason(regs); 1054 unsigned int reason = get_reason(regs);
1009 extern int do_mathemu(struct pt_regs *regs); 1055 extern int do_mathemu(struct pt_regs *regs);
1010 1056
@@ -1014,26 +1060,26 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1014 if (reason & REASON_FP) { 1060 if (reason & REASON_FP) {
1015 /* IEEE FP exception */ 1061 /* IEEE FP exception */
1016 parse_fpe(regs); 1062 parse_fpe(regs);
1017 return; 1063 goto bail;
1018 } 1064 }
1019 if (reason & REASON_TRAP) { 1065 if (reason & REASON_TRAP) {
1020 /* Debugger is first in line to stop recursive faults in 1066 /* Debugger is first in line to stop recursive faults in
1021 * rcu_lock, notify_die, or atomic_notifier_call_chain */ 1067 * rcu_lock, notify_die, or atomic_notifier_call_chain */
1022 if (debugger_bpt(regs)) 1068 if (debugger_bpt(regs))
1023 return; 1069 goto bail;
1024 1070
1025 /* trap exception */ 1071 /* trap exception */
1026 if (notify_die(DIE_BPT, "breakpoint", regs, 5, 5, SIGTRAP) 1072 if (notify_die(DIE_BPT, "breakpoint", regs, 5, 5, SIGTRAP)
1027 == NOTIFY_STOP) 1073 == NOTIFY_STOP)
1028 return; 1074 goto bail;
1029 1075
1030 if (!(regs->msr & MSR_PR) && /* not user-mode */ 1076 if (!(regs->msr & MSR_PR) && /* not user-mode */
1031 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) { 1077 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) {
1032 regs->nip += 4; 1078 regs->nip += 4;
1033 return; 1079 goto bail;
1034 } 1080 }
1035 _exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip); 1081 _exception(SIGTRAP, regs, TRAP_BRKPT, regs->nip);
1036 return; 1082 goto bail;
1037 } 1083 }
1038#ifdef CONFIG_PPC_TRANSACTIONAL_MEM 1084#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
1039 if (reason & REASON_TM) { 1085 if (reason & REASON_TM) {
@@ -1049,7 +1095,7 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1049 if (!user_mode(regs) && 1095 if (!user_mode(regs) &&
1050 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) { 1096 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) {
1051 regs->nip += 4; 1097 regs->nip += 4;
1052 return; 1098 goto bail;
1053 } 1099 }
1054 /* If usermode caused this, it's done something illegal and 1100 /* If usermode caused this, it's done something illegal and
1055 * gets a SIGILL slap on the wrist. We call it an illegal 1101 * gets a SIGILL slap on the wrist. We call it an illegal
@@ -1059,7 +1105,7 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1059 */ 1105 */
1060 if (user_mode(regs)) { 1106 if (user_mode(regs)) {
1061 _exception(SIGILL, regs, ILL_ILLOPN, regs->nip); 1107 _exception(SIGILL, regs, ILL_ILLOPN, regs->nip);
1062 return; 1108 goto bail;
1063 } else { 1109 } else {
1064 printk(KERN_EMERG "Unexpected TM Bad Thing exception " 1110 printk(KERN_EMERG "Unexpected TM Bad Thing exception "
1065 "at %lx (msr 0x%x)\n", regs->nip, reason); 1111 "at %lx (msr 0x%x)\n", regs->nip, reason);
@@ -1083,16 +1129,16 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1083 switch (do_mathemu(regs)) { 1129 switch (do_mathemu(regs)) {
1084 case 0: 1130 case 0:
1085 emulate_single_step(regs); 1131 emulate_single_step(regs);
1086 return; 1132 goto bail;
1087 case 1: { 1133 case 1: {
1088 int code = 0; 1134 int code = 0;
1089 code = __parse_fpscr(current->thread.fpscr.val); 1135 code = __parse_fpscr(current->thread.fpscr.val);
1090 _exception(SIGFPE, regs, code, regs->nip); 1136 _exception(SIGFPE, regs, code, regs->nip);
1091 return; 1137 goto bail;
1092 } 1138 }
1093 case -EFAULT: 1139 case -EFAULT:
1094 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip); 1140 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
1095 return; 1141 goto bail;
1096 } 1142 }
1097 /* fall through on any other errors */ 1143 /* fall through on any other errors */
1098#endif /* CONFIG_MATH_EMULATION */ 1144#endif /* CONFIG_MATH_EMULATION */
@@ -1103,10 +1149,10 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1103 case 0: 1149 case 0:
1104 regs->nip += 4; 1150 regs->nip += 4;
1105 emulate_single_step(regs); 1151 emulate_single_step(regs);
1106 return; 1152 goto bail;
1107 case -EFAULT: 1153 case -EFAULT:
1108 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip); 1154 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
1109 return; 1155 goto bail;
1110 } 1156 }
1111 } 1157 }
1112 1158
@@ -1114,16 +1160,23 @@ void __kprobes program_check_exception(struct pt_regs *regs)
1114 _exception(SIGILL, regs, ILL_PRVOPC, regs->nip); 1160 _exception(SIGILL, regs, ILL_PRVOPC, regs->nip);
1115 else 1161 else
1116 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip); 1162 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
1163
1164bail:
1165 exception_exit(prev_state);
1117} 1166}
1118 1167
1119void alignment_exception(struct pt_regs *regs) 1168void alignment_exception(struct pt_regs *regs)
1120{ 1169{
1170 enum ctx_state prev_state = exception_enter();
1121 int sig, code, fixed = 0; 1171 int sig, code, fixed = 0;
1122 1172
1123 /* We restore the interrupt state now */ 1173 /* We restore the interrupt state now */
1124 if (!arch_irq_disabled_regs(regs)) 1174 if (!arch_irq_disabled_regs(regs))
1125 local_irq_enable(); 1175 local_irq_enable();
1126 1176
1177 if (tm_abort_check(regs, TM_CAUSE_ALIGNMENT | TM_CAUSE_PERSISTENT))
1178 goto bail;
1179
1127 /* we don't implement logging of alignment exceptions */ 1180 /* we don't implement logging of alignment exceptions */
1128 if (!(current->thread.align_ctl & PR_UNALIGN_SIGBUS)) 1181 if (!(current->thread.align_ctl & PR_UNALIGN_SIGBUS))
1129 fixed = fix_alignment(regs); 1182 fixed = fix_alignment(regs);
@@ -1131,7 +1184,7 @@ void alignment_exception(struct pt_regs *regs)
1131 if (fixed == 1) { 1184 if (fixed == 1) {
1132 regs->nip += 4; /* skip over emulated instruction */ 1185 regs->nip += 4; /* skip over emulated instruction */
1133 emulate_single_step(regs); 1186 emulate_single_step(regs);
1134 return; 1187 goto bail;
1135 } 1188 }
1136 1189
1137 /* Operand address was bad */ 1190 /* Operand address was bad */
@@ -1146,6 +1199,9 @@ void alignment_exception(struct pt_regs *regs)
1146 _exception(sig, regs, code, regs->dar); 1199 _exception(sig, regs, code, regs->dar);
1147 else 1200 else
1148 bad_page_fault(regs, regs->dar, sig); 1201 bad_page_fault(regs, regs->dar, sig);
1202
1203bail:
1204 exception_exit(prev_state);
1149} 1205}
1150 1206
1151void StackOverflow(struct pt_regs *regs) 1207void StackOverflow(struct pt_regs *regs)
@@ -1174,23 +1230,32 @@ void trace_syscall(struct pt_regs *regs)
1174 1230
1175void kernel_fp_unavailable_exception(struct pt_regs *regs) 1231void kernel_fp_unavailable_exception(struct pt_regs *regs)
1176{ 1232{
1233 enum ctx_state prev_state = exception_enter();
1234
1177 printk(KERN_EMERG "Unrecoverable FP Unavailable Exception " 1235 printk(KERN_EMERG "Unrecoverable FP Unavailable Exception "
1178 "%lx at %lx\n", regs->trap, regs->nip); 1236 "%lx at %lx\n", regs->trap, regs->nip);
1179 die("Unrecoverable FP Unavailable Exception", regs, SIGABRT); 1237 die("Unrecoverable FP Unavailable Exception", regs, SIGABRT);
1238
1239 exception_exit(prev_state);
1180} 1240}
1181 1241
1182void altivec_unavailable_exception(struct pt_regs *regs) 1242void altivec_unavailable_exception(struct pt_regs *regs)
1183{ 1243{
1244 enum ctx_state prev_state = exception_enter();
1245
1184 if (user_mode(regs)) { 1246 if (user_mode(regs)) {
1185 /* A user program has executed an altivec instruction, 1247 /* A user program has executed an altivec instruction,
1186 but this kernel doesn't support altivec. */ 1248 but this kernel doesn't support altivec. */
1187 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip); 1249 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
1188 return; 1250 goto bail;
1189 } 1251 }
1190 1252
1191 printk(KERN_EMERG "Unrecoverable VMX/Altivec Unavailable Exception " 1253 printk(KERN_EMERG "Unrecoverable VMX/Altivec Unavailable Exception "
1192 "%lx at %lx\n", regs->trap, regs->nip); 1254 "%lx at %lx\n", regs->trap, regs->nip);
1193 die("Unrecoverable VMX/Altivec Unavailable Exception", regs, SIGABRT); 1255 die("Unrecoverable VMX/Altivec Unavailable Exception", regs, SIGABRT);
1256
1257bail:
1258 exception_exit(prev_state);
1194} 1259}
1195 1260
1196void vsx_unavailable_exception(struct pt_regs *regs) 1261void vsx_unavailable_exception(struct pt_regs *regs)
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index 13b867093499..9d3fdcd66290 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -64,6 +64,9 @@ void __init udbg_early_init(void)
64 udbg_init_usbgecko(); 64 udbg_init_usbgecko();
65#elif defined(CONFIG_PPC_EARLY_DEBUG_WSP) 65#elif defined(CONFIG_PPC_EARLY_DEBUG_WSP)
66 udbg_init_wsp(); 66 udbg_init_wsp();
67#elif defined(CONFIG_PPC_EARLY_DEBUG_MEMCONS)
68 /* In memory console */
69 udbg_init_memcons();
67#elif defined(CONFIG_PPC_EARLY_DEBUG_EHV_BC) 70#elif defined(CONFIG_PPC_EARLY_DEBUG_EHV_BC)
68 udbg_init_ehv_bc(); 71 udbg_init_ehv_bc();
69#elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC) 72#elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 9de24f8e03c7..550f5928b394 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -562,6 +562,8 @@ int kvmppc_pseries_do_hcall(struct kvm_vcpu *vcpu)
562 case H_CPPR: 562 case H_CPPR:
563 case H_EOI: 563 case H_EOI:
564 case H_IPI: 564 case H_IPI:
565 case H_IPOLL:
566 case H_XIRR_X:
565 if (kvmppc_xics_enabled(vcpu)) { 567 if (kvmppc_xics_enabled(vcpu)) {
566 ret = kvmppc_xics_hcall(vcpu, req); 568 ret = kvmppc_xics_hcall(vcpu, req);
567 break; 569 break;
diff --git a/arch/powerpc/kvm/book3s_pr_papr.c b/arch/powerpc/kvm/book3s_pr_papr.c
index b24309c6c2d5..da0e0bc268bd 100644
--- a/arch/powerpc/kvm/book3s_pr_papr.c
+++ b/arch/powerpc/kvm/book3s_pr_papr.c
@@ -257,6 +257,8 @@ int kvmppc_h_pr(struct kvm_vcpu *vcpu, unsigned long cmd)
257 case H_CPPR: 257 case H_CPPR:
258 case H_EOI: 258 case H_EOI:
259 case H_IPI: 259 case H_IPI:
260 case H_IPOLL:
261 case H_XIRR_X:
260 if (kvmppc_xics_enabled(vcpu)) 262 if (kvmppc_xics_enabled(vcpu))
261 return kvmppc_h_pr_xics_hcall(vcpu, cmd); 263 return kvmppc_h_pr_xics_hcall(vcpu, cmd);
262 break; 264 break;
diff --git a/arch/powerpc/kvm/book3s_xics.c b/arch/powerpc/kvm/book3s_xics.c
index f7a103756618..94c1dd46b83d 100644
--- a/arch/powerpc/kvm/book3s_xics.c
+++ b/arch/powerpc/kvm/book3s_xics.c
@@ -650,6 +650,23 @@ static noinline int kvmppc_h_ipi(struct kvm_vcpu *vcpu, unsigned long server,
650 return H_SUCCESS; 650 return H_SUCCESS;
651} 651}
652 652
653static int kvmppc_h_ipoll(struct kvm_vcpu *vcpu, unsigned long server)
654{
655 union kvmppc_icp_state state;
656 struct kvmppc_icp *icp;
657
658 icp = vcpu->arch.icp;
659 if (icp->server_num != server) {
660 icp = kvmppc_xics_find_server(vcpu->kvm, server);
661 if (!icp)
662 return H_PARAMETER;
663 }
664 state = ACCESS_ONCE(icp->state);
665 kvmppc_set_gpr(vcpu, 4, ((u32)state.cppr << 24) | state.xisr);
666 kvmppc_set_gpr(vcpu, 5, state.mfrr);
667 return H_SUCCESS;
668}
669
653static noinline void kvmppc_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr) 670static noinline void kvmppc_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr)
654{ 671{
655 union kvmppc_icp_state old_state, new_state; 672 union kvmppc_icp_state old_state, new_state;
@@ -787,6 +804,18 @@ int kvmppc_xics_hcall(struct kvm_vcpu *vcpu, u32 req)
787 if (!xics || !vcpu->arch.icp) 804 if (!xics || !vcpu->arch.icp)
788 return H_HARDWARE; 805 return H_HARDWARE;
789 806
807 /* These requests don't have real-mode implementations at present */
808 switch (req) {
809 case H_XIRR_X:
810 res = kvmppc_h_xirr(vcpu);
811 kvmppc_set_gpr(vcpu, 4, res);
812 kvmppc_set_gpr(vcpu, 5, get_tb());
813 return rc;
814 case H_IPOLL:
815 rc = kvmppc_h_ipoll(vcpu, kvmppc_get_gpr(vcpu, 4));
816 return rc;
817 }
818
790 /* Check for real mode returning too hard */ 819 /* Check for real mode returning too hard */
791 if (xics->real_mode) 820 if (xics->real_mode)
792 return kvmppc_xics_rm_complete(vcpu, req); 821 return kvmppc_xics_rm_complete(vcpu, req);
diff --git a/arch/powerpc/lib/copypage_power7.S b/arch/powerpc/lib/copypage_power7.S
index 0ef75bf0695c..395c594722a2 100644
--- a/arch/powerpc/lib/copypage_power7.S
+++ b/arch/powerpc/lib/copypage_power7.S
@@ -28,13 +28,14 @@ _GLOBAL(copypage_power7)
28 * aligned we don't need to clear the bottom 7 bits of either 28 * aligned we don't need to clear the bottom 7 bits of either
29 * address. 29 * address.
30 */ 30 */
31 ori r9,r3,1 /* stream=1 */ 31 ori r9,r3,1 /* stream=1 => to */
32 32
33#ifdef CONFIG_PPC_64K_PAGES 33#ifdef CONFIG_PPC_64K_PAGES
34 lis r7,0x0E01 /* depth=7, units=512 */ 34 lis r7,0x0E01 /* depth=7
35 * units/cachelines=512 */
35#else 36#else
36 lis r7,0x0E00 /* depth=7 */ 37 lis r7,0x0E00 /* depth=7 */
37 ori r7,r7,0x1000 /* units=32 */ 38 ori r7,r7,0x1000 /* units/cachelines=32 */
38#endif 39#endif
39 ori r10,r7,1 /* stream=1 */ 40 ori r10,r7,1 /* stream=1 */
40 41
@@ -43,12 +44,14 @@ _GLOBAL(copypage_power7)
43 44
44.machine push 45.machine push
45.machine "power4" 46.machine "power4"
46 dcbt r0,r4,0b01000 47 /* setup read stream 0 */
47 dcbt r0,r7,0b01010 48 dcbt r0,r4,0b01000 /* addr from */
48 dcbtst r0,r9,0b01000 49 dcbt r0,r7,0b01010 /* length and depth from */
49 dcbtst r0,r10,0b01010 50 /* setup write stream 1 */
51 dcbtst r0,r9,0b01000 /* addr to */
52 dcbtst r0,r10,0b01010 /* length and depth to */
50 eieio 53 eieio
51 dcbt r0,r8,0b01010 /* GO */ 54 dcbt r0,r8,0b01010 /* all streams GO */
52.machine pop 55.machine pop
53 56
54#ifdef CONFIG_ALTIVEC 57#ifdef CONFIG_ALTIVEC
diff --git a/arch/powerpc/lib/copyuser_power7.S b/arch/powerpc/lib/copyuser_power7.S
index 0d24ff15f5f6..d1f11795a7ad 100644
--- a/arch/powerpc/lib/copyuser_power7.S
+++ b/arch/powerpc/lib/copyuser_power7.S
@@ -318,12 +318,14 @@ err1; stb r0,0(r3)
318 318
319.machine push 319.machine push
320.machine "power4" 320.machine "power4"
321 dcbt r0,r6,0b01000 321 /* setup read stream 0 */
322 dcbt r0,r7,0b01010 322 dcbt r0,r6,0b01000 /* addr from */
323 dcbtst r0,r9,0b01000 323 dcbt r0,r7,0b01010 /* length and depth from */
324 dcbtst r0,r10,0b01010 324 /* setup write stream 1 */
325 dcbtst r0,r9,0b01000 /* addr to */
326 dcbtst r0,r10,0b01010 /* length and depth to */
325 eieio 327 eieio
326 dcbt r0,r8,0b01010 /* GO */ 328 dcbt r0,r8,0b01010 /* all streams GO */
327.machine pop 329.machine pop
328 330
329 beq cr1,.Lunwind_stack_nonvmx_copy 331 beq cr1,.Lunwind_stack_nonvmx_copy
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 229951ffc351..8726779e1409 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -32,6 +32,7 @@
32#include <linux/perf_event.h> 32#include <linux/perf_event.h>
33#include <linux/magic.h> 33#include <linux/magic.h>
34#include <linux/ratelimit.h> 34#include <linux/ratelimit.h>
35#include <linux/context_tracking.h>
35 36
36#include <asm/firmware.h> 37#include <asm/firmware.h>
37#include <asm/page.h> 38#include <asm/page.h>
@@ -196,6 +197,7 @@ static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
196int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address, 197int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
197 unsigned long error_code) 198 unsigned long error_code)
198{ 199{
200 enum ctx_state prev_state = exception_enter();
199 struct vm_area_struct * vma; 201 struct vm_area_struct * vma;
200 struct mm_struct *mm = current->mm; 202 struct mm_struct *mm = current->mm;
201 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; 203 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
@@ -204,6 +206,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
204 int trap = TRAP(regs); 206 int trap = TRAP(regs);
205 int is_exec = trap == 0x400; 207 int is_exec = trap == 0x400;
206 int fault; 208 int fault;
209 int rc = 0;
207 210
208#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE)) 211#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE))
209 /* 212 /*
@@ -230,28 +233,30 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
230 * look at it 233 * look at it
231 */ 234 */
232 if (error_code & ICSWX_DSI_UCT) { 235 if (error_code & ICSWX_DSI_UCT) {
233 int rc = acop_handle_fault(regs, address, error_code); 236 rc = acop_handle_fault(regs, address, error_code);
234 if (rc) 237 if (rc)
235 return rc; 238 goto bail;
236 } 239 }
237#endif /* CONFIG_PPC_ICSWX */ 240#endif /* CONFIG_PPC_ICSWX */
238 241
239 if (notify_page_fault(regs)) 242 if (notify_page_fault(regs))
240 return 0; 243 goto bail;
241 244
242 if (unlikely(debugger_fault_handler(regs))) 245 if (unlikely(debugger_fault_handler(regs)))
243 return 0; 246 goto bail;
244 247
245 /* On a kernel SLB miss we can only check for a valid exception entry */ 248 /* On a kernel SLB miss we can only check for a valid exception entry */
246 if (!user_mode(regs) && (address >= TASK_SIZE)) 249 if (!user_mode(regs) && (address >= TASK_SIZE)) {
247 return SIGSEGV; 250 rc = SIGSEGV;
251 goto bail;
252 }
248 253
249#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE) || \ 254#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE) || \
250 defined(CONFIG_PPC_BOOK3S_64)) 255 defined(CONFIG_PPC_BOOK3S_64))
251 if (error_code & DSISR_DABRMATCH) { 256 if (error_code & DSISR_DABRMATCH) {
252 /* breakpoint match */ 257 /* breakpoint match */
253 do_break(regs, address, error_code); 258 do_break(regs, address, error_code);
254 return 0; 259 goto bail;
255 } 260 }
256#endif 261#endif
257 262
@@ -260,8 +265,10 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
260 local_irq_enable(); 265 local_irq_enable();
261 266
262 if (in_atomic() || mm == NULL) { 267 if (in_atomic() || mm == NULL) {
263 if (!user_mode(regs)) 268 if (!user_mode(regs)) {
264 return SIGSEGV; 269 rc = SIGSEGV;
270 goto bail;
271 }
265 /* in_atomic() in user mode is really bad, 272 /* in_atomic() in user mode is really bad,
266 as is current->mm == NULL. */ 273 as is current->mm == NULL. */
267 printk(KERN_EMERG "Page fault in user mode with " 274 printk(KERN_EMERG "Page fault in user mode with "
@@ -417,9 +424,11 @@ good_area:
417 */ 424 */
418 fault = handle_mm_fault(mm, vma, address, flags); 425 fault = handle_mm_fault(mm, vma, address, flags);
419 if (unlikely(fault & (VM_FAULT_RETRY|VM_FAULT_ERROR))) { 426 if (unlikely(fault & (VM_FAULT_RETRY|VM_FAULT_ERROR))) {
420 int rc = mm_fault_error(regs, address, fault); 427 rc = mm_fault_error(regs, address, fault);
421 if (rc >= MM_FAULT_RETURN) 428 if (rc >= MM_FAULT_RETURN)
422 return rc; 429 goto bail;
430 else
431 rc = 0;
423 } 432 }
424 433
425 /* 434 /*
@@ -454,7 +463,7 @@ good_area:
454 } 463 }
455 464
456 up_read(&mm->mmap_sem); 465 up_read(&mm->mmap_sem);
457 return 0; 466 goto bail;
458 467
459bad_area: 468bad_area:
460 up_read(&mm->mmap_sem); 469 up_read(&mm->mmap_sem);
@@ -463,7 +472,7 @@ bad_area_nosemaphore:
463 /* User mode accesses cause a SIGSEGV */ 472 /* User mode accesses cause a SIGSEGV */
464 if (user_mode(regs)) { 473 if (user_mode(regs)) {
465 _exception(SIGSEGV, regs, code, address); 474 _exception(SIGSEGV, regs, code, address);
466 return 0; 475 goto bail;
467 } 476 }
468 477
469 if (is_exec && (error_code & DSISR_PROTFAULT)) 478 if (is_exec && (error_code & DSISR_PROTFAULT))
@@ -471,7 +480,11 @@ bad_area_nosemaphore:
471 " page (%lx) - exploit attempt? (uid: %d)\n", 480 " page (%lx) - exploit attempt? (uid: %d)\n",
472 address, from_kuid(&init_user_ns, current_uid())); 481 address, from_kuid(&init_user_ns, current_uid()));
473 482
474 return SIGSEGV; 483 rc = SIGSEGV;
484
485bail:
486 exception_exit(prev_state);
487 return rc;
475 488
476} 489}
477 490
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c
index 6a2aead5b0e5..4c122c3f1623 100644
--- a/arch/powerpc/mm/hash_native_64.c
+++ b/arch/powerpc/mm/hash_native_64.c
@@ -336,11 +336,18 @@ static long native_hpte_updatepp(unsigned long slot, unsigned long newpp,
336 336
337 hpte_v = hptep->v; 337 hpte_v = hptep->v;
338 actual_psize = hpte_actual_psize(hptep, psize); 338 actual_psize = hpte_actual_psize(hptep, psize);
339 /*
340 * We need to invalidate the TLB always because hpte_remove doesn't do
341 * a tlb invalidate. If a hash bucket gets full, we "evict" a more/less
342 * random entry from it. When we do that we don't invalidate the TLB
343 * (hpte_remove) because we assume the old translation is still
344 * technically "valid".
345 */
339 if (actual_psize < 0) { 346 if (actual_psize < 0) {
340 native_unlock_hpte(hptep); 347 actual_psize = psize;
341 return -1; 348 ret = -1;
349 goto err_out;
342 } 350 }
343 /* Even if we miss, we need to invalidate the TLB */
344 if (!HPTE_V_COMPARE(hpte_v, want_v)) { 351 if (!HPTE_V_COMPARE(hpte_v, want_v)) {
345 DBG_LOW(" -> miss\n"); 352 DBG_LOW(" -> miss\n");
346 ret = -1; 353 ret = -1;
@@ -350,6 +357,7 @@ static long native_hpte_updatepp(unsigned long slot, unsigned long newpp,
350 hptep->r = (hptep->r & ~(HPTE_R_PP | HPTE_R_N)) | 357 hptep->r = (hptep->r & ~(HPTE_R_PP | HPTE_R_N)) |
351 (newpp & (HPTE_R_PP | HPTE_R_N | HPTE_R_C)); 358 (newpp & (HPTE_R_PP | HPTE_R_N | HPTE_R_C));
352 } 359 }
360err_out:
353 native_unlock_hpte(hptep); 361 native_unlock_hpte(hptep);
354 362
355 /* Ensure it is out of the tlb too. */ 363 /* Ensure it is out of the tlb too. */
@@ -409,7 +417,7 @@ static void native_hpte_updateboltedpp(unsigned long newpp, unsigned long ea,
409 hptep = htab_address + slot; 417 hptep = htab_address + slot;
410 actual_psize = hpte_actual_psize(hptep, psize); 418 actual_psize = hpte_actual_psize(hptep, psize);
411 if (actual_psize < 0) 419 if (actual_psize < 0)
412 return; 420 actual_psize = psize;
413 421
414 /* Update the HPTE */ 422 /* Update the HPTE */
415 hptep->r = (hptep->r & ~(HPTE_R_PP | HPTE_R_N)) | 423 hptep->r = (hptep->r & ~(HPTE_R_PP | HPTE_R_N)) |
@@ -437,21 +445,27 @@ static void native_hpte_invalidate(unsigned long slot, unsigned long vpn,
437 hpte_v = hptep->v; 445 hpte_v = hptep->v;
438 446
439 actual_psize = hpte_actual_psize(hptep, psize); 447 actual_psize = hpte_actual_psize(hptep, psize);
448 /*
449 * We need to invalidate the TLB always because hpte_remove doesn't do
450 * a tlb invalidate. If a hash bucket gets full, we "evict" a more/less
451 * random entry from it. When we do that we don't invalidate the TLB
452 * (hpte_remove) because we assume the old translation is still
453 * technically "valid".
454 */
440 if (actual_psize < 0) { 455 if (actual_psize < 0) {
456 actual_psize = psize;
441 native_unlock_hpte(hptep); 457 native_unlock_hpte(hptep);
442 local_irq_restore(flags); 458 goto err_out;
443 return;
444 } 459 }
445 /* Even if we miss, we need to invalidate the TLB */
446 if (!HPTE_V_COMPARE(hpte_v, want_v)) 460 if (!HPTE_V_COMPARE(hpte_v, want_v))
447 native_unlock_hpte(hptep); 461 native_unlock_hpte(hptep);
448 else 462 else
449 /* Invalidate the hpte. NOTE: this also unlocks it */ 463 /* Invalidate the hpte. NOTE: this also unlocks it */
450 hptep->v = 0; 464 hptep->v = 0;
451 465
466err_out:
452 /* Invalidate the TLB */ 467 /* Invalidate the TLB */
453 tlbie(vpn, psize, actual_psize, ssize, local); 468 tlbie(vpn, psize, actual_psize, ssize, local);
454
455 local_irq_restore(flags); 469 local_irq_restore(flags);
456} 470}
457 471
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 88ac0eeaadde..e303a6d74e3a 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -33,6 +33,7 @@
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/signal.h> 34#include <linux/signal.h>
35#include <linux/memblock.h> 35#include <linux/memblock.h>
36#include <linux/context_tracking.h>
36 37
37#include <asm/processor.h> 38#include <asm/processor.h>
38#include <asm/pgtable.h> 39#include <asm/pgtable.h>
@@ -954,6 +955,7 @@ void hash_failure_debug(unsigned long ea, unsigned long access,
954 */ 955 */
955int hash_page(unsigned long ea, unsigned long access, unsigned long trap) 956int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
956{ 957{
958 enum ctx_state prev_state = exception_enter();
957 pgd_t *pgdir; 959 pgd_t *pgdir;
958 unsigned long vsid; 960 unsigned long vsid;
959 struct mm_struct *mm; 961 struct mm_struct *mm;
@@ -973,7 +975,8 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
973 mm = current->mm; 975 mm = current->mm;
974 if (! mm) { 976 if (! mm) {
975 DBG_LOW(" user region with no mm !\n"); 977 DBG_LOW(" user region with no mm !\n");
976 return 1; 978 rc = 1;
979 goto bail;
977 } 980 }
978 psize = get_slice_psize(mm, ea); 981 psize = get_slice_psize(mm, ea);
979 ssize = user_segment_size(ea); 982 ssize = user_segment_size(ea);
@@ -992,19 +995,23 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
992 /* Not a valid range 995 /* Not a valid range
993 * Send the problem up to do_page_fault 996 * Send the problem up to do_page_fault
994 */ 997 */
995 return 1; 998 rc = 1;
999 goto bail;
996 } 1000 }
997 DBG_LOW(" mm=%p, mm->pgdir=%p, vsid=%016lx\n", mm, mm->pgd, vsid); 1001 DBG_LOW(" mm=%p, mm->pgdir=%p, vsid=%016lx\n", mm, mm->pgd, vsid);
998 1002
999 /* Bad address. */ 1003 /* Bad address. */
1000 if (!vsid) { 1004 if (!vsid) {
1001 DBG_LOW("Bad address!\n"); 1005 DBG_LOW("Bad address!\n");
1002 return 1; 1006 rc = 1;
1007 goto bail;
1003 } 1008 }
1004 /* Get pgdir */ 1009 /* Get pgdir */
1005 pgdir = mm->pgd; 1010 pgdir = mm->pgd;
1006 if (pgdir == NULL) 1011 if (pgdir == NULL) {
1007 return 1; 1012 rc = 1;
1013 goto bail;
1014 }
1008 1015
1009 /* Check CPU locality */ 1016 /* Check CPU locality */
1010 tmp = cpumask_of(smp_processor_id()); 1017 tmp = cpumask_of(smp_processor_id());
@@ -1027,7 +1034,8 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
1027 ptep = find_linux_pte_or_hugepte(pgdir, ea, &hugeshift); 1034 ptep = find_linux_pte_or_hugepte(pgdir, ea, &hugeshift);
1028 if (ptep == NULL || !pte_present(*ptep)) { 1035 if (ptep == NULL || !pte_present(*ptep)) {
1029 DBG_LOW(" no PTE !\n"); 1036 DBG_LOW(" no PTE !\n");
1030 return 1; 1037 rc = 1;
1038 goto bail;
1031 } 1039 }
1032 1040
1033 /* Add _PAGE_PRESENT to the required access perm */ 1041 /* Add _PAGE_PRESENT to the required access perm */
@@ -1038,13 +1046,16 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
1038 */ 1046 */
1039 if (access & ~pte_val(*ptep)) { 1047 if (access & ~pte_val(*ptep)) {
1040 DBG_LOW(" no access !\n"); 1048 DBG_LOW(" no access !\n");
1041 return 1; 1049 rc = 1;
1050 goto bail;
1042 } 1051 }
1043 1052
1044#ifdef CONFIG_HUGETLB_PAGE 1053#ifdef CONFIG_HUGETLB_PAGE
1045 if (hugeshift) 1054 if (hugeshift) {
1046 return __hash_page_huge(ea, access, vsid, ptep, trap, local, 1055 rc = __hash_page_huge(ea, access, vsid, ptep, trap, local,
1047 ssize, hugeshift, psize); 1056 ssize, hugeshift, psize);
1057 goto bail;
1058 }
1048#endif /* CONFIG_HUGETLB_PAGE */ 1059#endif /* CONFIG_HUGETLB_PAGE */
1049 1060
1050#ifndef CONFIG_PPC_64K_PAGES 1061#ifndef CONFIG_PPC_64K_PAGES
@@ -1124,6 +1135,9 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
1124 pte_val(*(ptep + PTRS_PER_PTE))); 1135 pte_val(*(ptep + PTRS_PER_PTE)));
1125#endif 1136#endif
1126 DBG_LOW(" -> rc=%d\n", rc); 1137 DBG_LOW(" -> rc=%d\n", rc);
1138
1139bail:
1140 exception_exit(prev_state);
1127 return rc; 1141 return rc;
1128} 1142}
1129EXPORT_SYMBOL_GPL(hash_page); 1143EXPORT_SYMBOL_GPL(hash_page);
@@ -1259,6 +1273,8 @@ void flush_hash_range(unsigned long number, int local)
1259 */ 1273 */
1260void low_hash_fault(struct pt_regs *regs, unsigned long address, int rc) 1274void low_hash_fault(struct pt_regs *regs, unsigned long address, int rc)
1261{ 1275{
1276 enum ctx_state prev_state = exception_enter();
1277
1262 if (user_mode(regs)) { 1278 if (user_mode(regs)) {
1263#ifdef CONFIG_PPC_SUBPAGE_PROT 1279#ifdef CONFIG_PPC_SUBPAGE_PROT
1264 if (rc == -2) 1280 if (rc == -2)
@@ -1268,6 +1284,8 @@ void low_hash_fault(struct pt_regs *regs, unsigned long address, int rc)
1268 _exception(SIGBUS, regs, BUS_ADRERR, address); 1284 _exception(SIGBUS, regs, BUS_ADRERR, address);
1269 } else 1285 } else
1270 bad_page_fault(regs, address, SIGBUS); 1286 bad_page_fault(regs, address, SIGBUS);
1287
1288 exception_exit(prev_state);
1271} 1289}
1272 1290
1273long hpte_insert_repeating(unsigned long hash, unsigned long vpn, 1291long hpte_insert_repeating(unsigned long hash, unsigned long vpn,
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index c2787bf779ca..a90b9c458990 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -215,7 +215,8 @@ static void __meminit vmemmap_create_mapping(unsigned long start,
215 unsigned long phys) 215 unsigned long phys)
216{ 216{
217 int mapped = htab_bolt_mapping(start, start + page_size, phys, 217 int mapped = htab_bolt_mapping(start, start + page_size, phys,
218 PAGE_KERNEL, mmu_vmemmap_psize, 218 pgprot_val(PAGE_KERNEL),
219 mmu_vmemmap_psize,
219 mmu_kernel_ssize); 220 mmu_kernel_ssize);
220 BUG_ON(mapped < 0); 221 BUG_ON(mapped < 0);
221} 222}
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index c627843c5b2e..845c867444e6 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -13,11 +13,13 @@
13#include <linux/perf_event.h> 13#include <linux/perf_event.h>
14#include <linux/percpu.h> 14#include <linux/percpu.h>
15#include <linux/hardirq.h> 15#include <linux/hardirq.h>
16#include <linux/uaccess.h>
16#include <asm/reg.h> 17#include <asm/reg.h>
17#include <asm/pmc.h> 18#include <asm/pmc.h>
18#include <asm/machdep.h> 19#include <asm/machdep.h>
19#include <asm/firmware.h> 20#include <asm/firmware.h>
20#include <asm/ptrace.h> 21#include <asm/ptrace.h>
22#include <asm/code-patching.h>
21 23
22#define BHRB_MAX_ENTRIES 32 24#define BHRB_MAX_ENTRIES 32
23#define BHRB_TARGET 0x0000000000000002 25#define BHRB_TARGET 0x0000000000000002
@@ -100,11 +102,15 @@ static inline int siar_valid(struct pt_regs *regs)
100 return 1; 102 return 1;
101} 103}
102 104
105static inline void power_pmu_bhrb_enable(struct perf_event *event) {}
106static inline void power_pmu_bhrb_disable(struct perf_event *event) {}
107void power_pmu_flush_branch_stack(void) {}
108static inline void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw) {}
103#endif /* CONFIG_PPC32 */ 109#endif /* CONFIG_PPC32 */
104 110
105static bool regs_use_siar(struct pt_regs *regs) 111static bool regs_use_siar(struct pt_regs *regs)
106{ 112{
107 return !!(regs->result & 1); 113 return !!regs->result;
108} 114}
109 115
110/* 116/*
@@ -130,22 +136,30 @@ static inline unsigned long perf_ip_adjust(struct pt_regs *regs)
130 * If we're not doing instruction sampling, give them the SDAR 136 * If we're not doing instruction sampling, give them the SDAR
131 * (sampled data address). If we are doing instruction sampling, then 137 * (sampled data address). If we are doing instruction sampling, then
132 * only give them the SDAR if it corresponds to the instruction 138 * only give them the SDAR if it corresponds to the instruction
133 * pointed to by SIAR; this is indicated by the [POWER6_]MMCRA_SDSYNC or 139 * pointed to by SIAR; this is indicated by the [POWER6_]MMCRA_SDSYNC, the
134 * the [POWER7P_]MMCRA_SDAR_VALID bit in MMCRA. 140 * [POWER7P_]MMCRA_SDAR_VALID bit in MMCRA, or the SDAR_VALID bit in SIER.
135 */ 141 */
136static inline void perf_get_data_addr(struct pt_regs *regs, u64 *addrp) 142static inline void perf_get_data_addr(struct pt_regs *regs, u64 *addrp)
137{ 143{
138 unsigned long mmcra = regs->dsisr; 144 unsigned long mmcra = regs->dsisr;
139 unsigned long sdsync; 145 bool sdar_valid;
140 146
141 if (ppmu->flags & PPMU_SIAR_VALID) 147 if (ppmu->flags & PPMU_HAS_SIER)
142 sdsync = POWER7P_MMCRA_SDAR_VALID; 148 sdar_valid = regs->dar & SIER_SDAR_VALID;
143 else if (ppmu->flags & PPMU_ALT_SIPR) 149 else {
144 sdsync = POWER6_MMCRA_SDSYNC; 150 unsigned long sdsync;
145 else 151
146 sdsync = MMCRA_SDSYNC; 152 if (ppmu->flags & PPMU_SIAR_VALID)
153 sdsync = POWER7P_MMCRA_SDAR_VALID;
154 else if (ppmu->flags & PPMU_ALT_SIPR)
155 sdsync = POWER6_MMCRA_SDSYNC;
156 else
157 sdsync = MMCRA_SDSYNC;
147 158
148 if (!(mmcra & MMCRA_SAMPLE_ENABLE) || (mmcra & sdsync)) 159 sdar_valid = mmcra & sdsync;
160 }
161
162 if (!(mmcra & MMCRA_SAMPLE_ENABLE) || sdar_valid)
149 *addrp = mfspr(SPRN_SDAR); 163 *addrp = mfspr(SPRN_SDAR);
150} 164}
151 165
@@ -175,11 +189,6 @@ static bool regs_sipr(struct pt_regs *regs)
175 return !!(regs->dsisr & sipr); 189 return !!(regs->dsisr & sipr);
176} 190}
177 191
178static bool regs_no_sipr(struct pt_regs *regs)
179{
180 return !!(regs->result & 2);
181}
182
183static inline u32 perf_flags_from_msr(struct pt_regs *regs) 192static inline u32 perf_flags_from_msr(struct pt_regs *regs)
184{ 193{
185 if (regs->msr & MSR_PR) 194 if (regs->msr & MSR_PR)
@@ -202,7 +211,7 @@ static inline u32 perf_get_misc_flags(struct pt_regs *regs)
202 * SIAR which should give slightly more reliable 211 * SIAR which should give slightly more reliable
203 * results 212 * results
204 */ 213 */
205 if (regs_no_sipr(regs)) { 214 if (ppmu->flags & PPMU_NO_SIPR) {
206 unsigned long siar = mfspr(SPRN_SIAR); 215 unsigned long siar = mfspr(SPRN_SIAR);
207 if (siar >= PAGE_OFFSET) 216 if (siar >= PAGE_OFFSET)
208 return PERF_RECORD_MISC_KERNEL; 217 return PERF_RECORD_MISC_KERNEL;
@@ -233,22 +242,9 @@ static inline void perf_read_regs(struct pt_regs *regs)
233 int use_siar; 242 int use_siar;
234 243
235 regs->dsisr = mmcra; 244 regs->dsisr = mmcra;
236 regs->result = 0;
237
238 if (ppmu->flags & PPMU_NO_SIPR)
239 regs->result |= 2;
240
241 /*
242 * On power8 if we're in random sampling mode, the SIER is updated.
243 * If we're in continuous sampling mode, we don't have SIPR.
244 */
245 if (ppmu->flags & PPMU_HAS_SIER) {
246 if (marked)
247 regs->dar = mfspr(SPRN_SIER);
248 else
249 regs->result |= 2;
250 }
251 245
246 if (ppmu->flags & PPMU_HAS_SIER)
247 regs->dar = mfspr(SPRN_SIER);
252 248
253 /* 249 /*
254 * If this isn't a PMU exception (eg a software event) the SIAR is 250 * If this isn't a PMU exception (eg a software event) the SIAR is
@@ -273,12 +269,12 @@ static inline void perf_read_regs(struct pt_regs *regs)
273 use_siar = 1; 269 use_siar = 1;
274 else if ((ppmu->flags & PPMU_NO_CONT_SAMPLING)) 270 else if ((ppmu->flags & PPMU_NO_CONT_SAMPLING))
275 use_siar = 0; 271 use_siar = 0;
276 else if (!regs_no_sipr(regs) && regs_sipr(regs)) 272 else if (!(ppmu->flags & PPMU_NO_SIPR) && regs_sipr(regs))
277 use_siar = 0; 273 use_siar = 0;
278 else 274 else
279 use_siar = 1; 275 use_siar = 1;
280 276
281 regs->result |= use_siar; 277 regs->result = use_siar;
282} 278}
283 279
284/* 280/*
@@ -302,12 +298,170 @@ static inline int siar_valid(struct pt_regs *regs)
302 unsigned long mmcra = regs->dsisr; 298 unsigned long mmcra = regs->dsisr;
303 int marked = mmcra & MMCRA_SAMPLE_ENABLE; 299 int marked = mmcra & MMCRA_SAMPLE_ENABLE;
304 300
305 if ((ppmu->flags & PPMU_SIAR_VALID) && marked) 301 if (marked) {
306 return mmcra & POWER7P_MMCRA_SIAR_VALID; 302 if (ppmu->flags & PPMU_HAS_SIER)
303 return regs->dar & SIER_SIAR_VALID;
304
305 if (ppmu->flags & PPMU_SIAR_VALID)
306 return mmcra & POWER7P_MMCRA_SIAR_VALID;
307 }
307 308
308 return 1; 309 return 1;
309} 310}
310 311
312
313/* Reset all possible BHRB entries */
314static void power_pmu_bhrb_reset(void)
315{
316 asm volatile(PPC_CLRBHRB);
317}
318
319static void power_pmu_bhrb_enable(struct perf_event *event)
320{
321 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
322
323 if (!ppmu->bhrb_nr)
324 return;
325
326 /* Clear BHRB if we changed task context to avoid data leaks */
327 if (event->ctx->task && cpuhw->bhrb_context != event->ctx) {
328 power_pmu_bhrb_reset();
329 cpuhw->bhrb_context = event->ctx;
330 }
331 cpuhw->bhrb_users++;
332}
333
334static void power_pmu_bhrb_disable(struct perf_event *event)
335{
336 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
337
338 if (!ppmu->bhrb_nr)
339 return;
340
341 cpuhw->bhrb_users--;
342 WARN_ON_ONCE(cpuhw->bhrb_users < 0);
343
344 if (!cpuhw->disabled && !cpuhw->bhrb_users) {
345 /* BHRB cannot be turned off when other
346 * events are active on the PMU.
347 */
348
349 /* avoid stale pointer */
350 cpuhw->bhrb_context = NULL;
351 }
352}
353
354/* Called from ctxsw to prevent one process's branch entries to
355 * mingle with the other process's entries during context switch.
356 */
357void power_pmu_flush_branch_stack(void)
358{
359 if (ppmu->bhrb_nr)
360 power_pmu_bhrb_reset();
361}
362/* Calculate the to address for a branch */
363static __u64 power_pmu_bhrb_to(u64 addr)
364{
365 unsigned int instr;
366 int ret;
367 __u64 target;
368
369 if (is_kernel_addr(addr))
370 return branch_target((unsigned int *)addr);
371
372 /* Userspace: need copy instruction here then translate it */
373 pagefault_disable();
374 ret = __get_user_inatomic(instr, (unsigned int __user *)addr);
375 if (ret) {
376 pagefault_enable();
377 return 0;
378 }
379 pagefault_enable();
380
381 target = branch_target(&instr);
382 if ((!target) || (instr & BRANCH_ABSOLUTE))
383 return target;
384
385 /* Translate relative branch target from kernel to user address */
386 return target - (unsigned long)&instr + addr;
387}
388
389/* Processing BHRB entries */
390void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw)
391{
392 u64 val;
393 u64 addr;
394 int r_index, u_index, pred;
395
396 r_index = 0;
397 u_index = 0;
398 while (r_index < ppmu->bhrb_nr) {
399 /* Assembly read function */
400 val = read_bhrb(r_index++);
401 if (!val)
402 /* Terminal marker: End of valid BHRB entries */
403 break;
404 else {
405 addr = val & BHRB_EA;
406 pred = val & BHRB_PREDICTION;
407
408 if (!addr)
409 /* invalid entry */
410 continue;
411
412 /* Branches are read most recent first (ie. mfbhrb 0 is
413 * the most recent branch).
414 * There are two types of valid entries:
415 * 1) a target entry which is the to address of a
416 * computed goto like a blr,bctr,btar. The next
417 * entry read from the bhrb will be branch
418 * corresponding to this target (ie. the actual
419 * blr/bctr/btar instruction).
420 * 2) a from address which is an actual branch. If a
421 * target entry proceeds this, then this is the
422 * matching branch for that target. If this is not
423 * following a target entry, then this is a branch
424 * where the target is given as an immediate field
425 * in the instruction (ie. an i or b form branch).
426 * In this case we need to read the instruction from
427 * memory to determine the target/to address.
428 */
429
430 if (val & BHRB_TARGET) {
431 /* Target branches use two entries
432 * (ie. computed gotos/XL form)
433 */
434 cpuhw->bhrb_entries[u_index].to = addr;
435 cpuhw->bhrb_entries[u_index].mispred = pred;
436 cpuhw->bhrb_entries[u_index].predicted = ~pred;
437
438 /* Get from address in next entry */
439 val = read_bhrb(r_index++);
440 addr = val & BHRB_EA;
441 if (val & BHRB_TARGET) {
442 /* Shouldn't have two targets in a
443 row.. Reset index and try again */
444 r_index--;
445 addr = 0;
446 }
447 cpuhw->bhrb_entries[u_index].from = addr;
448 } else {
449 /* Branches to immediate field
450 (ie I or B form) */
451 cpuhw->bhrb_entries[u_index].from = addr;
452 cpuhw->bhrb_entries[u_index].to =
453 power_pmu_bhrb_to(addr);
454 cpuhw->bhrb_entries[u_index].mispred = pred;
455 cpuhw->bhrb_entries[u_index].predicted = ~pred;
456 }
457 u_index++;
458
459 }
460 }
461 cpuhw->bhrb_stack.nr = u_index;
462 return;
463}
464
311#endif /* CONFIG_PPC64 */ 465#endif /* CONFIG_PPC64 */
312 466
313static void perf_event_interrupt(struct pt_regs *regs); 467static void perf_event_interrupt(struct pt_regs *regs);
@@ -904,47 +1058,6 @@ static int collect_events(struct perf_event *group, int max_count,
904 return n; 1058 return n;
905} 1059}
906 1060
907/* Reset all possible BHRB entries */
908static void power_pmu_bhrb_reset(void)
909{
910 asm volatile(PPC_CLRBHRB);
911}
912
913void power_pmu_bhrb_enable(struct perf_event *event)
914{
915 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
916
917 if (!ppmu->bhrb_nr)
918 return;
919
920 /* Clear BHRB if we changed task context to avoid data leaks */
921 if (event->ctx->task && cpuhw->bhrb_context != event->ctx) {
922 power_pmu_bhrb_reset();
923 cpuhw->bhrb_context = event->ctx;
924 }
925 cpuhw->bhrb_users++;
926}
927
928void power_pmu_bhrb_disable(struct perf_event *event)
929{
930 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
931
932 if (!ppmu->bhrb_nr)
933 return;
934
935 cpuhw->bhrb_users--;
936 WARN_ON_ONCE(cpuhw->bhrb_users < 0);
937
938 if (!cpuhw->disabled && !cpuhw->bhrb_users) {
939 /* BHRB cannot be turned off when other
940 * events are active on the PMU.
941 */
942
943 /* avoid stale pointer */
944 cpuhw->bhrb_context = NULL;
945 }
946}
947
948/* 1061/*
949 * Add a event to the PMU. 1062 * Add a event to the PMU.
950 * If all events are not already frozen, then we disable and 1063 * If all events are not already frozen, then we disable and
@@ -1180,15 +1293,6 @@ int power_pmu_commit_txn(struct pmu *pmu)
1180 return 0; 1293 return 0;
1181} 1294}
1182 1295
1183/* Called from ctxsw to prevent one process's branch entries to
1184 * mingle with the other process's entries during context switch.
1185 */
1186void power_pmu_flush_branch_stack(void)
1187{
1188 if (ppmu->bhrb_nr)
1189 power_pmu_bhrb_reset();
1190}
1191
1192/* 1296/*
1193 * Return 1 if we might be able to put event on a limited PMC, 1297 * Return 1 if we might be able to put event on a limited PMC,
1194 * or 0 if not. 1298 * or 0 if not.
@@ -1458,77 +1562,6 @@ struct pmu power_pmu = {
1458 .flush_branch_stack = power_pmu_flush_branch_stack, 1562 .flush_branch_stack = power_pmu_flush_branch_stack,
1459}; 1563};
1460 1564
1461/* Processing BHRB entries */
1462void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw)
1463{
1464 u64 val;
1465 u64 addr;
1466 int r_index, u_index, target, pred;
1467
1468 r_index = 0;
1469 u_index = 0;
1470 while (r_index < ppmu->bhrb_nr) {
1471 /* Assembly read function */
1472 val = read_bhrb(r_index);
1473
1474 /* Terminal marker: End of valid BHRB entries */
1475 if (val == 0) {
1476 break;
1477 } else {
1478 /* BHRB field break up */
1479 addr = val & BHRB_EA;
1480 pred = val & BHRB_PREDICTION;
1481 target = val & BHRB_TARGET;
1482
1483 /* Probable Missed entry: Not applicable for POWER8 */
1484 if ((addr == 0) && (target == 0) && (pred == 1)) {
1485 r_index++;
1486 continue;
1487 }
1488
1489 /* Real Missed entry: Power8 based missed entry */
1490 if ((addr == 0) && (target == 1) && (pred == 1)) {
1491 r_index++;
1492 continue;
1493 }
1494
1495 /* Reserved condition: Not a valid entry */
1496 if ((addr == 0) && (target == 1) && (pred == 0)) {
1497 r_index++;
1498 continue;
1499 }
1500
1501 /* Is a target address */
1502 if (val & BHRB_TARGET) {
1503 /* First address cannot be a target address */
1504 if (r_index == 0) {
1505 r_index++;
1506 continue;
1507 }
1508
1509 /* Update target address for the previous entry */
1510 cpuhw->bhrb_entries[u_index - 1].to = addr;
1511 cpuhw->bhrb_entries[u_index - 1].mispred = pred;
1512 cpuhw->bhrb_entries[u_index - 1].predicted = ~pred;
1513
1514 /* Dont increment u_index */
1515 r_index++;
1516 } else {
1517 /* Update address, flags for current entry */
1518 cpuhw->bhrb_entries[u_index].from = addr;
1519 cpuhw->bhrb_entries[u_index].mispred = pred;
1520 cpuhw->bhrb_entries[u_index].predicted = ~pred;
1521
1522 /* Successfully popullated one entry */
1523 u_index++;
1524 r_index++;
1525 }
1526 }
1527 }
1528 cpuhw->bhrb_stack.nr = u_index;
1529 return;
1530}
1531
1532/* 1565/*
1533 * A counter has overflowed; update its count and record 1566 * A counter has overflowed; update its count and record
1534 * things if requested. Note that interrupts are hard-disabled 1567 * things if requested. Note that interrupts are hard-disabled
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index a881232a3cce..b62aab3e22ec 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -128,7 +128,7 @@ config PPC_RTAS_DAEMON
128 128
129config RTAS_PROC 129config RTAS_PROC
130 bool "Proc interface to RTAS" 130 bool "Proc interface to RTAS"
131 depends on PPC_RTAS 131 depends on PPC_RTAS && PROC_FS
132 default y 132 default y
133 133
134config RTAS_FLASH 134config RTAS_FLASH
diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig
index d3e840d643af..c24684c818ab 100644
--- a/arch/powerpc/platforms/powernv/Kconfig
+++ b/arch/powerpc/platforms/powernv/Kconfig
@@ -6,6 +6,7 @@ config PPC_POWERNV
6 select PPC_ICP_NATIVE 6 select PPC_ICP_NATIVE
7 select PPC_P7_NAP 7 select PPC_P7_NAP
8 select PPC_PCI_CHOICE if EMBEDDED 8 select PPC_PCI_CHOICE if EMBEDDED
9 select EPAPR_BOOT
9 default y 10 default y
10 11
11config POWERNV_MSI 12config POWERNV_MSI
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index ade4463226c6..628c564ceadb 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -15,6 +15,7 @@
15#include <linux/of.h> 15#include <linux/of.h>
16#include <linux/of_platform.h> 16#include <linux/of_platform.h>
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <linux/slab.h>
18#include <asm/opal.h> 19#include <asm/opal.h>
19#include <asm/firmware.h> 20#include <asm/firmware.h>
20 21
@@ -28,6 +29,8 @@ struct opal {
28static struct device_node *opal_node; 29static struct device_node *opal_node;
29static DEFINE_SPINLOCK(opal_write_lock); 30static DEFINE_SPINLOCK(opal_write_lock);
30extern u64 opal_mc_secondary_handler[]; 31extern u64 opal_mc_secondary_handler[];
32static unsigned int *opal_irqs;
33static unsigned int opal_irq_count;
31 34
32int __init early_init_dt_scan_opal(unsigned long node, 35int __init early_init_dt_scan_opal(unsigned long node,
33 const char *uname, int depth, void *data) 36 const char *uname, int depth, void *data)
@@ -53,7 +56,11 @@ int __init early_init_dt_scan_opal(unsigned long node,
53 opal.entry, entryp, entrysz); 56 opal.entry, entryp, entrysz);
54 57
55 powerpc_firmware_features |= FW_FEATURE_OPAL; 58 powerpc_firmware_features |= FW_FEATURE_OPAL;
56 if (of_flat_dt_is_compatible(node, "ibm,opal-v2")) { 59 if (of_flat_dt_is_compatible(node, "ibm,opal-v3")) {
60 powerpc_firmware_features |= FW_FEATURE_OPALv2;
61 powerpc_firmware_features |= FW_FEATURE_OPALv3;
62 printk("OPAL V3 detected !\n");
63 } else if (of_flat_dt_is_compatible(node, "ibm,opal-v2")) {
57 powerpc_firmware_features |= FW_FEATURE_OPALv2; 64 powerpc_firmware_features |= FW_FEATURE_OPALv2;
58 printk("OPAL V2 detected !\n"); 65 printk("OPAL V2 detected !\n");
59 } else { 66 } else {
@@ -144,6 +151,13 @@ int opal_put_chars(uint32_t vtermno, const char *data, int total_len)
144 rc == OPAL_BUSY_EVENT || rc == OPAL_SUCCESS)) { 151 rc == OPAL_BUSY_EVENT || rc == OPAL_SUCCESS)) {
145 len = total_len; 152 len = total_len;
146 rc = opal_console_write(vtermno, &len, data); 153 rc = opal_console_write(vtermno, &len, data);
154
155 /* Closed or other error drop */
156 if (rc != OPAL_SUCCESS && rc != OPAL_BUSY &&
157 rc != OPAL_BUSY_EVENT) {
158 written = total_len;
159 break;
160 }
147 if (rc == OPAL_SUCCESS) { 161 if (rc == OPAL_SUCCESS) {
148 total_len -= len; 162 total_len -= len;
149 data += len; 163 data += len;
@@ -316,6 +330,8 @@ static int __init opal_init(void)
316 irqs = of_get_property(opal_node, "opal-interrupts", &irqlen); 330 irqs = of_get_property(opal_node, "opal-interrupts", &irqlen);
317 pr_debug("opal: Found %d interrupts reserved for OPAL\n", 331 pr_debug("opal: Found %d interrupts reserved for OPAL\n",
318 irqs ? (irqlen / 4) : 0); 332 irqs ? (irqlen / 4) : 0);
333 opal_irq_count = irqlen / 4;
334 opal_irqs = kzalloc(opal_irq_count * sizeof(unsigned int), GFP_KERNEL);
319 for (i = 0; irqs && i < (irqlen / 4); i++, irqs++) { 335 for (i = 0; irqs && i < (irqlen / 4); i++, irqs++) {
320 unsigned int hwirq = be32_to_cpup(irqs); 336 unsigned int hwirq = be32_to_cpup(irqs);
321 unsigned int irq = irq_create_mapping(NULL, hwirq); 337 unsigned int irq = irq_create_mapping(NULL, hwirq);
@@ -327,7 +343,19 @@ static int __init opal_init(void)
327 if (rc) 343 if (rc)
328 pr_warning("opal: Error %d requesting irq %d" 344 pr_warning("opal: Error %d requesting irq %d"
329 " (0x%x)\n", rc, irq, hwirq); 345 " (0x%x)\n", rc, irq, hwirq);
346 opal_irqs[i] = irq;
330 } 347 }
331 return 0; 348 return 0;
332} 349}
333subsys_initcall(opal_init); 350subsys_initcall(opal_init);
351
352void opal_shutdown(void)
353{
354 unsigned int i;
355
356 for (i = 0; i < opal_irq_count; i++) {
357 if (opal_irqs[i])
358 free_irq(opal_irqs[i], 0);
359 opal_irqs[i] = 0;
360 }
361}
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 1da578b7c1bf..9c9d15e4cdf2 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -68,16 +68,6 @@ define_pe_printk_level(pe_err, KERN_ERR);
68define_pe_printk_level(pe_warn, KERN_WARNING); 68define_pe_printk_level(pe_warn, KERN_WARNING);
69define_pe_printk_level(pe_info, KERN_INFO); 69define_pe_printk_level(pe_info, KERN_INFO);
70 70
71static struct pci_dn *pnv_ioda_get_pdn(struct pci_dev *dev)
72{
73 struct device_node *np;
74
75 np = pci_device_to_OF_node(dev);
76 if (!np)
77 return NULL;
78 return PCI_DN(np);
79}
80
81static int pnv_ioda_alloc_pe(struct pnv_phb *phb) 71static int pnv_ioda_alloc_pe(struct pnv_phb *phb)
82{ 72{
83 unsigned long pe; 73 unsigned long pe;
@@ -110,7 +100,7 @@ static struct pnv_ioda_pe *pnv_ioda_get_pe(struct pci_dev *dev)
110{ 100{
111 struct pci_controller *hose = pci_bus_to_host(dev->bus); 101 struct pci_controller *hose = pci_bus_to_host(dev->bus);
112 struct pnv_phb *phb = hose->private_data; 102 struct pnv_phb *phb = hose->private_data;
113 struct pci_dn *pdn = pnv_ioda_get_pdn(dev); 103 struct pci_dn *pdn = pci_get_pdn(dev);
114 104
115 if (!pdn) 105 if (!pdn)
116 return NULL; 106 return NULL;
@@ -173,7 +163,7 @@ static int pnv_ioda_configure_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe)
173 163
174 /* Add to all parents PELT-V */ 164 /* Add to all parents PELT-V */
175 while (parent) { 165 while (parent) {
176 struct pci_dn *pdn = pnv_ioda_get_pdn(parent); 166 struct pci_dn *pdn = pci_get_pdn(parent);
177 if (pdn && pdn->pe_number != IODA_INVALID_PE) { 167 if (pdn && pdn->pe_number != IODA_INVALID_PE) {
178 rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number, 168 rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number,
179 pe->pe_number, OPAL_ADD_PE_TO_DOMAIN); 169 pe->pe_number, OPAL_ADD_PE_TO_DOMAIN);
@@ -252,7 +242,7 @@ static struct pnv_ioda_pe *pnv_ioda_setup_dev_PE(struct pci_dev *dev)
252{ 242{
253 struct pci_controller *hose = pci_bus_to_host(dev->bus); 243 struct pci_controller *hose = pci_bus_to_host(dev->bus);
254 struct pnv_phb *phb = hose->private_data; 244 struct pnv_phb *phb = hose->private_data;
255 struct pci_dn *pdn = pnv_ioda_get_pdn(dev); 245 struct pci_dn *pdn = pci_get_pdn(dev);
256 struct pnv_ioda_pe *pe; 246 struct pnv_ioda_pe *pe;
257 int pe_num; 247 int pe_num;
258 248
@@ -323,7 +313,7 @@ static void pnv_ioda_setup_same_PE(struct pci_bus *bus, struct pnv_ioda_pe *pe)
323 struct pci_dev *dev; 313 struct pci_dev *dev;
324 314
325 list_for_each_entry(dev, &bus->devices, bus_list) { 315 list_for_each_entry(dev, &bus->devices, bus_list) {
326 struct pci_dn *pdn = pnv_ioda_get_pdn(dev); 316 struct pci_dn *pdn = pci_get_pdn(dev);
327 317
328 if (pdn == NULL) { 318 if (pdn == NULL) {
329 pr_warn("%s: No device node associated with device !\n", 319 pr_warn("%s: No device node associated with device !\n",
@@ -436,7 +426,7 @@ static void pnv_pci_ioda_setup_PEs(void)
436 426
437static void pnv_pci_ioda_dma_dev_setup(struct pnv_phb *phb, struct pci_dev *pdev) 427static void pnv_pci_ioda_dma_dev_setup(struct pnv_phb *phb, struct pci_dev *pdev)
438{ 428{
439 struct pci_dn *pdn = pnv_ioda_get_pdn(pdev); 429 struct pci_dn *pdn = pci_get_pdn(pdev);
440 struct pnv_ioda_pe *pe; 430 struct pnv_ioda_pe *pe;
441 431
442 /* 432 /*
@@ -768,6 +758,7 @@ static int pnv_pci_ioda_msi_setup(struct pnv_phb *phb, struct pci_dev *dev,
768 unsigned int is_64, struct msi_msg *msg) 758 unsigned int is_64, struct msi_msg *msg)
769{ 759{
770 struct pnv_ioda_pe *pe = pnv_ioda_get_pe(dev); 760 struct pnv_ioda_pe *pe = pnv_ioda_get_pe(dev);
761 struct pci_dn *pdn = pci_get_pdn(dev);
771 struct irq_data *idata; 762 struct irq_data *idata;
772 struct irq_chip *ichip; 763 struct irq_chip *ichip;
773 unsigned int xive_num = hwirq - phb->msi_base; 764 unsigned int xive_num = hwirq - phb->msi_base;
@@ -783,6 +774,10 @@ static int pnv_pci_ioda_msi_setup(struct pnv_phb *phb, struct pci_dev *dev,
783 if (pe->mve_number < 0) 774 if (pe->mve_number < 0)
784 return -ENXIO; 775 return -ENXIO;
785 776
777 /* Force 32-bit MSI on some broken devices */
778 if (pdn && pdn->force_32bit_msi)
779 is_64 = 0;
780
786 /* Assign XIVE to PE */ 781 /* Assign XIVE to PE */
787 rc = opal_pci_set_xive_pe(phb->opal_id, pe->pe_number, xive_num); 782 rc = opal_pci_set_xive_pe(phb->opal_id, pe->pe_number, xive_num);
788 if (rc) { 783 if (rc) {
@@ -1035,7 +1030,7 @@ static int pnv_pci_enable_device_hook(struct pci_dev *dev)
1035 if (!phb->initialized) 1030 if (!phb->initialized)
1036 return 0; 1031 return 0;
1037 1032
1038 pdn = pnv_ioda_get_pdn(dev); 1033 pdn = pci_get_pdn(dev);
1039 if (!pdn || pdn->pe_number == IODA_INVALID_PE) 1034 if (!pdn || pdn->pe_number == IODA_INVALID_PE)
1040 return -EINVAL; 1035 return -EINVAL;
1041 1036
@@ -1048,6 +1043,12 @@ static u32 pnv_ioda_bdfn_to_pe(struct pnv_phb *phb, struct pci_bus *bus,
1048 return phb->ioda.pe_rmap[(bus->number << 8) | devfn]; 1043 return phb->ioda.pe_rmap[(bus->number << 8) | devfn];
1049} 1044}
1050 1045
1046static void pnv_pci_ioda_shutdown(struct pnv_phb *phb)
1047{
1048 opal_pci_reset(phb->opal_id, OPAL_PCI_IODA_TABLE_RESET,
1049 OPAL_ASSERT_RESET);
1050}
1051
1051void __init pnv_pci_init_ioda_phb(struct device_node *np, int ioda_type) 1052void __init pnv_pci_init_ioda_phb(struct device_node *np, int ioda_type)
1052{ 1053{
1053 struct pci_controller *hose; 1054 struct pci_controller *hose;
@@ -1178,6 +1179,9 @@ void __init pnv_pci_init_ioda_phb(struct device_node *np, int ioda_type)
1178 /* Setup TCEs */ 1179 /* Setup TCEs */
1179 phb->dma_dev_setup = pnv_pci_ioda_dma_dev_setup; 1180 phb->dma_dev_setup = pnv_pci_ioda_dma_dev_setup;
1180 1181
1182 /* Setup shutdown function for kexec */
1183 phb->shutdown = pnv_pci_ioda_shutdown;
1184
1181 /* Setup MSI support */ 1185 /* Setup MSI support */
1182 pnv_pci_init_ioda_msis(phb); 1186 pnv_pci_init_ioda_msis(phb);
1183 1187
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index 55dfca844ddf..277343cc6a3d 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -47,6 +47,10 @@ static int pnv_msi_check_device(struct pci_dev* pdev, int nvec, int type)
47{ 47{
48 struct pci_controller *hose = pci_bus_to_host(pdev->bus); 48 struct pci_controller *hose = pci_bus_to_host(pdev->bus);
49 struct pnv_phb *phb = hose->private_data; 49 struct pnv_phb *phb = hose->private_data;
50 struct pci_dn *pdn = pci_get_pdn(pdev);
51
52 if (pdn && pdn->force_32bit_msi && !phb->msi32_support)
53 return -ENODEV;
50 54
51 return (phb && phb->msi_bmp.bitmap) ? 0 : -ENODEV; 55 return (phb && phb->msi_bmp.bitmap) ? 0 : -ENODEV;
52} 56}
@@ -367,7 +371,7 @@ static void pnv_tce_free(struct iommu_table *tbl, long index, long npages)
367 while (npages--) 371 while (npages--)
368 *(tcep++) = 0; 372 *(tcep++) = 0;
369 373
370 if (tbl->it_type & TCE_PCI_SWINV_CREATE) 374 if (tbl->it_type & TCE_PCI_SWINV_FREE)
371 pnv_pci_ioda_tce_invalidate(tbl, tces, tcep - 1); 375 pnv_pci_ioda_tce_invalidate(tbl, tces, tcep - 1);
372} 376}
373 377
@@ -450,6 +454,18 @@ static void pnv_pci_dma_dev_setup(struct pci_dev *pdev)
450 pnv_pci_dma_fallback_setup(hose, pdev); 454 pnv_pci_dma_fallback_setup(hose, pdev);
451} 455}
452 456
457void pnv_pci_shutdown(void)
458{
459 struct pci_controller *hose;
460
461 list_for_each_entry(hose, &hose_list, list_node) {
462 struct pnv_phb *phb = hose->private_data;
463
464 if (phb && phb->shutdown)
465 phb->shutdown(phb);
466 }
467}
468
453/* Fixup wrong class code in p7ioc and p8 root complex */ 469/* Fixup wrong class code in p7ioc and p8 root complex */
454static void pnv_p7ioc_rc_quirk(struct pci_dev *dev) 470static void pnv_p7ioc_rc_quirk(struct pci_dev *dev)
455{ 471{
diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h
index 48dc4bb856a1..25d76c4df50b 100644
--- a/arch/powerpc/platforms/powernv/pci.h
+++ b/arch/powerpc/platforms/powernv/pci.h
@@ -86,6 +86,7 @@ struct pnv_phb {
86 void (*dma_dev_setup)(struct pnv_phb *phb, struct pci_dev *pdev); 86 void (*dma_dev_setup)(struct pnv_phb *phb, struct pci_dev *pdev);
87 void (*fixup_phb)(struct pci_controller *hose); 87 void (*fixup_phb)(struct pci_controller *hose);
88 u32 (*bdfn_to_pe)(struct pnv_phb *phb, struct pci_bus *bus, u32 devfn); 88 u32 (*bdfn_to_pe)(struct pnv_phb *phb, struct pci_bus *bus, u32 devfn);
89 void (*shutdown)(struct pnv_phb *phb);
89 90
90 union { 91 union {
91 struct { 92 struct {
@@ -158,4 +159,5 @@ extern void pnv_pci_init_ioda_hub(struct device_node *np);
158extern void pnv_pci_init_ioda2_phb(struct device_node *np); 159extern void pnv_pci_init_ioda2_phb(struct device_node *np);
159extern void pnv_pci_ioda_tce_invalidate(struct iommu_table *tbl, 160extern void pnv_pci_ioda_tce_invalidate(struct iommu_table *tbl,
160 u64 *startp, u64 *endp); 161 u64 *startp, u64 *endp);
162
161#endif /* __POWERNV_PCI_H */ 163#endif /* __POWERNV_PCI_H */
diff --git a/arch/powerpc/platforms/powernv/powernv.h b/arch/powerpc/platforms/powernv/powernv.h
index 8a9df7f9667e..a1c6f83fc391 100644
--- a/arch/powerpc/platforms/powernv/powernv.h
+++ b/arch/powerpc/platforms/powernv/powernv.h
@@ -9,8 +9,10 @@ static inline void pnv_smp_init(void) { }
9 9
10#ifdef CONFIG_PCI 10#ifdef CONFIG_PCI
11extern void pnv_pci_init(void); 11extern void pnv_pci_init(void);
12extern void pnv_pci_shutdown(void);
12#else 13#else
13static inline void pnv_pci_init(void) { } 14static inline void pnv_pci_init(void) { }
15static inline void pnv_pci_shutdown(void) { }
14#endif 16#endif
15 17
16#endif /* _POWERNV_H */ 18#endif /* _POWERNV_H */
diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
index db1ad1c8f68f..d4459bfc92f7 100644
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -78,7 +78,9 @@ static void pnv_show_cpuinfo(struct seq_file *m)
78 if (root) 78 if (root)
79 model = of_get_property(root, "model", NULL); 79 model = of_get_property(root, "model", NULL);
80 seq_printf(m, "machine\t\t: PowerNV %s\n", model); 80 seq_printf(m, "machine\t\t: PowerNV %s\n", model);
81 if (firmware_has_feature(FW_FEATURE_OPALv2)) 81 if (firmware_has_feature(FW_FEATURE_OPALv3))
82 seq_printf(m, "firmware\t: OPAL v3\n");
83 else if (firmware_has_feature(FW_FEATURE_OPALv2))
82 seq_printf(m, "firmware\t: OPAL v2\n"); 84 seq_printf(m, "firmware\t: OPAL v2\n");
83 else if (firmware_has_feature(FW_FEATURE_OPAL)) 85 else if (firmware_has_feature(FW_FEATURE_OPAL))
84 seq_printf(m, "firmware\t: OPAL v1\n"); 86 seq_printf(m, "firmware\t: OPAL v1\n");
@@ -126,6 +128,17 @@ static void pnv_progress(char *s, unsigned short hex)
126{ 128{
127} 129}
128 130
131static void pnv_shutdown(void)
132{
133 /* Let the PCI code clear up IODA tables */
134 pnv_pci_shutdown();
135
136 /* And unregister all OPAL interrupts so they don't fire
137 * up while we kexec
138 */
139 opal_shutdown();
140}
141
129#ifdef CONFIG_KEXEC 142#ifdef CONFIG_KEXEC
130static void pnv_kexec_cpu_down(int crash_shutdown, int secondary) 143static void pnv_kexec_cpu_down(int crash_shutdown, int secondary)
131{ 144{
@@ -187,6 +200,7 @@ define_machine(powernv) {
187 .init_IRQ = pnv_init_IRQ, 200 .init_IRQ = pnv_init_IRQ,
188 .show_cpuinfo = pnv_show_cpuinfo, 201 .show_cpuinfo = pnv_show_cpuinfo,
189 .progress = pnv_progress, 202 .progress = pnv_progress,
203 .machine_shutdown = pnv_shutdown,
190 .power_save = power7_idle, 204 .power_save = power7_idle,
191 .calibrate_decr = generic_calibrate_decr, 205 .calibrate_decr = generic_calibrate_decr,
192#ifdef CONFIG_KEXEC 206#ifdef CONFIG_KEXEC
diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
index 6a3ecca5b725..88c9459c3e07 100644
--- a/arch/powerpc/platforms/powernv/smp.c
+++ b/arch/powerpc/platforms/powernv/smp.c
@@ -71,18 +71,68 @@ int pnv_smp_kick_cpu(int nr)
71 71
72 BUG_ON(nr < 0 || nr >= NR_CPUS); 72 BUG_ON(nr < 0 || nr >= NR_CPUS);
73 73
74 /* On OPAL v2 the CPU are still spinning inside OPAL itself, 74 /*
75 * get them back now 75 * If we already started or OPALv2 is not supported, we just
76 * kick the CPU via the PACA
76 */ 77 */
77 if (!paca[nr].cpu_start && firmware_has_feature(FW_FEATURE_OPALv2)) { 78 if (paca[nr].cpu_start || !firmware_has_feature(FW_FEATURE_OPALv2))
78 pr_devel("OPAL: Starting CPU %d (HW 0x%x)...\n", nr, pcpu); 79 goto kick;
79 rc = opal_start_cpu(pcpu, start_here); 80
81 /*
82 * At this point, the CPU can either be spinning on the way in
83 * from kexec or be inside OPAL waiting to be started for the
84 * first time. OPAL v3 allows us to query OPAL to know if it
85 * has the CPUs, so we do that
86 */
87 if (firmware_has_feature(FW_FEATURE_OPALv3)) {
88 uint8_t status;
89
90 rc = opal_query_cpu_status(pcpu, &status);
80 if (rc != OPAL_SUCCESS) { 91 if (rc != OPAL_SUCCESS) {
81 pr_warn("OPAL Error %ld starting CPU %d\n", 92 pr_warn("OPAL Error %ld querying CPU %d state\n",
82 rc, nr); 93 rc, nr);
83 return -ENODEV; 94 return -ENODEV;
84 } 95 }
96
97 /*
98 * Already started, just kick it, probably coming from
99 * kexec and spinning
100 */
101 if (status == OPAL_THREAD_STARTED)
102 goto kick;
103
104 /*
105 * Available/inactive, let's kick it
106 */
107 if (status == OPAL_THREAD_INACTIVE) {
108 pr_devel("OPAL: Starting CPU %d (HW 0x%x)...\n",
109 nr, pcpu);
110 rc = opal_start_cpu(pcpu, start_here);
111 if (rc != OPAL_SUCCESS) {
112 pr_warn("OPAL Error %ld starting CPU %d\n",
113 rc, nr);
114 return -ENODEV;
115 }
116 } else {
117 /*
118 * An unavailable CPU (or any other unknown status)
119 * shouldn't be started. It should also
120 * not be in the possible map but currently it can
121 * happen
122 */
123 pr_devel("OPAL: CPU %d (HW 0x%x) is unavailable"
124 " (status %d)...\n", nr, pcpu, status);
125 return -ENODEV;
126 }
127 } else {
128 /*
129 * On OPAL v2, we just kick it and hope for the best,
130 * we must not test the error from opal_start_cpu() or
131 * we would fail to get CPUs from kexec.
132 */
133 opal_start_cpu(pcpu, start_here);
85 } 134 }
135 kick:
86 return smp_generic_kick_cpu(nr); 136 return smp_generic_kick_cpu(nr);
87} 137}
88 138
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
index 9a0941bc4d31..4459eff7a75a 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -18,6 +18,9 @@ config PPC_PSERIES
18 select PPC_PCI_CHOICE if EXPERT 18 select PPC_PCI_CHOICE if EXPERT
19 select ZLIB_DEFLATE 19 select ZLIB_DEFLATE
20 select PPC_DOORBELL 20 select PPC_DOORBELL
21 select HAVE_CONTEXT_TRACKING
22 select HOTPLUG if SMP
23 select HOTPLUG_CPU if SMP
21 default y 24 default y
22 25
23config PPC_SPLPAR 26config PPC_SPLPAR
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
index 420524e6f8c9..6d2f0abce6fa 100644
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -26,26 +26,6 @@ static int query_token, change_token;
26#define RTAS_CHANGE_MSIX_FN 4 26#define RTAS_CHANGE_MSIX_FN 4
27#define RTAS_CHANGE_32MSI_FN 5 27#define RTAS_CHANGE_32MSI_FN 5
28 28
29static struct pci_dn *get_pdn(struct pci_dev *pdev)
30{
31 struct device_node *dn;
32 struct pci_dn *pdn;
33
34 dn = pci_device_to_OF_node(pdev);
35 if (!dn) {
36 dev_dbg(&pdev->dev, "rtas_msi: No OF device node\n");
37 return NULL;
38 }
39
40 pdn = PCI_DN(dn);
41 if (!pdn) {
42 dev_dbg(&pdev->dev, "rtas_msi: No PCI DN\n");
43 return NULL;
44 }
45
46 return pdn;
47}
48
49/* RTAS Helpers */ 29/* RTAS Helpers */
50 30
51static int rtas_change_msi(struct pci_dn *pdn, u32 func, u32 num_irqs) 31static int rtas_change_msi(struct pci_dn *pdn, u32 func, u32 num_irqs)
@@ -91,7 +71,7 @@ static void rtas_disable_msi(struct pci_dev *pdev)
91{ 71{
92 struct pci_dn *pdn; 72 struct pci_dn *pdn;
93 73
94 pdn = get_pdn(pdev); 74 pdn = pci_get_pdn(pdev);
95 if (!pdn) 75 if (!pdn)
96 return; 76 return;
97 77
@@ -152,7 +132,7 @@ static int check_req(struct pci_dev *pdev, int nvec, char *prop_name)
152 struct pci_dn *pdn; 132 struct pci_dn *pdn;
153 const u32 *req_msi; 133 const u32 *req_msi;
154 134
155 pdn = get_pdn(pdev); 135 pdn = pci_get_pdn(pdev);
156 if (!pdn) 136 if (!pdn)
157 return -ENODEV; 137 return -ENODEV;
158 138
@@ -394,6 +374,23 @@ static int check_msix_entries(struct pci_dev *pdev)
394 return 0; 374 return 0;
395} 375}
396 376
377static void rtas_hack_32bit_msi_gen2(struct pci_dev *pdev)
378{
379 u32 addr_hi, addr_lo;
380
381 /*
382 * We should only get in here for IODA1 configs. This is based on the
383 * fact that we using RTAS for MSIs, we don't have the 32 bit MSI RTAS
384 * support, and we are in a PCIe Gen2 slot.
385 */
386 dev_info(&pdev->dev,
387 "rtas_msi: No 32 bit MSI firmware support, forcing 32 bit MSI\n");
388 pci_read_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, &addr_hi);
389 addr_lo = 0xffff0000 | ((addr_hi >> (48 - 32)) << 4);
390 pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_LO, addr_lo);
391 pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, 0);
392}
393
397static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec_in, int type) 394static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec_in, int type)
398{ 395{
399 struct pci_dn *pdn; 396 struct pci_dn *pdn;
@@ -401,8 +398,9 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec_in, int type)
401 struct msi_desc *entry; 398 struct msi_desc *entry;
402 struct msi_msg msg; 399 struct msi_msg msg;
403 int nvec = nvec_in; 400 int nvec = nvec_in;
401 int use_32bit_msi_hack = 0;
404 402
405 pdn = get_pdn(pdev); 403 pdn = pci_get_pdn(pdev);
406 if (!pdn) 404 if (!pdn)
407 return -ENODEV; 405 return -ENODEV;
408 406
@@ -428,15 +426,31 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec_in, int type)
428 */ 426 */
429again: 427again:
430 if (type == PCI_CAP_ID_MSI) { 428 if (type == PCI_CAP_ID_MSI) {
431 if (pdn->force_32bit_msi) 429 if (pdn->force_32bit_msi) {
432 rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, nvec); 430 rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, nvec);
433 else 431 if (rc < 0) {
432 /*
433 * We only want to run the 32 bit MSI hack below if
434 * the max bus speed is Gen2 speed
435 */
436 if (pdev->bus->max_bus_speed != PCIE_SPEED_5_0GT)
437 return rc;
438
439 use_32bit_msi_hack = 1;
440 }
441 } else
442 rc = -1;
443
444 if (rc < 0)
434 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSI_FN, nvec); 445 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSI_FN, nvec);
435 446
436 if (rc < 0 && !pdn->force_32bit_msi) { 447 if (rc < 0) {
437 pr_debug("rtas_msi: trying the old firmware call.\n"); 448 pr_debug("rtas_msi: trying the old firmware call.\n");
438 rc = rtas_change_msi(pdn, RTAS_CHANGE_FN, nvec); 449 rc = rtas_change_msi(pdn, RTAS_CHANGE_FN, nvec);
439 } 450 }
451
452 if (use_32bit_msi_hack && rc > 0)
453 rtas_hack_32bit_msi_gen2(pdev);
440 } else 454 } else
441 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSIX_FN, nvec); 455 rc = rtas_change_msi(pdn, RTAS_CHANGE_MSIX_FN, nvec);
442 456
@@ -518,12 +532,3 @@ static int rtas_msi_init(void)
518} 532}
519arch_initcall(rtas_msi_init); 533arch_initcall(rtas_msi_init);
520 534
521static void quirk_radeon(struct pci_dev *dev)
522{
523 struct pci_dn *pdn = get_pdn(dev);
524
525 if (pdn)
526 pdn->force_32bit_msi = 1;
527}
528DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x68f2, quirk_radeon);
529DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0xaa68, quirk_radeon);
diff --git a/arch/powerpc/platforms/pseries/suspend.c b/arch/powerpc/platforms/pseries/suspend.c
index 47226e04126d..5f997e79d570 100644
--- a/arch/powerpc/platforms/pseries/suspend.c
+++ b/arch/powerpc/platforms/pseries/suspend.c
@@ -16,6 +16,7 @@
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */ 17 */
18 18
19#include <linux/cpu.h>
19#include <linux/delay.h> 20#include <linux/delay.h>
20#include <linux/suspend.h> 21#include <linux/suspend.h>
21#include <linux/stat.h> 22#include <linux/stat.h>
@@ -126,11 +127,15 @@ static ssize_t store_hibernate(struct device *dev,
126 struct device_attribute *attr, 127 struct device_attribute *attr,
127 const char *buf, size_t count) 128 const char *buf, size_t count)
128{ 129{
130 cpumask_var_t offline_mask;
129 int rc; 131 int rc;
130 132
131 if (!capable(CAP_SYS_ADMIN)) 133 if (!capable(CAP_SYS_ADMIN))
132 return -EPERM; 134 return -EPERM;
133 135
136 if (!alloc_cpumask_var(&offline_mask, GFP_TEMPORARY))
137 return -ENOMEM;
138
134 stream_id = simple_strtoul(buf, NULL, 16); 139 stream_id = simple_strtoul(buf, NULL, 16);
135 140
136 do { 141 do {
@@ -140,15 +145,32 @@ static ssize_t store_hibernate(struct device *dev,
140 } while (rc == -EAGAIN); 145 } while (rc == -EAGAIN);
141 146
142 if (!rc) { 147 if (!rc) {
148 /* All present CPUs must be online */
149 cpumask_andnot(offline_mask, cpu_present_mask,
150 cpu_online_mask);
151 rc = rtas_online_cpus_mask(offline_mask);
152 if (rc) {
153 pr_err("%s: Could not bring present CPUs online.\n",
154 __func__);
155 goto out;
156 }
157
143 stop_topology_update(); 158 stop_topology_update();
144 rc = pm_suspend(PM_SUSPEND_MEM); 159 rc = pm_suspend(PM_SUSPEND_MEM);
145 start_topology_update(); 160 start_topology_update();
161
162 /* Take down CPUs not online prior to suspend */
163 if (!rtas_offline_cpus_mask(offline_mask))
164 pr_warn("%s: Could not restore CPUs to offline "
165 "state.\n", __func__);
146 } 166 }
147 167
148 stream_id = 0; 168 stream_id = 0;
149 169
150 if (!rc) 170 if (!rc)
151 rc = count; 171 rc = count;
172out:
173 free_cpumask_var(offline_mask);
152 return rc; 174 return rc;
153} 175}
154 176
diff --git a/arch/powerpc/platforms/wsp/ics.c b/arch/powerpc/platforms/wsp/ics.c
index 97fe82ee8633..2d3b1dd9571d 100644
--- a/arch/powerpc/platforms/wsp/ics.c
+++ b/arch/powerpc/platforms/wsp/ics.c
@@ -361,7 +361,7 @@ static int wsp_chip_set_affinity(struct irq_data *d,
361 xive = xive_set_server(xive, get_irq_server(ics, hw_irq)); 361 xive = xive_set_server(xive, get_irq_server(ics, hw_irq));
362 wsp_ics_set_xive(ics, hw_irq, xive); 362 wsp_ics_set_xive(ics, hw_irq, xive);
363 363
364 return 0; 364 return IRQ_SET_MASK_OK;
365} 365}
366 366
367static struct irq_chip wsp_irq_chip = { 367static struct irq_chip wsp_irq_chip = {
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index b0a518e97599..99464a7bdb3b 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -64,6 +64,8 @@ endif
64 64
65obj-$(CONFIG_PPC_SCOM) += scom.o 65obj-$(CONFIG_PPC_SCOM) += scom.o
66 66
67obj-$(CONFIG_PPC_EARLY_DEBUG_MEMCONS) += udbg_memcons.o
68
67subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror 69subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
68 70
69obj-$(CONFIG_PPC_XICS) += xics/ 71obj-$(CONFIG_PPC_XICS) += xics/
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index 6e0e1005227f..9cd0e60716fe 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -81,7 +81,7 @@ int ehv_pic_set_affinity(struct irq_data *d, const struct cpumask *dest,
81 ev_int_set_config(src, config, prio, cpuid); 81 ev_int_set_config(src, config, prio, cpuid);
82 spin_unlock_irqrestore(&ehv_pic_lock, flags); 82 spin_unlock_irqrestore(&ehv_pic_lock, flags);
83 83
84 return 0; 84 return IRQ_SET_MASK_OK;
85} 85}
86 86
87static unsigned int ehv_pic_type_to_vecpri(unsigned int type) 87static unsigned int ehv_pic_type_to_vecpri(unsigned int type)
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index ee21b5e71aec..3cc2f9159ab1 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -54,7 +54,7 @@ static DEFINE_RAW_SPINLOCK(mpic_lock);
54 54
55#ifdef CONFIG_PPC32 /* XXX for now */ 55#ifdef CONFIG_PPC32 /* XXX for now */
56#ifdef CONFIG_IRQ_ALL_CPUS 56#ifdef CONFIG_IRQ_ALL_CPUS
57#define distribute_irqs (!(mpic->flags & MPIC_SINGLE_DEST_CPU)) 57#define distribute_irqs (1)
58#else 58#else
59#define distribute_irqs (0) 59#define distribute_irqs (0)
60#endif 60#endif
@@ -836,7 +836,7 @@ int mpic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
836 mpic_physmask(mask)); 836 mpic_physmask(mask));
837 } 837 }
838 838
839 return 0; 839 return IRQ_SET_MASK_OK;
840} 840}
841 841
842static unsigned int mpic_type_to_vecpri(struct mpic *mpic, unsigned int type) 842static unsigned int mpic_type_to_vecpri(struct mpic *mpic, unsigned int type)
@@ -1703,7 +1703,7 @@ void mpic_setup_this_cpu(void)
1703 * it differently, then we should make sure we also change the default 1703 * it differently, then we should make sure we also change the default
1704 * values of irq_desc[].affinity in irq.c. 1704 * values of irq_desc[].affinity in irq.c.
1705 */ 1705 */
1706 if (distribute_irqs) { 1706 if (distribute_irqs && !(mpic->flags & MPIC_SINGLE_DEST_CPU)) {
1707 for (i = 0; i < mpic->num_sources ; i++) 1707 for (i = 0; i < mpic->num_sources ; i++)
1708 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1708 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION),
1709 mpic_irq_read(i, MPIC_INFO(IRQ_DESTINATION)) | msk); 1709 mpic_irq_read(i, MPIC_INFO(IRQ_DESTINATION)) | msk);
diff --git a/arch/powerpc/sysdev/udbg_memcons.c b/arch/powerpc/sysdev/udbg_memcons.c
new file mode 100644
index 000000000000..ce5a7b489e4b
--- /dev/null
+++ b/arch/powerpc/sysdev/udbg_memcons.c
@@ -0,0 +1,105 @@
1/*
2 * A udbg backend which logs messages and reads input from in memory
3 * buffers.
4 *
5 * The console output can be read from memcons_output which is a
6 * circular buffer whose next write position is stored in memcons.output_pos.
7 *
8 * Input may be passed by writing into the memcons_input buffer when it is
9 * empty. The input buffer is empty when both input_pos == input_start and
10 * *input_start == '\0'.
11 *
12 * Copyright (C) 2003-2005 Anton Blanchard and Milton Miller, IBM Corp
13 * Copyright (C) 2013 Alistair Popple, IBM Corp
14 *
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version
18 * 2 of the License, or (at your option) any later version.
19 */
20
21#include <linux/init.h>
22#include <linux/kernel.h>
23#include <asm/barrier.h>
24#include <asm/page.h>
25#include <asm/processor.h>
26#include <asm/udbg.h>
27
28struct memcons {
29 char *output_start;
30 char *output_pos;
31 char *output_end;
32 char *input_start;
33 char *input_pos;
34 char *input_end;
35};
36
37static char memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE];
38static char memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE];
39
40struct memcons memcons = {
41 .output_start = memcons_output,
42 .output_pos = memcons_output,
43 .output_end = &memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE],
44 .input_start = memcons_input,
45 .input_pos = memcons_input,
46 .input_end = &memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE],
47};
48
49void memcons_putc(char c)
50{
51 char *new_output_pos;
52
53 *memcons.output_pos = c;
54 wmb();
55 new_output_pos = memcons.output_pos + 1;
56 if (new_output_pos >= memcons.output_end)
57 new_output_pos = memcons.output_start;
58
59 memcons.output_pos = new_output_pos;
60}
61
62int memcons_getc_poll(void)
63{
64 char c;
65 char *new_input_pos;
66
67 if (*memcons.input_pos) {
68 c = *memcons.input_pos;
69
70 new_input_pos = memcons.input_pos + 1;
71 if (new_input_pos >= memcons.input_end)
72 new_input_pos = memcons.input_start;
73 else if (*new_input_pos == '\0')
74 new_input_pos = memcons.input_start;
75
76 *memcons.input_pos = '\0';
77 wmb();
78 memcons.input_pos = new_input_pos;
79 return c;
80 }
81
82 return -1;
83}
84
85int memcons_getc(void)
86{
87 int c;
88
89 while (1) {
90 c = memcons_getc_poll();
91 if (c == -1)
92 cpu_relax();
93 else
94 break;
95 }
96
97 return c;
98}
99
100void udbg_init_memcons(void)
101{
102 udbg_putc = memcons_putc;
103 udbg_getc = memcons_getc;
104 udbg_getc_poll = memcons_getc_poll;
105}
diff --git a/arch/powerpc/sysdev/xics/ics-opal.c b/arch/powerpc/sysdev/xics/ics-opal.c
index f7e8609df0d5..39d72212655e 100644
--- a/arch/powerpc/sysdev/xics/ics-opal.c
+++ b/arch/powerpc/sysdev/xics/ics-opal.c
@@ -148,7 +148,7 @@ static int ics_opal_set_affinity(struct irq_data *d,
148 __func__, d->irq, hw_irq, server, rc); 148 __func__, d->irq, hw_irq, server, rc);
149 return -1; 149 return -1;
150 } 150 }
151 return 0; 151 return IRQ_SET_MASK_OK;
152} 152}
153 153
154static struct irq_chip ics_opal_irq_chip = { 154static struct irq_chip ics_opal_irq_chip = {
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 2c9789da0e24..da183c5a103c 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -98,7 +98,6 @@ config S390
98 select CLONE_BACKWARDS2 98 select CLONE_BACKWARDS2
99 select GENERIC_CLOCKEVENTS 99 select GENERIC_CLOCKEVENTS
100 select GENERIC_CPU_DEVICES if !SMP 100 select GENERIC_CPU_DEVICES if !SMP
101 select GENERIC_KERNEL_THREAD
102 select GENERIC_SMP_IDLE_THREAD 101 select GENERIC_SMP_IDLE_THREAD
103 select GENERIC_TIME_VSYSCALL_OLD 102 select GENERIC_TIME_VSYSCALL_OLD
104 select HAVE_ALIGNED_STRUCT_PAGE if SLUB 103 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
diff --git a/arch/s390/include/asm/ftrace.h b/arch/s390/include/asm/ftrace.h
index b7931faaef6d..bf246dae1367 100644
--- a/arch/s390/include/asm/ftrace.h
+++ b/arch/s390/include/asm/ftrace.h
@@ -9,11 +9,6 @@ struct dyn_arch_ftrace { };
9 9
10#define MCOUNT_ADDR ((long)_mcount) 10#define MCOUNT_ADDR ((long)_mcount)
11 11
12#ifdef CONFIG_64BIT
13#define MCOUNT_INSN_SIZE 12
14#else
15#define MCOUNT_INSN_SIZE 20
16#endif
17 12
18static inline unsigned long ftrace_call_adjust(unsigned long addr) 13static inline unsigned long ftrace_call_adjust(unsigned long addr)
19{ 14{
@@ -21,4 +16,11 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr)
21} 16}
22 17
23#endif /* __ASSEMBLY__ */ 18#endif /* __ASSEMBLY__ */
19
20#ifdef CONFIG_64BIT
21#define MCOUNT_INSN_SIZE 12
22#else
23#define MCOUNT_INSN_SIZE 22
24#endif
25
24#endif /* _ASM_S390_FTRACE_H */ 26#endif /* _ASM_S390_FTRACE_H */
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h
index 75ce9b065f9f..5d64fb7619cc 100644
--- a/arch/s390/include/asm/page.h
+++ b/arch/s390/include/asm/page.h
@@ -32,7 +32,7 @@
32 32
33void storage_key_init_range(unsigned long start, unsigned long end); 33void storage_key_init_range(unsigned long start, unsigned long end);
34 34
35static unsigned long pfmf(unsigned long function, unsigned long address) 35static inline unsigned long pfmf(unsigned long function, unsigned long address)
36{ 36{
37 asm volatile( 37 asm volatile(
38 " .insn rre,0xb9af0000,%[function],%[address]" 38 " .insn rre,0xb9af0000,%[function],%[address]"
@@ -44,17 +44,13 @@ static unsigned long pfmf(unsigned long function, unsigned long address)
44 44
45static inline void clear_page(void *page) 45static inline void clear_page(void *page)
46{ 46{
47 if (MACHINE_HAS_PFMF) { 47 register unsigned long reg1 asm ("1") = 0;
48 pfmf(0x10000, (unsigned long)page); 48 register void *reg2 asm ("2") = page;
49 } else { 49 register unsigned long reg3 asm ("3") = 4096;
50 register unsigned long reg1 asm ("1") = 0; 50 asm volatile(
51 register void *reg2 asm ("2") = page; 51 " mvcl 2,0"
52 register unsigned long reg3 asm ("3") = 4096; 52 : "+d" (reg2), "+d" (reg3) : "d" (reg1)
53 asm volatile( 53 : "memory", "cc");
54 " mvcl 2,0"
55 : "+d" (reg2), "+d" (reg3) : "d" (reg1)
56 : "memory", "cc");
57 }
58} 54}
59 55
60static inline void copy_page(void *to, void *from) 56static inline void copy_page(void *to, void *from)
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 4105b8221fdd..0f0de30e3e3f 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -306,7 +306,7 @@ extern unsigned long MODULES_END;
306#define RCP_HC_BIT 0x00200000UL 306#define RCP_HC_BIT 0x00200000UL
307#define RCP_GR_BIT 0x00040000UL 307#define RCP_GR_BIT 0x00040000UL
308#define RCP_GC_BIT 0x00020000UL 308#define RCP_GC_BIT 0x00020000UL
309#define RCP_IN_BIT 0x00008000UL /* IPTE notify bit */ 309#define RCP_IN_BIT 0x00002000UL /* IPTE notify bit */
310 310
311/* User dirty / referenced bit for KVM's migration feature */ 311/* User dirty / referenced bit for KVM's migration feature */
312#define KVM_UR_BIT 0x00008000UL 312#define KVM_UR_BIT 0x00008000UL
@@ -374,7 +374,7 @@ extern unsigned long MODULES_END;
374#define RCP_HC_BIT 0x0020000000000000UL 374#define RCP_HC_BIT 0x0020000000000000UL
375#define RCP_GR_BIT 0x0004000000000000UL 375#define RCP_GR_BIT 0x0004000000000000UL
376#define RCP_GC_BIT 0x0002000000000000UL 376#define RCP_GC_BIT 0x0002000000000000UL
377#define RCP_IN_BIT 0x0000800000000000UL /* IPTE notify bit */ 377#define RCP_IN_BIT 0x0000200000000000UL /* IPTE notify bit */
378 378
379/* User dirty / referenced bit for KVM's migration feature */ 379/* User dirty / referenced bit for KVM's migration feature */
380#define KVM_UR_BIT 0x0000800000000000UL 380#define KVM_UR_BIT 0x0000800000000000UL
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c
index 7f4a4a8c847c..be87d3e05a5b 100644
--- a/arch/s390/kernel/dis.c
+++ b/arch/s390/kernel/dis.c
@@ -1862,6 +1862,8 @@ void print_fn_code(unsigned char *code, unsigned long len)
1862 while (len) { 1862 while (len) {
1863 ptr = buffer; 1863 ptr = buffer;
1864 opsize = insn_length(*code); 1864 opsize = insn_length(*code);
1865 if (opsize > len)
1866 break;
1865 ptr += sprintf(ptr, "%p: ", code); 1867 ptr += sprintf(ptr, "%p: ", code);
1866 for (i = 0; i < opsize; i++) 1868 for (i = 0; i < opsize; i++)
1867 ptr += sprintf(ptr, "%02x", code[i]); 1869 ptr += sprintf(ptr, "%02x", code[i]);
diff --git a/arch/s390/kernel/ftrace.c b/arch/s390/kernel/ftrace.c
index 78bdf0e5dff7..e3043aef87a9 100644
--- a/arch/s390/kernel/ftrace.c
+++ b/arch/s390/kernel/ftrace.c
@@ -16,12 +16,6 @@
16#include <trace/syscall.h> 16#include <trace/syscall.h>
17#include <asm/asm-offsets.h> 17#include <asm/asm-offsets.h>
18 18
19#ifdef CONFIG_64BIT
20#define MCOUNT_OFFSET_RET 12
21#else
22#define MCOUNT_OFFSET_RET 22
23#endif
24
25#ifdef CONFIG_DYNAMIC_FTRACE 19#ifdef CONFIG_DYNAMIC_FTRACE
26 20
27void ftrace_disable_code(void); 21void ftrace_disable_code(void);
@@ -155,9 +149,10 @@ unsigned long __kprobes prepare_ftrace_return(unsigned long parent,
155 149
156 if (unlikely(atomic_read(&current->tracing_graph_pause))) 150 if (unlikely(atomic_read(&current->tracing_graph_pause)))
157 goto out; 151 goto out;
152 ip = (ip & PSW_ADDR_INSN) - MCOUNT_INSN_SIZE;
158 if (ftrace_push_return_trace(parent, ip, &trace.depth, 0) == -EBUSY) 153 if (ftrace_push_return_trace(parent, ip, &trace.depth, 0) == -EBUSY)
159 goto out; 154 goto out;
160 trace.func = (ip & PSW_ADDR_INSN) - MCOUNT_OFFSET_RET; 155 trace.func = ip;
161 /* Only trace if the calling function expects to. */ 156 /* Only trace if the calling function expects to. */
162 if (!ftrace_graph_entry(&trace)) { 157 if (!ftrace_graph_entry(&trace)) {
163 current->curr_ret_stack--; 158 current->curr_ret_stack--;
diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S
index 4567ce20d900..08dcf21cb8df 100644
--- a/arch/s390/kernel/mcount.S
+++ b/arch/s390/kernel/mcount.S
@@ -7,6 +7,7 @@
7 7
8#include <linux/linkage.h> 8#include <linux/linkage.h>
9#include <asm/asm-offsets.h> 9#include <asm/asm-offsets.h>
10#include <asm/ftrace.h>
10 11
11 .section .kprobes.text, "ax" 12 .section .kprobes.text, "ax"
12 13
@@ -33,6 +34,7 @@ ENTRY(ftrace_caller)
33 la %r2,0(%r14) 34 la %r2,0(%r14)
34 st %r0,__SF_BACKCHAIN(%r15) 35 st %r0,__SF_BACKCHAIN(%r15)
35 la %r3,0(%r3) 36 la %r3,0(%r3)
37 ahi %r2,-MCOUNT_INSN_SIZE
36 l %r14,0b-0b(%r1) 38 l %r14,0b-0b(%r1)
37 l %r14,0(%r14) 39 l %r14,0(%r14)
38 basr %r14,%r14 40 basr %r14,%r14
diff --git a/arch/s390/kernel/mcount64.S b/arch/s390/kernel/mcount64.S
index 11332193db30..1c52eae3396a 100644
--- a/arch/s390/kernel/mcount64.S
+++ b/arch/s390/kernel/mcount64.S
@@ -7,6 +7,7 @@
7 7
8#include <linux/linkage.h> 8#include <linux/linkage.h>
9#include <asm/asm-offsets.h> 9#include <asm/asm-offsets.h>
10#include <asm/ftrace.h>
10 11
11 .section .kprobes.text, "ax" 12 .section .kprobes.text, "ax"
12 13
@@ -29,6 +30,7 @@ ENTRY(ftrace_caller)
29 stg %r1,__SF_BACKCHAIN(%r15) 30 stg %r1,__SF_BACKCHAIN(%r15)
30 lgr %r2,%r14 31 lgr %r2,%r14
31 lg %r3,168(%r15) 32 lg %r3,168(%r15)
33 aghi %r2,-MCOUNT_INSN_SIZE
32 larl %r14,ftrace_trace_function 34 larl %r14,ftrace_trace_function
33 lg %r14,0(%r14) 35 lg %r14,0(%r14)
34 basr %r14,%r14 36 basr %r14,%r14
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 8074cb4b7cbf..05674b669001 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -645,7 +645,7 @@ static int __cpuinit __smp_rescan_cpus(struct sclp_cpu_info *info,
645 continue; 645 continue;
646 pcpu = pcpu_devices + cpu; 646 pcpu = pcpu_devices + cpu;
647 pcpu->address = info->cpu[i].address; 647 pcpu->address = info->cpu[i].address;
648 pcpu->state = (cpu >= info->configured) ? 648 pcpu->state = (i >= info->configured) ?
649 CPU_STATE_STANDBY : CPU_STATE_CONFIGURED; 649 CPU_STATE_STANDBY : CPU_STATE_CONFIGURED;
650 smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN); 650 smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN);
651 set_cpu_present(cpu, true); 651 set_cpu_present(cpu, true);
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 7805ddca833d..18dc417aaf79 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -677,8 +677,7 @@ int gmap_ipte_notify(struct gmap *gmap, unsigned long start, unsigned long len)
677 break; 677 break;
678 } 678 }
679 /* Get the page mapped */ 679 /* Get the page mapped */
680 if (get_user_pages(current, gmap->mm, addr, 1, 1, 0, 680 if (fixup_user_fault(current, gmap->mm, addr, FAULT_FLAG_WRITE)) {
681 NULL, NULL) != 1) {
682 rc = -EFAULT; 681 rc = -EFAULT;
683 break; 682 break;
684 } 683 }
diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c
index d8f988a37d16..0940682ab38b 100644
--- a/arch/score/mm/init.c
+++ b/arch/score/mm/init.c
@@ -41,8 +41,6 @@
41unsigned long empty_zero_page; 41unsigned long empty_zero_page;
42EXPORT_SYMBOL_GPL(empty_zero_page); 42EXPORT_SYMBOL_GPL(empty_zero_page);
43 43
44static struct kcore_list kcore_mem, kcore_vmalloc;
45
46static void setup_zero_page(void) 44static void setup_zero_page(void)
47{ 45{
48 struct page *page; 46 struct page *page;
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6a154a91c7e7..685692c94f05 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -108,7 +108,6 @@ config X86
108 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC) 108 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
109 select GENERIC_TIME_VSYSCALL if X86_64 109 select GENERIC_TIME_VSYSCALL if X86_64
110 select KTIME_SCALAR if X86_32 110 select KTIME_SCALAR if X86_32
111 select ALWAYS_USE_PERSISTENT_CLOCK
112 select GENERIC_STRNCPY_FROM_USER 111 select GENERIC_STRNCPY_FROM_USER
113 select GENERIC_STRNLEN_USER 112 select GENERIC_STRNLEN_USER
114 select HAVE_CONTEXT_TRACKING if X86_64 113 select HAVE_CONTEXT_TRACKING if X86_64
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index b6a770132b67..c963881de0d0 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -303,4 +303,14 @@ config DEBUG_NMI_SELFTEST
303 303
304 If unsure, say N. 304 If unsure, say N.
305 305
306config X86_DEBUG_STATIC_CPU_HAS
307 bool "Debug alternatives"
308 depends on DEBUG_KERNEL
309 ---help---
310 This option causes additional code to be generated which
311 fails if static_cpu_has() is used before alternatives have
312 run.
313
314 If unsure, say N.
315
306endmenu 316endmenu
diff --git a/arch/x86/crypto/crc32-pclmul_asm.S b/arch/x86/crypto/crc32-pclmul_asm.S
index 94c27df8a549..f247304299a2 100644
--- a/arch/x86/crypto/crc32-pclmul_asm.S
+++ b/arch/x86/crypto/crc32-pclmul_asm.S
@@ -240,7 +240,7 @@ fold_64:
240 pand %xmm3, %xmm1 240 pand %xmm3, %xmm1
241 PCLMULQDQ 0x00, CONSTANT, %xmm1 241 PCLMULQDQ 0x00, CONSTANT, %xmm1
242 pxor %xmm2, %xmm1 242 pxor %xmm2, %xmm1
243 pextrd $0x01, %xmm1, %eax 243 PEXTRD 0x01, %xmm1, %eax
244 244
245 ret 245 ret
246ENDPROC(crc32_pclmul_le_16) 246ENDPROC(crc32_pclmul_le_16)
diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
index 56610c4bf31b..642f15687a0a 100644
--- a/arch/x86/crypto/sha256-avx-asm.S
+++ b/arch/x86/crypto/sha256-avx-asm.S
@@ -118,7 +118,7 @@ y2 = %r15d
118 118
119_INP_END_SIZE = 8 119_INP_END_SIZE = 8
120_INP_SIZE = 8 120_INP_SIZE = 8
121_XFER_SIZE = 8 121_XFER_SIZE = 16
122_XMM_SAVE_SIZE = 0 122_XMM_SAVE_SIZE = 0
123 123
124_INP_END = 0 124_INP_END = 0
diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
index 98d3c391da81..f833b74d902b 100644
--- a/arch/x86/crypto/sha256-ssse3-asm.S
+++ b/arch/x86/crypto/sha256-ssse3-asm.S
@@ -111,7 +111,7 @@ y2 = %r15d
111 111
112_INP_END_SIZE = 8 112_INP_END_SIZE = 8
113_INP_SIZE = 8 113_INP_SIZE = 8
114_XFER_SIZE = 8 114_XFER_SIZE = 16
115_XMM_SAVE_SIZE = 0 115_XMM_SAVE_SIZE = 0
116 116
117_INP_END = 0 117_INP_END = 0
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index e99ac27f95b2..47538a61c91b 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -92,7 +92,7 @@
92#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* "" Lfence synchronizes RDTSC */ 92#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* "" Lfence synchronizes RDTSC */
93#define X86_FEATURE_11AP (3*32+19) /* "" Bad local APIC aka 11AP */ 93#define X86_FEATURE_11AP (3*32+19) /* "" Bad local APIC aka 11AP */
94#define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */ 94#define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */
95 /* 21 available, was AMD_C1E */ 95#define X86_FEATURE_ALWAYS (3*32+21) /* "" Always-present feature */
96#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */ 96#define X86_FEATURE_XTOPOLOGY (3*32+22) /* cpu topology enum extensions */
97#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */ 97#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */
98#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */ 98#define X86_FEATURE_NONSTOP_TSC (3*32+24) /* TSC does not stop in C states */
@@ -356,15 +356,36 @@ extern const char * const x86_power_flags[32];
356#endif /* CONFIG_X86_64 */ 356#endif /* CONFIG_X86_64 */
357 357
358#if __GNUC__ >= 4 358#if __GNUC__ >= 4
359extern void warn_pre_alternatives(void);
360extern bool __static_cpu_has_safe(u16 bit);
361
359/* 362/*
360 * Static testing of CPU features. Used the same as boot_cpu_has(). 363 * Static testing of CPU features. Used the same as boot_cpu_has().
361 * These are only valid after alternatives have run, but will statically 364 * These are only valid after alternatives have run, but will statically
362 * patch the target code for additional performance. 365 * patch the target code for additional performance.
363 *
364 */ 366 */
365static __always_inline __pure bool __static_cpu_has(u16 bit) 367static __always_inline __pure bool __static_cpu_has(u16 bit)
366{ 368{
367#if __GNUC__ > 4 || __GNUC_MINOR__ >= 5 369#if __GNUC__ > 4 || __GNUC_MINOR__ >= 5
370
371#ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
372 /*
373 * Catch too early usage of this before alternatives
374 * have run.
375 */
376 asm goto("1: jmp %l[t_warn]\n"
377 "2:\n"
378 ".section .altinstructions,\"a\"\n"
379 " .long 1b - .\n"
380 " .long 0\n" /* no replacement */
381 " .word %P0\n" /* 1: do replace */
382 " .byte 2b - 1b\n" /* source len */
383 " .byte 0\n" /* replacement len */
384 ".previous\n"
385 /* skipping size check since replacement size = 0 */
386 : : "i" (X86_FEATURE_ALWAYS) : : t_warn);
387#endif
388
368 asm goto("1: jmp %l[t_no]\n" 389 asm goto("1: jmp %l[t_no]\n"
369 "2:\n" 390 "2:\n"
370 ".section .altinstructions,\"a\"\n" 391 ".section .altinstructions,\"a\"\n"
@@ -379,7 +400,13 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
379 return true; 400 return true;
380 t_no: 401 t_no:
381 return false; 402 return false;
382#else 403
404#ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
405 t_warn:
406 warn_pre_alternatives();
407 return false;
408#endif
409#else /* GCC_VERSION >= 40500 */
383 u8 flag; 410 u8 flag;
384 /* Open-coded due to __stringify() in ALTERNATIVE() */ 411 /* Open-coded due to __stringify() in ALTERNATIVE() */
385 asm volatile("1: movb $0,%0\n" 412 asm volatile("1: movb $0,%0\n"
@@ -411,11 +438,94 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
411 __static_cpu_has(bit) : \ 438 __static_cpu_has(bit) : \
412 boot_cpu_has(bit) \ 439 boot_cpu_has(bit) \
413) 440)
441
442static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
443{
444#if __GNUC__ > 4 || __GNUC_MINOR__ >= 5
445/*
446 * We need to spell the jumps to the compiler because, depending on the offset,
447 * the replacement jump can be bigger than the original jump, and this we cannot
448 * have. Thus, we force the jump to the widest, 4-byte, signed relative
449 * offset even though the last would often fit in less bytes.
450 */
451 asm goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n"
452 "2:\n"
453 ".section .altinstructions,\"a\"\n"
454 " .long 1b - .\n" /* src offset */
455 " .long 3f - .\n" /* repl offset */
456 " .word %P1\n" /* always replace */
457 " .byte 2b - 1b\n" /* src len */
458 " .byte 4f - 3f\n" /* repl len */
459 ".previous\n"
460 ".section .altinstr_replacement,\"ax\"\n"
461 "3: .byte 0xe9\n .long %l[t_no] - 2b\n"
462 "4:\n"
463 ".previous\n"
464 ".section .altinstructions,\"a\"\n"
465 " .long 1b - .\n" /* src offset */
466 " .long 0\n" /* no replacement */
467 " .word %P0\n" /* feature bit */
468 " .byte 2b - 1b\n" /* src len */
469 " .byte 0\n" /* repl len */
470 ".previous\n"
471 : : "i" (bit), "i" (X86_FEATURE_ALWAYS)
472 : : t_dynamic, t_no);
473 return true;
474 t_no:
475 return false;
476 t_dynamic:
477 return __static_cpu_has_safe(bit);
478#else /* GCC_VERSION >= 40500 */
479 u8 flag;
480 /* Open-coded due to __stringify() in ALTERNATIVE() */
481 asm volatile("1: movb $2,%0\n"
482 "2:\n"
483 ".section .altinstructions,\"a\"\n"
484 " .long 1b - .\n" /* src offset */
485 " .long 3f - .\n" /* repl offset */
486 " .word %P2\n" /* always replace */
487 " .byte 2b - 1b\n" /* source len */
488 " .byte 4f - 3f\n" /* replacement len */
489 ".previous\n"
490 ".section .discard,\"aw\",@progbits\n"
491 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
492 ".previous\n"
493 ".section .altinstr_replacement,\"ax\"\n"
494 "3: movb $0,%0\n"
495 "4:\n"
496 ".previous\n"
497 ".section .altinstructions,\"a\"\n"
498 " .long 1b - .\n" /* src offset */
499 " .long 5f - .\n" /* repl offset */
500 " .word %P1\n" /* feature bit */
501 " .byte 4b - 3b\n" /* src len */
502 " .byte 6f - 5f\n" /* repl len */
503 ".previous\n"
504 ".section .discard,\"aw\",@progbits\n"
505 " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
506 ".previous\n"
507 ".section .altinstr_replacement,\"ax\"\n"
508 "5: movb $1,%0\n"
509 "6:\n"
510 ".previous\n"
511 : "=qm" (flag)
512 : "i" (bit), "i" (X86_FEATURE_ALWAYS));
513 return (flag == 2 ? __static_cpu_has_safe(bit) : flag);
514#endif
515}
516
517#define static_cpu_has_safe(bit) \
518( \
519 __builtin_constant_p(boot_cpu_has(bit)) ? \
520 boot_cpu_has(bit) : \
521 _static_cpu_has_safe(bit) \
522)
414#else 523#else
415/* 524/*
416 * gcc 3.x is too stupid to do the static test; fall back to dynamic. 525 * gcc 3.x is too stupid to do the static test; fall back to dynamic.
417 */ 526 */
418#define static_cpu_has(bit) boot_cpu_has(bit) 527#define static_cpu_has(bit) boot_cpu_has(bit)
528#define static_cpu_has_safe(bit) boot_cpu_has(bit)
419#endif 529#endif
420 530
421#define cpu_has_bug(c, bit) cpu_has(c, (bit)) 531#define cpu_has_bug(c, bit) cpu_has(c, (bit))
diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
index e25cc33ec54d..4d0bda7b11e3 100644
--- a/arch/x86/include/asm/fpu-internal.h
+++ b/arch/x86/include/asm/fpu-internal.h
@@ -62,10 +62,8 @@ extern user_regset_set_fn fpregs_set, xfpregs_set, fpregs_soft_set,
62#define xstateregs_active fpregs_active 62#define xstateregs_active fpregs_active
63 63
64#ifdef CONFIG_MATH_EMULATION 64#ifdef CONFIG_MATH_EMULATION
65# define HAVE_HWFP (boot_cpu_data.hard_math)
66extern void finit_soft_fpu(struct i387_soft_struct *soft); 65extern void finit_soft_fpu(struct i387_soft_struct *soft);
67#else 66#else
68# define HAVE_HWFP 1
69static inline void finit_soft_fpu(struct i387_soft_struct *soft) {} 67static inline void finit_soft_fpu(struct i387_soft_struct *soft) {}
70#endif 68#endif
71 69
@@ -345,7 +343,7 @@ static inline void __thread_fpu_end(struct task_struct *tsk)
345 343
346static inline void __thread_fpu_begin(struct task_struct *tsk) 344static inline void __thread_fpu_begin(struct task_struct *tsk)
347{ 345{
348 if (!use_eager_fpu()) 346 if (!static_cpu_has_safe(X86_FEATURE_EAGER_FPU))
349 clts(); 347 clts();
350 __thread_set_has_fpu(tsk); 348 __thread_set_has_fpu(tsk);
351} 349}
diff --git a/arch/x86/include/asm/inst.h b/arch/x86/include/asm/inst.h
index 280bf7fb6aba..3e115273ed88 100644
--- a/arch/x86/include/asm/inst.h
+++ b/arch/x86/include/asm/inst.h
@@ -9,12 +9,68 @@
9 9
10#define REG_NUM_INVALID 100 10#define REG_NUM_INVALID 100
11 11
12#define REG_TYPE_R64 0 12#define REG_TYPE_R32 0
13#define REG_TYPE_XMM 1 13#define REG_TYPE_R64 1
14#define REG_TYPE_XMM 2
14#define REG_TYPE_INVALID 100 15#define REG_TYPE_INVALID 100
15 16
17 .macro R32_NUM opd r32
18 \opd = REG_NUM_INVALID
19 .ifc \r32,%eax
20 \opd = 0
21 .endif
22 .ifc \r32,%ecx
23 \opd = 1
24 .endif
25 .ifc \r32,%edx
26 \opd = 2
27 .endif
28 .ifc \r32,%ebx
29 \opd = 3
30 .endif
31 .ifc \r32,%esp
32 \opd = 4
33 .endif
34 .ifc \r32,%ebp
35 \opd = 5
36 .endif
37 .ifc \r32,%esi
38 \opd = 6
39 .endif
40 .ifc \r32,%edi
41 \opd = 7
42 .endif
43#ifdef CONFIG_X86_64
44 .ifc \r32,%r8d
45 \opd = 8
46 .endif
47 .ifc \r32,%r9d
48 \opd = 9
49 .endif
50 .ifc \r32,%r10d
51 \opd = 10
52 .endif
53 .ifc \r32,%r11d
54 \opd = 11
55 .endif
56 .ifc \r32,%r12d
57 \opd = 12
58 .endif
59 .ifc \r32,%r13d
60 \opd = 13
61 .endif
62 .ifc \r32,%r14d
63 \opd = 14
64 .endif
65 .ifc \r32,%r15d
66 \opd = 15
67 .endif
68#endif
69 .endm
70
16 .macro R64_NUM opd r64 71 .macro R64_NUM opd r64
17 \opd = REG_NUM_INVALID 72 \opd = REG_NUM_INVALID
73#ifdef CONFIG_X86_64
18 .ifc \r64,%rax 74 .ifc \r64,%rax
19 \opd = 0 75 \opd = 0
20 .endif 76 .endif
@@ -63,6 +119,7 @@
63 .ifc \r64,%r15 119 .ifc \r64,%r15
64 \opd = 15 120 \opd = 15
65 .endif 121 .endif
122#endif
66 .endm 123 .endm
67 124
68 .macro XMM_NUM opd xmm 125 .macro XMM_NUM opd xmm
@@ -118,10 +175,13 @@
118 .endm 175 .endm
119 176
120 .macro REG_TYPE type reg 177 .macro REG_TYPE type reg
178 R32_NUM reg_type_r32 \reg
121 R64_NUM reg_type_r64 \reg 179 R64_NUM reg_type_r64 \reg
122 XMM_NUM reg_type_xmm \reg 180 XMM_NUM reg_type_xmm \reg
123 .if reg_type_r64 <> REG_NUM_INVALID 181 .if reg_type_r64 <> REG_NUM_INVALID
124 \type = REG_TYPE_R64 182 \type = REG_TYPE_R64
183 .elseif reg_type_r32 <> REG_NUM_INVALID
184 \type = REG_TYPE_R32
125 .elseif reg_type_xmm <> REG_NUM_INVALID 185 .elseif reg_type_xmm <> REG_NUM_INVALID
126 \type = REG_TYPE_XMM 186 \type = REG_TYPE_XMM
127 .else 187 .else
@@ -162,6 +222,16 @@
162 .byte \imm8 222 .byte \imm8
163 .endm 223 .endm
164 224
225 .macro PEXTRD imm8 xmm gpr
226 R32_NUM extrd_opd1 \gpr
227 XMM_NUM extrd_opd2 \xmm
228 PFX_OPD_SIZE
229 PFX_REX extrd_opd1 extrd_opd2
230 .byte 0x0f, 0x3a, 0x16
231 MODRM 0xc0 extrd_opd1 extrd_opd2
232 .byte \imm8
233 .endm
234
165 .macro AESKEYGENASSIST rcon xmm1 xmm2 235 .macro AESKEYGENASSIST rcon xmm1 xmm2
166 XMM_NUM aeskeygen_opd1 \xmm1 236 XMM_NUM aeskeygen_opd1 \xmm1
167 XMM_NUM aeskeygen_opd2 \xmm2 237 XMM_NUM aeskeygen_opd2 \xmm2
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index 5b87d52eed0b..29937c4f6ff8 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -89,9 +89,9 @@ struct cpuinfo_x86 {
89 char wp_works_ok; /* It doesn't on 386's */ 89 char wp_works_ok; /* It doesn't on 386's */
90 90
91 /* Problems on some 486Dx4's and old 386's: */ 91 /* Problems on some 486Dx4's and old 386's: */
92 char hard_math;
93 char rfu; 92 char rfu;
94 char pad0; 93 char pad0;
94 char pad1;
95#else 95#else
96 /* Number of 4K pages in DTLB/ITLB combined(in pages): */ 96 /* Number of 4K pages in DTLB/ITLB combined(in pages): */
97 int x86_tlbsize; 97 int x86_tlbsize;
@@ -164,6 +164,7 @@ extern const struct seq_operations cpuinfo_op;
164#define cache_line_size() (boot_cpu_data.x86_cache_alignment) 164#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
165 165
166extern void cpu_detect(struct cpuinfo_x86 *c); 166extern void cpu_detect(struct cpuinfo_x86 *c);
167extern void __cpuinit fpu_detect(struct cpuinfo_x86 *c);
167 168
168extern void early_cpu_init(void); 169extern void early_cpu_init(void);
169extern void identify_boot_cpu(void); 170extern void identify_boot_cpu(void);
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c
index 0ef4bba2acb7..d67c4be3e8b1 100644
--- a/arch/x86/kernel/asm-offsets_32.c
+++ b/arch/x86/kernel/asm-offsets_32.c
@@ -28,7 +28,6 @@ void foo(void)
28 OFFSET(CPUINFO_x86_vendor, cpuinfo_x86, x86_vendor); 28 OFFSET(CPUINFO_x86_vendor, cpuinfo_x86, x86_vendor);
29 OFFSET(CPUINFO_x86_model, cpuinfo_x86, x86_model); 29 OFFSET(CPUINFO_x86_model, cpuinfo_x86, x86_model);
30 OFFSET(CPUINFO_x86_mask, cpuinfo_x86, x86_mask); 30 OFFSET(CPUINFO_x86_mask, cpuinfo_x86, x86_mask);
31 OFFSET(CPUINFO_hard_math, cpuinfo_x86, hard_math);
32 OFFSET(CPUINFO_cpuid_level, cpuinfo_x86, cpuid_level); 31 OFFSET(CPUINFO_cpuid_level, cpuinfo_x86, cpuid_level);
33 OFFSET(CPUINFO_x86_capability, cpuinfo_x86, x86_capability); 32 OFFSET(CPUINFO_x86_capability, cpuinfo_x86, x86_capability);
34 OFFSET(CPUINFO_x86_vendor_id, cpuinfo_x86, x86_vendor_id); 33 OFFSET(CPUINFO_x86_vendor_id, cpuinfo_x86, x86_vendor_id);
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 4112be9a4659..03445346ee0a 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -17,15 +17,6 @@
17#include <asm/paravirt.h> 17#include <asm/paravirt.h>
18#include <asm/alternative.h> 18#include <asm/alternative.h>
19 19
20static int __init no_387(char *s)
21{
22 boot_cpu_data.hard_math = 0;
23 write_cr0(X86_CR0_TS | X86_CR0_EM | X86_CR0_MP | read_cr0());
24 return 1;
25}
26
27__setup("no387", no_387);
28
29static double __initdata x = 4195835.0; 20static double __initdata x = 4195835.0;
30static double __initdata y = 3145727.0; 21static double __initdata y = 3145727.0;
31 22
@@ -44,15 +35,6 @@ static void __init check_fpu(void)
44{ 35{
45 s32 fdiv_bug; 36 s32 fdiv_bug;
46 37
47 if (!boot_cpu_data.hard_math) {
48#ifndef CONFIG_MATH_EMULATION
49 pr_emerg("No coprocessor found and no math emulation present\n");
50 pr_emerg("Giving up\n");
51 for (;;) ;
52#endif
53 return;
54 }
55
56 kernel_fpu_begin(); 38 kernel_fpu_begin();
57 39
58 /* 40 /*
@@ -107,5 +89,6 @@ void __init check_bugs(void)
107 * kernel_fpu_begin/end() in check_fpu() relies on the patched 89 * kernel_fpu_begin/end() in check_fpu() relies on the patched
108 * alternative instructions. 90 * alternative instructions.
109 */ 91 */
110 check_fpu(); 92 if (cpu_has_fpu)
93 check_fpu();
111} 94}
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 22018f70a671..a4a07c0acb1f 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -711,10 +711,9 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
711 return; 711 return;
712 712
713 cpu_detect(c); 713 cpu_detect(c);
714
715 get_cpu_vendor(c); 714 get_cpu_vendor(c);
716
717 get_cpu_cap(c); 715 get_cpu_cap(c);
716 fpu_detect(c);
718 717
719 if (this_cpu->c_early_init) 718 if (this_cpu->c_early_init)
720 this_cpu->c_early_init(c); 719 this_cpu->c_early_init(c);
@@ -724,6 +723,8 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
724 723
725 if (this_cpu->c_bsp_init) 724 if (this_cpu->c_bsp_init)
726 this_cpu->c_bsp_init(c); 725 this_cpu->c_bsp_init(c);
726
727 setup_force_cpu_cap(X86_FEATURE_ALWAYS);
727} 728}
728 729
729void __init early_cpu_init(void) 730void __init early_cpu_init(void)
@@ -1363,3 +1364,17 @@ void __cpuinit cpu_init(void)
1363 fpu_init(); 1364 fpu_init();
1364} 1365}
1365#endif 1366#endif
1367
1368#ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
1369void warn_pre_alternatives(void)
1370{
1371 WARN(1, "You're using static_cpu_has before alternatives have run!\n");
1372}
1373EXPORT_SYMBOL_GPL(warn_pre_alternatives);
1374#endif
1375
1376inline bool __static_cpu_has_safe(u16 bit)
1377{
1378 return boot_cpu_has(bit);
1379}
1380EXPORT_SYMBOL_GPL(__static_cpu_has_safe);
diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c
index d048d5ca43c1..7582f475b163 100644
--- a/arch/x86/kernel/cpu/cyrix.c
+++ b/arch/x86/kernel/cpu/cyrix.c
@@ -333,7 +333,7 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
333 switch (dir0_lsn) { 333 switch (dir0_lsn) {
334 case 0xd: /* either a 486SLC or DLC w/o DEVID */ 334 case 0xd: /* either a 486SLC or DLC w/o DEVID */
335 dir0_msn = 0; 335 dir0_msn = 0;
336 p = Cx486_name[(c->hard_math) ? 1 : 0]; 336 p = Cx486_name[(cpu_has_fpu ? 1 : 0)];
337 break; 337 break;
338 338
339 case 0xe: /* a 486S A step */ 339 case 0xe: /* a 486S A step */
diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
index 37a198bd48c8..aee6317b902f 100644
--- a/arch/x86/kernel/cpu/proc.c
+++ b/arch/x86/kernel/cpu/proc.c
@@ -37,8 +37,8 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
37 static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no", 37 static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
38 static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no", 38 static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
39 static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no", 39 static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no",
40 c->hard_math ? "yes" : "no", 40 static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
41 c->hard_math ? "yes" : "no", 41 static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
42 c->cpuid_level, 42 c->cpuid_level,
43 c->wp_works_ok ? "yes" : "no"); 43 c->wp_works_ok ? "yes" : "no");
44} 44}
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index dab95a85f7f8..55b67614ed94 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -34,7 +34,7 @@
34extern pgd_t early_level4_pgt[PTRS_PER_PGD]; 34extern pgd_t early_level4_pgt[PTRS_PER_PGD];
35extern pmd_t early_dynamic_pgts[EARLY_DYNAMIC_PAGE_TABLES][PTRS_PER_PMD]; 35extern pmd_t early_dynamic_pgts[EARLY_DYNAMIC_PAGE_TABLES][PTRS_PER_PMD];
36static unsigned int __initdata next_early_pgt = 2; 36static unsigned int __initdata next_early_pgt = 2;
37pmdval_t __initdata early_pmd_flags = __PAGE_KERNEL_LARGE & ~(_PAGE_GLOBAL | _PAGE_NX); 37pmdval_t early_pmd_flags = __PAGE_KERNEL_LARGE & ~(_PAGE_GLOBAL | _PAGE_NX);
38 38
39/* Wipe all early page tables except for the kernel symbol map */ 39/* Wipe all early page tables except for the kernel symbol map */
40static void __init reset_early_page_tables(void) 40static void __init reset_early_page_tables(void)
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 73afd11799ca..e65ddc62e113 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -444,7 +444,6 @@ is486:
444 orl %ecx,%eax 444 orl %ecx,%eax
445 movl %eax,%cr0 445 movl %eax,%cr0
446 446
447 call check_x87
448 lgdt early_gdt_descr 447 lgdt early_gdt_descr
449 lidt idt_descr 448 lidt idt_descr
450 ljmp $(__KERNEL_CS),$1f 449 ljmp $(__KERNEL_CS),$1f
@@ -467,26 +466,6 @@ is486:
467 pushl $0 # fake return address for unwinder 466 pushl $0 # fake return address for unwinder
468 jmp *(initial_code) 467 jmp *(initial_code)
469 468
470/*
471 * We depend on ET to be correct. This checks for 287/387.
472 */
473check_x87:
474 movb $0,X86_HARD_MATH
475 clts
476 fninit
477 fstsw %ax
478 cmpb $0,%al
479 je 1f
480 movl %cr0,%eax /* no coprocessor: have to set bits */
481 xorl $4,%eax /* set EM */
482 movl %eax,%cr0
483 ret
484 ALIGN
4851: movb $1,X86_HARD_MATH
486 .byte 0xDB,0xE4 /* fsetpm for 287, ignored by 387 */
487 ret
488
489
490#include "verify_cpu.S" 469#include "verify_cpu.S"
491 470
492/* 471/*
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 08f7e8039099..321d65ebaffe 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -115,8 +115,10 @@ startup_64:
115 movq %rdi, %rax 115 movq %rdi, %rax
116 shrq $PUD_SHIFT, %rax 116 shrq $PUD_SHIFT, %rax
117 andl $(PTRS_PER_PUD-1), %eax 117 andl $(PTRS_PER_PUD-1), %eax
118 movq %rdx, (4096+0)(%rbx,%rax,8) 118 movq %rdx, 4096(%rbx,%rax,8)
119 movq %rdx, (4096+8)(%rbx,%rax,8) 119 incl %eax
120 andl $(PTRS_PER_PUD-1), %eax
121 movq %rdx, 4096(%rbx,%rax,8)
120 122
121 addq $8192, %rbx 123 addq $8192, %rbx
122 movq %rdi, %rax 124 movq %rdi, %rax
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index 245a71db401a..b627746f6b1a 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -22,23 +22,19 @@
22/* 22/*
23 * Were we in an interrupt that interrupted kernel mode? 23 * Were we in an interrupt that interrupted kernel mode?
24 * 24 *
25 * For now, with eagerfpu we will return interrupted kernel FPU
26 * state as not-idle. TBD: Ideally we can change the return value
27 * to something like __thread_has_fpu(current). But we need to
28 * be careful of doing __thread_clear_has_fpu() before saving
29 * the FPU etc for supporting nested uses etc. For now, take
30 * the simple route!
31 *
32 * On others, we can do a kernel_fpu_begin/end() pair *ONLY* if that 25 * On others, we can do a kernel_fpu_begin/end() pair *ONLY* if that
33 * pair does nothing at all: the thread must not have fpu (so 26 * pair does nothing at all: the thread must not have fpu (so
34 * that we don't try to save the FPU state), and TS must 27 * that we don't try to save the FPU state), and TS must
35 * be set (so that the clts/stts pair does nothing that is 28 * be set (so that the clts/stts pair does nothing that is
36 * visible in the interrupted kernel thread). 29 * visible in the interrupted kernel thread).
30 *
31 * Except for the eagerfpu case when we return 1 unless we've already
32 * been eager and saved the state in kernel_fpu_begin().
37 */ 33 */
38static inline bool interrupted_kernel_fpu_idle(void) 34static inline bool interrupted_kernel_fpu_idle(void)
39{ 35{
40 if (use_eager_fpu()) 36 if (use_eager_fpu())
41 return 0; 37 return __thread_has_fpu(current);
42 38
43 return !__thread_has_fpu(current) && 39 return !__thread_has_fpu(current) &&
44 (read_cr0() & X86_CR0_TS); 40 (read_cr0() & X86_CR0_TS);
@@ -78,8 +74,8 @@ void __kernel_fpu_begin(void)
78 struct task_struct *me = current; 74 struct task_struct *me = current;
79 75
80 if (__thread_has_fpu(me)) { 76 if (__thread_has_fpu(me)) {
81 __save_init_fpu(me);
82 __thread_clear_has_fpu(me); 77 __thread_clear_has_fpu(me);
78 __save_init_fpu(me);
83 /* We do 'stts()' in __kernel_fpu_end() */ 79 /* We do 'stts()' in __kernel_fpu_end() */
84 } else if (!use_eager_fpu()) { 80 } else if (!use_eager_fpu()) {
85 this_cpu_write(fpu_owner_task, NULL); 81 this_cpu_write(fpu_owner_task, NULL);
@@ -135,7 +131,7 @@ static void __cpuinit init_thread_xstate(void)
135 * xsave_init(). 131 * xsave_init().
136 */ 132 */
137 133
138 if (!HAVE_HWFP) { 134 if (!cpu_has_fpu) {
139 /* 135 /*
140 * Disable xsave as we do not support it if i387 136 * Disable xsave as we do not support it if i387
141 * emulation is enabled. 137 * emulation is enabled.
@@ -162,6 +158,14 @@ void __cpuinit fpu_init(void)
162 unsigned long cr0; 158 unsigned long cr0;
163 unsigned long cr4_mask = 0; 159 unsigned long cr4_mask = 0;
164 160
161#ifndef CONFIG_MATH_EMULATION
162 if (!cpu_has_fpu) {
163 pr_emerg("No FPU found and no math emulation present\n");
164 pr_emerg("Giving up\n");
165 for (;;)
166 asm volatile("hlt");
167 }
168#endif
165 if (cpu_has_fxsr) 169 if (cpu_has_fxsr)
166 cr4_mask |= X86_CR4_OSFXSR; 170 cr4_mask |= X86_CR4_OSFXSR;
167 if (cpu_has_xmm) 171 if (cpu_has_xmm)
@@ -171,7 +175,7 @@ void __cpuinit fpu_init(void)
171 175
172 cr0 = read_cr0(); 176 cr0 = read_cr0();
173 cr0 &= ~(X86_CR0_TS|X86_CR0_EM); /* clear TS and EM */ 177 cr0 &= ~(X86_CR0_TS|X86_CR0_EM); /* clear TS and EM */
174 if (!HAVE_HWFP) 178 if (!cpu_has_fpu)
175 cr0 |= X86_CR0_EM; 179 cr0 |= X86_CR0_EM;
176 write_cr0(cr0); 180 write_cr0(cr0);
177 181
@@ -189,7 +193,7 @@ void __cpuinit fpu_init(void)
189 193
190void fpu_finit(struct fpu *fpu) 194void fpu_finit(struct fpu *fpu)
191{ 195{
192 if (!HAVE_HWFP) { 196 if (!cpu_has_fpu) {
193 finit_soft_fpu(&fpu->state->soft); 197 finit_soft_fpu(&fpu->state->soft);
194 return; 198 return;
195 } 199 }
@@ -218,7 +222,7 @@ int init_fpu(struct task_struct *tsk)
218 int ret; 222 int ret;
219 223
220 if (tsk_used_math(tsk)) { 224 if (tsk_used_math(tsk)) {
221 if (HAVE_HWFP && tsk == current) 225 if (cpu_has_fpu && tsk == current)
222 unlazy_fpu(tsk); 226 unlazy_fpu(tsk);
223 tsk->thread.fpu.last_cpu = ~0; 227 tsk->thread.fpu.last_cpu = ~0;
224 return 0; 228 return 0;
@@ -515,14 +519,13 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
515 if (ret) 519 if (ret)
516 return ret; 520 return ret;
517 521
518 if (!HAVE_HWFP) 522 if (!static_cpu_has(X86_FEATURE_FPU))
519 return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf); 523 return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf);
520 524
521 if (!cpu_has_fxsr) { 525 if (!cpu_has_fxsr)
522 return user_regset_copyout(&pos, &count, &kbuf, &ubuf, 526 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
523 &target->thread.fpu.state->fsave, 0, 527 &target->thread.fpu.state->fsave, 0,
524 -1); 528 -1);
525 }
526 529
527 sanitize_i387_state(target); 530 sanitize_i387_state(target);
528 531
@@ -549,13 +552,13 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
549 552
550 sanitize_i387_state(target); 553 sanitize_i387_state(target);
551 554
552 if (!HAVE_HWFP) 555 if (!static_cpu_has(X86_FEATURE_FPU))
553 return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf); 556 return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf);
554 557
555 if (!cpu_has_fxsr) { 558 if (!cpu_has_fxsr)
556 return user_regset_copyin(&pos, &count, &kbuf, &ubuf, 559 return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
557 &target->thread.fpu.state->fsave, 0, -1); 560 &target->thread.fpu.state->fsave, 0,
558 } 561 -1);
559 562
560 if (pos > 0 || count < sizeof(env)) 563 if (pos > 0 || count < sizeof(env))
561 convert_from_fxsr(&env, target); 564 convert_from_fxsr(&env, target);
@@ -596,3 +599,33 @@ int dump_fpu(struct pt_regs *regs, struct user_i387_struct *fpu)
596EXPORT_SYMBOL(dump_fpu); 599EXPORT_SYMBOL(dump_fpu);
597 600
598#endif /* CONFIG_X86_32 || CONFIG_IA32_EMULATION */ 601#endif /* CONFIG_X86_32 || CONFIG_IA32_EMULATION */
602
603static int __init no_387(char *s)
604{
605 setup_clear_cpu_cap(X86_FEATURE_FPU);
606 return 1;
607}
608
609__setup("no387", no_387);
610
611void __cpuinit fpu_detect(struct cpuinfo_x86 *c)
612{
613 unsigned long cr0;
614 u16 fsw, fcw;
615
616 fsw = fcw = 0xffff;
617
618 cr0 = read_cr0();
619 cr0 &= ~(X86_CR0_TS | X86_CR0_EM);
620 write_cr0(cr0);
621
622 asm volatile("fninit ; fnstsw %0 ; fnstcw %1"
623 : "+m" (fsw), "+m" (fcw));
624
625 if (fsw == 0 && (fcw & 0x103f) == 0x003f)
626 set_cpu_cap(c, X86_FEATURE_FPU);
627 else
628 clear_cpu_cap(c, X86_FEATURE_FPU);
629
630 /* The final cr0 value is set in fpu_init() */
631}
diff --git a/arch/x86/kernel/microcode_intel_early.c b/arch/x86/kernel/microcode_intel_early.c
index d893e8ed8ac9..2e9e12871c2b 100644
--- a/arch/x86/kernel/microcode_intel_early.c
+++ b/arch/x86/kernel/microcode_intel_early.c
@@ -487,6 +487,7 @@ static inline void show_saved_mc(void)
487#endif 487#endif
488 488
489#if defined(CONFIG_MICROCODE_INTEL_EARLY) && defined(CONFIG_HOTPLUG_CPU) 489#if defined(CONFIG_MICROCODE_INTEL_EARLY) && defined(CONFIG_HOTPLUG_CPU)
490static DEFINE_MUTEX(x86_cpu_microcode_mutex);
490/* 491/*
491 * Save this mc into mc_saved_data. So it will be loaded early when a CPU is 492 * Save this mc into mc_saved_data. So it will be loaded early when a CPU is
492 * hot added or resumes. 493 * hot added or resumes.
@@ -507,7 +508,7 @@ int save_mc_for_early(u8 *mc)
507 * Hold hotplug lock so mc_saved_data is not accessed by a CPU in 508 * Hold hotplug lock so mc_saved_data is not accessed by a CPU in
508 * hotplug. 509 * hotplug.
509 */ 510 */
510 cpu_hotplug_driver_lock(); 511 mutex_lock(&x86_cpu_microcode_mutex);
511 512
512 mc_saved_count_init = mc_saved_data.mc_saved_count; 513 mc_saved_count_init = mc_saved_data.mc_saved_count;
513 mc_saved_count = mc_saved_data.mc_saved_count; 514 mc_saved_count = mc_saved_data.mc_saved_count;
@@ -544,7 +545,7 @@ int save_mc_for_early(u8 *mc)
544 } 545 }
545 546
546out: 547out:
547 cpu_hotplug_driver_unlock(); 548 mutex_unlock(&x86_cpu_microcode_mutex);
548 549
549 return ret; 550 return ret;
550} 551}
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 607af0d4d5ef..4e7a37ff03ab 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -312,6 +312,8 @@ void arch_cpu_idle(void)
312{ 312{
313 if (cpuidle_idle_call()) 313 if (cpuidle_idle_call())
314 x86_idle(); 314 x86_idle();
315 else
316 local_irq_enable();
315} 317}
316 318
317/* 319/*
@@ -368,9 +370,6 @@ void amd_e400_remove_cpu(int cpu)
368 */ 370 */
369static void amd_e400_idle(void) 371static void amd_e400_idle(void)
370{ 372{
371 if (need_resched())
372 return;
373
374 if (!amd_e400_c1e_detected) { 373 if (!amd_e400_c1e_detected) {
375 u32 lo, hi; 374 u32 lo, hi;
376 375
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
index ada87a329edc..d6c28acdf99c 100644
--- a/arch/x86/kernel/xsave.c
+++ b/arch/x86/kernel/xsave.c
@@ -243,7 +243,7 @@ int save_xstate_sig(void __user *buf, void __user *buf_fx, int size)
243 if (!access_ok(VERIFY_WRITE, buf, size)) 243 if (!access_ok(VERIFY_WRITE, buf, size))
244 return -EACCES; 244 return -EACCES;
245 245
246 if (!HAVE_HWFP) 246 if (!static_cpu_has(X86_FEATURE_FPU))
247 return fpregs_soft_get(current, NULL, 0, 247 return fpregs_soft_get(current, NULL, 0,
248 sizeof(struct user_i387_ia32_struct), NULL, 248 sizeof(struct user_i387_ia32_struct), NULL,
249 (struct _fpstate_ia32 __user *) buf) ? -1 : 1; 249 (struct _fpstate_ia32 __user *) buf) ? -1 : 1;
@@ -350,11 +350,10 @@ int __restore_xstate_sig(void __user *buf, void __user *buf_fx, int size)
350 if (!used_math() && init_fpu(tsk)) 350 if (!used_math() && init_fpu(tsk))
351 return -1; 351 return -1;
352 352
353 if (!HAVE_HWFP) { 353 if (!static_cpu_has(X86_FEATURE_FPU))
354 return fpregs_soft_set(current, NULL, 354 return fpregs_soft_set(current, NULL,
355 0, sizeof(struct user_i387_ia32_struct), 355 0, sizeof(struct user_i387_ia32_struct),
356 NULL, buf) != 0; 356 NULL, buf) != 0;
357 }
358 357
359 if (use_xsave()) { 358 if (use_xsave()) {
360 struct _fpx_sw_bytes fx_sw_user; 359 struct _fpx_sw_bytes fx_sw_user;
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 7114c63f047d..d482bcaf61c1 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1410,7 +1410,7 @@ __init void lguest_init(void)
1410 new_cpu_data.x86_capability[0] = cpuid_edx(1); 1410 new_cpu_data.x86_capability[0] = cpuid_edx(1);
1411 1411
1412 /* Math is always hard! */ 1412 /* Math is always hard! */
1413 new_cpu_data.hard_math = 1; 1413 set_cpu_cap(&new_cpu_data, X86_FEATURE_FPU);
1414 1414
1415 /* We don't have features. We have puppies! Puppies! */ 1415 /* We don't have features. We have puppies! Puppies! */
1416#ifdef CONFIG_X86_MCE 1416#ifdef CONFIG_X86_MCE
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index fdc5dca14fb3..eaac1743def7 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -359,7 +359,17 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
359} 359}
360 360
361/* 361/*
362 * would have hole in the middle or ends, and only ram parts will be mapped. 362 * We need to iterate through the E820 memory map and create direct mappings
363 * for only E820_RAM and E820_KERN_RESERVED regions. We cannot simply
364 * create direct mappings for all pfns from [0 to max_low_pfn) and
365 * [4GB to max_pfn) because of possible memory holes in high addresses
366 * that cannot be marked as UC by fixed/variable range MTRRs.
367 * Depending on the alignment of E820 ranges, this may possibly result
368 * in using smaller size (i.e. 4K instead of 2M or 1G) page tables.
369 *
370 * init_mem_mapping() calls init_range_memory_mapping() with big range.
371 * That range would have hole in the middle or ends, and only ram parts
372 * will be mapped in init_range_memory_mapping().
363 */ 373 */
364static unsigned long __init init_range_memory_mapping( 374static unsigned long __init init_range_memory_mapping(
365 unsigned long r_start, 375 unsigned long r_start,
@@ -419,6 +429,13 @@ void __init init_mem_mapping(void)
419 max_pfn_mapped = 0; /* will get exact value next */ 429 max_pfn_mapped = 0; /* will get exact value next */
420 min_pfn_mapped = real_end >> PAGE_SHIFT; 430 min_pfn_mapped = real_end >> PAGE_SHIFT;
421 last_start = start = real_end; 431 last_start = start = real_end;
432
433 /*
434 * We start from the top (end of memory) and go to the bottom.
435 * The memblock_find_in_range() gets us a block of RAM from the
436 * end of RAM in [min_pfn_mapped, max_pfn_mapped) used as new pages
437 * for page table.
438 */
422 while (last_start > ISA_END_ADDRESS) { 439 while (last_start > ISA_END_ADDRESS) {
423 if (last_start > step_size) { 440 if (last_start > step_size) {
424 start = round_down(last_start - 1, step_size); 441 start = round_down(last_start - 1, step_size);
diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
index 0e0fabf17342..6eb18c42a28a 100644
--- a/arch/x86/pci/mrst.c
+++ b/arch/x86/pci/mrst.c
@@ -141,11 +141,6 @@ static int pci_device_update_fixed(struct pci_bus *bus, unsigned int devfn,
141 */ 141 */
142static bool type1_access_ok(unsigned int bus, unsigned int devfn, int reg) 142static bool type1_access_ok(unsigned int bus, unsigned int devfn, int reg)
143{ 143{
144 if (bus == 0 && (devfn == PCI_DEVFN(2, 0)
145 || devfn == PCI_DEVFN(0, 0)
146 || devfn == PCI_DEVFN(3, 0)))
147 return 1;
148
149 /* This is a workaround for A0 LNC bug where PCI status register does 144 /* This is a workaround for A0 LNC bug where PCI status register does
150 * not have new CAP bit set. can not be written by SW either. 145 * not have new CAP bit set. can not be written by SW either.
151 * 146 *
@@ -155,7 +150,10 @@ static bool type1_access_ok(unsigned int bus, unsigned int devfn, int reg)
155 */ 150 */
156 if (reg >= 0x100 || reg == PCI_STATUS || reg == PCI_HEADER_TYPE) 151 if (reg >= 0x100 || reg == PCI_STATUS || reg == PCI_HEADER_TYPE)
157 return 0; 152 return 0;
158 153 if (bus == 0 && (devfn == PCI_DEVFN(2, 0)
154 || devfn == PCI_DEVFN(0, 0)
155 || devfn == PCI_DEVFN(3, 0)))
156 return 1;
159 return 0; /* langwell on others */ 157 return 0; /* langwell on others */
160} 158}
161 159
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 55856b2310d3..82089d8b1954 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -206,7 +206,7 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
206 } 206 }
207 207
208 if (boot_used_size && !finished) { 208 if (boot_used_size && !finished) {
209 unsigned long size; 209 unsigned long size = 0;
210 u32 attr; 210 u32 attr;
211 efi_status_t s; 211 efi_status_t s;
212 void *tmp; 212 void *tmp;
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index a492be2635ac..2fa02bc50034 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1557,7 +1557,7 @@ asmlinkage void __init xen_start_kernel(void)
1557#ifdef CONFIG_X86_32 1557#ifdef CONFIG_X86_32
1558 /* set up basic CPUID stuff */ 1558 /* set up basic CPUID stuff */
1559 cpu_detect(&new_cpu_data); 1559 cpu_detect(&new_cpu_data);
1560 new_cpu_data.hard_math = 1; 1560 set_cpu_cap(&new_cpu_data, X86_FEATURE_FPU);
1561 new_cpu_data.wp_works_ok = 1; 1561 new_cpu_data.wp_works_ok = 1;
1562 new_cpu_data.x86_capability[0] = cpuid_edx(1); 1562 new_cpu_data.x86_capability[0] = cpuid_edx(1);
1563#endif 1563#endif
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index 8ff37995d54e..fb44426fe931 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -576,24 +576,22 @@ void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
576{ 576{
577 unsigned cpu; 577 unsigned cpu;
578 unsigned int this_cpu = smp_processor_id(); 578 unsigned int this_cpu = smp_processor_id();
579 int xen_vector = xen_map_vector(vector);
579 580
580 if (!(num_online_cpus() > 1)) 581 if (!(num_online_cpus() > 1) || (xen_vector < 0))
581 return; 582 return;
582 583
583 for_each_cpu_and(cpu, mask, cpu_online_mask) { 584 for_each_cpu_and(cpu, mask, cpu_online_mask) {
584 if (this_cpu == cpu) 585 if (this_cpu == cpu)
585 continue; 586 continue;
586 587
587 xen_smp_send_call_function_single_ipi(cpu); 588 xen_send_IPI_one(cpu, xen_vector);
588 } 589 }
589} 590}
590 591
591void xen_send_IPI_allbutself(int vector) 592void xen_send_IPI_allbutself(int vector)
592{ 593{
593 int xen_vector = xen_map_vector(vector); 594 xen_send_IPI_mask_allbutself(cpu_online_mask, vector);
594
595 if (xen_vector >= 0)
596 xen_send_IPI_mask_allbutself(cpu_online_mask, xen_vector);
597} 595}
598 596
599static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id) 597static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id)
diff --git a/arch/x86/xen/smp.h b/arch/x86/xen/smp.h
index 8981a76d081a..c7c2d89efd76 100644
--- a/arch/x86/xen/smp.h
+++ b/arch/x86/xen/smp.h
@@ -5,7 +5,6 @@ extern void xen_send_IPI_mask(const struct cpumask *mask,
5extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask, 5extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
6 int vector); 6 int vector);
7extern void xen_send_IPI_allbutself(int vector); 7extern void xen_send_IPI_allbutself(int vector);
8extern void physflat_send_IPI_allbutself(int vector);
9extern void xen_send_IPI_all(int vector); 8extern void xen_send_IPI_all(int vector);
10extern void xen_send_IPI_self(int vector); 9extern void xen_send_IPI_self(int vector);
11 10