diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 2c14c2ca73..75e493466e 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -1185,11 +1185,13 @@ static void debugtrace_dump_worker(void) /* Print oldest portion of the ring. */ ASSERT(debugtrace_buf[debugtrace_bytes - 1] == 0); - sercon_puts(&debugtrace_buf[debugtrace_prd]); + if ( debugtrace_buf[debugtrace_prd] != '\0' ) + sercon_puts(&debugtrace_buf[debugtrace_prd], + strlen(&debugtrace_buf[debugtrace_prd])); /* Print youngest portion of the ring. */ debugtrace_buf[debugtrace_prd] = '\0'; - sercon_puts(&debugtrace_buf[0]); + sercon_puts(&debugtrace_buf[0], debugtrace_prd); memset(debugtrace_buf, '\0', debugtrace_bytes);