mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 12:10:38 -04:00
platform/mellanox: Add null pointer checks for devm_kasprintf()
devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.
Compile-tested only.
Fixes: 1a218d312e ("platform/mellanox: mlxbf-pmc: Add Mellanox BlueField PMC driver")
Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Suggested-by: Vadim Pasternak <vadimp@nvidia.com>
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
Link: https://lore.kernel.org/r/20231201055447.2356001-1-chentao@kylinos.cn
[ij: split the change into two]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
committed by
Ilpo Järvinen
parent
d4eef75279
commit
2c7c857f5f
@@ -1771,6 +1771,8 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, int blk_num)
|
|||||||
attr->dev_attr.show = mlxbf_pmc_event_list_show;
|
attr->dev_attr.show = mlxbf_pmc_event_list_show;
|
||||||
attr->nr = blk_num;
|
attr->nr = blk_num;
|
||||||
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "event_list");
|
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "event_list");
|
||||||
|
if (!attr->dev_attr.attr.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr;
|
pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
|
|
||||||
@@ -1784,6 +1786,8 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, int blk_num)
|
|||||||
attr->nr = blk_num;
|
attr->nr = blk_num;
|
||||||
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
||||||
"enable");
|
"enable");
|
||||||
|
if (!attr->dev_attr.attr.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
}
|
}
|
||||||
@@ -1810,6 +1814,8 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, int blk_num)
|
|||||||
attr->nr = blk_num;
|
attr->nr = blk_num;
|
||||||
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
||||||
"counter%d", j);
|
"counter%d", j);
|
||||||
|
if (!attr->dev_attr.attr.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
|
|
||||||
@@ -1821,6 +1827,8 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, int blk_num)
|
|||||||
attr->nr = blk_num;
|
attr->nr = blk_num;
|
||||||
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
||||||
"event%d", j);
|
"event%d", j);
|
||||||
|
if (!attr->dev_attr.attr.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
}
|
}
|
||||||
@@ -1853,6 +1861,8 @@ static int mlxbf_pmc_init_perftype_reg(struct device *dev, int blk_num)
|
|||||||
attr->nr = blk_num;
|
attr->nr = blk_num;
|
||||||
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL,
|
||||||
events[j].evt_name);
|
events[j].evt_name);
|
||||||
|
if (!attr->dev_attr.attr.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr;
|
pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr;
|
||||||
attr = NULL;
|
attr = NULL;
|
||||||
i++;
|
i++;
|
||||||
@@ -1882,6 +1892,8 @@ static int mlxbf_pmc_create_groups(struct device *dev, int blk_num)
|
|||||||
pmc->block[blk_num].block_attr_grp.attrs = pmc->block[blk_num].block_attr;
|
pmc->block[blk_num].block_attr_grp.attrs = pmc->block[blk_num].block_attr;
|
||||||
pmc->block[blk_num].block_attr_grp.name = devm_kasprintf(
|
pmc->block[blk_num].block_attr_grp.name = devm_kasprintf(
|
||||||
dev, GFP_KERNEL, pmc->block_name[blk_num]);
|
dev, GFP_KERNEL, pmc->block_name[blk_num]);
|
||||||
|
if (!pmc->block[blk_num].block_attr_grp.name)
|
||||||
|
return -ENOMEM;
|
||||||
pmc->groups[pmc->group_num] = &pmc->block[blk_num].block_attr_grp;
|
pmc->groups[pmc->group_num] = &pmc->block[blk_num].block_attr_grp;
|
||||||
pmc->group_num++;
|
pmc->group_num++;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user