linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] bcma: fix linking problem with of_default_bus_match_table
@ 2015-07-23  6:31 Kalle Valo
  2015-07-23 10:02 ` Jonas Gorski
  2015-07-26 11:57 ` Kalle Valo
  0 siblings, 2 replies; 6+ messages in thread
From: Kalle Valo @ 2015-07-23  6:31 UTC (permalink / raw)
  To: linux-wireless

Stephen reported a build problem caused by commit cae761b5a6bd ("bcma: populate
bus DT subnodes as platform_device-s"):

ERROR: "of_default_bus_match_table" [drivers/bcma/bcma.ko] undefined!

Rafał Miłecki suggested as a quick fix to use IS_BUILTIN() to workaround the
issue. The downside is that this won't work when BCMA is compiled as a module,
but we can live with that for now just to unblock the breakage.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: cae761b5a6bd ("bcma: populate bus DT subnodes as platform_device-s")
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
---
 drivers/bcma/main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
index 59128478a90f..6b7d54622058 100644
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
@@ -410,7 +410,7 @@ int bcma_bus_register(struct bcma_bus *bus)
 		bcma_core_pci_early_init(&bus->drv_pci[0]);
 	}
 
-	if (bus->host_pdev) {
+	if (IS_BUILTIN(CONFIG_BCMA) && bus->host_pdev) {
 		struct device *dev = &bus->host_pdev->dev;
 
 		of_platform_populate(dev->of_node, of_default_bus_match_table,
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] bcma: fix linking problem with of_default_bus_match_table
  2015-07-23  6:31 [PATCH] bcma: fix linking problem with of_default_bus_match_table Kalle Valo
@ 2015-07-23 10:02 ` Jonas Gorski
  2015-07-23 15:51   ` Kalle Valo
  2015-07-26 11:57 ` Kalle Valo
  1 sibling, 1 reply; 6+ messages in thread
From: Jonas Gorski @ 2015-07-23 10:02 UTC (permalink / raw)
  To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org

Hi,

On Thu, Jul 23, 2015 at 8:31 AM, Kalle Valo <kvalo@codeaurora.org> wrote:
> Stephen reported a build problem caused by commit cae761b5a6bd ("bcma: populate
> bus DT subnodes as platform_device-s"):
>
> ERROR: "of_default_bus_match_table" [drivers/bcma/bcma.ko] undefined!
>
> Rafał Miłecki suggested as a quick fix to use IS_BUILTIN() to workaround the
> issue. The downside is that this won't work when BCMA is compiled as a module,
> but we can live with that for now just to unblock the breakage.
>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Fixes: cae761b5a6bd ("bcma: populate bus DT subnodes as platform_device-s")
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
> ---
>  drivers/bcma/main.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
> index 59128478a90f..6b7d54622058 100644
> --- a/drivers/bcma/main.c
> +++ b/drivers/bcma/main.c
> @@ -410,7 +410,7 @@ int bcma_bus_register(struct bcma_bus *bus)
>                 bcma_core_pci_early_init(&bus->drv_pci[0]);
>         }
>
> -       if (bus->host_pdev) {
> +       if (IS_BUILTIN(CONFIG_BCMA) && bus->host_pdev) {
>                 struct device *dev = &bus->host_pdev->dev;
>
>                 of_platform_populate(dev->of_node, of_default_bus_match_table,

I think this isn't enough, AFAICT this needs IS_BUILTIN(CONFIG_BCMA)
&& IS_ENABLED(CONFIG_OF), else it will break with OF=n and BCMA=y, as
of_default_bus_match_table is only defined/built-in when OF=y.


Jonas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bcma: fix linking problem with of_default_bus_match_table
  2015-07-23 10:02 ` Jonas Gorski
@ 2015-07-23 15:51   ` Kalle Valo
  2015-07-23 16:04     ` Jonas Gorski
  0 siblings, 1 reply; 6+ messages in thread
From: Kalle Valo @ 2015-07-23 15:51 UTC (permalink / raw)
  To: Jonas Gorski; +Cc: linux-wireless@vger.kernel.org

Jonas Gorski <jogo@openwrt.org> writes:

> Hi,
>
> On Thu, Jul 23, 2015 at 8:31 AM, Kalle Valo <kvalo@codeaurora.org> wrote:
>
>> diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
>> index 59128478a90f..6b7d54622058 100644
>> --- a/drivers/bcma/main.c
>> +++ b/drivers/bcma/main.c
>> @@ -410,7 +410,7 @@ int bcma_bus_register(struct bcma_bus *bus)
>>                 bcma_core_pci_early_init(&bus->drv_pci[0]);
>>         }
>>
>> -       if (bus->host_pdev) {
>> +       if (IS_BUILTIN(CONFIG_BCMA) && bus->host_pdev) {
>>                 struct device *dev = &bus->host_pdev->dev;
>>
>>                 of_platform_populate(dev->of_node, of_default_bus_match_table,
>
> I think this isn't enough, AFAICT this needs IS_BUILTIN(CONFIG_BCMA)
> && IS_ENABLED(CONFIG_OF), else it will break with OF=n and BCMA=y, as
> of_default_bus_match_table is only defined/built-in when OF=y.

I just tested and OF=n and BCMA=y case built succesfully for me. I think
it's because of_default_bus_match_table is created even when CONFIG_OF
is n. Can you double check, please?

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bcma: fix linking problem with of_default_bus_match_table
  2015-07-23 15:51   ` Kalle Valo
@ 2015-07-23 16:04     ` Jonas Gorski
  2015-07-23 17:15       ` Kalle Valo
  0 siblings, 1 reply; 6+ messages in thread
From: Jonas Gorski @ 2015-07-23 16:04 UTC (permalink / raw)
  To: Kalle Valo; +Cc: linux-wireless@vger.kernel.org

On 23.07.2015 17:51, Kalle Valo wrote:
> Jonas Gorski <jogo@openwrt.org> writes:
> 
>> Hi,
>>
>> On Thu, Jul 23, 2015 at 8:31 AM, Kalle Valo <kvalo@codeaurora.org> wrote:
>>
>>> diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
>>> index 59128478a90f..6b7d54622058 100644
>>> --- a/drivers/bcma/main.c
>>> +++ b/drivers/bcma/main.c
>>> @@ -410,7 +410,7 @@ int bcma_bus_register(struct bcma_bus *bus)
>>>                 bcma_core_pci_early_init(&bus->drv_pci[0]);
>>>         }
>>>
>>> -       if (bus->host_pdev) {
>>> +       if (IS_BUILTIN(CONFIG_BCMA) && bus->host_pdev) {
>>>                 struct device *dev = &bus->host_pdev->dev;
>>>
>>>                 of_platform_populate(dev->of_node, of_default_bus_match_table,
>>
>> I think this isn't enough, AFAICT this needs IS_BUILTIN(CONFIG_BCMA)
>> && IS_ENABLED(CONFIG_OF), else it will break with OF=n and BCMA=y, as
>> of_default_bus_match_table is only defined/built-in when OF=y.
> 
> I just tested and OF=n and BCMA=y case built succesfully for me. I think
> it's because of_default_bus_match_table is created even when CONFIG_OF
> is n. Can you double check, please?
> 

Thinking more about it, I know/remember why it complies even if it
shouldn't: the inline prototype for !OF of of_platform_populate does not
use any of the arguments so the compiler optimises the reference out.
So unless you compile with -O0, you are fine.

I always forget that this works, so sorry for the noise.


Jonas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bcma: fix linking problem with of_default_bus_match_table
  2015-07-23 16:04     ` Jonas Gorski
@ 2015-07-23 17:15       ` Kalle Valo
  0 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2015-07-23 17:15 UTC (permalink / raw)
  To: Jonas Gorski; +Cc: linux-wireless@vger.kernel.org

Jonas Gorski <jogo@openwrt.org> writes:

>>> I think this isn't enough, AFAICT this needs IS_BUILTIN(CONFIG_BCMA)
>>> && IS_ENABLED(CONFIG_OF), else it will break with OF=n and BCMA=y, as
>>> of_default_bus_match_table is only defined/built-in when OF=y.
>> 
>> I just tested and OF=n and BCMA=y case built succesfully for me. I think
>> it's because of_default_bus_match_table is created even when CONFIG_OF
>> is n. Can you double check, please?
>> 
>
> Thinking more about it, I know/remember why it complies even if it
> shouldn't: the inline prototype for !OF of of_platform_populate does not
> use any of the arguments so the compiler optimises the reference out.
> So unless you compile with -O0, you are fine.

Thanks for checking. I think this is good enough for now and I'll apply
this once I get the report from kbuild.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] bcma: fix linking problem with of_default_bus_match_table
  2015-07-23  6:31 [PATCH] bcma: fix linking problem with of_default_bus_match_table Kalle Valo
  2015-07-23 10:02 ` Jonas Gorski
@ 2015-07-26 11:57 ` Kalle Valo
  1 sibling, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2015-07-26 11:57 UTC (permalink / raw)
  To: linux-wireless

Kalle Valo <kvalo@codeaurora.org> writes:

> Stephen reported a build problem caused by commit cae761b5a6bd ("bcma: populate
> bus DT subnodes as platform_device-s"):
>
> ERROR: "of_default_bus_match_table" [drivers/bcma/bcma.ko] undefined!
>
> Rafał Miłecki suggested as a quick fix to use IS_BUILTIN() to workaround the
> issue. The downside is that this won't work when BCMA is compiled as a module,
> but we can live with that for now just to unblock the breakage.
>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Fixes: cae761b5a6bd ("bcma: populate bus DT subnodes as platform_device-s")
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

I dropped this as Hauke sent a better patch.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-07-26 11:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-23  6:31 [PATCH] bcma: fix linking problem with of_default_bus_match_table Kalle Valo
2015-07-23 10:02 ` Jonas Gorski
2015-07-23 15:51   ` Kalle Valo
2015-07-23 16:04     ` Jonas Gorski
2015-07-23 17:15       ` Kalle Valo
2015-07-26 11:57 ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).