summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/ipxe/device.h2
-rw-r--r--src/interface/hyperv/vmbus.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/src/include/ipxe/device.h b/src/include/ipxe/device.h
index d81417e8..d4ba001b 100644
--- a/src/include/ipxe/device.h
+++ b/src/include/ipxe/device.h
@@ -72,7 +72,7 @@ struct device_description {
/** A hardware device */
struct device {
/** Name */
- char name[32];
+ char name[40];
/** Driver name */
const char *driver_name;
/** Device description */
diff --git a/src/interface/hyperv/vmbus.c b/src/interface/hyperv/vmbus.c
index fd809dda..e269aee2 100644
--- a/src/interface/hyperv/vmbus.c
+++ b/src/interface/hyperv/vmbus.c
@@ -1121,6 +1121,7 @@ static int vmbus_probe_channels ( struct hv_hypervisor *hv,
const struct vmbus_message_header *header = &vmbus->message->header;
const struct vmbus_offer_channel *offer = &vmbus->message->offer;
const union uuid *type;
+ union uuid instance;
struct vmbus_driver *driver;
struct vmbus_device *vmdev;
struct vmbus_device *tmp;
@@ -1165,8 +1166,11 @@ static int vmbus_probe_channels ( struct hv_hypervisor *hv,
rc = -ENOMEM;
goto err_alloc_vmdev;
}
+ memcpy ( &instance, &offer->instance,
+ sizeof ( instance ) );
+ uuid_mangle ( &instance );
snprintf ( vmdev->dev.name, sizeof ( vmdev->dev.name ),
- "vmbus:%02x", channel );
+ "{%s}", uuid_ntoa ( &instance ) );
vmdev->dev.desc.bus_type = BUS_TYPE_HV;
INIT_LIST_HEAD ( &vmdev->dev.children );
list_add_tail ( &vmdev->dev.siblings,