On Wed, 2018-02-14 at 13:51 +0000, Jean Pierre TOSONI wrote:
> When the low-level driver returns an invalid RSSI indication,
> set the signal value to 0 as an indication to the upper layer.
>
> Also, skip average level computation if signal is invalid.
Thanks for the patch!
> /* Track average RSSI from the Beacon frames of the current AP */
> + if (rx_status->flag & RX_FLAG_NO_SIGNAL_VAL)
> + goto skip_signal_processing;
> if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) {
> ifmgd->flags &= ~IEEE80211_STA_RESET_SIGNAL_AVE;
> ewma_beacon_signal_init(&ifmgd->ave_beacon_signal);
> @@ -3454,6 +3456,7 @@ static void ieee80211_rx_mgmt_beacon(struct
> ieee80211_sub_if_data *sdata,
> sig, GFP_KERNEL);
> }
> }
> +skip_signal_processing:
Can't say I like this - how about we pull out the actual processing
into a helper function, and then abort that function early if the
NO_SIGNAL_VAL flag is set.
johannes