staging: wfx: fix error reporting in wfx_start_ap()
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Fri, 15 May 2020 08:33:22 +0000 (10:33 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 May 2020 14:00:54 +0000 (16:00 +0200)
If AP did not start, the error was not reported to mac80211.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200515083325.378539-17-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wfx/sta.c

index 57304ed..f448957 100644 (file)
@@ -476,14 +476,17 @@ int wfx_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
 {
        struct wfx_vif *wvif = (struct wfx_vif *)vif->drv_priv;
        struct wfx_dev *wdev = wvif->wdev;
+       int ret;
 
        wvif =  NULL;
        while ((wvif = wvif_iterate(wdev, wvif)) != NULL)
                wfx_update_pm(wvif);
        wvif = (struct wfx_vif *)vif->drv_priv;
        wfx_upload_ap_templates(wvif);
-       hif_start(wvif, &vif->bss_conf, wvif->channel);
-       return 0;
+       ret = hif_start(wvif, &vif->bss_conf, wvif->channel);
+       if (ret > 0)
+               return -EIO;
+       return ret;
 }
 
 void wfx_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif)