gro: Defer clearing of flush bit in tunnel paths
authorAlexander Duyck <aduyck@mirantis.com>
Wed, 9 Mar 2016 17:24:23 +0000 (09:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 13 Mar 2016 19:01:00 +0000 (15:01 -0400)
commitc194cf93c164ed1c71142485ee0f70f9f2d1fe35
tree5585666fad60762cc28cffe1013f76c05877fc40
parent3a8befcd7872f572882ad7e14994a17f9b55dd4e
gro: Defer clearing of flush bit in tunnel paths

This patch updates the GRO handlers for GRE, VXLAN, GENEVE, and FOU so that
we do not clear the flush bit until after we have called the next level GRO
handler.  Previously this was being cleared before parsing through the list
of frames, however this resulted in several paths where either the bit
needed to be reset but wasn't as in the case of FOU, or cases where it was
being set as in GENEVE.  By just deferring the clearing of the bit until
after the next level protocol has been parsed we can avoid any unnecessary
bit twiddling and avoid bugs.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/geneve.c
drivers/net/vxlan.c
net/ipv4/fou.c
net/ipv4/gre_offload.c