of: unittest: Fix compile in the non-dynamic case
PATCH 1/1 of: unittest: Fix compile in the non-dynamic case
If CONFIG_OF_KOBJ is not set, a device_node does not contain a kobj and attempts to access the embedded kobj via kref_read break the compile.
Replace affected kref_read calls with a macro that reads the refcount if it exists and returns 1 if there is no embedded kobj.
Reported-by kernel test robot <[email protected]>
Fixes 4dde83569832 ("of: Fix double free in of_parse_phandle_with_args_map")
Signed-off-by Christian A. Ehrhardt <[email protected]>
--- drivers/of/unittest.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
drivers/of/unittest.c +9 -3
@@ -50,6 +50,12 @@ static struct unittest_results { failed; \ }) +#ifdef CONFIG_OF_KOBJ +#define OF_KREF_READ (NODE ) kref_read(&(NODE)->kobj.kref) +#else +#define OF_KREF_READ (NODE ) 1 +#endif +/* * Expected message may have a message level other than KERN_INFO. * Print the expected message only if the current loglevel will allow
@@ -570,7 +576,7 @@ static void __init of_unittest_parse_phandle_with_args_map(void)pr_err ("missing testcase data\n" );return ; } - prefs[i] =kref_read (&p[i]->kobj.kref); + prefs[i] =OF_KREF_READ (p[i]); } rc =of_count_phandle_with_args (np,"phandle-list" ,"#phandle-cells" );
@@ -693,9 +699,9 @@ static void __init of_unittest_parse_phandle_with_args_map(void)unittest (rc == -EINVAL ,"expected:%i got:%i\n" , -EINVAL , rc);for (i =0 ; i <ARRAY_SIZE (p); ++i) { -unittest (prefs[i] ==kref_read (&p[i]->kobj.kref), +unittest (prefs[i] ==OF_KREF_READ (p[i]),"provider%d: expected:%d got:%d\n" , - i, prefs[i],kref_read (&p[i]->kobj.kref)); + i, prefs[i],OF_KREF_READ (p[i]));of_node_put (p[i]); } }
Signature · 1 line
2.40.1
Quoted 7 lines · Christian A. Ehrhardt
If
CONFIG_OF_KOBJis not set, adevice_nodedoes not contain a kobj and attempts to access the embedded kobj viakref_readbreak the compile.Replace affected
kref_readcalls with a macro that reads the refcount if it exists and returns 1 if there is no embedded kobj.
Quoted 8 lines
Reported-by kernel test robot <[email protected]>Fixes 4dde83569832 ("of: Fix double free in of_parse_phandle_with_args_map")Signed-off-by Christian A. Ehrhardt <[email protected]>--- drivers/of/unittest.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
Applied, thanks!