All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
@ 2019-10-11  3:02 zhong jiang
  2019-10-11  4:26 ` Greg KH
  0 siblings, 1 reply; 11+ messages in thread
From: zhong jiang @ 2019-10-11  3:02 UTC (permalink / raw)
  To: jerome.pouiller, gregkh; +Cc: linux-kernel, zhongjiang

I hit the following error when compile the kernel.

drivers/staging/wfx/main.o: In function `wfx_core_init':
/home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: undefined reference to `sdio_register_driver'
drivers/staging/wfx/main.o: In function `wfx_core_exit':
/home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: undefined reference to `sdio_unregister_driver'
drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to `sdio_register_driver'
drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to `sdio_unregister_driver'

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
---
 drivers/staging/wfx/Kconfig  | 3 ++-
 drivers/staging/wfx/Makefile | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
index 9b8a1c7..4d045513 100644
--- a/drivers/staging/wfx/Kconfig
+++ b/drivers/staging/wfx/Kconfig
@@ -1,7 +1,8 @@
 config WFX
 	tristate "Silicon Labs wireless chips WF200 and further"
 	depends on MAC80211
-	depends on (SPI || MMC)
+	depends on SPI
+	select MMC
 	help
 	  This is a driver for Silicons Labs WFxxx series (WF200 and further)
 	  chipsets. This chip can be found on SPI or SDIO buses.
diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
index 0d9c1ed..fc30b49 100644
--- a/drivers/staging/wfx/Makefile
+++ b/drivers/staging/wfx/Makefile
@@ -17,8 +17,9 @@ wfx-y := \
 	key.o \
 	main.o \
 	sta.o \
-	debug.o
+	debug.o \
+	bus_sdio.o
+
 wfx-$(CONFIG_SPI) += bus_spi.o
-wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
 
 obj-$(CONFIG_WFX) += wfx.o
-- 
1.7.12.4


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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  3:02 [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m zhong jiang
@ 2019-10-11  4:26 ` Greg KH
  2019-10-11  6:20   ` zhong jiang
  2019-10-11  8:40   ` Jerome Pouiller
  0 siblings, 2 replies; 11+ messages in thread
From: Greg KH @ 2019-10-11  4:26 UTC (permalink / raw)
  To: zhong jiang; +Cc: jerome.pouiller, linux-kernel

On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
> I hit the following error when compile the kernel.
> 
> drivers/staging/wfx/main.o: In function `wfx_core_init':
> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: undefined reference to `sdio_register_driver'
> drivers/staging/wfx/main.o: In function `wfx_core_exit':
> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: undefined reference to `sdio_unregister_driver'
> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to `sdio_register_driver'
> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to `sdio_unregister_driver'
> 
> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> ---
>  drivers/staging/wfx/Kconfig  | 3 ++-
>  drivers/staging/wfx/Makefile | 5 +++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
> index 9b8a1c7..4d045513 100644
> --- a/drivers/staging/wfx/Kconfig
> +++ b/drivers/staging/wfx/Kconfig
> @@ -1,7 +1,8 @@
>  config WFX
>  	tristate "Silicon Labs wireless chips WF200 and further"
>  	depends on MAC80211
> -	depends on (SPI || MMC)
> +	depends on SPI
> +	select MMC

How about:
	depends on (SPI && MMC)

instead?

thanks,

