linux/of.h declares a set of variables providing addresses of certain key OF nodes. The pointers being variables can't profit from stubs provided for when CONFIG_OF is disabled which means that drivers accessing these variables can't profit from CONFIG_COMPILE_TEST=y coverage.
There are drivers under drivers/soc/ that access the of_root node. This series introduces new OF helpers for reading the machine compatible and model strings, exports an existing SoC helper that reads the machine string from the root node and finally replaces all direct accesses to of_root with new or already existing helper functions. Merging strategy: first two patches should be either acked by Rob or picked up into an immutable branch based on v7.0-rc1, the rest can go through the SoC tree. Signed-off-by: Bartosz Golaszewski <[email protected]> --- Changes in v2: - rename of_machine_get_compatible() to of_machine_read_compatible() and add the index argument - add a stub for of_machine_read_compatible() for !CONFIG_OF - provide of_machine_read_model() to avoid having to look-up the root node via of_find_node_by_path("/") - rename soc_device_get_machine() to soc_attr_read_machine() before making it an exported symbol - Link to v1: https://lore.kernel.org/r/[email protected] --- Bartosz Golaszewski (9): of: provide of_machine_read_compatible() of: provide of_machine_read_model() base: soc: order includes alphabetically base: soc: rename and export soc_device_get_machine() soc: fsl: guts: don't access of_root directly soc: imx8m: don't access of_root directly soc: imx9: don't access of_root directly soc: renesas: don't access of_root directly soc: sunxi: mbus: don't access of_root directly drivers/base/soc.c | 23 ++++++++++------------- drivers/of/base.c | 28 ++++++++++++++++++++++++++++ drivers/soc/fsl/guts.c | 12 +++--------- drivers/soc/imx/soc-imx8m.c | 11 +++-------- drivers/soc/imx/soc-imx9.c | 4 ++-- drivers/soc/renesas/renesas-soc.c | 7 ++++++- drivers/soc/sunxi/sunxi_mbus.c | 2 +- include/linux/of.h | 14 ++++++++++++++ include/linux/sys_soc.h | 10 ++++++++++ 9 files changed, 77 insertions(+), 34 deletions(-) --- base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f change-id: 20260119-soc-of-root-77c86c54010f Best regards, -- Bartosz Golaszewski <[email protected]>
