aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2023-04-20 23:17:35 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-05-31 20:35:21 +0100
commitb866e7e7f995e14500d316a2e70977dee48cf690 (patch)
tree5b74128dfdab8c59f67f2dbc51518b5ad946cde1
parentca3222ac4477250f74bcb324652e92563d606439 (diff)
downloadiio-b866e7e7f995e14500d316a2e70977dee48cf690.tar.gz
misc: sram: Generate unique names for subpools
The current code will, if we do not specify unique labels for the SRAM subnodes, fail to register several nodes named the same. Example: sram@40020000 { (...) sram@0 { (...) }; sram@1000 { (...) }; }; Since the child->name in both cases will be "sram" the gen_pool_create() will fail because the name is not unique. Use dev_name() for the device as this will have bus ID set to the fully translated address for the node, and that will always be unique. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20230417-ux500-sram-v2-2-6e62ad551faa@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/misc/sram.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c
index 99413310956bb..5757adf418b1d 100644
--- a/drivers/misc/sram.c
+++ b/drivers/misc/sram.c
@@ -235,10 +235,11 @@ static int sram_reserve_regions(struct sram_dev *sram, struct resource *res)
goto err_chunks;
}
if (!label)
- label = child->name;
-
- block->label = devm_kstrdup(sram->dev,
- label, GFP_KERNEL);
+ block->label = devm_kasprintf(sram->dev, GFP_KERNEL,
+ "%s", dev_name(sram->dev));
+ else
+ block->label = devm_kstrdup(sram->dev,
+ label, GFP_KERNEL);
if (!block->label) {
ret = -ENOMEM;
goto err_chunks;