greg k-h

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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  4:26 ` Greg KH
@ 2019-10-11  6:20   ` zhong jiang
  2019-10-11  8:40   ` Jerome Pouiller
  1 sibling, 0 replies; 11+ messages in thread
From: zhong jiang @ 2019-10-11  6:20 UTC (permalink / raw)
  To: Greg KH; +Cc: jerome.pouiller, linux-kernel

On 2019/10/11 12:26, Greg KH wrote:
> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
>> I hit the following error when compile the kernel.
>>
>> drivers/staging/wfx/main.o: In function `wfx_core_init':
>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: undefined reference to `sdio_register_driver'
>> drivers/staging/wfx/main.o: In function `wfx_core_exit':
>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: undefined reference to `sdio_unregister_driver'
>> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to `sdio_register_driver'
>> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to `sdio_unregister_driver'
>>
>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
>> ---
>>  drivers/staging/wfx/Kconfig  | 3 ++-
>>  drivers/staging/wfx/Makefile | 5 +++--
>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
>> index 9b8a1c7..4d045513 100644
>> --- a/drivers/staging/wfx/Kconfig
>> +++ b/drivers/staging/wfx/Kconfig
>> @@ -1,7 +1,8 @@
>>  config WFX
>>  	tristate "Silicon Labs wireless chips WF200 and further"
>>  	depends on MAC80211
>> -	depends on (SPI || MMC)
>> +	depends on SPI
>> +	select MMC
> How about:
> 	depends on (SPI && MMC)
>
> instead?
Yep,  That is better.  Will repost in v2.  Thanks,

Sincerely,
zhong jiang
> thanks,
>
> greg k-h
>
> .
>



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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  4:26 ` Greg KH
  2019-10-11  6:20   ` zhong jiang
@ 2019-10-11  8:40   ` Jerome Pouiller
  2019-10-11  9:02     ` Greg KH
  1 sibling, 1 reply; 11+ messages in thread
From: Jerome Pouiller @ 2019-10-11  8:40 UTC (permalink / raw)
  To: Greg KH; +Cc: zhong jiang, linux-kernel

On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
> CAUTION: This email originated from outside of the organization. Do not 
click links or open attachments unless you recognize the sender and know the 
content is safe.
> 
> 
> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
> > I hit the following error when compile the kernel.
> >
> > drivers/staging/wfx/main.o: In function `wfx_core_init':
> > /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
undefined reference to `sdio_register_driver'
> > drivers/staging/wfx/main.o: In function `wfx_core_exit':
> > /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
undefined reference to `sdio_unregister_driver'
> > drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
`sdio_register_driver'
> > drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
`sdio_unregister_driver'
> >
> > Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> > ---
> >  drivers/staging/wfx/Kconfig  | 3 ++-
> >  drivers/staging/wfx/Makefile | 5 +++--
> >  2 files changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
> > index 9b8a1c7..4d045513 100644
> > --- a/drivers/staging/wfx/Kconfig
> > +++ b/drivers/staging/wfx/Kconfig
> > @@ -1,7 +1,8 @@
> >  config WFX
> >       tristate "Silicon Labs wireless chips WF200 and further"
> >       depends on MAC80211
> > -     depends on (SPI || MMC)
> > +     depends on SPI
> > +     select MMC
> 
> How about:
>         depends on (SPI && MMC)

I dislike to force user to enable both buses while only one of them is 
sufficient. I would prefer to keep current dependencies and to add
#ifdef around problematic functions.

(I though I had a test of compilation w/o MMC nor SPI, but I realize
that it did not work)


-- 
Jérôme Pouiller


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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  8:40   ` Jerome Pouiller
@ 2019-10-11  9:02     ` Greg KH
  2019-10-11 14:48       ` zhong jiang
  2019-10-11 15:51       ` zhong jiang
  0 siblings, 2 replies; 11+ messages in thread
From: Greg KH @ 2019-10-11  9:02 UTC (permalink / raw)
  To: Jerome Pouiller; +Cc: zhong jiang, linux-kernel

On Fri, Oct 11, 2019 at 08:40:08AM +0000, Jerome Pouiller wrote:
> On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
> > CAUTION: This email originated from outside of the organization. Do not 
> click links or open attachments unless you recognize the sender and know the 
> content is safe.
> > 
> > 
> > On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
> > > I hit the following error when compile the kernel.
> > >
> > > drivers/staging/wfx/main.o: In function `wfx_core_init':
> > > /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
> undefined reference to `sdio_register_driver'
> > > drivers/staging/wfx/main.o: In function `wfx_core_exit':
> > > /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
> undefined reference to `sdio_unregister_driver'
> > > drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
> `sdio_register_driver'
> > > drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
> `sdio_unregister_driver'
> > >
> > > Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> > > ---
> > >  drivers/staging/wfx/Kconfig  | 3 ++-
> > >  drivers/staging/wfx/Makefile | 5 +++--
> > >  2 files changed, 5 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
> > > index 9b8a1c7..4d045513 100644
> > > --- a/drivers/staging/wfx/Kconfig
> > > +++ b/drivers/staging/wfx/Kconfig
> > > @@ -1,7 +1,8 @@
> > >  config WFX
> > >       tristate "Silicon Labs wireless chips WF200 and further"
> > >       depends on MAC80211
> > > -     depends on (SPI || MMC)
> > > +     depends on SPI
> > > +     select MMC
> > 
> > How about:
> >         depends on (SPI && MMC)
> 
> I dislike to force user to enable both buses while only one of them is 
> sufficient. I would prefer to keep current dependencies and to add
> #ifdef around problematic functions.

Yes, that's the better thing to do here overall.

zhong, can you work on that?

thanks,

greg k-h

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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  9:02     ` Greg KH
@ 2019-10-11 14:48       ` zhong jiang
  2019-10-11 15:51       ` zhong jiang
  1 sibling, 0 replies; 11+ messages in thread
