OpenCloudOS-Kernel/drivers/net/ethernet/intel/ice
Dave Ertman 5dbbbd01cb ice: Avoid RTNL lock when re-creating auxiliary device
If a call to re-create the auxiliary device happens in a context that has
already taken the RTNL lock, then the call flow that recreates auxiliary
device can hang if there is another attempt to claim the RTNL lock by the
auxiliary driver.

To avoid this, any call to re-create auxiliary devices that comes from
an source that is holding the RTNL lock (e.g. netdev notifier when
interface exits a bond) should execute in a separate thread.  To
accomplish this, add a flag to the PF that will be evaluated in the
service task and dealt with there.

Fixes: f9f5301e7e ("ice: Register auxiliary device to provide RDMA")
Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
Reviewed-by: Jonathan Toppins <jtoppins@redhat.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2022-02-10 08:47:27 -08:00
..
Makefile ice: ndo_setup_tc implementation for PF 2021-10-11 09:03:04 -07:00
ice.h ice: Avoid RTNL lock when re-creating auxiliary device 2022-02-10 08:47:27 -08:00
ice_adminq_cmd.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_arfs.c ice: make use of ice_for_each_* macros 2021-10-15 07:39:03 -07:00
ice_arfs.h ice: use static inline for dummy functions 2021-06-07 08:59:01 -07:00
ice_base.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-23 16:09:58 -08:00
ice_base.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
ice_cgu_regs.h ice: ensure the hardware Clock Generation Unit is configured 2021-12-21 09:11:40 -08:00
ice_common.c ice: fix an error code in ice_cfg_phy_fec() 2022-02-10 07:42:33 -08:00
ice_common.h ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_controlq.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_controlq.h ice: add support for sideband messages 2021-06-11 07:38:00 -07:00
ice_dcb.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_dcb.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_dcb_lib.c ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_dcb_lib.h ice: Add infrastructure for mqprio support via ndo_setup_tc 2021-10-20 15:57:54 -07:00
ice_dcb_nl.c ice: Fix problems with DSCP QoS implementation 2021-12-07 13:21:01 -08:00
ice_dcb_nl.h ice: use static inline for dummy functions 2021-06-07 08:59:01 -07:00
ice_devids.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-22 11:41:16 +01:00
ice_devlink.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
ice_devlink.h net/ice: Remove unused enum 2021-11-30 08:02:12 -08:00
ice_eswitch.c ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_eswitch.h ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_ethtool.c ice: tighter control over VSI_DOWN state 2021-12-15 08:48:26 -08:00
ice_ethtool_fdir.c ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_fdir.c ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_fdir.h ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_flex_pipe.c ice: Optimize a few bitmap operations 2022-01-06 10:15:25 -08:00
ice_flex_pipe.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_flex_type.h ice: refactor PTYPE validating 2021-12-14 08:06:47 -08:00
ice_flow.c ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_flow.h ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_fltr.c ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_fltr.h ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_fw_update.c ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_fw_update.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_hw_autogen.h ice: support crosstimestamping on E822 devices if supported 2021-12-21 09:11:40 -08:00
ice_idc.c net/ice: Add support for enable_iwarp and enable_roce devlink param 2021-11-22 08:41:56 -08:00
ice_idc_int.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_lag.c ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler 2022-02-10 08:47:26 -08:00
ice_lag.h ice: Add initial support framework for LAG 2021-02-08 16:27:01 -08:00
ice_lan_tx_rx.h ice: fix IPIP and SIT TSO offload 2022-02-10 08:47:21 -08:00
ice_lib.c ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_lib.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_main.c ice: Avoid RTNL lock when re-creating auxiliary device 2022-02-10 08:47:27 -08:00
ice_nvm.c net: fixup build after bpf header changes 2022-01-04 12:34:19 +00:00
ice_nvm.h ice: support immediate firmware activation via devlink reload 2021-12-15 08:40:38 -08:00
ice_osdep.h
ice_protocol_type.h ice: support for GRE in eswitch 2021-10-28 11:00:20 -07:00
ice_ptp.c ice: Use bitmap_free() to free bitmap 2022-01-06 10:15:25 -08:00
ice_ptp.h ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_ptp_consts.h ice: ensure the hardware Clock Generation Unit is configured 2021-12-21 09:11:40 -08:00
ice_ptp_hw.c ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_ptp_hw.h ice: exit bypass mode once hardware finishes timestamp calibration 2021-12-21 09:11:40 -08:00
ice_repr.c ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_repr.h ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_sbq_cmd.h ice: add support for sideband messages 2021-06-11 07:38:00 -07:00
ice_sched.c ice: Remove unnecessary casts 2021-12-14 10:19:14 -08:00
ice_sched.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_sriov.c ice: Remove enum ice_status 2021-12-14 10:19:13 -08:00
ice_sriov.h ice: Use int for ice_status 2021-12-14 10:19:13 -08:00
ice_switch.c ice: Slightly simply ice_find_free_recp_res_idx 2022-01-06 10:15:25 -08:00
ice_switch.h ice: Cleanup after ice_status removal 2021-12-14 10:19:13 -08:00
ice_tc_lib.c ice: Propagate error codes 2021-12-14 10:19:14 -08:00
ice_tc_lib.h ice: VXLAN and Geneve TC support 2021-10-28 11:00:18 -07:00
ice_trace.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00
ice_txrx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
ice_txrx.h ice: xsk: fix cleaned_count setting 2021-12-17 11:18:21 -08:00
ice_txrx_lib.c ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_txrx_lib.h ice: propagate xdp_ring onto rx_ring 2021-10-15 07:39:03 -07:00
ice_type.h ice: Add flow director support for channel mode 2021-12-30 13:16:07 +00:00
ice_virtchnl_allowlist.c ice: Enable RSS configure for AVF 2021-04-22 09:26:22 -07:00
ice_virtchnl_allowlist.h ice: Allow ignoring opcodes on specific VF 2021-04-22 09:26:22 -07:00
ice_virtchnl_fdir.c ice: Remove excess error variables 2021-12-14 10:19:13 -08:00
ice_virtchnl_fdir.h ice: Check FDIR program status for AVF 2021-03-22 11:32:12 -07:00
ice_virtchnl_pf.c ice: improve switchdev's slow-path 2022-01-06 10:15:09 -08:00
ice_virtchnl_pf.h ice: refactor PTYPE validating 2021-12-14 08:06:47 -08:00
ice_xsk.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
ice_xsk.h ice: split ice_ring onto Tx/Rx separate structs 2021-10-15 07:39:02 -07:00