[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] xenconsole: try to attach to PV console if HVM fails



commit 96b4f77a55833895677cf4b4a33fc50c7b3da032
Author:     Roger Pau Monne <roger.pau@xxxxxxxxxx>
AuthorDate: Fri Oct 2 17:48:59 2015 +0200
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Thu Oct 8 12:22:45 2015 +0100

    xenconsole: try to attach to PV console if HVM fails

    HVM guests have always used the emulated serial console by default, but if
    the emulated serial pty cannot be fetched from xenstore try to use the PV
    console instead.

    Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
    Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 tools/console/client/main.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/tools/console/client/main.c b/tools/console/client/main.c
index f130a60..d006fdc 100644
--- a/tools/console/client/main.c
+++ b/tools/console/client/main.c
@@ -333,7 +333,7 @@ int main(int argc, char **argv)
                { 0 },

        };
-       char *dom_path = NULL, *path = NULL;
+       char *dom_path = NULL, *path = NULL, *test = NULL;
        int spty, xsfd;
        struct xs_handle *xs;
        char *end;
@@ -415,9 +415,15 @@ int main(int argc, char **argv)
        path = malloc(strlen(dom_path) + strlen("/device/console/0/tty") + 5);
        if (path == NULL)
                err(ENOMEM, "malloc");
-       if (type == CONSOLE_SERIAL)
+       if (type == CONSOLE_SERIAL) {
                snprintf(path, strlen(dom_path) + strlen("/serial/0/tty") + 5, 
"%s/serial/%d/tty", dom_path, num);
-       else {
+               test = xs_read(xs, XBT_NULL, path, NULL);
+               free(test);
+               if (test == NULL)
+                       type = CONSOLE_PV;
+       }
+       if (type == CONSOLE_PV) {
+
                if (num == 0)
                        snprintf(path, strlen(dom_path) + 
strlen("/console/tty") + 1, "%s/console/tty", dom_path);
                else
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.