|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] xen/sysfs: Use XENVER_guest_handle to query UUID
# HG changeset patch
# User Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
# Date 1346678256 -7200
# Node ID af558aa67990007d3570f68931be209f8c815a7f
# Parent 2d3239c1550132c77c2c306f294b2cd01d57ec81
xen/sysfs: Use XENVER_guest_handle to query UUID
This hypercall has been present since Xen 3.1, and is the preferred
method for a domain to obtain its UUID. Fall back to the xenstore method
if using an older version of Xen (which returns -ENOSYS).
Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Committed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r 2d3239c15501 -r af558aa67990 drivers/xen/core/xen_sysfs.c
--- a/drivers/xen/core/xen_sysfs.c Tue Aug 07 08:08:12 2012 +0200
+++ b/drivers/xen/core/xen_sysfs.c Mon Sep 03 15:17:36 2012 +0200
@@ -104,9 +104,21 @@ static void xen_sysfs_version_destroy(vo
static ssize_t uuid_show(struct hyp_sysfs_attr *attr, char *buffer)
{
+ xen_domain_handle_t uuid;
char *vm, *val;
- int ret;
+ int ret = HYPERVISOR_xen_version(XENVER_guest_handle, uuid);
+ if (!ret)
+ return sprintf(buffer,
+
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\n",
+ uuid[0], uuid[1], uuid[2], uuid[3],
+ uuid[4], uuid[5],
+ uuid[6], uuid[7],
+ uuid[8], uuid[9],
+ uuid[10], uuid[11], uuid[12],
+ uuid[13], uuid[14], uuid[15]);
+
+#if CONFIG_XEN_COMPAT < 0x030100
if (!is_xenstored_ready())
return -EBUSY;
@@ -119,6 +131,11 @@ static ssize_t uuid_show(struct hyp_sysf
return PTR_ERR(val);
ret = sprintf(buffer, "%s\n", val);
kfree(val);
+#else /* prevent unused variable warnings */
+ asm("" : "=r" (vm), "=r" (val));
+ asm("" : : "r" (vm), "r" (val));
+#endif
+
return ret;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |