[PATCH v2 net-next 0/10] pds_core: Various improvements and AQ race condition cleanup

Brett Creeley
2024-01-26T17:43:10Z

This series includes the following changes:

There can be many users of the pds_core's adminq. This includes
pds_core's uses and any clients that depend on it. When the pds_core
device goes through a reset for any reason the adminq is freed
and reconfigured. There are some gaps in the current implementation
that will cause crashes during reset if any of the previously mentioned
users of the adminq attempt to use it after it's been freed.

Issues around how resets are handled, specifically regarding the driver's
error handlers.

Some general cleanups.

v1:
https://lore.kernel.org/netdev/20240104171221.31399-1-brett.creeley@amd.com/

v2:
- Combined the RCT clean-ups with an incorrect goto label fix
- Added a couple more patches related to reset flows
- Slightly updated the cover letter to mention the extra patches that
were added
- Changed a function used only once to be static

Brett Creeley (10):
pds_core: Prevent health thread from running during reset/remove
pds_core: Cancel AQ work on teardown
pds_core: Use struct pdsc for the pdsc_adminq_isr private data
pds_core: Prevent race issues involving the adminq
pds_core: Clear BARs on reset
pds_core: Don't assign interrupt index/bound_intr to notifyq
pds_core: Unmask adminq interrupt in work thread
pds_core: Fix up some minor issues
pds_core: Rework teardown/setup flow to be more common
pds_core: Clean up init/uninit flows to be more readable

drivers/net/ethernet/amd/pds_core/adminq.c | 74 +++++++----
drivers/net/ethernet/amd/pds_core/core.c | 130 ++++++++++++--------
drivers/net/ethernet/amd/pds_core/core.h | 3 +-
drivers/net/ethernet/amd/pds_core/debugfs.c | 12 +-
drivers/net/ethernet/amd/pds_core/dev.c | 30 +++--
drivers/net/ethernet/amd/pds_core/devlink.c | 3 +-
drivers/net/ethernet/amd/pds_core/fw.c | 3 +
drivers/net/ethernet/amd/pds_core/main.c | 26 +++-
8 files changed, 187 insertions(+), 94 deletions(-)

--
2.17.1