Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[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>
  • Loading branch information
mcb30 committed Jul 26, 2016
1 parent a4c4f72 commit 145aae3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/include/ipxe/device.h
Expand Up @@ -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 */
Expand Down
6 changes: 5 additions & 1 deletion src/interface/hyperv/vmbus.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 145aae3

Please sign in to comment.