diff mbox series

[net-next] net: dsa: hellcreek: Add missing TAPRIO dependency

Message ID 20210128163338.22665-1-kurt@linutronix.de (mailing list archive)
State Accepted
Commit 6c13d75beee5313a38adab7e14365724e301886f
Delegated to: Netdev Maintainers
Headers show
Series [net-next] net: dsa: hellcreek: Add missing TAPRIO dependency | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 7 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link
netdev/stable success Stable not CCed

Commit Message

Kurt Kanzenbach Jan. 28, 2021, 4:33 p.m. UTC
Add missing dependency to TAPRIO to avoid build failures such as:

|ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
|ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!

Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
---
 drivers/net/dsa/hirschmann/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Note: It's not against net, because the fixed commit is not in net tree, yet.

Comments

Vladimir Oltean Jan. 28, 2021, 4:37 p.m. UTC | #1
On Thu, Jan 28, 2021 at 05:33:38PM +0100, Kurt Kanzenbach wrote:
> Add missing dependency to TAPRIO to avoid build failures such as:
>
> |ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> |ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
>
> Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
> ---
>  drivers/net/dsa/hirschmann/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> Note: It's not against net, because the fixed commit is not in net tree, yet.
>
> diff --git a/drivers/net/dsa/hirschmann/Kconfig b/drivers/net/dsa/hirschmann/Kconfig
> index e01191107a4b..9ea2c643f8f8 100644
> --- a/drivers/net/dsa/hirschmann/Kconfig
> +++ b/drivers/net/dsa/hirschmann/Kconfig
> @@ -5,6 +5,7 @@ config NET_DSA_HIRSCHMANN_HELLCREEK
>  	depends on NET_DSA
>  	depends on PTP_1588_CLOCK
>  	depends on LEDS_CLASS
> +	depends on NET_SCH_TAPRIO
>  	select NET_DSA_TAG_HELLCREEK
>  	help
>  	  This driver adds support for Hirschmann Hellcreek TSN switches.
> --
> 2.20.1
>

Note that for sja1105, Arnd solved it this way. I am still not sure why.

