summary refs log tree commit diff stats
path: root/qemu-char.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2016-10-27 23:50:58 +1100
committerDavid Gibson <david@gibson.dropbear.id.au>2016-10-28 11:17:35 +1100
commit10c21b5c20bf3d20b7b0ad279db37ae89cc7937d (patch)
tree3656bf0ff51237daf3100b1a42b56b0e88243770 /qemu-char.c
parentcf63246319019c330a214c1ca9284c9405a6eb7a (diff)
downloadfocaccia-qemu-10c21b5c20bf3d20b7b0ad279db37ae89cc7937d.tar.gz
focaccia-qemu-10c21b5c20bf3d20b7b0ad279db37ae89cc7937d.zip
ppc: allow certain HV interrupts to be delivered to guests
ppc hypervisors have delivered system reset and machine check exception
interrupts to guests in some situations (e.g., see FWNMI feature of LoPAPR,
or NMI injection in QEMU).

These exceptions are architected to set the HV bit in hardware, however
when injected into a guest, the HV bit should be cleared. Current code
masks off the HV bit before setting the new MSR, however this happens after
the interrupt delivery model has calculated delivery mode for the exception.
This can result in the guest's MSR LE bit being lost.

Account for this in the exception handler and don't set HV bit for guest
delivery.

Also add another sanity check to ensure similar bugs get caught.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'qemu-char.c')
0 files changed, 0 insertions, 0 deletions