2021-05-19 18:25:46

by Vladimir Oltean

[permalink] [raw]
Subject: Re: linux-next: Tree for May 18 (drivers/net/dsa/qca8k.c)

Hi Randy,

On Tue, May 18, 2021 at 09:32:49AM -0700, Randy Dunlap wrote:
> On 5/18/21 2:27 AM, Stephen Rothwell wrote:
> > Hi all,
> >
> > Changes since 20210514:
> >
>
> on x86_64:
> # CONFIG_OF is not set
>
> ../drivers/net/dsa/qca8k.c: In function ‘qca8k_mdio_register’:
> ../drivers/net/dsa/qca8k.c:797:9: error: implicit declaration of function ‘devm_of_mdiobus_register’; did you mean ‘devm_mdiobus_register’? [-Werror=implicit-function-declaration]
> return devm_of_mdiobus_register(priv->dev, bus, mdio);
>
>
> Should there be a stub for this function in <linux/of_mdio.h>?
> or the driver could add a dependency on OF_MDIO.
>
> Full randconfig file is attached.
>
> --
> ~Randy
> Reported-by: Randy Dunlap <[email protected]>
>

Would something like this work?

-----------------------------[ cut here ]-----------------------------
From 36c0b3f04ebfa51e52bd1bc2dc447d12d1c6e119 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <[email protected]>
Date: Tue, 18 May 2021 19:39:18 +0300
Subject: [PATCH] net: mdio: provide shim implementation of
devm_of_mdiobus_register

Similar to the way in which of_mdiobus_register() has a fallback to the
non-DT based mdiobus_register() when CONFIG_OF is not set, we can create
a shim for the device-managed devm_of_mdiobus_register() which calls
devm_mdiobus_register() and discards the struct device_node *.

In particular, this solves a build issue with the qca8k DSA driver which
uses devm_of_mdiobus_register and can be compiled without CONFIG_OF.

Reported-by: Randy Dunlap <[email protected]>
Signed-off-by: Vladimir Oltean <[email protected]>
---
include/linux/of_mdio.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h
index 2b05e7f7c238..da633d34ab86 100644
--- a/include/linux/of_mdio.h
+++ b/include/linux/of_mdio.h
@@ -72,6 +72,13 @@ static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *
return mdiobus_register(mdio);
}

+static inline int devm_of_mdiobus_register(struct device *dev,
+ struct mii_bus *mdio,
+ struct device_node *np)
+{
+ return devm_mdiobus_register(dev, mdio);
+}
+
static inline struct mdio_device *of_mdio_find_device(struct device_node *np)
{
return NULL;
-----------------------------[ cut here ]-----------------------------


2021-05-19 18:27:56

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-next: Tree for May 18 (drivers/net/dsa/qca8k.c)

On 5/18/21 9:43 AM, Vladimir Oltean wrote:
> Hi Randy,
>
> Would something like this work?
>
> -----------------------------[ cut here ]-----------------------------
> From 36c0b3f04ebfa51e52bd1bc2dc447d12d1c6e119 Mon Sep 17 00:00:00 2001
> From: Vladimir Oltean <[email protected]>
> Date: Tue, 18 May 2021 19:39:18 +0300
> Subject: [PATCH] net: mdio: provide shim implementation of
> devm_of_mdiobus_register
>
> Similar to the way in which of_mdiobus_register() has a fallback to the
> non-DT based mdiobus_register() when CONFIG_OF is not set, we can create
> a shim for the device-managed devm_of_mdiobus_register() which calls
> devm_mdiobus_register() and discards the struct device_node *.
>
> In particular, this solves a build issue with the qca8k DSA driver which
> uses devm_of_mdiobus_register and can be compiled without CONFIG_OF.
>
> Reported-by: Randy Dunlap <[email protected]>
> Signed-off-by: Vladimir Oltean <[email protected]>
> ---
> include/linux/of_mdio.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h
> index 2b05e7f7c238..da633d34ab86 100644
> --- a/include/linux/of_mdio.h
> +++ b/include/linux/of_mdio.h
> @@ -72,6 +72,13 @@ static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *
> return mdiobus_register(mdio);
> }
>
> +static inline int devm_of_mdiobus_register(struct device *dev,
> + struct mii_bus *mdio,
> + struct device_node *np)
> +{
> + return devm_mdiobus_register(dev, mdio);
> +}
> +
> static inline struct mdio_device *of_mdio_find_device(struct device_node *np)
> {
> return NULL;
> -----------------------------[ cut here ]-----------------------------
>

Yes, that's all good. Thanks.

Acked-by: Randy Dunlap <[email protected]> # build-tested

--
~Randy


2021-05-19 18:28:40

by Andrew Lunn

[permalink] [raw]
Subject: Re: linux-next: Tree for May 18 (drivers/net/dsa/qca8k.c)

> Would something like this work?
>
> -----------------------------[ cut here ]-----------------------------
> >From 36c0b3f04ebfa51e52bd1bc2dc447d12d1c6e119 Mon Sep 17 00:00:00 2001
> From: Vladimir Oltean <[email protected]>
> Date: Tue, 18 May 2021 19:39:18 +0300
> Subject: [PATCH] net: mdio: provide shim implementation of
> devm_of_mdiobus_register
>
> Similar to the way in which of_mdiobus_register() has a fallback to the
> non-DT based mdiobus_register() when CONFIG_OF is not set, we can create
> a shim for the device-managed devm_of_mdiobus_register() which calls
> devm_mdiobus_register() and discards the struct device_node *.
>
> In particular, this solves a build issue with the qca8k DSA driver which
> uses devm_of_mdiobus_register and can be compiled without CONFIG_OF.
>
> Reported-by: Randy Dunlap <[email protected]>
> Signed-off-by: Vladimir Oltean <[email protected]>

This should be O.K.

Reviewed-by: Andrew Lunn <[email protected]>

Thanks
Andrew

2021-05-19 18:29:56

by John Crispin

[permalink] [raw]
Subject: Re: linux-next: Tree for May 18 (drivers/net/dsa/qca8k.c)


On 18.05.21 19:33, Andrew Lunn wrote:
>> Would something like this work?
>>
>> -----------------------------[ cut here ]-----------------------------
>> >From 36c0b3f04ebfa51e52bd1bc2dc447d12d1c6e119 Mon Sep 17 00:00:00 2001
>> From: Vladimir Oltean <[email protected]>
>> Date: Tue, 18 May 2021 19:39:18 +0300
>> Subject: [PATCH] net: mdio: provide shim implementation of
>> devm_of_mdiobus_register
>>
>> Similar to the way in which of_mdiobus_register() has a fallback to the
>> non-DT based mdiobus_register() when CONFIG_OF is not set, we can create
>> a shim for the device-managed devm_of_mdiobus_register() which calls
>> devm_mdiobus_register() and discards the struct device_node *.
>>
>> In particular, this solves a build issue with the qca8k DSA driver which
>> uses devm_of_mdiobus_register and can be compiled without CONFIG_OF.
>>
>> Reported-by: Randy Dunlap <[email protected]>
>> Signed-off-by: Vladimir Oltean <[email protected]>
> This should be O.K.
>
> Reviewed-by: Andrew Lunn <[email protected]>
>
> Thanks
> Andrew

Just did a x86 build with the patch applied and it completed ...

Acked-by: John Crispin <[email protected]>