[PATCH 0/9] EDAC/versalnet: Fix error handling, teardown, and robustness

Shubhrajyoti Datta posted 9 patches 2 hours ago
drivers/edac/versalnet_edac.c | 95 +++++++++++++++++++----------------
1 file changed, 51 insertions(+), 44 deletions(-)
[PATCH 0/9] EDAC/versalnet: Fix error handling, teardown, and robustness
Posted by Shubhrajyoti Datta 2 hours ago
    This series addresses several correctness and robustness issues in
    the VersalNet EDAC driver

    The main fixes are:

    * Robustness fixes
      - Add NULL checks for mci in handle_error() and remove_one_mc()
        to prevent NULL pointer dereferences when a controller has not
        been fully initialized.
      - Add bounds validation in rpmsg_cb().

    * Teardown improvements
      - Fix teardown ordering in mc_remove() and remove_one_mc() to
        prevent use-after-free conditions.

    * Probe and initialization cleanup
      - Move platform_set_drvdata() from init_one_mc() to mc_probe().
      - Reorder probe flow to initialize MCDI before RPMsg registration.
      - Remove unused pdev parameters from internal initialization
        functions.

    * Resource management fixes
      - Fix error handling in init_one_mc() to avoid a potential
        double-free by reordering device_register() and edac_mc_alloc().
      - Replace sprintf() with init_name by dev_set_name() to avoid
        use-after-free issues caused by deferred kobject cleanup.

    * Code cleanup
      - Use a designated initializer for rpmsg_channel_info.



Prasanna Kumar T S M (1):
  EDAC/versalnet: Fix device_register() error handling in init_one_mc()

Shubhrajyoti Datta (8):
  EDAC/versalnet: Add NULL check for mci in handle_error()
  EDAC/versalnet: Add NULL check for mci in remove_one_mc()
  EDAC/versalnet: Move platform_set_drvdata() to mc_probe()
  EDAC/versalnet: Use dev_set_name() instead of sprintf with init_name
  EDAC/versalnet: Initialize MCDI before RPMsg registration
  EDAC/versalnet: Add bounds validation in rpmsg_cb()
  EDAC/versalnet: Fix use-after-free in remove_one_mc()
  EDAC/versalnet: Use designated initializer for rpmsg_channel_info

 drivers/edac/versalnet_edac.c | 95 +++++++++++++++++++----------------
 1 file changed, 51 insertions(+), 44 deletions(-)

-- 
2.34.1