pf->hw.mac.port_addr);
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
                dev_info(&pf->pdev->dev,
-                        "    mac_filter_list: %pM vid=%d, is_netdev=%d is_vf=%d counter=%d, state %s\n",
-                        f->macaddr, f->vlan, f->is_netdev, f->is_vf,
-                        f->counter, i40e_filter_state_string[f->state]);
+                        "    mac_filter_hash: %pM vid=%d, state %s\n",
+                        f->macaddr, f->vlan,
+                        i40e_filter_state_string[f->state]);
        }
        dev_info(&pf->pdev->dev, "    active_filters %d, promisc_threshold %d, overflow promisc %s\n",
                 vsi->active_filters, vsi->promisc_threshold,
 
                dev_info(&pf->pdev->dev, "deleting relay %d\n", veb_seid);
                i40e_veb_release(pf->veb[i]);
-
-       } else if (strncmp(cmd_buf, "add macaddr", 11) == 0) {
-               struct i40e_mac_filter *f;
-               int vlan = 0;
-               u8 ma[6];
-               int ret;
-
-               cnt = sscanf(&cmd_buf[11],
-                            "%i %hhx:%hhx:%hhx:%hhx:%hhx:%hhx %i",
-                            &vsi_seid,
-                            &ma[0], &ma[1], &ma[2], &ma[3], &ma[4], &ma[5],
-                            &vlan);
-               if (cnt == 7) {
-                       vlan = 0;
-               } else if (cnt != 8) {
-                       dev_info(&pf->pdev->dev,
-                                "add macaddr: bad command string, cnt=%d\n",
-                                cnt);
-                       goto command_write_done;
-               }
-
-               vsi = i40e_dbg_find_vsi(pf, vsi_seid);
-               if (!vsi) {
-                       dev_info(&pf->pdev->dev,
-                                "add macaddr: VSI %d not found\n", vsi_seid);
-                       goto command_write_done;
-               }
-
-               spin_lock_bh(&vsi->mac_filter_list_lock);
-               f = i40e_add_filter(vsi, ma, vlan, false, false);
-               spin_unlock_bh(&vsi->mac_filter_list_lock);
-               ret = i40e_sync_vsi_filters(vsi);
-               if (f && !ret)
-                       dev_info(&pf->pdev->dev,
-                                "add macaddr: %pM vlan=%d added to VSI %d\n",
-                                ma, vlan, vsi_seid);
-               else
-                       dev_info(&pf->pdev->dev,
-                                "add macaddr: %pM vlan=%d to VSI %d failed, f=%p ret=%d\n",
-                                ma, vlan, vsi_seid, f, ret);
-
-       } else if (strncmp(cmd_buf, "del macaddr", 11) == 0) {
-               int vlan = 0;
-               u8 ma[6];
-               int ret;
-
-               cnt = sscanf(&cmd_buf[11],
-                            "%i %hhx:%hhx:%hhx:%hhx:%hhx:%hhx %i",
-                            &vsi_seid,
-                            &ma[0], &ma[1], &ma[2], &ma[3], &ma[4], &ma[5],
-                            &vlan);
-               if (cnt == 7) {
-                       vlan = 0;
-               } else if (cnt != 8) {
-                       dev_info(&pf->pdev->dev,
-                                "del macaddr: bad command string, cnt=%d\n",
-                                cnt);
-                       goto command_write_done;
-               }
-
-               vsi = i40e_dbg_find_vsi(pf, vsi_seid);
-               if (!vsi) {
-                       dev_info(&pf->pdev->dev,
-                                "del macaddr: VSI %d not found\n", vsi_seid);
-                       goto command_write_done;
-               }
-
-               spin_lock_bh(&vsi->mac_filter_list_lock);
-               i40e_del_filter(vsi, ma, vlan, false, false);
-               spin_unlock_bh(&vsi->mac_filter_list_lock);
-               ret = i40e_sync_vsi_filters(vsi);
-               if (!ret)
-                       dev_info(&pf->pdev->dev,
-                                "del macaddr: %pM vlan=%d removed from VSI %d\n",
-                                ma, vlan, vsi_seid);
-               else
-                       dev_info(&pf->pdev->dev,
-                                "del macaddr: %pM vlan=%d from VSI %d failed, ret=%d\n",
-                                ma, vlan, vsi_seid, ret);
-
        } else if (strncmp(cmd_buf, "add pvid", 8) == 0) {
                i40e_status ret;
                u16 vid;
                dev_info(&pf->pdev->dev, "  del vsi [vsi_seid]\n");
                dev_info(&pf->pdev->dev, "  add relay <uplink_seid> <vsi_seid>\n");
                dev_info(&pf->pdev->dev, "  del relay <relay_seid>\n");
-               dev_info(&pf->pdev->dev, "  add macaddr <vsi_seid> <aa:bb:cc:dd:ee:ff> [vlan]\n");
-               dev_info(&pf->pdev->dev, "  del macaddr <vsi_seid> <aa:bb:cc:dd:ee:ff> [vlan]\n");
                dev_info(&pf->pdev->dev, "  add pvid <vsi_seid> <vid>\n");
                dev_info(&pf->pdev->dev, "  del pvid <vsi_seid>\n");
                dev_info(&pf->pdev->dev, "  dump switch\n");
 
  * @vsi: the VSI to be searched
  * @macaddr: the MAC address
  * @vlan: the vlan
- * @is_vf: make sure its a VF filter, else doesn't matter
- * @is_netdev: make sure its a netdev filter, else doesn't matter
  *
  * Returns ptr to the filter object or NULL
  **/
 static struct i40e_mac_filter *i40e_find_filter(struct i40e_vsi *vsi,
-                                               u8 *macaddr, s16 vlan,
-                                               bool is_vf, bool is_netdev)
+                                               u8 *macaddr, s16 vlan)
 {
        struct i40e_mac_filter *f;
 
 
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
                if ((ether_addr_equal(macaddr, f->macaddr)) &&
-                   (vlan == f->vlan)    &&
-                   (!is_vf || f->is_vf) &&
-                   (!is_netdev || f->is_netdev))
+                   (vlan == f->vlan))
                        return f;
        }
        return NULL;
  * i40e_find_mac - Find a mac addr in the macvlan filters list
  * @vsi: the VSI to be searched
  * @macaddr: the MAC address we are searching for
