Re: [PATCH] asm-generic/hyperv: Fix struct hv_message_header ordering
From: Wei Liu <wei.liu@kernel.org>
Date: 2021-07-29 16:56:50
Also in:
linux-hyperv, lkml
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:quoted
On Thu, Jul 29, 2021 at 03:52:46PM +0200, Vitaly Kuznetsov wrote:quoted
Siddharth Chandrasekaran [off-list ref] writes:quoted
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.