Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1241867 > unrolled thread

[PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

Started byVivien Didelot <vivien.didelot@savoirfairelinux.com>
First post2015-10-08 02:00 +0200
Last post2015-10-08 16:20 +0200
Articles 15 — 7 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 02:00 +0200
    [PATCH net-next 4/6] net: dsa: add port_fdb_prepare Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 02:00 +0200
      Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare Andrew Lunn <andrew@lunn.ch> - 2015-10-08 02:30 +0200
        Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 15:10 +0200
          Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare Andrew Lunn <andrew@lunn.ch> - 2015-10-08 17:10 +0200
      Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare Scott Feldman <sfeldma@gmail.com> - 2015-10-08 08:20 +0200
    [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 02:00 +0200
      Re: [PATCH net-next 3/6] net: remove dsa.h include from  linux/netdevice.h Jiri Pirko <jiri@resnulli.us> - 2015-10-08 11:20 +0200
        Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h Wei Xu <xuwei5@hisilicon.com> - 2015-10-08 12:40 +0200
        Re: [PATCH net-next 3/6] net: remove dsa.h include from  linux/netdevice.h Jiri Pirko <jiri@resnulli.us> - 2015-10-08 14:20 +0200
          Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h huangdaode <huangdaode@hisilicon.com> - 2015-10-08 14:50 +0200
    Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in  FDB ops David Miller <davem@davemloft.net> - 2015-10-08 14:20 +0200
      Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in  FDB ops Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 15:40 +0200
        Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in  FDB ops Jiri Pirko <jiri@resnulli.us> - 2015-10-08 15:50 +0200
          Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in  FDB ops Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-10-08 16:20 +0200

#1241867 — [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 02:00 +0200
Subject[PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops
Message-ID<qh6D8-35B-7@gated-at.bofh.it>
This patchset pushes the switchdev prepare phase for the FDB add and del
operations down to the DSA drivers. Currently only mv88e6xxx is affected.

Since the dump requires a bit of refactoring in the driver, it'll come in a
future patchset.

The first 3 patches removes the dsa.h include from linux/netdevice.h, which
broke the inclusion of switchdev.h in dsa.h.

The last 3 patches add port_fdb_prepare and change port_fdb_add and
port_fdb_del to use the switchdev FDB object structure.

To be more specific about the include dependency issue, here's a snippet of
what happens currently if you include switchdev.h in dsa.h:

[...]
    include/net/switchdev.h:52:30: error: field ‘ppid’ has incomplete type
       struct netdev_phys_item_id ppid; /* PORT_PARENT_ID */
                                  ^
    include/net/switchdev.h:185:14: warning: ‘struct nlmsghdr’ declared inside parameter list [enabled by default]
           struct nlmsghdr *nlh, u16 flags);
                  ^
    include/net/switchdev.h:195:7: warning: ‘struct ndmsg’ declared inside parameter list [enabled by default]
    include/net/switchdev.h:198:7: warning: ‘struct nlattr’ declared inside parameter list [enabled by default]
           u16 vid);
           ^
    include/net/switchdev.h:201:15: warning: ‘struct netlink_callback’ declared inside parameter list [enabled by default]
            struct net_device *filter_dev, int idx);
                   ^
[...]

Removing the dsa.h include from linux/netdevice.h gets rid of these errors but
then the DSA code complains if you don't include it in dsa_priv.h:

[...]
net/dsa/slave.c: In function ‘dsa_slave_set_mac_address’:
net/dsa/slave.c:178:39: error: dereferencing pointer to incomplete type
  struct net_device *master = p->parent->dst->master_netdev;
                                       ^
In file included from include/linux/list.h:8:0,
                 from net/dsa/slave.c:11:
net/dsa/slave.c: In function ‘dsa_bridge_check_vlan_range’:
net/dsa/slave.c:209:26: error: ‘DSA_MAX_PORTS’ undeclared (first use in this function)
  DECLARE_BITMAP(members, DSA_MAX_PORTS);
                          ^
net/dsa/slave.c:209:26: note: each undeclared identifier is reported only once for each function it appears in
  DECLARE_BITMAP(members, DSA_MAX_PORTS);
                          ^
include/linux/kernel.h:67:30: note: in definition of macro ‘DIV_ROUND_UP’
 #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
                              ^
include/linux/types.h:10:21: note: in expansion of macro ‘BITS_TO_LONGS’
  unsigned long name[BITS_TO_LONGS(bits)]
                     ^
net/dsa/slave.c:209:2: note: in expansion of macro ‘DECLARE_BITMAP’
  DECLARE_BITMAP(members, DSA_MAX_PORTS);
  ^
net/dsa/slave.c:1190:7: error: ‘DSA_TAG_PROTO_EDSA’ undeclared (first use in this function)
  case DSA_TAG_PROTO_EDSA:
       ^
net/dsa/slave.c: In function ‘dsa_slave_get_iflink’:
net/dsa/slave.c:64:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
[...]


Thanks,
-v

Vivien Didelot (6):
  net: dsa: add uses_hw_tag
  net: dsa: include dsa.h in dsa_priv.h
  net: remove dsa.h include from linux/netdevice.h
  net: dsa: add port_fdb_prepare
  net: dsa: push prepare phase in port_fdb_add
  net: dsa: use switchdev obj in port_fdb_del

 drivers/net/dsa/mv88e6171.c |  1 +
 drivers/net/dsa/mv88e6352.c |  1 +
 drivers/net/dsa/mv88e6xxx.c | 23 +++++++++++++++++------
 drivers/net/dsa/mv88e6xxx.h |  8 ++++++--
 include/linux/netdevice.h   |  9 ++++++---
 include/net/dsa.h           | 14 +++++++-------
 net/dsa/dsa.c               |  1 +
 net/dsa/dsa_priv.h          |  1 +
 net/dsa/slave.c             | 11 +++++++----
 9 files changed, 47 insertions(+), 22 deletions(-)

