diff mbox

[v2] bcma: Prevent build of PCI host features in module

Message ID 1519898292-12155-1-git-send-email-matt.redfearn@mips.com (mailing list archive)
State Accepted
Commit 79ca239a68f8f006ed872a023d97fbadf9d1577d
Delegated to: Kalle Valo
Headers show

Commit Message

Matt Redfearn March 1, 2018, 9:58 a.m. UTC
Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
a build error due to use of symbols not exported from vmlinux:

ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1

To prevent this, don't allow the host mode feature to be built if
CONFIG_BCMA=m

Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>

---

Changes in v2:
Rebase on v4.16-rc1

 drivers/bcma/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kalle Valo March 1, 2018, 10:45 a.m. UTC | #1
Matt Redfearn <matt.redfearn@mips.com> writes:

> Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
> a build error due to use of symbols not exported from vmlinux:
>
> ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
> ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
> make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
>
> To prevent this, don't allow the host mode feature to be built if
> CONFIG_BCMA=m
>
> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
>
> ---
>
> Changes in v2:
> Rebase on v4.16-rc1
>
>  drivers/bcma/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
> index ba8acca036df..cb0f1aad20b7 100644
> --- a/drivers/bcma/Kconfig
> +++ b/drivers/bcma/Kconfig
> @@ -55,7 +55,7 @@ config BCMA_DRIVER_PCI
>  
>  config BCMA_DRIVER_PCI_HOSTMODE
>  	bool "Driver for PCI core working in hostmode"
> -	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY
> +	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY && BCMA = y

Due to the recent regression in bcma I would prefer extra careful review
before I apply this. So does this look ok to everyone?
Larry Finger March 2, 2018, 5:56 p.m. UTC | #2
On 03/01/2018 04:45 AM, Kalle Valo wrote:
> Matt Redfearn <matt.redfearn@mips.com> writes:
> 
>> Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
>> a build error due to use of symbols not exported from vmlinux:
>>
>> ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
>> ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
>> make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
>>
>> To prevent this, don't allow the host mode feature to be built if
>> CONFIG_BCMA=m
>>
>> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
>>
>> ---
>>
>> Changes in v2:
>> Rebase on v4.16-rc1
>>
>>   drivers/bcma/Kconfig | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
>> index ba8acca036df..cb0f1aad20b7 100644
>> --- a/drivers/bcma/Kconfig
>> +++ b/drivers/bcma/Kconfig
>> @@ -55,7 +55,7 @@ config BCMA_DRIVER_PCI
>>   
>>   config BCMA_DRIVER_PCI_HOSTMODE
>>   	bool "Driver for PCI core working in hostmode"
>> -	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY
>> +	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY && BCMA = y
> 
> Due to the recent regression in bcma I would prefer extra careful review
> before I apply this. So does this look ok to everyone?

I have a preference for wireless device drivers to be modules. For that reason, 
I would have submitted a patch exporting those two missing globals rather than 
forcing bcma to be built in. That said, it seems that the patch will do no 
further harm.

Larry
Matt Redfearn March 8, 2018, noon UTC | #3
Hi,

On 02/03/18 17:56, Larry Finger wrote:
> On 03/01/2018 04:45 AM, Kalle Valo wrote:
>> Matt Redfearn <matt.redfearn@mips.com> writes:
>>
>>> Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
>>> a build error due to use of symbols not exported from vmlinux:
>>>
>>> ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
>>> ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
>>> make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
>>>
>>> To prevent this, don't allow the host mode feature to be built if
>>> CONFIG_BCMA=m
>>>
>>> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
>>>
>>> ---
>>>
>>> Changes in v2:
>>> Rebase on v4.16-rc1
>>>
>>>   drivers/bcma/Kconfig | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
>>> index ba8acca036df..cb0f1aad20b7 100644
>>> --- a/drivers/bcma/Kconfig
>>> +++ b/drivers/bcma/Kconfig
>>> @@ -55,7 +55,7 @@ config BCMA_DRIVER_PCI
>>>   config BCMA_DRIVER_PCI_HOSTMODE
>>>       bool "Driver for PCI core working in hostmode"
>>> -    depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY
>>> +    depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY && BCMA 
>>> = y
>>
>> Due to the recent regression in bcma I would prefer extra careful review
>> before I apply this. So does this look ok to everyone?
> 
> I have a preference for wireless device drivers to be modules. For that 
> reason, I would have submitted a patch exporting those two missing 
> globals rather than forcing bcma to be built in. That said, it seems 
> that the patch will do no further harm.


