kernel-hacking-2024-linux-s.../arch/arm/mm
Hugh Dickins 69b0475456 [PATCH] mm: arm ready for split ptlock
Prepare arm for the split page_table_lock: three issues.

Signal handling's preserve and restore of iwmmxt context currently involves
reading and writing that context to and from user space, while holding
page_table_lock to secure the user page(s) against kswapd.  If we split the
lock, then the structure might span two pages, secured by to read into and
write from a kernel stack buffer, copying that out and in without locking (the
structure is 160 bytes in size, and here we're near the top of the kernel
stack).  Or would the overhead be noticeable?

arm_syscall's cmpxchg emulation use pte_offset_map_lock, instead of
pte_offset_map and mm-wide page_table_lock; and strictly, it should now also
take mmap_sem before descending to pmd, to guard against another thread
munmapping, and the page table pulled out beneath this thread.

Updated two comments in fault-armv.c.  adjust_pte is interesting, since its
modification of a pte in one part of the mm depends on the lock held when
calling update_mmu_cache for a pte in some other part of that mm.  This can't
be done with a split page_table_lock (and we've already taken the lowest lock
in the hierarchy here): so we'll have to disable split on arm, unless
CONFIG_CPU_CACHE_VIPT to ensures adjust_pte never used.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-29 21:40:42 -07:00
..
abort-ev4.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
abort-ev4t.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
abort-ev5t.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
abort-ev5tj.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
abort-ev6.S [ARM] 2943/1: Clear the exclusive monitor in v6_early_abort 2005-10-02 22:34:35 +01:00
abort-lv4t.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
abort-macro.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
alignment.c [ARM] 2969/1: miscellaneous whitespace cleanup 2005-10-12 19:58:10 +01:00
blockops.c [PATCH] ARM: 2784/1: Fix the block cache flush operation range 2005-07-03 17:53:25 +01:00
cache-v3.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cache-v4.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cache-v4wb.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cache-v4wt.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cache-v6.S [ARM] 2940/1: Fix BTB entry flush in arch/arm/mm/cache-v6.S 2005-09-30 16:09:17 +01:00
consistent.c [PATCH] mm: init_mm without ptlock 2005-10-29 21:40:40 -07:00
copypage-v3.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
copypage-v4mc.c [PATCH] ARM: Fix build error 2005-05-16 23:36:22 +01:00
copypage-v4wb.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
copypage-v4wt.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
copypage-v6.c [PATCH] ARM: Add common CACHE_COLOUR macro 2005-06-20 11:31:09 +01:00
copypage-xscale.c [PATCH] ARM: Fix Xscale copy_page implementation 2005-06-08 15:28:24 +01:00
discontig.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
extable.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fault-armv.c [PATCH] mm: arm ready for split ptlock 2005-10-29 21:40:42 -07:00
fault.c [ARM] Prevent deadlock in page fault handler 2005-09-20 17:52:13 +01:00
fault.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flush.c [ARM] 2939/1: Fix compilation error in arch/arm/mm/flush.c 2005-09-30 16:07:04 +01:00
init.c [ARM] 3059/1: fix XIP support 2005-10-29 16:28:29 +01:00
ioremap.c [PATCH] mm: init_mm without ptlock 2005-10-29 21:40:40 -07:00
Kconfig [ARM] 2954/1: Allow D and I cache and branch prediction disabling for ARMv6 2005-10-05 23:06:36 +01:00
Makefile [PATCH] ARM: Fix Xscale copy_page implementation 2005-06-08 15:28:24 +01:00
mm-armv.c [PATCH] mm: arches skip ptlock 2005-10-29 21:40:40 -07:00
mmap.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
mmu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
proc-arm6_7.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm720.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm920.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm922.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm925.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm926.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm1020.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm1020e.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm1022.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-arm1026.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-macros.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
proc-sa110.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-sa1100.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
proc-syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
proc-v6.S [ARM] 3024/1: Add cpu_v6_proc_fin 2005-10-19 23:00:56 +01:00
proc-xscale.S [ARM] 2926/1: .proc.info - postfix section with .init for make buildcheck 2005-09-20 16:35:03 +01:00
tlb-v3.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
tlb-v4.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
tlb-v4wb.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
tlb-v4wbi.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
tlb-v6.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00