Thread (6 messages) 6 messages, 3 authors, 2021-07-30

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help