David S. Miller 53aa75aa36 sparc64: Fix huge PMD to PTE translation for sun4u in TLB miss handler.
[ Upstream commit 76968ad2eac6456270353de168b21f04f4b3d1d3 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-27 09:21:14 -08:00
..
2012-11-28 14:33:03 -05:00
2013-01-11 09:19:04 -08:00
2012-11-02 12:08:25 -04:00
2012-11-09 06:41:47 +01:00
2012-12-03 11:13:09 -08:00
2013-01-21 11:44:32 -08:00
2013-02-27 09:21:07 -08:00