From: zhong jiang @ 2019-10-11 14:48 UTC (permalink / raw)
  To: Greg KH; +Cc: Jerome Pouiller, linux-kernel

On 2019/10/11 17:02, Greg KH wrote:
> On Fri, Oct 11, 2019 at 08:40:08AM +0000, Jerome Pouiller wrote:
>> On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
>>> CAUTION: This email originated from outside of the organization. Do not 
>> click links or open attachments unless you recognize the sender and know the 
>> content is safe.
>>>
>>> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
>>>> I hit the following error when compile the kernel.
>>>>
>>>> drivers/staging/wfx/main.o: In function `wfx_core_init':
>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
>> undefined reference to `sdio_register_driver'
>>>> drivers/staging/wfx/main.o: In function `wfx_core_exit':
>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
>> undefined reference to `sdio_unregister_driver'
>>>> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
>> `sdio_register_driver'
>>>> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
>> `sdio_unregister_driver'
>>>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
>>>> ---
>>>>  drivers/staging/wfx/Kconfig  | 3 ++-
>>>>  drivers/staging/wfx/Makefile | 5 +++--
>>>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
>>>> index 9b8a1c7..4d045513 100644
>>>> --- a/drivers/staging/wfx/Kconfig
>>>> +++ b/drivers/staging/wfx/Kconfig
>>>> @@ -1,7 +1,8 @@
>>>>  config WFX
>>>>       tristate "Silicon Labs wireless chips WF200 and further"
>>>>       depends on MAC80211
>>>> -     depends on (SPI || MMC)
>>>> +     depends on SPI
>>>> +     select MMC
>>> How about:
>>>         depends on (SPI && MMC)
>> I dislike to force user to enable both buses while only one of them is 
>> sufficient. I would prefer to keep current dependencies and to add
>> #ifdef around problematic functions.
> Yes, that's the better thing to do here overall.
>
> zhong, can you work on that?
I will repost as Jerome said.  Thanks

Sincerely,
zhong jiang
> thanks,
>
> greg k-h
>
> .
>



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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11  9:02     ` Greg KH
  2019-10-11 14:48       ` zhong jiang
