diff options
author | David S. Miller <davem@davemloft.net> | 2006-02-21 01:56:01 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:13:48 -0500 |
commit | c79f76777d678ba454aa727800e1386a1fd1f2e8 (patch) | |
tree | c93a6f342ae56216e34fb5c5f5782e79dff6c4fc /arch/sparc64/prom | |
parent | 4e74ae800bafe79d4aaa529bc5d52425757c0115 (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.c | 9 |
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. */ |
134 | void prom_set_trap_table(unsigned long tba) | 134 | void 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 | ||
139 | void prom_set_trap_table_sun4v(unsigned long tba, unsigned long mmfsa) | 141 | void 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 | ||
144 | int prom_get_mmu_ihandle(void) | 149 | int prom_get_mmu_ihandle(void) |