This patch was purely intended to fix the build breakage caused by 
attempting to build host-mode PCI into a module, which fails due to 
necessary symbols not being exported by the kernel for use by modules.

Making it possible to build the driver including host mode may not be as 
trivial as "lets just export the symbols", and testing that it works 
correctly once it can be built as a module will require hardware with 
this device present (which I don't have).

So I would propose that this patch be merged as is, since as you say, it 
does no further harm - it should just fix build breakage - and if the 
driver, including this host mode feature, is really required as a 
module, perhaps someone with access to the hardware could spin a patch 
to implement that.

Thanks,
Matt

> 
> Larry
> 
>
Jonas Gorski March 10, 2018, 11:35 a.m. UTC | #4
Hi,

On 8 March 2018 at 13:00, Matt Redfearn <matt.redfearn@mips.com> wrote:
> Hi,
>
>
> On 02/03/18 17:56, Larry Finger wrote:
>>
>> On 03/01/2018 04:45 AM, Kalle Valo wrote:
>>>
>>> Matt Redfearn <matt.redfearn@mips.com> writes:
>>>
>>>> Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
>>>> a build error due to use of symbols not exported from vmlinux:
>>>>
>>>> ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
>>>> ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
>>>> make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
>>>>
>>>> To prevent this, don't allow the host mode feature to be built if
>>>> CONFIG_BCMA=m
>>>>
>>>> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
>>>>
>>>> ---
>>>>
>>>> Changes in v2:
>>>> Rebase on v4.16-rc1
>>>>
>>>>   drivers/bcma/Kconfig | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
>>>> index ba8acca036df..cb0f1aad20b7 100644
>>>> --- a/drivers/bcma/Kconfig
>>>> +++ b/drivers/bcma/Kconfig
>>>> @@ -55,7 +55,7 @@ config BCMA_DRIVER_PCI
>>>>   config BCMA_DRIVER_PCI_HOSTMODE
>>>>       bool "Driver for PCI core working in hostmode"
>>>> -    depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY
>>>> +    depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY && BCMA =
>>>> y
>>>
>>>
>>> Due to the recent regression in bcma I would prefer extra careful review
>>> before I apply this. So does this look ok to everyone?
>>
>>
>> I have a preference for wireless device drivers to be modules. For that
>> reason, I would have submitted a patch exporting those two missing globals
>> rather than forcing bcma to be built in. That said, it seems that the patch
>> will do no further harm.
>
>
>
> This patch was purely intended to fix the build breakage caused by
> attempting to build host-mode PCI into a module, which fails due to
> necessary symbols not being exported by the kernel for use by modules.
>
> Making it possible to build the driver including host mode may not be as
> trivial as "lets just export the symbols", and testing that it works
> correctly once it can be built as a module will require hardware with this
> device present (which I don't have).
>
> So I would propose that this patch be merged as is, since as you say, it
> does no further harm - it should just fix build breakage - and if the
> driver, including this host mode feature, is really required as a module,
> perhaps someone with access to the hardware could spin a patch to implement
> that.


These aren't the actual wireless drivers, just the bus drivers. The
actual wireless drivers (b43 / brcmsmac) can still be built as a
module.

Also those systems that use/need the pci host driver of ssb/bcma
actually need ssb/bcma built-in anyway, as it also provides serial
console, interrupt routing, flash access, and other early init stuff.
At best one could rewrite the pci host core driver as a standalone
bcma driver, and then one could allow it to be built as a module. But
I'm not sure if it's worth it.


Regards
Jonas
Kalle Valo March 13, 2018, 4:48 p.m. UTC | #5
Matt Redfearn <matt.redfearn@mips.com> wrote:

> Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
> a build error due to use of symbols not exported from vmlinux:
> 
> ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
> ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
> make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
> 
> To prevent this, don't allow the host mode feature to be built if
> CONFIG_BCMA=m
> 
> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>

Patch applied to wireless-drivers-next.git, thanks.

79ca239a68f8 bcma: Prevent build of PCI host features in module
diff mbox

Patch

diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
index ba8acca036df..cb0f1aad20b7 100644
--- a/drivers/bcma/Kconfig
+++ b/drivers/bcma/Kconfig
@@ -55,7 +55,7 @@  config BCMA_DRIVER_PCI
 
 config BCMA_DRIVER_PCI_HOSTMODE
 	bool "Driver for PCI core working in hostmode"
-	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY
+	depends on MIPS && BCMA_DRIVER_PCI && PCI_DRIVERS_LEGACY && BCMA = y
 	help
 	  PCI core hostmode operation (external PCI bus).