linux_dsm_epyc7002/drivers/net
Eric Dumazet 59cbf56fcd vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
Same reasons than the ones explained in commit 4179cb5a4c
("vxlan: test dev->flags & IFF_UP before calling netif_rx()")

netif_rx() or gro_cells_receive() must be called under a strict contract.

At device dismantle phase, core networking clears IFF_UP
and flush_all_backlogs() is called after rcu grace period
to make sure no incoming packet might be in a cpu backlog
and still referencing the device.

A similar protocol is used for gro_cells infrastructure, as
gro_cells_destroy() will be called only after a full rcu
grace period is observed after IFF_UP has been cleared.

Most drivers call netif_rx() from their interrupt handler,
and since the interrupts are disabled at device dismantle,
netif_rx() does not have to check dev->flags & IFF_UP

Virtual drivers do not have this guarantee, and must
therefore make the check themselves.

Otherwise we risk use-after-free and/or crashes.

Fixes: d342894c5d ("vxlan: virtual extensible lan")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-03-10 11:05:52 -07:00
..
appletalk
arcnet
bonding net: Remove switchdev.h inclusion from team/bond/vlan 2019-02-24 17:40:46 -08:00
caif
can peak_usb: fix clang build warning 2019-03-07 09:39:46 -08:00
dsa net: dsa: mv88e6xxx: Set correct interface mode for CPU/DSA ports 2019-03-08 22:55:28 -08:00
ethernet net: hns3: fix to stop multiple HNS reset due to the AER changes 2019-03-09 22:58:47 -08:00
fddi
fjes
hamradio net: hamradio: remove unused hweight*() defines 2019-02-18 12:10:02 -08:00
hippi
hyperv hv_netvsc: Fix IP header checksum for coalesced packets 2019-02-26 14:45:02 -08:00
ieee802154
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-24 12:06:19 -08:00
netdevsim
phy phy: mdio-mux: fix Kconfig dependencies 2019-03-04 13:12:48 -08:00
plip
ppp
slip
team team: Free BPF filter when unregistering netdev 2019-03-04 10:57:29 -08:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-04 13:26:15 -08:00
vmxnet3
wan net: wan: z85230: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-25 14:36:15 -08:00
wimax
wireless Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2019-02-28 11:50:40 +02:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-02 12:54:35 -08:00
dummy.c
eql.c
geneve.c geneve: correctly handle ipv6.disable module parameter 2019-03-01 22:07:56 -08:00
gtp.c
ifb.c
Kconfig net: devlink: turn devlink into a built-in 2019-02-26 08:49:05 -08:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: add ndo_change_proto_down support 2019-02-24 13:01:04 -08:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c net: Don't set transport offset to invalid value 2019-02-22 12:55:31 -08:00
thunderbolt.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-02 12:54:35 -08:00
veth.c veth: Fix -Wformat-truncation 2019-02-23 13:44:58 -08:00
virtio_net.c
vrf.c net: vrf: remove MTU limits for vrf device 2019-02-21 13:10:08 -08:00
vsockmon.c
vxlan.c vxlan: test dev->flags & IFF_UP before calling gro_cells_receive() 2019-03-10 11:05:52 -07:00
xen-netfront.c