RE: [PATCH v2 1/3] Drivers: hv: vmbus: Introduce and negotiate VMBus protocol version 5.3

From: Michael Kelley
Date: Wed Apr 14 2021 - 14:25:35 EST


From: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx> Sent: Wednesday, April 14, 2021 8:01 AM
>
> Hyper-V has added VMBus protocol version 5.3. Allow Linux guests to
> negotiate the new version on version of Hyper-V that support it.
>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx>
> ---
> drivers/hv/connection.c | 3 ++-
> include/linux/hyperv.h | 2 ++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> index 350e8c5cafa8c..dc19d5ae4373c 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -45,6 +45,7 @@ EXPORT_SYMBOL_GPL(vmbus_proto_version);
> * Table of VMBus versions listed from newest to oldest.
> */
> static __u32 vmbus_versions[] = {
> + VERSION_WIN10_V5_3,
> VERSION_WIN10_V5_2,
> VERSION_WIN10_V5_1,
> VERSION_WIN10_V5,
> @@ -60,7 +61,7 @@ static __u32 vmbus_versions[] = {
> * Maximal VMBus protocol version guests can negotiate. Useful to cap the
> * VMBus version for testing and debugging purpose.
> */
> -static uint max_version = VERSION_WIN10_V5_2;
> +static uint max_version = VERSION_WIN10_V5_3;
>
> module_param(max_version, uint, S_IRUGO);
> MODULE_PARM_DESC(max_version,
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 2c18c8e768efe..d6a6f76040b5f 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -234,6 +234,7 @@ static inline u32 hv_get_avail_to_write_percent(
> * 5 . 0 (Newer Windows 10)
> * 5 . 1 (Windows 10 RS4)
> * 5 . 2 (Windows Server 2019, RS5)
> + * 5 . 3 (Windows Server 2021) // FIXME: use proper version number/name

The official name is now public information as "Windows Server 2022".

> */
>
> #define VERSION_WS2008 ((0 << 16) | (13))
> @@ -245,6 +246,7 @@ static inline u32 hv_get_avail_to_write_percent(
> #define VERSION_WIN10_V5 ((5 << 16) | (0))
> #define VERSION_WIN10_V5_1 ((5 << 16) | (1))
> #define VERSION_WIN10_V5_2 ((5 << 16) | (2))
> +#define VERSION_WIN10_V5_3 ((5 << 16) | (3))
>
> /* Make maximum size of pipe payload of 16K */
> #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384)
> --
> 2.25.1