forked from luck/tmp_suning_uos_patched
mac80211: Reset the power save timer from master_start_xmit.
When a null data frame is generated from mac80211, it goes through master_start_xmit and not through subif_start_xmit. Hence for the power save timer to be triggered while sending this null data frame also, the timer has to be reset from master_start_xmit. Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
eb46936b9f
commit
d063ed0f0c
|
@ -1296,6 +1296,19 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (!(local->hw.flags & IEEE80211_HW_NO_STACK_DYNAMIC_PS) &&
|
||||
local->dynamic_ps_timeout > 0) {
|
||||
if (local->hw.conf.flags & IEEE80211_CONF_PS) {
|
||||
ieee80211_stop_queues_by_reason(&local->hw,
|
||||
IEEE80211_QUEUE_STOP_REASON_PS);
|
||||
queue_work(local->hw.workqueue,
|
||||
&local->dynamic_ps_disable_work);
|
||||
}
|
||||
|
||||
mod_timer(&local->dynamic_ps_timer, jiffies +
|
||||
msecs_to_jiffies(local->dynamic_ps_timeout));
|
||||
}
|
||||
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
||||
info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
|
||||
|
@ -1475,19 +1488,6 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
if (!(local->hw.flags & IEEE80211_HW_NO_STACK_DYNAMIC_PS) &&
|
||||
local->dynamic_ps_timeout > 0) {
|
||||
if (local->hw.conf.flags & IEEE80211_CONF_PS) {
|
||||
ieee80211_stop_queues_by_reason(&local->hw,
|
||||
IEEE80211_QUEUE_STOP_REASON_PS);
|
||||
queue_work(local->hw.workqueue,
|
||||
&local->dynamic_ps_disable_work);
|
||||
}
|
||||
|
||||
mod_timer(&local->dynamic_ps_timer, jiffies +
|
||||
msecs_to_jiffies(local->dynamic_ps_timeout));
|
||||
}
|
||||
|
||||
nh_pos = skb_network_header(skb) - skb->data;
|
||||
h_pos = skb_transport_header(skb) - skb->data;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user