2012/3/15 Daniel Drake <dsd@xxxxxxxxxx>: > libertas provides a dump_survey implementation based on reading of > a RSSI value. However, this RSSI value is calculated based on the > last received beacon from the associated AP - it is not a good > way of surveying a channel in general, and even causes an error > if the card is not associated to a network. > > As this is not appropriate as a survey, remove it. This fixes an > issue where something in userspace is repeatedly calling site-survey > during boot, resulting in many repeated errors as the RSSI value cannot > be read before associating. > > Signed-off-by: Daniel Drake <dsd@xxxxxxxxxx> I have pretty similar patch and tested it on Zipit Z2 with libertas_spi. What's interesting -- wpa_supplicant with -Dwext does not trigger this bug, but only with -Dnl80211 it does. Have my: Tested-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx> > --- > drivers/net/wireless/libertas/cfg.c | 34 ---------------------------------- > 1 files changed, 0 insertions(+), 34 deletions(-) > > diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c > index b456a53..8ea15d3 100644 > --- a/drivers/net/wireless/libertas/cfg.c > +++ b/drivers/net/wireless/libertas/cfg.c > @@ -1593,39 +1593,6 @@ static int lbs_cfg_get_station(struct wiphy *wiphy, struct net_device *dev, > > > /* > - * "Site survey", here just current channel and noise level > - */ > - > -static int lbs_get_survey(struct wiphy *wiphy, struct net_device *dev, > - int idx, struct survey_info *survey) > -{ > - struct lbs_private *priv = wiphy_priv(wiphy); > - s8 signal, noise; > - int ret; > - > - if (idx != 0) > - ret = -ENOENT; > - > - lbs_deb_enter(LBS_DEB_CFG80211); > - > - survey->channel = ieee80211_get_channel(wiphy, > - ieee80211_channel_to_frequency(priv->channel, > - IEEE80211_BAND_2GHZ)); > - > - ret = lbs_get_rssi(priv, &signal, &noise); > - if (ret == 0) { > - survey->filled = SURVEY_INFO_NOISE_DBM; > - survey->noise = noise; > - } > - > - lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret); > - return ret; > -} > - > - > - > - > -/* > * Change interface > */ > > @@ -2024,7 +1991,6 @@ static struct cfg80211_ops lbs_cfg80211_ops = { > .del_key = lbs_cfg_del_key, > .set_default_key = lbs_cfg_set_default_key, > .get_station = lbs_cfg_get_station, > - .dump_survey = lbs_get_survey, > .change_virtual_intf = lbs_change_intf, > .join_ibss = lbs_join_ibss, > .leave_ibss = lbs_leave_ibss, > -- > 1.7.7.6 > > > _______________________________________________ > libertas-dev mailing list > libertas-dev@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/libertas-dev -- 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