mbox

[GIT,PULL] arm64 updates for 4.10

Message ID 20161213192156.GA12471@e104818-lin.cambridge.arm.com
State New
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-upstream

Message

Catalin Marinas Dec. 13, 2016, 7:21 p.m. UTC
Hi Linus,

Please pull the arm64 updates for 4.10 below.

The patches touch the generic include/linux/thread_info.h to factor out
struct restart_block into a separate include/linux/restart_block.h file
(needed for arm64 moving thread_info off stack; acked by Andy
Lutomirski).

There is also a small refactoring touching drivers/irqchip/irq-gic-v3.c
and additional watchpoint lengths added to
include/uapi/linux/hw_breakpoint.h.

Thanks.


The following changes since commit bc33b0ca11e3df467777a4fa7639ba488c9d4911:

  Linux 4.9-rc4 (2016-11-05 16:23:36 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-upstream

for you to fetch changes up to 75037120e62b58c536999eb23d70cfcb6d6c0bcc:

  arm64: Disable PAN on uaccess_enable() (2016-12-12 17:52:27 +0000)

----------------------------------------------------------------
arm64 updates for 4.10:

- struct thread_info moved off-stack (also touching
  include/linux/thread_info.h and include/linux/restart_block.h)

- cpus_have_cap() reworked to avoid __builtin_constant_p() for static
  key use (also touching drivers/irqchip/irq-gic-v3.c)

- Uprobes support (currently only for native 64-bit tasks)

- Emulation of kernel Privileged Access Never (PAN) using TTBR0_EL1
  switching to a reserved page table

- CPU capacity information passing via DT or sysfs (used by the
  scheduler)

- Support for systems without FP/SIMD (IOW, kernel avoids touching these
  registers; there is no soft-float ABI, nor kernel emulation for
  AArch64 FP/SIMD)

- Handling of hardware watchpoint with unaligned addresses, varied
  lengths and offsets from base

- Use of the page table contiguous hint for kernel mappings

- Hugetlb fixes for sizes involving the contiguous hint

- Remove unnecessary I-cache invalidation in flush_cache_range()

- CNTHCTL_EL2 access fix for CPUs with VHE support (ARMv8.1)

- Boot-time checks for writable+executable kernel mappings

- Simplify asm/opcodes.h and avoid including the 32-bit ARM counterpart
  and make the arm64 kernel headers self-consistent (Xen headers patch
  merged separately)

- Workaround for broken .inst support in certain binutils versions

----------------------------------------------------------------
Ard Biesheuvel (3):
      arm64: mm: BUG on unsupported manipulations of live kernel mappings
      arm64: mm: replace 'block_mappings_allowed' with 'page_mappings_only'
      arm64: mm: set the contiguous bit for kernel mappings where appropriate

Catalin Marinas (12):
      arm64: Fix typo in add_default_hugepagesz() for 64K pages
      arm64: Update the synchronous external abort fault description
      arm64: Factor out PAN enabling/disabling into separate uaccess_* macros
      arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm macro
      arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1
      arm64: Disable TTBR0_EL1 during normal kernel execution
      arm64: Handle faults caused by inadvertent user access with PAN enabled
      arm64: xen: Enable user access before a privcmd hvc call
      arm64: Enable CONFIG_ARM64_SW_TTBR0_PAN
      arm64: Enable HIBERNATION in defconfig
      arm64: Remove I-cache invalidation from flush_cache_range()
      Merge Will Deacon's for-next/perf branch into for-next/core

Huang Shijie (2):
      arm64: hugetlb: remove the wrong pmd check in find_num_contig()
      arm64: hugetlb: fix the wrong address for several functions

Jintack (1):
      arm64: head.S: Fix CNTHCTL_EL2 access on VHE system

Juri Lelli (3):
      Documentation: arm: define DT cpu capacity-dmips-mhz bindings
      arm64: parse cpu capacity-dmips-mhz from DT
      arm64: add sysfs cpu_capacity attribute

Laura Abbott (4):
      arm64: dump: Make ptdump debugfs a separate option
      arm64: dump: Make the page table dumping seq_file optional
      arm64: dump: Remove max_addr
      arm64: dump: Add checking for writable and exectuable pages

Marc Zyngier (5):
      arm64: Get rid of asm/opcodes.h
      arm64: Remove reference to asm/opcodes.h
      arm64: Add detection code for broken .inst support in binutils
      arm64: Work around broken .inst when defective gas is detected
      arm64: Disable PAN on uaccess_enable()

Mark Rutland (14):
      arm64: percpu: kill off final ACCESS_ONCE() uses
      thread_info: factor out restart_block
      thread_info: include <current.h> for THREAD_INFO_IN_TASK
      arm64: thread_info remove stale items
      arm64: asm-offsets: remove unused definitions
      arm64: factor out current_stack_pointer
      arm64: traps: simplify die() and __die()
      arm64: unexport walk_stackframe
      arm64: prep stack walkers for THREAD_INFO_IN_TASK
      arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx
      arm64: smp: prepare for smp_processor_id() rework
      arm64: make cpu number a percpu variable
      arm64: assembler: introduce ldr_this_cpu
      arm64: split thread_info from task stack

Pavel Labath (1):
      arm64: hw_breakpoint: Handle inexact watchpoint addresses

Pratyush Anand (11):
      arm64: kprobe: protect/rename few definitions to be reused by uprobe
      arm64: kgdb_step_brk_fn: ignore other's exception
      arm64: Handle TRAP_TRACE for user mode as well
      arm64: Handle TRAP_BRKPT for user mode as well
      arm64: introduce mm context flag to keep 32 bit task information
      arm64: Add uprobe support
      arm64: fix error: conflicting types for 'kprobe_fault_handler'
      hw_breakpoint: Allow watchpoint of length 3,5,6 and 7
      arm64: Allow hw watchpoint at varied offset from base address
      arm64: Allow hw watchpoint of length 3,5,6 and 7
      selftests: arm64: add test for unaligned/inexact watchpoint handling

Robin Murphy (3):
      arm64/kprobes: Tidy up sign-extension usage
      arm64: Remove pointless WARN_ON in DMA teardown
      arm64: smp: Prevent raw_smp_processor_id() recursion

Suzuki K Poulose (2):
      arm64: Add hypervisor safe helper for checking constant capabilities
      arm64: Support systems without FP/ASIMD

 .../devicetree/bindings/arm/cpu-capacity.txt       | 236 +++++++++++++++++++++
 Documentation/devicetree/bindings/arm/cpus.txt     |  10 +
 arch/arm64/Kconfig                                 |  12 ++
 arch/arm64/Kconfig.debug                           |  35 ++-
 arch/arm64/Makefile                                |  10 +-
 arch/arm64/configs/defconfig                       |   1 +
 arch/arm64/include/asm/Kbuild                      |   1 -
 arch/arm64/include/asm/assembler.h                 |  48 ++++-
 arch/arm64/include/asm/cacheflush.h                |   7 +-
 arch/arm64/include/asm/cpufeature.h                |  37 +++-
 arch/arm64/include/asm/current.h                   |  22 ++
 arch/arm64/include/asm/debug-monitors.h            |   3 +
 arch/arm64/include/asm/efi.h                       |  26 ++-
 arch/arm64/include/asm/elf.h                       |  12 +-
 arch/arm64/include/asm/futex.h                     |  17 +-
 arch/arm64/include/asm/hw_breakpoint.h             |   6 +-
 arch/arm64/include/asm/kernel-pgtable.h            |   7 +
 arch/arm64/include/asm/mmu.h                       |   3 +-
 arch/arm64/include/asm/mmu_context.h               |  53 +++--
 arch/arm64/include/asm/neon.h                      |   3 +-
 arch/arm64/include/asm/opcodes.h                   |   5 -
 arch/arm64/include/asm/percpu.h                    |  18 +-
 arch/arm64/include/asm/perf_event.h                |   2 +
 arch/arm64/include/asm/probes.h                    |  21 +-
 arch/arm64/include/asm/ptdump.h                    |  22 +-
 arch/arm64/include/asm/ptrace.h                    |   8 +
 arch/arm64/include/asm/smp.h                       |  14 +-
 arch/arm64/include/asm/stack_pointer.h             |   9 +
 arch/arm64/include/asm/suspend.h                   |   2 +-
 arch/arm64/include/asm/sysreg.h                    |  45 +++-
 arch/arm64/include/asm/thread_info.h               |  40 +---
 arch/arm64/include/asm/uaccess.h                   | 175 ++++++++++++++-
 arch/arm64/include/asm/uprobes.h                   |  36 ++++
 arch/arm64/kernel/armv8_deprecated.c               |  16 +-
 arch/arm64/kernel/asm-offsets.c                    |  13 +-
 arch/arm64/kernel/cpufeature.c                     |  18 +-
 arch/arm64/kernel/debug-monitors.c                 |  40 ++--
 arch/arm64/kernel/efi.c                            |   8 +-
 arch/arm64/kernel/entry.S                          | 110 +++++++---
 arch/arm64/kernel/fpsimd.c                         |  14 ++
 arch/arm64/kernel/head.S                           |  30 ++-
 arch/arm64/kernel/hw_breakpoint.c                  | 153 +++++++++----
 arch/arm64/kernel/insn.c                           |   1 -
 arch/arm64/kernel/kgdb.c                           |   3 +
 arch/arm64/kernel/probes/Makefile                  |   2 +
 arch/arm64/kernel/probes/decode-insn.c             |  33 +--
 arch/arm64/kernel/probes/decode-insn.h             |   8 +-
 arch/arm64/kernel/probes/kprobes.c                 |  36 ++--
 arch/arm64/kernel/probes/simulate-insn.c           |  16 +-
 arch/arm64/kernel/probes/uprobes.c                 | 216 +++++++++++++++++++
 arch/arm64/kernel/process.c                        |  38 +++-
 arch/arm64/kernel/ptrace.c                         |   7 +-
 arch/arm64/kernel/return_address.c                 |   1 +
 arch/arm64/kernel/setup.c                          |   9 +
 arch/arm64/kernel/signal.c                         |   3 +
 arch/arm64/kernel/sleep.S                          |   3 -
 arch/arm64/kernel/smp.c                            |  14 +-
 arch/arm64/kernel/stacktrace.c                     |   7 +-
 arch/arm64/kernel/suspend.c                        |   6 -
 arch/arm64/kernel/topology.c                       | 223 ++++++++++++++++++-
 arch/arm64/kernel/traps.c                          |  28 ++-
 arch/arm64/kernel/vmlinux.lds.S                    |   5 +
 arch/arm64/kvm/handle_exit.c                       |  11 +
 arch/arm64/kvm/hyp/hyp-entry.S                     |   9 +-
 arch/arm64/kvm/hyp/switch.c                        |   5 +-
 arch/arm64/lib/clear_user.S                        |  11 +-
 arch/arm64/lib/copy_from_user.S                    |  11 +-
 arch/arm64/lib/copy_in_user.S                      |  11 +-
 arch/arm64/lib/copy_to_user.S                      |  11 +-
 arch/arm64/mm/Makefile                             |   3 +-
 arch/arm64/mm/cache.S                              |   6 +-
 arch/arm64/mm/context.c                            |   7 +-
 arch/arm64/mm/dma-mapping.c                        |   5 -
 arch/arm64/mm/dump.c                               | 106 ++++++---
 arch/arm64/mm/fault.c                              |  22 +-
 arch/arm64/mm/flush.c                              |   9 +-
 arch/arm64/mm/hugetlbpage.c                        |  22 +-
 arch/arm64/mm/mmu.c                                | 137 ++++++++----
 arch/arm64/mm/proc.S                               |  12 +-
 arch/arm64/mm/ptdump_debugfs.c                     |  31 +++
 arch/arm64/xen/hypercall.S                         |  15 ++
 drivers/firmware/efi/arm-runtime.c                 |   4 +-
 drivers/irqchip/irq-gic-v3.c                       |  13 +-
 include/linux/restart_block.h                      |  51 +++++
 include/linux/thread_info.h                        |  45 +---
 include/uapi/linux/hw_breakpoint.h                 |   4 +
 tools/include/uapi/linux/hw_breakpoint.h           |   4 +
 tools/testing/selftests/breakpoints/Makefile       |   5 +-
 .../selftests/breakpoints/breakpoint_test_arm64.c  | 236 +++++++++++++++++++++
 89 files changed, 2288 insertions(+), 525 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/cpu-capacity.txt
 create mode 100644 arch/arm64/include/asm/current.h
 delete mode 100644 arch/arm64/include/asm/opcodes.h
 create mode 100644 arch/arm64/include/asm/stack_pointer.h
 create mode 100644 arch/arm64/include/asm/uprobes.h
 create mode 100644 arch/arm64/kernel/probes/uprobes.c
 create mode 100644 arch/arm64/mm/ptdump_debugfs.c
 create mode 100644 include/linux/restart_block.h
 create mode 100644 tools/testing/selftests/breakpoints/breakpoint_test_arm64.c

Comments

Linus Torvalds Dec. 14, 2016, 12:58 a.m. UTC | #1
On Tue, Dec 13, 2016 at 11:21 AM, Catalin Marinas
<catalin.marinas@arm.com> wrote:
>
> Please pull the arm64 updates for 4.10 below.

Mind checking that I got the conflict resolution right?

The conflict looked completely trivial, but with stuff moving across
files and since I don't build the end result (much less boot it) I
could easily have missed some screw-up of mine.

Thanks,

                 Linus
Catalin Marinas Dec. 14, 2016, 12:21 p.m. UTC | #2
On Tue, Dec 13, 2016 at 04:58:33PM -0800, Linus Torvalds wrote:
> On Tue, Dec 13, 2016 at 11:21 AM, Catalin Marinas
> <catalin.marinas@arm.com> wrote:
> >
> > Please pull the arm64 updates for 4.10 below.
> 
> Mind checking that I got the conflict resolution right?
> 
> The conflict looked completely trivial, but with stuff moving across
> files and since I don't build the end result (much less boot it) I
> could easily have missed some screw-up of mine.

The conflict resolution is fine. Sorry, I forgot to mention it in the
pull request.

Thanks.