- * @is_vf: make sure its a VF filter, else doesn't matter
- * @is_netdev: make sure its a netdev filter, else doesn't matter
  *
  * Returns the first filter with the provided MAC address or NULL if
  * MAC address was not found
  **/
-struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr,
-                                     bool is_vf, bool is_netdev)
+struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr)
 {
        struct i40e_mac_filter *f;
 
                return NULL;
 
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
-               if ((ether_addr_equal(macaddr, f->macaddr)) &&
-                   (!is_vf || f->is_vf) &&
-                   (!is_netdev || f->is_netdev))
+               if ((ether_addr_equal(macaddr, f->macaddr)))
                        return f;
        }
        return NULL;
  * i40e_put_mac_in_vlan - Make macvlan filters from macaddrs and vlans
  * @vsi: the VSI to be searched
  * @macaddr: the mac address to be filtered
- * @is_vf: true if it is a VF
- * @is_netdev: true if it is a netdev
  *
  * Goes through all the macvlan filters and adds a
  * macvlan filter for each unique vlan that already exists
  *
  * Returns first filter found on success, else NULL
  **/
-struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr,
-                                            bool is_vf, bool is_netdev)
+struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr)
 {
        struct i40e_mac_filter *f;
 
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
                if (vsi->info.pvid)
                        f->vlan = le16_to_cpu(vsi->info.pvid);
-               if (!i40e_find_filter(vsi, macaddr, f->vlan,
-                                     is_vf, is_netdev)) {
-                       if (!i40e_add_filter(vsi, macaddr, f->vlan,
-                                            is_vf, is_netdev))
+               if (!i40e_find_filter(vsi, macaddr, f->vlan)) {
+                       if (!i40e_add_filter(vsi, macaddr, f->vlan))
                                return NULL;
                }
        }
  * i40e_del_mac_all_vlan - Remove a MAC filter from all VLANS
  * @vsi: the VSI to be searched
  * @macaddr: the mac address to be removed
- * @is_vf: true if it is a VF
- * @is_netdev: true if it is a netdev
  *
  * Removes a given MAC address from a VSI, regardless of VLAN
  *
  * Returns 0 for success, or error
  **/
-int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,
-                         bool is_vf, bool is_netdev)
+int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr)
 {
        struct i40e_mac_filter *f = NULL;
        int changed = 0;
        WARN(!spin_is_locked(&vsi->mac_filter_list_lock),
             "Missing mac_filter_list_lock\n");
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
-               if ((ether_addr_equal(macaddr, f->macaddr)) &&
-                   (is_vf == f->is_vf) &&
-                   (is_netdev == f->is_netdev)) {
-                       f->counter--;
-                       changed = 1;
-                       if (f->counter == 0)
-                               f->state = I40E_FILTER_REMOVE;
+               if ((ether_addr_equal(macaddr, f->macaddr))) {
+                       f->state = I40E_FILTER_REMOVE;
                }
        }
        if (changed) {
  * @vsi: the VSI to be searched
  * @macaddr: the MAC address
  * @vlan: the vlan
- * @is_vf: make sure its a VF filter, else doesn't matter
- * @is_netdev: make sure its a netdev filter, else doesn't matter
  *
  * Returns ptr to the filter object or NULL when no memory available.
  *
  * being held.
  **/
 struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,
-                                       u8 *macaddr, s16 vlan,
-                                       bool is_vf, bool is_netdev)
+                                       u8 *macaddr, s16 vlan)
 {
        struct i40e_mac_filter *f;
-       int changed = false;
 
        if (!vsi || !macaddr)
                return NULL;
        if (is_broadcast_ether_addr(macaddr))
                return NULL;
 
-       f = i40e_find_filter(vsi, macaddr, vlan, is_vf, is_netdev);
+       f = i40e_find_filter(vsi, macaddr, vlan);
        if (!f) {
                f = kzalloc(sizeof(*f), GFP_ATOMIC);
                if (!f)
-                       goto add_filter_out;
+                       return NULL;
 
                ether_addr_copy(f->macaddr, macaddr);
                f->vlan = vlan;
                        f->state = I40E_FILTER_FAILED;
                else
                        f->state = I40E_FILTER_NEW;
-               changed = true;
                INIT_LIST_HEAD(&f->list);
                list_add_tail(&f->list, &vsi->mac_filter_list);
-       }
-
-       /* increment counter and add a new flag if needed */
-       if (is_vf) {
-               if (!f->is_vf) {
-                       f->is_vf = true;
-                       f->counter++;
-               }
-       } else if (is_netdev) {
-               if (!f->is_netdev) {
-                       f->is_netdev = true;
-                       f->counter++;
-               }
-       } else {
-               f->counter++;
-       }
 
-       if (changed) {
                vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
                vsi->back->flags |= I40E_FLAG_FILTER_SYNC;
        }
 
-add_filter_out:
+       /* If we're asked to add a filter that has been marked for removal, it
+        * is safe to simply restore it to active state. __i40e_del_filter
+        * will have simply deleted any filters which were previously marked
+        * NEW or FAILED, so if it is currently marked REMOVE it must have
+        * previously been ACTIVE. Since we haven't yet run the sync filters
+        * task, just restore this filter to the ACTIVE state so that the
+        * sync task leaves it in place
+        */
+       if (f->state == I40E_FILTER_REMOVE)
+               f->state = I40E_FILTER_ACTIVE;
+
        return f;
 }
 
  * @vsi: the VSI to be searched
  * @macaddr: the MAC address
  * @vlan: the vlan
