Drivers: hv: make VMBus bus ids persistent
authorVitaly Kuznetsov <vkuznets@redhat.com>
Fri, 16 Sep 2016 16:01:17 +0000 (09:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Sep 2016 10:35:49 +0000 (12:35 +0200)
Some tools use bus ids to identify devices and they count on the fact
that these ids are persistent across reboot. This may be not true for
VMBus as we use auto incremented counter from alloc_channel() as such
id. Switch to using if_instance from channel offer, this id is supposed
to be persistent.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hv/vmbus_drv.c

index 6cbe074..a259e18 100644 (file)
@@ -961,8 +961,8 @@ int vmbus_device_register(struct hv_device *child_device_obj)
 {
        int ret = 0;
 
-       dev_set_name(&child_device_obj->device, "vmbus_%d",
-                    child_device_obj->channel->id);
+       dev_set_name(&child_device_obj->device, "vmbus-%pUl",
+                    child_device_obj->channel->offermsg.offer.if_instance.b);
 
        child_device_obj->device.bus = &hv_bus;
        child_device_obj->device.parent = &hv_acpi_dev->dev;