Message ID | 1420445716-13468-1-git-send-email-hdegoede@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/01/15 10:15, Hans de Goede wrote: > of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set, > which is normally always the case when CONFIG_OF is defined, except on Sparc, > so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF. > > Reported-by: kbuild test robot <fengguang.wu@intel.com> > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/video/fbdev/simplefb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c > index 92cac80..1085c04 100644 > --- a/drivers/video/fbdev/simplefb.c > +++ b/drivers/video/fbdev/simplefb.c > @@ -402,7 +402,7 @@ static int __init simplefb_init(void) > if (ret) > return ret; > > - if (IS_ENABLED(CONFIG_OF) && of_chosen) { > + if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) { > for_each_child_of_node(of_chosen, np) { > if (of_device_is_compatible(np, "simple-framebuffer")) > of_platform_device_create(np, NULL, NULL); > Doesn't this depend on the compiler optimizing the of_platform_device_create call away? Isn't that rather dangerous assumption? Tomi
Hi, On 05-01-15 12:17, Tomi Valkeinen wrote: > On 05/01/15 10:15, Hans de Goede wrote: >> of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set, >> which is normally always the case when CONFIG_OF is defined, except on Sparc, >> so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF. >> >> Reported-by: kbuild test robot <fengguang.wu@intel.com> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >> --- >> drivers/video/fbdev/simplefb.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c >> index 92cac80..1085c04 100644 >> --- a/drivers/video/fbdev/simplefb.c >> +++ b/drivers/video/fbdev/simplefb.c >> @@ -402,7 +402,7 @@ static int __init simplefb_init(void) >> if (ret) >> return ret; >> >> - if (IS_ENABLED(CONFIG_OF) && of_chosen) { >> + if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) { >> for_each_child_of_node(of_chosen, np) { >> if (of_device_is_compatible(np, "simple-framebuffer")) >> of_platform_device_create(np, NULL, NULL); >> > > Doesn't this depend on the compiler optimizing the > of_platform_device_create call away? Yes it does. > Isn't that rather dangerous assumption? The kernel relies on being build with optimization enabled in various places, this specific construction was suggested during review (by Grant Likely IIRC) I initially had an #ifdef here. Note that this construction is used in various places throughout the kernel and it seems to be used more and more often. Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 05/01/15 13:21, Hans de Goede wrote: > Hi, > > On 05-01-15 12:17, Tomi Valkeinen wrote: >> On 05/01/15 10:15, Hans de Goede wrote: >>> of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set, >>> which is normally always the case when CONFIG_OF is defined, except >>> on Sparc, >>> so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF. >>> >>> Reported-by: kbuild test robot <fengguang.wu@intel.com> >>> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >>> --- >>> drivers/video/fbdev/simplefb.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/video/fbdev/simplefb.c >>> b/drivers/video/fbdev/simplefb.c >>> index 92cac80..1085c04 100644 >>> --- a/drivers/video/fbdev/simplefb.c >>> +++ b/drivers/video/fbdev/simplefb.c >>> @@ -402,7 +402,7 @@ static int __init simplefb_init(void) >>> if (ret) >>> return ret; >>> >>> - if (IS_ENABLED(CONFIG_OF) && of_chosen) { >>> + if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) { >>> for_each_child_of_node(of_chosen, np) { >>> if (of_device_is_compatible(np, "simple-framebuffer")) >>> of_platform_device_create(np, NULL, NULL); >>> >> >> Doesn't this depend on the compiler optimizing the >> of_platform_device_create call away? > > Yes it does. > >> Isn't that rather dangerous assumption? > > The kernel relies on being build with optimization enabled in various > places, > this specific construction was suggested during review (by Grant Likely > IIRC) > I initially had an #ifdef here. Note that this construction is used in > various > places throughout the kernel and it seems to be used more and more often. Ok. Well, I can't say I'm very happy about that, but if that's the common accepted way, I'm fine. I'll queue this for fbdev fixes. Tomi
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c index 92cac80..1085c04 100644 --- a/drivers/video/fbdev/simplefb.c +++ b/drivers/video/fbdev/simplefb.c @@ -402,7 +402,7 @@ static int __init simplefb_init(void) if (ret) return ret; - if (IS_ENABLED(CONFIG_OF) && of_chosen) { + if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) { for_each_child_of_node(of_chosen, np) { if (of_device_is_compatible(np, "simple-framebuffer")) of_platform_device_create(np, NULL, NULL);
of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set, which is normally always the case when CONFIG_OF is defined, except on Sparc, so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/video/fbdev/simplefb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)