| From 097b204ffed838a4bbf7649fb23310f64ace22ad Mon Sep 17 00:00:00 2001 |
| From: Evelyn Tsai <evelyn.tsai@mediatek.com> |
| Date: Thu, 11 May 2023 14:12:44 +0800 |
| Subject: [PATCH 102/103] hostapd: mtk: Fix unexpected AP beacon state |
| transition |
| |
| When AP fails setting the beacon, it assigns bss->beacon_set to 0 no |
| matter what the error number is. |
| However, in the case that the error number is -EBUSY, the driver might |
| not free the beacon and expect a later beacon re-setting. If hostapd set |
| a new beacon under this case, driver will return -EALREADY. |
| This patch checks the error number after hostapd fails setting the |
| beacon. If the error number is -EBUSY, bss->beacon_set will not be |
| assigned to 0. |
| |
| Signed-off-by: Michael Lee <michael-cy.lee@mediatek.com> |
| --- |
| src/drivers/driver_nl80211.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c |
| index 8400e57..ccfc2d0 100644 |
| --- a/src/drivers/driver_nl80211.c |
| +++ b/src/drivers/driver_nl80211.c |
| @@ -5126,7 +5126,8 @@ static int wpa_driver_nl80211_set_ap(void *priv, |
| ret, strerror(-ret)); |
| if (!bss->flink->beacon_set) |
| ret = 0; |
| - bss->flink->beacon_set = 0; |
| + if (ret != -EBUSY) |
| + bss->flink->beacon_set = 0; |
| } else { |
| bss->flink->beacon_set = 1; |
| nl80211_set_bss(bss, params->cts_protect, params->preamble, |
| -- |
| 2.18.0 |
| |