-- 
2.6.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1241868 — [PATCH net-next 4/6] net: dsa: add port_fdb_prepare

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 02:00 +0200
Subject[PATCH net-next 4/6] net: dsa: add port_fdb_prepare
Message-ID<qh6MO-3hq-11@gated-at.bofh.it>
In reply to#1241867
Push the prepare phase for FDB operations down to the DSA drivers, with
a new port_fdb_prepare function. Currently only mv88e6xxx is affected.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
 drivers/net/dsa/mv88e6171.c |  1 +
 drivers/net/dsa/mv88e6352.c |  1 +
 drivers/net/dsa/mv88e6xxx.c | 10 ++++++++++
 drivers/net/dsa/mv88e6xxx.h |  3 +++
 include/net/dsa.h           |  4 ++++
 net/dsa/slave.c             |  7 +++++--
 6 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/mv88e6171.c b/drivers/net/dsa/mv88e6171.c
index c95cfab..ca3330a 100644
--- a/drivers/net/dsa/mv88e6171.c
+++ b/drivers/net/dsa/mv88e6171.c
@@ -121,6 +121,7 @@ struct dsa_switch_driver mv88e6171_switch_driver = {
 	.port_vlan_add		= mv88e6xxx_port_vlan_add,
 	.port_vlan_del		= mv88e6xxx_port_vlan_del,
 	.vlan_getnext		= mv88e6xxx_vlan_getnext,
+	.port_fdb_prepare	= mv88e6xxx_port_fdb_prepare,
 	.port_fdb_add		= mv88e6xxx_port_fdb_add,
 	.port_fdb_del		= mv88e6xxx_port_fdb_del,
 	.port_fdb_getnext	= mv88e6xxx_port_fdb_getnext,
diff --git a/drivers/net/dsa/mv88e6352.c b/drivers/net/dsa/mv88e6352.c
index 3736706..078a358 100644
--- a/drivers/net/dsa/mv88e6352.c
+++ b/drivers/net/dsa/mv88e6352.c
@@ -348,6 +348,7 @@ struct dsa_switch_driver mv88e6352_switch_driver = {
 	.port_vlan_add		= mv88e6xxx_port_vlan_add,
 	.port_vlan_del		= mv88e6xxx_port_vlan_del,
 	.vlan_getnext		= mv88e6xxx_vlan_getnext,
+	.port_fdb_prepare	= mv88e6xxx_port_fdb_prepare,
 	.port_fdb_add		= mv88e6xxx_port_fdb_add,
 	.port_fdb_del		= mv88e6xxx_port_fdb_del,
 	.port_fdb_getnext	= mv88e6xxx_port_fdb_getnext,
diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
index 6053d11..9fbb727 100644
--- a/drivers/net/dsa/mv88e6xxx.c
+++ b/drivers/net/dsa/mv88e6xxx.c
@@ -1841,6 +1841,16 @@ static int _mv88e6xxx_port_fdb_load(struct dsa_switch *ds, int port,
 	return _mv88e6xxx_atu_load(ds, &entry);
 }
 
+int mv88e6xxx_port_fdb_prepare(struct dsa_switch *ds, int port,
+			       const struct switchdev_obj_port_fdb *fdb,
+			       struct switchdev_trans *trans)
+{
+	/* We don't need any dynamic resource from the kernel (yet),
+	 * so skip the prepare phase.
+	 */
+	return 0;
+}
+
 int mv88e6xxx_port_fdb_add(struct dsa_switch *ds, int port,
 			   const unsigned char *addr, u16 vid)
 {
diff --git a/drivers/net/dsa/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx.h
index 39b261f..4475640 100644
--- a/drivers/net/dsa/mv88e6xxx.h
+++ b/drivers/net/dsa/mv88e6xxx.h
@@ -479,6 +479,9 @@ int mv88e6xxx_port_vlan_add(struct dsa_switch *ds, int port, u16 vid,
 int mv88e6xxx_port_vlan_del(struct dsa_switch *ds, int port, u16 vid);
 int mv88e6xxx_vlan_getnext(struct dsa_switch *ds, u16 *vid,
 			   unsigned long *ports, unsigned long *untagged);
+int mv88e6xxx_port_fdb_prepare(struct dsa_switch *ds, int port,
+			       const struct switchdev_obj_port_fdb *fdb,
+			       struct switchdev_trans *trans);
 int mv88e6xxx_port_fdb_add(struct dsa_switch *ds, int port,
 			   const unsigned char *addr, u16 vid);
 int mv88e6xxx_port_fdb_del(struct dsa_switch *ds, int port,
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 3e9eb6c..3aee8a5 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -19,6 +19,7 @@
 #include <linux/phy.h>
 #include <linux/phy_fixed.h>
 #include <linux/ethtool.h>
+#include <net/switchdev.h>
 
 enum dsa_tag_protocol {
 	DSA_TAG_PROTO_NONE = 0,
@@ -316,6 +317,9 @@ struct dsa_switch_driver {
 	/*
 	 * Forwarding database
 	 */
+	int	(*port_fdb_prepare)(struct dsa_switch *ds, int port,
+				    const struct switchdev_obj_port_fdb *fdb,
+				    struct switchdev_trans *trans);
 	int	(*port_fdb_add)(struct dsa_switch *ds, int port,
 				const unsigned char *addr, u16 vid);
 	int	(*port_fdb_del)(struct dsa_switch *ds, int port,
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 4f607bc..48e8c15 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -346,10 +346,13 @@ static int dsa_slave_port_fdb_add(struct net_device *dev,
 {
 	struct dsa_slave_priv *p = netdev_priv(dev);
 	struct dsa_switch *ds = p->parent;
-	int ret = -EOPNOTSUPP;
+	int ret;
+
+	if (!ds->drv->port_fdb_prepare || !ds->drv->port_fdb_add)
+		return -EOPNOTSUPP;
 
 	if (switchdev_trans_ph_prepare(trans))
-		ret = ds->drv->port_fdb_add ? 0 : -EOPNOTSUPP;
+		ret = ds->drv->port_fdb_prepare(ds, p->port, fdb, trans);
 	else
 		ret = ds->drv->port_fdb_add(ds, p->port, fdb->addr, fdb->vid);
 
-- 
2.6.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1241888 — Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare

FromAndrew Lunn <andrew@lunn.ch>
Date2015-10-08 02:30 +0200
SubjectRe: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare
Message-ID<qh7fP-43J-3@gated-at.bofh.it>
In reply to#1241868
On Wed, Oct 07, 2015 at 07:48:29PM -0400, Vivien Didelot wrote:
> Push the prepare phase for FDB operations down to the DSA drivers, with
> a new port_fdb_prepare function. Currently only mv88e6xxx is affected.
> 
> Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> ---
>  drivers/net/dsa/mv88e6171.c |  1 +
>  drivers/net/dsa/mv88e6352.c |  1 +
>  drivers/net/dsa/mv88e6xxx.c | 10 ++++++++++
>  drivers/net/dsa/mv88e6xxx.h |  3 +++
>  include/net/dsa.h           |  4 ++++
>  net/dsa/slave.c             |  7 +++++--
>  6 files changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/dsa/mv88e6171.c b/drivers/net/dsa/mv88e6171.c
> index c95cfab..ca3330a 100644
> --- a/drivers/net/dsa/mv88e6171.c
> +++ b/drivers/net/dsa/mv88e6171.c
> @@ -121,6 +121,7 @@ struct dsa_switch_driver mv88e6171_switch_driver = {
>  	.port_vlan_add		= mv88e6xxx_port_vlan_add,
>  	.port_vlan_del		= mv88e6xxx_port_vlan_del,
>  	.vlan_getnext		= mv88e6xxx_vlan_getnext,
> +	.port_fdb_prepare	= mv88e6xxx_port_fdb_prepare,

Hi Vivien

Bike shedding a bit, but i would call this
mv88e6xxx_port_fdb_prepare_add.

>  	.port_fdb_add		= mv88e6xxx_port_fdb_add,
>  	.port_fdb_del		= mv88e6xxx_port_fdb_del,
>  	.port_fdb_getnext	= mv88e6xxx_port_fdb_getnext,

Taking a theoretical example, say mv88e6xxx_port_fdb_getnext needed a
prepare call to allocate memory to put the returned ATU into. What
would you call that?

mv88e6xxx_port_fdb_prepare_add and mv88e6xxx_port_fdb_prepare_getnext
just seems unambiguous and future proof.

     Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242324 — Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 15:10 +0200
SubjectRe: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare
Message-ID<qhj7k-4pv-7@gated-at.bofh.it>
In reply to#1241888
Hi Andrew,

On Oct. Thursday 08 (41) 02:25 AM, Andrew Lunn wrote:
> On Wed, Oct 07, 2015 at 07:48:29PM -0400, Vivien Didelot wrote:
> > Push the prepare phase for FDB operations down to the DSA drivers, with
> > a new port_fdb_prepare function. Currently only mv88e6xxx is affected.
> > 
> > Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> > ---
> >  drivers/net/dsa/mv88e6171.c |  1 +
> >  drivers/net/dsa/mv88e6352.c |  1 +
> >  drivers/net/dsa/mv88e6xxx.c | 10 ++++++++++
> >  drivers/net/dsa/mv88e6xxx.h |  3 +++
> >  include/net/dsa.h           |  4 ++++
> >  net/dsa/slave.c             |  7 +++++--
> >  6 files changed, 24 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/dsa/mv88e6171.c b/drivers/net/dsa/mv88e6171.c
> > index c95cfab..ca3330a 100644
> > --- a/drivers/net/dsa/mv88e6171.c
> > +++ b/drivers/net/dsa/mv88e6171.c
> > @@ -121,6 +121,7 @@ struct dsa_switch_driver mv88e6171_switch_driver = {
> >  	.port_vlan_add		= mv88e6xxx_port_vlan_add,
> >  	.port_vlan_del		= mv88e6xxx_port_vlan_del,
> >  	.vlan_getnext		= mv88e6xxx_vlan_getnext,
> > +	.port_fdb_prepare	= mv88e6xxx_port_fdb_prepare,
> 
> Hi Vivien
> 
> Bike shedding a bit, but i would call this
> mv88e6xxx_port_fdb_prepare_add.

I think port_fdb_prepare is fine because it is the only step that
actually needs the 2-phase model. del and dump are safe and don't need
pre-check.

> >  	.port_fdb_add		= mv88e6xxx_port_fdb_add,
> >  	.port_fdb_del		= mv88e6xxx_port_fdb_del,
> >  	.port_fdb_getnext	= mv88e6xxx_port_fdb_getnext,
> 
> Taking a theoretical example, say mv88e6xxx_port_fdb_getnext needed a
> prepare call to allocate memory to put the returned ATU into. What
> would you call that?
> 
> mv88e6xxx_port_fdb_prepare_add and mv88e6xxx_port_fdb_prepare_getnext
> just seems unambiguous and future proof.

the switchdev dump operation is called just once, so no preparation is
implied (from the switchdev point of view). It is the responsability of
the driver to call the switchdev dump callback itself.

Thanks,
-v
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242502 — Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare

FromAndrew Lunn <andrew@lunn.ch>
Date2015-10-08 17:10 +0200
SubjectRe: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare
Message-ID<qhkZs-76Q-21@gated-at.bofh.it>
In reply to#1242324
> > Hi Vivien
> > 
> > Bike shedding a bit, but i would call this
> > mv88e6xxx_port_fdb_prepare_add.
> 
> I think port_fdb_prepare is fine because it is the only step that
> actually needs the 2-phase model. del and dump are safe and don't need
> pre-check.

O.K. I don't have a strong opinion, i just think sometime later we
might run into a naming consistency issue. If this does happen, we can
fix it then.

    Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1241983 — Re: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare

FromScott Feldman <sfeldma@gmail.com>
Date2015-10-08 08:20 +0200
SubjectRe: [PATCH net-next 4/6] net: dsa: add port_fdb_prepare
Message-ID<qhcIy-3xD-7@gated-at.bofh.it>
In reply to#1241868
On Wed, Oct 7, 2015 at 4:48 PM, Vivien Didelot
<vivien.didelot@savoirfairelinux.com> wrote:
> Push the prepare phase for FDB operations down to the DSA drivers, with
> a new port_fdb_prepare function. Currently only mv88e6xxx is affected.
>
> Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>

Reviewed-by: Scott Feldman <sfeldma@gmail.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1241870 — [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 02:00 +0200
Subject[PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h
Message-ID<qh6MO-3hq-13@gated-at.bofh.it>
In reply to#1241867
Forward declare struct dsa_switch_tree in netdevice.h instead of
including the dsa.h header.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
 include/linux/netdevice.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 73f0510..d0bcabb 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -41,7 +41,6 @@
 
 #include <linux/ethtool.h>
 #include <net/net_namespace.h>
-#include <net/dsa.h>
 #ifdef CONFIG_DCB
 #include <net/dcbnl.h>
 #endif
@@ -60,6 +59,8 @@ struct wireless_dev;
 /* 802.15.4 specific */
 struct wpan_dev;
 struct mpls_dev;
+/* DSA specific */
+struct dsa_switch_tree;
 
 void netdev_set_default_ethtool_ops(struct net_device *dev,
 				    const struct ethtool_ops *ops);
-- 
2.6.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242106 — Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h

FromJiri Pirko <jiri@resnulli.us>
Date2015-10-08 11:20 +0200
SubjectRe: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h
Message-ID<qhfwK-7zW-19@gated-at.bofh.it>
In reply to#1241870
Thu, Oct 08, 2015 at 11:04:48AM CEST, lkp@intel.com wrote:
>Hi Vivien,
>
>[auto build test ERROR on net-next/master -- if it's inappropriate base, please ignore]
>
>config: arm64-allyesconfig (attached as .config)
>reproduce:
>        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>        chmod +x ~/bin/make.cross
>        # save the attached .config to linux build tree
>        make.cross ARCH=arm64 
>
>All errors (new ones prefixed by >>):
>
>   In file included from drivers/net/ethernet/hisilicon/hns/hnae.c:15:0:
>>> drivers/net/ethernet/hisilicon/hns/hnae.h:465:2: error: unknown type name 'phy_interface_t'
>     phy_interface_t phy_if;
>     ^
>
>vim +/phy_interface_t +465 drivers/net/ethernet/hisilicon/hns/hnae.h


Looks like hnae.c needs to do "#include <linux/phy.h>" directly.
Cc'ing maintainer.


>
>6fe6611f huangdaode 2015-09-17  449  struct hnae_ae_dev {
>6fe6611f huangdaode 2015-09-17  450  	struct device cls_dev; /* the class dev */
>6fe6611f huangdaode 2015-09-17  451  	struct device *dev; /* the presented dev */
>6fe6611f huangdaode 2015-09-17  452  	struct hnae_ae_ops *ops;
>6fe6611f huangdaode 2015-09-17  453  	struct list_head node;
>6fe6611f huangdaode 2015-09-17  454  	struct module *owner; /* the module who provides this dev */
>6fe6611f huangdaode 2015-09-17  455  	int id;
>6fe6611f huangdaode 2015-09-17  456  	char name[AE_NAME_SIZE];
>6fe6611f huangdaode 2015-09-17  457  	struct list_head handle_list;
>6fe6611f huangdaode 2015-09-17  458  	spinlock_t lock; /* lock to protect the handle_list */
>6fe6611f huangdaode 2015-09-17  459  };
>6fe6611f huangdaode 2015-09-17  460  
>6fe6611f huangdaode 2015-09-17  461  struct hnae_handle {
>6fe6611f huangdaode 2015-09-17  462  	struct device *owner_dev; /* the device which make use of this handle */
>6fe6611f huangdaode 2015-09-17  463  	struct hnae_ae_dev *dev;  /* the device who provides this handle */
>6fe6611f huangdaode 2015-09-17  464  	struct device_node *phy_node;
>6fe6611f huangdaode 2015-09-17 @465  	phy_interface_t phy_if;
>6fe6611f huangdaode 2015-09-17  466  	u32 if_support;
>6fe6611f huangdaode 2015-09-17  467  	int q_num;
>6fe6611f huangdaode 2015-09-17  468  	int vf_id;
>6fe6611f huangdaode 2015-09-17  469  	u32 eport_id;
>6fe6611f huangdaode 2015-09-17  470  	enum hnae_port_type port_type;
>6fe6611f huangdaode 2015-09-17  471  	struct list_head node;    /* list to hnae_ae_dev->handle_list */
>6fe6611f huangdaode 2015-09-17  472  	struct hnae_buf_ops *bops; /* operation for the buffer */
>6fe6611f huangdaode 2015-09-17  473  	struct hnae_queue **qs;  /* array base of all queues */
>
>:::::: The code at line 465 was first introduced by commit
>:::::: 6fe6611ff275522a4e4c0359e2f46cdd07780d2f net: add Hisilicon Network Subsystem hnae framework support
>
>:::::: TO: huangdaode <huangdaode@hisilicon.com>
>:::::: CC: David S. Miller <davem@davemloft.net>
>
>---
>0-DAY kernel test infrastructure                Open Source Technology Center
>https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242181 — Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h

FromWei Xu <xuwei5@hisilicon.com>
Date2015-10-08 12:40 +0200
SubjectRe: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h
Message-ID<qhgMa-QO-9@gated-at.bofh.it>
In reply to#1242106

On 10/8/2015 10:18 AM, Jiri Pirko wrote:
> Thu, Oct 08, 2015 at 11:04:48AM CEST, lkp@intel.com wrote:
>> Hi Vivien,
>>
>> [auto build test ERROR on net-next/master -- if it's inappropriate base, please ignore]
>>
>> config: arm64-allyesconfig (attached as .config)
>> reproduce:
>>        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>>        chmod +x ~/bin/make.cross
>>        # save the attached .config to linux build tree
>>        make.cross ARCH=arm64 
>>
>> All errors (new ones prefixed by >>):
>>
>>   In file included from drivers/net/ethernet/hisilicon/hns/hnae.c:15:0:
>>>> drivers/net/ethernet/hisilicon/hns/hnae.h:465:2: error: unknown type name 'phy_interface_t'
>>     phy_interface_t phy_if;
>>     ^
>>
>> vim +/phy_interface_t +465 drivers/net/ethernet/hisilicon/hns/hnae.h
> 
> 

Hi Jiri,

> Looks like hnae.c needs to do "#include <linux/phy.h>" directly.
> Cc'ing maintainer.
> 

Thanks!
We will send the fix patch soon.

Best Regards,
Wei

> 
>>
>> 6fe6611f huangdaode 2015-09-17  449  struct hnae_ae_dev {
>> 6fe6611f huangdaode 2015-09-17  450  	struct device cls_dev; /* the class dev */
>> 6fe6611f huangdaode 2015-09-17  451  	struct device *dev; /* the presented dev */
>> 6fe6611f huangdaode 2015-09-17  452  	struct hnae_ae_ops *ops;
>> 6fe6611f huangdaode 2015-09-17  453  	struct list_head node;
>> 6fe6611f huangdaode 2015-09-17  454  	struct module *owner; /* the module who provides this dev */
>> 6fe6611f huangdaode 2015-09-17  455  	int id;
>> 6fe6611f huangdaode 2015-09-17  456  	char name[AE_NAME_SIZE];
>> 6fe6611f huangdaode 2015-09-17  457  	struct list_head handle_list;
>> 6fe6611f huangdaode 2015-09-17  458  	spinlock_t lock; /* lock to protect the handle_list */
>> 6fe6611f huangdaode 2015-09-17  459  };
>> 6fe6611f huangdaode 2015-09-17  460  
>> 6fe6611f huangdaode 2015-09-17  461  struct hnae_handle {
>> 6fe6611f huangdaode 2015-09-17  462  	struct device *owner_dev; /* the device which make use of this handle */
>> 6fe6611f huangdaode 2015-09-17  463  	struct hnae_ae_dev *dev;  /* the device who provides this handle */
>> 6fe6611f huangdaode 2015-09-17  464  	struct device_node *phy_node;
>> 6fe6611f huangdaode 2015-09-17 @465  	phy_interface_t phy_if;
>> 6fe6611f huangdaode 2015-09-17  466  	u32 if_support;
>> 6fe6611f huangdaode 2015-09-17  467  	int q_num;
>> 6fe6611f huangdaode 2015-09-17  468  	int vf_id;
>> 6fe6611f huangdaode 2015-09-17  469  	u32 eport_id;
>> 6fe6611f huangdaode 2015-09-17  470  	enum hnae_port_type port_type;
>> 6fe6611f huangdaode 2015-09-17  471  	struct list_head node;    /* list to hnae_ae_dev->handle_list */
>> 6fe6611f huangdaode 2015-09-17  472  	struct hnae_buf_ops *bops; /* operation for the buffer */
>> 6fe6611f huangdaode 2015-09-17  473  	struct hnae_queue **qs;  /* array base of all queues */
>>
>> :::::: The code at line 465 was first introduced by commit
>> :::::: 6fe6611ff275522a4e4c0359e2f46cdd07780d2f net: add Hisilicon Network Subsystem hnae framework support
>>
>> :::::: TO: huangdaode <huangdaode@hisilicon.com>
>> :::::: CC: David S. Miller <davem@davemloft.net>
>>
>> ---
>> 0-DAY kernel test infrastructure                Open Source Technology Center
>> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 
> 
> 
> .
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242291 — Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h

FromJiri Pirko <jiri@resnulli.us>
Date2015-10-08 14:20 +0200
SubjectRe: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h
Message-ID<qhikW-3cc-19@gated-at.bofh.it>
In reply to#1242106
Thu, Oct 08, 2015 at 02:11:11PM CEST, huangdaode@hisilicon.com wrote:
>On 2015/10/8 17:18, Jiri Pirko wrote:
>>Thu, Oct 08, 2015 at 11:04:48AM CEST, lkp@intel.com wrote:
>>>Hi Vivien,
>>>
>>>[auto build test ERROR on net-next/master -- if it's inappropriate base, please ignore]
>>>
>>>config: arm64-allyesconfig (attached as .config)
>>>reproduce:
>>>        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>>>        chmod +x ~/bin/make.cross
>>>        # save the attached .config to linux build tree
>>>        make.cross ARCH=arm64
>>>
>>>All errors (new ones prefixed by >>):
>>>
>>>   In file included from drivers/net/ethernet/hisilicon/hns/hnae.c:15:0:
>>>>>drivers/net/ethernet/hisilicon/hns/hnae.h:465:2: error: unknown type name 'phy_interface_t'
>>>     phy_interface_t phy_if;
>>>     ^
>>>
>>>vim +/phy_interface_t +465 drivers/net/ethernet/hisilicon/hns/hnae.h
>>
>>Looks like hnae.c needs to do "#include <linux/phy.h>" directly.
>>Cc'ing maintainer.
>>
>>
>>>6fe6611f huangdaode 2015-09-17  449  struct hnae_ae_dev {
>>>6fe6611f huangdaode 2015-09-17  450  	struct device cls_dev; /* the class dev */
>>>6fe6611f huangdaode 2015-09-17  451  	struct device *dev; /* the presented dev */
>>>6fe6611f huangdaode 2015-09-17  452  	struct hnae_ae_ops *ops;
>>>6fe6611f huangdaode 2015-09-17  453  	struct list_head node;
>>>6fe6611f huangdaode 2015-09-17  454  	struct module *owner; /* the module who provides this dev */
>>>6fe6611f huangdaode 2015-09-17  455  	int id;
>>>6fe6611f huangdaode 2015-09-17  456  	char name[AE_NAME_SIZE];
>>>6fe6611f huangdaode 2015-09-17  457  	struct list_head handle_list;
>>>6fe6611f huangdaode 2015-09-17  458  	spinlock_t lock; /* lock to protect the handle_list */
>>>6fe6611f huangdaode 2015-09-17  459  };
>>>6fe6611f huangdaode 2015-09-17  460
>>>6fe6611f huangdaode 2015-09-17  461  struct hnae_handle {
>>>6fe6611f huangdaode 2015-09-17  462  	struct device *owner_dev; /* the device which make use of this handle */
>>>6fe6611f huangdaode 2015-09-17  463  	struct hnae_ae_dev *dev;  /* the device who provides this handle */
>>>6fe6611f huangdaode 2015-09-17  464  	struct device_node *phy_node;
>>>6fe6611f huangdaode 2015-09-17 @465  	phy_interface_t phy_if;
>>>6fe6611f huangdaode 2015-09-17  466  	u32 if_support;
>>>6fe6611f huangdaode 2015-09-17  467  	int q_num;
>>>6fe6611f huangdaode 2015-09-17  468  	int vf_id;
>>>6fe6611f huangdaode 2015-09-17  469  	u32 eport_id;
>>>6fe6611f huangdaode 2015-09-17  470  	enum hnae_port_type port_type;
>>>6fe6611f huangdaode 2015-09-17  471  	struct list_head node;    /* list to hnae_ae_dev->handle_list */
>>>6fe6611f huangdaode 2015-09-17  472  	struct hnae_buf_ops *bops; /* operation for the buffer */
>>>6fe6611f huangdaode 2015-09-17  473  	struct hnae_queue **qs;  /* array base of all queues */
>>>
>>>:::::: The code at line 465 was first introduced by commit
>>>:::::: 6fe6611ff275522a4e4c0359e2f46cdd07780d2f net: add Hisilicon Network Subsystem hnae framework support
>>>
>>>:::::: TO: huangdaode <huangdaode@hisilicon.com>
>>>:::::: CC: David S. Miller <davem@davemloft.net>
>>>
>>>---
>>>0-DAY kernel test infrastructure                Open Source Technology Center
>>>https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
>>
>>--
>>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>the body of a message to majordomo@vger.kernel.org
>>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>Please read the FAQ at  http://www.tux.org/lkml/
>>
>>.
>>
>Hi Jiri
>thanks for your information. i have compiled the latest net-next repo using
>your config file, but don't find the error you mentioned.
>the attachment is the build log and the  config file.
>
>also, i used the following command to compile, but still fail to reproduce
>your issue.
>/  daode@Turing-Arch-b:~/work/net-next$ cat build.sh //
>//        export ARCH=arm64 //
>//        export CROSS_COMPILE=aarch64-linux-gnu-//
>//        make allyesconfig//
>//        make -j16 //
>////daode@Turing-Arch-b:~/work/net-next$ /
>
>so could you please help me to reproduce the issue.

The patch is not in tree. That does not change the fact that you should
include linux/phy.h directly. Please send the patch adding that. Thanks!


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242308 — Re: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h

Fromhuangdaode <huangdaode@hisilicon.com>
Date2015-10-08 14:50 +0200
SubjectRe: [PATCH net-next 3/6] net: remove dsa.h include from linux/netdevice.h
Message-ID<qhiNY-3NW-5@gated-at.bofh.it>
In reply to#1242291
On 2015/10/8 20:18, Jiri Pirko wrote:
> Thu, Oct 08, 2015 at 02:11:11PM CEST, huangdaode@hisilicon.com wrote:
>> On 2015/10/8 17:18, Jiri Pirko wrote:
>>> Thu, Oct 08, 2015 at 11:04:48AM CEST, lkp@intel.com wrote:
>>>> Hi Vivien,
>>>>
>>>> [auto build test ERROR on net-next/master -- if it's inappropriate base, please ignore]
>>>>
>>>> config: arm64-allyesconfig (attached as .config)
>>>> reproduce:
>>>>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>>>>         chmod +x ~/bin/make.cross
>>>>         # save the attached .config to linux build tree
>>>>         make.cross ARCH=arm64
>>>>
>>>> All errors (new ones prefixed by >>):
>>>>
>>>>    In file included from drivers/net/ethernet/hisilicon/hns/hnae.c:15:0:
>>>>>> drivers/net/ethernet/hisilicon/hns/hnae.h:465:2: error: unknown type name 'phy_interface_t'
>>>>      phy_interface_t phy_if;
>>>>      ^
>>>>
>>>> vim +/phy_interface_t +465 drivers/net/ethernet/hisilicon/hns/hnae.h
>>> Looks like hnae.c needs to do "#include <linux/phy.h>" directly.
>>> Cc'ing maintainer.
>>>
>>>
>>>> 6fe6611f huangdaode 2015-09-17  449  struct hnae_ae_dev {
>>>> 6fe6611f huangdaode 2015-09-17  450  	struct device cls_dev; /* the class dev */
>>>> 6fe6611f huangdaode 2015-09-17  451  	struct device *dev; /* the presented dev */
>>>> 6fe6611f huangdaode 2015-09-17  452  	struct hnae_ae_ops *ops;
>>>> 6fe6611f huangdaode 2015-09-17  453  	struct list_head node;
>>>> 6fe6611f huangdaode 2015-09-17  454  	struct module *owner; /* the module who provides this dev */
>>>> 6fe6611f huangdaode 2015-09-17  455  	int id;
>>>> 6fe6611f huangdaode 2015-09-17  456  	char name[AE_NAME_SIZE];
>>>> 6fe6611f huangdaode 2015-09-17  457  	struct list_head handle_list;
>>>> 6fe6611f huangdaode 2015-09-17  458  	spinlock_t lock; /* lock to protect the handle_list */
>>>> 6fe6611f huangdaode 2015-09-17  459  };
>>>> 6fe6611f huangdaode 2015-09-17  460
>>>> 6fe6611f huangdaode 2015-09-17  461  struct hnae_handle {
>>>> 6fe6611f huangdaode 2015-09-17  462  	struct device *owner_dev; /* the device which make use of this handle */
>>>> 6fe6611f huangdaode 2015-09-17  463  	struct hnae_ae_dev *dev;  /* the device who provides this handle */
>>>> 6fe6611f huangdaode 2015-09-17  464  	struct device_node *phy_node;
>>>> 6fe6611f huangdaode 2015-09-17 @465  	phy_interface_t phy_if;
>>>> 6fe6611f huangdaode 2015-09-17  466  	u32 if_support;
>>>> 6fe6611f huangdaode 2015-09-17  467  	int q_num;
>>>> 6fe6611f huangdaode 2015-09-17  468  	int vf_id;
>>>> 6fe6611f huangdaode 2015-09-17  469  	u32 eport_id;
>>>> 6fe6611f huangdaode 2015-09-17  470  	enum hnae_port_type port_type;
>>>> 6fe6611f huangdaode 2015-09-17  471  	struct list_head node;    /* list to hnae_ae_dev->handle_list */
>>>> 6fe6611f huangdaode 2015-09-17  472  	struct hnae_buf_ops *bops; /* operation for the buffer */
>>>> 6fe6611f huangdaode 2015-09-17  473  	struct hnae_queue **qs;  /* array base of all queues */
>>>>
>>>> :::::: The code at line 465 was first introduced by commit
>>>> :::::: 6fe6611ff275522a4e4c0359e2f46cdd07780d2f net: add Hisilicon Network Subsystem hnae framework support
>>>>
>>>> :::::: TO: huangdaode <huangdaode@hisilicon.com>
>>>> :::::: CC: David S. Miller <davem@davemloft.net>
>>>>
>>>> ---
>>>> 0-DAY kernel test infrastructure                Open Source Technology Center
>>>> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> Please read the FAQ at  http://www.tux.org/lkml/
>>>
>>> .
>>>
>> Hi Jiri
>> thanks for your information. i have compiled the latest net-next repo using
>> your config file, but don't find the error you mentioned.
>> the attachment is the build log and the  config file.
>>
>> also, i used the following command to compile, but still fail to reproduce
>> your issue.
>> /  daode@Turing-Arch-b:~/work/net-next$ cat build.sh //
>> //        export ARCH=arm64 //
>> //        export CROSS_COMPILE=aarch64-linux-gnu-//
>> //        make allyesconfig//
>> //        make -j16 //
>> ////daode@Turing-Arch-b:~/work/net-next$ /
>>
>> so could you please help me to reproduce the issue.
> The patch is not in tree. That does not change the fact that you should
> include linux/phy.h directly. Please send the patch adding that. Thanks!
>
>
>
> .
>
ok,
thanks!

-- 
Best Regards
Daode Huang


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242294 — Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

FromDavid Miller <davem@davemloft.net>
Date2015-10-08 14:20 +0200
SubjectRe: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops
Message-ID<qhikW-3cc-25@gated-at.bofh.it>
In reply to#1241867
From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Date: Wed,  7 Oct 2015 19:48:25 -0400

> The first 3 patches removes the dsa.h include from linux/netdevice.h, which
> broke the inclusion of switchdev.h in dsa.h.

I still don't agree with bloating up struct netdevice just to deal with
an include file ordering issue, sorry.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242365 — Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 15:40 +0200
SubjectRe: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops
Message-ID<qhjAn-4X0-43@gated-at.bofh.it>
In reply to#1242294
Hi David,

On Oct. Thursday 08 (41) 05:28 AM, David Miller wrote:
> From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> Date: Wed,  7 Oct 2015 19:48:25 -0400
> 
> > The first 3 patches removes the dsa.h include from linux/netdevice.h, which
> > broke the inclusion of switchdev.h in dsa.h.
> 
> I still don't agree with bloating up struct netdevice just to deal with
> an include file ordering issue, sorry.

Yes, I just saw your reply on the first version. I will resend the
patchset with the forward declarations instead.

But looking at the issue that Jiri and the kbuild bot pointed out
earlier in the thread, we must agree that having the DSA header in
netdevice.h is wrong.

There are 2 points to note here:

* checking a "rcv" member of a DSA-specific structure to anwser the
  question "does this interface uses hardware-inserted tag?" is not
  generic and not robust at all.

* the "dsa_ptr" of net_device is just used to access the dsa_switch_tree
  from DSA packet_type receive functions. There must be another way to
  pass it, maybe from a netdev_priv or the packet_type->af_packet_priv?

Thanks,
-v
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242370 — Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

FromJiri Pirko <jiri@resnulli.us>
Date2015-10-08 15:50 +0200
SubjectRe: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops
Message-ID<qhjK2-58q-5@gated-at.bofh.it>
In reply to#1242365
Thu, Oct 08, 2015 at 03:32:51PM CEST, vivien.didelot@savoirfairelinux.com wrote:
>Hi David,
>
>On Oct. Thursday 08 (41) 05:28 AM, David Miller wrote:
>> From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
>> Date: Wed,  7 Oct 2015 19:48:25 -0400
>> 
>> > The first 3 patches removes the dsa.h include from linux/netdevice.h, which
>> > broke the inclusion of switchdev.h in dsa.h.
>> 
>> I still don't agree with bloating up struct netdevice just to deal with
>> an include file ordering issue, sorry.
>
>Yes, I just saw your reply on the first version. I will resend the
>patchset with the forward declarations instead.
>
>But looking at the issue that Jiri and the kbuild bot pointed out
>earlier in the thread, we must agree that having the DSA header in
>netdevice.h is wrong.
>
>There are 2 points to note here:
>
>* checking a "rcv" member of a DSA-specific structure to anwser the
>  question "does this interface uses hardware-inserted tag?" is not
>  generic and not robust at all.
>
>* the "dsa_ptr" of net_device is just used to access the dsa_switch_tree
>  from DSA packet_type receive functions. There must be another way to
>  pass it, maybe from a netdev_priv or the packet_type->af_packet_priv?

I sent previously patch for this:
http://patchwork.ozlabs.org/patch/336940/
So now my patch would have another user :)

Vivien, I will refresh the patch and send it to you, the you can
use the priv by dsa and send my patch along with your patchset. How does
that sound?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1242395 — Re: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops

FromVivien Didelot <vivien.didelot@savoirfairelinux.com>
Date2015-10-08 16:20 +0200
SubjectRe: [PATCH net-next 0/6] net: dsa: push switchdev prepare phase in FDB ops
Message-ID<qhkd3-5VC-5@gated-at.bofh.it>
In reply to#1242370
Hi Jiri, David,

On Oct. Thursday 08 (41) 03:47 PM, Jiri Pirko wrote:
> Thu, Oct 08, 2015 at 03:32:51PM CEST, vivien.didelot@savoirfairelinux.com wrote:
> >Hi David,
> >
> >On Oct. Thursday 08 (41) 05:28 AM, David Miller wrote:
> >> From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
> >> Date: Wed,  7 Oct 2015 19:48:25 -0400
> >> 
> >> > The first 3 patches removes the dsa.h include from linux/netdevice.h, which
> >> > broke the inclusion of switchdev.h in dsa.h.
> >> 
> >> I still don't agree with bloating up struct netdevice just to deal with
> >> an include file ordering issue, sorry.
> >
> >Yes, I just saw your reply on the first version. I will resend the
> >patchset with the forward declarations instead.
> >
> >But looking at the issue that Jiri and the kbuild bot pointed out
> >earlier in the thread, we must agree that having the DSA header in
> >netdevice.h is wrong.
> >
> >There are 2 points to note here:
> >
> >* checking a "rcv" member of a DSA-specific structure to anwser the
> >  question "does this interface uses hardware-inserted tag?" is not
> >  generic and not robust at all.
> >
> >* the "dsa_ptr" of net_device is just used to access the dsa_switch_tree
> >  from DSA packet_type receive functions. There must be another way to
> >  pass it, maybe from a netdev_priv or the packet_type->af_packet_priv?
> 
> I sent previously patch for this:
> http://patchwork.ozlabs.org/patch/336940/
> So now my patch would have another user :)

Your patch makes sense. It will reduce the bloating of net_device that
David is talking about. I would also suspect that other <protocol>_ptr
members of the structure are only used in the context of packet_type.

> Vivien, I will refresh the patch and send it to you, the you can
> use the priv by dsa and send my patch along with your patchset. How does
> that sound?

Sure, sounds good.

Thanks,
-v
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web