diff options
| author | Felix Fietkau | 2023-06-28 12:35:46 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2023-06-28 12:35:57 +0000 |
| commit | 255b4d5c472ee3e04ed5fc8ded2a15b3737821ba (patch) | |
| tree | 0873f9d9e4693270347e71ba04ecfbc8a985e04b | |
| parent | 4bea6d21a9ab2acbcf1d2d34a1266e36ae9a8d39 (diff) | |
| download | netifd-255b4d5c472ee3e04ed5fc8ded2a15b3737821ba.tar.gz | |
wireless: fix handling config reload with reconf=1
If reload triggers while the wdev is up, and reconf is set to 1, run the
setup handler immediately, otherwise the change will not be applied.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
| -rw-r--r-- | wireless.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -680,10 +680,15 @@ wdev_set_config_state(struct wireless_device *wdev, enum interface_config_state if (wdev->config_state != IFC_NORMAL) return; + if (s == IFC_RELOAD && wdev->reconf && wdev->state == IFS_UP) { + wireless_device_reconf(wdev); + return; + } + wdev->config_state = s; if (wdev->state == IFS_DOWN) wdev_handle_config_change(wdev); - else if (!wdev->reconf || wdev->state != IFS_UP) + else __wireless_device_set_down(wdev); } |