Commit f47da87f authored by Jesse Barnes's avatar Jesse Barnes Committed by Tony Luck

[IA64] fix phys. address conversion in ia64_pal_tr_read

The palinfo module may call ia64_pal_tr_read using an IPI.  If the processor
receiving the IPI is idle, the call will fail since the idle process stack is
in region 5 and ia64_pal_tr_read uses __pa rather than ia64_tpa.  This small
patch fixes the problem by making it use ia64_tpa instead.
Signed-off-by: default avatarJesse Barnes <jbarnes@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent e7883433
...@@ -1531,7 +1531,7 @@ static inline s64 ...@@ -1531,7 +1531,7 @@ static inline s64
ia64_pal_tr_read (u64 reg_num, u64 tr_type, u64 *tr_buffer, pal_tr_valid_u_t *tr_valid) ia64_pal_tr_read (u64 reg_num, u64 tr_type, u64 *tr_buffer, pal_tr_valid_u_t *tr_valid)
{ {
struct ia64_pal_retval iprv; struct ia64_pal_retval iprv;
PAL_CALL_PHYS_STK(iprv, PAL_VM_TR_READ, reg_num, tr_type,(u64)__pa(tr_buffer)); PAL_CALL_PHYS_STK(iprv, PAL_VM_TR_READ, reg_num, tr_type,(u64)ia64_tpa(tr_buffer));
if (tr_valid) if (tr_valid)
tr_valid->piv_val = iprv.v0; tr_valid->piv_val = iprv.v0;
return iprv.status; return iprv.status;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment