On Sat, 2009-03-14 at 19:14 +0200, Kalle Valo wrote: > +/** > + * ieee80211_beacon_loss - inform that hardware does not receive beacons > + * > + * @hw: pointer as obtained from ieee80211_alloc_hw() > + * > + * When beacon filtering is enabled with IEEE80211_HW_BEACON_FILTERING and > + * IEEE80211_CONF_PS is set, the driver needs to inform whenever the > + * hardware is not receiving beacons with this function. > + */ > +void ieee80211_beacon_loss(struct ieee80211_hw *hw); > +void ieee80211_beacon_loss(struct ieee80211_hw *hw) > +{ > + struct ieee80211_local *local = hw_to_local(hw); > + struct ieee80211_sub_if_data *sdata; > + > + rcu_read_lock(); > + list_for_each_entry(sdata, &local->interfaces, list) { > + if (sdata->vif.type != NL80211_IFTYPE_STATION) > + continue; > + > + queue_work(local->hw.workqueue, > + &sdata->u.mgd.beacon_loss_work); > + } > + rcu_read_unlock(); > +} > +EXPORT_SYMBOL(ieee80211_beacon_loss); Shouldn't the driver just pass the relevant vif pointer? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part