linux/arch/sparc
David S. Miller 76968ad2ea sparc64: Fix huge PMD to PTE translation for sun4u in TLB miss handler.
When we set the sun4u version of the PTE execute bit, it's:

	or	REG, _PAGE_EXEC_4U, REG

_PAGE_EXEC_4U is 0x1000, unfortunately the immedate field of the
'or' instruction is a signed 13-bit value.  So the above actually
assembles into:

	or	REG, -4096, REG

completely corrupting the final PTE value.

Set it with a:

	sethi	%hi(_PAGE_EXEC_4U), TMP
	or	REG, TMP, REG

sequence instead.

This fixes "git gc" crashes on sun4u machines.

Reported-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-02-20 13:34:41 -08:00
..
boot sparc: Fix piggyback with newer binutils. 2012-12-03 11:24:25 -08:00
configs perf: Remove PERF_COUNTERS config option 2012-04-26 13:52:52 +02:00
crypto sparc64: Set CRYPTO_TFM_REQ_MAY_SLEEP consistently in CAMELLIA code. 2012-12-19 15:44:31 -08:00
include sparc64: Fix huge PMD to PTE translation for sun4u in TLB miss handler. 2013-02-20 13:34:41 -08:00
kernel sparc64: Fix tsb_grow() in atomic context. 2013-02-20 09:46:08 -08:00
lib sparc: Support atomic64_dec_if_positive properly. 2012-11-09 19:37:59 -08:00
math-emu sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads. 2012-10-26 15:18:37 -07:00
mm sparc64: Fix tsb_grow() in atomic context. 2013-02-20 09:46:08 -08:00
net sparc: bpf_jit_comp: add VLAN instructions for BPF JIT 2012-11-06 17:41:42 -05:00
oprofile sparc: using HZ needs an include of linux/param.h 2009-10-05 00:46:08 -07:00
prom sparc32: Remove superfluous extern declarations for prom_*() functions 2012-06-27 01:27:45 -07:00
Kbuild sparc64: Add SHA1 driver making use of the 'sha1' instruction. 2012-08-20 15:08:49 -07:00
Kconfig sparc64: Add missing HAVE_ARCH_TRANSPARENT_HUGEPAGE. 2013-02-13 12:22:13 -08:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-21 19:43:57 -07:00