Merge "soc: qcom: glink: add NULL check for edge_ctx"
This commit is contained in:
commit
60d32cc86f
1 changed files with 10 additions and 1 deletions
|
@ -1058,7 +1058,8 @@ static void glink_edge_ctx_release(struct rwref_lock *ch_st_lock)
|
||||||
* it is not found.
|
* it is not found.
|
||||||
* @xprt_ctx: Transport to search for a matching edge.
|
* @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(
|
static struct glink_core_edge_ctx *edge_name_to_ctx_create(
|
||||||
struct glink_core_xprt_ctx *xprt_ctx)
|
struct glink_core_xprt_ctx *xprt_ctx)
|
||||||
|
@ -1074,6 +1075,10 @@ static struct glink_core_edge_ctx *edge_name_to_ctx_create(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
edge_ctx = kzalloc(sizeof(struct glink_core_edge_ctx), GFP_KERNEL);
|
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);
|
strlcpy(edge_ctx->name, xprt_ctx->edge, GLINK_NAME_SIZE);
|
||||||
rwref_lock_init(&edge_ctx->edge_ref_lock_lhd1, glink_edge_ctx_release);
|
rwref_lock_init(&edge_ctx->edge_ref_lock_lhd1, glink_edge_ctx_release);
|
||||||
mutex_init(&edge_ctx->edge_migration_lock_lhd2);
|
mutex_init(&edge_ctx->edge_migration_lock_lhd2);
|
||||||
|
@ -3909,6 +3914,10 @@ int glink_core_register_transport(struct glink_transport_if *if_ptr,
|
||||||
xprt_ptr->local_version_idx = cfg->versions_entries - 1;
|
xprt_ptr->local_version_idx = cfg->versions_entries - 1;
|
||||||
xprt_ptr->remote_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);
|
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 =
|
xprt_ptr->l_features =
|
||||||
cfg->versions[cfg->versions_entries - 1].features;
|
cfg->versions[cfg->versions_entries - 1].features;
|
||||||
if (!if_ptr->poll)
|
if (!if_ptr->poll)
|
||||||
|
|
Loading…
Add table
Reference in a new issue