Search Linux Wireless

Re: [PATCH] mac80211: use nullfunc instead of probe request for connection monitoring

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 19 Nov 2010 05:42:36 +0100, Felix Fietkau <nbd@xxxxxxxxxxx> wrote:
> +	if (!(ifmgd->flags & (IEEE80211_STA_BEACON_POLL |
> +			     IEEE80211_STA_CONNECTION_POLL)))
> +	    return;

Some whitespace issues here and some other places?

> +	if (sdata->local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)
> +		ieee80211_send_nullfunc(sdata->local, sdata, 0);

Hmm, should that really be 0 always? Could it be racy either way?
I think that probably needs some analysis.

> +	else {
> +		ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID);
> +		ieee80211_send_probe_req(sdata, dst, ssid + 2, ssid[1], NULL, 0);
> +	}
>  
>  	ifmgd->probe_send_count++;
>  	ifmgd->probe_timeout = jiffies + IEEE80211_PROBE_WAIT;
> @@ -1509,29 +1562,8 @@ static void ieee80211_rx_mgmt_probe_resp(struct
> ieee80211_sub_if_data *sdata,
>  	ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems, false);
>  
>  	if (ifmgd->associated &&
> -	    memcmp(mgmt->bssid, ifmgd->associated->bssid, ETH_ALEN) == 0 &&
> -	    ifmgd->flags & (IEEE80211_STA_BEACON_POLL |
> -			    IEEE80211_STA_CONNECTION_POLL)) {
> -		ifmgd->flags &= ~(IEEE80211_STA_CONNECTION_POLL |
> -				  IEEE80211_STA_BEACON_POLL);
> -		mutex_lock(&sdata->local->iflist_mtx);
> -		ieee80211_recalc_ps(sdata->local, -1);
> -		mutex_unlock(&sdata->local->iflist_mtx);
> -
> -		if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR)
> -			return;
> -
> -		/*
> -		 * We've received a probe response, but are not sure whether
> -		 * we have or will be receiving any beacons or data, so let's
> -		 * schedule the timers again, just in case.
> -		 */
> -		ieee80211_sta_reset_beacon_monitor(sdata);
> -
> -		mod_timer(&ifmgd->conn_mon_timer,
> -			  round_jiffies_up(jiffies +
> -					   IEEE80211_CONNECTION_IDLE_TIME));
> -	}
> +	    memcmp(mgmt->bssid, ifmgd->associated->bssid, ETH_ALEN) == 0)
> +		ieee80211_reset_ap_probe(sdata);

Not sure I get this part...

> +	if ((sdata->vif.type == NL80211_IFTYPE_STATION) &&
> +		(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS))
> +		ieee80211_sta_tx_notify(sdata, (void *) skb->data);

more whitespace weirdness

johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux