[GIT PULL] arm64: updates for 4.9
From: Will Deacon
Date: Fri Sep 30 2016 - 12:12:29 EST
Hi Linus,
Please pull the following arm64 updates for 4.9. I'm sending this before
the merge window actually opens, since I'm off fishing next week and
won't have internet access. Catalin will be in the office in case anything
goes wrong.
As for the changes themselves, there is a summary in the tag but it's
a bit all over the place this time with no "killer feature" to speak of.
Support for mismatched cache line sizes should help people seeing whacky
JIT failures on some SoCs, and the big.LITTLE perf updates have been a
long time coming, but a lot of the changes here are cleanups.
We stray outside arch/arm64 in a few areas: the arch/arm/ arch_timer
workaround is acked by Russell, the DT/OF bits are acked by Rob, the
arch_timer clocksource changes acked by Marc, CPU hotplug by tglx and
jump_label by Peter (all CC'd).
There are a couple of minor conflicts with mainline, due to fixes that
were merged after -rc3. I've included the resolution below, but it's
pretty straighforward.
Cheers,
Will
P.S. I've renewed my gpg key, so you may need to refetch it to see the
updated expiry date.
--->8
diff --cc arch/arm64/kernel/head.S
index 3e7b050e99dc,427f6d3f084c..000000000000
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
diff --cc drivers/perf/arm_pmu.c
index f5e1008a223d,77ac1ccb39ed..000000000000
--- a/drivers/perf/arm_pmu.c
+++ b/drivers/perf/arm_pmu.c
@@@ -970,8 -990,7 +991,8 @@@ static int of_pmu_irq_cfg(struct arm_pm
if (cpumask_weight(&pmu->supported_cpus) == 0) {
int irq = platform_get_irq(pdev, 0);
- if (irq >= 0 && irq_is_percpu(irq)) {
+ if (irq > 0 && irq_is_percpu(irq)) {
+ /* If using PPIs, check the affinity of the partition */
int ret;
ret = irq_get_percpu_devid_partition(irq, &pmu->supported_cpus);
--->8
The following changes since commit fa8410b355251fd30341662a40ac6b22d3e38468:
Linux 4.8-rc3 (2016-08-21 16:14:10 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git tags/arm64-upstream
for you to fetch changes up to db68f3e7594aca77632d56c449bd36c6c931d59a:
arm64: tlbflush.h: add __tlbi() macro (2016-09-28 10:44:05 +0100)
----------------------------------------------------------------
arm64 updates for 4.9:
- Support for execute-only page permissions
- Support for hibernate and DEBUG_PAGEALLOC
- Support for heterogeneous systems with mismatches cache line sizes
- Errata workarounds (A53 843419 update and QorIQ A-008585 timer bug)
- arm64 PMU perf updates, including cpumasks for heterogeneous systems
- Set UTS_MACHINE for building rpm packages
- Yet another head.S tidy-up
- Some cleanups and refactoring, particularly in the NUMA code
- Lots of random, non-critical fixes across the board
----------------------------------------------------------------
AKASHI Takahiro (1):
arm64: mark reserved memblock regions explicitly in iomem
Ard Biesheuvel (12):
arm64: head.S: get rid of x25 and x26 with 'global' scope
arm64: cpufeature: constify arm64_ftr_bits structures
arm64: cpufeature: constify arm64_ftr_regs array
arm64: cpufeature: expose arm64_ftr_reg struct for CTR_EL0
arm64: kernel: fix style issues in sleep.S
arm64: kernel: use ordinary return/argument register for el2_setup()
arm64: head.S: move KASLR processing out of __enable_mmu()
arm64: kernel: use x30 for __enable_mmu return address
arm64: kernel: drop use of x24 from primary boot path
arm64: head.S: use ordinary stack frame for __primary_switched()
arm64: head.S: document the use of callee saved registers
arm64: kernel: re-export _cpu_resume() from sleep.S
Catalin Marinas (3):
arm64: Introduce execute-only page access permissions
jump_labels: Allow array initialisers
arm64: Use static keys for CPU features
Chris Metcalf (1):
arm64: factor work_pending state machine to C
David A. Long (1):
arm64: Improve kprobes test for atomic sequence
James Morse (7):
arm64: Create sections.h
arm64: vmlinux.ld: Add mmuoff data sections and move mmuoff text into idmap
arm64: hibernate: Support DEBUG_PAGEALLOC
cpu/hotplug: Allow suspend/resume CPU to be specified
arm64: hibernate: Resume when hibernate image created on non-boot CPU
Revert "arm64: hibernate: Refuse to hibernate if the boot cpu is offline"
arm64: Drop generic xlate_dev_mem_{k,}ptr()
Jeremy Linton (2):
arm64: pmu: Probe default hw/cache counters
arm64: pmu: Hoist pmu platform device name
Jisheng Zhang (3):
arm64: vdso: add __init section marker to alloc_vectors_page
arm64: vdso: constify vm_special_mapping used for aarch32 vectors page
arm64: apply __ro_after_init to some objects
Kefeng Wang (8):
arm64: perf: Use the builtin_platform_driver
arm64: cleanup unused UDBG_* define
arm64: mm: drop fixup_init() and mm.h
of_numa: Use of_get_next_parent to simplify code
of_numa: Use pr_fmt()
arm64: numa: Use pr_fmt()
arm64: Kconfig: select OF/ACPI_NUMA under NUMA config
arm64: Kconfig: remove SMP dependence for NUMA
Kim Phillips (1):
arm64: don't select PERF_USE_VMALLOC by default
Kwangwoo Lee (1):
arm64: mm: convert __dma_* routines to use start, size
Laura Abbott (1):
arm64: Correctly bounds check virt_addr_valid
Marc Zyngier (1):
drivers/perf: arm_pmu: Always consider IRQ0 as an error
Mark Rutland (19):
arm64: hibernate: reduce TLB maintenance scope
arm64: remove traces of perf_ops_bp
arm64: always enable DEBUG_RODATA and remove the Kconfig option
arm64: sysreg: allow write_sysreg to use XZR
arm64: arch_timer: simplify accessors
arm64: dcc: simplify accessors
arm64/kvm: use {read,write}_sysreg()
arm64: simplify sysreg manipulation
arm64: simplify contextidr_thread_switch
drivers/perf: arm_pmu: add common attr group fields
arm64: perf: move to common attr_group fields
arm: perf: move to common attr_group fields
drivers/perf: arm_pmu: only use common attr_groups
drivers/perf: arm_pmu: expose a cpumask in sysfs
arm64: alternative: add auto-nop infrastructure
arm64: use alternative auto-nop
arm64/kvm: use alternative auto-nop
arm64: fix dump_backtrace/unwind_frame with NULL tsk
arm64: tlbflush.h: add __tlbi() macro
Mark Salter (1):
arm64: pmu: add fallback probe table
Masahiro Yamada (1):
arm64: remove redundant "select HAVE_CLK"
Michal Marek (1):
arm64: Set UTS_MACHINE in the Makefile
Paul Gortmaker (1):
arm64: migrate exception table users off module.h and onto extable.h
Pratyush Anand (2):
arm64: kprobe: Always clear pstate.D in breakpoint exception handler
arm64: ftrace: add save_stack_trace_regs()
Robin Murphy (2):
arm64/io: Allow I/O writes to use {W,X}ZR
arm64: Remove shadowed asm-generic headers
Scott Wood (3):
arm64: arch_timer: Add device tree binding for A-008585 erratum
arm64: arch_timer: Work around QorIQ Erratum A-008585
arm/arm64: arch_timer: Use archdata to indicate vdso suitability
Suzuki K Poulose (9):
arm64: Set the safe value for L1 icache policy
arm64: Use consistent naming for errata handling
arm64: Rearrange CPU errata workaround checks
arm64: alternative: Disallow patching instructions using literals
arm64: insn: Add helpers for adrp offsets
arm64: alternative: Add support for patching adrp instructions
arm64: Introduce raw_{d,i}cache_line_size
arm64: Refactor sysinstr exception handling
arm64: Work around systems with mismatched cache line sizes
Vladimir Murzin (1):
arm64: kernel: do not need to reset UAO on exception entry
Will Deacon (9):
arm64: errata: Pass --fix-cortex-a53-843419 to ld if workaround enabled
arm64: debug: avoid resetting stepping state machine when TIF_SINGLESTEP
arm64: hw_breakpoint: convert CPU hotplug notifier to new infrastructure
arm64: debug: convert OS lock CPU hotplug notifier to new infrastructure
arm64: debug: report TRAP_TRACE instead of TRAP_HWBRPT for singlestep
arm64: sysreg: replace open-coded mrs_s/msr_s with {read,write}_sysreg_s
arm64: barriers: introduce nops and __nops macros for NOP sequences
arm64: lse: convert lse alternatives NOP padding to use __nops
MAINTAINERS: Update ARM PMU PROFILING AND DEBUGGING entry
Zhen Lei (8):
of/numa: remove a duplicated pr_debug information
of/numa: fix a memory@ node can only contains one memory block
of/numa: add nid check for memory block
of/numa: remove a duplicated warning
arm64/numa: avoid inconsistent information to be printed
arm64/numa: support HAVE_SETUP_PER_CPU_AREA
arm64/numa: remove some useless code
arm64/numa: remove the limitation that cpu0 must bind to node0
zijun_hu (1):
arm64: remove duplicate macro __KERNEL__ check
Documentation/arm64/silicon-errata.txt | 2 +
.../devicetree/bindings/arm/arch_timer.txt | 6 +
Documentation/kernel-parameters.txt | 9 +
Documentation/static-keys.txt | 9 +
MAINTAINERS | 6 +-
arch/arm/Kconfig | 1 +
arch/arm/include/asm/clocksource.h | 8 +
arch/arm/kernel/perf_event_v7.c | 47 +++--
arch/arm/kernel/vdso.c | 2 +-
arch/arm64/Kconfig | 33 ++--
arch/arm64/Kconfig.debug | 10 --
arch/arm64/Kconfig.platforms | 1 -
arch/arm64/Makefile | 10 ++
arch/arm64/include/asm/Kbuild | 5 -
arch/arm64/include/asm/acpi.h | 8 +-
arch/arm64/include/asm/alternative.h | 70 ++++++--
arch/arm64/include/asm/arch_timer.h | 82 ++++++---
arch/arm64/include/asm/assembler.h | 53 +++++-
arch/arm64/include/asm/atomic_lse.h | 64 +++----
arch/arm64/include/asm/barrier.h | 3 +
arch/arm64/include/asm/cacheflush.h | 3 +-
arch/arm64/include/asm/clocksource.h | 8 +
arch/arm64/include/asm/cmpxchg.h | 4 +-
arch/arm64/include/asm/cpufeature.h | 42 +++--
arch/arm64/include/asm/cputype.h | 6 +-
arch/arm64/include/asm/dcc.h | 14 +-
arch/arm64/include/asm/esr.h | 84 ++++++++-
arch/arm64/include/asm/hw_breakpoint.h | 15 +-
arch/arm64/include/asm/insn.h | 11 +-
arch/arm64/include/asm/io.h | 19 +-
arch/arm64/include/asm/kvm_mmu.h | 10 +-
arch/arm64/include/asm/memory.h | 8 +-
arch/arm64/include/asm/mmu_context.h | 36 ++--
arch/arm64/include/asm/pgtable-hwdef.h | 1 +
arch/arm64/include/asm/pgtable-prot.h | 5 +-
arch/arm64/include/asm/pgtable.h | 20 ++-
arch/arm64/include/asm/processor.h | 2 -
arch/arm64/include/asm/sections.h | 30 ++++
arch/arm64/include/asm/spinlock.h | 27 ++-
arch/arm64/include/asm/suspend.h | 3 +
arch/arm64/include/asm/sysreg.h | 44 +++--
arch/arm64/include/asm/system_misc.h | 6 -
arch/arm64/include/asm/thread_info.h | 3 +
arch/arm64/include/asm/tlbflush.h | 34 +++-
arch/arm64/include/asm/traps.h | 6 +-
arch/arm64/include/asm/virt.h | 15 +-
arch/arm64/kernel/Makefile | 2 +
arch/arm64/kernel/acpi_numa.c | 4 +-
arch/arm64/kernel/alternative.c | 28 ++-
arch/arm64/kernel/asm-offsets.c | 2 +
arch/arm64/kernel/cacheinfo.c | 8 +-
arch/arm64/kernel/cpu_errata.c | 26 ++-
arch/arm64/kernel/cpu_ops.c | 3 +-
arch/arm64/kernel/cpufeature.c | 137 +++++++-------
arch/arm64/kernel/cpuinfo.c | 2 -
arch/arm64/kernel/debug-monitors.c | 48 ++---
arch/arm64/kernel/entry.S | 24 +--
arch/arm64/kernel/head.S | 197 ++++++++++++---------
arch/arm64/kernel/hibernate-asm.S | 6 +-
arch/arm64/kernel/hibernate.c | 118 ++++++++----
arch/arm64/kernel/hw_breakpoint.c | 48 ++---
arch/arm64/kernel/insn.c | 15 +-
arch/arm64/kernel/kaslr.c | 3 +-
arch/arm64/kernel/perf_event.c | 100 ++++++++---
arch/arm64/kernel/probes/decode-insn.c | 48 +++--
arch/arm64/kernel/probes/kprobes.c | 36 ++--
arch/arm64/kernel/process.c | 14 +-
arch/arm64/kernel/relocate_kernel.S | 2 +-
arch/arm64/kernel/setup.c | 11 +-
arch/arm64/kernel/signal.c | 36 ++--
arch/arm64/kernel/sleep.S | 29 ++-
arch/arm64/kernel/smp.c | 14 +-
arch/arm64/kernel/smp_spin_table.c | 3 +-
arch/arm64/kernel/stacktrace.c | 26 ++-
arch/arm64/kernel/suspend.c | 10 +-
arch/arm64/kernel/sys_compat.c | 2 +-
arch/arm64/kernel/traps.c | 97 ++++++----
arch/arm64/kernel/vdso.c | 36 ++--
arch/arm64/kernel/vmlinux.lds.S | 19 ++
arch/arm64/kvm/hyp.S | 6 +-
arch/arm64/kvm/sys_regs.c | 31 ++--
arch/arm64/kvm/sys_regs_generic_v8.c | 6 +-
arch/arm64/lib/copy_page.S | 13 +-
arch/arm64/mm/cache.S | 82 ++++-----
arch/arm64/mm/dma-mapping.c | 9 +-
arch/arm64/mm/extable.c | 2 +-
arch/arm64/mm/fault.c | 7 +-
arch/arm64/mm/flush.c | 2 -
arch/arm64/mm/init.c | 15 +-
arch/arm64/mm/mm.h | 2 -
arch/arm64/mm/mmu.c | 15 +-
arch/arm64/mm/numa.c | 115 ++++++++----
arch/arm64/mm/pageattr.c | 41 ++++-
arch/arm64/mm/pgd.c | 2 -
arch/arm64/mm/proc.S | 13 +-
drivers/clocksource/Kconfig | 10 ++
drivers/clocksource/arm_arch_timer.c | 113 +++++++++++-
drivers/of/of_numa.c | 66 +++----
drivers/perf/arm_pmu.c | 35 +++-
include/linux/cpu.h | 6 +-
include/linux/cpuhotplug.h | 2 +
include/linux/jump_label.h | 12 ++
include/linux/perf/arm_pmu.h | 13 +-
kernel/cpu.c | 9 +-
mm/mmap.c | 5 +
105 files changed, 1699 insertions(+), 972 deletions(-)
create mode 100644 arch/arm/include/asm/clocksource.h
create mode 100644 arch/arm64/include/asm/clocksource.h
create mode 100644 arch/arm64/include/asm/sections.h
delete mode 100644 arch/arm64/mm/mm.h