On Fri, Mar 10, 2023 at 11:48:33AM -0800, Tony Nguyen wrote:
From: Dave Ertman david.m.ertman@intel.com
RDMA is not supported in ice on a PF that has been added to a bonded interface. To enforce this, when an interface enters a bond, we unplug the auxiliary device that supports RDMA functionality. This unplug currently happens in the context of handling the netdev bonding event. This event is sent to the ice driver under RTNL context. This is causing a deadlock where the RDMA driver is waiting for the RTNL lock to complete the removal.
Defer the unplugging/re-plugging of the auxiliary device to the service task so that it is not performed under the RTNL lock context.
Cc: stable@vger.kernel.org # 6.1.x Reported-by: Jaroslav Pulchart jaroslav.pulchart@gooddata.com Link: https://lore.kernel.org/netdev/CAK8fFZ6A_Gphw_3-QMGKEFQk=sfCw1Qmq0TVZK3rtAi7... Fixes: 5cb1ebdbc434 ("ice: Fix race condition during interface enslave") Fixes: 4eace75e0853 ("RDMA/irdma: Report the correct link speed") Signed-off-by: Dave Ertman david.m.ertman@intel.com Tested-by: Arpana Arland arpanax.arland@intel.com (A Contingent worker at Intel) Signed-off-by: Tony Nguyen anthony.l.nguyen@intel.com
Note: This was reported as still causing issues [1], however, with details from the reporter we have not been able to reproduce the issue; a newer firmware was reported to fix their problem [2]. As this fixes the bug for other users [3][4], I'm submitting this patch.
v3:
- Add Tested-by
v2: https://lore.kernel.org/netdev/20230217004201.2895321-1-anthony.l.nguyen@int... (Removed from original pull request)
- Reversed order of bit processing in ice_service_task for PLUG/UNPLUG
v1: https://lore.kernel.org/netdev/20230131213703.1347761-2-anthony.l.nguyen@int...
[1] https://lore.kernel.org/intel-wired-lan/ygay1oxikvo.fsf@localhost/ [2] https://lore.kernel.org/intel-wired-lan/ygattz3tjk9.fsf@localhost/ [3] https://lore.kernel.org/netdev/CAK8fFZ5Jjh-ZXfLdupQGqvb9pg7nW-6fWMN3cPMdmQQf... [4] https://lore.kernel.org/intel-wired-lan/16c393e17c552cbf0c3456194456d32ea8bc...
drivers/net/ethernet/intel/ice/ice.h | 14 +++++--------- drivers/net/ethernet/intel/ice/ice_main.c | 19 ++++++++----------- 2 files changed, 13 insertions(+), 20 deletions(-)
Thanks, Reviewed-by: Leon Romanovsky leonro@nvidia.com