Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41bc3186 authored by Zhao Jin's avatar Zhao Jin Committed by Avi Kivity
Browse files

KVM: MMU: fix incorrect return of spte



__update_clear_spte_slow should return original spte while the
current code returns low half of original spte combined with high
half of new spte.

Signed-off-by: default avatarZhao Jin <cronozhj@gmail.com>
Reviewed-by: default avatarXiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent b172e38e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -400,7 +400,8 @@ static u64 __update_clear_spte_slow(u64 *sptep, u64 spte)

	/* xchg acts as a barrier before the setting of the high bits */
	orig.spte_low = xchg(&ssptep->spte_low, sspte.spte_low);
	orig.spte_high = ssptep->spte_high = sspte.spte_high;
	orig.spte_high = ssptep->spte_high;
	ssptep->spte_high = sspte.spte_high;
	count_spte_clear(sptep, spte);

	return orig.spte;