Hi all,
After merging the net-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:
drivers/net/ethernet/marvell/prestera/prestera_main.c: In function 'prestera_port_dev_lower_find':
drivers/net/ethernet/marvell/prestera/prestera_main.c:504:33: error: passing argument 2 of 'netdev_walk_all_lower_dev' from incompatible pointer type [-Werror=incompatible-pointer-types]
504 | netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
| ^~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(struct net_device *, void *)
In file included from include/linux/etherdevice.h:21,
from drivers/net/ethernet/marvell/prestera/prestera_main.c:4:
include/linux/netdevice.h:4571:16: note: expected 'int (*)(struct net_device *, struct netdev_nested_priv *)' but argument is of type 'int (*)(struct net_device *, void *)'
4571 | int (*fn)(struct net_device *lower_dev,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4572 | struct netdev_nested_priv *priv),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/marvell/prestera/prestera_main.c:504:58: error: passing argument 3 of 'netdev_walk_all_lower_dev' from incompatible pointer type [-Werror=incompatible-pointer-types]
504 | netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
| ^~~~~
| |
| struct prestera_port **
In file included from include/linux/etherdevice.h:21,
from drivers/net/ethernet/marvell/prestera/prestera_main.c:4:
include/linux/netdevice.h:4573:37: note: expected 'struct netdev_nested_priv *' but argument is of type 'struct prestera_port **'
4573 | struct netdev_nested_priv *priv);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
cc1: some warnings being treated as errors
Caused by commit
eff7423365a6 ("net: core: introduce struct netdev_nested_priv for nested interface infrastructure")
interacting with commit
e1189d9a5fbe ("net: marvell: prestera: Add Switchdev driver implementation")
also in the net-next tree.
I applied the following fix patch.
From: Stephen Rothwell <[email protected]>
Date: Tue, 29 Sep 2020 12:57:59 +1000
Subject: [PATCH] fix up for "net: core: introduce struct netdev_nested_priv for nested interface infrastructure"
Signed-off-by: Stephen Rothwell <[email protected]>
---
drivers/net/ethernet/marvell/prestera/prestera_main.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c
index 9bd57b89d1d0..633d8770be35 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_main.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c
@@ -482,9 +482,10 @@ bool prestera_netdev_check(const struct net_device *dev)
return dev->netdev_ops == &prestera_netdev_ops;
}
-static int prestera_lower_dev_walk(struct net_device *dev, void *data)
+static int prestera_lower_dev_walk(struct net_device *dev,
+ struct netdev_nested_priv *priv)
{
- struct prestera_port **pport = data;
+ struct prestera_port **pport = (struct prestera_port **)priv->data;
if (prestera_netdev_check(dev)) {
*pport = netdev_priv(dev);
@@ -497,11 +498,13 @@ static int prestera_lower_dev_walk(struct net_device *dev, void *data)
struct prestera_port *prestera_port_dev_lower_find(struct net_device *dev)
{
struct prestera_port *port = NULL;
+ struct netdev_nested_priv priv;
if (prestera_netdev_check(dev))
return netdev_priv(dev);
- netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
+ priv.data = (void *)&port;
+ netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &priv);
return port;
}
--
2.28.0
--
Cheers,
Stephen Rothwell
Hi all,
On Tue, 29 Sep 2020 13:04:46 +1000 Stephen Rothwell <[email protected]> wrote:
>
> After merging the net-next tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/net/ethernet/marvell/prestera/prestera_main.c: In function 'prestera_port_dev_lower_find':
> drivers/net/ethernet/marvell/prestera/prestera_main.c:504:33: error: passing argument 2 of 'netdev_walk_all_lower_dev' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 504 | netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
> | ^~~~~~~~~~~~~~~~~~~~~~~
> | |
> | int (*)(struct net_device *, void *)
> In file included from include/linux/etherdevice.h:21,
> from drivers/net/ethernet/marvell/prestera/prestera_main.c:4:
> include/linux/netdevice.h:4571:16: note: expected 'int (*)(struct net_device *, struct netdev_nested_priv *)' but argument is of type 'int (*)(struct net_device *, void *)'
> 4571 | int (*fn)(struct net_device *lower_dev,
> | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 4572 | struct netdev_nested_priv *priv),
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/ethernet/marvell/prestera/prestera_main.c:504:58: error: passing argument 3 of 'netdev_walk_all_lower_dev' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 504 | netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
> | ^~~~~
> | |
> | struct prestera_port **
> In file included from include/linux/etherdevice.h:21,
> from drivers/net/ethernet/marvell/prestera/prestera_main.c:4:
> include/linux/netdevice.h:4573:37: note: expected 'struct netdev_nested_priv *' but argument is of type 'struct prestera_port **'
> 4573 | struct netdev_nested_priv *priv);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
> cc1: some warnings being treated as errors
>
> Caused by commit
>
> eff7423365a6 ("net: core: introduce struct netdev_nested_priv for nested interface infrastructure")
>
> interacting with commit
>
> e1189d9a5fbe ("net: marvell: prestera: Add Switchdev driver implementation")
>
> also in the net-next tree.
>
> I applied the following fix patch.
>
> From: Stephen Rothwell <[email protected]>
> Date: Tue, 29 Sep 2020 12:57:59 +1000
> Subject: [PATCH] fix up for "net: core: introduce struct netdev_nested_priv for nested interface infrastructure"
>
> Signed-off-by: Stephen Rothwell <[email protected]>
> ---
> drivers/net/ethernet/marvell/prestera/prestera_main.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c
> index 9bd57b89d1d0..633d8770be35 100644
> --- a/drivers/net/ethernet/marvell/prestera/prestera_main.c
> +++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c
> @@ -482,9 +482,10 @@ bool prestera_netdev_check(const struct net_device *dev)
> return dev->netdev_ops == &prestera_netdev_ops;
> }
>
> -static int prestera_lower_dev_walk(struct net_device *dev, void *data)
> +static int prestera_lower_dev_walk(struct net_device *dev,
> + struct netdev_nested_priv *priv)
> {
> - struct prestera_port **pport = data;
> + struct prestera_port **pport = (struct prestera_port **)priv->data;
>
> if (prestera_netdev_check(dev)) {
> *pport = netdev_priv(dev);
> @@ -497,11 +498,13 @@ static int prestera_lower_dev_walk(struct net_device *dev, void *data)
> struct prestera_port *prestera_port_dev_lower_find(struct net_device *dev)
> {
> struct prestera_port *port = NULL;
> + struct netdev_nested_priv priv;
>
> if (prestera_netdev_check(dev))
> return netdev_priv(dev);
>
> - netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &port);
> + priv.data = (void *)&port;
> + netdev_walk_all_lower_dev(dev, prestera_lower_dev_walk, &priv);
>
> return port;
> }
I am still getting this build failure ...
--
Cheers,
Stephen Rothwell
Hi Stephen,
On Thu, Oct 01, 2020 at 08:09:16AM +1000, Stephen Rothwell wrote:
> Hi all,
>
[CUT]
>
> I am still getting this build failure ...
>
> --
I just 've checked linux-next/master and it builds fine at least with my custom
config, do/how I need to handle this case ?
I see the changes you applied already in linux-next/master.
> Cheers,
> Stephen Rothwell
Hi Vadym,
On Thu, 1 Oct 2020 02:06:05 +0300 Vadym Kochan <[email protected]> wrote:
>
> On Thu, Oct 01, 2020 at 08:09:16AM +1000, Stephen Rothwell wrote:
> > Hi all,
> >
> [CUT]
> >
> > I am still getting this build failure ...
> >
> > --
>
> I just 've checked linux-next/master and it builds fine at least with my custom
> config, do/how I need to handle this case ?
If you take the net-next tree alone and do an x86_64 allmodconfig
build, it currently fails, right?
> I see the changes you applied already in linux-next/master.
Linux-next builds fine because it contains the fix patch I posted (I
added it to the net-next merge). It needs to be explicitly fixed in the
net-next tree either using my patch or something more correct (if
necessary).
--
Cheers,
Stephen Rothwell
From: Stephen Rothwell <[email protected]>
Date: Tue, 29 Sep 2020 13:04:46 +1000
> Caused by commit
>
> eff7423365a6 ("net: core: introduce struct netdev_nested_priv for nested interface infrastructure")
>
> interacting with commit
>
> e1189d9a5fbe ("net: marvell: prestera: Add Switchdev driver implementation")
>
> also in the net-next tree.
I would argue against that "also" as the first commit is only in the
'net' tree right now. :-)
This is simply something I'll have to resolve the next time net is merged
into net-next.
Thanks.
Hi Dave,
On Thu, 01 Oct 2020 18:40:13 -0700 (PDT) David Miller <[email protected]> wrote:
>
> From: Stephen Rothwell <[email protected]>
> Date: Tue, 29 Sep 2020 13:04:46 +1000
>
> > Caused by commit
> >
> > eff7423365a6 ("net: core: introduce struct netdev_nested_priv for nested interface infrastructure")
> >
> > interacting with commit
> >
> > e1189d9a5fbe ("net: marvell: prestera: Add Switchdev driver implementation")
> >
> > also in the net-next tree.
>
> I would argue against that "also" as the first commit is only in the
> 'net' tree right now. :-)
Sorry, my mistake. I was wondering why your testing did not seem to be
affected.
> This is simply something I'll have to resolve the next time net is merged
> into net-next.
Absolutely, no problem.
--
Cheers,
Stephen Rothwell