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 >