diff options
-rw-r--r-- | include/net/cfg80211.h | 16 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 8 | ||||
-rw-r--r-- | net/wireless/mlme.c | 13 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 11 | ||||
-rw-r--r-- | net/wireless/nl80211.h | 12 |
5 files changed, 31 insertions, 29 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index d1b8f0d53c57..ec33096fc655 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -917,28 +917,28 @@ void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len); | |||
917 | void cfg80211_send_rx_assoc(struct net_device *dev, const u8 *buf, size_t len); | 917 | void cfg80211_send_rx_assoc(struct net_device *dev, const u8 *buf, size_t len); |
918 | 918 | ||
919 | /** | 919 | /** |
920 | * cfg80211_send_rx_deauth - notification of processed deauthentication | 920 | * cfg80211_send_deauth - notification of processed deauthentication |
921 | * @dev: network device | 921 | * @dev: network device |
922 | * @buf: deauthentication frame (header + body) | 922 | * @buf: deauthentication frame (header + body) |
923 | * @len: length of the frame data | 923 | * @len: length of the frame data |
924 | * | 924 | * |
925 | * This function is called whenever deauthentication has been processed in | 925 | * This function is called whenever deauthentication has been processed in |
926 | * station mode. | 926 | * station mode. This includes both received deauthentication frames and |
927 | * locally generated ones. | ||
927 | */ | 928 | */ |
928 | void cfg80211_send_rx_deauth(struct net_device *dev, const u8 *buf, | 929 | void cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len); |
929 | size_t len); | ||
930 | 930 | ||
931 | /** | 931 | /** |
932 | * cfg80211_send_rx_disassoc - notification of processed disassociation | 932 | * cfg80211_send_disassoc - notification of processed disassociation |
933 | * @dev: network device | 933 | * @dev: network device |
934 | * @buf: disassociation response frame (header + body) | 934 | * @buf: disassociation response frame (header + body) |
935 | * @len: length of the frame data | 935 | * @len: length of the frame data |
936 | * | 936 | * |
937 | * This function is called whenever disassociation has been processed in | 937 | * This function is called whenever disassociation has been processed in |
938 | * station mode. | 938 | * station mode. This includes both received disassociation frames and locally |
939 | * generated ones. | ||
939 | */ | 940 | */ |
940 | void cfg80211_send_rx_disassoc(struct net_device *dev, const u8 *buf, | 941 | void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len); |
941 | size_t len); | ||
942 | 942 | ||
943 | /** | 943 | /** |
944 | * cfg80211_hold_bss - exclude bss from expiration | 944 | * cfg80211_hold_bss - exclude bss from expiration |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 132938b073dc..08db02c237c9 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -325,6 +325,10 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata, | |||
325 | /* u.deauth.reason_code == u.disassoc.reason_code */ | 325 | /* u.deauth.reason_code == u.disassoc.reason_code */ |
326 | mgmt->u.deauth.reason_code = cpu_to_le16(reason); | 326 | mgmt->u.deauth.reason_code = cpu_to_le16(reason); |
327 | 327 | ||
328 | if (stype == IEEE80211_STYPE_DEAUTH) | ||
329 | cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, skb->len); | ||
330 | else | ||
331 | cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, skb->len); | ||
328 | ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED); | 332 | ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED); |
329 | } | 333 | } |
330 | 334 | ||
@@ -1187,7 +1191,7 @@ static void ieee80211_rx_mgmt_deauth(struct ieee80211_sub_if_data *sdata, | |||
1187 | 1191 | ||
1188 | ieee80211_set_disassoc(sdata, true, false, 0); | 1192 | ieee80211_set_disassoc(sdata, true, false, 0); |
1189 | ifmgd->flags &= ~IEEE80211_STA_AUTHENTICATED; | 1193 | ifmgd->flags &= ~IEEE80211_STA_AUTHENTICATED; |
1190 | cfg80211_send_rx_deauth(sdata->dev, (u8 *) mgmt, len); | 1194 | cfg80211_send_deauth(sdata->dev, (u8 *) mgmt, len); |
1191 | } | 1195 | } |
1192 | 1196 | ||
1193 | 1197 | ||
@@ -1218,7 +1222,7 @@ static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata, | |||
1218 | } | 1222 | } |
1219 | 1223 | ||
1220 | ieee80211_set_disassoc(sdata, false, false, reason_code); | 1224 | ieee80211_set_disassoc(sdata, false, false, reason_code); |
1221 | cfg80211_send_rx_disassoc(sdata->dev, (u8 *) mgmt, len); | 1225 | cfg80211_send_disassoc(sdata->dev, (u8 *) mgmt, len); |
1222 | } | 1226 | } |
1223 | 1227 | ||
1224 | 1228 | ||
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index bec5721b6f99..33ff7cca496b 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -28,19 +28,18 @@ void cfg80211_send_rx_assoc(struct net_device *dev, const u8 *buf, size_t len) | |||
28 | } | 28 | } |
29 | EXPORT_SYMBOL(cfg80211_send_rx_assoc); | 29 | EXPORT_SYMBOL(cfg80211_send_rx_assoc); |
30 | 30 | ||
31 | void cfg80211_send_rx_deauth(struct net_device *dev, const u8 *buf, size_t len) | 31 | void cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len) |
32 | { | 32 | { |
33 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; | 33 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; |
34 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); | 34 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); |
35 | nl80211_send_rx_deauth(rdev, dev, buf, len); | 35 | nl80211_send_deauth(rdev, dev, buf, len); |
36 | } | 36 | } |
37 | EXPORT_SYMBOL(cfg80211_send_rx_deauth); | 37 | EXPORT_SYMBOL(cfg80211_send_deauth); |
38 | 38 | ||
39 | void cfg80211_send_rx_disassoc(struct net_device *dev, const u8 *buf, | 39 | void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len) |
40 | size_t len) | ||
41 | { | 40 | { |
42 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; | 41 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; |
43 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); | 42 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); |
44 | nl80211_send_rx_disassoc(rdev, dev, buf, len); | 43 | nl80211_send_disassoc(rdev, dev, buf, len); |
45 | } | 44 | } |
46 | EXPORT_SYMBOL(cfg80211_send_rx_disassoc); | 45 | EXPORT_SYMBOL(cfg80211_send_disassoc); |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index c04df6a6af78..195424eee77d 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -3415,17 +3415,16 @@ void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev, | |||
3415 | nl80211_send_mlme_event(rdev, netdev, buf, len, NL80211_CMD_ASSOCIATE); | 3415 | nl80211_send_mlme_event(rdev, netdev, buf, len, NL80211_CMD_ASSOCIATE); |
3416 | } | 3416 | } |
3417 | 3417 | ||
3418 | void nl80211_send_rx_deauth(struct cfg80211_registered_device *rdev, | 3418 | void nl80211_send_deauth(struct cfg80211_registered_device *rdev, |
3419 | struct net_device *netdev, const u8 *buf, | 3419 | struct net_device *netdev, const u8 *buf, size_t len) |
3420 | size_t len) | ||
3421 | { | 3420 | { |
3422 | nl80211_send_mlme_event(rdev, netdev, buf, len, | 3421 | nl80211_send_mlme_event(rdev, netdev, buf, len, |
3423 | NL80211_CMD_DEAUTHENTICATE); | 3422 | NL80211_CMD_DEAUTHENTICATE); |
3424 | } | 3423 | } |
3425 | 3424 | ||
3426 | void nl80211_send_rx_disassoc(struct cfg80211_registered_device *rdev, | 3425 | void nl80211_send_disassoc(struct cfg80211_registered_device *rdev, |
3427 | struct net_device *netdev, const u8 *buf, | 3426 | struct net_device *netdev, const u8 *buf, |
3428 | size_t len) | 3427 | size_t len) |
3429 | { | 3428 | { |
3430 | nl80211_send_mlme_event(rdev, netdev, buf, len, | 3429 | nl80211_send_mlme_event(rdev, netdev, buf, len, |
3431 | NL80211_CMD_DISASSOCIATE); | 3430 | NL80211_CMD_DISASSOCIATE); |
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h index b77af4ab80be..55686fc264f0 100644 --- a/net/wireless/nl80211.h +++ b/net/wireless/nl80211.h | |||
@@ -17,11 +17,11 @@ extern void nl80211_send_rx_auth(struct cfg80211_registered_device *rdev, | |||
17 | extern void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev, | 17 | extern void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev, |
18 | struct net_device *netdev, | 18 | struct net_device *netdev, |
19 | const u8 *buf, size_t len); | 19 | const u8 *buf, size_t len); |
20 | extern void nl80211_send_rx_deauth(struct cfg80211_registered_device *rdev, | 20 | extern void nl80211_send_deauth(struct cfg80211_registered_device *rdev, |
21 | struct net_device *netdev, | 21 | struct net_device *netdev, |
22 | const u8 *buf, size_t len); | 22 | const u8 *buf, size_t len); |
23 | extern void nl80211_send_rx_disassoc(struct cfg80211_registered_device *rdev, | 23 | extern void nl80211_send_disassoc(struct cfg80211_registered_device *rdev, |
24 | struct net_device *netdev, | 24 | struct net_device *netdev, |
25 | const u8 *buf, size_t len); | 25 | const u8 *buf, size_t len); |
26 | 26 | ||
27 | #endif /* __NET_WIRELESS_NL80211_H */ | 27 | #endif /* __NET_WIRELESS_NL80211_H */ |