diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/cfg.c | 39 | ||||
-rw-r--r-- | net/mac80211/driver-ops.h | 31 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 1 | ||||
-rw-r--r-- | net/mac80211/status.c | 3 |
4 files changed, 0 insertions, 74 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 3d1b091d9b2e..c1fa5775cef2 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -1898,33 +1898,6 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct net_device *dev, | |||
1898 | 1898 | ||
1899 | *cookie = (unsigned long) skb; | 1899 | *cookie = (unsigned long) skb; |
1900 | 1900 | ||
1901 | if (is_offchan && local->ops->offchannel_tx) { | ||
1902 | int ret; | ||
1903 | |||
1904 | IEEE80211_SKB_CB(skb)->band = chan->band; | ||
1905 | |||
1906 | mutex_lock(&local->mtx); | ||
1907 | |||
1908 | if (local->hw_offchan_tx_cookie) { | ||
1909 | mutex_unlock(&local->mtx); | ||
1910 | return -EBUSY; | ||
1911 | } | ||
1912 | |||
1913 | /* TODO: bitrate control, TX processing? */ | ||
1914 | ret = drv_offchannel_tx(local, skb, chan, channel_type, wait); | ||
1915 | |||
1916 | if (ret == 0) | ||
1917 | local->hw_offchan_tx_cookie = *cookie; | ||
1918 | mutex_unlock(&local->mtx); | ||
1919 | |||
1920 | /* | ||
1921 | * Allow driver to return 1 to indicate it wants to have the | ||
1922 | * frame transmitted with a remain_on_channel + regular TX. | ||
1923 | */ | ||
1924 | if (ret != 1) | ||
1925 | return ret; | ||
1926 | } | ||
1927 | |||
1928 | if (is_offchan && local->ops->remain_on_channel) { | 1901 | if (is_offchan && local->ops->remain_on_channel) { |
1929 | unsigned int duration; | 1902 | unsigned int duration; |
1930 | int ret; | 1903 | int ret; |
@@ -2011,18 +1984,6 @@ static int ieee80211_mgmt_tx_cancel_wait(struct wiphy *wiphy, | |||
2011 | 1984 | ||
2012 | mutex_lock(&local->mtx); | 1985 | mutex_lock(&local->mtx); |
2013 | 1986 | ||
2014 | if (local->ops->offchannel_tx_cancel_wait && | ||
2015 | local->hw_offchan_tx_cookie == cookie) { | ||
2016 | ret = drv_offchannel_tx_cancel_wait(local); | ||
2017 | |||
2018 | if (!ret) | ||
2019 | local->hw_offchan_tx_cookie = 0; | ||
2020 | |||
2021 | mutex_unlock(&local->mtx); | ||
2022 | |||
2023 | return ret; | ||
2024 | } | ||
2025 | |||
2026 | if (local->ops->cancel_remain_on_channel) { | 1987 | if (local->ops->cancel_remain_on_channel) { |
2027 | cookie ^= 2; | 1988 | cookie ^= 2; |
2028 | ret = ieee80211_cancel_remain_on_channel_hw(local, cookie); | 1989 | ret = ieee80211_cancel_remain_on_channel_hw(local, cookie); |
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h index 1425380983f7..9001ff331f0a 100644 --- a/net/mac80211/driver-ops.h +++ b/net/mac80211/driver-ops.h | |||
@@ -590,37 +590,6 @@ static inline int drv_cancel_remain_on_channel(struct ieee80211_local *local) | |||
590 | return ret; | 590 | return ret; |
591 | } | 591 | } |
592 | 592 | ||
593 | static inline int drv_offchannel_tx(struct ieee80211_local *local, | ||
594 | struct sk_buff *skb, | ||
595 | struct ieee80211_channel *chan, | ||
596 | enum nl80211_channel_type channel_type, | ||
597 | unsigned int wait) | ||
598 | { | ||
599 | int ret; | ||
600 | |||
601 | might_sleep(); | ||
602 | |||
603 | trace_drv_offchannel_tx(local, skb, chan, channel_type, wait); | ||
604 | ret = local->ops->offchannel_tx(&local->hw, skb, chan, | ||
605 | channel_type, wait); | ||
606 | trace_drv_return_int(local, ret); | ||
607 | |||
608 | return ret; | ||
609 | } | ||
610 | |||
611 | static inline int drv_offchannel_tx_cancel_wait(struct ieee80211_local *local) | ||
612 | { | ||
613 | int ret; | ||
614 | |||
615 | might_sleep(); | ||
616 | |||
617 | trace_drv_offchannel_tx_cancel_wait(local); | ||
618 | ret = local->ops->offchannel_tx_cancel_wait(&local->hw); | ||
619 | trace_drv_return_int(local, ret); | ||
620 | |||
621 | return ret; | ||
622 | } | ||
623 | |||
624 | static inline int drv_set_ringparam(struct ieee80211_local *local, | 593 | static inline int drv_set_ringparam(struct ieee80211_local *local, |
625 | u32 tx, u32 rx) | 594 | u32 tx, u32 rx) |
626 | { | 595 | { |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 400c09bea639..286ac5dbeeea 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1002,7 +1002,6 @@ struct ieee80211_local { | |||
1002 | unsigned int hw_roc_duration; | 1002 | unsigned int hw_roc_duration; |
1003 | u32 hw_roc_cookie; | 1003 | u32 hw_roc_cookie; |
1004 | bool hw_roc_for_tx; | 1004 | bool hw_roc_for_tx; |
1005 | unsigned long hw_offchan_tx_cookie; | ||
1006 | 1005 | ||
1007 | /* dummy netdev for use w/ NAPI */ | 1006 | /* dummy netdev for use w/ NAPI */ |
1008 | struct net_device napi_dev; | 1007 | struct net_device napi_dev; |
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 1658efaa2e8e..a89cca3491b4 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c | |||
@@ -345,9 +345,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
345 | local->hw_roc_skb_for_status = NULL; | 345 | local->hw_roc_skb_for_status = NULL; |
346 | } | 346 | } |
347 | 347 | ||
348 | if (cookie == local->hw_offchan_tx_cookie) | ||
349 | local->hw_offchan_tx_cookie = 0; | ||
350 | |||
351 | cfg80211_mgmt_tx_status( | 348 | cfg80211_mgmt_tx_status( |
352 | skb->dev, cookie, skb->data, skb->len, | 349 | skb->dev, cookie, skb->data, skb->len, |
353 | !!(info->flags & IEEE80211_TX_STAT_ACK), GFP_ATOMIC); | 350 | !!(info->flags & IEEE80211_TX_STAT_ACK), GFP_ATOMIC); |