Merge branch 'android-3.10' into android-goldfish-3.10
authorGreg Hackmann <ghackmann@google.com>
Tue, 16 Sep 2014 18:11:13 +0000 (11:11 -0700)
committerGreg Hackmann <ghackmann@google.com>
Tue, 16 Sep 2014 18:11:13 +0000 (11:11 -0700)
Conflicts:
arch/arm64/Kconfig
arch/arm64/include/asm/ptrace.h
arch/arm64/kernel/Makefile
arch/arm64/kernel/debug-monitors.c
arch/arm64/kernel/traps.c

Change-Id: Ifb43a8bad9636ee48ff52a29592af95e959a4399

1  2 
arch/arm64/Kconfig
arch/arm64/include/asm/ptrace.h
arch/arm64/kernel/Makefile
arch/arm64/kernel/setup.c
arch/arm64/mm/proc.S

index 7e5272fe1645c39b80ed57f331d0a135dc3c4b14,71c2a070ace4741e460e22cd9498fec0117cd91e..f2a52a51f904558205edfe21ce231b3f76e5aa5d
@@@ -185,16 -150,33 +185,41 @@@ config NR_CPU
        int "Maximum number of CPUs (2-32)"
        range 2 32
        depends on SMP
 -      default "4"
 +      # These have to remain sorted largest to smallest
 +      default "8"
 +
 +config HOTPLUG_CPU
 +      bool "Support for hot-pluggable CPUs"
 +      depends on SMP
 +      help
 +        Say Y here to experiment with turning CPUs off and on.  CPUs
 +        can be controlled through /sys/devices/system/cpu.
  
+ config SWP_EMULATE
+       bool "Emulate SWP/SWPB instructions"
+       help
+         ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
+         oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
+         extensions introduce the ability to disable these instructions,
+         triggering an undefined instruction exception when executed. Say Y
+         here to enable software emulation of these instructions for userspace
+         (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
+         for statistics.
+         In some older versions of glibc [<=2.8] SWP is used during futex
+         trylock() operations with the assumption that the code will not
+         be preempted. This invalid assumption may be more likely to fail
+         with SWP emulation enabled, leading to deadlock of the user
+         application.
+         NOTE: when accessing uncached shared regions, LDREX/STREX rely
+         on an external transaction monitoring block called a global
+         monitor to maintain update atomicity. If your system does not
+         implement a global monitor, this option can cause programs that
+         perform SWP operations to uncached memory to deadlock.
+         If unsure, say Y.
  source kernel/Kconfig.preempt
  
  config HZ
@@@ -225,25 -207,29 +250,46 @@@ config HW_PERF_EVENT
          Enable hardware performance counter support for perf events. If
          disabled, perf events will use software events only.
  
 +config SYS_SUPPORTS_HUGETLBFS
 +      def_bool y
 +
 +config ARCH_WANT_GENERAL_HUGETLB
 +      def_bool y
 +
 +config ARCH_WANT_HUGE_PMD_SHARE
 +      def_bool y if !ARM64_64K_PAGES
 +
 +config HAVE_ARCH_TRANSPARENT_HUGEPAGE
 +      def_bool y
 +
+ config ARMV7_COMPAT
+       bool "Kernel support for ARMv7 applications"
+       depends on COMPAT
+       select SWP_EMULATE
+       help
+        This option enables features that allow that ran on an ARMv7 or older
+        processor to continue functioning.
+        If you want to execute ARMv7 applications, say Y
+ config ARMV7_COMPAT_CPUINFO
+       bool "Report backwards compatible cpu features in /proc/cpuinfo"
+       depends on ARMV7_COMPAT
+       default y
+       help
+        This option makes /proc/cpuinfo list CPU features that an ARMv7 or
+        earlier kernel would report, but are not optional on an ARMv8 or later
+        processor.
+        If you want to execute ARMv7 applications, say Y
  source "mm/Kconfig"
  
 +config FORCE_MAX_ZONEORDER
 +      int
 +      default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
 +      default "11"
 +
  endmenu
  
  menu "Boot options"
Simple merge
index 88379b0d54726a368fb9d0fe701671242d4d9570,3e6706630ae5e151edc59d7099c2c6eebfa18219..abb33d777f1c7942eda025d03039ed6fb8a3c6aa
@@@ -9,21 -9,19 +9,23 @@@ AFLAGS_head.o         := -DTEXT_OFFSET=$(TEXT_
  arm64-obj-y           := cputable.o debug-monitors.o entry.o irq.o fpsimd.o   \
                           entry-fpsimd.o process.o ptrace.o setup.o signal.o   \
                           sys.o stacktrace.o time.o traps.o io.o vdso.o        \
-                          hyp-stub.o psci.o cpu_ops.o insn.o
 -                         hyp-stub.o psci.o opcodes.o
++                         hyp-stub.o psci.o cpu_ops.o insn.o opcodes.o
  
- arm64-obj-$(CONFIG_COMPAT)            += sys32.o kuser32.o signal32.o         \
+ arm64-obj-$(CONFIG_COMPAT)            += sys32.o kuser32.o signal32.o \
                                           sys_compat.o
  arm64-obj-$(CONFIG_MODULES)           += arm64ksyms.o module.o
 -arm64-obj-$(CONFIG_SMP)                       += smp.o smp_spin_table.o smp_psci.o
 +arm64-obj-$(CONFIG_SMP)                       += smp.o smp_spin_table.o
 +arm64-obj-$(CONFIG_SMP)                       += topology.o
 +arm64-obj-$(CONFIG_PERF_EVENTS)               += perf_regs.o
  arm64-obj-$(CONFIG_HW_PERF_EVENTS)    += perf_event.o
 -arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT)+= hw_breakpoint.o
 +arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT)        += hw_breakpoint.o
  arm64-obj-$(CONFIG_EARLY_PRINTK)      += early_printk.o
 -arm64-obj-$(CONFIG_ARM_CPU_SUSPEND)   += sleep.o suspend.o
 +arm64-obj-$(CONFIG_ARM64_CPU_SUSPEND) += sleep.o suspend.o
 +arm64-obj-$(CONFIG_KGDB)              += kgdb.o
 +arm64-obj-$(CONFIG_JUMP_LABEL)                += jump_label.o
  
+ obj-$(CONFIG_SWP_EMULATE)     += swp_emulate.o
  obj-y                                 += $(arm64-obj-y) vdso/
  obj-m                                 += $(arm64-obj-m)
  head-y                                        := head.o
Simple merge
Simple merge