summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrent Piepho <trent.piepho@igorinstitute.com>2021-10-11 12:19:33 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2021-10-12 09:47:19 +0200
commitf246029ca6949b25a94ad7acd76241125da76b29 (patch)
treee745e599f6a228d4b699691d5ad9c2b8c6514350
parent8105c22d5736b0b15cc144ad3d7b0e6059ff5b95 (diff)
downloadbarebox-f246029ca6949b25a94ad7acd76241125da76b29.tar.gz
barebox-f246029ca6949b25a94ad7acd76241125da76b29.tar.xz
of: partitions: Skip fixup for devices with no partitions
If the device has no partitions, e.g. most EEPROM or OTP memory, of_partition_fixup() can exit early, before trying to find the kernel dt node and calling of_fixup_partitions(). This avoids spurious error messages when the kernel dt node doesn't exist. E.g., for an EEPROM in the Barebox dtb but not in the kernel dtb, Barebox will display an error about being unable to fixup the kernel dt node, however, if it had found the node it would just return without doing anything since the partition list is empty, so really there is no error. Signed-off-by: Trent Piepho <trent.piepho@igorinstitute.com> Link: https://lore.barebox.org/20211011191933.857941-1-trent.piepho@igorinstitute.com Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/of/partition.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/of/partition.c b/drivers/of/partition.c
index 10081363de..18b138f00e 100644
--- a/drivers/of/partition.c
+++ b/drivers/of/partition.c
@@ -256,6 +256,9 @@ static int of_partition_fixup(struct device_node *root, void *ctx)
if (!cdev->device_node)
return -EINVAL;
+ if (list_empty(&cdev->partitions))
+ return 0;
+
name = of_get_reproducible_name(cdev->device_node);
np = of_find_node_by_reproducible_name(root, name);
free(name);