commit 5d294fc483405de9c0913ab744a31e6fa7cb0f40
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Oct 25 09:26:35 2019 +0200

    net: dsa: sja1105: improve NET_DSA_SJA1105_TAS dependency

    An earlier bugfix introduced a dependency on CONFIG_NET_SCH_TAPRIO,
    but this missed the case of NET_SCH_TAPRIO=m and NET_DSA_SJA1105=y,
    which still causes a link error:

    drivers/net/dsa/sja1105/sja1105_tas.o: In function `sja1105_setup_tc_taprio':
    sja1105_tas.c:(.text+0x5c): undefined reference to `taprio_offload_free'
    sja1105_tas.c:(.text+0x3b4): undefined reference to `taprio_offload_get'
    drivers/net/dsa/sja1105/sja1105_tas.o: In function `sja1105_tas_teardown':
    sja1105_tas.c:(.text+0x6ec): undefined reference to `taprio_offload_free'

    Change the dependency to only allow selecting the TAS code when it
    can link against the taprio code.

    Fixes: a8d570de0cc6 ("net: dsa: sja1105: Add dependency for NET_DSA_SJA1105_TAS")
    Fixes: 317ab5b86c8e ("net: dsa: sja1105: Configure the Time-Aware Scheduler via tc-taprio offload")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/drivers/net/dsa/sja1105/Kconfig b/drivers/net/dsa/sja1105/Kconfig
index f40b248f0b23..ffac0ea4e8d5 100644
--- a/drivers/net/dsa/sja1105/Kconfig
+++ b/drivers/net/dsa/sja1105/Kconfig
@@ -26,8 +26,8 @@ config NET_DSA_SJA1105_PTP

 config NET_DSA_SJA1105_TAS
        bool "Support for the Time-Aware Scheduler on NXP SJA1105"
-       depends on NET_DSA_SJA1105
-       depends on NET_SCH_TAPRIO
+       depends on NET_DSA_SJA1105 && NET_SCH_TAPRIO
+       depends on NET_SCH_TAPRIO=y || NET_DSA_SJA1105=m
        help
          This enables support for the TTEthernet-based egress scheduling
          engine in the SJA1105 DSA driver, which is controlled using a
Arnd Bergmann Jan. 28, 2021, 5:02 p.m. UTC | #2
On Thu, Jan 28, 2021 at 5:37 PM Vladimir Oltean <olteanv@gmail.com> wrote:
>
> On Thu, Jan 28, 2021 at 05:33:38PM +0100, Kurt Kanzenbach wrote:
> > Add missing dependency to TAPRIO to avoid build failures such as:
> >
> > |ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> > |ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> >
> > Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
> > Reported-by: Randy Dunlap <rdunlap@infradead.org>
> > Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>

Acked-by: Arnd Bergmann <arnd@arndb.de>

> Note that for sja1105, Arnd solved it this way. I am still not sure why.
>
> commit 5d294fc483405de9c0913ab744a31e6fa7cb0f40
> Author: Arnd Bergmann <arnd@arndb.de>
> Date:   Fri Oct 25 09:26:35 2019 +0200
>
>     net: dsa: sja1105: improve NET_DSA_SJA1105_TAS dependency
>
>     An earlier bugfix introduced a dependency on CONFIG_NET_SCH_TAPRIO,
>     but this missed the case of NET_SCH_TAPRIO=m and NET_DSA_SJA1105=y,
>     which still causes a link error:
>

As I described in this commit, the problem here was that NET_DSA_SJA1105_TAS
is a 'bool' symbol with a dependency on a 'tristate', so you have to prevent
the option from getting enabled when it's part of a driver that gets built into
the kernel but the dependnecy is in a loadable module.

NET_DSA_HIRSCHMANN_HELLCREEK on the other hand is a 'tristate'
symbol itself, so the dependency takes care of it: you cannot set it to =y
when its dependency is =m.

         Arnd
Randy Dunlap Jan. 28, 2021, 8 p.m. UTC | #3
On 1/28/21 8:33 AM, Kurt Kanzenbach wrote:
> Add missing dependency to TAPRIO to avoid build failures such as:
> 
> |ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> |ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> 
> Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
> ---
>  drivers/net/dsa/hirschmann/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> Note: It's not against net, because the fixed commit is not in net tree, yet.
> 
> diff --git a/drivers/net/dsa/hirschmann/Kconfig b/drivers/net/dsa/hirschmann/Kconfig
> index e01191107a4b..9ea2c643f8f8 100644
> --- a/drivers/net/dsa/hirschmann/Kconfig
> +++ b/drivers/net/dsa/hirschmann/Kconfig
> @@ -5,6 +5,7 @@ config NET_DSA_HIRSCHMANN_HELLCREEK
>  	depends on NET_DSA
>  	depends on PTP_1588_CLOCK
>  	depends on LEDS_CLASS
> +	depends on NET_SCH_TAPRIO
>  	select NET_DSA_TAG_HELLCREEK
>  	help
>  	  This driver adds support for Hirschmann Hellcreek TSN switches.
> 

Thanks. This fixes the build errors.
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
 

However, I do see this in the build output when
NET_DSA_HIRSCHMANN_HELLCREEK is disabled:

  AR      drivers/net/dsa/hirschmann/built-in.a

That is an empty archive file (8 bytes), which is caused by
drivers/net/dsa/Makefile:

obj-y				+= hirschmann/


Is there some reason that it's not done like this?
This passes my y/m/n testing.

---
From: Randy Dunlap <rdunlap@infradead.org>

This prevents descending into the net/dsa/hirschmann/ subdirectory
and building an empty archive file:

  AR      drivers/net/dsa/hirschmann/built-in.a

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
 drivers/net/dsa/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20210128.orig/drivers/net/dsa/Makefile
+++ linux-next-20210128/drivers/net/dsa/Makefile
@@ -18,7 +18,7 @@ obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX) +=
 obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM) += vitesse-vsc73xx-platform.o
 obj-$(CONFIG_NET_DSA_VITESSE_VSC73XX_SPI) += vitesse-vsc73xx-spi.o
 obj-y				+= b53/
-obj-y				+= hirschmann/
+obj-$(CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK) += hirschmann/
 obj-y				+= microchip/
 obj-y				+= mv88e6xxx/
 obj-y				+= ocelot/
Randy Dunlap Jan. 29, 2021, 4:41 p.m. UTC | #4
On 1/29/21 6:26 AM, Kurt Kanzenbach wrote:
> On Thu Jan 28 2021, Randy Dunlap wrote:
>> On 1/28/21 8:33 AM, Kurt Kanzenbach wrote:
>>> Add missing dependency to TAPRIO to avoid build failures such as:
>>>
>>> |ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
>>> |ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
>>>
>>> Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
>>> Reported-by: Randy Dunlap <rdunlap@infradead.org>
>>> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
>>> ---
>>>  drivers/net/dsa/hirschmann/Kconfig | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> Note: It's not against net, because the fixed commit is not in net tree, yet.
>>>
>>> diff --git a/drivers/net/dsa/hirschmann/Kconfig b/drivers/net/dsa/hirschmann/Kconfig
>>> index e01191107a4b..9ea2c643f8f8 100644
>>> --- a/drivers/net/dsa/hirschmann/Kconfig
>>> +++ b/drivers/net/dsa/hirschmann/Kconfig
>>> @@ -5,6 +5,7 @@ config NET_DSA_HIRSCHMANN_HELLCREEK
>>>  	depends on NET_DSA
>>>  	depends on PTP_1588_CLOCK
>>>  	depends on LEDS_CLASS
>>> +	depends on NET_SCH_TAPRIO
>>>  	select NET_DSA_TAG_HELLCREEK
>>>  	help
>>>  	  This driver adds support for Hirschmann Hellcreek TSN switches.
>>>
>>
>> Thanks. This fixes the build errors.
>> Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
>>  
>>
>> However, I do see this in the build output when
>> NET_DSA_HIRSCHMANN_HELLCREEK is disabled:
>>
>>   AR      drivers/net/dsa/hirschmann/built-in.a
>>
>> That is an empty archive file (8 bytes), which is caused by
>> drivers/net/dsa/Makefile:
>>
>> obj-y				+= hirschmann/
>>
>>
>> Is there some reason that it's not done like this?
>> This passes my y/m/n testing.
> 
> Actually I cannot reproduce this. I've disabled
> NET_DSA_HIRSCHMANN_HELLCREEK and nothing shows up in the build log.

Hmph, I don't see it on a clean build either.
Sorry for the noise.
Jakub Kicinski Jan. 30, 2021, 5:04 a.m. UTC | #5
On Thu, 28 Jan 2021 12:00:38 -0800 Randy Dunlap wrote:
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>

nit: careful with the tags in replies to patches, patchwork will add
     them onto the patch you're replying to
patchwork-bot+netdevbpf@kernel.org Jan. 30, 2021, 5:10 a.m. UTC | #6
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Thu, 28 Jan 2021 17:33:38 +0100 you wrote:
> Add missing dependency to TAPRIO to avoid build failures such as:
> 
> |ERROR: modpost: "taprio_offload_get" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> |ERROR: modpost: "taprio_offload_free" [drivers/net/dsa/hirschmann/hellcreek_sw.ko] undefined!
> 
> Fixes: 24dfc6eb39b2 ("net: dsa: hellcreek: Add TAPRIO offloading support")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
> 
> [...]

Here is the summary with links:
  - [net-next] net: dsa: hellcreek: Add missing TAPRIO dependency
    https://git.kernel.org/netdev/net-next/c/6c13d75beee5

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/drivers/net/dsa/hirschmann/Kconfig b/drivers/net/dsa/hirschmann/Kconfig
index e01191107a4b..9ea2c643f8f8 100644
--- a/drivers/net/dsa/hirschmann/Kconfig
+++ b/drivers/net/dsa/hirschmann/Kconfig
@@ -5,6 +5,7 @@  config NET_DSA_HIRSCHMANN_HELLCREEK
 	depends on NET_DSA
 	depends on PTP_1588_CLOCK
 	depends on LEDS_CLASS
+	depends on NET_SCH_TAPRIO
 	select NET_DSA_TAG_HELLCREEK
 	help
 	  This driver adds support for Hirschmann Hellcreek TSN switches.