diff mbox

[for-4.7,4.6] libxl: do not assume Dom0 backend while getting nic info

Message ID 20160905101526.GA21832@mail-itl (mailing list archive)
State New, archived
Headers show

Commit Message

Marek Marczykowski-Górecki Sept. 5, 2016, 10:15 a.m. UTC
Fill backend_domid field based on backend path.

Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 tools/libxl/libxl.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Ian Jackson Sept. 19, 2016, 2:43 p.m. UTC | #1
Marek Marczykowski-Górecki writes ("[PATCH for-4.7,4.6] libxl: do not assume Dom0 backend while getting nic info"):
> Fill backend_domid field based on backend path.

Thanks.  I've put this in my queue, which I'm processing now.  (That
patch has been in master for a while now.)

Ian.
Ian Jackson Sept. 19, 2016, 3:43 p.m. UTC | #2
Ian Jackson writes ("Re: [PATCH for-4.7,4.6] libxl: do not assume Dom0 backend while getting nic info"):
> Marek Marczykowski-Górecki writes ("[PATCH for-4.7,4.6] libxl: do not assume Dom0 backend while getting nic info"):
> > Fill backend_domid field based on backend path.
> 
> Thanks.  I've put this in my queue, which I'm processing now.  (That
> patch has been in master for a while now.)

I have backported this to 4.7 and 4.6.  It applies cleanly to 4.5 but
since the purpose is to enable driver domains, and 4.5 is very old
(out of bugfix support even), I don't propose to apply it there.

Thanks,
Ian.
diff mbox

Patch

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index e1ab6ec..9a888a1 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -3601,6 +3601,18 @@  static int libxl__device_nic_from_xenstore(libxl__gc *gc,
     else
         nic->devid = 0;
 
+    rc = libxl__xs_read_checked(gc, XBT_NULL,
+                                GCSPRINTF("%s/backend", libxl_path), &tmp);
+    if (rc) goto out;
+
+    if (!tmp) {
+        LOG(ERROR, "nic %s does not exist (no backend path)", libxl_path);
+        rc = ERROR_FAIL;
+        goto out;
+    }
+    rc = libxl__backendpath_parse_domid(gc, tmp, &nic->backend_domid);
+    if (rc) goto out;
+
     /* nic->mtu = */
 
     tmp = READ_LIBXLDEV(gc, "mac");