From: Jan Beulich Date: Thu, 9 Jun 2016 13:45:23 +0000 (+0200) Subject: x86/XSTATE: clarify XRSTOR() macro X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~999 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=baabb747749e408030613bdc42ae9f0cbe489ba8;p=xen.git x86/XSTATE: clarify XRSTOR() macro Make obvious that xcomp_bv is expected to be clear when we get here with XSTATE_COMPACTION_ENABLED not set. Signed-off-by: Jan Beulich Reviewed-by Andrew Cooper --- diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c index 1fd1ce8c24..d90e89ed0a 100644 --- a/xen/arch/x86/xstate.c +++ b/xen/arch/x86/xstate.c @@ -387,8 +387,11 @@ void xrstor(struct vcpu *v, uint64_t mask) { \ if ( unlikely(!(ptr->xsave_hdr.xcomp_bv & \ XSTATE_COMPACTION_ENABLED)) ) \ - ptr->xsave_hdr.xcomp_bv |= ptr->xsave_hdr.xstate_bv | \ - XSTATE_COMPACTION_ENABLED; \ + { \ + ASSERT(!ptr->xsave_hdr.xcomp_bv); \ + ptr->xsave_hdr.xcomp_bv = ptr->xsave_hdr.xstate_bv | \ + XSTATE_COMPACTION_ENABLED; \ + } \ _xrstor(pfx "0x0f,0xc7,0x1f"); /* xrstors */ \ } \ else \