@ 2019-10-11 15:51       ` zhong jiang
  2019-10-11 15:55         ` Jerome Pouiller
  2019-10-11 16:16         ` Greg KH
  1 sibling, 2 replies; 11+ messages in thread
From: zhong jiang @ 2019-10-11 15:51 UTC (permalink / raw)
  To: Greg KH; +Cc: Jerome Pouiller, linux-kernel

On 2019/10/11 17:02, Greg KH wrote:
> On Fri, Oct 11, 2019 at 08:40:08AM +0000, Jerome Pouiller wrote:
>> On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
>>> CAUTION: This email originated from outside of the organization. Do not 
>> click links or open attachments unless you recognize the sender and know the 
>> content is safe.
>>>
>>> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
>>>> I hit the following error when compile the kernel.
>>>>
>>>> drivers/staging/wfx/main.o: In function `wfx_core_init':
>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
>> undefined reference to `sdio_register_driver'
>>>> drivers/staging/wfx/main.o: In function `wfx_core_exit':
>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
>> undefined reference to `sdio_unregister_driver'
>>>> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
>> `sdio_register_driver'
>>>> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
>> `sdio_unregister_driver'
>>>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
>>>> ---
>>>>  drivers/staging/wfx/Kconfig  | 3 ++-
>>>>  drivers/staging/wfx/Makefile | 5 +++--
>>>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
>>>> index 9b8a1c7..4d045513 100644
>>>> --- a/drivers/staging/wfx/Kconfig
>>>> +++ b/drivers/staging/wfx/Kconfig
>>>> @@ -1,7 +1,8 @@
>>>>  config WFX
>>>>       tristate "Silicon Labs wireless chips WF200 and further"
>>>>       depends on MAC80211
>>>> -     depends on (SPI || MMC)
>>>> +     depends on SPI
>>>> +     select MMC
>>> How about:
>>>         depends on (SPI && MMC)
>> I dislike to force user to enable both buses while only one of them is 
>> sufficient. I would prefer to keep current dependencies and to add
>> #ifdef around problematic functions.
> Yes, that's the better thing to do here overall.
>
> zhong, can you work on that?
How about the following patch ?

diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
index 0d9c1ed..77d68b7 100644
--- a/drivers/staging/wfx/Makefile
+++ b/drivers/staging/wfx/Makefile
@@ -19,6 +19,6 @@ wfx-y := \
        sta.o \
        debug.o
 wfx-$(CONFIG_SPI) += bus_spi.o
-wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
+wfx-$(CONFIG_MMC) += bus_sdio.o

 obj-$(CONFIG_WFX) += wfx.o
diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
index d2508bc..26720a4 100644
--- a/drivers/staging/wfx/main.c
+++ b/drivers/staging/wfx/main.c
@@ -484,16 +484,19 @@ static int __init wfx_core_init(void)

        if (IS_ENABLED(CONFIG_SPI))
                ret = spi_register_driver(&wfx_spi_driver);
-       if (IS_ENABLED(CONFIG_MMC) && !ret)
+#ifdef CONFIG_MMC
+       if (!ret)
                ret = sdio_register_driver(&wfx_sdio_driver);
+#endif
        return ret;
 }
 module_init(wfx_core_init);

 static void __exit wfx_core_exit(void)
 {
-       if (IS_ENABLED(CONFIG_MMC))
-               sdio_unregister_driver(&wfx_sdio_driver);
+#ifdef CONFIG_MMC
+       sdio_unregister_driver(&wfx_sdio_driver);
+#endif
        if (IS_ENABLED(CONFIG_SPI))
                spi_unregister_driver(&wfx_spi_driver);
 }
--

Thanks,
zhong jiang
> thanks,
>
> greg k-h
>
> .
>



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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11 15:51       ` zhong jiang
@ 2019-10-11 15:55         ` Jerome Pouiller
  2019-10-11 16:13           ` zhong jiang
  2019-10-11 16:16         ` Greg KH
  1 sibling, 1 reply; 11+ messages in thread
From: Jerome Pouiller @ 2019-10-11 15:55 UTC (permalink / raw)
  To: zhong jiang; +Cc: Greg KH, linux-kernel

On Friday 11 October 2019 17:51:29 CEST zhong jiang wrote:
[...]
> How about the following patch ?
> 
> diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
> index 0d9c1ed..77d68b7 100644
> --- a/drivers/staging/wfx/Makefile
> +++ b/drivers/staging/wfx/Makefile
> @@ -19,6 +19,6 @@ wfx-y := \
>         sta.o \
>         debug.o
>  wfx-$(CONFIG_SPI) += bus_spi.o
> -wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
> +wfx-$(CONFIG_MMC) += bus_sdio.o
> 
>  obj-$(CONFIG_WFX) += wfx.o
> diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
> index d2508bc..26720a4 100644
> --- a/drivers/staging/wfx/main.c
> +++ b/drivers/staging/wfx/main.c
> @@ -484,16 +484,19 @@ static int __init wfx_core_init(void)
> 
>         if (IS_ENABLED(CONFIG_SPI))
>                 ret = spi_register_driver(&wfx_spi_driver);
> -       if (IS_ENABLED(CONFIG_MMC) && !ret)
> +#ifdef CONFIG_MMC
> +       if (!ret)
>                 ret = sdio_register_driver(&wfx_sdio_driver);
> +#endif
>         return ret;
>  }
>  module_init(wfx_core_init);
> 
>  static void __exit wfx_core_exit(void)
>  {
> -       if (IS_ENABLED(CONFIG_MMC))
> -               sdio_unregister_driver(&wfx_sdio_driver);
> +#ifdef CONFIG_MMC
> +       sdio_unregister_driver(&wfx_sdio_driver);
> +#endif
>         if (IS_ENABLED(CONFIG_SPI))
>                 spi_unregister_driver(&wfx_spi_driver);
>  }
Hello zhong,

Can you also check the case where CONFIG_SPI is not set?

Thank you,

-- 
Jérôme Pouiller


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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11 15:55         ` Jerome Pouiller
@ 2019-10-11 16:13           ` zhong jiang
  0 siblings, 0 replies; 11+ messages in thread
From: zhong jiang @ 2019-10-11 16:13 UTC (permalink / raw)
  To: Jerome Pouiller; +Cc: Greg KH, linux-kernel

On 2019/10/11 23:55, Jerome Pouiller wrote:
> On Friday 11 October 2019 17:51:29 CEST zhong jiang wrote:
> [...]
>> How about the following patch ?
>>
>> diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
>> index 0d9c1ed..77d68b7 100644
>> --- a/drivers/staging/wfx/Makefile
>> +++ b/drivers/staging/wfx/Makefile
>> @@ -19,6 +19,6 @@ wfx-y := \
>>         sta.o \
>>         debug.o
>>  wfx-$(CONFIG_SPI) += bus_spi.o
>> -wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
>> +wfx-$(CONFIG_MMC) += bus_sdio.o
>>
>>  obj-$(CONFIG_WFX) += wfx.o
>> diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
>> index d2508bc..26720a4 100644
>> --- a/drivers/staging/wfx/main.c
>> +++ b/drivers/staging/wfx/main.c
>> @@ -484,16 +484,19 @@ static int __init wfx_core_init(void)
>>
>>         if (IS_ENABLED(CONFIG_SPI))
>>                 ret = spi_register_driver(&wfx_spi_driver);
>> -       if (IS_ENABLED(CONFIG_MMC) && !ret)
>> +#ifdef CONFIG_MMC
>> +       if (!ret)
>>                 ret = sdio_register_driver(&wfx_sdio_driver);
>> +#endif
>>         return ret
>>  }
>>  module_init(wfx_core_init);
>>
>>  static void __exit wfx_core_exit(void)
>>  {
>> -       if (IS_ENABLED(CONFIG_MMC))
>> -               sdio_unregister_driver(&wfx_sdio_driver);
>> +#ifdef CONFIG_MMC
>> +       sdio_unregister_driver(&wfx_sdio_driver);
>> +#endif
>>         if (IS_ENABLED(CONFIG_SPI))
>>                 spi_unregister_driver(&wfx_spi_driver);
>>  }
> Hello zhong,
>
> Can you also check the case where CONFIG_SPI is not set?
I have tested the case and it works well when CONFIG_SPI is not set.

Thanks,
zhong jiang
> Thank you,
>



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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11 15:51       ` zhong jiang
  2019-10-11 15:55         ` Jerome Pouiller
@ 2019-10-11 16:16         ` Greg KH
  2019-10-11 16:24           ` zhong jiang
  1 sibling, 1 reply; 11+ messages in thread
From: Greg KH @ 2019-10-11 16:16 UTC (permalink / raw)
  To: zhong jiang; +Cc: Jerome Pouiller, linux-kernel

On Fri, Oct 11, 2019 at 11:51:16PM +0800, zhong jiang wrote:
> On 2019/10/11 17:02, Greg KH wrote:
> > On Fri, Oct 11, 2019 at 08:40:08AM +0000, Jerome Pouiller wrote:
> >> On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
> >>> CAUTION: This email originated from outside of the organization. Do not 
> >> click links or open attachments unless you recognize the sender and know the 
> >> content is safe.
> >>>
> >>> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
> >>>> I hit the following error when compile the kernel.
> >>>>
> >>>> drivers/staging/wfx/main.o: In function `wfx_core_init':
> >>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
> >> undefined reference to `sdio_register_driver'
> >>>> drivers/staging/wfx/main.o: In function `wfx_core_exit':
> >>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
> >> undefined reference to `sdio_unregister_driver'
> >>>> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
> >> `sdio_register_driver'
> >>>> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
> >> `sdio_unregister_driver'
> >>>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> >>>> ---
> >>>>  drivers/staging/wfx/Kconfig  | 3 ++-
> >>>>  drivers/staging/wfx/Makefile | 5 +++--
> >>>>  2 files changed, 5 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
> >>>> index 9b8a1c7..4d045513 100644
> >>>> --- a/drivers/staging/wfx/Kconfig
> >>>> +++ b/drivers/staging/wfx/Kconfig
> >>>> @@ -1,7 +1,8 @@
> >>>>  config WFX
> >>>>       tristate "Silicon Labs wireless chips WF200 and further"
> >>>>       depends on MAC80211
> >>>> -     depends on (SPI || MMC)
> >>>> +     depends on SPI
> >>>> +     select MMC
> >>> How about:
> >>>         depends on (SPI && MMC)
> >> I dislike to force user to enable both buses while only one of them is 
> >> sufficient. I would prefer to keep current dependencies and to add
> >> #ifdef around problematic functions.
> > Yes, that's the better thing to do here overall.
> >
> > zhong, can you work on that?
> How about the following patch ?
> 
> diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
> index 0d9c1ed..77d68b7 100644
> --- a/drivers/staging/wfx/Makefile
> +++ b/drivers/staging/wfx/Makefile
> @@ -19,6 +19,6 @@ wfx-y := \
>         sta.o \
>         debug.o
>  wfx-$(CONFIG_SPI) += bus_spi.o
> -wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
> +wfx-$(CONFIG_MMC) += bus_sdio.o
> 
>  obj-$(CONFIG_WFX) += wfx.o
> diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
> index d2508bc..26720a4 100644
> --- a/drivers/staging/wfx/main.c
> +++ b/drivers/staging/wfx/main.c
> @@ -484,16 +484,19 @@ static int __init wfx_core_init(void)
> 
>         if (IS_ENABLED(CONFIG_SPI))
>                 ret = spi_register_driver(&wfx_spi_driver);
> -       if (IS_ENABLED(CONFIG_MMC) && !ret)
> +#ifdef CONFIG_MMC
> +       if (!ret)
>                 ret = sdio_register_driver(&wfx_sdio_driver);

Put this in an inline function in the .h file so that you just call:
	wfx_register_sdio_driver()
and it does what is needed to be done depending on if CONFIG_MMC is
enabled or not (note, your check here isn't quite correct, I think you
need to do IS_ENABLED())

Same for spi.

We really do not like #ifdefs in .c files.

thanks,

greg k-h

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

* Re: [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m
  2019-10-11 16:16         ` Greg KH
