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.