All of lore.kernel.org
 help / color / mirror / Atom feed
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [GIT PULL] arm64: updates for 4.3
Date: Fri, 4 Sep 2015 11:26:57 +0100	[thread overview]
Message-ID: <20150904102656.GC4818@arm.com> (raw)

Hi Linus,

Here is the arm64 queue for 4.3. There's quite a lot here and the
diffstat looks pretty alarming at first glance, so let me walk you
through it:

  - There are a bunch of new arm64 features and these are summarised in
    the tag (see below).

  - One of these features (LSE) involves a pretty hefty rework of our
    atomic operations, which interacts badly with the
    atomic_{or,xor,and} rework from PeterZ in tip. To solve this, tglx
    made a stable branch (tip/locking/arch-atomic) which is included
    here and accounts for most of the surprising diffstat (it touches
    all users of atomic_{set,clear}_mask). You've already pulled this
    from tip.

  - We move our PSCI (a firmware interface for CPU power management)
    implementation out into drivers/firmware/ so that it can be shared
    with arch/arm/, rather than each architecture having a carbon copy
    of the code. This was merged as a separate branch so that RMK can
    include the changes in his tree too and subsequently move arch/arm/
    over to the common code (again, you've already pulled this).

  - There is a single patch to drivers/of/fdt.c, but that has been
    Acked-by Rob and is included here due to a dependency from the
    memblock linear-mapping restriction change.

Note that there is a conflict in arch/arm64/include/asm/barrier.h
between 76695af20c01 ("locking, arch: use WRITE_ONCE()/READ_ONCE() in
smp_store_release()/smp_load_acquire()") and 4b3dc9679cf7 ("arm64: force
CONFIG_SMP=y and remove redundant #ifdefs"). The correct resolution is
to take the version here (i.e. remove the #ifndef CONFIG_SMP block
altogether).

Please pull.

Thanks,

Will

--->8

The following changes since commit cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f:

  Linux 4.2-rc4 (2015-07-26 12:26:21 -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 674c242c9323d3c293fc4f9a3a3a619fe3063290:

  arm64: flush FP/SIMD state correctly after execve() (2015-08-27 09:55:26 +0100)

----------------------------------------------------------------
arm64 updates for 4.3:

- Support for new architectural features introduced in ARMv8.1:
  * Privileged Access Never (PAN) to catch user pointer dereferences in
    the kernel
  * Large System Extension (LSE) for building scalable atomics and locks
    (depends on locking/arch-atomic from tip, which is included here)
  * Hardware Dirty Bit Management (DBM) for updating clean PTEs
    automatically

- Move our PSCI implementation out into drivers/firmware/, where it can
  be shared with arch/arm/. RMK has also pulled this component branch
  and has additional patches moving arch/arm/ over. MAINTAINERS is
  updated accordingly.

- Better BUG implementation based on the BRK instruction for trapping

- Leaf TLB invalidation for unmapping user pages

- Support for PROBE_ONLY PCI configurations

- Various cleanups and non-critical fixes, including:
  * Always flush FP/SIMD state over exec()
  * Restrict memblock additions based on range of linear mapping
  * Ensure *(LIST_POISON) generates a fatal fault
  * Context-tracking syscall return no longer corrupts return value when
    not forced on.
  * Alternatives patching synchronisation/stability improvements
  * Signed sub-word cmpxchg compare fix (tickled by HAVE_CMPXCHG_LOCAL)
  * Force SMP=y
  * Hide direct DCC access from userspace
  * Fix EFI stub memory allocation when DRAM starts at 0x0

----------------------------------------------------------------
Alexander Kuleshov (1):
      arm64: Fix source code file path in comments

Ard Biesheuvel (5):
      arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux
      arm64/Documentation: clarify wording regarding memory below the Image
      of/fdt: make memblock maximum physical address arch configurable
      arm64: set MAX_MEMBLOCK_ADDR according to linear region size
      arm64: flush FP/SIMD state correctly after execve()

Catalin Marinas (4):
      arm64: Add support for hardware updates of the access and dirty pte bits
      arm64: Better native ptrace support for compat tasks
      arm64: Clean up __flush_tlb(_kernel)_range functions
      arm64: Use last level TLBI for user pte changes

Chris Metcalf (1):
      tile: Provide atomic_{or,xor,and}

Daniel Thompson (5):
      arm64: Remove unused macros from assembler.h
      arm64: alternative: Provide if/else/endif assembler macros
      arm64: mm: Adopt new alternative assembler macros
      arm64: kernel: Adopt new alternative assembler macros
      arm64: kvm: Adopt new alternative assembler macros

Dave P Martin (9):
      arm64/debug: Eliminate magic number for size of BRK instruction
      arm64/debug: Mask off all reserved bits from generated ESR values
      arm64/debug: Eliminate magic number from ESR template definition
      arm64/debug: More consistent naming for the BRK ESR template macro
      arm64/debug: Move BRK ESR template macro into <asm/esr.h>
      arm64/debug: Simplify BRK insn opcode declarations
      arm64/debug: Add missing #includes
      arm64/BUG: Use BRK instruction for generic BUG traps
      arm64/BUG: Show explicit backtrace for WARNs

James Morse (6):
      arm64: kernel: Add cpuid_feature_extract_field() for 4bit sign extension
      arm64: kernel: Move config_sctlr_el1
      arm64: kernel: Add cpufeature 'enable' callback
      arm64: kernel: Add min_field_value and use '>=' for feature detection
      arm64: kernel: Add optional CONFIG_ parameter to ALTERNATIVE()
      arm64: kernel: Add support for Privileged Access Never

Jeff Vander Stoep (1):
      arm64: kconfig: Move LIST_POISON to a safe value

Jisheng Zhang (1):
      arm64: hugetlb: remove paragraph about writing to FSF

Jonas Rabenstein (2):
      arm64: remove dead-code depending on CONFIG_UP_LATE_INIT
      arm64: remove redundant object file list

Jungseok Lee (1):
      arm64: Add __exception_irq_entry definition for function graph

Lorenzo Pieralisi (1):
      ARM64: PCI: do not enable resources on PROBE_ONLY systems

Mark Rutland (7):
      arm64: perf: factor out callchain code
      arm64: perf: condense event number maps
      arm64: mm: mark create_mapping as __init
      arm64: psci: factor invocation code to drivers
      drivers: psci: support native SMC{32,64} calls
      MAINTAINERS: add PSCI entry
      arm64: make ll/sc __cmpxchg_case_##name asm consistent

Mark Salter (1):
      arm64: remove dead code

Olof Johansson (1):
      arm64: enable more compressed Image formats

Peter Zijlstra (27):
      atomic: Prepare generic atomic implementation for logic ops
      alpha: Provide atomic_{or,xor,and}
      arc: Provide atomic_{or,xor,and}
      arm: Provide atomic_{or,xor,and}
      arm64: Provide atomic_{or,xor,and}
      avr32: Provide atomic_{or,xor,and}
      blackfin: Provide atomic_{or,xor,and}
      hexagon: Provide atomic_{or,xor,and}
      ia64: Provide atomic_{or,xor,and}
      m32r: Provide atomic_{or,xor,and}
      m68k: Provide atomic_{or,xor,and}
      metag: Provide atomic_{or,xor,and}
      mips: Provide atomic_{or,xor,and}
      mn10300: Provide atomic_{or,xor,and}
      parisc: Provide atomic_{or,xor,and}
      powerpc: Provide atomic_{or,xor,and}
      sh: Provide atomic_{or,xor,and}
      sparc: Provide atomic_{or,xor,and}
      xtensa: Provide atomic_{or,xor,and}
      s390: Provide atomic_{or,xor,and}
      x86: Provide atomic_{or,xor,and}
      frv: Rewrite atomic implementation
      h8300: Provide atomic_{or,xor,and}
      atomic: Provide atomic_{or,xor,and}
      atomic: Collapse all atomic_{set,clear}_mask definitions
      atomic: Replace atomic_{set,clear}_mask() usage
      atomic: Add simple atomic_t tests

Robin Murphy (3):
      arm64: consolidate __swiotlb_mmap
      arm64: dma-mapping: implement dma_get_sgtable()
      arm64: dma-mapping: Simplify pgprot handling

Rohit Thapliyal (1):
      arm64: modify the dump mem for 64 bit addresses

Sudeep Holla (3):
      arm64: perf: replace arch_find_n_match_cpu_physical_id with of_cpu_device_node_get
      arm64: kernel: remove non-legit DT warnings when booting using ACPI
      arm64: restore cpu suspend/resume functionality

Suzuki K. Poulose (2):
      arm64: perf: Remove unnecessary printk
      arm64: Generalise msr_s/mrs_s operations

Wang Long (1):
      arm64: mm: add __init section marker to free_initrd_mem

Will Deacon (41):
      arm64: move update_mmu_cache() into asm/pgtable.h
      arm64: lib: use pair accessors for copy_*_user routines
      arm64: force CONFIG_SMP=y and remove redundant #ifdefs
      arm64: alternatives: add enable parameter to conditional asm macros
      arm64: include linux/types.h in asm/spinlock_types.h
      Merge branch 'locking/arch-atomic' of git://git.kernel.org/.../tip/tip into aarch64/for-next/core
      arm64: rwlocks: don't fail trylock purely due to contention
      arm64: cpufeature.h: add missing #include of kernel.h
      arm64: atomics: move ll/sc atomics into separate header file
      arm64: elf: advertise 8.1 atomic instructions as new hwcap
      arm64: alternatives: add cpu feature for lse atomics
      arm64: introduce CONFIG_ARM64_LSE_ATOMICS as fallback to ll/sc atomics
      arm64: atomics: patch in lse instructions when supported by the CPU
      arm64: locks: patch in lse instructions when supported by the CPU
      arm64: bitops: patch in lse instructions when supported by the CPU
      arm64: xchg: patch in lse instructions when supported by the CPU
      arm64: cmpxchg: patch in lse instructions when supported by the CPU
      arm64: cmpxchg_dbl: patch in lse instructions when supported by the CPU
      arm64: cmpxchg: avoid "cc" clobber in ll/sc routines
      arm64: cmpxchg: avoid memory barrier on comparison failure
      arm64: atomics: tidy up common atomic{,64}_* macros
      arm64: atomics: prefetch the destination word for write prior to stxr
      arm64: atomics: implement atomic{,64}_cmpxchg using cmpxchg
      arm64: atomic64_dec_if_positive: fix incorrect branch condition
      arm64: kconfig: select HAVE_CMPXCHG_LOCAL
      arm64: lse: rename ARM64_CPU_FEAT_LSE_ATOMICS for consistency
      arm64: kconfig: group the v8.1 features together
      arm64: lse: use generic cpufeature detection for LSE atomics
      arm64: elf: use cpuid_feature_extract_field for hwcap detection
      arm64: debug: rename enum debug_el to avoid symbol collision
      arm64: spinlock: fix ll/sc unlock on big-endian systems
      arm64: pgtable: fix definition of pte_valid
      arm64: lse: fix lse cmpxchg code indentation
      arm64: alternative: put secondary CPUs into polling loop during patch
      arm64: cmpxchg: truncate sub-word signed types before comparison
      arm64: alternatives: ensure secondary CPUs execute ISB after patching
      arm64: mm: ensure patched kernel text is fetched from PoU
      Merge branch 'aarch64/psci/drivers' into aarch64/for-next/core
      arm64: mdscr_el1: avoid exposing DCC to userspace
      arm64: entry: always restore x0 from the stack on syscall return
      arm64: makefile: fix perf_callchain.o kconfig dependency

yalin wang (1):
      arm64: insn: use set_fixmap_offset to make it more clear

 Documentation/arm64/booting.txt         |  11 +-
 MAINTAINERS                             |   9 +
 arch/alpha/include/asm/atomic.h         |  42 ++--
 arch/arc/include/asm/atomic.h           |   8 +-
 arch/arm/include/asm/atomic.h           |  14 ++
 arch/arm64/Kconfig                      |  87 +++++--
 arch/arm64/Makefile                     |  18 +-
 arch/arm64/boot/Makefile                |  12 +
 arch/arm64/include/asm/acpi.h           |   4 +-
 arch/arm64/include/asm/alternative.h    |  78 ++++++-
 arch/arm64/include/asm/assembler.h      |  14 --
 arch/arm64/include/asm/atomic.h         | 265 +++++-----------------
 arch/arm64/include/asm/atomic_ll_sc.h   | 247 ++++++++++++++++++++
 arch/arm64/include/asm/atomic_lse.h     | 391 ++++++++++++++++++++++++++++++++
 arch/arm64/include/asm/barrier.h        |  24 --
 arch/arm64/include/asm/bug.h            |  64 ++++++
 arch/arm64/include/asm/cmpxchg.h        | 192 ++++++----------
 arch/arm64/include/asm/cpufeature.h     |  18 +-
 arch/arm64/include/asm/cputype.h        |   3 -
 arch/arm64/include/asm/debug-monitors.h |  44 ++--
 arch/arm64/include/asm/esr.h            |   9 +
 arch/arm64/include/asm/exception.h      |   6 +
 arch/arm64/include/asm/fixmap.h         |   2 +-
 arch/arm64/include/asm/futex.h          |  10 +
 arch/arm64/include/asm/hardirq.h        |   4 -
 arch/arm64/include/asm/hugetlb.h        |   4 -
 arch/arm64/include/asm/irq_work.h       |  11 -
 arch/arm64/include/asm/lse.h            |  53 +++++
 arch/arm64/include/asm/memory.h         |   8 +
 arch/arm64/include/asm/mmu.h            |   1 -
 arch/arm64/include/asm/percpu.h         |   8 -
 arch/arm64/include/asm/perf_event.h     |   2 +-
 arch/arm64/include/asm/pgtable-hwdef.h  |   3 +
 arch/arm64/include/asm/pgtable.h        | 167 +++++++++++++-
 arch/arm64/include/asm/processor.h      |   2 +
 arch/arm64/include/asm/psci.h           |  28 ---
 arch/arm64/include/asm/ptrace.h         |   4 -
 arch/arm64/include/asm/smp.h            |   4 -
 arch/arm64/include/asm/smp_plat.h       |   2 -
 arch/arm64/include/asm/spinlock.h       | 147 +++++++++---
 arch/arm64/include/asm/spinlock_types.h |   2 +
 arch/arm64/include/asm/sysreg.h         |  40 +++-
 arch/arm64/include/asm/tlb.h            |   7 +-
 arch/arm64/include/asm/tlbflush.h       |  76 +++----
 arch/arm64/include/asm/topology.h       |   9 -
 arch/arm64/include/asm/traps.h          |  23 +-
 arch/arm64/include/asm/uaccess.h        |  11 +
 arch/arm64/include/uapi/asm/hwcap.h     |   1 +
 arch/arm64/include/uapi/asm/ptrace.h    |   1 +
 arch/arm64/kernel/Makefile              |   6 +-
 arch/arm64/kernel/alternative.c         |  30 ++-
 arch/arm64/kernel/armv8_deprecated.c    |  19 +-
 arch/arm64/kernel/cpu_ops.c             |   2 -
 arch/arm64/kernel/cpufeature.c          |  53 ++++-
 arch/arm64/kernel/debug-monitors.c      |   4 +-
 arch/arm64/kernel/efi-stub.c            |  41 +++-
 arch/arm64/kernel/entry.S               |  46 ++--
 arch/arm64/kernel/fpsimd.c              |   1 +
 arch/arm64/kernel/head.S                |  15 +-
 arch/arm64/kernel/hw_breakpoint.c       |   6 +-
 arch/arm64/kernel/insn.c                |   5 +-
 arch/arm64/kernel/irq.c                 |   2 -
 arch/arm64/kernel/kgdb.c                |  12 +-
 arch/arm64/kernel/pci.c                 |  13 ++
 arch/arm64/kernel/perf_callchain.c      | 196 ++++++++++++++++
 arch/arm64/kernel/perf_event.c          | 310 ++-----------------------
 arch/arm64/kernel/psci.c                | 366 +-----------------------------
 arch/arm64/kernel/ptrace.c              |  92 +++++++-
 arch/arm64/kernel/setup.c               |  87 +++----
 arch/arm64/kernel/sleep.S               |  14 +-
 arch/arm64/kernel/smp.c                 |  15 +-
 arch/arm64/kernel/time.c                |   2 -
 arch/arm64/kernel/topology.c            |   2 +-
 arch/arm64/kernel/traps.c               |  94 ++++++--
 arch/arm64/kvm/hyp.S                    |  12 +-
 arch/arm64/lib/Makefile                 |  13 ++
 arch/arm64/lib/atomic_ll_sc.c           |   3 +
 arch/arm64/lib/bitops.S                 |  45 ++--
 arch/arm64/lib/clear_user.S             |   8 +
 arch/arm64/lib/copy_from_user.S         |  25 +-
 arch/arm64/lib/copy_in_user.S           |  25 +-
 arch/arm64/lib/copy_to_user.S           |  25 +-
 arch/arm64/mm/cache.S                   |   7 +-
 arch/arm64/mm/context.c                 |  16 --
 arch/arm64/mm/dma-mapping.c             |  33 +--
 arch/arm64/mm/fault.c                   |  28 ++-
 arch/arm64/mm/flush.c                   |   4 -
 arch/arm64/mm/hugetlbpage.c             |   4 -
 arch/arm64/mm/init.c                    |   4 +-
 arch/arm64/mm/mmu.c                     |  13 +-
 arch/arm64/mm/proc.S                    |  21 +-
 arch/avr32/include/asm/atomic.h         |  12 +
 arch/blackfin/include/asm/atomic.h      |  16 +-
 arch/blackfin/kernel/bfin_ksyms.c       |   7 +-
 arch/blackfin/mach-bf561/atomic.S       |  30 +--
 arch/blackfin/mach-common/smp.c         |   2 +-
 arch/frv/include/asm/atomic.h           | 107 ++++-----
 arch/frv/include/asm/atomic_defs.h      | 172 ++++++++++++++
 arch/frv/include/asm/bitops.h           |  99 +-------
 arch/frv/kernel/dma.c                   |   6 +-
 arch/frv/kernel/frv_ksyms.c             |   5 -
 arch/frv/lib/Makefile                   |   2 +-
 arch/frv/lib/atomic-lib.c               |   7 +
 arch/frv/lib/atomic-ops.S               | 110 ---------
 arch/frv/lib/atomic64-ops.S             |  94 --------
 arch/h8300/include/asm/atomic.h         | 137 +++--------
 arch/hexagon/include/asm/atomic.h       |   4 +
 arch/ia64/include/asm/atomic.h          |  24 +-
 arch/m32r/include/asm/atomic.h          |  45 +---
 arch/m32r/kernel/smp.c                  |   4 +-
 arch/m68k/include/asm/atomic.h          |  14 +-
 arch/metag/include/asm/atomic_lnkget.h  |  38 +---
 arch/metag/include/asm/atomic_lock1.h   |  23 +-
 arch/mips/include/asm/atomic.h          |   7 +
 arch/mn10300/include/asm/atomic.h       |  71 +-----
 arch/mn10300/mm/tlb-smp.c               |   2 +-
 arch/parisc/include/asm/atomic.h        |   7 +
 arch/powerpc/include/asm/atomic.h       |   7 +
 arch/powerpc/kernel/misc_32.S           |  19 --
 arch/s390/include/asm/atomic.h          |  41 ++--
 arch/s390/kernel/time.c                 |   4 +-
 arch/s390/kvm/interrupt.c               |  30 +--
 arch/s390/kvm/kvm-s390.c                |  32 +--
 arch/sh/include/asm/atomic-grb.h        |  43 +---
 arch/sh/include/asm/atomic-irq.h        |  21 +-
 arch/sh/include/asm/atomic-llsc.h       |  31 +--
 arch/sparc/include/asm/atomic_32.h      |   4 +-
 arch/sparc/include/asm/atomic_64.h      |   4 +
 arch/sparc/lib/atomic32.c               |  22 +-
 arch/sparc/lib/atomic_64.S              |   6 +
 arch/sparc/lib/ksyms.c                  |   3 +
 arch/tile/include/asm/atomic_32.h       |  28 +++
 arch/tile/include/asm/atomic_64.h       |  40 ++++
 arch/tile/lib/atomic_32.c               |  23 ++
 arch/tile/lib/atomic_asm_32.S           |   4 +
 arch/x86/include/asm/atomic.h           |  25 +-
 arch/x86/include/asm/atomic64_32.h      |  14 ++
 arch/x86/include/asm/atomic64_64.h      |  15 ++
 arch/xtensa/include/asm/atomic.h        |  73 +-----
 drivers/firmware/Kconfig                |   3 +
 drivers/firmware/Makefile               |   1 +
 drivers/firmware/psci.c                 | 382 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_drv.c         |   2 +-
 drivers/gpu/drm/i915/i915_gem.c         |   2 +-
 drivers/gpu/drm/i915/i915_irq.c         |   4 +-
 drivers/of/fdt.c                        |  12 +-
 drivers/s390/scsi/zfcp_aux.c            |   2 +-
 drivers/s390/scsi/zfcp_erp.c            |  62 ++---
 drivers/s390/scsi/zfcp_fc.c             |   8 +-
 drivers/s390/scsi/zfcp_fsf.c            |  26 +--
 drivers/s390/scsi/zfcp_qdio.c           |  14 +-
 include/asm-generic/atomic.h            |  11 +-
 include/asm-generic/atomic64.h          |   4 +
 include/linux/atomic.h                  |  38 ++--
 include/linux/psci.h                    |  52 +++++
 lib/atomic64.c                          |   3 +
 lib/atomic64_test.c                     |  68 ++++--
 157 files changed, 3601 insertions(+), 2536 deletions(-)
 create mode 100644 arch/arm64/include/asm/atomic_ll_sc.h
 create mode 100644 arch/arm64/include/asm/atomic_lse.h
 create mode 100644 arch/arm64/include/asm/bug.h
 create mode 100644 arch/arm64/include/asm/lse.h
 delete mode 100644 arch/arm64/include/asm/psci.h
 create mode 100644 arch/arm64/kernel/perf_callchain.c
 create mode 100644 arch/arm64/lib/atomic_ll_sc.c
 create mode 100644 arch/frv/include/asm/atomic_defs.h
 create mode 100644 arch/frv/lib/atomic-lib.c
 create mode 100644 drivers/firmware/psci.c
 create mode 100644 include/linux/psci.h

WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com,
	linux@arm.linux.org.uk, mark.rutland@arm.com,
	peterz@infradead.org, tglx@linutronix.de, robh@kernel.org
Subject: [GIT PULL] arm64: updates for 4.3
Date: Fri, 4 Sep 2015 11:26:57 +0100	[thread overview]
Message-ID: <20150904102656.GC4818@arm.com> (raw)

Hi Linus,

Here is the arm64 queue for 4.3. There's quite a lot here and the
diffstat looks pretty alarming at first glance, so let me walk you
through it:

  - There are a bunch of new arm64 features and these are summarised in
    the tag (see below).

  - One of these features (LSE) involves a pretty hefty rework of our
    atomic operations, which interacts badly with the
    atomic_{or,xor,and} rework from PeterZ in tip. To solve this, tglx
    made a stable branch (tip/locking/arch-atomic) which is included
    here and accounts for most of the surprising diffstat (it touches
    all users of atomic_{set,clear}_mask). You've already pulled this
    from tip.

  - We move our PSCI (a firmware interface for CPU power management)
    implementation out into drivers/firmware/ so that it can be shared
    with arch/arm/, rather than each architecture having a carbon copy
    of the code. This was merged as a separate branch so that RMK can
    include the changes in his tree too and subsequently move arch/arm/
    over to the common code (again, you've already pulled this).

  - There is a single patch to drivers/of/fdt.c, but that has been
    Acked-by Rob and is included here due to a dependency from the
    memblock linear-mapping restriction change.

Note that there is a conflict in arch/arm64/include/asm/barrier.h
between 76695af20c01 ("locking, arch: use WRITE_ONCE()/READ_ONCE() in
smp_store_release()/smp_load_acquire()") and 4b3dc9679cf7 ("arm64: force
CONFIG_SMP=y and remove redundant #ifdefs"). The correct resolution is
to take the version here (i.e. remove the #ifndef CONFIG_SMP block
altogether).

Please pull.

Thanks,

Will

--->8

The following changes since commit cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f:

  Linux 4.2-rc4 (2015-07-26 12:26:21 -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 674c242c9323d3c293fc4f9a3a3a619fe3063290:

  arm64: flush FP/SIMD state correctly after execve() (2015-08-27 09:55:26 +0100)

----------------------------------------------------------------
arm64 updates for 4.3:

- Support for new architectural features introduced in ARMv8.1:
  * Privileged Access Never (PAN) to catch user pointer dereferences in
    the kernel
  * Large System Extension (LSE) for building scalable atomics and locks
    (depends on locking/arch-atomic from tip, which is included here)
  * Hardware Dirty Bit Management (DBM) for updating clean PTEs
    automatically

- Move our PSCI implementation out into drivers/firmware/, where it can
  be shared with arch/arm/. RMK has also pulled this component branch
  and has additional patches moving arch/arm/ over. MAINTAINERS is
  updated accordingly.

- Better BUG implementation based on the BRK instruction for trapping

- Leaf TLB invalidation for unmapping user pages

- Support for PROBE_ONLY PCI configurations

- Various cleanups and non-critical fixes, including:
  * Always flush FP/SIMD state over exec()
  * Restrict memblock additions based on range of linear mapping
  * Ensure *(LIST_POISON) generates a fatal fault
  * Context-tracking syscall return no longer corrupts return value when
    not forced on.
  * Alternatives patching synchronisation/stability improvements
  * Signed sub-word cmpxchg compare fix (tickled by HAVE_CMPXCHG_LOCAL)
  * Force SMP=y
  * Hide direct DCC access from userspace
  * Fix EFI stub memory allocation when DRAM starts at 0x0

----------------------------------------------------------------
Alexander Kuleshov (1):
      arm64: Fix source code file path in comments

Ard Biesheuvel (5):
      arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux
      arm64/Documentation: clarify wording regarding memory below the Image
      of/fdt: make memblock maximum physical address arch configurable
      arm64: set MAX_MEMBLOCK_ADDR according to linear region size
      arm64: flush FP/SIMD state correctly after execve()

Catalin Marinas (4):
      arm64: Add support for hardware updates of the access and dirty pte bits
      arm64: Better native ptrace support for compat tasks
      arm64: Clean up __flush_tlb(_kernel)_range functions
      arm64: Use last level TLBI for user pte changes

Chris Metcalf (1):
      tile: Provide atomic_{or,xor,and}

Daniel Thompson (5):
      arm64: Remove unused macros from assembler.h
      arm64: alternative: Provide if/else/endif assembler macros
      arm64: mm: Adopt new alternative assembler macros
      arm64: kernel: Adopt new alternative assembler macros
      arm64: kvm: Adopt new alternative assembler macros

Dave P Martin (9):
      arm64/debug: Eliminate magic number for size of BRK instruction
      arm64/debug: Mask off all reserved bits from generated ESR values
      arm64/debug: Eliminate magic number from ESR template definition
      arm64/debug: More consistent naming for the BRK ESR template macro
      arm64/debug: Move BRK ESR template macro into <asm/esr.h>
      arm64/debug: Simplify BRK insn opcode declarations
      arm64/debug: Add missing #includes
      arm64/BUG: Use BRK instruction for generic BUG traps
      arm64/BUG: Show explicit backtrace for WARNs

James Morse (6):
      arm64: kernel: Add cpuid_feature_extract_field() for 4bit sign extension
      arm64: kernel: Move config_sctlr_el1
      arm64: kernel: Add cpufeature 'enable' callback
      arm64: kernel: Add min_field_value and use '>=' for feature detection
      arm64: kernel: Add optional CONFIG_ parameter to ALTERNATIVE()
      arm64: kernel: Add support for Privileged Access Never

Jeff Vander Stoep (1):
      arm64: kconfig: Move LIST_POISON to a safe value

Jisheng Zhang (1):
      arm64: hugetlb: remove paragraph about writing to FSF

Jonas Rabenstein (2):
      arm64: remove dead-code depending on CONFIG_UP_LATE_INIT
      arm64: remove redundant object file list

Jungseok Lee (1):
      arm64: Add __exception_irq_entry definition for function graph

Lorenzo Pieralisi (1):
      ARM64: PCI: do not enable resources on PROBE_ONLY systems

Mark Rutland (7):
      arm64: perf: factor out callchain code
      arm64: perf: condense event number maps
      arm64: mm: mark create_mapping as __init
      arm64: psci: factor invocation code to drivers
      drivers: psci: support native SMC{32,64} calls
      MAINTAINERS: add PSCI entry
      arm64: make ll/sc __cmpxchg_case_##name asm consistent

Mark Salter (1):
      arm64: remove dead code

Olof Johansson (1):
      arm64: enable more compressed Image formats

Peter Zijlstra (27):
      atomic: Prepare generic atomic implementation for logic ops
      alpha: Provide atomic_{or,xor,and}
      arc: Provide atomic_{or,xor,and}
      arm: Provide atomic_{or,xor,and}
      arm64: Provide atomic_{or,xor,and}
      avr32: Provide atomic_{or,xor,and}
      blackfin: Provide atomic_{or,xor,and}
      hexagon: Provide atomic_{or,xor,and}
      ia64: Provide atomic_{or,xor,and}
      m32r: Provide atomic_{or,xor,and}
      m68k: Provide atomic_{or,xor,and}
      metag: Provide atomic_{or,xor,and}
      mips: Provide atomic_{or,xor,and}
      mn10300: Provide atomic_{or,xor,and}
      parisc: Provide atomic_{or,xor,and}
      powerpc: Provide atomic_{or,xor,and}
      sh: Provide atomic_{or,xor,and}
      sparc: Provide atomic_{or,xor,and}
      xtensa: Provide atomic_{or,xor,and}
      s390: Provide atomic_{or,xor,and}
      x86: Provide atomic_{or,xor,and}
      frv: Rewrite atomic implementation
      h8300: Provide atomic_{or,xor,and}
      atomic: Provide atomic_{or,xor,and}
      atomic: Collapse all atomic_{set,clear}_mask definitions
      atomic: Replace atomic_{set,clear}_mask() usage
      atomic: Add simple atomic_t tests

Robin Murphy (3):
      arm64: consolidate __swiotlb_mmap
      arm64: dma-mapping: implement dma_get_sgtable()
      arm64: dma-mapping: Simplify pgprot handling

Rohit Thapliyal (1):
      arm64: modify the dump mem for 64 bit addresses

Sudeep Holla (3):
      arm64: perf: replace arch_find_n_match_cpu_physical_id with of_cpu_device_node_get
      arm64: kernel: remove non-legit DT warnings when booting using ACPI
      arm64: restore cpu suspend/resume functionality

Suzuki K. Poulose (2):
      arm64: perf: Remove unnecessary printk
      arm64: Generalise msr_s/mrs_s operations

Wang Long (1):
      arm64: mm: add __init section marker to free_initrd_mem

Will Deacon (41):
      arm64: move update_mmu_cache() into asm/pgtable.h
      arm64: lib: use pair accessors for copy_*_user routines
      arm64: force CONFIG_SMP=y and remove redundant #ifdefs
      arm64: alternatives: add enable parameter to conditional asm macros
      arm64: include linux/types.h in asm/spinlock_types.h
      Merge branch 'locking/arch-atomic' of git://git.kernel.org/.../tip/tip into aarch64/for-next/core
      arm64: rwlocks: don't fail trylock purely due to contention
      arm64: cpufeature.h: add missing #include of kernel.h
      arm64: atomics: move ll/sc atomics into separate header file
      arm64: elf: advertise 8.1 atomic instructions as new hwcap
      arm64: alternatives: add cpu feature for lse atomics
      arm64: introduce CONFIG_ARM64_LSE_ATOMICS as fallback to ll/sc atomics
      arm64: atomics: patch in lse instructions when supported by the CPU
      arm64: locks: patch in lse instructions when supported by the CPU
      arm64: bitops: patch in lse instructions when supported by the CPU
      arm64: xchg: patch in lse instructions when supported by the CPU
      arm64: cmpxchg: patch in lse instructions when supported by the CPU
      arm64: cmpxchg_dbl: patch in lse instructions when supported by the CPU
      arm64: cmpxchg: avoid "cc" clobber in ll/sc routines
      arm64: cmpxchg: avoid memory barrier on comparison failure
      arm64: atomics: tidy up common atomic{,64}_* macros
      arm64: atomics: prefetch the destination word for write prior to stxr
      arm64: atomics: implement atomic{,64}_cmpxchg using cmpxchg
      arm64: atomic64_dec_if_positive: fix incorrect branch condition
      arm64: kconfig: select HAVE_CMPXCHG_LOCAL
      arm64: lse: rename ARM64_CPU_FEAT_LSE_ATOMICS for consistency
      arm64: kconfig: group the v8.1 features together
      arm64: lse: use generic cpufeature detection for LSE atomics
      arm64: elf: use cpuid_feature_extract_field for hwcap detection
      arm64: debug: rename enum debug_el to avoid symbol collision
      arm64: spinlock: fix ll/sc unlock on big-endian systems
      arm64: pgtable: fix definition of pte_valid
      arm64: lse: fix lse cmpxchg code indentation
      arm64: alternative: put secondary CPUs into polling loop during patch
      arm64: cmpxchg: truncate sub-word signed types before comparison
      arm64: alternatives: ensure secondary CPUs execute ISB after patching
      arm64: mm: ensure patched kernel text is fetched from PoU
      Merge branch 'aarch64/psci/drivers' into aarch64/for-next/core
      arm64: mdscr_el1: avoid exposing DCC to userspace
      arm64: entry: always restore x0 from the stack on syscall return
      arm64: makefile: fix perf_callchain.o kconfig dependency

yalin wang (1):
      arm64: insn: use set_fixmap_offset to make it more clear

 Documentation/arm64/booting.txt         |  11 +-
 MAINTAINERS                             |   9 +
 arch/alpha/include/asm/atomic.h         |  42 ++--
 arch/arc/include/asm/atomic.h           |   8 +-
 arch/arm/include/asm/atomic.h           |  14 ++
 arch/arm64/Kconfig                      |  87 +++++--
 arch/arm64/Makefile                     |  18 +-
 arch/arm64/boot/Makefile                |  12 +
 arch/arm64/include/asm/acpi.h           |   4 +-
 arch/arm64/include/asm/alternative.h    |  78 ++++++-
 arch/arm64/include/asm/assembler.h      |  14 --
 arch/arm64/include/asm/atomic.h         | 265 +++++-----------------
 arch/arm64/include/asm/atomic_ll_sc.h   | 247 ++++++++++++++++++++
 arch/arm64/include/asm/atomic_lse.h     | 391 ++++++++++++++++++++++++++++++++
 arch/arm64/include/asm/barrier.h        |  24 --
 arch/arm64/include/asm/bug.h            |  64 ++++++
 arch/arm64/include/asm/cmpxchg.h        | 192 ++++++----------
 arch/arm64/include/asm/cpufeature.h     |  18 +-
 arch/arm64/include/asm/cputype.h        |   3 -
 arch/arm64/include/asm/debug-monitors.h |  44 ++--
 arch/arm64/include/asm/esr.h            |   9 +
 arch/arm64/include/asm/exception.h      |   6 +
 arch/arm64/include/asm/fixmap.h         |   2 +-
 arch/arm64/include/asm/futex.h          |  10 +
 arch/arm64/include/asm/hardirq.h        |   4 -
 arch/arm64/include/asm/hugetlb.h        |   4 -
 arch/arm64/include/asm/irq_work.h       |  11 -
 arch/arm64/include/asm/lse.h            |  53 +++++
 arch/arm64/include/asm/memory.h         |   8 +
 arch/arm64/include/asm/mmu.h            |   1 -
 arch/arm64/include/asm/percpu.h         |   8 -
 arch/arm64/include/asm/perf_event.h     |   2 +-
 arch/arm64/include/asm/pgtable-hwdef.h  |   3 +
 arch/arm64/include/asm/pgtable.h        | 167 +++++++++++++-
 arch/arm64/include/asm/processor.h      |   2 +
 arch/arm64/include/asm/psci.h           |  28 ---
 arch/arm64/include/asm/ptrace.h         |   4 -
 arch/arm64/include/asm/smp.h            |   4 -
 arch/arm64/include/asm/smp_plat.h       |   2 -
 arch/arm64/include/asm/spinlock.h       | 147 +++++++++---
 arch/arm64/include/asm/spinlock_types.h |   2 +
 arch/arm64/include/asm/sysreg.h         |  40 +++-
 arch/arm64/include/asm/tlb.h            |   7 +-
 arch/arm64/include/asm/tlbflush.h       |  76 +++----
 arch/arm64/include/asm/topology.h       |   9 -
 arch/arm64/include/asm/traps.h          |  23 +-
 arch/arm64/include/asm/uaccess.h        |  11 +
 arch/arm64/include/uapi/asm/hwcap.h     |   1 +
 arch/arm64/include/uapi/asm/ptrace.h    |   1 +
 arch/arm64/kernel/Makefile              |   6 +-
 arch/arm64/kernel/alternative.c         |  30 ++-
 arch/arm64/kernel/armv8_deprecated.c    |  19 +-
 arch/arm64/kernel/cpu_ops.c             |   2 -
 arch/arm64/kernel/cpufeature.c          |  53 ++++-
 arch/arm64/kernel/debug-monitors.c      |   4 +-
 arch/arm64/kernel/efi-stub.c            |  41 +++-
 arch/arm64/kernel/entry.S               |  46 ++--
 arch/arm64/kernel/fpsimd.c              |   1 +
 arch/arm64/kernel/head.S                |  15 +-
 arch/arm64/kernel/hw_breakpoint.c       |   6 +-
 arch/arm64/kernel/insn.c                |   5 +-
 arch/arm64/kernel/irq.c                 |   2 -
 arch/arm64/kernel/kgdb.c                |  12 +-
 arch/arm64/kernel/pci.c                 |  13 ++
 arch/arm64/kernel/perf_callchain.c      | 196 ++++++++++++++++
 arch/arm64/kernel/perf_event.c          | 310 ++-----------------------
 arch/arm64/kernel/psci.c                | 366 +-----------------------------
 arch/arm64/kernel/ptrace.c              |  92 +++++++-
 arch/arm64/kernel/setup.c               |  87 +++----
 arch/arm64/kernel/sleep.S               |  14 +-
 arch/arm64/kernel/smp.c                 |  15 +-
 arch/arm64/kernel/time.c                |   2 -
 arch/arm64/kernel/topology.c            |   2 +-
 arch/arm64/kernel/traps.c               |  94 ++++++--
 arch/arm64/kvm/hyp.S                    |  12 +-
 arch/arm64/lib/Makefile                 |  13 ++
 arch/arm64/lib/atomic_ll_sc.c           |   3 +
 arch/arm64/lib/bitops.S                 |  45 ++--
 arch/arm64/lib/clear_user.S             |   8 +
 arch/arm64/lib/copy_from_user.S         |  25 +-
 arch/arm64/lib/copy_in_user.S           |  25 +-
 arch/arm64/lib/copy_to_user.S           |  25 +-
 arch/arm64/mm/cache.S                   |   7 +-
 arch/arm64/mm/context.c                 |  16 --
 arch/arm64/mm/dma-mapping.c             |  33 +--
 arch/arm64/mm/fault.c                   |  28 ++-
 arch/arm64/mm/flush.c                   |   4 -
 arch/arm64/mm/hugetlbpage.c             |   4 -
 arch/arm64/mm/init.c                    |   4 +-
 arch/arm64/mm/mmu.c                     |  13 +-
 arch/arm64/mm/proc.S                    |  21 +-
 arch/avr32/include/asm/atomic.h         |  12 +
 arch/blackfin/include/asm/atomic.h      |  16 +-
 arch/blackfin/kernel/bfin_ksyms.c       |   7 +-
 arch/blackfin/mach-bf561/atomic.S       |  30 +--
 arch/blackfin/mach-common/smp.c         |   2 +-
 arch/frv/include/asm/atomic.h           | 107 ++++-----
 arch/frv/include/asm/atomic_defs.h      | 172 ++++++++++++++
 arch/frv/include/asm/bitops.h           |  99 +-------
 arch/frv/kernel/dma.c                   |   6 +-
 arch/frv/kernel/frv_ksyms.c             |   5 -
 arch/frv/lib/Makefile                   |   2 +-
 arch/frv/lib/atomic-lib.c               |   7 +
 arch/frv/lib/atomic-ops.S               | 110 ---------
 arch/frv/lib/atomic64-ops.S             |  94 --------
 arch/h8300/include/asm/atomic.h         | 137 +++--------
 arch/hexagon/include/asm/atomic.h       |   4 +
 arch/ia64/include/asm/atomic.h          |  24 +-
 arch/m32r/include/asm/atomic.h          |  45 +---
 arch/m32r/kernel/smp.c                  |   4 +-
 arch/m68k/include/asm/atomic.h          |  14 +-
 arch/metag/include/asm/atomic_lnkget.h  |  38 +---
 arch/metag/include/asm/atomic_lock1.h   |  23 +-
 arch/mips/include/asm/atomic.h          |   7 +
 arch/mn10300/include/asm/atomic.h       |  71 +-----
 arch/mn10300/mm/tlb-smp.c               |   2 +-
 arch/parisc/include/asm/atomic.h        |   7 +
 arch/powerpc/include/asm/atomic.h       |   7 +
 arch/powerpc/kernel/misc_32.S           |  19 --
 arch/s390/include/asm/atomic.h          |  41 ++--
 arch/s390/kernel/time.c                 |   4 +-
 arch/s390/kvm/interrupt.c               |  30 +--
 arch/s390/kvm/kvm-s390.c                |  32 +--
 arch/sh/include/asm/atomic-grb.h        |  43 +---
 arch/sh/include/asm/atomic-irq.h        |  21 +-
 arch/sh/include/asm/atomic-llsc.h       |  31 +--
 arch/sparc/include/asm/atomic_32.h      |   4 +-
 arch/sparc/include/asm/atomic_64.h      |   4 +
 arch/sparc/lib/atomic32.c               |  22 +-
 arch/sparc/lib/atomic_64.S              |   6 +
 arch/sparc/lib/ksyms.c                  |   3 +
 arch/tile/include/asm/atomic_32.h       |  28 +++
 arch/tile/include/asm/atomic_64.h       |  40 ++++
 arch/tile/lib/atomic_32.c               |  23 ++
 arch/tile/lib/atomic_asm_32.S           |   4 +
 arch/x86/include/asm/atomic.h           |  25 +-
 arch/x86/include/asm/atomic64_32.h      |  14 ++
 arch/x86/include/asm/atomic64_64.h      |  15 ++
 arch/xtensa/include/asm/atomic.h        |  73 +-----
 drivers/firmware/Kconfig                |   3 +
 drivers/firmware/Makefile               |   1 +
 drivers/firmware/psci.c                 | 382 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_drv.c         |   2 +-
 drivers/gpu/drm/i915/i915_gem.c         |   2 +-
 drivers/gpu/drm/i915/i915_irq.c         |   4 +-
 drivers/of/fdt.c                        |  12 +-
 drivers/s390/scsi/zfcp_aux.c            |   2 +-
 drivers/s390/scsi/zfcp_erp.c            |  62 ++---
 drivers/s390/scsi/zfcp_fc.c             |   8 +-
 drivers/s390/scsi/zfcp_fsf.c            |  26 +--
 drivers/s390/scsi/zfcp_qdio.c           |  14 +-
 include/asm-generic/atomic.h            |  11 +-
 include/asm-generic/atomic64.h          |   4 +
 include/linux/atomic.h                  |  38 ++--
 include/linux/psci.h                    |  52 +++++
 lib/atomic64.c                          |   3 +
 lib/atomic64_test.c                     |  68 ++++--
 157 files changed, 3601 insertions(+), 2536 deletions(-)
 create mode 100644 arch/arm64/include/asm/atomic_ll_sc.h
 create mode 100644 arch/arm64/include/asm/atomic_lse.h
 create mode 100644 arch/arm64/include/asm/bug.h
 create mode 100644 arch/arm64/include/asm/lse.h
 delete mode 100644 arch/arm64/include/asm/psci.h
 create mode 100644 arch/arm64/kernel/perf_callchain.c
 create mode 100644 arch/arm64/lib/atomic_ll_sc.c
 create mode 100644 arch/frv/include/asm/atomic_defs.h
 create mode 100644 arch/frv/lib/atomic-lib.c
 create mode 100644 drivers/firmware/psci.c
 create mode 100644 include/linux/psci.h

             reply	other threads:[~2015-09-04 10:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-04 10:26 Will Deacon [this message]
2015-09-04 10:26 ` [GIT PULL] arm64: updates for 4.3 Will Deacon
2015-09-10 16:58 ` Timur Tabi
2015-09-10 16:58   ` Timur Tabi
2015-09-10 17:02   ` Will Deacon
2015-09-10 17:02     ` Will Deacon
2015-09-11 21:58     ` Timur Tabi
2015-09-11 21:58       ` Timur Tabi
2015-09-11 22:43       ` Greg Kroah-Hartman
2015-09-11 22:43         ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150904102656.GC4818@arm.com \
    --to=will.deacon@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.