aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/prom
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2006-02-21 01:56:01 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:13:48 -0500
commitc79f76777d678ba454aa727800e1386a1fd1f2e8 (patch)
treec93a6f342ae56216e34fb5c5f5782e79dff6c4fc /arch/sparc64/prom
parent4e74ae800bafe79d4aaa529bc5d52425757c0115 (diff)
[SPARC64]: Args to SUNW,set-trap-table are 64-bit.
They were getting truncated to 32-bit and this is very bad when your MMU fault status area is in physical memory above 4GB on SUN4V. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/prom')
-rw-r--r--arch/sparc64/prom/misc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c
index 36d2b9c1622d..90df42141b19 100644
--- a/arch/sparc64/prom/misc.c
+++ b/arch/sparc64/prom/misc.c
@@ -133,12 +133,17 @@ int prom_getprev(void)
133/* Install Linux trap table so PROM uses that instead of its own. */ 133/* Install Linux trap table so PROM uses that instead of its own. */
134void prom_set_trap_table(unsigned long tba) 134void prom_set_trap_table(unsigned long tba)
135{ 135{
136 p1275_cmd("SUNW,set-trap-table", P1275_INOUT(1, 0), tba); 136 p1275_cmd("SUNW,set-trap-table",
137 (P1275_ARG(0, P1275_ARG_IN_64B) |
138 P1275_INOUT(1, 0)), tba);
137} 139}
138 140
139void prom_set_trap_table_sun4v(unsigned long tba, unsigned long mmfsa) 141void prom_set_trap_table_sun4v(unsigned long tba, unsigned long mmfsa)
140{ 142{
141 p1275_cmd("SUNW,set-trap-table", P1275_INOUT(2, 0), tba, mmfsa); 143 p1275_cmd("SUNW,set-trap-table",
144 (P1275_ARG(0, P1275_ARG_IN_64B) |
145 P1275_ARG(1, P1275_ARG_IN_64B) |
146 P1275_INOUT(2, 0)), tba, mmfsa);
142} 147}
143 148
144int prom_get_mmu_ihandle(void) 149int prom_get_mmu_ihandle(void)