On 11/05/18 15:48, Paul Durrant wrote:
> The response to viridian leaf 3 needs to split a 64-bit mask across EAX and
> EBX, with the low order 32 bits in EAX and the high order 32 bits in EBX.
> To facilitate this a union of two uint32_t values and the mask (type
> HV_PARTITION_PRIVILEGE_MASK) is allocated on stack as follows:
>
> union {
>     HV_PARTITION_PRIVILEGE_MASK mask;
>     uint32_t lo, hi;
> } u;
>
> This, of course, is incorrect as both lo and hi will alias the low order
> 32 bits of the mask.
>
> This patch wraps lo and hi in an anonmymous struct to achieve the desired
> effect.
>
> NOTE: Fixing this also stops Windows making the HvGetPartitionId hypercall
>       which was previously considered erroneous behaviour. Thus the
>       hypercall handler is also modified to stop squashing the
>       'unimplemented' warning for this hypercall.
>
> Signed-off-by: Paul Durrant <[email protected]>

Acked-by: Andrew Cooper <[email protected]>

CC Juergen.  This wants backporting, and taking into 4.11

~Andrew

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to