On Mon, Apr 20, 2026 at 05:47:34AM -0700, Erni Sri Satya Vennela wrote: > Fix five bugs in mana_probe()/mana_remove() error handling that can > cause warnings on uninitialized work structs, NULL pointer dereferences, > masked errors, and resource leaks when early probe steps fail. > > Patches 1-2 move work struct initialization (link_change_work and > gf_stats_work) to before any error path that could trigger > mana_remove(), preventing WARN_ON in __flush_work() or debug object > warnings when sync cancellation runs on uninitialized work structs. > > Patch 3 guards mana_remove() against double invocation. If PM resume > fails, mana_probe() calls mana_remove() which sets gdma_context and > driver_data to NULL. A failed resume does not unbind the driver, so > when the device is eventually unbound, mana_remove() is called again > and dereferences NULL, causing a kernel panic. An early return on > NULL gdma_context or driver_data makes the second call harmless. > > Patch 4 prevents add_adev() from overwriting a port probe error, > which could leave the driver in a broken state with NULL ports while > reporting success. > > Patch 5 changes 'goto out' to 'break' in mana_remove()'s port loop > so that mana_destroy_eq() is always reached, preventing EQ leaks when > a NULL port is encountered. > --- > Changes in v4: > * Correct Fixes tag from ca9c54d2d6a5 to 635096a86edb > * Correct Fixes tag from ced82fce77e9 to a69839d4327d
Thanks for the updates. For the series: Reviewed-by: Simon Horman <[email protected]> I see that Sashiko provided feedback on patch 4/5. However, as it notes, the issue it flags is addressed in patch 5/5. No further action required AFAICS.

