aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/scan.c
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2010-05-20 18:37:59 +0000
committerDavid S. Miller <davem@davemloft.net>2010-05-21 00:38:33 -0700
commit76cc8b13a6e41b537fd262b600da1571314add62 (patch)
treea8a25a4f23be5c0eeed77dd9fcb30dc9b315e519 /net/wireless/scan.c
parentcan: SJA1000 add missing spin_lock_init() (diff)
downloadlinux-dev-76cc8b13a6e41b537fd262b600da1571314add62.tar.xz
linux-dev-76cc8b13a6e41b537fd262b600da1571314add62.zip
net: fix problem in dequeuing from input_pkt_queue
Fix some issues introduced in batch skb dequeuing for input_pkt_queue. The primary issue it that the queue head must be incremented only after a packet has been processed, that is only after __netif_receive_skb has been called. This is needed for the mechanism to prevent OOO packet in RFS. Also when flushing the input_pkt_queue and process_queue, the process queue should be done first to prevent OOO packets. Because the input_pkt_queue has been effectively split into two queues, the calculation of the tail ptr is no longer correct. The correct value would be head+input_pkt_queue->len+process_queue->len. To avoid this calculation we added an explict input_queue_tail in softnet_data. The tail value is simply incremented when queuing to input_pkt_queue. Signed-off-by: Tom Herbert <therbert@google.com> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless/scan.c')
0 files changed, 0 insertions, 0 deletions