Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 23 Mar 2024 16:17:03 +0000 (09:17 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 23 Mar 2024 16:17:03 +0000 (09:17 -0700)
Pull ARM updates from Russell King:

 - remove a misuse of kernel-doc comment

 - use "Call trace:" for backtraces like other architectures

 - implement copy_from_kernel_nofault_allowed() to fix a LKDTM test

 - add a "cut here" line for prefetch aborts

 - remove unnecessary Kconfing entry for FRAME_POINTER

 - remove iwmmxy support for PJ4/PJ4B cores

 - use bitfield helpers in ptrace to improve readabililty

 - check if folio is reserved before flushing

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
  ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses
  ARM: 9354/1: ptrace: Use bitfield helpers
  ARM: 9352/1: iwmmxt: Remove support for PJ4/PJ4B cores
  ARM: 9353/1: remove unneeded entry for CONFIG_FRAME_POINTER
  ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
  ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
  ARM: 9349/1: unwind: Add missing "Call trace:" line
  ARM: 9334/1: mm: init: remove misuse of kernel-doc comment

1  2 
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/kernel/Makefile
arch/arm/mm/fault.c
arch/arm/mm/init.c

diff --combined arch/arm/Kconfig
index 702d97a9c30471a59dc6d2d3bfaf8436621d63df,0d4e316a389e03f686bc2e093b6249fe881d16c2..b14aed3a17abb6732e0b87d3ba1b4edc260e7f0e
@@@ -5,7 -5,6 +5,7 @@@ config AR
        select ARCH_32BIT_OFF_T
        select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE if HAVE_KRETPROBES && FRAME_POINTER && !ARM_UNWIND
        select ARCH_HAS_BINFMT_FLAT
 +      select ARCH_HAS_CPU_CACHE_ALIASING
        select ARCH_HAS_CPU_FINALIZE_INIT if MMU
        select ARCH_HAS_CURRENT_STACK_POINTER
        select ARCH_HAS_DEBUG_VIRTUAL if MMU
@@@ -30,7 -29,7 +30,7 @@@
        select ARCH_HAVE_NMI_SAFE_CMPXCHG if CPU_V7 || CPU_V7M || CPU_V6K
        select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_KEEP_MEMBLOCK
 -      select ARCH_HAS_UBSAN_SANITIZE_ALL
 +      select ARCH_HAS_UBSAN
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
        select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
        select HAVE_MOD_ARCH_SPECIFIC
        select HAVE_NMI
        select HAVE_OPTPROBES if !THUMB2_KERNEL
 +      select HAVE_PAGE_SIZE_4KB
        select HAVE_PCI if MMU
        select HAVE_PERF_EVENTS
        select HAVE_PERF_REGS
@@@ -505,8 -503,8 +505,8 @@@ source "arch/arm/mm/Kconfig
  
  config IWMMXT
        bool "Enable iWMMXt support"
-       depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B
-       default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B
+       depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
+       default y if PXA27x || PXA3xx || ARCH_MMP
        help
          Enable support for iWMMXt context switching at run time if
          running on a CPU that supports it.
diff --combined arch/arm/Kconfig.debug
index f1fc278081d0354d1cf027f3c73179f2654b32c4,7374483591f6a4daf428bc7c2db904472f3eaef8..7f47b4f335c3d2cfe459d15a83322625b8fa6edc
@@@ -17,7 -17,7 +17,7 @@@ config ARM_PTDUMP_DEBUGF
          kernel.
          If in doubt, say "N"
  
 -config DEBUG_WX
 +config ARM_DEBUG_WX
        bool "Warn on W+X mappings at boot"
        depends on MMU
        select ARM_PTDUMP_CORE
@@@ -90,9 -90,6 +90,6 @@@ config BACKTRACE_VERBOS
          In most cases, say N here, unless you are intending to debug the
          kernel and have access to the kernel binary image.
  
- config FRAME_POINTER
-       bool
  config DEBUG_USER
        bool "Verbose user fault messages"
        help
diff --combined arch/arm/kernel/Makefile
index 6a9de826ffd3c035d938b8177d06ab1476cbf951,ae2f2b2b4e5abca2f13cf5c13fbeceea6fe8c866..89a77e3f51d20a09a2136a872fef5ab347f23acf
@@@ -60,7 -60,6 +60,7 @@@ obj-$(CONFIG_DYNAMIC_FTRACE)  += ftrace.
  obj-$(CONFIG_FUNCTION_GRAPH_TRACER)   += ftrace.o insn.o patch.o
  obj-$(CONFIG_JUMP_LABEL)      += jump_label.o insn.o patch.o
  obj-$(CONFIG_KEXEC_CORE)      += machine_kexec.o relocate_kernel.o
 +obj-$(CONFIG_VMCORE_INFO)     += vmcore_info.o
  # Main staffs in KPROBES are in arch/arm/probes/ .
  obj-$(CONFIG_KPROBES)         += patch.o insn.o
  obj-$(CONFIG_OABI_COMPAT)     += sys_oabi-compat.o
@@@ -76,8 -75,6 +76,6 @@@ obj-$(CONFIG_HAVE_HW_BREAKPOINT)      += hw_
  obj-$(CONFIG_CPU_XSCALE)      += xscale-cp0.o
  obj-$(CONFIG_CPU_XSC3)                += xscale-cp0.o
  obj-$(CONFIG_CPU_MOHAWK)      += xscale-cp0.o
- obj-$(CONFIG_CPU_PJ4)         += pj4-cp0.o
- obj-$(CONFIG_CPU_PJ4B)                += pj4-cp0.o
  obj-$(CONFIG_IWMMXT)          += iwmmxt.o
  obj-$(CONFIG_PERF_EVENTS)     += perf_regs.o perf_callchain.o
  obj-$(CONFIG_HW_PERF_EVENTS)  += perf_event_xscale.o perf_event_v6.o \
diff --combined arch/arm/mm/fault.c
index 07565b593ed681b0f1675f8ef7a934c1ae53dc51,bc5b959b6f90ba291987a3d52dcab7ff329670e3..439dc6a26bb982ba7b085ca924ba4fc862ac61cc
  
  #include "fault.h"
  
+ bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)
+ {
+       unsigned long addr = (unsigned long)unsafe_src;
+       return addr >= TASK_SIZE && ULONG_MAX - addr >= size;
+ }
  #ifdef CONFIG_MMU
  
  /*
@@@ -298,8 -305,6 +305,8 @@@ do_page_fault(unsigned long addr, unsig
                goto done;
        }
        count_vm_vma_lock_event(VMA_LOCK_RETRY);
 +      if (fault & VM_FAULT_MAJOR)
 +              flags |= FAULT_FLAG_TRIED;
  
        /* Quick path to respond to signals */
        if (fault_signal_pending(fault, regs)) {
@@@ -588,6 -593,7 +595,7 @@@ do_PrefetchAbort(unsigned long addr, un
        if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
                return;
  
+       pr_alert("8<--- cut here ---\n");
        pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
                inf->name, ifsr, addr);
  
diff --combined arch/arm/mm/init.c
index 4c3d78691279d3e4022bce8b2e8dde8df916a19f,4634db84c5af4ade4533b17b7af1ba3911cea5dc..e8c6f4be0ce1987b66208d0da1d2b942d56dacff
@@@ -418,7 -418,7 +418,7 @@@ static void set_section_perms(struct se
  
  }
  
- /**
+ /*
   * update_sections_early intended to be called only through stop_machine
   * framework and executed by only one CPU while all other CPUs will spin and
   * wait, so no locking is required in this function.
@@@ -458,7 -458,7 +458,7 @@@ static int __mark_rodata_ro(void *unuse
  void mark_rodata_ro(void)
  {
        stop_machine(__mark_rodata_ro, NULL, NULL);
 -      debug_checkwx();
 +      arm_debug_checkwx();
  }
  
  #else