net: Disallow providing non zero VLAN ID for NIC drivers FDB add flow
authorOr Gerlitz <ogerlitz@mellanox.com>
Sun, 14 Dec 2014 16:19:05 +0000 (18:19 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Dec 2014 20:41:19 +0000 (15:41 -0500)
The current implementations all use dev_uc_add_excl() and such whose API
doesn't support vlans, so we can't make it with NICs HW for now.

Fixes: f6f6424ba773 ('net: make vid as a parameter for ndo_fdb_add/ndo_fdb_del')
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/i40e/i40e_main.c
net/core/rtnetlink.c

index 0a7ea4c..a5f2660 100644 (file)
@@ -7549,6 +7549,11 @@ static int i40e_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
        if (!(pf->flags & I40E_FLAG_SRIOV_ENABLED))
                return -EOPNOTSUPP;
 
+       if (vid) {
+               pr_info("%s: vlans aren't supported yet for dev_uc|mc_add()\n", dev->name);
+               return -EINVAL;
+       }
+
        /* Hardware does not support aging addresses so if a
         * ndm_state is given only allow permanent addresses
         */
index d06107d..9cf6fe9 100644 (file)
@@ -2368,6 +2368,11 @@ int ndo_dflt_fdb_add(struct ndmsg *ndm,
                return err;
        }
 
+       if (vid) {
+               pr_info("%s: vlans aren't supported yet for dev_uc|mc_add()\n", dev->name);
+               return err;
+       }
+
        if (is_unicast_ether_addr(addr) || is_link_local_ether_addr(addr))
                err = dev_uc_add_excl(dev, addr);
        else if (is_multicast_ether_addr(addr))