david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[hyperv] Use instance UUID in device name

The Windows drivers for VMBus devices are enumerated using the
instance UUID rather than the channel number.  Include the instance
UUID within the iPXE device name to allow an iPXE network device to be
more easily associated with the corresponding Windows network device
when debugging.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2016-07-26 16:18:53 +01:00
parent a4c4f72297
commit 145aae3998
2 changed files with 6 additions and 2 deletions

View File

@ -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 */

View File

@ -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,