On 19/08/2019 19:37, Julien Grall wrote: > Hi Andrew, > > On 8/19/19 7:04 PM, Andrew Cooper wrote: >> On 19/08/2019 19:01, Julien Grall wrote: >>> Commit b5e6e1ee8da "xen/console: Don't treat NUL character as the end >>> of the buffer" extended sercon_puts to take the number of character >>> to print in argument. >>> >>> Sadly, a couple of couple of the callers in debugtrace_dump_worker() >>> were not converted. This result to a build failure when enabling >>> CONFIG_DEBUG_TRACE. >>> >>> Spotted by Travis using randconfig >>> Signed-off-by: Julien Grall <julien.gr...@arm.com> >>> --- >>> xen/drivers/char/console.c | 5 +++-- >>> 1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c >>> index 2c14c2ca73..924d4971ca 100644 >>> --- a/xen/drivers/char/console.c >>> +++ b/xen/drivers/char/console.c >>> @@ -1185,11 +1185,12 @@ 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]); >>> + sercon_puts(&debugtrace_buf[debugtrace_prd], >>> + strlen(&debugtrace_buf[debugtrace_prd])); >> >> Isn't this just debugtrace_bytes - debugtrace_prd - 1 ? > > I tried and it resulted to print a lot of @^ on the console. This is > because the ring may not be full. > > So the portion between debugtrace_prd and debugtrace_bytes will be > full of zero. > > Looking at the code again, I think this portion and either be full of > zero character or full of non-zero character. In other word, a mix > would not be possible. So how about: > > if ( debugtrace_buf[debugtrace_prd] != '\0' ) > sercon_puts(&debugtrace_buf[debugtrace_prd], > debugtrace_bytes - debugtrace_prd - 1);
LGTM. Acked-by: Andrew Cooper <andrew.coop...@citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel