KVM: PPC: Book3S: PR: Don't clobber our exit handler id
authorAlexander Graf <agraf@suse.de>
Fri, 29 Nov 2013 01:24:18 +0000 (02:24 +0100)
committerAlexander Graf <agraf@suse.de>
Mon, 9 Dec 2013 08:41:26 +0000 (09:41 +0100)
commitd825a04387ff4ce66117306f2862c7cedca5c597
tree75439bbacc1513300463151eaa09dbd79c82e7fc
parent91648ec09c1ef69c4d840ab6dab391bfb452d554
KVM: PPC: Book3S: PR: Don't clobber our exit handler id

We call a C helper to save all svcpu fields into our vcpu. The C
ABI states that r12 is considered volatile. However, we keep our
exit handler id in r12 currently.

So we need to save it away into a non-volatile register instead
that definitely does get preserved across the C call.

This bug usually didn't hit anyone yet since gcc is smart enough
to generate code that doesn't even need r12 which means it stayed
identical throughout the call by sheer luck. But we can't rely on
that.

Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/book3s_interrupts.S