linux/arch
David Gibson aa1cf632bd [POWERPC] Fix small race in 44x tlbie function
The 440 family of processors don't have a tlbie instruction.  So, we
implement TLB invalidates by explicitly searching the TLB with tlbsx.,
then clobbering the relevant entry, if any.  Unfortunately the PID for
the search needs to be stored in the MMUCR register, which is also
used by the TLB miss handler.  Interrupts were enabled in _tlbie(), so
an interrupt between loading the MMUCR and the tlbsx could cause
incorrect search results, and thus a failure to invalide TLB entries
which needed to be invalidated.

This fixes the problem in both arch/ppc and arch/powerpc by inhibiting
interrupts (even critical and debug interrupts) across the relevant
instructions.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-08-15 15:12:50 +10:00
..
alpha alpha: -Werror fixes for sys_titan.c 2007-08-11 15:47:42 -07:00
arm [ARM] rpc: update defconfig 2007-08-06 16:48:49 +01:00
avr32 Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds 2007-07-22 11:22:01 -07:00
blackfin Blackfin arch: after removing fs.h from mm.h, fix the broken on Blackfin arch 2007-08-11 15:47:39 -07:00
cris cris: drivers/cdrom/Kconfig no longer exists 2007-08-11 15:47:41 -07:00
frv FRV: connect up fallocate 2007-08-11 15:47:40 -07:00
h8300 PTRACE_POKEDATA consolidation 2007-07-17 10:23:03 -07:00
i386 genirq: mark io_apic level interrupts to avoid resend 2007-08-12 11:05:45 -07:00
ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-08-01 20:48:54 -07:00
m32r m32r: build fix for removing fs.h from mm.h 2007-07-30 10:52:10 -07:00
m68k Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
m68knommu m68knommu: get rid of duplicate include 2007-07-31 15:39:40 -07:00
mips [MIPS] Add smp_call_function_single() 2007-07-31 21:35:37 +01:00
parisc Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
powerpc [POWERPC] Fix small race in 44x tlbie function 2007-08-15 15:12:50 +10:00
ppc [POWERPC] Fix small race in 44x tlbie function 2007-08-15 15:12:50 +10:00
s390 [S390] remove DEFAULT_MIGRATION_COST 2007-08-10 14:32:37 +02:00
sh sh: fix defconfigs for sh7751r boards 2007-08-03 10:17:47 +09:00
sh64 sh64: Kill off virt_to_bus()/bus_to_virt(). 2007-07-31 13:11:25 +09:00
sparc [SPARC]: Centralize find_in_proplist() instead of duplicating N times. 2007-08-07 18:46:36 -07:00
sparc64 [SPARC64]: Fix memory leak when cpu hotplugging. 2007-08-08 17:33:52 -07:00
um UML: console should handle spurious IRQS 2007-07-31 15:39:37 -07:00
v850 PTRACE_POKEDATA consolidation 2007-07-17 10:23:03 -07:00
x86_64 genirq: mark io_apic level interrupts to avoid resend 2007-08-12 11:05:45 -07:00
xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-07-19 14:28:19 -07:00