linux/include
Eric Dumazet f8e8f97c11 net: fix a race in gro_cell_poll()
Dmitry Kravkov reported packet drops for GRE packets since GRO support
was added.

There is a race in gro_cell_poll() because we call napi_complete()
without any synchronization with a concurrent gro_cells_receive()

Once bug was triggered, we queued packets but did not schedule NAPI
poll.

We can fix this issue using the spinlock protected the napi_skbs queue,
as we have to hold it to perform skb dequeue anyway.

As we open-code skb_dequeue(), we no longer need to mask IRQS, as both
producer and consumer run under BH context.

Bug added in commit c9e6bc644e (net: add gro_cells infrastructure)

Reported-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Tested-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-12-11 12:49:53 -05:00
..
acpi
asm-generic UAPI: Remove empty non-UAPI Kbuild files 2012-10-17 12:31:15 +01:00
clocksource
crypto Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-14 13:39:34 -07:00
drm drm/radeon: add new SI pci id 2012-11-21 18:37:38 -05:00
keys
linux net: Add support for hardware-offloaded encapsulation 2012-12-09 00:20:28 -05:00
math-emu
media [media] adv7604: Replace prim_mode by mode 2012-11-21 17:43:49 -02:00
memory
misc
net net: fix a race in gro_cell_poll() 2012-12-11 12:49:53 -05:00
pcmcia
ras
rdma
rxrpc
scsi [SCSI] sd: Implement support for WRITE SAME 2012-11-13 22:45:42 -08:00
sound ALSA: Add a reference counter to card instance 2012-10-30 11:07:10 +01:00
target
trace Revert "mm: remove __GFP_NO_KSWAPD" 2012-11-26 17:41:24 -08:00
uapi virtio_net: multiqueue support 2012-12-09 00:30:55 -05:00
video fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
xen Bug-fixes: 2012-11-10 06:56:21 +01:00
Kbuild UAPI: Remove empty non-UAPI Kbuild files 2012-10-17 12:31:15 +01:00