- * @is_vf: make sure it's a VF filter, else doesn't matter
- * @is_netdev: make sure it's a netdev filter, else doesn't matter
  *
  * NOTE: This function is expected to be called with mac_filter_list_lock
  * being held.
  * the "safe" variants of any list iterators, e.g. list_for_each_entry_safe()
  * instead of list_for_each_entry().
  **/
-void i40e_del_filter(struct i40e_vsi *vsi,
-                    u8 *macaddr, s16 vlan,
-                    bool is_vf, bool is_netdev)
+void i40e_del_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan)
 {
        struct i40e_mac_filter *f;
 
        if (!vsi || !macaddr)
                return;
 
-       f = i40e_find_filter(vsi, macaddr, vlan, is_vf, is_netdev);
-       if (!f || f->counter == 0)
+       f = i40e_find_filter(vsi, macaddr, vlan);
+       if (!f)
                return;
 
-       if (is_vf) {
-               if (f->is_vf) {
-                       f->is_vf = false;
-                       f->counter--;
-               }
-       } else if (is_netdev) {
-               if (f->is_netdev) {
-                       f->is_netdev = false;
-                       f->counter--;
-               }
+       if ((f->state == I40E_FILTER_FAILED) ||
+           (f->state == I40E_FILTER_NEW)) {
+               /* this one never got added by the FW. Just remove it,
+                * no need to sync anything.
+                */
+               list_del(&f->list);
+               kfree(f);
        } else {
-               /* make sure we don't remove a filter in use by VF or netdev */
-               int min_f = 0;
-
-               min_f += (f->is_vf ? 1 : 0);
-               min_f += (f->is_netdev ? 1 : 0);
-
-               if (f->counter > min_f)
-                       f->counter--;
-       }
-
-       /* counter == 0 tells sync_filters_subtask to
-        * remove the filter from the firmware's list
-        */
-       if (f->counter == 0) {
-               if ((f->state == I40E_FILTER_FAILED) ||
-                   (f->state == I40E_FILTER_NEW)) {
-                       /* this one never got added by the FW. Just remove it,
-                        * no need to sync anything.
-                        */
-                       list_del(&f->list);
-                       kfree(f);
-               } else {
-                       f->state = I40E_FILTER_REMOVE;
-                       vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
-                       vsi->back->flags |= I40E_FLAG_FILTER_SYNC;
-               }
+               f->state = I40E_FILTER_REMOVE;
+               vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
+               vsi->back->flags |= I40E_FLAG_FILTER_SYNC;
        }
 }
 
                netdev_info(netdev, "set new mac address %pM\n", addr->sa_data);
 
        spin_lock_bh(&vsi->mac_filter_list_lock);
-       i40e_del_mac_all_vlan(vsi, netdev->dev_addr, false, true);
-       i40e_put_mac_in_vlan(vsi, addr->sa_data, false, true);
+       i40e_del_mac_all_vlan(vsi, netdev->dev_addr);
+       i40e_put_mac_in_vlan(vsi, addr->sa_data);
        spin_unlock_bh(&vsi->mac_filter_list_lock);
        ether_addr_copy(netdev->dev_addr, addr->sa_data);
        if (vsi->type == I40E_VSI_MAIN) {
 
        /* add addr if not already in the filter list */
        netdev_for_each_uc_addr(uca, netdev) {
-               if (!i40e_find_mac(vsi, uca->addr, false, true)) {
+               if (!i40e_find_mac(vsi, uca->addr)) {
                        if (i40e_is_vsi_in_vlan(vsi))
-                               i40e_put_mac_in_vlan(vsi, uca->addr,
-                                                    false, true);
+                               i40e_put_mac_in_vlan(vsi, uca->addr);
                        else
-                               i40e_add_filter(vsi, uca->addr, I40E_VLAN_ANY,
-                                               false, true);
+                               i40e_add_filter(vsi, uca->addr, I40E_VLAN_ANY);
                }
        }
 
        netdev_for_each_mc_addr(mca, netdev) {
-               if (!i40e_find_mac(vsi, mca->addr, false, true)) {
+               if (!i40e_find_mac(vsi, mca->addr)) {
                        if (i40e_is_vsi_in_vlan(vsi))
-                               i40e_put_mac_in_vlan(vsi, mca->addr,
-                                                    false, true);
+                               i40e_put_mac_in_vlan(vsi, mca->addr);
                        else
-                               i40e_add_filter(vsi, mca->addr, I40E_VLAN_ANY,
-                                               false, true);
+                               i40e_add_filter(vsi, mca->addr, I40E_VLAN_ANY);
                }
        }
 
        /* remove filter if not in netdev list */
        list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {
 
-               if (!f->is_netdev)
-                       continue;
-
                netdev_for_each_mc_addr(mca, netdev)
                        if (ether_addr_equal(mca->addr, f->macaddr))
                                goto bottom_of_search_loop;
                                goto bottom_of_search_loop;
 
                /* f->macaddr wasn't found in uc, mc, or ha list so delete it */
-               i40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY, false, true);
+               i40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY);
 
 bottom_of_search_loop:
                continue;
                /* Create a list of filters to delete. */
                list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {
                        if (f->state == I40E_FILTER_REMOVE) {
-                               WARN_ON(f->counter != 0);
                                /* Move the element into temporary del_list */
                                list_move_tail(&f->list, &tmp_del_list);
                                vsi->active_filters--;
                        }
                        if (f->state == I40E_FILTER_NEW) {
-                               WARN_ON(f->counter == 0);
                                /* Move the element into temporary add_list */
                                list_move_tail(&f->list, &tmp_add_list);
                        }
 int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)
 {
        struct i40e_mac_filter *f, *ftmp, *add_f;
-       bool is_netdev, is_vf;
-
-       is_vf = (vsi->type == I40E_VSI_SRIOV);
-       is_netdev = !!(vsi->netdev);
 
        /* Locked once because all functions invoked below iterates list*/
        spin_lock_bh(&vsi->mac_filter_list_lock);
 
-       if (is_netdev) {
-               add_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, vid,
-                                       is_vf, is_netdev);
+       if (vsi->netdev) {
+               add_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, vid);
                if (!add_f) {
                        dev_info(&vsi->back->pdev->dev,
                                 "Could not add vlan filter %d for %pM\n",
        }
 
        list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {
-               add_f = i40e_add_filter(vsi, f->macaddr, vid, is_vf, is_netdev);
+               add_f = i40e_add_filter(vsi, f->macaddr, vid);
                if (!add_f) {
                        dev_info(&vsi->back->pdev->dev,
                                 "Could not add vlan filter %d for %pM\n",
         * (and not all tags along with untagged)
         */
        if (vid > 0) {
-               if (is_netdev && i40e_find_filter(vsi, vsi->netdev->dev_addr,
-                                                 I40E_VLAN_ANY,
-                                                 is_vf, is_netdev)) {
+               if (vsi->netdev && i40e_find_filter(vsi, vsi->netdev->dev_addr,
+                                                   I40E_VLAN_ANY)) {
                        i40e_del_filter(vsi, vsi->netdev->dev_addr,
-                                       I40E_VLAN_ANY, is_vf, is_netdev);
-                       add_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, 0,
-                                               is_vf, is_netdev);
+                                       I40E_VLAN_ANY);
+                       add_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, 0);
                        if (!add_f) {
                                dev_info(&vsi->back->pdev->dev,
                                         "Could not add filter 0 for %pM\n",
        /* Do not assume that I40E_VLAN_ANY should be reset to VLAN 0 */
        if (vid > 0 && !vsi->info.pvid) {
                list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {
-                       if (!i40e_find_filter(vsi, f->macaddr, I40E_VLAN_ANY,
-                                             is_vf, is_netdev))
+                       if (!i40e_find_filter(vsi, f->macaddr, I40E_VLAN_ANY))
                                continue;
-                       i40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY,
-                                       is_vf, is_netdev);
-                       add_f = i40e_add_filter(vsi, f->macaddr,
-                                               0, is_vf, is_netdev);
+                       i40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY);
+                       add_f = i40e_add_filter(vsi, f->macaddr, 0);
                        if (!add_f) {
                                dev_info(&vsi->back->pdev->dev,
                                         "Could not add filter 0 for %pM\n",
 {
        struct net_device *netdev = vsi->netdev;
        struct i40e_mac_filter *f, *ftmp, *add_f;
-       bool is_vf, is_netdev;
        int filter_count = 0;
 
-       is_vf = (vsi->type == I40E_VSI_SRIOV);
-       is_netdev = !!(netdev);
-
        /* Locked once because all functions invoked below iterates list */
        spin_lock_bh(&vsi->mac_filter_list_lock);
 
-       if (is_netdev)
-               i40e_del_filter(vsi, netdev->dev_addr, vid, is_vf, is_netdev);
+       if (vsi->netdev)
+               i40e_del_filter(vsi, netdev->dev_addr, vid);
 
        list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list)
-               i40e_del_filter(vsi, f->macaddr, vid, is_vf, is_netdev);
+               i40e_del_filter(vsi, f->macaddr, vid);
 
        /* go through all the filters for this VSI and if there is only
         * vid == 0 it means there are no other filters, so vid 0 must
         * on accept any traffic (with any tag present, or untagged)
         */
        list_for_each_entry(f, &vsi->mac_filter_list, list) {
-               if (is_netdev) {
+               if (vsi->netdev) {
                        if (f->vlan &&
                            ether_addr_equal(netdev->dev_addr, f->macaddr))
                                filter_count++;
                        filter_count++;
        }
 
-       if (!filter_count && is_netdev) {
-               i40e_del_filter(vsi, netdev->dev_addr, 0, is_vf, is_netdev);
-               f = i40e_add_filter(vsi, netdev->dev_addr, I40E_VLAN_ANY,
-                                   is_vf, is_netdev);
+       if (!filter_count && vsi->netdev) {
+               i40e_del_filter(vsi, netdev->dev_addr, 0);
+               f = i40e_add_filter(vsi, netdev->dev_addr, I40E_VLAN_ANY);
                if (!f) {
                        dev_info(&vsi->back->pdev->dev,
                                 "Could not add filter %d for %pM\n",
 
        if (!filter_count) {
                list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {
-                       i40e_del_filter(vsi, f->macaddr, 0, is_vf, is_netdev);
-                       add_f = i40e_add_filter(vsi, f->macaddr, I40E_VLAN_ANY,
-                                               is_vf, is_netdev);
+                       i40e_del_filter(vsi, f->macaddr, 0);
+                       add_f = i40e_add_filter(vsi, f->macaddr, I40E_VLAN_ANY);
                        if (!add_f) {
                                dev_info(&vsi->back->pdev->dev,
                                         "Could not add filter %d for %pM\n",
                SET_NETDEV_DEV(netdev, &pf->pdev->dev);
                ether_addr_copy(mac_addr, hw->mac.perm_addr);
                spin_lock_bh(&vsi->mac_filter_list_lock);
-               i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, true);
+               i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY);
                spin_unlock_bh(&vsi->mac_filter_list_lock);
        } else {
                /* relate the VSI_VMDQ name to the VSI_MAIN name */
                random_ether_addr(mac_addr);
 
                spin_lock_bh(&vsi->mac_filter_list_lock);
-               i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, false);
+               i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY);
                spin_unlock_bh(&vsi->mac_filter_list_lock);
        }
 
 
        spin_lock_bh(&vsi->mac_filter_list_lock);
        list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list)
-               i40e_del_filter(vsi, f->macaddr, f->vlan,
-                               f->is_vf, f->is_netdev);
+               i40e_del_filter(vsi, f->macaddr, f->vlan);
        spin_unlock_bh(&vsi->mac_filter_list_lock);
 
        i40e_sync_vsi_filters(vsi);