mac80211: filter probes in ieee80211_rx_mgmt_probe_resp
authorTomas Winkler <tomas.winkler@intel.com>
Sun, 3 Aug 2008 11:32:01 +0000 (14:32 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 22 Aug 2008 20:29:58 +0000 (16:29 -0400)
This patch moves filtering statement from ieee80211_rx_bss_info
which is called for both beacon and probe to ieee80211_rx_mgmt_probe_resp
and save few cycles in beacon parsing.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mlme.c

index fb8e1e742ca692a40e79b2d1dae83e5c37fb5d76..ae5a5cbabae34c815901a71ac017ed1964dc3492 100644 (file)
@@ -2550,9 +2550,6 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
        DECLARE_MAC_BUF(mac);
        DECLARE_MAC_BUF(mac2);
 
-       if (!beacon && memcmp(mgmt->da, sdata->dev->dev_addr, ETH_ALEN))
-               return; /* ignore ProbeResp to foreign address */
-
        beacon_timestamp = le64_to_cpu(mgmt->u.beacon.timestamp);
 
        if (ieee80211_vif_is_mesh(&sdata->vif) && elems->mesh_id &&
@@ -2870,6 +2867,9 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
        size_t baselen;
        struct ieee802_11_elems elems;
 
+       if (memcmp(mgmt->da, sdata->dev->dev_addr, ETH_ALEN))
+               return; /* ignore ProbeResp to foreign address */
+
        baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
        if (baselen > len)
                return;