[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/3] x86/emul: Introduce build time assertions for struct segment_register



>>> On 30.06.17 at 17:04, <andrew.cooper3@xxxxxxxxxx> wrote:
> This structure is shared with hardware in the AMD VMCB.

Indeed, but do we really depend on that in the emulator code?

> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -7899,6 +7899,12 @@ static void __init __maybe_unused 
> build_assertions(void)
>      BUILD_BUG_ON(X86_EVENTTYPE_SW_INTERRUPT != 4);
>      BUILD_BUG_ON(X86_EVENTTYPE_PRI_SW_EXCEPTION != 5);
>      BUILD_BUG_ON(X86_EVENTTYPE_SW_EXCEPTION != 6);
> +
> +    /* Check struct segment_register against the VMCB segment layout. */
> +    BUILD_BUG_ON(sizeof(struct segment_register) != 16);
> +    BUILD_BUG_ON(offsetof(struct segment_register, attr) != 2);

I.e. for these two I don't think I can see any dependency, and ...

> +    BUILD_BUG_ON(offsetof(struct segment_register, limit) != 4);
> +    BUILD_BUG_ON(offsetof(struct segment_register, base) != 8);

... for these two I think all we require is >=. Otoh, if these were put
in SVM code, then I could see the point of them being the way they
are. I'd then even raise the question whether we wouldn't also want
offsetof() checks.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.