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