On 10.01.26 00:18, Stefano Stabellini wrote:
Xen can support console_io hypercalls for any domains, not just dom0, depending on DEBUG and XSM policies. These hypercalls can be very useful for development and debugging.Introduce a kernel command line option xen_console_io to enable the usage of console_io hypercalls for any domain upon request. When xen_console_io is not specified, the current behavior is retained. Signed-off-by: Stefano Stabellini <[email protected]> --- .../admin-guide/kernel-parameters.txt | 5 +++ drivers/tty/hvc/hvc_xen.c | 33 ++++++++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index e88505e945d52..953d3f597f007 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -7620,6 +7620,11 @@ save/restore/migration must be enabled to handle larger domains.+ xen_console_io [XEN,EARLY]+ Boolean option to enable/disable the usage of the Xen + console_io hypercalls to read and write to the console. + Mostly useful for debugging and development. + xen_emul_unplug= [HW,X86,XEN,EARLY] Unplug Xen emulated devices Format: [unplug0,][unplug1] diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c index 388a71afd6efe..299b08c90bab1 100644 --- a/drivers/tty/hvc/hvc_xen.c +++ b/drivers/tty/hvc/hvc_xen.c @@ -51,6 +51,28 @@ static DEFINE_SPINLOCK(xencons_lock);/* ------------------------------------------------------------------ */ +static bool xen_console_io = false;+static int __initdata opt_console_io = -1; + +static int __init parse_xen_console_io(char *arg) +{ + if (!arg) + return -EINVAL; + + if (strcmp(arg, "off") == 0 || + strcmp(arg, "disabled") == 0 || + strcmp(arg, "0") == 0) { + opt_console_io = 0; + } + else if (strcmp(arg, "on") == 0 || + strcmp(arg, "enabled") == 0 || + strcmp(arg, "1") == 0) { + opt_console_io = 1; + }
I'd prefer use of kstrtobool() instead of open-coding something similar. Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature
