Re:Re: [PATCH v2 2/2] Drivers: hv: vmbus: copy dynamic IDs before dropping the lock
From: jiale yao
Date: Tue Oct 27 2026 - 03:00:41 EST
At 2026-10-24 08:41:17, "Kameron Carr" <kameroncarr@xxxxxxxxxxxxxxxxxxx> wrote:
>On 10/21/2026 7:33 AM, Jiale Yao wrote:
>[...]
>> @@ -860,13 +862,17 @@ static int vmbus_match(struct device *device, const struct device_driver *driver
>> */
>> static int vmbus_probe(struct device *child_device)
>> {
>> - int ret = 0;
>> + const struct hv_vmbus_device_id *dev_id;
>> + struct hv_vmbus_device_id dev_id_copy;
>> struct hv_driver *drv =
>> drv_to_hv_drv(child_device->driver);
>> struct hv_device *dev = device_to_hv_device(child_device);
>> - const struct hv_vmbus_device_id *dev_id;
>> + int ret = 0;
>
>Nit: the reordering of these declarations is unnecessary.
>In a stable patch, we shouldn't include any purely style changes.
>
>--
>Regards,
>Kameron
>
>> +
>> + dev_id = hv_vmbus_get_id(drv, dev, &dev_id_copy);
>> + if (!dev_id && !is_hvsock_channel(dev->channel))
>> + return -ENODEV;
>>
>> - dev_id = hv_vmbus_get_id(drv, dev);
>> if (drv->probe) {
>> ret = drv->probe(dev, dev_id);
>> if (ret != 0)
>> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
>> index 9e109d91aa14..0f0423e8a184 100644
>> --- a/include/linux/hyperv.h
>> +++ b/include/linux/hyperv.h
>> @@ -1264,6 +1264,7 @@ struct hv_driver {
>> struct list_head list;
>> } dynids;
>>
>> + /* The device ID pointer is only valid during the probe callback. */
>> int (*probe)(struct hv_device *, const struct hv_vmbus_device_id *);
>> void (*remove)(struct hv_device *dev);
>> void (*shutdown)(struct hv_device *);
>
>
Thanks for your review, the updated one is here, https://lore.kernel.org/all/20261027065642.2280297-1-yaojiale02@xxxxxxx/