Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b31de59 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ipa: Null persistent pointers after free"

parents 5839e234 1b810412
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -428,6 +428,7 @@ static int ipa_uc_ntn_alloc_conn_smmu_info(struct ipa_ntn_setup_info *dest,
		source->buff_pool_base_sgt);
	if (result) {
		kfree(dest->data_buff_list);
		dest->data_buff_list = NULL;
		return result;
	}

@@ -435,6 +436,7 @@ static int ipa_uc_ntn_alloc_conn_smmu_info(struct ipa_ntn_setup_info *dest,
		source->ring_base_sgt);
	if (result) {
		kfree(dest->data_buff_list);
		dest->data_buff_list = NULL;
		ipa_smmu_free_sgt(&dest->buff_pool_base_sgt);
		return result;
	}
@@ -445,6 +447,7 @@ static int ipa_uc_ntn_alloc_conn_smmu_info(struct ipa_ntn_setup_info *dest,
static void ipa_uc_ntn_free_conn_smmu_info(struct ipa_ntn_setup_info *params)
{
	kfree(params->data_buff_list);
	params->data_buff_list = NULL;
	ipa_smmu_free_sgt(&params->buff_pool_base_sgt);
	ipa_smmu_free_sgt(&params->ring_base_sgt);
}
+4 −0
Original line number Diff line number Diff line
@@ -344,6 +344,7 @@ static void ipa3_active_clients_log_destroy(void)
	kfree(active_clients_table_buf);
	active_clients_table_buf = NULL;
	kfree(ipa3_ctx->ipa3_active_clients_logging.log_buffer[0]);
	ipa3_ctx->ipa3_active_clients_logging.log_buffer[0] = NULL;
	ipa3_ctx->ipa3_active_clients_logging.log_head = 0;
	ipa3_ctx->ipa3_active_clients_logging.log_tail =
			IPA3_ACTIVE_CLIENTS_LOG_BUFFER_SIZE_LINES - 1;
@@ -5861,8 +5862,10 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
fail_init_mem_partition:
fail_bind:
	kfree(ipa3_ctx->ctrl);
	ipa3_ctx->ctrl = NULL;
fail_mem_ctrl:
	kfree(ipa3_ctx->ipa_tz_unlock_reg);
	ipa3_ctx->ipa_tz_unlock_reg = NULL;
fail_tz_unlock_reg:
	if (ipa3_ctx->logbuf)
		ipc_log_context_destroy(ipa3_ctx->logbuf);
@@ -6240,6 +6243,7 @@ static int get_ipa_dts_configuration(struct platform_device *pdev,
			IPAERR("failed to read register addresses\n");
			kfree(ipa_tz_unlock_reg);
			kfree(ipa_drv_res->ipa_tz_unlock_reg);
			ipa_drv_res->ipa_tz_unlock_reg = NULL;
			return -EFAULT;
		}

+1 −0
Original line number Diff line number Diff line
@@ -617,6 +617,7 @@ int ipa_pm_init(struct ipa_pm_init_params *params)
	if (!ipa_pm_ctx->wq) {
		IPA_PM_ERR("create workqueue failed\n");
		kfree(ipa_pm_ctx);
		ipa_pm_ctx = NULL;
		return -ENOMEM;
	}

+1 −0
Original line number Diff line number Diff line
@@ -599,6 +599,7 @@ static void ipa_release_uc_smmu_mappings(enum ipa_client_type client)
				ipa3_ctx->wdi_map_cnt--;
			}
			kfree(wdi_res[i].res);
			wdi_res[i].res = NULL;
			wdi_res[i].valid = false;
		}
	}