powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
[ Upstream commit 0a233867a39078ebb0f575e2948593bbff5826b3 ]
kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.
Fixes: 885dcd709b
("powerpc/perf: Add nest IMC PMU support")
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231126093719.1440305-1-chentao@kylinos.cn
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
f152a6bfd1
commit
a2da3f9b1a
|
@ -299,6 +299,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
|
||||||
attr_group->attrs = attrs;
|
attr_group->attrs = attrs;
|
||||||
do {
|
do {
|
||||||
ev_val_str = kasprintf(GFP_KERNEL, "event=0x%x", pmu->events[i].value);
|
ev_val_str = kasprintf(GFP_KERNEL, "event=0x%x", pmu->events[i].value);
|
||||||
|
if (!ev_val_str)
|
||||||
|
continue;
|
||||||
dev_str = device_str_attr_create(pmu->events[i].name, ev_val_str);
|
dev_str = device_str_attr_create(pmu->events[i].name, ev_val_str);
|
||||||
if (!dev_str)
|
if (!dev_str)
|
||||||
continue;
|
continue;
|
||||||
|
@ -306,6 +308,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
|
||||||
attrs[j++] = dev_str;
|
attrs[j++] = dev_str;
|
||||||
if (pmu->events[i].scale) {
|
if (pmu->events[i].scale) {
|
||||||
ev_scale_str = kasprintf(GFP_KERNEL, "%s.scale", pmu->events[i].name);
|
ev_scale_str = kasprintf(GFP_KERNEL, "%s.scale", pmu->events[i].name);
|
||||||
|
if (!ev_scale_str)
|
||||||
|
continue;
|
||||||
dev_str = device_str_attr_create(ev_scale_str, pmu->events[i].scale);
|
dev_str = device_str_attr_create(ev_scale_str, pmu->events[i].scale);
|
||||||
if (!dev_str)
|
if (!dev_str)
|
||||||
continue;
|
continue;
|
||||||
|
@ -315,6 +319,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
|
||||||
|
|
||||||
if (pmu->events[i].unit) {
|
if (pmu->events[i].unit) {
|
||||||
ev_unit_str = kasprintf(GFP_KERNEL, "%s.unit", pmu->events[i].name);
|
ev_unit_str = kasprintf(GFP_KERNEL, "%s.unit", pmu->events[i].name);
|
||||||
|
if (!ev_unit_str)
|
||||||
|
continue;
|
||||||
dev_str = device_str_attr_create(ev_unit_str, pmu->events[i].unit);
|
dev_str = device_str_attr_create(ev_unit_str, pmu->events[i].unit);
|
||||||
if (!dev_str)
|
if (!dev_str)
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue