linux/drivers/net/ethernet
Mark Zhang 6838a35a45 net/mlx5: Use a separate work queue for fib event handling
In VF lag mode when remove the bonding module without bring down the
bond device first, we could potentially have circular dependency when we
unload IB devices and also handle fib events:
1. The bond work starts first;
2. The "modprobe -rv bonding" process tries to release the bond device,
   with the "pernet_ops_rwsem" lock hold;
3. The bond work blocks in unregister_netdevice_notifier() and waits for
the lock because fib event came right before;
4. The kernel fib module tries to free all the fib entries by broadcasting
   the "FIB_EVENT_NH_DEL" event;
5. Upon the fib event this lag_mp module holds the fib lock and queue a
   fib work.
So:
   bond work -> modprobe task -> kernel fib module -> lag_mp -> bond work

Today we either reload IB devices in roce lag in nic mode or either handle
fib events in switchdev mode, but a new feature could change that we'll
need to reload IB devices also in switchdev mode so this is a future proof
fix as one may not notice this later.

Signed-off-by: Mark Zhang <markz@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2020-03-29 23:42:20 -07:00
..
3com net: typhoon: Add required whitespace after keywords 2020-03-23 22:10:28 -07:00
8390
adaptec net/adaptec: Clean driver versions 2020-02-24 11:23:36 -08:00
aeroflex net/aeroflex: Don't assign FW if it is not available 2020-02-24 11:23:37 -08:00
agere net/agere: Delete unneeded driver version 2020-02-24 11:23:37 -08:00
alacritech net/alacritech: Delete driver version 2020-02-24 11:23:37 -08:00
allwinner net/allwinner: Remove driver version 2020-02-24 11:23:37 -08:00
alteon net/alteon: Properly report FW version 2020-02-24 11:23:37 -08:00
altera net/althera: Delete hardcoded driver version 2020-02-24 11:23:37 -08:00
amazon Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
amd xgbe: let core reject the unsupported coalescing parameters 2020-03-05 12:12:34 -08:00
apm net/apm: Properly mark absence of FW 2020-02-24 11:24:47 -08:00
apple
aquantia net: atlantic: add XPN handling 2020-03-26 20:17:37 -07:00
arc net/arc: Delete driver version 2020-02-24 11:24:47 -08:00
atheros atl2: remove unused variable 'atl2_driver_string' 2020-03-26 11:22:20 -07:00
aurora net: convert additional drivers to use phy_do_ioctl 2020-01-22 21:16:32 +01:00
broadcom bgmac: configure MTU and add support for frames beyond 8192 byte size 2020-03-27 16:07:24 -07:00
brocade net: bna: reject unsupported coalescing params 2020-03-10 16:28:53 -07:00
cadence net: macb: use resolved link config in mac_link_up() 2020-02-27 12:02:14 -08:00
calxeda
cavium net: thunderx: remove set but not used variable 'tail' 2020-03-23 21:53:32 -07:00
chelsio Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
cirrus net/cirrus: Delete driver version 2020-03-03 17:54:54 -08:00
cisco enic: let core reject the unsupported coalescing parameters 2020-03-05 12:12:34 -08:00
cortina net: gemini: reject unsupported coalescing params 2020-03-10 16:28:53 -07:00
davicom net/davicom: Delete ethtool version assignment 2020-03-03 17:54:54 -08:00
dec net: tulip: Replace zero-length array with flexible-array member 2020-03-05 14:55:48 -08:00
dlink net/dlink: Remove driver version and release date 2020-03-03 17:54:54 -08:00
emulex net: be2net: reject unsupported coalescing params 2020-03-12 11:32:35 -07:00
ezchip
faraday ftgmac100: Remove redundant judgement 2020-03-11 13:38:19 -07:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
fujitsu
google
hisilicon net: hns3: refactor mailbox response scheme between PF and VF 2020-03-21 20:22:25 -07:00
huawei hinic: fix wrong value of MIN_SKB_LEN 2020-03-21 19:44:16 -07:00
i825xx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-12 22:34:48 -07:00
intel ice: add a devlink region for dumping NVM contents 2020-03-26 19:39:26 -07:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
mediatek net: phylink: propagate resolved link config via mac_link_up() 2020-02-27 12:02:14 -08:00
mellanox net/mlx5: Use a separate work queue for fib event handling 2020-03-29 23:42:20 -07:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2020-03-29 21:25:29 -07:00
microchip
moxa
mscc net: dsa: felix: support changing the MTU 2020-03-27 16:07:25 -07:00
myricom net: myri10ge: reject unsupported coalescing params 2020-03-14 21:13:54 -07:00
natsemi net/macsonic: Remove interrupt handler wrapper 2020-02-16 19:48:22 -08:00
neterion net: vxge: fix wrong __VA_ARGS__ usage 2020-03-16 15:03:59 -07:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
ni net: nixge: let core reject the unsupported coalescing parameters 2020-03-14 21:13:54 -07:00
nvidia
nxp net: convert suitable drivers to use phy_do_ioctl_running 2020-01-23 10:49:30 +01:00
oki-semi
packetengines
pasemi
pensando Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
qlogic qed: Fix race condition between scheduling and destroying the slowpath workqueue 2020-03-29 21:50:17 -07:00
qualcomm net: rmnet: set NETIF_F_LLTX flag 2020-03-08 21:36:37 -07:00
rdc
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2020-03-29 21:25:29 -07:00
renesas sh_eth: use Gigabit register map for R7S72100 2020-02-16 19:44:41 -08:00
rocker
samsung net: sxgbe: reject unsupported coalescing params 2020-03-14 21:13:55 -07:00
seeq
sfc sfc: falcon: convert to use i2c_new_client_device() 2020-03-26 19:31:21 -07:00
sgi net: sgi: ioc3-eth: Remove phy workaround 2020-03-09 10:09:45 -07:00
silan
sis
smsc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
socionext net: socionext: reject unsupported coalescing params 2020-03-17 20:56:57 -07:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
sun net: sun: use pci_status_get_and_clear_errors 2020-03-04 14:21:00 -08:00
synopsys net: dwc-xlgmac: let core reject the unsupported coalescing parameters 2020-03-17 20:56:57 -07:00
tehuti net: tehuti: reject unsupported coalescing params 2020-03-17 20:56:57 -07:00
ti net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver 2020-03-26 20:01:14 -07:00
toshiba toshiba: Replace zero-length array with flexible-array member 2020-02-24 15:26:17 -08:00
tundra
via net: via: reject unsupported coalescing params 2020-03-14 21:13:55 -07:00
wiznet
xilinx net: axienet: Allow DMA to beyond 4GB 2020-03-24 16:33:05 -07:00
xircom
xscale
dnet.c net/dnet: Delete static version from the driver 2020-03-03 17:54:55 -08:00
dnet.h net/dnet: Delete static version from the driver 2020-03-03 17:54:55 -08:00
ec_bhf.c
ethoc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
fealnx.c net/fealnx: Delete driver version 2020-03-03 17:54:55 -08:00
jme.c net: jme: reject unsupported coalescing params 2020-03-14 21:13:54 -07:00
jme.h
Kconfig
korina.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
lantiq_etop.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-01-28 16:02:33 -08:00
lantiq_xrx200.c
Makefile