2014-12-08 17:24:29

by Tsung-Han Lin

[permalink] [raw]
Subject: [PATCH] staging:board: fix build errors and warnings

Add dummy implementation of 'of_find_all_nodes',
and remove the unnecessary 'of_can_translate_address',
which is already removed in commit
d9c6866be8a145e32da616d8dcbae806032d75b5 ("of: kill off
of_can_translate_address"), to fix the build errors and warnings
found by sparse.

Signed-off-by: Tsung-Han Lin <[email protected]>
---
drivers/staging/board/board.c | 3 +--
include/linux/of.h | 5 +++++
2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/board/board.c b/drivers/staging/board/board.c
index 6050fbdfd31f..d5a6abc84519 100644
--- a/drivers/staging/board/board.c
+++ b/drivers/staging/board/board.c
@@ -11,8 +11,7 @@ static bool find_by_address(u64 base_address)
struct resource res;

while (dn) {
- if (of_can_translate_address(dn)
- && !of_address_to_resource(dn, 0, &res)) {
+ if (!of_address_to_resource(dn, 0, &res)) {
if (res.start == base_address) {
of_node_put(dn);
return true;
diff --git a/include/linux/of.h b/include/linux/of.h
index dfde07e77a63..c2c5021c1ee4 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -616,6 +616,11 @@ static inline const char *of_prop_next_string(struct property *prop,
return NULL;
}

+static inline struct device_node *of_find_all_nodes(struct device_node *prev)
+{
+ return NULL;
+}
+
#define of_match_ptr(_ptr) NULL
#define of_match_node(_matches, _node) NULL
#endif /* CONFIG_OF */
--
2.1.0


2014-12-12 17:49:50

by Grant Likely

[permalink] [raw]
Subject: Re: [PATCH] staging:board: fix build errors and warnings

On Tue, 9 Dec 2014 01:24:09 +0800
, Tsung-Han Lin <[email protected]>
wrote:
> Add dummy implementation of 'of_find_all_nodes',
> and remove the unnecessary 'of_can_translate_address',
> which is already removed in commit
> d9c6866be8a145e32da616d8dcbae806032d75b5 ("of: kill off
> of_can_translate_address"), to fix the build errors and warnings
> found by sparse.
>
> Signed-off-by: Tsung-Han Lin <[email protected]>

???

This code is just weird. If CONFIG_OF is not enabled, then board.c
shouldn't be compiled at all. You can do this with a patch to the
Kconfig and Makefile. Also, if the functions in
drivers/staging/board/board.c are needed for driver support, then please
propose a patch that moves them in into drivers/of/base.c so that they
can be reviewed properly. They are so short and simple that fixing them
up as part of the normal review process should be sufficient.

As for fixing the compile error, please drop the change to
include/linux/of.h and resubmit.

g.


> ---
> drivers/staging/board/board.c | 3 +--
> include/linux/of.h | 5 +++++
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/board/board.c b/drivers/staging/board/board.c
> index 6050fbdfd31f..d5a6abc84519 100644
> --- a/drivers/staging/board/board.c
> +++ b/drivers/staging/board/board.c
> @@ -11,8 +11,7 @@ static bool find_by_address(u64 base_address)
> struct resource res;
>
> while (dn) {
> - if (of_can_translate_address(dn)
> - && !of_address_to_resource(dn, 0, &res)) {
> + if (!of_address_to_resource(dn, 0, &res)) {
> if (res.start == base_address) {
> of_node_put(dn);
> return true;
> diff --git a/include/linux/of.h b/include/linux/of.h
> index dfde07e77a63..c2c5021c1ee4 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -616,6 +616,11 @@ static inline const char *of_prop_next_string(struct property *prop,
> return NULL;
> }
>
> +static inline struct device_node *of_find_all_nodes(struct device_node *prev)
> +{
> + return NULL;
> +}
> +
> #define of_match_ptr(_ptr) NULL
> #define of_match_node(_matches, _node) NULL
> #endif /* CONFIG_OF */
> --
> 2.1.0
>

2014-12-17 18:08:04

by Tsung-Han Lin

[permalink] [raw]
Subject: Re: [PATCH] staging:board: fix build errors and warnings

On Fri, Dec 12, 2014 at 11:36:10AM +0000, Grant Likely wrote:
> On Tue, 9 Dec 2014 01:24:09 +0800
> , Tsung-Han Lin <[email protected]>
> wrote:
> > Add dummy implementation of 'of_find_all_nodes',
> > and remove the unnecessary 'of_can_translate_address',
> > which is already removed in commit
> > d9c6866be8a145e32da616d8dcbae806032d75b5 ("of: kill off
> > of_can_translate_address"), to fix the build errors and warnings
> > found by sparse.
> >
> > Signed-off-by: Tsung-Han Lin <[email protected]>
>
> ???
>
> This code is just weird. If CONFIG_OF is not enabled, then board.c
> shouldn't be compiled at all. You can do this with a patch to the
> Kconfig and Makefile. Also, if the functions in
> drivers/staging/board/board.c are needed for driver support, then please
> propose a patch that moves them in into drivers/of/base.c so that they
> can be reviewed properly. They are so short and simple that fixing them
> up as part of the normal review process should be sufficient.
>
> As for fixing the compile error, please drop the change to
> include/linux/of.h and resubmit.
>
> g.
>
>

Sorry it took me sometime to understand what I got wrong,
and thank you for your suggestion.
I will re-send a fix for this.

I just built those codes with wrong .config and options.