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