Revert "SYSLOG_DEFAULT: wrap up_putc/up_nputs calls with critical section"

This reverts commit f2aeb5e56f.

Because regressions are reported:
* https://github.com/apache/nuttx/pull/14722#issuecomment-2470710236
* https://github.com/apache/nuttx/pull/14722#issuecomment-2470778673
* https://github.com/apache/nuttx/issues/14749
This commit is contained in:
YAMAMOTO Takashi
2024-11-13 11:15:34 +08:00
committed by Xiang Xiao
parent f22685fb69
commit 35240d77fa
2 changed files with 12 additions and 19 deletions
-4
View File
@@ -268,10 +268,6 @@ static int uart_putxmitchar(FAR uart_dev_t *dev, int ch, bool oktoblock)
{
/* The following steps must be atomic with respect to serial
* interrupt handling.
*
* This critical section is also used for the serialization
* with the up_putc-based syslog channels.
* See https://github.com/apache/nuttx/issues/14662
*/
flags = enter_critical_section();
+12 -15
View File
@@ -33,6 +33,7 @@
#include <nuttx/syslog/syslog.h>
#include <nuttx/compiler.h>
#include <nuttx/mutex.h>
#ifdef CONFIG_RAMLOG_SYSLOG
# include <nuttx/syslog/ramlog.h>
@@ -71,6 +72,10 @@ static ssize_t syslog_default_write(FAR syslog_channel_t *channel,
* Private Data
****************************************************************************/
#if defined(CONFIG_SYSLOG_DEFAULT) && defined(CONFIG_ARCH_LOWPUTC)
static mutex_t g_lowputs_lock = NXMUTEX_INITIALIZER;
#endif
#ifdef CONFIG_RAMLOG_SYSLOG
static const struct syslog_channel_ops_s g_ramlog_channel_ops =
{
@@ -229,17 +234,11 @@ g_syslog_channel[CONFIG_SYSLOG_MAX_CHANNELS] =
#ifdef CONFIG_SYSLOG_DEFAULT
static int syslog_default_putc(FAR syslog_channel_t *channel, int ch)
{
# ifdef CONFIG_ARCH_LOWPUTC
/* See https://github.com/apache/nuttx/issues/14662
* about what this critical section is for.
*/
irqstate_t flags = enter_critical_section();
up_putc(ch);
leave_critical_section(flags);
# endif
UNUSED(channel);
# ifdef CONFIG_ARCH_LOWPUTC
up_putc(ch);
# endif
return ch;
}
@@ -247,13 +246,11 @@ static ssize_t syslog_default_write(FAR syslog_channel_t *channel,
FAR const char *buffer, size_t buflen)
{
# ifdef CONFIG_ARCH_LOWPUTC
/* See https://github.com/apache/nuttx/issues/14662
* about what this critical section is for.
*/
nxmutex_lock(&g_lowputs_lock);
irqstate_t flags = enter_critical_section();
up_nputs(buffer, buflen);
leave_critical_section(flags);
nxmutex_unlock(&g_lowputs_lock);
# endif
UNUSED(channel);