linux/drivers/net/ethernet/netronome/nfp
Jakub Kicinski d6e1ab9ea3 nfp: don't hold PF lock while enabling SR-IOV
Enabling SR-IOV VFs will cause the PCI subsystem to schedule a
work and flush its workqueue.  Since the nfp driver schedules its
own work we can't enable VFs while holding driver load.  Commit
6d48ceb27a ("nfp: allocate a private workqueue for driver work")
tried to avoid this deadlock by creating a separate workqueue.
Unfortunately, due to the architecture of workqueue subsystem this
does not guarantee a separate thread of execution.  Luckily
we can simply take pci_enable_sriov() from under the driver lock.

Take pci_disable_sriov() from under the lock too for symmetry.

Fixes: 6d48ceb27a ("nfp: allocate a private workqueue for driver work")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-23 20:39:44 -07:00
..
bpf nfp: move basic eBPF stats to app-specific code 2017-05-31 17:58:13 -04:00
flower nfp: do not update MTU from BH in flower app 2017-08-11 14:50:09 -07:00
nfpcore nfp: remove unused nfp_cpp_area_check_range() 2017-06-27 15:48:47 -04:00
nic nfp: report app name in ethtool -i 2017-05-31 17:58:13 -04:00
Makefile nfp: add metadata to each flow offload 2017-07-01 08:51:32 -07:00
nfp_app_nic.c nfp: remove legacy MAC address lookup 2017-07-05 09:13:07 +01:00
nfp_app.c nfp: flower: add Kconfig for flower app 2017-06-27 15:48:50 -04:00
nfp_app.h nfp: move representors' struct net_device_ops to shared code 2017-06-27 15:48:48 -04:00
nfp_asm.h nfp: move eBPF offload files to BPF app directory 2017-05-31 17:58:13 -04:00
nfp_devlink.c nfp: devlink add support for getting eswitch mode 2017-06-25 11:42:01 -04:00
nfp_hwmon.c nfp: add hwmon support 2017-05-30 11:27:06 -04:00
nfp_main.c nfp: don't hold PF lock while enabling SR-IOV 2017-08-23 20:39:44 -07:00
nfp_main.h nfp: remove legacy MAC address lookup 2017-07-05 09:13:07 +01:00
nfp_net_common.c nfp: fix infinite loop on umapping cleanup 2017-08-18 10:28:06 -07:00
nfp_net_ctrl.h nfp: add VLAN filtering support 2017-06-19 00:11:49 -04:00
nfp_net_debugfs.c nfp: make sure debug accesses don't depend on netdevs 2017-06-07 12:51:39 -04:00
nfp_net_ethtool.c nfp: report application FW build name in ethtool -i 2017-06-09 12:52:09 -04:00
nfp_net_main.c nfp: remove legacy MAC address lookup 2017-07-05 09:13:07 +01:00
nfp_net_repr.c nfp: provide infrastructure for offloading flower based TC filters 2017-07-01 08:51:32 -07:00
nfp_net_repr.h nfp: extend flower matching capabilities 2017-07-01 08:51:32 -07:00
nfp_net.h nfp: add support for tx/rx with metadata portid 2017-06-25 11:42:01 -04:00
nfp_netvf_main.c nfp: advertise support for NFD ABI 0.5 2017-06-07 12:51:42 -04:00
nfp_port.c nfp: improve order of interfaces in breakout mode 2017-07-05 09:13:07 +01:00
nfp_port.h nfp: provide infrastructure for offloading flower based TC filters 2017-07-01 08:51:32 -07:00