Revision 06c46bba hw/spapr_hcall.c
b/hw/spapr_hcall.c | ||
---|---|---|
278 | 278 |
} |
279 | 279 |
/* FIXME: bounds check the address */ |
280 | 280 |
|
281 |
size = lduw_phys(vpa + 0x4); |
|
281 |
size = lduw_be_phys(vpa + 0x4);
|
|
282 | 282 |
|
283 | 283 |
if (size < VPA_MIN_SIZE) { |
284 | 284 |
return H_PARAMETER; |
... | ... | |
321 | 321 |
return H_HARDWARE; |
322 | 322 |
} |
323 | 323 |
|
324 |
size = ldl_phys(addr + 0x4); |
|
324 |
size = ldl_be_phys(addr + 0x4);
|
|
325 | 325 |
if (size < 0x8) { |
326 | 326 |
return H_PARAMETER; |
327 | 327 |
} |
... | ... | |
354 | 354 |
return H_HARDWARE; |
355 | 355 |
} |
356 | 356 |
|
357 |
size = ldl_phys(addr + 0x4); |
|
357 |
size = ldl_be_phys(addr + 0x4);
|
|
358 | 358 |
|
359 | 359 |
if (size < 48) { |
360 | 360 |
return H_PARAMETER; |
... | ... | |
441 | 441 |
target_ulong opcode, target_ulong *args) |
442 | 442 |
{ |
443 | 443 |
target_ulong rtas_r3 = args[0]; |
444 |
uint32_t token = ldl_phys(rtas_r3); |
|
445 |
uint32_t nargs = ldl_phys(rtas_r3 + 4); |
|
446 |
uint32_t nret = ldl_phys(rtas_r3 + 8); |
|
444 |
uint32_t token = ldl_be_phys(rtas_r3);
|
|
445 |
uint32_t nargs = ldl_be_phys(rtas_r3 + 4);
|
|
446 |
uint32_t nret = ldl_be_phys(rtas_r3 + 8);
|
|
447 | 447 |
|
448 | 448 |
return spapr_rtas_call(spapr, token, nargs, rtas_r3 + 12, |
449 | 449 |
nret, rtas_r3 + 12 + 4*nargs); |
Also available in: Unified diff