[GIT PULL] arm64 and cross-arch updates for 5.9

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Here's a slightly wider-spread set of updates for 5.9. Going outside the
usual arch/arm64/ is the removal of read_barrier_depends() series from
Will (http://lkml.kernel.org/r/20200710165203.31284-1-will@xxxxxxxxxx)
and the MSI/IOMMU ID translation series from Lorenzo
(http://lkml.kernel.org/r/20200619082013.13661-1-lorenzo.pieralisi@xxxxxxx).
The notable arm64 updates include ARMv8.4 TLBI range operations and
translation level hint, time namespace support, perf.

There is only a trivial conflict with v5.8, resolved as:

------------8<-------------------------
diff --cc arch/arm64/include/asm/vdso/compat_gettimeofday.h
index 9a625e8947ff,d0cbb04bfc10..85b6873b1cfa
--- a/arch/arm64/include/asm/vdso/compat_gettimeofday.h
+++ b/arch/arm64/include/asm/vdso/compat_gettimeofday.h
@@@ -152,12 -153,18 +153,24 @@@ static __always_inline const struct vds
  	return ret;
  }
  
 +static inline bool vdso_clocksource_ok(const struct vdso_data *vd)
 +{
 +	return vd->clock_mode == VDSO_CLOCKMODE_ARCHTIMER;
 +}
 +#define vdso_clocksource_ok	vdso_clocksource_ok
 +
+ #ifdef CONFIG_TIME_NS
+ static __always_inline const struct vdso_data *__arch_get_timens_vdso_data(void)
+ {
+ 	const struct vdso_data *ret;
+ 
+ 	/* See __arch_get_vdso_data(). */
+ 	asm volatile("mov %0, %1" : "=r"(ret) : "r"(_timens_data));
+ 
+ 	return ret;
+ }
+ #endif
+ 
  #endif /* !__ASSEMBLY__ */
  
  #endif /* __ASM_VDSO_GETTIMEOFDAY_H */
------------8<-------------------------

If there are any issues, please let me know. I can send separate pull
requests if necessary. Thanks.

The following changes since commit 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68:

  Linux 5.8-rc3 (2020-06-28 15:00:24 -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 0e4cd9f2654915be8d09a1bd1b405ce5426e64c4:

  Merge branch 'for-next/read-barrier-depends' into for-next/core (2020-07-31 18:09:57 +0100)

----------------------------------------------------------------
arm64 and cross-arch updates for 5.9:

- Removal of the tremendously unpopular read_barrier_depends() barrier,
  which is a NOP on all architectures apart from Alpha, in favour of
  allowing architectures to override READ_ONCE() and do whatever dance
  they need to do to ensure address dependencies provide LOAD ->
  LOAD/STORE ordering. This work also offers a potential solution if
  compilers are shown to convert LOAD -> LOAD address dependencies into
  control dependencies (e.g. under LTO), as weakly ordered architectures
  will effectively be able to upgrade READ_ONCE() to smp_load_acquire().
  The latter case is not used yet, but will be discussed further at LPC.

- Make the MSI/IOMMU input/output ID translation PCI agnostic, augment
  the MSI/IOMMU ACPI/OF ID mapping APIs to accept an input ID
  bus-specific parameter and apply the resulting changes to the device
  ID space provided by the Freescale FSL bus.

- arm64 support for TLBI range operations and translation table level
  hints (part of the ARMv8.4 architecture version).

- Time namespace support for arm64.

- Export the virtual and physical address sizes in vmcoreinfo for
  makedumpfile and crash utilities.

- CPU feature handling cleanups and checks for programmer errors
  (overlapping bit-fields).

- ACPI updates for arm64: disallow AML accesses to EFI code regions and
  kernel memory.

- perf updates for arm64.

- Miscellaneous fixes and cleanups, most notably PLT counting
  optimisation for module loading, recordmcount fix to ignore
  relocations other than R_AARCH64_CALL26, CMA areas reserved for
  gigantic pages on 16K and 64K configurations.

- Trivial typos, duplicate words.

----------------------------------------------------------------
Ahmed S. Darwish (1):
      time/sched_clock: Use raw_read_seqcount_latch()

Andrei Vagin (6):
      arm64/vdso: use the fault callback to map vvar pages
      arm64/vdso: Zap vvar pages when switching to a time namespace
      arm64/vdso: Add time namespace page
      arm64/vdso: Handle faults on timens page
      arm64/vdso: Restrict splitting VVAR VMA
      arm64: enable time namespace support

Andrew Scull (1):
      smccc: Make constants available to assembly

Anshuman Khandual (7):
      arm64/panic: Unify all three existing notifier blocks
      arm64/cpufeature: Add remaining feature bits in ID_AA64MMFR0 register
      arm64/cpufeature: Add remaining feature bits in ID_AA64MMFR1 register
      arm64/cpufeature: Add remaining feature bits in ID_AA64MMFR2 register
      arm64/cpufeature: Replace all open bits shift encodings with macros
      arm64/cpufeature: Validate feature bits spacing in arm64_ftr_regs[]
      arm64/hugetlb: Reserve CMA areas for gigantic pages on 16K and 64K configs

Ard Biesheuvel (3):
      arm64/acpi: disallow AML memory opregions to access kernel memory
      arm64/acpi: disallow writeable AML opregion mapping for EFI code regions
      arm64/entry: deduplicate SW PAN entry/exit routines

Bhupesh Sharma (3):
      crash_core, vmcoreinfo: Append 'MAX_PHYSMEM_BITS' to vmcoreinfo
      arm64/crash_core: Export TCR_EL1.T1SZ in vmcoreinfo
      arm64/defconfig: Enable CONFIG_KEXEC_FILE

Catalin Marinas (5):
      arm64: Shift the __tlbi_level() indentation left
      arm64: Reserve HWCAP2_MTE as (1 << 18)
      Merge branches 'for-next/misc', 'for-next/vmcoreinfo', 'for-next/cpufeature', 'for-next/acpi', 'for-next/perf', 'for-next/timens', 'for-next/msi-iommu' and 'for-next/trivial' into for-next/core
      Merge branch 'for-next/tlbi' into for-next/core
      Merge branch 'for-next/read-barrier-depends' into for-next/core

Diana Craciun (2):
      of/irq: make of_msi_map_get_device_domain() bus agnostic
      bus/fsl-mc: Refactor the MSI domain creation in the DPRC driver

Gavin Shan (1):
      arm64/mm: Redefine CONT_{PTE, PMD}_SHIFT

Gregory Herrero (1):
      recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.

Jay Chen (1):
      perf/smmuv3: To simplify code for ioremap page in pmcg

Laurentiu Tudor (1):
      dt-bindings: arm: fsl: Add msi-map device-tree binding for fsl-mc bus

Leo Yan (1):
      tools headers UAPI: Update tools's copy of linux/perf_event.h

Lorenzo Pieralisi (8):
      ACPI/IORT: Make iort_match_node_callback walk the ACPI namespace for NC
      ACPI/IORT: Make iort_get_device_domain IRQ domain agnostic
      ACPI/IORT: Make iort_msi_map_rid() PCI agnostic
      ACPI/IORT: Remove useless PCI bus walk
      ACPI/IORT: Add an input ID to acpi_dma_configure()
      of/iommu: Make of_map_rid() PCI agnostic
      of/device: Add input id to of_dma_configure()
      of/irq: Make of_msi_map_rid() PCI bus agnostic

Makarand Pawagi (1):
      bus: fsl-mc: Add ACPI support for fsl-mc

Maninder Singh (1):
      arm64: use IRQ_STACK_SIZE instead of THREAD_SIZE for irq stack

Marc Zyngier (3):
      arm64: Detect the ARMv8.4 TTL feature
      arm64: Document SW reserved PTE/PMD bits in Stage-2 descriptors
      arm64: Add level-hinted TLB invalidation helper

Mark Brown (2):
      arm64: Document sysctls for emulated deprecated instructions
      arm64: stacktrace: Move export for save_stack_trace_tsk()

Peter Zijlstra (5):
      sched_clock: Expose struct clock_read_data
      arm64: perf: Implement correct cap_user_time
      arm64: perf: Only advertise cap_user_time for arch_timer
      perf: Add perf_event_mmap_page::cap_user_time_short ABI
      arm64: perf: Add cap_user_time_short

Peter Zijlstra (Intel) (1):
      tlb: mmu_gather: add tlb_flush_*_range APIs

Pingfan Liu (1):
      arm64/mm: save memory access in check_and_switch_context() fast switch path

Randy Dunlap (3):
      arm64: pgtable-hwdef.h: delete duplicated words
      arm64: ptrace.h: delete duplicated word
      arm64: sigcontext.h: delete duplicated word

Saravana Kannan (1):
      arm64/module: Optimize module load time by optimizing PLT counting

SeongJae Park (1):
      Documentation/barriers/kokr: Remove references to [smp_]read_barrier_depends()

Shaokun Zhang (2):
      arm64: perf: Correct the event index in sysfs
      arm64: perf: Expose some new events via sysfs

Vladimir Murzin (1):
      arm64: s/AMEVTYPE/AMEVTYPER

Will Deacon (15):
      tools: bpf: Use local copy of headers including uapi/linux/filter.h
      compiler.h: Split {READ,WRITE}_ONCE definitions out into rwonce.h
      asm/rwonce: Allow __READ_ONCE to be overridden by the architecture
      alpha: Override READ_ONCE() with barriered implementation
      asm/rwonce: Remove smp_read_barrier_depends() invocation
      asm/rwonce: Don't pull <asm/barrier.h> into 'asm-generic/rwonce.h'
      vhost: Remove redundant use of read_barrier_depends() barrier
      alpha: Replace smp_read_barrier_depends() usage with smp_[r]mb()
      locking/barriers: Remove definitions for [smp_]read_barrier_depends()
      Documentation/barriers: Remove references to [smp_]read_barrier_depends()
      tools/memory-model: Remove smp_read_barrier_depends() from informal doc
      include/linux: Remove smp_read_barrier_depends() from comments
      checkpatch: Remove checks relating to [smp_]read_barrier_depends()
      compiler.h: Move compiletime_assert() macros into compiler_types.h
      arm64: Reduce the number of header files pulled into vmlinux.lds.S

Zhenyu Ye (7):
      arm64: Add tlbi_user_level TLB invalidation helper
      arm64: tlb: Set the TTL field in flush_tlb_range
      arm64: tlb: Set the TTL field in flush_*_tlb_range
      arm64: tlb: don't set the ttl value in flush_tlb_page_nosync
      arm64: tlb: Detect the ARMv8.4 TLBI RANGE feature
      arm64: enable tlbi range instructions
      arm64: tlb: Use the TLBI RANGE feature in arm64

 .../RCU/Design/Requirements/Requirements.rst       |   2 +-
 Documentation/admin-guide/kdump/vmcoreinfo.rst     |  16 ++
 .../devicetree/bindings/misc/fsl,qoriq-mc.txt      |  50 +++++-
 Documentation/memory-barriers.txt                  | 156 +-----------------
 .../translations/ko_KR/memory-barriers.txt         | 146 +----------------
 arch/alpha/include/asm/atomic.h                    |  16 +-
 arch/alpha/include/asm/barrier.h                   |  59 +------
 arch/alpha/include/asm/pgtable.h                   |  10 +-
 arch/alpha/include/asm/rwonce.h                    |  35 ++++
 arch/arm/include/asm/vdso/gettimeofday.h           |   1 +
 arch/arm64/Kconfig                                 |  23 ++-
 arch/arm64/Makefile                                |   7 +
 arch/arm64/configs/defconfig                       |   1 +
 arch/arm64/include/asm/acpi.h                      |  15 +-
 arch/arm64/include/asm/cpucaps.h                   |   4 +-
 arch/arm64/include/asm/cpufeature.h                |   7 +
 arch/arm64/include/asm/hugetlb.h                   |   2 +
 arch/arm64/include/asm/hwcap.h                     |   1 +
 arch/arm64/include/asm/kernel-pgtable.h            |   2 +-
 arch/arm64/include/asm/memory.h                    |  12 +-
 arch/arm64/include/asm/mmu_context.h               |   6 +-
 arch/arm64/include/asm/perf_event.h                |  27 ++++
 arch/arm64/include/asm/pgtable-hwdef.h             |  23 +--
 arch/arm64/include/asm/pgtable.h                   |  10 ++
 arch/arm64/include/asm/ptrace.h                    |   2 +-
 arch/arm64/include/asm/stage2_pgtable.h            |   9 ++
 arch/arm64/include/asm/sysreg.h                    |  49 +++++-
 arch/arm64/include/asm/tlb.h                       |  29 +++-
 arch/arm64/include/asm/tlbflush.h                  | 177 +++++++++++++++++++--
 arch/arm64/include/asm/uaccess.h                   |   1 +
 arch/arm64/include/asm/vdso.h                      |   2 +
 arch/arm64/include/asm/vdso/compat_gettimeofday.h  |  13 ++
 arch/arm64/include/asm/vdso/gettimeofday.h         |   9 ++
 arch/arm64/include/uapi/asm/hwcap.h                |   1 +
 arch/arm64/include/uapi/asm/sigcontext.h           |   2 +-
 arch/arm64/kernel/acpi.c                           |  75 +++++++++
 arch/arm64/kernel/cpufeature.c                     | 149 ++++++++++++-----
 arch/arm64/kernel/cpuinfo.c                        |   1 +
 arch/arm64/kernel/crash_core.c                     |  10 ++
 arch/arm64/kernel/entry.S                          |  96 +++++------
 arch/arm64/kernel/module-plts.c                    |  46 +++++-
 arch/arm64/kernel/perf_event.c                     |  89 ++++++++---
 arch/arm64/kernel/setup.c                          |  24 +--
 arch/arm64/kernel/stacktrace.c                     |   2 +-
 arch/arm64/kernel/traps.c                          |   2 +-
 arch/arm64/kernel/vdso.c                           | 136 ++++++++++++++--
 arch/arm64/kernel/vdso/vdso.lds.S                  |   5 +-
 arch/arm64/kernel/vdso32/vdso.lds.S                |   5 +-
 arch/arm64/kernel/vmlinux.lds.S                    |   1 -
 arch/arm64/kvm/hyp-init.S                          |   1 +
 arch/arm64/kvm/sys_regs.c                          |  68 ++++----
 arch/arm64/mm/context.c                            |  10 +-
 arch/arm64/mm/hugetlbpage.c                        |  42 ++++-
 arch/arm64/mm/init.c                               |  22 +--
 arch/riscv/include/asm/vdso/gettimeofday.h         |   1 +
 drivers/acpi/arm64/iort.c                          | 108 +++++++++----
 drivers/acpi/scan.c                                |   8 +-
 drivers/bus/fsl-mc/dprc-driver.c                   |  31 +---
 drivers/bus/fsl-mc/fsl-mc-bus.c                    |  79 ++++++---
 drivers/bus/fsl-mc/fsl-mc-msi.c                    |  36 +++--
 drivers/bus/fsl-mc/fsl-mc-private.h                |   6 +-
 drivers/iommu/of_iommu.c                           |  81 +++++-----
 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c        | 105 +++++++++---
 drivers/of/base.c                                  |  42 ++---
 drivers/of/device.c                                |   8 +-
 drivers/of/irq.c                                   |  34 ++--
 drivers/pci/msi.c                                  |   9 +-
 drivers/perf/arm_smmuv3_pmu.c                      |   3 +-
 drivers/vhost/vhost.c                              |   5 -
 include/acpi/acpi_bus.h                            |   9 +-
 include/asm-generic/Kbuild                         |   1 +
 include/asm-generic/barrier.h                      |  19 +--
 include/asm-generic/rwonce.h                       |  90 +++++++++++
 include/asm-generic/tlb.h                          |  55 +++++--
 include/linux/acpi.h                               |   7 +
 include/linux/acpi_iort.h                          |  20 +--
 include/linux/arm-smccc.h                          |  44 ++---
 include/linux/compiler.h                           | 134 +---------------
 include/linux/compiler_types.h                     |  41 +++++
 include/linux/nospec.h                             |   2 +
 include/linux/of.h                                 |   4 +-
 include/linux/of_device.h                          |  16 +-
 include/linux/of_iommu.h                           |   6 +-
 include/linux/of_irq.h                             |  13 +-
 include/linux/percpu-refcount.h                    |   2 +-
 include/linux/ptr_ring.h                           |   2 +-
 include/linux/sched_clock.h                        |  28 ++++
 include/uapi/linux/perf_event.h                    |  23 ++-
 include/vdso/datapage.h                            |   1 +
 kernel/crash_core.c                                |   1 +
 kernel/time/sched_clock.c                          |  41 ++---
 mm/memory.c                                        |   2 +-
 scripts/checkpatch.pl                              |   9 +-
 scripts/recordmcount.c                             |   6 +
 tools/bpf/Makefile                                 |   3 +-
 tools/include/uapi/linux/filter.h                  |  90 +++++++++++
 tools/include/uapi/linux/perf_event.h              |  23 ++-
 tools/memory-model/Documentation/explanation.txt   |  26 ++-
 98 files changed, 1892 insertions(+), 1091 deletions(-)
 create mode 100644 arch/alpha/include/asm/rwonce.h
 create mode 100644 include/asm-generic/rwonce.h
 create mode 100644 tools/include/uapi/linux/filter.h



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux