staging: wfx: align semantic of beacon filter with other filters
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Wed, 15 Apr 2020 16:11:39 +0000 (18:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Apr 2020 10:29:44 +0000 (12:29 +0200)
Filters provided by HIF API are sometime inclusive, sometime exclusive.

This patch align the behavior and name of the beacon filter with the
other filters. Also avoid double negation: "disable filter"

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

index 8d2365a2e35bcd58e11942d8c08c0846f9b0067a..963cac83b6a8fa3966bf889ab28298b369c68b2c 100644 (file)
@@ -137,7 +137,7 @@ void wfx_update_filtering(struct wfx_vif *wvif)
        };
 
        hif_set_rx_filter(wvif, wvif->filter_bssid, wvif->fwd_probe_req);
-       if (wvif->disable_beacon_filter) {
+       if (!wvif->filter_beacon) {
                hif_set_beacon_filter_table(wvif, 0, NULL);
                hif_beacon_filter_control(wvif, 0, 1);
        } else {
@@ -215,9 +215,9 @@ void wfx_configure_filter(struct ieee80211_hw *hw,
                // Note: FIF_BCN_PRBRESP_PROMISC covers probe response and
                // beacons from other BSS
                if (*total_flags & FIF_BCN_PRBRESP_PROMISC)
-                       wvif->disable_beacon_filter = true;
+                       wvif->filter_beacon = false;
                else
-                       wvif->disable_beacon_filter = false;
+                       wvif->filter_beacon = true;
 
                if (*total_flags & FIF_ALLMULTI) {
                        wvif->mcast_filter.enable = false;
@@ -504,7 +504,7 @@ static void wfx_do_join(struct wfx_vif *wvif)
                 * Disable filtering temporary to make sure the stack
                 * receives at least one
                 */
-               wvif->disable_beacon_filter = true;
+               wvif->filter_beacon = false;
                wfx_update_filtering(wvif);
        }
        wfx_tx_unlock(wvif->wdev);
@@ -706,7 +706,7 @@ void wfx_bss_info_changed(struct ieee80211_hw *hw,
                                             info->dtim_period);
                // We temporary forwarded beacon for join process. It is now no
                // more necessary.
-               wvif->disable_beacon_filter = false;
+               wvif->filter_beacon = true;
                wfx_update_filtering(wvif);
        }
 
index a69d9c9c37b65085ea82f74ec9747181ca3d7991..53ed4c137b1984d3b5f46978b9882c6af608713b 100644 (file)
@@ -90,7 +90,7 @@ struct wfx_vif {
 
        bool                    filter_bssid;
        bool                    fwd_probe_req;
-       bool                    disable_beacon_filter;
+       bool                    filter_beacon;
 
        unsigned long           uapsd_mask;
        struct hif_req_set_bss_params bss_params;