From: Hardik Garg <har...@linux.microsoft.com> Sent: Thursday, June 19, 2025 
4:07 PM
> 

For the patch "Subject:" line, prefer prefix "Drivers: hv: vmbus:" to be 
consistent
historical precedent. We haven't always been consistent with that precedent,
but I try to call it out when I have the opportunity. :-)  If you look at the 
commit
log for drivers/hv, you'll see that prefix fairly often, though sometimes
shortened to just "Drivers: hv:" when the change is more generically for
Hyper-V and not specifically VMBus.

> The connection-id determines which hypervisor communication channel the
> guest should use to talk to the VMBus host. This patch adds support to
> read this value from the DeviceTree where it exists as a property under
> the vmbus node with the compatible ID "microsoft,message-connection-id".

Avoid wording like "this patch" in commit messages. Commit messages should
be in imperative mood.  So something like:

The connection-id determines which hypervisor communication channel the
guest should use to talk to the VMBus host. Add steps to read this value from
the DeviceTree where it exists as a property under the vmbus node with the
compatible ID "microsoft,message-connection-id".

> The property name follows the format <vendor>,<field> where
> "vendor": "microsoft" and "field": "message-connection-id"
> 
> Reading from DeviceTree allows platforms to specify their preferred
> communication channel, making it more flexible. If the property is
> not found in the DeviceTree, use the default connection ID
> (VMBUS_MESSAGE_CONNECTION_ID or VMBUS_MESSAGE_CONNECTION_ID_4
> based on protocol version).
> 
> Signed-off-by: Hardik Garg <har...@linux.microsoft.com>
> ---
> v3: 
> https://lore.kernel.org/all/6a92ca86-ad6b-4d49-af6e-1ed7651b8...@linux.microsoft.com/
> v2: 
> https://lore.kernel.org/all/096edaf7-cc90-42b6-aff4-c5f088574...@linux.microsoft.com/
> v1: 
> https://lore.kernel.org/all/6acee4bf-cb04-43b9-9476-e8d811d26...@linux.microsoft.com/
> ---
>  drivers/hv/connection.c |  6 ++++--
>  drivers/hv/vmbus_drv.c  | 13 +++++++++++++
>  2 files changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> index be490c598785..15d2b652783d 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -99,11 +99,13 @@ int vmbus_negotiate_version(struct vmbus_channel_msginfo 
> *msginfo, u32 version)
>       if (version >= VERSION_WIN10_V5) {
>               msg->msg_sint = VMBUS_MESSAGE_SINT;
>               msg->msg_vtl = ms_hyperv.vtl;
> -             vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID_4;
>       } else {
>               msg->interrupt_page = virt_to_phys(vmbus_connection.int_page);
> -             vmbus_connection.msg_conn_id = VMBUS_MESSAGE_CONNECTION_ID;
>       }
> +     /* Set default connection ID if not provided via DeviceTree */
> +     if (!vmbus_connection.msg_conn_id)
> +             vmbus_connection.msg_conn_id = (version >= VERSION_WIN10_V5) ?
> +                     VMBUS_MESSAGE_CONNECTION_ID_4 : 
> VMBUS_MESSAGE_CONNECTION_ID;
> 
>       /*
>        * shared_gpa_boundary is zero in non-SNP VMs, so it's safe to always
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index c236081d0a87..b78d5499e4bc 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -2541,10 +2541,23 @@ static int vmbus_device_add(struct platform_device 
> *pdev)
>       struct of_range range;
>       struct of_range_parser parser;
>       struct device_node *np = pdev->dev.of_node;
> +     unsigned int conn_id;
>       int ret;
> 
>       vmbus_root_device = &pdev->dev;
> 
> +     /*
> +      * Read connection ID from DeviceTree. The property name follows the
> +      * format <vendor>,<field> where:
> +      * - vendor: "microsoft"
> +      * - field: "message-connection-id"
> +      */
> +     ret = of_property_read_u32(np, "microsoft,message-connection-id", 
> &conn_id);
> +     if (!ret) {
> +             pr_info("VMBus message connection ID: %u\n", conn_id);
> +         vmbus_connection.msg_conn_id = conn_id;

Indentation problem here. Should be a full tab, not 4 spaces.

> +     }
> +
>       ret = of_range_parser_init(&parser, np);
>       if (ret)
>               return ret;
> --
> 2.40.4
> 


Reply via email to