From 577e2fa73fb80c3d51b10d9cd3c4e6f18e37de08 Mon Sep 17 00:00:00 2001 From: liqinhui Date: Mon, 24 Jun 2024 11:59:23 +0800 Subject: [PATCH] simwifi: Avoid to set the mode of wlan repeatedly. Signed-off-by: liqinhui --- arch/sim/src/sim/sim_wifidriver.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/sim/src/sim/sim_wifidriver.c b/arch/sim/src/sim/sim_wifidriver.c index c2a56345d2..5591d9c715 100644 --- a/arch/sim/src/sim/sim_wifidriver.c +++ b/arch/sim/src/sim/sim_wifidriver.c @@ -1549,12 +1549,15 @@ static int wifidriver_set_mode(struct sim_netdev_s *wifidev, { int ret; - /* IW_MODE_INFRA indicates station */ - - wifidev->mode = pwrq->u.mode; - switch (wifidev->mode) + switch (pwrq->u.mode) { case IW_MODE_INFRA: + if (wifidev->mode == IW_MODE_INFRA) + { + return OK; + } + + wifidev->mode = pwrq->u.mode; /* Start the sta config, including wpa_supplicant and udhcpc. */ @@ -1584,6 +1587,12 @@ static int wifidriver_set_mode(struct sim_netdev_s *wifidev, } break; case IW_MODE_MASTER: + if (wifidev->mode == IW_MODE_MASTER) + { + return OK; + } + + wifidev->mode = pwrq->u.mode; /* Start the hostapd. */