
Peter, reply inline below...
-----Original Message----- From: Peter Tyser [mailto:ptyser@xes-inc.com] Sent: Thursday, May 06, 2010 4:27 PM To: Dennis Ruffer Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] Endless loop in cmd_log.c?
Hi Dennis,
On Wed, 2010-05-05 at 12:22 -0700, Dennis Ruffer wrote:
I am trying to implement CONFIG_LOGBUFFER and CONFIG_CMD_LOG on our
ARM
systems and I seem to have run into an endless loop. With loglevel=5
so we
still see our console output, the printf at the end of logbuff_printk appears to create an endless loop.
I had to replace that line with serial_puts(msg);
Have I missed some other solution or do the systems that use this
never set
logbuffer higher than default_message_loglevel?
I see the same issue you describe when enabling CONFIG_LOGBUFFER. It looks like only a few boards have CONFIG_LOGBUFFER enabled, and many of them also have CONFIG_SYS_CONSOLE_IS_IN_ENV defined. When CONFIG_SYS_CONSOLE_IS_IN_ENV is defined I believe the behavior is changed so that the the stdout/stderr/stdin values are read from the environment, with a default fallback of 'serial'.
My guess is most of the boards with CONFIG_LOGBUFFER defined have their 'stdout' value set to 'serial', so they don't actually utilize the logbuffer, and thus don't run into the issue you found.
In any case, I think its a bug and your suggested workaround sounds good to me. Have any interest in submitting a patch to fix it?
Best, Peter
I'm hoping to get setup to submit patches eventually, but I'm not there yet and it's not on my critical path at the moment. I'm just glad to hear I hadn't missed some critical setup piece.
Thanks for verifying it!
DaR