Lines Matching refs:sdata
39 void ieee80211_ocb_rx_no_sta(struct ieee80211_sub_if_data *sdata, in ieee80211_ocb_rx_no_sta() argument
43 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_rx_no_sta()
44 struct ieee80211_local *local = sdata->local; in ieee80211_ocb_rx_no_sta()
55 sdata->name, addr); in ieee80211_ocb_rx_no_sta()
59 ocb_dbg(sdata, "Adding new OCB station %pM\n", addr); in ieee80211_ocb_rx_no_sta()
62 chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); in ieee80211_ocb_rx_no_sta()
70 sta = sta_info_alloc(sdata, addr, GFP_ATOMIC); in ieee80211_ocb_rx_no_sta()
81 wiphy_work_queue(local->hw.wiphy, &sdata->work); in ieee80211_ocb_rx_no_sta()
87 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_ocb_finish_sta() local
92 ocb_dbg(sdata, "Adding new IBSS station %pM (dev=%s)\n", in ieee80211_ocb_finish_sta()
93 addr, sdata->name); in ieee80211_ocb_finish_sta()
103 return sta_info_get(sdata, addr); in ieee80211_ocb_finish_sta()
107 static void ieee80211_ocb_housekeeping(struct ieee80211_sub_if_data *sdata) in ieee80211_ocb_housekeeping() argument
109 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_housekeeping()
111 ocb_dbg(sdata, "Running ocb housekeeping\n"); in ieee80211_ocb_housekeeping()
113 ieee80211_sta_expire(sdata, IEEE80211_OCB_PEER_INACTIVITY_LIMIT); in ieee80211_ocb_housekeeping()
119 void ieee80211_ocb_work(struct ieee80211_sub_if_data *sdata) in ieee80211_ocb_work() argument
121 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_work()
124 lockdep_assert_wiphy(sdata->local->hw.wiphy); in ieee80211_ocb_work()
143 ieee80211_ocb_housekeeping(sdata); in ieee80211_ocb_work()
148 struct ieee80211_sub_if_data *sdata = in ieee80211_ocb_housekeeping_timer() local
149 timer_container_of(sdata, t, u.ocb.housekeeping_timer); in ieee80211_ocb_housekeeping_timer()
150 struct ieee80211_local *local = sdata->local; in ieee80211_ocb_housekeeping_timer()
151 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_housekeeping_timer()
155 wiphy_work_queue(local->hw.wiphy, &sdata->work); in ieee80211_ocb_housekeeping_timer()
158 void ieee80211_ocb_setup_sdata(struct ieee80211_sub_if_data *sdata) in ieee80211_ocb_setup_sdata() argument
160 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_setup_sdata()
168 int ieee80211_ocb_join(struct ieee80211_sub_if_data *sdata, in ieee80211_ocb_join() argument
172 struct ieee80211_local *local = sdata->local; in ieee80211_ocb_join()
173 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_join()
177 lockdep_assert_wiphy(sdata->local->hw.wiphy); in ieee80211_ocb_join()
182 sdata->deflink.operating_11g_mode = true; in ieee80211_ocb_join()
183 sdata->deflink.smps_mode = IEEE80211_SMPS_OFF; in ieee80211_ocb_join()
184 sdata->deflink.needed_rx_chains = sdata->local->rx_chains; in ieee80211_ocb_join()
186 err = ieee80211_link_use_channel(&sdata->deflink, &chanreq, in ieee80211_ocb_join()
191 ieee80211_bss_info_change_notify(sdata, changed); in ieee80211_ocb_join()
196 wiphy_work_queue(local->hw.wiphy, &sdata->work); in ieee80211_ocb_join()
198 netif_carrier_on(sdata->dev); in ieee80211_ocb_join()
202 int ieee80211_ocb_leave(struct ieee80211_sub_if_data *sdata) in ieee80211_ocb_leave() argument
204 struct ieee80211_if_ocb *ifocb = &sdata->u.ocb; in ieee80211_ocb_leave()
205 struct ieee80211_local *local = sdata->local; in ieee80211_ocb_leave()
208 lockdep_assert_wiphy(sdata->local->hw.wiphy); in ieee80211_ocb_leave()
211 sta_info_flush(sdata, -1); in ieee80211_ocb_leave()
225 netif_carrier_off(sdata->dev); in ieee80211_ocb_leave()
226 clear_bit(SDATA_STATE_OFFCHANNEL, &sdata->state); in ieee80211_ocb_leave()
227 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_OCB); in ieee80211_ocb_leave()
229 ieee80211_link_release_channel(&sdata->deflink); in ieee80211_ocb_leave()
231 skb_queue_purge(&sdata->skb_queue); in ieee80211_ocb_leave()
233 timer_delete_sync(&sdata->u.ocb.housekeeping_timer); in ieee80211_ocb_leave()