Don't access of_root directly as it reduces the build test coverage for
this driver with COMPILE_TEST=y and OF=n. Use existing helper functions
to retrieve the relevant information.
Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/soc/fsl/guts.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
index 6bf3e6a980ffc67c21ed7b62b5b638e37f27454e..88ba32a40f6a27f8ffd13624e940aa0edf48586f 100644
--- a/drivers/soc/fsl/guts.c
+++ b/drivers/soc/fsl/guts.c
@@ -186,7 +186,6 @@ static int __init fsl_guts_init(void)
const struct fsl_soc_data *soc_data;
const struct of_device_id *match;
struct ccsr_guts __iomem *regs;
- const char *machine = NULL;
struct device_node *np;
bool little_endian;
u64 soc_uid = 0;
@@ -217,13 +216,9 @@ static int __init fsl_guts_init(void)
if (!soc_dev_attr)
return -ENOMEM;
- if (of_property_read_string(of_root, "model", &machine))
- of_property_read_string_index(of_root, "compatible", 0, &machine);
- if (machine) {
- soc_dev_attr->machine = kstrdup(machine, GFP_KERNEL);
- if (!soc_dev_attr->machine)
- goto err_nomem;
- }
+ ret = soc_device_get_machine(soc_dev_attr);
+ if (ret)
+ of_machine_get_compatible(&soc_dev_attr->machine);
soc_die = fsl_soc_die_match(svr, fsl_soc_die);
if (soc_die) {
@@ -267,7 +262,6 @@ static int __init fsl_guts_init(void)
err_nomem:
ret = -ENOMEM;
err:
- kfree(soc_dev_attr->machine);
kfree(soc_dev_attr->family);
kfree(soc_dev_attr->soc_id);
kfree(soc_dev_attr->revision);
--
2.47.3
Le 19/01/2026 à 11:40, Bartosz Golaszewski a écrit :
> Don't access of_root directly as it reduces the build test coverage for
> this driver with COMPILE_TEST=y and OF=n. Use existing helper functions
> to retrieve the relevant information.
>
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Acked-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
> ---
> drivers/soc/fsl/guts.c | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
> index 6bf3e6a980ffc67c21ed7b62b5b638e37f27454e..88ba32a40f6a27f8ffd13624e940aa0edf48586f 100644
> --- a/drivers/soc/fsl/guts.c
> +++ b/drivers/soc/fsl/guts.c
> @@ -186,7 +186,6 @@ static int __init fsl_guts_init(void)
> const struct fsl_soc_data *soc_data;
> const struct of_device_id *match;
> struct ccsr_guts __iomem *regs;
> - const char *machine = NULL;
> struct device_node *np;
> bool little_endian;
> u64 soc_uid = 0;
> @@ -217,13 +216,9 @@ static int __init fsl_guts_init(void)
> if (!soc_dev_attr)
> return -ENOMEM;
>
> - if (of_property_read_string(of_root, "model", &machine))
> - of_property_read_string_index(of_root, "compatible", 0, &machine);
> - if (machine) {
> - soc_dev_attr->machine = kstrdup(machine, GFP_KERNEL);
> - if (!soc_dev_attr->machine)
> - goto err_nomem;
> - }
> + ret = soc_device_get_machine(soc_dev_attr);
> + if (ret)
> + of_machine_get_compatible(&soc_dev_attr->machine);
>
> soc_die = fsl_soc_die_match(svr, fsl_soc_die);
> if (soc_die) {
> @@ -267,7 +262,6 @@ static int __init fsl_guts_init(void)
> err_nomem:
> ret = -ENOMEM;
> err:
> - kfree(soc_dev_attr->machine);
> kfree(soc_dev_attr->family);
> kfree(soc_dev_attr->soc_id);
> kfree(soc_dev_attr->revision);
>
Le 19/01/2026 à 11:40, Bartosz Golaszewski a écrit :
> Don't access of_root directly as it reduces the build test coverage for
> this driver with COMPILE_TEST=y and OF=n. Use existing helper functions
> to retrieve the relevant information.
>
> Suggested-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Acked-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
> ---
> drivers/soc/fsl/guts.c | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
> index 6bf3e6a980ffc67c21ed7b62b5b638e37f27454e..88ba32a40f6a27f8ffd13624e940aa0edf48586f 100644
> --- a/drivers/soc/fsl/guts.c
> +++ b/drivers/soc/fsl/guts.c
> @@ -186,7 +186,6 @@ static int __init fsl_guts_init(void)
> const struct fsl_soc_data *soc_data;
> const struct of_device_id *match;
> struct ccsr_guts __iomem *regs;
> - const char *machine = NULL;
> struct device_node *np;
> bool little_endian;
> u64 soc_uid = 0;
> @@ -217,13 +216,9 @@ static int __init fsl_guts_init(void)
> if (!soc_dev_attr)
> return -ENOMEM;
>
> - if (of_property_read_string(of_root, "model", &machine))
> - of_property_read_string_index(of_root, "compatible", 0, &machine);
> - if (machine) {
> - soc_dev_attr->machine = kstrdup(machine, GFP_KERNEL);
> - if (!soc_dev_attr->machine)
> - goto err_nomem;
> - }
> + ret = soc_device_get_machine(soc_dev_attr);
> + if (ret)
> + of_machine_get_compatible(&soc_dev_attr->machine);
>
> soc_die = fsl_soc_die_match(svr, fsl_soc_die);
> if (soc_die) {
> @@ -267,7 +262,6 @@ static int __init fsl_guts_init(void)
> err_nomem:
> ret = -ENOMEM;
> err:
> - kfree(soc_dev_attr->machine);
> kfree(soc_dev_attr->family);
> kfree(soc_dev_attr->soc_id);
> kfree(soc_dev_attr->revision);
>
© 2016 - 2026 Red Hat, Inc.