From 0331251e022e3a0152fbca1ce0ee0b9e7da5dc21 Mon Sep 17 00:00:00 2001 From: Arun Prakash Date: Sat, 21 Jan 2023 20:54:05 +0530 Subject: [PATCH] soc: qcom: qsee_ipc_irq_bridge: Remove redundant cleanup qiib_cleanup in qiib_driver_data_deinit is redundant since this cleanup is already done in driver remove. Remove qiib_cleanup in deinit and add required NULL check to avoid any use-after-free scenario. Change-Id: I95fa3cf91b5ca6cbaeb66d304a0572ba1d294a69 Signed-off-by: Arun Prakash --- drivers/soc/qcom/qsee_ipc_irq_bridge.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/qsee_ipc_irq_bridge.c b/drivers/soc/qcom/qsee_ipc_irq_bridge.c index c07140879d3b..591aa7eefac3 100644 --- a/drivers/soc/qcom/qsee_ipc_irq_bridge.c +++ b/drivers/soc/qcom/qsee_ipc_irq_bridge.c @@ -125,7 +125,6 @@ static int qiib_driver_data_init(void) */ static void qiib_driver_data_deinit(void) { - qiib_cleanup(); if (!qiib_info->log_ctx) ipc_log_context_destroy(qiib_info->log_ctx); kfree(qiib_info); @@ -433,8 +432,10 @@ static void qiib_cleanup(void) } mutex_unlock(&qiib_info->list_lock); - if (!IS_ERR_OR_NULL(qiib_info->classp)) + if (!IS_ERR_OR_NULL(qiib_info->classp)) { class_destroy(qiib_info->classp); + qiib_info->classp = NULL; + } unregister_chrdev_region(MAJOR(qiib_info->dev_num), qiib_info->nports); }