2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/arch/arm/mm
Linus Torvalds aef7457540 ARM fixes for 6.16-rc1
- fix arch_memremap_can_ram_remap() which incorrectly passed a PFN to
   memblock_is_map_memory rather than the actual address.
 - "Disallow kernel mode NEON when IRQs are disabled" - this needs a
   better explanation.
 
   "To avoid having to preserve/restore kernel mode NEON state when
   such a softirq is taken softirqs are now disabled when using the
   NEON from task context." should explain that it's nested kernel
   mode. In other words, softirqs from user mode are fine, because
   the context will be preserved. softirqs from kernel mode may
   be from a context that has already saved the user NEON state, and
   thus we would need to preserve the NEON state for the parent kernel
   mode context, and this we don't allow.
 
   The problem occurs when the kernel context disables hard IRQs, and
   then uses NEON. When it's finished, and restores the userspace NEON
   state, we call local_bh_enable() with hard IRQs disabled, which
   causes a warning.
 
   This commit addresses that by disallowing the use of NEON with hard
   IRQs disabled.
 
   https://lore.kernel.org/all/20250516231858.27899-4-ebiggers@kernel.org/T/#m104841b6e9346b1814c8b0fb9f2340551b0cd3e8
   has some further context.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAmg9k5MACgkQ9OeQG+St
 rGTsIg//R8AysyZIHWCzO+j7UFZPQ+jUZ0Qf0NMA3Ss/Bh724BtDWIMRo30/ADtX
 nwJhGnFVenr9jdGuUBmE8R25QyfZIz2U45hGVqUgSL9W96A8PPsuaR7oXhvezq68
 Wj+UUTzem4l1bgK416qEROPgY/dtYCL5AbPA+SdH+LSMvS9phkhT6PkGJRC14tZ9
 kLNR4PyA9/DC6N6wIU8v9pWezSoOBn/ISBpb67BB0OzZPlmgoJJOXbSNzIHaJc4C
 YjjJCHRmZL2w/U4HyEc8qXyHMPggEKtDas6mwrpxV/fjoReC/vk3tvuRxy1Mt1Ny
 BIIOA/Hauz8O9+aqfdqABK92tMiLx7NA9bWQDndIisfD/nRFyrpFDUbw1+d4EemU
 qzDmKSNWK9nsC28kE8F5M4XLacHu4AQN10Ktjr5LXGoMmPfDz0xssd2uDJkbL4Zq
 wHVea4HPX8Ykrv6yg+iRZp54z25+ckD+kf93zhutabaa/zVdAHAU9Lk/Uqm2G1R2
 5huER0vvLJF3+mYu9mRjodssOUsEVwPbBuGiwJ7DY2a6faexuJv/sU5ZyHhwHb/B
 TjaYbektcllYWly+KN33XzZXuVVpY9DbRq/2MCFbxMYjHxGjj7QiytTm8tI6VX26
 yi8CQ+8/0SXoBPaDjb2y4n6qIxcjiBcdQ8DxDbA9Od0glzJQUhE=
 =V4ew
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux

Pull ARM fixes from Russell King:

 - Fix arch_memremap_can_ram_remap() which incorrectly passed a PFN to
   memblock_is_map_memory rather than the actual address.

 - Disallow kernel mode NEON when IRQs are disabled

   Explanation:

     "To avoid having to preserve/restore kernel mode NEON state when
      such a softirq is taken softirqs are now disabled when using the
      NEON from task context."

   should explain that it's nested kernel mode.

   In other words, softirqs from user mode are fine, because the context
   will be preserved. softirqs from kernel mode may be from a context
   that has already saved the user NEON state, and thus we would need to
   preserve the NEON state for the parent kernel mode context, and this
   we don't allow.

   The problem occurs when the kernel context disables hard IRQs, and
   then uses NEON. When it's finished, and restores the userspace NEON
   state, we call local_bh_enable() with hard IRQs disabled, which
   causes a warning.

   This commit addresses that by disallowing the use of NEON with hard
   IRQs disabled.

	https://lore.kernel.org/all/20250516231858.27899-4-ebiggers@kernel.org/T/#m104841b6e9346b1814c8b0fb9f2340551b0cd3e8

   has some further context

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux:
  ARM: 9446/1: Disallow kernel mode NEON when IRQs are disabled
  ARM: 9447/1: arm/memremap: fix arch_memremap_can_ram_remap()
