Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 90585
b: refs/heads/master
c: 84363e6
h: refs/heads/master
i:
  90583: 695ce72
v: v3
  • Loading branch information
Mohamed Abbas authored and John W. Linville committed Apr 8, 2008
1 parent 3aa20f2 commit 6eed875
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 380a942b9177dcae1429fdd0f3639f92d9ab139d
refs/heads/master: 84363e6e07f17f8cc580065260907ee3f0520485
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/iwlwifi/iwl3945-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -5886,6 +5886,7 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
if (priv->error_recovering)
iwl3945_error_recovery(priv);

ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
return;

restart:
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/iwlwifi/iwl4965-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -5714,6 +5714,7 @@ static void iwl4965_alive_start(struct iwl_priv *priv)
iwl4965_error_recovery(priv);

iwlcore_low_level_notify(priv, IWLCORE_START_EVT);
ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
return;

restart:
Expand Down
19 changes: 19 additions & 0 deletions trunk/include/net/mac80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,14 @@
* not do so then mac80211 may add this under certain circumstances.
*/

/**
* enum ieee80211_notification_type - Low level driver notification
* @IEEE80211_NOTIFY_RE_ASSOC: start the re-association sequence
*/
enum ieee80211_notification_types {
IEEE80211_NOTIFY_RE_ASSOC,
};

/**
* struct ieee80211_ht_bss_info - describing BSS's HT characteristics
*
Expand Down Expand Up @@ -1678,4 +1686,15 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u8 tid);
void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
u16 tid);

/**
* ieee80211_notify_mac - low level driver notification
* @hw: pointer as obtained from ieee80211_alloc_hw().
* @notification_types: enum ieee80211_notification_types
*
* This function must be called by low level driver to inform mac80211 of
* low level driver status change or force mac80211 to re-assoc for low
* level driver internal error that require re-assoc.
*/
void ieee80211_notify_mac(struct ieee80211_hw *hw,
enum ieee80211_notification_types notif_type);
#endif /* MAC80211_H */
23 changes: 23 additions & 0 deletions trunk/net/mac80211/ieee80211_sta.c
Original file line number Diff line number Diff line change
Expand Up @@ -4225,3 +4225,26 @@ int ieee80211_sta_disassociate(struct net_device *dev, u16 reason)
ieee80211_set_disassoc(dev, ifsta, 0);
return 0;
}

void ieee80211_notify_mac(struct ieee80211_hw *hw,
enum ieee80211_notification_types notif_type)
{
struct ieee80211_local *local = hw_to_local(hw);
struct ieee80211_sub_if_data *sdata;

switch (notif_type) {
case IEEE80211_NOTIFY_RE_ASSOC:
rcu_read_lock();
list_for_each_entry_rcu(sdata, &local->interfaces, list) {

if (sdata->vif.type == IEEE80211_IF_TYPE_STA) {
ieee80211_sta_req_auth(sdata->dev,
&sdata->u.sta);
}

}
rcu_read_unlock();
break;
}
}
EXPORT_SYMBOL(ieee80211_notify_mac);

0 comments on commit 6eed875

Please sign in to comment.