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

From: Siddharth Chandrasekaran
Date: Thu Jul 29 2021 - 10:27:17 EST


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.

~ Sid.



Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879