2025-06-05 11:33:09 -07:00
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
abort-ev7.S ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
cache-b15-rac.c ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
cache-fa.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-feroceon-l2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 1) 2022-06-10 14:51:35 +02:00
cache-l2x0-pmu.c ARM: 8611/1: l2x0: Switch to use hrtimer_setup() 2025-02-18 10:32:31 +01:00
cache-l2x0.c ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values 2020-09-15 14:35:53 +01:00
cache-nop.S ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
cache-tauros2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 1) 2022-06-10 14:51:35 +02:00
cache-tauros3.h
cache-uniphier.c ARM: uniphier: fix cache kernel-doc warnings 2023-09-27 11:02:14 +02:00
cache-v4.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v4wb.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v4wt.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v6.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v7.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v7m.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-xsc3l2.c
cache.c ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
context.c ARM: mm: make vmalloc_seq handling SMP safe 2022-01-25 09:53:52 +01:00
copypage-fa.c
copypage-feroceon.c ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
copypage-v4mc.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
copypage-v4wb.c
copypage-v4wt.c
copypage-v6.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
copypage-xsc3.c ARM: PXA: fix multi-cpu build of xsc3 2022-05-07 22:56:16 +02:00
copypage-xscale.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
dma-mapping-nommu.c ARM: 9435/1: ARM/nommu: Fix typo "absence" 2024-11-12 23:51:05 +00:00
dma-mapping.c ARM: 9418/1: dma-mapping: Use iommu_paging_domain_alloc() 2024-09-04 15:02:07 +01:00
dma.h
dump.c mm/treewide: replace pmd_large() with pmd_leaf() 2024-03-06 13:04:19 -08:00
extable.c
fault-armv.c arm: pgtable: fix NULL pointer dereference issue 2025-03-05 21:36:12 -08:00
fault.c ARM: Remove address checking for MMUless devices 2024-07-09 08:53:59 -07:00
fault.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
flush.c mm: rename page->index to page->__folio_index 2025-05-31 22:46:06 -07:00
fsr-2level.c
fsr-3level.c
idmap.c ARM: 9420/1: smp: Fix SMP for xip kernels 2024-11-12 16:38:47 +00:00
init.c arch, mm: make releasing of memory to page allocator more explicit 2025-03-17 22:06:53 -07:00
iomap.c ARM: 8923/1: mm: include <asm/vga.h> for vga_base 2019-10-31 16:58:54 +00:00
ioremap.c ARM: 9447/1: arm/memremap: fix arch_memremap_can_ram_remap() 2025-04-16 16:27:18 +01:00
kasan_init.c ARM: 9329/1: kasan: Use memblock_alloc_try_nid_raw for shadow page 2023-12-05 11:42:15 +00:00
Kconfig arm: vdso: Switch to generic storage implementation 2025-02-21 09:54:02 +01:00
l2c-common.c
l2c-l2x0-resume.S
Makefile The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
mm.h arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
mmap.c mm: make arch_get_unmapped_area() take vm_flags by default 2024-09-09 16:39:13 -07:00
mmu.c mm: pass mm down to pagetable_{pte,pmd}_ctor 2025-05-11 17:48:21 -07:00
nommu.c mm/memremap: Pass down MEMREMAP_* flags to arch_memremap_wb() 2025-02-21 15:05:38 +01:00
pabort-legacy.S
pabort-v6.S
pabort-v7.S
pageattr.c minmax: add in_range() macro 2023-08-24 16:20:18 -07:00
pgd.c asm-generic: pgalloc: provide generic __pgd_{alloc,free} 2025-01-25 20:22:24 -08:00
physaddr.c ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
pmsa-v7.c ARM: 9069/1: NOMMU: Fix conversion for_each_membock() to for_each_mem_range() 2021-03-25 10:25:20 +00:00
pmsa-v8.c ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
proc-arm7tdmi.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm9tdmi.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm720.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm740.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm920.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm922.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm925.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm926.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm940.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm946.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1020.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1020e.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1022.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1026.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-fa526.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-feroceon.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-macros.S ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
proc-mohawk.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-sa110.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-sa1100.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-syms.c
proc-v6.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-2level.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-3level.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-bugs.c ARM: 9213/1: Print message about disabled Spectre workarounds only once 2022-07-06 22:44:49 +01:00
proc-v7.S ARM: 9434/1: cfi: Fix compilation corner case 2024-11-12 23:51:05 +00:00
proc-v7m.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-xsc3.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-xscale.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc.c ARM: 9408/1: mm: CFI: Fix some erroneous reset prototypes 2024-07-02 09:19:14 +01:00
ptdump_debugfs.c ARM: 9074/1: ptdump: convert to DEFINE_SHOW_ATTRIBUTE 2021-04-18 19:15:13 +01:00
pv-fixup-asm.S ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
tlb-fa.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4wb.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4wbi.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v6.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v7.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb.c ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00