mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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@citrix.com> Acked-by: Wei Liu <wei.liu2@citrix.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com> Cc: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
1 parent
a3d07f8262
commit
96b4f77a55
1 file changed
+9
-3
@@ -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
|
||||
|
||||