xen/console: use warning infrastructure for sync console warning

Move the warning text to a static variable and marked that as initconst
data. Call warning_add in console_init_preirq. Finally remove all
unused bits.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Wei Liu authored and Andrew Cooper committed 2016-06-23 16:57:14 +01:00
1 parent ee3fd57acd
commit 509019f42d
1 file changed
+8 -28
+8 -28
View File
@@ -18,7 +18,6 @@
#include <xen/serial.h>
#include <xen/softirq.h>
#include <xen/keyhandler.h>
#include <xen/delay.h>
#include <xen/guest_access.h>
#include <xen/watchdog.h>
#include <xen/shutdown.h>
@@ -30,6 +29,7 @@
#include <asm/div64.h>
#include <xen/hypercall.h> /* for do_console_io */
#include <xen/early_printk.h>
#include <xen/warning.h>
/* console: comma-separated list of console outputs. */
static char __initdata opt_console[30] = OPT_CONSOLE_STR;
@@ -45,6 +45,12 @@ string_param("conswitch", opt_conswitch);
/* sync_console: force synchronous console output (useful for debugging). */
static bool_t __initdata opt_sync_console;
boolean_param("sync_console", opt_sync_console);
static const char __initconst warning_sync_console[] =
"WARNING: CONSOLE OUTPUT IS SYNCHRONOUS\n"
"This option is intended to aid debugging of Xen by ensuring\n"
"that all output is synchronously delivered on the serial line.\n"
"However it can introduce SIGNIFICANT latencies and affect\n"
"timekeeping. It is NOT recommended for production use!\n";
/* console_to_ring: send guest (incl. dom 0) console data to console ring. */
static bool_t __read_mostly opt_console_to_ring;
@@ -740,6 +746,7 @@ void __init console_init_preirq(void)
serial_start_sync(sercon_handle);
add_taint(TAINT_SYNC_CONSOLE);
printk("Console output is synchronous.\n");
warning_add(warning_sync_console);
}
}
@@ -787,8 +794,6 @@ void __init console_init_postirq(void)
void __init console_endboot(void)
{
int i, j;
printk("Std. Loglevel: %s", loglvl_str(xenlog_lower_thresh));
if ( xenlog_upper_thresh != xenlog_lower_thresh )
printk(" (Rate-limited: %s)", loglvl_str(xenlog_upper_thresh));
@@ -799,31 +804,6 @@ void __init console_endboot(void)
warning_print();
if ( opt_sync_console )
{
printk("**********************************************\n");
printk("******* WARNING: CONSOLE OUTPUT IS SYNCHRONOUS\n");
printk("******* This option is intended to aid debugging "
"of Xen by ensuring\n");
printk("******* that all output is synchronously delivered "
"on the serial line.\n");
printk("******* However it can introduce SIGNIFICANT latencies "
"and affect\n");
printk("******* timekeeping. It is NOT recommended for "
"production use!\n");
printk("**********************************************\n");
for ( i = 0; i < 3; i++ )
{
printk("%d... ", 3-i);
for ( j = 0; j < 100; j++ )
{
process_pending_softirqs();
mdelay(10);
}
}
printk("\n");
}
video_endboot();
/*
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.