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

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

Merge "soc: qcom: glink: add NULL check for edge_ctx"

parents 2c6d35a2 eb4ac9c1
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1057,7 +1057,8 @@ static void glink_edge_ctx_release(struct rwref_lock *ch_st_lock)
 *                              it is not found.
 * @xprt_ctx:	Transport to search for a matching edge.
 *
 * Return: The edge ctx corresponding to edge of @xprt_ctx.
 * Return: The edge ctx corresponding to edge of @xprt_ctx or
 *	NULL if memory allocation fails.
 */
static struct glink_core_edge_ctx *edge_name_to_ctx_create(
				struct glink_core_xprt_ctx *xprt_ctx)
@@ -1073,6 +1074,10 @@ static struct glink_core_edge_ctx *edge_name_to_ctx_create(
		}
	}
	edge_ctx = kzalloc(sizeof(struct glink_core_edge_ctx), GFP_KERNEL);
	if (!edge_ctx) {
		mutex_unlock(&edge_list_lock_lhd0);
		return NULL;
	}
	strlcpy(edge_ctx->name, xprt_ctx->edge, GLINK_NAME_SIZE);
	rwref_lock_init(&edge_ctx->edge_ref_lock_lhd1, glink_edge_ctx_release);
	mutex_init(&edge_ctx->edge_migration_lock_lhd2);
@@ -3904,6 +3909,10 @@ int glink_core_register_transport(struct glink_transport_if *if_ptr,
	xprt_ptr->local_version_idx = cfg->versions_entries - 1;
	xprt_ptr->remote_version_idx = cfg->versions_entries - 1;
	xprt_ptr->edge_ctx = edge_name_to_ctx_create(xprt_ptr);
	if (!xprt_ptr->edge_ctx) {
		kfree(xprt_ptr);
		return -ENOMEM;
	}
	xprt_ptr->l_features =
			cfg->versions[cfg->versions_entries - 1].features;
	if (!if_ptr->poll)