Re: [PATCH] asm-generic/hyperv: Fix struct hv_message_header ordering

From: Wei Liu
Date: Thu Jul 29 2021 - 12:56:50 EST


On Thu, Jul 29, 2021 at 04:26:54PM +0200, Siddharth Chandrasekaran wrote:
> On Thu, Jul 29, 2021 at 02:07:05PM +0000, Wei Liu wrote:
> > On Thu, Jul 29, 2021 at 03:52:46PM +0200, Vitaly Kuznetsov wrote:
> > > Siddharth Chandrasekaran <sidcha@xxxxxxxxx> writes:
> > >
> > > > According to Hyper-V TLFS Version 6.0b, struct hv_message_header members
> > > > should be defined in the order:
> > > >
> > > > message_type, reserved, message_flags, payload_size
> > > >
> > > > but we have it defined in the order:
> > > >
> > > > message_type, payload_size, message_flags, reserved
> > > >
> > > > that is, the payload_size and reserved members swapped.
> > >
> > > Indeed,
> > >
> > > typedef struct
> > > {
> > > HV_MESSAGE_TYPE MessageType;
> > > UINT16 Reserved;
> > > HV_MESSAGE_FLAGS MessageFlags;
> > > UINT8 PayloadSize;
> > > union
> > > {
> > > UINT64 OriginationId;
> > > HV_PARTITION_ID Sender;
> > > HV_PORT_ID Port;
> > > };
> > > } HV_MESSAGE_HEADER;
> >
> > Well. I think TLFS is wrong. Let me ask around.
>
> TBH, I hadn't considered that possibility :). I assumed it was a
> regression on our side. But I spent some time tracing the history of that
> struct all the way back to when it was in staging (in 2009) and now I'm
> inclined to believe a later version of TLFS is at fault here.
>
> Based on what we decide in this thread, I will open an issue on the TLFS
> GitHub repository.
>

I have confirmation TLFS is wrong and shall be fixed. Feel free to open
an issue on GitHub too.

Wei.