This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch releases/12.13 in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 8f3846584be924d265a3c9489368c8f6c1529e98 Author: shichunma <[email protected]> AuthorDate: Sat Mar 21 15:42:16 2026 +0800 net/nat: g_nat_lock can be used recursively case: when rndis receive a packet and this packet is going to be forwarded. 1. first lock happen when ipv4_dev_forward call ipv4_nat_outbound; 2. next lock is: ipv4_nat_outbound_entry_find --> nat_port_select --> tcp_selectport --> nat_port_inuse Signed-off-by: Jerry Ma <[email protected]> --- net/nat/nat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/nat/nat.c b/net/nat/nat.c index 4ccc2d9700b..426a04cd848 100644 --- a/net/nat/nat.c +++ b/net/nat/nat.c @@ -42,7 +42,7 @@ * Private Data ****************************************************************************/ -static mutex_t g_nat_lock = NXMUTEX_INITIALIZER; +static rmutex_t g_nat_lock = NXRMUTEX_INITIALIZER; /**************************************************************************** * Private Functions @@ -418,7 +418,7 @@ uint32_t nat_expire_time(uint8_t protocol) void nat_lock(void) { - nxmutex_lock(&g_nat_lock); + nxrmutex_lock(&g_nat_lock); } /**************************************************************************** @@ -431,7 +431,7 @@ void nat_lock(void) void nat_unlock(void) { - nxmutex_unlock(&g_nat_lock); + nxrmutex_unlock(&g_nat_lock); } #endif /* CONFIG_NET_NAT */
