diff options
-rw-r--r-- | net/mac80211/rx.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 82a30c1bf3ab..da92cdef8287 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1788,6 +1788,7 @@ static ieee80211_rx_result debug_noinline | |||
1788 | ieee80211_rx_h_data(struct ieee80211_rx_data *rx) | 1788 | ieee80211_rx_h_data(struct ieee80211_rx_data *rx) |
1789 | { | 1789 | { |
1790 | struct ieee80211_sub_if_data *sdata = rx->sdata; | 1790 | struct ieee80211_sub_if_data *sdata = rx->sdata; |
1791 | struct ieee80211_local *local = rx->local; | ||
1791 | struct net_device *dev = sdata->dev; | 1792 | struct net_device *dev = sdata->dev; |
1792 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)rx->skb->data; | 1793 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)rx->skb->data; |
1793 | __le16 fc = hdr->frame_control; | 1794 | __le16 fc = hdr->frame_control; |
@@ -1819,6 +1820,13 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx) | |||
1819 | dev->stats.rx_packets++; | 1820 | dev->stats.rx_packets++; |
1820 | dev->stats.rx_bytes += rx->skb->len; | 1821 | dev->stats.rx_bytes += rx->skb->len; |
1821 | 1822 | ||
1823 | if (ieee80211_is_data(hdr->frame_control) && | ||
1824 | !is_multicast_ether_addr(hdr->addr1) && | ||
1825 | local->hw.conf.dynamic_ps_timeout > 0 && local->ps_sdata) { | ||
1826 | mod_timer(&local->dynamic_ps_timer, jiffies + | ||
1827 | msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); | ||
1828 | } | ||
1829 | |||
1822 | ieee80211_deliver_skb(rx); | 1830 | ieee80211_deliver_skb(rx); |
1823 | 1831 | ||
1824 | return RX_QUEUED; | 1832 | return RX_QUEUED; |