@ 2019-10-11 16:24           ` zhong jiang
  0 siblings, 0 replies; 11+ messages in thread
From: zhong jiang @ 2019-10-11 16:24 UTC (permalink / raw)
  To: Greg KH; +Cc: Jerome Pouiller, linux-kernel

On 2019/10/12 0:16, Greg KH wrote:
> On Fri, Oct 11, 2019 at 11:51:16PM +0800, zhong jiang wrote:
>> On 2019/10/11 17:02, Greg KH wrote:
>>> On Fri, Oct 11, 2019 at 08:40:08AM +0000, Jerome Pouiller wrote:
>>>> On Friday 11 October 2019 06:26:16 CEST Greg KH wrote:
>>>>> CAUTION: This email originated from outside of the organization. Do not 
>>>> click links or open attachments unless you recognize the sender and know the 
>>>> content is safe.
>>>>> On Fri, Oct 11, 2019 at 11:02:19AM +0800, zhong jiang wrote:
>>>>>> I hit the following error when compile the kernel.
>>>>>>
>>>>>> drivers/staging/wfx/main.o: In function `wfx_core_init':
>>>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:488: 
>>>> undefined reference to `sdio_register_driver'
>>>>>> drivers/staging/wfx/main.o: In function `wfx_core_exit':
>>>>>> /home/z00352263/linux-next/linux-next/drivers/staging/wfx/main.c:496: 
>>>> undefined reference to `sdio_unregister_driver'
>>>>>> drivers/staging/wfx/main.o:(.debug_addr+0x1a8): undefined reference to 
>>>> `sdio_register_driver'
>>>>>> drivers/staging/wfx/main.o:(.debug_addr+0x6f0): undefined reference to 
>>>> `sdio_unregister_driver'
>>>>>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
>>>>>> ---
>>>>>>  drivers/staging/wfx/Kconfig  | 3 ++-
>>>>>>  drivers/staging/wfx/Makefile | 5 +++--
>>>>>>  2 files changed, 5 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/staging/wfx/Kconfig b/drivers/staging/wfx/Kconfig
>>>>>> index 9b8a1c7..4d045513 100644
>>>>>> --- a/drivers/staging/wfx/Kconfig
>>>>>> +++ b/drivers/staging/wfx/Kconfig
>>>>>> @@ -1,7 +1,8 @@
>>>>>>  config WFX
>>>>>>       tristate "Silicon Labs wireless chips WF200 and further"
>>>>>>       depends on MAC80211
>>>>>> -     depends on (SPI || MMC)
>>>>>> +     depends on SPI
>>>>>> +     select MMC
>>>>> How about:
>>>>>         depends on (SPI && MMC)
>>>> I dislike to force user to enable both buses while only one of them is 
>>>> sufficient. I would prefer to keep current dependencies and to add
>>>> #ifdef around problematic functions.
>>> Yes, that's the better thing to do here overall.
>>>
>>> zhong, can you work on that?
>> How about the following patch ?
>>
>> diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile
>> index 0d9c1ed..77d68b7 100644
>> --- a/drivers/staging/wfx/Makefile
>> +++ b/drivers/staging/wfx/Makefile
>> @@ -19,6 +19,6 @@ wfx-y := \
>>         sta.o \
>>         debug.o
>>  wfx-$(CONFIG_SPI) += bus_spi.o
>> -wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o
>> +wfx-$(CONFIG_MMC) += bus_sdio.o
>>
>>  obj-$(CONFIG_WFX) += wfx.o
>> diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
>> index d2508bc..26720a4 100644
>> --- a/drivers/staging/wfx/main.c
>> +++ b/drivers/staging/wfx/main.c
>> @@ -484,16 +484,19 @@ static int __init wfx_core_init(void)
>>
>>         if (IS_ENABLED(CONFIG_SPI))
>>                 ret = spi_register_driver(&wfx_spi_driver);
>> -       if (IS_ENABLED(CONFIG_MMC) && !ret)
>> +#ifdef CONFIG_MMC
>> +       if (!ret)
>>                 ret = sdio_register_driver(&wfx_sdio_driver);
> Put this in an inline function in the .h file so that you just call:
> 	wfx_register_sdio_driver()
> and it does what is needed to be done depending on if CONFIG_MMC is
> enabled or not (note, your check here isn't quite correct, I think you
> need to do IS_ENABLED())
>
> Same for spi.
>
> We really do not like #ifdefs in .c files.
You're right.  I should not use #ifdef here.

Thanks,
zhong jiang
> thanks,
>
> greg k-h
>
> .
>



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

end of thread, other threads:[~2019-10-11 16:25 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-11  3:02 [PATCH] staging: wfx: fix an undefined reference error when CONFIG_MMC=m zhong jiang
2019-10-11  4:26 ` Greg KH
2019-10-11  6:20   ` zhong jiang
2019-10-11  8:40   ` Jerome Pouiller
2019-10-11  9:02     ` Greg KH
2019-10-11 14:48       ` zhong jiang
2019-10-11 15:51       ` zhong jiang
2019-10-11 15:55         ` Jerome Pouiller
2019-10-11 16:13           ` zhong jiang
2019-10-11 16:16         ` Greg KH
2019-10-11 16:24           ` zhong jiang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.