summaryrefslogtreecommitdiffstats
path: root/net/mac80211/tdls.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/tdls.c')
-rw-r--r--net/mac80211/tdls.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c
index 24c37f91ca46..ba8fe48952d9 100644
--- a/net/mac80211/tdls.c
+++ b/net/mac80211/tdls.c
@@ -1994,3 +1994,26 @@ void ieee80211_tdls_chsw_work(struct work_struct *wk)
1994 } 1994 }
1995 rtnl_unlock(); 1995 rtnl_unlock();
1996} 1996}
1997
1998void ieee80211_tdls_handle_disconnect(struct ieee80211_sub_if_data *sdata,
1999 const u8 *peer, u16 reason)
2000{
2001 struct ieee80211_sta *sta;
2002
2003 rcu_read_lock();
2004 sta = ieee80211_find_sta(&sdata->vif, peer);
2005 if (!sta || !sta->tdls) {
2006 rcu_read_unlock();
2007 return;
2008 }
2009 rcu_read_unlock();
2010
2011 tdls_dbg(sdata, "disconnected from TDLS peer %pM (Reason: %u=%s)\n",
2012 peer, reason,
2013 ieee80211_get_reason_code_string(reason));
2014
2015 ieee80211_tdls_oper_request(&sdata->vif, peer,
2016 NL80211_TDLS_TEARDOWN,
2017 WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE,
2018 GFP_ATOMIC);
2019}