|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 3/3] x86/vmx: Replace __vmread() with vmread()
On Mon, Apr 28, 2025 at 01:58:56PM +0200, Jan Beulich wrote:
> On 26.04.2025 09:28, dmkhn@xxxxxxxxx wrote:
> > @@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
> > hvm_do_resume(v);
> >
> > /* Sync host CR4 in case its value has changed. */
> > - __vmread(HOST_CR4, &host_cr4);
> > - if ( host_cr4 != read_cr4() )
> > + if ( vmread(HOST_CR4) != read_cr4() )
>
> It's unclear to me whether this constitutes a violation of Misra rule 13.2.
> There are two function calls in this expression. Both funcs are inline, and
> vmread() is even always_inline, but they're still function calls, which can
> be carried out in either order. And neither can plausibly be pure, let
> alone const.
Thanks, I will revert that hunk.
>
> > @@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct
> > vcpu *v,
> > {
> > vmx_vmcs_enter(v);
> >
> > - __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
> > - __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info);
> > - __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
> > + nrs->vmx.activity_state = vmread(GUEST_ACTIVITY_STATE);
>
> This struct field can now also shrink down to unsigned int (or uit32_t if need
> be). Likely there are others (and maybe also plain variables). Which in turn
> is an indication that, as was suggested before, this patch wants further
> splitting up. That'll also help with overall progress, as then what's
> uncontroversial and not in need of further adjustment can go in right away.
I'll will minimize the churn more in next iteration.
>
> Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |