You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2021/09/17 02:56:44 UTC
[incubator-nuttx] branch master updated: arch: cxd56xx: Replace the
critical section with spinlock in cxd56_serial.c
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 204d88b arch: cxd56xx: Replace the critical section with spinlock in cxd56_serial.c
204d88b is described below
commit 204d88bcf31bbad30265296afd651b6fc9c339c7
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Thu Sep 16 15:29:38 2021 +0900
arch: cxd56xx: Replace the critical section with spinlock in cxd56_serial.c
Summary:
- This commit replaces the critical section with spinlock in cxd56_serial.c
Impact:
- None
Testing:
- Tested with spresense:rndis_smp, spresense:rndis
and spresense:rndis_wifi
Signed-off-by: Masayuki Ishikawa <Ma...@jp.sony.com>
---
arch/arm/src/cxd56xx/cxd56_serial.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/src/cxd56xx/cxd56_serial.c b/arch/arm/src/cxd56xx/cxd56_serial.c
index 5ece1db..859fabb 100644
--- a/arch/arm/src/cxd56xx/cxd56_serial.c
+++ b/arch/arm/src/cxd56xx/cxd56_serial.c
@@ -992,7 +992,7 @@ static void up_txint(FAR struct uart_dev_s *dev, bool enable)
FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->priv;
irqstate_t flags;
- flags = enter_critical_section();
+ flags = spin_lock_irqsave(&priv->lock);
if (enable)
{
#ifndef CONFIG_SUPPRESS_SERIAL_INTS
@@ -1003,7 +1003,9 @@ static void up_txint(FAR struct uart_dev_s *dev, bool enable)
* interrupts disabled (note this may recurse).
*/
+ spin_unlock_irqrestore(&priv->lock, flags);
uart_xmitchars(dev);
+ flags = spin_lock_irqsave(&priv->lock);
#endif
}
else
@@ -1012,7 +1014,7 @@ static void up_txint(FAR struct uart_dev_s *dev, bool enable)
up_serialout(priv, CXD56_UART_IMSC, priv->ier);
}
- leave_critical_section(flags);
+ spin_unlock_irqrestore(&priv->lock, flags);
}
/****************************************************************************