mac80211: Fix regression in mesh forwarding path.
The removal of the master netdev broke the mesh forwarding path. This patch fixes it by using the new internal 'pending' queue. As a result of this change, mesh forwarding no longer does the inefficient 802.11 -> 802.3 -> 802.11 conversion that was done before. [Changes since v1] Suggested by Johannes: - Select queue before adding to mpath queue - ieee80211_add_pending_skb -> ieee80211_add_pending_skbs - Remove unnecessary header wme.h Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: Andrey Yurovsky <andrey@cozybit.com> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
3d34deb673
commit
249b405cf8
@ -499,11 +499,9 @@ enddel:
|
||||
*/
|
||||
void mesh_path_tx_pending(struct mesh_path *mpath)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
|
||||
while ((skb = skb_dequeue(&mpath->frame_queue)) &&
|
||||
(mpath->flags & MESH_PATH_ACTIVE))
|
||||
dev_queue_xmit(skb);
|
||||
if (mpath->flags & MESH_PATH_ACTIVE)
|
||||
ieee80211_add_pending_skbs(mpath->sdata->local,
|
||||
&mpath->frame_queue);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user