bus: arm-ccn: Check memory allocation failure
Check memory allocation failures and return -ENOMEM in such cases This avoids a potential NULL pointer dereference. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Acked-by: Scott Branden <scott.branden@broadcom.com> Cc: stable@vger.kernel.org # 3.17+ Signed-off-by: Pawel Moll <pawel.moll@arm.com>
This commit is contained in:
parent
8a84bf4514
commit
24771179c5
|
@ -1271,6 +1271,10 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
|
||||||
int len = snprintf(NULL, 0, "ccn_%d", ccn->dt.id);
|
int len = snprintf(NULL, 0, "ccn_%d", ccn->dt.id);
|
||||||
|
|
||||||
name = devm_kzalloc(ccn->dev, len + 1, GFP_KERNEL);
|
name = devm_kzalloc(ccn->dev, len + 1, GFP_KERNEL);
|
||||||
|
if (!name) {
|
||||||
|
err = -ENOMEM;
|
||||||
|
goto error_choose_name;
|
||||||
|
}
|
||||||
snprintf(name, len + 1, "ccn_%d", ccn->dt.id);
|
snprintf(name, len + 1, "ccn_%d", ccn->dt.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1319,6 +1323,7 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
|
||||||
|
|
||||||
error_pmu_register:
|
error_pmu_register:
|
||||||
error_set_affinity:
|
error_set_affinity:
|
||||||
|
error_choose_name:
|
||||||
ida_simple_remove(&arm_ccn_pmu_ida, ccn->dt.id);
|
ida_simple_remove(&arm_ccn_pmu_ida, ccn->dt.id);
|
||||||
for (i = 0; i < ccn->num_xps; i++)
|
for (i = 0; i < ccn->num_xps; i++)
|
||||||
writel(0, ccn->xp[i].base + CCN_XP_DT_CONTROL);
|
writel(0, ccn->xp[i].base + CCN_XP_DT_CONTROL);
|
||||||
|
|
Loading…
Reference in New Issue