Alaa Mohamed
2022-Apr-24 21:09 UTC
[Bridge] [PATCH net-next v3 1/2] rtnetlink: add extack support in fdb del handlers
On ???/??/???? ??:??, Nikolay Aleksandrov wrote:> On 24/04/2022 22:49, Alaa Mohamed wrote: >> On ???/??/???? ??:??, Nikolay Aleksandrov wrote: >>> On 24/04/2022 15:09, Alaa Mohamed wrote: >>>> Add extack support to .ndo_fdb_del in netdevice.h and >>>> all related methods. >>>> >>>> Signed-off-by: Alaa Mohamed <eng.alaamohamedsoliman.am at gmail.com> >>>> --- >>>> changes in V3: >>>> ???????? fix errors reported by checkpatch.pl >>>> --- >>>> ? drivers/net/ethernet/intel/ice/ice_main.c??????? | 4 ++-- >>>> ? drivers/net/ethernet/mscc/ocelot_net.c?????????? | 4 ++-- >>>> ? drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 +- >>>> ? drivers/net/macvlan.c??????????????????????????? | 2 +- >>>> ? drivers/net/vxlan/vxlan_core.c?????????????????? | 2 +- >>>> ? include/linux/netdevice.h??????????????????????? | 2 +- >>>> ? net/bridge/br_fdb.c????????????????????????????? | 2 +- >>>> ? net/bridge/br_private.h????????????????????????? | 2 +- >>>> ? net/core/rtnetlink.c???????????????????????????? | 4 ++-- >>>> ? 9 files changed, 12 insertions(+), 12 deletions(-) >>>> >>>> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c >>>> index d768925785ca..7b55d8d94803 100644 >>>> --- a/drivers/net/ethernet/intel/ice/ice_main.c >>>> +++ b/drivers/net/ethernet/intel/ice/ice_main.c >>>> @@ -5678,10 +5678,10 @@ ice_fdb_add(struct ndmsg *ndm, struct nlattr __always_unused *tb[], >>>> ? static int >>>> ? ice_fdb_del(struct ndmsg *ndm, __always_unused struct nlattr *tb[], >>>> ????????? struct net_device *dev, const unsigned char *addr, >>>> -??????? __always_unused u16 vid) >>>> +??????? __always_unused u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? int err; >>>> - >>>> + >>> What's changed here? >> In the previous version, I removed the blank line after "int err;" and you said I shouldn't so I added blank line. >> > Yeah, my question is are you fixing a dos ending or something else? > The blank line is already there, what's wrong with it?No, I didn't.> > The point is it's not nice to mix style fixes and other changes, more so > if nothing is mentioned in the commit message.Got it, So, what should I do to fix it?>>>> ????? if (ndm->ndm_state & NUD_PERMANENT) { >>>> ????????? netdev_err(dev, "FDB only supports static addresses\n"); >>>> ????????? return -EINVAL; >>>> diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c >>>> index 247bc105bdd2..e07c64e3159c 100644 >>>> --- a/drivers/net/ethernet/mscc/ocelot_net.c >>>> +++ b/drivers/net/ethernet/mscc/ocelot_net.c >>>> @@ -774,14 +774,14 @@ static int ocelot_port_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], >>>> >>>> ? static int ocelot_port_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], >>>> ???????????????????? struct net_device *dev, >>>> -?????????????????? const unsigned char *addr, u16 vid) >>>> +?????????????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? struct ocelot_port_private *priv = netdev_priv(dev); >>>> ????? struct ocelot_port *ocelot_port = &priv->port; >>>> ????? struct ocelot *ocelot = ocelot_port->ocelot; >>>> ????? int port = priv->chip_port; >>>> >>>> -??? return ocelot_fdb_del(ocelot, port, addr, vid, ocelot_port->bridge); >>>> +??? return ocelot_fdb_del(ocelot, port, addr, vid, ocelot_port->bridge, extack); >>>> ? } >>>> >>>> ? static int ocelot_port_fdb_dump(struct sk_buff *skb, >>>> diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c >>>> index d320567b2cca..51fa23418f6a 100644 >>>> --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c >>>> +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c >>>> @@ -368,7 +368,7 @@ static int qlcnic_set_mac(struct net_device *netdev, void *p) >>>> >>>> ? static int qlcnic_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], >>>> ????????????? struct net_device *netdev, >>>> -??????????? const unsigned char *addr, u16 vid) >>>> +??????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? struct qlcnic_adapter *adapter = netdev_priv(netdev); >>>> ????? int err = -EOPNOTSUPP; >>>> diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c >>>> index 069e8824c264..ffd34d9f7049 100644 >>>> --- a/drivers/net/macvlan.c >>>> +++ b/drivers/net/macvlan.c >>>> @@ -1017,7 +1017,7 @@ static int macvlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], >>>> >>>> ? static int macvlan_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], >>>> ???????????????? struct net_device *dev, >>>> -?????????????? const unsigned char *addr, u16 vid) >>>> +?????????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? struct macvlan_dev *vlan = netdev_priv(dev); >>>> ????? int err = -EINVAL; >>>> diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c >>>> index de97ff98d36e..cf2f60037340 100644 >>>> --- a/drivers/net/vxlan/vxlan_core.c >>>> +++ b/drivers/net/vxlan/vxlan_core.c >>>> @@ -1280,7 +1280,7 @@ int __vxlan_fdb_delete(struct vxlan_dev *vxlan, >>>> ? /* Delete entry (via netlink) */ >>>> ? static int vxlan_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], >>>> ????????????????? struct net_device *dev, >>>> -??????????????? const unsigned char *addr, u16 vid) >>>> +??????????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? struct vxlan_dev *vxlan = netdev_priv(dev); >>>> ????? union vxlan_addr ip; >>>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h >>>> index 28ea4f8269d4..d0d2a8f33c73 100644 >>>> --- a/include/linux/netdevice.h >>>> +++ b/include/linux/netdevice.h >>>> @@ -1509,7 +1509,7 @@ struct net_device_ops { >>>> ???????????????????????????? struct nlattr *tb[], >>>> ???????????????????????????? struct net_device *dev, >>>> ???????????????????????????? const unsigned char *addr, >>>> -?????????????????????????? u16 vid); >>>> +?????????????????????????? u16 vid, struct netlink_ext_ack *extack); >>>> ????? int??????????? (*ndo_fdb_dump)(struct sk_buff *skb, >>>> ????????????????????????? struct netlink_callback *cb, >>>> ????????????????????????? struct net_device *dev, >>>> diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c >>>> index 6ccda68bd473..5bfce2e9a553 100644 >>>> --- a/net/bridge/br_fdb.c >>>> +++ b/net/bridge/br_fdb.c >>>> @@ -1110,7 +1110,7 @@ static int __br_fdb_delete(struct net_bridge *br, >>>> ? /* Remove neighbor entry with RTM_DELNEIGH */ >>>> ? int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], >>>> ??????????? struct net_device *dev, >>>> -????????? const unsigned char *addr, u16 vid) >>>> +????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack) >>>> ? { >>>> ????? struct net_bridge_vlan_group *vg; >>>> ????? struct net_bridge_port *p = NULL; >>>> diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h >>>> index 18ccc3d5d296..95348c1c9ce5 100644 >>>> --- a/net/bridge/br_private.h >>>> +++ b/net/bridge/br_private.h >>>> @@ -780,7 +780,7 @@ void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source, >>>> ???????????? const unsigned char *addr, u16 vid, unsigned long flags); >>>> >>>> ? int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], >>>> -????????? struct net_device *dev, const unsigned char *addr, u16 vid); >>>> +????????? struct net_device *dev, const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack); >>> This is way too long (111 chars) and checkpatch should've complained about it. >>> WARNING: line length of 111 exceeds 100 columns >>> #234: FILE: net/bridge/br_private.h:782: >>> +????????? struct net_device *dev, const unsigned char *addr, u16 vid, struct netlink_ext_ack *extack); >> I will fix it. >> >>>> ? int br_fdb_add(struct ndmsg *nlh, struct nlattr *tb[], struct net_device *dev, >>>> ???????????? const unsigned char *addr, u16 vid, u16 nlh_flags, >>>> ???????????? struct netlink_ext_ack *extack); >>>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c >>>> index 4041b3e2e8ec..99b30ae58a47 100644 >>>> --- a/net/core/rtnetlink.c >>>> +++ b/net/core/rtnetlink.c >>>> @@ -4223,7 +4223,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh, >>>> ????????? const struct net_device_ops *ops = br_dev->netdev_ops; >>>> >>>> ????????? if (ops->ndo_fdb_del) >>>> -??????????? err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); >>>> +??????????? err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, extack); >>>> >>>> ????????? if (err) >>>> ????????????? goto out; >>>> @@ -4235,7 +4235,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh, >>>> ????? if (ndm->ndm_flags & NTF_SELF) { >>>> ????????? if (dev->netdev_ops->ndo_fdb_del) >>>> ????????????? err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, >>>> -?????????????????????????????? vid); >>>> +?????????????????????????????? vid, extack); >>>> ????????? else >>>> ????????????? err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); >>>> >>>> -- >>>> 2.36.0 >>>>
Julia Lawall
2022-Apr-25 06:11 UTC
[Bridge] [PATCH net-next v3 1/2] rtnetlink: add extack support in fdb del handlers
On Sun, 24 Apr 2022, Alaa Mohamed wrote:> > On ??/?/???? ??:??, Nikolay Aleksandrov wrote: > > On 24/04/2022 22:49, Alaa Mohamed wrote: > > > On ??/?/???? ??:??, Nikolay Aleksandrov wrote: > > > > On 24/04/2022 15:09, Alaa Mohamed wrote: > > > > > Add extack support to .ndo_fdb_del in netdevice.h and > > > > > all related methods. > > > > > > > > > > Signed-off-by: Alaa Mohamed <eng.alaamohamedsoliman.am at gmail.com> > > > > > --- > > > > > changes in V3: > > > > > ???????? fix errors reported by checkpatch.pl > > > > > --- > > > > > ? drivers/net/ethernet/intel/ice/ice_main.c??????? | 4 ++-- > > > > > ? drivers/net/ethernet/mscc/ocelot_net.c?????????? | 4 ++-- > > > > > ? drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 +- > > > > > ? drivers/net/macvlan.c??????????????????????????? | 2 +- > > > > > ? drivers/net/vxlan/vxlan_core.c?????????????????? | 2 +- > > > > > ? include/linux/netdevice.h??????????????????????? | 2 +- > > > > > ? net/bridge/br_fdb.c????????????????????????????? | 2 +- > > > > > ? net/bridge/br_private.h????????????????????????? | 2 +- > > > > > ? net/core/rtnetlink.c???????????????????????????? | 4 ++-- > > > > > ? 9 files changed, 12 insertions(+), 12 deletions(-) > > > > > > > > > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c > > > > > b/drivers/net/ethernet/intel/ice/ice_main.c > > > > > index d768925785ca..7b55d8d94803 100644 > > > > > --- a/drivers/net/ethernet/intel/ice/ice_main.c > > > > > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > > > > > @@ -5678,10 +5678,10 @@ ice_fdb_add(struct ndmsg *ndm, struct nlattr > > > > > __always_unused *tb[], > > > > > ? static int > > > > > ? ice_fdb_del(struct ndmsg *ndm, __always_unused struct nlattr *tb[], > > > > > ????????? struct net_device *dev, const unsigned char *addr, > > > > > -??????? __always_unused u16 vid) > > > > > +??????? __always_unused u16 vid, struct netlink_ext_ack *extack) > > > > > ? { > > > > > ????? int err; > > > > > - > > > > > + > > > > What's changed here? > > > In the previous version, I removed the blank line after "int err;" and you > > > said I shouldn't so I added blank line. > > > > > Yeah, my question is are you fixing a dos ending or something else? > > The blank line is already there, what's wrong with it? > No, I didn't.OK, so what is the answer to the question about what changed? It looks like you remove a blank line and then add it back. But that should not show up as a difference when you generate the patch. When you answer a comment, please put a blank line before and after your answer. Otherwise it can be hard to see your answer when it is in the middle of a larger patch.> > > > The point is it's not nice to mix style fixes and other changes, more so > > if nothing is mentioned in the commit message. > Got it, So, what should I do to fix it?A series? But it is not clear that any change is needed here at all. julia> > > > > ????? if (ndm->ndm_state & NUD_PERMANENT) { > > > > > ????????? netdev_err(dev, "FDB only supports static addresses\n"); > > > > > ????????? return -EINVAL; > > > > > diff --git a/drivers/net/ethernet/mscc/ocelot_net.c > > > > > b/drivers/net/ethernet/mscc/ocelot_net.c > > > > > index 247bc105bdd2..e07c64e3159c 100644 > > > > > --- a/drivers/net/ethernet/mscc/ocelot_net.c > > > > > +++ b/drivers/net/ethernet/mscc/ocelot_net.c > > > > > @@ -774,14 +774,14 @@ static int ocelot_port_fdb_add(struct ndmsg > > > > > *ndm, struct nlattr *tb[], > > > > > > > > > > ? static int ocelot_port_fdb_del(struct ndmsg *ndm, struct nlattr > > > > > *tb[], > > > > > ???????????????????? struct net_device *dev, > > > > > -?????????????????? const unsigned char *addr, u16 vid) > > > > > +?????????????????? const unsigned char *addr, u16 vid, struct > > > > > netlink_ext_ack *extack) > > > > > ? { > > > > > ????? struct ocelot_port_private *priv = netdev_priv(dev); > > > > > ????? struct ocelot_port *ocelot_port = &priv->port; > > > > > ????? struct ocelot *ocelot = ocelot_port->ocelot; > > > > > ????? int port = priv->chip_port; > > > > > > > > > > -??? return ocelot_fdb_del(ocelot, port, addr, vid, > > > > > ocelot_port->bridge); > > > > > +??? return ocelot_fdb_del(ocelot, port, addr, vid, > > > > > ocelot_port->bridge, extack); > > > > > ? } > > > > > > > > > > ? static int ocelot_port_fdb_dump(struct sk_buff *skb, > > > > > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > > > > > b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > > > > > index d320567b2cca..51fa23418f6a 100644 > > > > > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > > > > > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > > > > > @@ -368,7 +368,7 @@ static int qlcnic_set_mac(struct net_device > > > > > *netdev, void *p) > > > > > > > > > > ? static int qlcnic_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], > > > > > ????????????? struct net_device *netdev, > > > > > -??????????? const unsigned char *addr, u16 vid) > > > > > +??????????? const unsigned char *addr, u16 vid, struct > > > > > netlink_ext_ack *extack) > > > > > ? { > > > > > ????? struct qlcnic_adapter *adapter = netdev_priv(netdev); > > > > > ????? int err = -EOPNOTSUPP; > > > > > diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c > > > > > index 069e8824c264..ffd34d9f7049 100644 > > > > > --- a/drivers/net/macvlan.c > > > > > +++ b/drivers/net/macvlan.c > > > > > @@ -1017,7 +1017,7 @@ static int macvlan_fdb_add(struct ndmsg *ndm, > > > > > struct nlattr *tb[], > > > > > > > > > > ? static int macvlan_fdb_del(struct ndmsg *ndm, struct nlattr *tb[], > > > > > ???????????????? struct net_device *dev, > > > > > -?????????????? const unsigned char *addr, u16 vid) > > > > > +?????????????? const unsigned char *addr, u16 vid, struct > > > > > netlink_ext_ack *extack) > > > > > ? { > > > > > ????? struct macvlan_dev *vlan = netdev_priv(dev); > > > > > ????? int err = -EINVAL; > > > > > diff --git a/drivers/net/vxlan/vxlan_core.c > > > > > b/drivers/net/vxlan/vxlan_core.c > > > > > index de97ff98d36e..cf2f60037340 100644 > > > > > --- a/drivers/net/vxlan/vxlan_core.c > > > > > +++ b/drivers/net/vxlan/vxlan_core.c > > > > > @@ -1280,7 +1280,7 @@ int __vxlan_fdb_delete(struct vxlan_dev *vxlan, > > > > > ? /* Delete entry (via netlink) */ > > > > > ? static int vxlan_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], > > > > > ????????????????? struct net_device *dev, > > > > > -??????????????? const unsigned char *addr, u16 vid) > > > > > +??????????????? const unsigned char *addr, u16 vid, struct > > > > > netlink_ext_ack *extack) > > > > > ? { > > > > > ????? struct vxlan_dev *vxlan = netdev_priv(dev); > > > > > ????? union vxlan_addr ip; > > > > > diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h > > > > > index 28ea4f8269d4..d0d2a8f33c73 100644 > > > > > --- a/include/linux/netdevice.h > > > > > +++ b/include/linux/netdevice.h > > > > > @@ -1509,7 +1509,7 @@ struct net_device_ops { > > > > > ???????????????????????????? struct nlattr *tb[], > > > > > ???????????????????????????? struct net_device *dev, > > > > > ???????????????????????????? const unsigned char *addr, > > > > > -?????????????????????????? u16 vid); > > > > > +?????????????????????????? u16 vid, struct netlink_ext_ack *extack); > > > > > ????? int??????????? (*ndo_fdb_dump)(struct sk_buff *skb, > > > > > ????????????????????????? struct netlink_callback *cb, > > > > > ????????????????????????? struct net_device *dev, > > > > > diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c > > > > > index 6ccda68bd473..5bfce2e9a553 100644 > > > > > --- a/net/bridge/br_fdb.c > > > > > +++ b/net/bridge/br_fdb.c > > > > > @@ -1110,7 +1110,7 @@ static int __br_fdb_delete(struct net_bridge > > > > > *br, > > > > > ? /* Remove neighbor entry with RTM_DELNEIGH */ > > > > > ? int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], > > > > > ??????????? struct net_device *dev, > > > > > -????????? const unsigned char *addr, u16 vid) > > > > > +????????? const unsigned char *addr, u16 vid, struct netlink_ext_ack > > > > > *extack) > > > > > ? { > > > > > ????? struct net_bridge_vlan_group *vg; > > > > > ????? struct net_bridge_port *p = NULL; > > > > > diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h > > > > > index 18ccc3d5d296..95348c1c9ce5 100644 > > > > > --- a/net/bridge/br_private.h > > > > > +++ b/net/bridge/br_private.h > > > > > @@ -780,7 +780,7 @@ void br_fdb_update(struct net_bridge *br, struct > > > > > net_bridge_port *source, > > > > > ???????????? const unsigned char *addr, u16 vid, unsigned long > > > > > flags); > > > > > > > > > > ? int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], > > > > > -????????? struct net_device *dev, const unsigned char *addr, u16 > > > > > vid); > > > > > +????????? struct net_device *dev, const unsigned char *addr, u16 vid, > > > > > struct netlink_ext_ack *extack); > > > > This is way too long (111 chars) and checkpatch should've complained > > > > about it. > > > > WARNING: line length of 111 exceeds 100 columns > > > > #234: FILE: net/bridge/br_private.h:782: > > > > +????????? struct net_device *dev, const unsigned char *addr, u16 vid, > > > > struct netlink_ext_ack *extack); > > > I will fix it. > > > > > > > > ? int br_fdb_add(struct ndmsg *nlh, struct nlattr *tb[], struct > > > > > net_device *dev, > > > > > ???????????? const unsigned char *addr, u16 vid, u16 nlh_flags, > > > > > ???????????? struct netlink_ext_ack *extack); > > > > > diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c > > > > > index 4041b3e2e8ec..99b30ae58a47 100644 > > > > > --- a/net/core/rtnetlink.c > > > > > +++ b/net/core/rtnetlink.c > > > > > @@ -4223,7 +4223,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, > > > > > struct nlmsghdr *nlh, > > > > > ????????? const struct net_device_ops *ops = br_dev->netdev_ops; > > > > > > > > > > ????????? if (ops->ndo_fdb_del) > > > > > -??????????? err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid); > > > > > +??????????? err = ops->ndo_fdb_del(ndm, tb, dev, addr, vid, extack); > > > > > > > > > > ????????? if (err) > > > > > ????????????? goto out; > > > > > @@ -4235,7 +4235,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, > > > > > struct nlmsghdr *nlh, > > > > > ????? if (ndm->ndm_flags & NTF_SELF) { > > > > > ????????? if (dev->netdev_ops->ndo_fdb_del) > > > > > ????????????? err = dev->netdev_ops->ndo_fdb_del(ndm, tb, dev, addr, > > > > > -?????????????????????????????? vid); > > > > > +?????????????????????????????? vid, extack); > > > > > ????????? else > > > > > ????????????? err = ndo_dflt_fdb_del(ndm, tb, dev, addr, vid); > > > > > > > > > > -- > > > > > 2.36.0 > > > > > > >