Hi, > -----Original Message----- > From: Michael Baum <[email protected]> > Sent: Thursday, November 10, 2022 12:30 AM > To: [email protected] > Cc: Matan Azrad <[email protected]>; Raslan Darawsheh > <[email protected]>; Slava Ovsiienko <[email protected]>; > [email protected]; [email protected] > Subject: [PATCH v2] net/mlx5: fix port's event cleaning order > > The shared IB device (sh) has per port data with filed for interrupt > handler port_id. It used by shared interrupt handler to find the > corresponding rte_eth device by IB port index. > If value is equal or greater RTE_MAX_ETHPORTS it means there is no > subhandler installed for specified IB port index. > > When a few ports are created under same sh, the sh is created with the > first port and the interrupt handler port_id is initialized to > RTE_MAX_ETHPORTS for each port. > In port creation, the interrupt handler port_id is updated with the > correct value. Since this updating, the mlx5_dev_interrupt_nl_cb > function uses this port and its priv structure. > However, when the ports are closed, this filed isn't updated and the > interrupt handler continue working until it is uninstalled in SH > destruction. > If mlx5_dev_interrupt_nl_cb is called between port closing and SH > destruction, it uses invalid port causing a crash. > > This patch adds interrupt handler port_id updating to the close function > and add memory barrier to make sure it is done before priv reset. > > Fixes: 655c3c26c11e ("net/mlx5: fix initial link status detection") > Cc: [email protected] > Cc: [email protected] > > Signed-off-by: Michael Baum <[email protected]> > Acked-by: Matan Azrad <[email protected]> > --- > > v2: fix typo in commit message. >
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh

