summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe JAILLET2017-08-27 12:06:50 +0200
committerPawel Moll2017-12-04 17:48:53 +0100
commit24771179c5c138f0ea3ef88b7972979f62f2d5db (patch)
tree9d39d3784b6324b6694f9c44ac1e37d71fae2707
parentbus: arm-ccn: constify attribute_group structures. (diff)
downloadkernel-qcow2-linux-24771179c5c138f0ea3ef88b7972979f62f2d5db.tar.gz
kernel-qcow2-linux-24771179c5c138f0ea3ef88b7972979f62f2d5db.tar.xz
kernel-qcow2-linux-24771179c5c138f0ea3ef88b7972979f62f2d5db.zip
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>
-rw-r--r--drivers/bus/arm-ccn.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/bus/arm-ccn.c b/drivers/bus/arm-ccn.c
index 7625bf762acb..a7951662f85b 100644
--- a/drivers/bus/arm-ccn.c
+++ b/drivers/bus/arm-ccn.c
@@ -1271,6 +1271,10 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
int len = snprintf(NULL, 0, "ccn_%d", ccn->dt.id);
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);
}
@@ -1319,6 +1323,7 @@ static int arm_ccn_pmu_init(struct arm_ccn *ccn)
error_pmu_register:
error_set_affinity:
+error_choose_name:
ida_simple_remove(&arm_ccn_pmu_ida, ccn->dt.id);
for (i = 0; i < ccn->num_xps; i++)
writel(0, ccn->xp[i].base + CCN_XP_DT_CONTROL);