* [PATCH] mtd: parsers: ofpart: Remove code/data for disabled custom parsers
@ 2026-01-04 10:01 Daniel Palmer
2026-01-19 10:19 ` Miquel Raynal
0 siblings, 1 reply; 2+ messages in thread
From: Daniel Palmer @ 2026-01-04 10:01 UTC (permalink / raw)
To: miquel.raynal, richard, vigneshr, linux-mtd; +Cc: linux-kernel, Daniel Palmer
Currently even if none of the custom parsers are selected a struct
of_device_id and a dummy function that just returns -EOPNOTSUPP is
compiled in for each of them.
Its not obvious from the code but struct of_device_id is massive,
196 or 200 bytes (see link), so this is a lot more wasteful than you'd
think just skimming the code and assuming the wasted size is just the
length of the string with some small overhead.
If they aren't enabled use ifdef's to avoid anything being compiled
in and remove the dummy functions.
Link: https://lore.kernel.org/all/ef59d6fd3b2201b912d5eaa7f7a037d8f9adb744.1636561068.git.geert+renesas@glider.be/
Signed-off-by: Daniel Palmer <daniel@thingy.jp>
---
drivers/mtd/parsers/ofpart_bcm4908.h | 6 ------
drivers/mtd/parsers/ofpart_core.c | 8 ++++++++
drivers/mtd/parsers/ofpart_linksys_ns.h | 7 -------
3 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/mtd/parsers/ofpart_bcm4908.h b/drivers/mtd/parsers/ofpart_bcm4908.h
index 80f8c086641f..f96dcd5275a7 100644
--- a/drivers/mtd/parsers/ofpart_bcm4908.h
+++ b/drivers/mtd/parsers/ofpart_bcm4908.h
@@ -4,12 +4,6 @@
#ifdef CONFIG_MTD_OF_PARTS_BCM4908
int bcm4908_partitions_post_parse(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts);
-#else
-static inline int bcm4908_partitions_post_parse(struct mtd_info *mtd, struct mtd_partition *parts,
- int nr_parts)
-{
- return -EOPNOTSUPP;
-}
#endif
#endif
diff --git a/drivers/mtd/parsers/ofpart_core.c b/drivers/mtd/parsers/ofpart_core.c
index abfa68798918..e04eee028f63 100644
--- a/drivers/mtd/parsers/ofpart_core.c
+++ b/drivers/mtd/parsers/ofpart_core.c
@@ -23,13 +23,17 @@ struct fixed_partitions_quirks {
int (*post_parse)(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts);
};
+#ifdef CONFIG_MTD_OF_PARTS_BCM4908
static struct fixed_partitions_quirks bcm4908_partitions_quirks = {
.post_parse = bcm4908_partitions_post_parse,
};
+#endif
+#ifdef CONFIG_MTD_OF_PARTS_LINKSYS_NS
static struct fixed_partitions_quirks linksys_ns_partitions_quirks = {
.post_parse = linksys_ns_partitions_post_parse,
};
+#endif
static const struct of_device_id parse_ofpart_match_table[];
@@ -192,8 +196,12 @@ static const struct of_device_id parse_ofpart_match_table[] = {
/* Generic */
{ .compatible = "fixed-partitions" },
/* Customized */
+#ifdef CONFIG_MTD_OF_PARTS_BCM4908
{ .compatible = "brcm,bcm4908-partitions", .data = &bcm4908_partitions_quirks, },
+#endif
+#ifdef CONFIG_MTD_OF_PARTS_LINKSYS_NS
{ .compatible = "linksys,ns-partitions", .data = &linksys_ns_partitions_quirks, },
+#endif
{},
};
MODULE_DEVICE_TABLE(of, parse_ofpart_match_table);
diff --git a/drivers/mtd/parsers/ofpart_linksys_ns.h b/drivers/mtd/parsers/ofpart_linksys_ns.h
index 730c46812ebf..6537aa37c0aa 100644
--- a/drivers/mtd/parsers/ofpart_linksys_ns.h
+++ b/drivers/mtd/parsers/ofpart_linksys_ns.h
@@ -6,13 +6,6 @@
int linksys_ns_partitions_post_parse(struct mtd_info *mtd,
struct mtd_partition *parts,
int nr_parts);
-#else
-static inline int linksys_ns_partitions_post_parse(struct mtd_info *mtd,
- struct mtd_partition *parts,
- int nr_parts)
-{
- return -EOPNOTSUPP;
-}
#endif
#endif
--
2.51.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] mtd: parsers: ofpart: Remove code/data for disabled custom parsers
2026-01-04 10:01 [PATCH] mtd: parsers: ofpart: Remove code/data for disabled custom parsers Daniel Palmer
@ 2026-01-19 10:19 ` Miquel Raynal
0 siblings, 0 replies; 2+ messages in thread
From: Miquel Raynal @ 2026-01-19 10:19 UTC (permalink / raw)
To: richard, vigneshr, linux-mtd, Daniel Palmer; +Cc: linux-kernel
On Sun, 04 Jan 2026 19:01:51 +0900, Daniel Palmer wrote:
> Currently even if none of the custom parsers are selected a struct
> of_device_id and a dummy function that just returns -EOPNOTSUPP is
> compiled in for each of them.
>
> Its not obvious from the code but struct of_device_id is massive,
> 196 or 200 bytes (see link), so this is a lot more wasteful than you'd
> think just skimming the code and assuming the wasted size is just the
> length of the string with some small overhead.
>
> [...]
Applied to mtd/next, thanks!
[1/1] mtd: parsers: ofpart: Remove code/data for disabled custom parsers
commit: 56477aea482dd81e0364d98a02ab805d24242b72
Patche(s) should be available on mtd/linux.git and will be
part of the next PR (provided that no robot complains by then).
Kind regards,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-19 10:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-04 10:01 [PATCH] mtd: parsers: ofpart: Remove code/data for disabled custom parsers Daniel Palmer
2026-01-19 10:19 ` Miquel Raynal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox