linux/arch/powerpc/mm
Benjamin Herrenschmidt b991f05f13 [POWERPC] Fix deadlock with mmu_hash_lock in hash_page_sync
hash_page_sync() takes and releases the low level mmu hash
lock in order to sync with other processors disposing of page
tables.  Because that lock can be needed to service hash misses
triggered by interrupt handlers, taking it must be done with
interrupts off.  However, hash_page_sync() appears to be called
with interrupts enabled, thus causing occasional deadlocks.

We fix it by making sure hash_page_sync() masks interrupts while
holding the lock.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-04-03 22:11:11 +11:00
..
40x_mmu.c [POWERPC] ppc405 Fix arithmatic rollover bug when memory size under 16M 2007-11-01 07:15:59 -05:00
44x_mmu.c [POWERPC] 4xx: Deal with 44x virtually tagged icache 2007-11-01 07:15:30 -05:00
fault.c [POWERPC] Make setjmp/longjmp code usable outside of xmon 2008-01-25 22:52:50 +11:00
fsl_booke_mmu.c [POWERPC] 85xx: Respect KERNELBASE, PAGE_OFFSET, and PHYSICAL_START on e500 2008-01-23 19:34:36 -06:00
hash_low_32.S [POWERPC] Fix deadlock with mmu_hash_lock in hash_page_sync 2008-04-03 22:11:11 +11:00
hash_low_64.S [POWERPC] Provide a way to protect 4k subpages when using 64k pages 2008-01-24 10:06:01 +11:00
hash_native_64.c [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
hash_utils_64.c [POWERPC] Don't use 64k pages for ioremap on pSeries 2008-03-24 17:41:22 +11:00
hugetlbpage.c [POWERPC] Add hugepagesz boot-time parameter 2008-01-17 14:57:36 +11:00
init_32.c [POWERPC] 8xx: Set initial memory limit. 2007-10-03 20:36:36 -05:00
init_64.c [POWERPC] Silence an annoying boot message 2007-11-13 16:23:47 +11:00
lmb.c [POWERPC] Fix handling of memreserve if the range lands in highmem 2008-01-23 19:29:08 -06:00
Makefile [POWERPC] Provide a way to protect 4k subpages when using 64k pages 2008-01-24 10:06:01 +11:00
mem.c [POWERPC] Add arch-specific walk_memory_remove() for 64-bit powerpc 2008-02-08 19:52:48 +11:00
mmap.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
mmu_context_32.c [POWERPC] Remove the dregs of APUS support from arch/powerpc 2007-06-14 22:30:15 +10:00
mmu_context_64.c [POWERPC] Tidy up CONFIG_PPC_MM_SLICES code 2007-08-17 11:01:59 +10:00
mmu_decl.h [POWERPC] Fix 8xx build breakage due to _tlbie changes 2007-11-20 18:42:00 +11:00
numa.c Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-02-07 09:02:26 -08:00
pgtable_32.c CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable_64.c [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
ppc_mmu_32.c [POWERPC] Kill typedef-ed structs for hash PTEs and BATs 2007-06-14 22:30:16 +10:00
slb.c [POWERPC] Fix PMU + soft interrupt disable bug 2008-03-20 10:14:55 +11:00
slb_low.S [POWERPC] Use SLB size from the device tree 2007-12-11 13:45:56 +11:00
slice.c spin_lock_unlocked cleanups 2007-10-17 08:43:01 -07:00
stab.c [POWERPC] Fix build failure on legacy iSeries 2007-11-20 11:37:39 +11:00
subpage-prot.c [POWERPC] Provide a way to protect 4k subpages when using 64k pages 2008-01-24 10:06:01 +11:00
tlb_32.c powerpc: tlb_32.c build fix 2007-07-21 17:49:16 -07:00
tlb_64.c [POWERPC] Fix CONFIG_SMP=n build error on ppc64 2007-11-13 16:22:44 +11:00