Commit c79f76777d678ba454aa727800e1386a1fd1f2e8

Authored by David S. Miller
Committed by David S. Miller
1 parent 4e74ae800b

[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>

Showing 1 changed file with 7 additions and 2 deletions Side-by-side Diff

arch/sparc64/prom/misc.c
... ... @@ -133,12 +133,17 @@
133 133 /* Install Linux trap table so PROM uses that instead of its own. */
134 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 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 149 int prom_get_mmu_ihandle(void)