]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-beck.git] / drivers / net / ethernet / intel / ixgbe / ixgbe_main.c
index 68478d6dfa2d4b4e9411979d7e3ff557a70db5c3..1339932f59b151c187865f5836c92db10bf4aded 100644 (file)
@@ -3891,7 +3891,7 @@ static void ixgbe_configure_pb(struct ixgbe_adapter *adapter)
 static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter)
 {
        struct ixgbe_hw *hw = &adapter->hw;
-       struct hlist_node *node, *node2;
+       struct hlist_node *node2;
        struct ixgbe_fdir_filter *filter;
 
        spin_lock(&adapter->fdir_perfect_lock);
@@ -3899,7 +3899,7 @@ static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter)
        if (!hlist_empty(&adapter->fdir_filter_list))
                ixgbe_fdir_set_input_mask_82599(hw, &adapter->fdir_mask);
 
-       hlist_for_each_entry_safe(filter, node, node2,
+       hlist_for_each_entry_safe(filter, node2,
                                  &adapter->fdir_filter_list, fdir_node) {
                ixgbe_fdir_write_perfect_filter_82599(hw,
                                &filter->filter,
@@ -4356,12 +4356,12 @@ static void ixgbe_clean_all_tx_rings(struct ixgbe_adapter *adapter)
 
 static void ixgbe_fdir_filter_exit(struct ixgbe_adapter *adapter)
 {
-       struct hlist_node *node, *node2;
+       struct hlist_node *node2;
        struct ixgbe_fdir_filter *filter;
 
        spin_lock(&adapter->fdir_perfect_lock);
 
-       hlist_for_each_entry_safe(filter, node, node2,
+       hlist_for_each_entry_safe(filter, node2,
                                  &adapter->fdir_filter_list, fdir_node) {
                hlist_del(&filter->fdir_node);
                kfree(filter);
@@ -7007,7 +7007,7 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
        int err;
 
        if (!(adapter->flags & IXGBE_FLAG_SRIOV_ENABLED))
-               return -EOPNOTSUPP;
+               return ndo_dflt_fdb_add(ndm, tb, dev, addr, flags);
 
        /* Hardware does not support aging addresses so if a
         * ndm_state is given only allow permanent addresses
@@ -7038,44 +7038,6 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
        return err;
 }
 
-static int ixgbe_ndo_fdb_del(struct ndmsg *ndm, struct nlattr *tb[],
-                            struct net_device *dev,
-                            const unsigned char *addr)
-{
-       struct ixgbe_adapter *adapter = netdev_priv(dev);
-       int err = -EOPNOTSUPP;
-
-       if (ndm->ndm_state & NUD_PERMANENT) {
-               pr_info("%s: FDB only supports static addresses\n",
-                       ixgbe_driver_name);
-               return -EINVAL;
-       }
-
-       if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) {
-               if (is_unicast_ether_addr(addr))
-                       err = dev_uc_del(dev, addr);
-               else if (is_multicast_ether_addr(addr))
-                       err = dev_mc_del(dev, addr);
-               else
-                       err = -EINVAL;
-       }
-
-       return err;
-}
-
-static int ixgbe_ndo_fdb_dump(struct sk_buff *skb,
-                             struct netlink_callback *cb,
-                             struct net_device *dev,
-                             int idx)
-{
-       struct ixgbe_adapter *adapter = netdev_priv(dev);
-
-       if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED)
-               idx = ndo_dflt_fdb_dump(skb, cb, dev, idx);
-
-       return idx;
-}
-
 static int ixgbe_ndo_bridge_setlink(struct net_device *dev,
                                    struct nlmsghdr *nlh)
 {
@@ -7171,8 +7133,6 @@ static const struct net_device_ops ixgbe_netdev_ops = {
        .ndo_set_features = ixgbe_set_features,
        .ndo_fix_features = ixgbe_fix_features,
        .ndo_fdb_add            = ixgbe_ndo_fdb_add,
-       .ndo_fdb_del            = ixgbe_ndo_fdb_del,
-       .ndo_fdb_dump           = ixgbe_ndo_fdb_dump,
        .ndo_bridge_setlink     = ixgbe_ndo_bridge_setlink,
        .ndo_bridge_getlink     = ixgbe_ndo_bridge_getlink,
 };
@@ -7922,12 +7882,19 @@ static int __init ixgbe_init_module(void)
        ixgbe_dbg_init();
 #endif /* CONFIG_DEBUG_FS */
 
+       ret = pci_register_driver(&ixgbe_driver);
+       if (ret) {
+#ifdef CONFIG_DEBUG_FS
+               ixgbe_dbg_exit();
+#endif /* CONFIG_DEBUG_FS */
+               return ret;
+       }
+
 #ifdef CONFIG_IXGBE_DCA
        dca_register_notify(&dca_notifier);
 #endif
 
-       ret = pci_register_driver(&ixgbe_driver);
-       return ret;
+       return 0;
 }
 
 module_init(ixgbe_init_module);