]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge branch 'for-next/mops' into for-next/core
authorCatalin Marinas <catalin.marinas@arm.com>
Thu, 14 Nov 2024 12:07:28 +0000 (12:07 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 14 Nov 2024 12:07:28 +0000 (12:07 +0000)
* for-next/mops:
  : More FEAT_MOPS (memcpy instructions) uses - in-kernel routines
  arm64: mops: Document requirements for hypervisors
  arm64: lib: Use MOPS for copy_page() and clear_page()
  arm64: lib: Use MOPS for memcpy() routines
  arm64: mops: Document booting requirement for HCR_EL2.MCE2
  arm64: mops: Handle MOPS exceptions from EL1
  arm64: probes: Disable kprobes/uprobes on MOPS instructions

# Conflicts:
# arch/arm64/kernel/entry-common.c

1  2 
Documentation/arch/arm64/booting.rst
Documentation/arch/arm64/index.rst
arch/arm64/Kconfig
arch/arm64/include/asm/exception.h
arch/arm64/include/asm/insn.h
arch/arm64/kernel/debug-monitors.c
arch/arm64/kernel/entry-common.c
arch/arm64/kernel/probes/decode-insn.c
arch/arm64/kernel/traps.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index fe74813009bd4c4301d84f94dad733ab97984aed,9d174cd541ef22cb548c0196fbe6af62e8f8deb4..b260ddc4d3e9ad80ca1f5480c1be96523233a126
@@@ -463,15 -463,15 +463,24 @@@ static void noinstr el1_bti(struct pt_r
        exit_to_kernel_mode(regs);
  }
  
 +static void noinstr el1_gcs(struct pt_regs *regs, unsigned long esr)
 +{
 +      enter_from_kernel_mode(regs);
 +      local_daif_inherit(regs);
 +      do_el1_gcs(regs, esr);
 +      local_daif_mask();
 +      exit_to_kernel_mode(regs);
 +}
 +
+ static void noinstr el1_mops(struct pt_regs *regs, unsigned long esr)
+ {
+       enter_from_kernel_mode(regs);
+       local_daif_inherit(regs);
+       do_el1_mops(regs, esr);
+       local_daif_mask();
+       exit_to_kernel_mode(regs);
+ }
  static void noinstr el1_dbg(struct pt_regs *regs, unsigned long esr)
  {
        unsigned long far = read_sysreg(far_el1);
@@@ -514,9 -514,9 +523,12 @@@ asmlinkage void noinstr el1h_64_sync_ha
        case ESR_ELx_EC_BTI:
                el1_bti(regs, esr);
                break;
 +      case ESR_ELx_EC_GCS:
 +              el1_gcs(regs, esr);
 +              break;
+       case ESR_ELx_EC_MOPS:
+               el1_mops(regs, esr);
+               break;
        case ESR_ELx_EC_BREAKPT_CUR:
        case ESR_ELx_EC_SOFTSTP_CUR:
        case ESR_ELx_EC_WATCHPT_CUR:
Simple merge