linux/drivers/net
Vlad Buslov 61081f9c09 net/mlx5e: Always take reference to neigh entry
Neigh entry has reference counter, however it is only used when scheduling
neigh update event. In all other cases reference to neigh entry is not
taken while working with it. Neigh code relies on synchronization provided
by rtnl lock and uses encap list size as implicit reference counter.

To remove dependency on rtnl lock, always take reference to neigh entry
while using it. Remove neigh entry from hash table and delete it only when
reference counter reaches zero. This can result spurious neigh update
events, when there is an event on entry that has zero encaps attached.
However, such events are rare and properly handled by neigh update handler.

Extend encap entry with reference to neigh hash entry in order to be able
to directly release it when encap is detached, instead of lookup nhe by key
through hash table. Extend nhe with reference to device priv structure to
guarantee correctness when nhe is used with stack devices, bond setup, in
which case it is non-trivial to determine correct device when releasing the
nhe.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Jianbo Liu <jianbol@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2019-08-21 15:55:16 -07:00
..
appletalk
arcnet arcnet: com20020-isa: Mark expected switch fall-throughs 2019-07-29 10:23:59 -07:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
caif caif: no need to check return value of debugfs_create functions 2019-08-11 21:31:25 -07:00
can can: mcp251x: remove custom DMA mapped buffer 2019-08-20 13:41:26 +02:00
dsa net: dsa: mv88e6xxx: wrap SERDES IRQ in power function 2019-08-20 12:33:49 -07:00
ethernet net/mlx5e: Always take reference to neigh entry 2019-08-21 15:55:16 -07:00
fddi The main MIPS changes for a pretty light v5.3 cycle, including: 2019-07-17 09:42:03 -07:00
fjes
hamradio mkiss: Use refcount_t for refcount 2019-08-08 17:58:40 -07:00
hippi hippi: Remove call to memset after pci_alloc_consistent 2019-07-15 11:06:27 -07:00
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
ieee802154 ieee802154: no need to check return value of debugfs_create functions 2019-08-10 15:25:48 -07:00
ipvlan ipvlan: set hw_enc_features like macvlan 2019-08-16 15:58:34 -07:00
netdevsim netdevsim: Fix build error without CONFIG_INET 2019-08-20 13:46:32 -07:00
phy net: phy: realtek: support NBase-T MMD EEE registers on RTL8125 2019-08-19 13:04:45 -07:00
plip
ppp compat_ioctl: pppoe: fix PPPOEIOCSFWD handling 2019-07-30 14:42:13 -07:00
slip net: delete "register" keyword 2019-08-08 18:03:42 -07:00
team team: Add vlan tx offload to hw_enc_features 2019-08-08 22:41:41 -07:00
usb r8152: divide the tx and rx bottom functions 2019-08-20 12:18:52 -07:00
vmxnet3 net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
wan net: wan: sdla: Mark expected switch fall-through 2019-07-29 13:57:58 -07:00
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
wireless nl80211: Add support for EDMG channels 2019-08-21 11:07:35 +02:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
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
thunderbolt.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
tun.c tun: mark small packets as owned by the tap sock 2019-07-25 11:38:32 -07:00
veth.c
virtio_net.c
vrf.c vrf: make sure skb->data contains ip header to make routing 2019-07-21 13:32:51 -07:00
vsockmon.c
vxlan.c
xen-netfront.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00