mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-27 08:05:27 +08:00
KVM: PPC: Book3S HV: Allow negative offsets to real-mode hcall handlers
The table of offsets to real-mode hcall handlers in book3s_hv_rmhandlers.S can contain negative values, if some of the handlers end up before the table in the vmlinux binary. Thus we need to use a sign-extending load to read the values in the table rather than a zero-extending load. Without this, the host crashes when the guest does one of the hcalls with negative offsets, due to jumping to a bogus address. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
5448050124
commit
4baa1d871c
@ -1381,7 +1381,7 @@ hcall_try_real_mode:
|
||||
cmpldi r3,hcall_real_table_end - hcall_real_table
|
||||
bge guest_exit_cont
|
||||
LOAD_REG_ADDR(r4, hcall_real_table)
|
||||
lwzx r3,r3,r4
|
||||
lwax r3,r3,r4
|
||||
cmpwi r3,0
|
||||
beq guest_exit_cont
|
||||
add r3,r3,r4
|
||||
|
Loading…
Reference in New Issue
Block a user