[GIT PULL] arm64: updates for 4.13

Will Deacon will.deacon at arm.com
Wed Jul 5 02:30:13 PDT 2017


Hi Linus,

Please pull the following arm64 updates for 4.13. The summary is in the tag,
but note that the RAS changes are based on Christoph's uuid-types branch [1]
(which you've already pulled) to avoid conflicts in the ACPI core.

There is a trivial conflict in drivers/acpi/apei/ghes.c, and the correct
resolution is just to add the new ACPI_HEST_NOTIFY_SEA cases to the
three switch statements [2].

Cheers,

Will

[1] http://git.infradead.org/users/hch/uuid.git/shortlog/refs/heads/uuid-types
[2]

diff --cc drivers/acpi/apei/ghes.c
index 0968816,bb83044..0000000
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@@ -718,10 -809,59 +809,59 @@@ static int ghes_notify_hed(struct notif
  	return ret;
  }
  
 -static struct notifier_block ghes_notifier_sci = {
 -	.notifier_call = ghes_notify_sci,
 +static struct notifier_block ghes_notifier_hed = {
 +	.notifier_call = ghes_notify_hed,
  };
  
+ #ifdef CONFIG_ACPI_APEI_SEA
+ static LIST_HEAD(ghes_sea);
+ 
+ /*
+  * Return 0 only if one of the SEA error sources successfully reported an error
+  * record sent from the firmware.
+  */
+ int ghes_notify_sea(void)
+ {
+ 	struct ghes *ghes;
+ 	int ret = -ENOENT;
+ 
+ 	rcu_read_lock();
+ 	list_for_each_entry_rcu(ghes, &ghes_sea, list) {
+ 		if (!ghes_proc(ghes))
+ 			ret = 0;
+ 	}
+ 	rcu_read_unlock();
+ 	return ret;
+ }
+ 
+ static void ghes_sea_add(struct ghes *ghes)
+ {
+ 	mutex_lock(&ghes_list_mutex);
+ 	list_add_rcu(&ghes->list, &ghes_sea);
+ 	mutex_unlock(&ghes_list_mutex);
+ }
+ 
+ static void ghes_sea_remove(struct ghes *ghes)
+ {
+ 	mutex_lock(&ghes_list_mutex);
+ 	list_del_rcu(&ghes->list);
+ 	mutex_unlock(&ghes_list_mutex);
+ 	synchronize_rcu();
+ }
+ #else /* CONFIG_ACPI_APEI_SEA */
+ static inline void ghes_sea_add(struct ghes *ghes)
+ {
+ 	pr_err(GHES_PFX "ID: %d, trying to add SEA notification which is not supported\n",
+ 	       ghes->generic->header.source_id);
+ }
+ 
+ static inline void ghes_sea_remove(struct ghes *ghes)
+ {
+ 	pr_err(GHES_PFX "ID: %d, trying to remove SEA notification which is not supported\n",
+ 	       ghes->generic->header.source_id);
+ }
+ #endif /* CONFIG_ACPI_APEI_SEA */
+ 
  #ifdef CONFIG_HAVE_ACPI_APEI_NMI
  /*
   * printk is not safe in NMI context.  So in NMI handler, we allocate
@@@ -966,10 -1095,15 +1095,17 @@@ static int ghes_probe(struct platform_d
  	case ACPI_HEST_NOTIFY_POLLED:
  	case ACPI_HEST_NOTIFY_EXTERNAL:
  	case ACPI_HEST_NOTIFY_SCI:
 +	case ACPI_HEST_NOTIFY_GSIV:
 +	case ACPI_HEST_NOTIFY_GPIO:
  		break;
- 
+ 	case ACPI_HEST_NOTIFY_SEA:
+ 		if (!IS_ENABLED(CONFIG_ACPI_APEI_SEA)) {
+ 			pr_warn(GHES_PFX "Generic hardware error source: %d notified via SEA is not supported\n",
+ 				generic->header.source_id);
+ 			rc = -ENOTSUPP;
+ 			goto err;
+ 		}
+ 		break;
  	case ACPI_HEST_NOTIFY_NMI:
  		if (!IS_ENABLED(CONFIG_HAVE_ACPI_APEI_NMI)) {
  			pr_warn(GHES_PFX "Generic hardware error source: %d notified via NMI interrupt is not supported!\n",
@@@ -1027,17 -1161,16 +1163,19 @@@
  			goto err_edac_unreg;
  		}
  		break;
 +
  	case ACPI_HEST_NOTIFY_SCI:
 +	case ACPI_HEST_NOTIFY_GSIV:
 +	case ACPI_HEST_NOTIFY_GPIO:
  		mutex_lock(&ghes_list_mutex);
 -		if (list_empty(&ghes_sci))
 -			register_acpi_hed_notifier(&ghes_notifier_sci);
 -		list_add_rcu(&ghes->list, &ghes_sci);
 +		if (list_empty(&ghes_hed))
 +			register_acpi_hed_notifier(&ghes_notifier_hed);
 +		list_add_rcu(&ghes->list, &ghes_hed);
  		mutex_unlock(&ghes_list_mutex);
  		break;
- 
+ 	case ACPI_HEST_NOTIFY_SEA:
+ 		ghes_sea_add(ghes);
+ 		break;
  	case ACPI_HEST_NOTIFY_NMI:
  		ghes_nmi_add(ghes);
  		break;

--->8

The following changes since commit 3c2993b8c6143d8a5793746a54eba8f86f95240f:

  Linux 4.12-rc4 (2017-06-04 16:47:43 -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 425e1ed73e6574e4fe186ec82fd37213cbd47df0:

  arm64: fix endianness annotation for 'struct jit_ctx' and friends (2017-06-30 17:11:28 +0100)

----------------------------------------------------------------
arm64 updates for 4.13:

- RAS reporting via GHES/APEI (ACPI)
- Indirect ftrace trampolines for modules
- Improvements to kernel fault reporting
- Page poisoning
- Sigframe cleanups and preparation for SVE context
- Core dump fixes
- Sparse fixes (mainly relating to endianness)
- xgene SoC PMU v3 driver
- Misc cleanups and non-critical fixes

----------------------------------------------------------------
Amir Goldstein (4):
      xfs: use uuid_copy() helper to abstract uuid_t
      md: namespace private helper names
      xfs: use the common helper uuid_is_null()
      tmpfs: generate random sb->s_uuid

Andy Shevchenko (6):
      acpi, nfit: Switch to use new generic UUID API
      ACPI / APEI: Switch to use new generic UUID API
      ACPI / bus: Switch to use new generic UUID API
      ACPI / extlog: Switch to use new generic UUID API
      ACPI: Switch to use generic guid_t in acpi_evaluate_dsm()
      thermal: int340x_thermal: Switch to use new generic UUID API

Ard Biesheuvel (6):
      arm64: kernel: restrict /dev/mem read() calls to linear region
      arm64: ftrace: don't validate branch via PLT in ftrace_make_nop()
      arm64: ftrace: add support for far branches to dynamic ftrace
      drivers/char: kmem: disable on arm64
      fs/proc: kcore: use kcore_list type to check for vmalloc/module address
      arm64: mm: select CONFIG_ARCH_PROC_KCORE_TEXT

Arnd Bergmann (1):
      ras: mark stub functions as 'inline'

Arvind Yadav (2):
      arm: perf: make of_device_ids const
      arm64: cpuinfo: constify attribute_group structures.

Christoph Hellwig (21):
      uuid,afs: move struct uuid_v1 back into afs
      xfs: use uuid_be to implement the uuid_t type
      nfsd: namespace-prefix uuid_parse
      uuid: remove uuid_be defintions from the uapi header
      uuid: rename uuid types
      uuid: don't export guid_index and uuid_index
      uuid: hoist helpers uuid_equal() and uuid_copy() from xfs
      uuid: hoist uuid_is_null() helper from libnvdimm
      S390/sysinfo: use uuid_is_null instead of opencoding it
      xfs: remove uuid_getnodeuniq and xfs_uu_t
      block: remove blk_part_pack_uuid
      ima/policy: switch to use uuid_t
      fs: switch ->s_uuid to uuid_t
      overlayfs: use uuid_t instead of uuid_be
      partitions/ldm: switch to use uuid_t
      sysctl: switch to use uuid_t
      nvme: switch to uuid_t
      scsi_debug: switch to uuid_t
      MAINTAINERS: add uuid entry
      acpi: always include uuid.h
      thermal: int340x_thermal: fix compile after the UUID API switch

Dave Martin (11):
      arm64: signal: split frame link record from sigcontext structure
      arm64: signal: Refactor sigcontext parsing in rt_sigreturn
      arm64: signal: factor frame layout and population into separate passes
      arm64: signal: factor out signal frame record allocation
      arm64: ptrace: Fix VFP register dumping in compat coredumps
      arm64: ptrace: Flush FPSIMD regs back to thread_struct before reading
      arm64: ptrace: Flush user-RW TLS reg to thread_struct before reading
      arm64: signal: Allow expansion of the signal frame
      arm64: ptrace: Avoid setting compat FP[SC]R to garbage if get_user fails
      arm64: ptrace: Remove redundant overrun check from compat_vfp_set()
      arm64: ptrace: Fix incorrect get_user() use in compat_vfp_set()

Dong Bo (1):
      arm64: Preventing READ_IMPLIES_EXEC propagation

Dustin Brown (1):
      arm64: Export save_stack_trace_tsk()

Hoan Tran (3):
      perf: xgene: Parse PMU subnode from the match table
      perf: xgene: Move PMU leaf functions into function pointer structure
      perf: xgene: Add support for SoC PMU version 3

Jonathan (Zhixiong) Zhang (3):
      arm64: hwpoison: add VM_FAULT_HWPOISON[_LARGE] handling
      arm64: kconfig: allow support for memory failure handling
      acpi: apei: panic OS with fatal error status block

Kees Cook (1):
      arm64, vdso: Define vdso_{start,end} as array

Kefeng Wang (3):
      arm64: Call __show_regs directly
      arm64: Add dump_backtrace() in show_regs
      arm64: check return value of of_flat_dt_get_machine_name

Kristina Martsenko (3):
      arm64: mm: print out correct page table entries
      arm64: mm: don't print out page table entries on EL0 faults
      arm64: mm: print file name of faulting vma

Lorenzo Pieralisi (3):
      ARM64/PCI: Set root bus NUMA node on ACPI systems
      ARM64/irqchip: Update ACPI_IORT symbol selection logic
      ACPI/IORT: Remove iort_node_match()

Luc Van Oostenryck (13):
      arm64: pass machine size to sparse
      arm64: pass endianness info to sparse
      arm64: fix endianness annotation for debug-monitors.c
      arm64: fix endianness annotation in call_undef_hook()
      arm64: fix endianness annotation in aarch64_insn_read()
      arm64: fix endianness annotation for aarch64_insn_write()
      arm64: fix endianness annotation for reloc_insn_movw() & reloc_insn_imm()
      arm64: use readq() instead of readl() to read 64bit entry_point
      arm64: fix endianness annotation in acpi_parking_protocol.c
      arm64: add missing conversion to __wsum in ip_fast_csum()
      arm64: fix endianness annotation in get_kaslr_seed()
      arm64: fix endianness annotation for __apply_alternatives()/get_alt_insn()
      arm64: fix endianness annotation for 'struct jit_ctx' and friends

Mark Rutland (3):
      drivers/perf: commonise PERF_EVENTS dependency
      arm64: dump cpu_hwcaps at panic time
      arm64: ftrace: fix !CONFIG_ARM64_MODULE_PLTS kernels

Olav Haugan (1):
      arm64/dma-mapping: Remove extraneous null-pointer checks

Punit Agrawal (2):
      arm64: hugetlb: Fix huge_pte_offset to return poisoned page table entries
      arm64: mm: Update perf accounting to handle poison faults

Shaokun Zhang (1):
      arm64: perf: Extend event config for ARMv8.1

Tobias Klauser (1):
      arm64: mm: explicity include linux/vmalloc.h

Tyler Baicar (11):
      acpi: apei: read ack upon ghes record consumption
      ras: acpi/apei: cper: add support for generic data v3 structure
      cper: add timestamp print to CPER status printing
      efi: parse ARM processor error
      arm64: exception: handle Synchronous External Abort
      acpi: apei: handle SEA notification type for ARMv8
      efi: print unrecognized CPER section
      ras: acpi / apei: generate trace event for unrecognized CPER section
      trace, ras: add ARM processor error trace event
      arm/arm64: KVM: add guest SEA support
      acpi: apei: check for pending errors when probing GHES entries

Will Deacon (8):
      arm64: cpufeature: Don't dump useless backtrace on CPU_OUT_OF_SPEC
      arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage
      arm64: cpufeature: Fix CPU_OUT_OF_SPEC taint for uniform systems
      arm64: fault: Print info about page table structure when dumping pte
      arm64: ftrace: fix building without CONFIG_MODULES
      Merge branch 'uuid-types' of git://git.infradead.org/users/hch/uuid into aarch64/for-next/ras-apei
      Merge branch 'perf/updates' into aarch64/for-next/core
      Merge branch 'aarch64/for-next/ras-apei' into aarch64/for-next/core

 MAINTAINERS                                        |  11 +
 arch/arm/include/asm/kvm_arm.h                     |  10 +
 arch/arm/include/asm/system_misc.h                 |   5 +
 arch/arm/kernel/perf_event_v6.c                    |   2 +-
 arch/arm64/Kconfig                                 |   9 +-
 arch/arm64/Makefile                                |   7 +-
 arch/arm64/include/asm/checksum.h                  |   2 +-
 arch/arm64/include/asm/dma-mapping.h               |   2 -
 arch/arm64/include/asm/elf.h                       |   6 +
 arch/arm64/include/asm/esr.h                       |   1 +
 arch/arm64/include/asm/futex.h                     |   8 +-
 arch/arm64/include/asm/kvm_arm.h                   |  10 +
 arch/arm64/include/asm/module.h                    |   3 +
 arch/arm64/include/asm/pgtable.h                   |   2 +-
 arch/arm64/include/asm/processor.h                 |   3 +
 arch/arm64/include/asm/stacktrace.h                |   1 +
 arch/arm64/include/asm/system_misc.h               |   4 +-
 arch/arm64/include/uapi/asm/sigcontext.h           |  55 ++
 arch/arm64/kernel/Makefile                         |   3 +
 arch/arm64/kernel/acpi_parking_protocol.c          |   6 +-
 arch/arm64/kernel/alternative.c                    |   8 +-
 arch/arm64/kernel/cpufeature.c                     |  25 +-
 arch/arm64/kernel/cpuinfo.c                        |   2 +-
 arch/arm64/kernel/debug-monitors.c                 |  14 +-
 arch/arm64/kernel/ftrace-mod.S                     |  18 +
 arch/arm64/kernel/ftrace.c                         | 103 +++-
 arch/arm64/kernel/insn.c                           |   7 +-
 arch/arm64/kernel/kaslr.c                          |   2 +-
 arch/arm64/kernel/module.c                         |  20 +-
 arch/arm64/kernel/pci.c                            |   3 +
 arch/arm64/kernel/perf_event.c                     |   2 +-
 arch/arm64/kernel/probes/kprobes.c                 |   4 +-
 arch/arm64/kernel/process.c                        |   9 +-
 arch/arm64/kernel/ptrace.c                         |  39 +-
 arch/arm64/kernel/setup.c                          |   3 +
 arch/arm64/kernel/signal.c                         | 413 +++++++++++--
 arch/arm64/kernel/stacktrace.c                     |   1 +
 arch/arm64/kernel/traps.c                          |  18 +-
 arch/arm64/kernel/vdso.c                           |  10 +-
 arch/arm64/mm/dma-mapping.c                        |   9 -
 arch/arm64/mm/fault.c                              | 215 +++++--
 arch/arm64/mm/hugetlbpage.c                        |  29 +-
 arch/arm64/mm/mmap.c                               |  19 +-
 arch/arm64/mm/mmu.c                                |   1 +
 arch/arm64/net/bpf_jit_comp.c                      |   6 +-
 arch/s390/include/asm/sysinfo.h                    |   4 +-
 arch/s390/kernel/sysinfo.c                         |   2 +-
 block/partitions/ldm.c                             |  10 +-
 block/partitions/ldm.h                             |   6 +-
 drivers/acpi/acpi_extlog.c                         |  20 +-
 drivers/acpi/apei/Kconfig                          |  15 +
 drivers/acpi/apei/ghes.c                           | 214 ++++++-
 drivers/acpi/apei/hest.c                           |   7 +-
 drivers/acpi/arm64/iort.c                          |  15 -
 drivers/acpi/bus.c                                 |  29 +-
 drivers/acpi/nfit/core.c                           |  54 +-
 drivers/acpi/nfit/nfit.h                           |   3 +-
 drivers/acpi/utils.c                               |  16 +-
 drivers/char/Kconfig                               |   2 +
 drivers/char/tpm/tpm_crb.c                         |   9 +-
 drivers/char/tpm/tpm_ppi.c                         |  20 +-
 drivers/firmware/efi/cper.c                        | 204 +++++-
 drivers/gpu/drm/i915/intel_acpi.c                  |  14 +-
 drivers/gpu/drm/nouveau/nouveau_acpi.c             |  20 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c     |   9 +-
 drivers/hid/i2c-hid/i2c-hid.c                      |   9 +-
 drivers/iommu/dmar.c                               |  11 +-
 drivers/irqchip/Kconfig                            |   1 -
 drivers/md/md.c                                    |   8 +-
 drivers/mmc/host/sdhci-pci-core.c                  |   9 +-
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c |  15 +-
 drivers/nvdimm/btt_devs.c                          |   9 +-
 drivers/nvme/host/fabrics.c                        |   8 +-
 drivers/nvme/host/fabrics.h                        |   2 +-
 drivers/nvme/host/fc.c                             |   3 +-
 drivers/nvme/target/nvmet.h                        |   1 +
 drivers/pci/pci-acpi.c                             |  13 +-
 drivers/pci/pci-label.c                            |   4 +-
 drivers/perf/Kconfig                               |   9 +-
 drivers/perf/xgene_pmu.c                           | 684 +++++++++++++++++++--
 drivers/ras/ras.c                                  |  16 +-
 drivers/scsi/scsi_debug.c                          |  10 +-
 drivers/thermal/int340x_thermal/int3400_thermal.c  |   8 +-
 drivers/usb/dwc3/dwc3-pci.c                        |  10 +-
 drivers/usb/host/xhci-pci.c                        |   9 +-
 drivers/usb/misc/ucsi.c                            |   6 +-
 drivers/usb/typec/typec_wcove.c                    |   8 +-
 drivers/xen/tmem.c                                 |   6 +-
 fs/afs/cmservice.c                                 |  16 +-
 fs/afs/internal.h                                  |  11 +-
 fs/afs/main.c                                      |   2 +-
 fs/ext4/super.c                                    |   2 +-
 fs/f2fs/super.c                                    |   2 +-
 fs/gfs2/ops_fstype.c                               |   2 +-
 fs/gfs2/sys.c                                      |  22 +-
 fs/nfsd/export.c                                   |   4 +-
 fs/ocfs2/super.c                                   |   2 +-
 fs/overlayfs/copy_up.c                             |   7 +-
 fs/overlayfs/namei.c                               |   2 +-
 fs/overlayfs/overlayfs.h                           |   2 +-
 fs/proc/kcore.c                                    |   2 +-
 fs/xfs/Makefile                                    |   3 +-
 fs/xfs/uuid.c                                      |  63 --
 fs/xfs/uuid.h                                      |  35 --
 fs/xfs/xfs_inode_item.c                            |   8 +-
 fs/xfs/xfs_linux.h                                 |   2 +-
 fs/xfs/xfs_log_recover.c                           |   6 +-
 fs/xfs/xfs_mount.c                                 |  16 +-
 include/acpi/acpi_bus.h                            |  11 +-
 include/acpi/ghes.h                                |  48 +-
 include/linux/acpi.h                               |   4 +-
 include/linux/acpi_iort.h                          |   2 -
 include/linux/cleancache.h                         |   2 +-
 include/linux/cper.h                               |  54 ++
 include/linux/fs.h                                 |   5 +-
 include/linux/genhd.h                              |  11 -
 include/linux/nvme-fc.h                            |   3 +-
 include/linux/nvme.h                               |   3 +-
 include/linux/pci-acpi.h                           |   2 +-
 include/linux/ras.h                                |  17 +
 include/linux/uuid.h                               | 101 ++-
 include/ras/ras_event.h                            |  90 +++
 include/uapi/linux/uuid.h                          |  28 +-
 kernel/sysctl_binary.c                             |   4 +-
 lib/test_uuid.c                                    |  36 +-
 lib/uuid.c                                         |  33 +-
 lib/vsprintf.c                                     |   4 +-
 mm/cleancache.c                                    |   2 +-
 mm/shmem.c                                         |   2 +
 security/integrity/evm/evm_crypto.c                |   2 +-
 security/integrity/ima/ima_policy.c                |  12 +-
 sound/soc/intel/skylake/skl-nhlt.c                 |   7 +-
 tools/testing/nvdimm/test/iomap.c                  |   6 +-
 tools/testing/nvdimm/test/nfit.c                   |   2 +-
 tools/testing/nvdimm/test/nfit_test.h              |   4 +-
 virt/kvm/arm/mmu.c                                 |  36 +-
 136 files changed, 2562 insertions(+), 840 deletions(-)
 create mode 100644 arch/arm64/kernel/ftrace-mod.S
 delete mode 100644 fs/xfs/uuid.c
 delete mode 100644 fs/xfs/uuid.h



More information about the linux-arm-kernel mailing list