get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/678518/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 678518,
    "url": "http://patchwork.ozlabs.org/api/patches/678518/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1475685046-16900-2-git-send-email-bimmy.pujari@intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1475685046-16900-2-git-send-email-bimmy.pujari@intel.com>",
    "list_archive_url": null,
    "date": "2016-10-05T16:30:31",
    "name": "[next,S49-V2,01/15] i40e: drop is_vf and is_netdev fields in struct i40e_mac_filter",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "33ff7700a56a967cbe69165cb3dd7169a64007af",
    "submitter": {
        "id": 68919,
        "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api",
        "name": "Pujari, Bimmy",
        "email": "bimmy.pujari@intel.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1475685046-16900-2-git-send-email-bimmy.pujari@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/678518/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/678518/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Received": [
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3sq1XQ1k9nz9sBR\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  6 Oct 2016 03:32:22 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id AF5AEC237E;\n\tWed,  5 Oct 2016 16:32:20 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id IV0mOmRsjpZb; Wed,  5 Oct 2016 16:32:16 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 1367CC2387;\n\tWed,  5 Oct 2016 16:32:15 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id D06091CE508\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  5 Oct 2016 16:32:11 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id CB1F28B015\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  5 Oct 2016 16:32:11 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id j1mpT6KNIys4 for <intel-wired-lan@lists.osuosl.org>;\n\tWed,  5 Oct 2016 16:32:09 +0000 (UTC)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id B4AFB8B069\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  5 Oct 2016 16:32:09 +0000 (UTC)",
            "from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby fmsmga105.fm.intel.com with ESMTP; 05 Oct 2016 09:32:09 -0700",
            "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.167])\n\tby fmsmga005.fm.intel.com with ESMTP; 05 Oct 2016 09:32:09 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.31,449,1473145200\"; d=\"scan'208\";a=\"16526355\"",
        "From": "Bimmy Pujari <bimmy.pujari@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Wed,  5 Oct 2016 09:30:31 -0700",
        "Message-Id": "<1475685046-16900-2-git-send-email-bimmy.pujari@intel.com>",
        "X-Mailer": "git-send-email 2.4.11",
        "In-Reply-To": "<1475685046-16900-1-git-send-email-bimmy.pujari@intel.com>",
        "References": "<1475685046-16900-1-git-send-email-bimmy.pujari@intel.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S49-V2 01/15] i40e: drop is_vf and\n\tis_netdev fields in struct i40e_mac_filter",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "From: Jacob Keller <jacob.e.keller@intel.com>\n\nOriginally the is_vf and is_netdev fields were added in order to\ndistinguish between VF and netdev filters in a single VSI. However, it\ncan be noted that we use separate VSI for SRIOV VFs and for netdev VSI.\nThus, since a single VSI should only ever have one type of filter, we\ncan simply remove the checks and remove the typing.\n\nIn a similar fashion, we can note that the only remaining way to get\nmultiple filters of a single type is through a debug command that was\nadded to debugfs. This command is useless in practice, and results in\ncausing bugs if we keep counter tracking but lose the is_vf and\nis_netdev protections as desired above.\n\nSince the only time we'd actually have a counter value besides 0 and\n1 is through use of this debugfs hook, we can remove this unnecessary\ncommand, and the entire counter logic it required.\n\nWe vastly simplify mac filters by removing\n\n(a) the distinction between vf and netdev filters\n(b) counting logic\n(c) the ability to add and remove filters bypassing the stack via debugfs\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\nChange-ID: Idf916dd2a1159b1188ddbab5bef6b85ea6bf27d9\n---\nTesting-hints:\n  Should test add and remove of various filters with high frequency.\n  Ensure that debugfs cannot add or remove filters any more.\n\n drivers/net/ethernet/intel/i40e/i40e.h             |  19 +-\n drivers/net/ethernet/intel/i40e/i40e_debugfs.c     |  88 +-------\n drivers/net/ethernet/intel/i40e/i40e_fcoe.c        |   8 +-\n drivers/net/ethernet/intel/i40e/i40e_main.c        | 227 ++++++---------------\n drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |  19 +-\n 5 files changed, 89 insertions(+), 272 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex 5a6f851..8445591 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -458,9 +458,6 @@ struct i40e_mac_filter {\n \tu8 macaddr[ETH_ALEN];\n #define I40E_VLAN_ANY -1\n \ts16 vlan;\n-\tu8 counter;\t\t/* number of instances of this filter */\n-\tbool is_vf;\t\t/* filter belongs to a VF */\n-\tbool is_netdev;\t\t/* filter belongs to a netdev */\n \tenum i40e_filter_state state;\n };\n \n@@ -723,10 +720,8 @@ u32 i40e_get_global_fd_count(struct i40e_pf *pf);\n bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features);\n void i40e_set_ethtool_ops(struct net_device *netdev);\n struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,\n-\t\t\t\t\tu8 *macaddr, s16 vlan,\n-\t\t\t\t\tbool is_vf, bool is_netdev);\n-void i40e_del_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan,\n-\t\t     bool is_vf, bool is_netdev);\n+\t\t\t\t\tu8 *macaddr, s16 vlan);\n+void i40e_del_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan);\n int i40e_sync_vsi_filters(struct i40e_vsi *vsi);\n struct i40e_vsi *i40e_vsi_setup(struct i40e_pf *pf, u8 type,\n \t\t\t\tu16 uplink, u32 param1);\n@@ -817,13 +812,11 @@ int i40e_vsi_open(struct i40e_vsi *vsi);\n void i40e_vlan_stripping_disable(struct i40e_vsi *vsi);\n int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid);\n int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid);\n-struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t\t\t     bool is_vf, bool is_netdev);\n-int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t  bool is_vf, bool is_netdev);\n+struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi,\n+\t\t\t\t\t     u8 *macaddr);\n+int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr);\n bool i40e_is_vsi_in_vlan(struct i40e_vsi *vsi);\n-struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t\t      bool is_vf, bool is_netdev);\n+struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr);\n #ifdef I40E_FCOE\n int __i40e_setup_tc(struct net_device *netdev, u32 handle, __be16 proto,\n \t\t    struct tc_to_netdev *tc);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c\nindex 0354632..8f6ed8d 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c\n@@ -168,9 +168,9 @@ static void i40e_dbg_dump_vsi_seid(struct i40e_pf *pf, int seid)\n \t\t\t pf->hw.mac.port_addr);\n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"    mac_filter_list: %pM vid=%d, is_netdev=%d is_vf=%d counter=%d, state %s\\n\",\n-\t\t\t f->macaddr, f->vlan, f->is_netdev, f->is_vf,\n-\t\t\t f->counter, i40e_filter_state_string[f->state]);\n+\t\t\t \"    mac_filter_hash: %pM vid=%d, state %s\\n\",\n+\t\t\t f->macaddr, f->vlan,\n+\t\t\t i40e_filter_state_string[f->state]);\n \t}\n \tdev_info(&pf->pdev->dev, \"    active_filters %d, promisc_threshold %d, overflow promisc %s\\n\",\n \t\t vsi->active_filters, vsi->promisc_threshold,\n@@ -867,86 +867,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,\n \n \t\tdev_info(&pf->pdev->dev, \"deleting relay %d\\n\", veb_seid);\n \t\ti40e_veb_release(pf->veb[i]);\n-\n-\t} else if (strncmp(cmd_buf, \"add macaddr\", 11) == 0) {\n-\t\tstruct i40e_mac_filter *f;\n-\t\tint vlan = 0;\n-\t\tu8 ma[6];\n-\t\tint ret;\n-\n-\t\tcnt = sscanf(&cmd_buf[11],\n-\t\t\t     \"%i %hhx:%hhx:%hhx:%hhx:%hhx:%hhx %i\",\n-\t\t\t     &vsi_seid,\n-\t\t\t     &ma[0], &ma[1], &ma[2], &ma[3], &ma[4], &ma[5],\n-\t\t\t     &vlan);\n-\t\tif (cnt == 7) {\n-\t\t\tvlan = 0;\n-\t\t} else if (cnt != 8) {\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"add macaddr: bad command string, cnt=%d\\n\",\n-\t\t\t\t cnt);\n-\t\t\tgoto command_write_done;\n-\t\t}\n-\n-\t\tvsi = i40e_dbg_find_vsi(pf, vsi_seid);\n-\t\tif (!vsi) {\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"add macaddr: VSI %d not found\\n\", vsi_seid);\n-\t\t\tgoto command_write_done;\n-\t\t}\n-\n-\t\tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\t\tf = i40e_add_filter(vsi, ma, vlan, false, false);\n-\t\tspin_unlock_bh(&vsi->mac_filter_list_lock);\n-\t\tret = i40e_sync_vsi_filters(vsi);\n-\t\tif (f && !ret)\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"add macaddr: %pM vlan=%d added to VSI %d\\n\",\n-\t\t\t\t ma, vlan, vsi_seid);\n-\t\telse\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"add macaddr: %pM vlan=%d to VSI %d failed, f=%p ret=%d\\n\",\n-\t\t\t\t ma, vlan, vsi_seid, f, ret);\n-\n-\t} else if (strncmp(cmd_buf, \"del macaddr\", 11) == 0) {\n-\t\tint vlan = 0;\n-\t\tu8 ma[6];\n-\t\tint ret;\n-\n-\t\tcnt = sscanf(&cmd_buf[11],\n-\t\t\t     \"%i %hhx:%hhx:%hhx:%hhx:%hhx:%hhx %i\",\n-\t\t\t     &vsi_seid,\n-\t\t\t     &ma[0], &ma[1], &ma[2], &ma[3], &ma[4], &ma[5],\n-\t\t\t     &vlan);\n-\t\tif (cnt == 7) {\n-\t\t\tvlan = 0;\n-\t\t} else if (cnt != 8) {\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"del macaddr: bad command string, cnt=%d\\n\",\n-\t\t\t\t cnt);\n-\t\t\tgoto command_write_done;\n-\t\t}\n-\n-\t\tvsi = i40e_dbg_find_vsi(pf, vsi_seid);\n-\t\tif (!vsi) {\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"del macaddr: VSI %d not found\\n\", vsi_seid);\n-\t\t\tgoto command_write_done;\n-\t\t}\n-\n-\t\tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\t\ti40e_del_filter(vsi, ma, vlan, false, false);\n-\t\tspin_unlock_bh(&vsi->mac_filter_list_lock);\n-\t\tret = i40e_sync_vsi_filters(vsi);\n-\t\tif (!ret)\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"del macaddr: %pM vlan=%d removed from VSI %d\\n\",\n-\t\t\t\t ma, vlan, vsi_seid);\n-\t\telse\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"del macaddr: %pM vlan=%d from VSI %d failed, ret=%d\\n\",\n-\t\t\t\t ma, vlan, vsi_seid, ret);\n-\n \t} else if (strncmp(cmd_buf, \"add pvid\", 8) == 0) {\n \t\ti40e_status ret;\n \t\tu16 vid;\n@@ -1615,8 +1535,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,\n \t\tdev_info(&pf->pdev->dev, \"  del vsi [vsi_seid]\\n\");\n \t\tdev_info(&pf->pdev->dev, \"  add relay <uplink_seid> <vsi_seid>\\n\");\n \t\tdev_info(&pf->pdev->dev, \"  del relay <relay_seid>\\n\");\n-\t\tdev_info(&pf->pdev->dev, \"  add macaddr <vsi_seid> <aa:bb:cc:dd:ee:ff> [vlan]\\n\");\n-\t\tdev_info(&pf->pdev->dev, \"  del macaddr <vsi_seid> <aa:bb:cc:dd:ee:ff> [vlan]\\n\");\n \t\tdev_info(&pf->pdev->dev, \"  add pvid <vsi_seid> <vid>\\n\");\n \t\tdev_info(&pf->pdev->dev, \"  del pvid <vsi_seid>\\n\");\n \t\tdev_info(&pf->pdev->dev, \"  dump switch\\n\");\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_fcoe.c b/drivers/net/ethernet/intel/i40e/i40e_fcoe.c\nindex 58e6c15..0c2a00d 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_fcoe.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_fcoe.c\n@@ -1523,10 +1523,10 @@ void i40e_fcoe_config_netdev(struct net_device *netdev, struct i40e_vsi *vsi)\n \t */\n \tnetdev->dev_port = 1;\n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\ti40e_add_filter(vsi, hw->mac.san_addr, 0, false, false);\n-\ti40e_add_filter(vsi, (u8[6]) FC_FCOE_FLOGI_MAC, 0, false, false);\n-\ti40e_add_filter(vsi, FIP_ALL_FCOE_MACS, 0, false, false);\n-\ti40e_add_filter(vsi, FIP_ALL_ENODE_MACS, 0, false, false);\n+\ti40e_add_filter(vsi, hw->mac.san_addr, 0);\n+\ti40e_add_filter(vsi, (u8[6]) FC_FCOE_FLOGI_MAC, 0);\n+\ti40e_add_filter(vsi, FIP_ALL_FCOE_MACS, 0);\n+\ti40e_add_filter(vsi, FIP_ALL_ENODE_MACS, 0);\n \tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \n \t/* use san mac */\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 1527ccf..09f855f 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -1145,14 +1145,11 @@ void i40e_update_stats(struct i40e_vsi *vsi)\n  * @vsi: the VSI to be searched\n  * @macaddr: the MAC address\n  * @vlan: the vlan\n- * @is_vf: make sure its a VF filter, else doesn't matter\n- * @is_netdev: make sure its a netdev filter, else doesn't matter\n  *\n  * Returns ptr to the filter object or NULL\n  **/\n static struct i40e_mac_filter *i40e_find_filter(struct i40e_vsi *vsi,\n-\t\t\t\t\t\tu8 *macaddr, s16 vlan,\n-\t\t\t\t\t\tbool is_vf, bool is_netdev)\n+\t\t\t\t\t\tu8 *macaddr, s16 vlan)\n {\n \tstruct i40e_mac_filter *f;\n \n@@ -1161,9 +1158,7 @@ static struct i40e_mac_filter *i40e_find_filter(struct i40e_vsi *vsi,\n \n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n \t\tif ((ether_addr_equal(macaddr, f->macaddr)) &&\n-\t\t    (vlan == f->vlan)    &&\n-\t\t    (!is_vf || f->is_vf) &&\n-\t\t    (!is_netdev || f->is_netdev))\n+\t\t    (vlan == f->vlan))\n \t\t\treturn f;\n \t}\n \treturn NULL;\n@@ -1173,14 +1168,11 @@ static struct i40e_mac_filter *i40e_find_filter(struct i40e_vsi *vsi,\n  * i40e_find_mac - Find a mac addr in the macvlan filters list\n  * @vsi: the VSI to be searched\n  * @macaddr: the MAC address we are searching for\n- * @is_vf: make sure its a VF filter, else doesn't matter\n- * @is_netdev: make sure its a netdev filter, else doesn't matter\n  *\n  * Returns the first filter with the provided MAC address or NULL if\n  * MAC address was not found\n  **/\n-struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t\t      bool is_vf, bool is_netdev)\n+struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr)\n {\n \tstruct i40e_mac_filter *f;\n \n@@ -1188,9 +1180,7 @@ struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr,\n \t\treturn NULL;\n \n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n-\t\tif ((ether_addr_equal(macaddr, f->macaddr)) &&\n-\t\t    (!is_vf || f->is_vf) &&\n-\t\t    (!is_netdev || f->is_netdev))\n+\t\tif ((ether_addr_equal(macaddr, f->macaddr)))\n \t\t\treturn f;\n \t}\n \treturn NULL;\n@@ -1221,26 +1211,21 @@ bool i40e_is_vsi_in_vlan(struct i40e_vsi *vsi)\n  * i40e_put_mac_in_vlan - Make macvlan filters from macaddrs and vlans\n  * @vsi: the VSI to be searched\n  * @macaddr: the mac address to be filtered\n- * @is_vf: true if it is a VF\n- * @is_netdev: true if it is a netdev\n  *\n  * Goes through all the macvlan filters and adds a\n  * macvlan filter for each unique vlan that already exists\n  *\n  * Returns first filter found on success, else NULL\n  **/\n-struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t\t\t     bool is_vf, bool is_netdev)\n+struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr)\n {\n \tstruct i40e_mac_filter *f;\n \n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n \t\tif (vsi->info.pvid)\n \t\t\tf->vlan = le16_to_cpu(vsi->info.pvid);\n-\t\tif (!i40e_find_filter(vsi, macaddr, f->vlan,\n-\t\t\t\t      is_vf, is_netdev)) {\n-\t\t\tif (!i40e_add_filter(vsi, macaddr, f->vlan,\n-\t\t\t\t\t     is_vf, is_netdev))\n+\t\tif (!i40e_find_filter(vsi, macaddr, f->vlan)) {\n+\t\t\tif (!i40e_add_filter(vsi, macaddr, f->vlan))\n \t\t\t\treturn NULL;\n \t\t}\n \t}\n@@ -1253,15 +1238,12 @@ struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n  * i40e_del_mac_all_vlan - Remove a MAC filter from all VLANS\n  * @vsi: the VSI to be searched\n  * @macaddr: the mac address to be removed\n- * @is_vf: true if it is a VF\n- * @is_netdev: true if it is a netdev\n  *\n  * Removes a given MAC address from a VSI, regardless of VLAN\n  *\n  * Returns 0 for success, or error\n  **/\n-int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n-\t\t\t  bool is_vf, bool is_netdev)\n+int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr)\n {\n \tstruct i40e_mac_filter *f = NULL;\n \tint changed = 0;\n@@ -1269,13 +1251,8 @@ int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n \tWARN(!spin_is_locked(&vsi->mac_filter_list_lock),\n \t     \"Missing mac_filter_list_lock\\n\");\n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n-\t\tif ((ether_addr_equal(macaddr, f->macaddr)) &&\n-\t\t    (is_vf == f->is_vf) &&\n-\t\t    (is_netdev == f->is_netdev)) {\n-\t\t\tf->counter--;\n-\t\t\tchanged = 1;\n-\t\t\tif (f->counter == 0)\n-\t\t\t\tf->state = I40E_FILTER_REMOVE;\n+\t\tif ((ether_addr_equal(macaddr, f->macaddr))) {\n+\t\t\tf->state = I40E_FILTER_REMOVE;\n \t\t}\n \t}\n \tif (changed) {\n@@ -1291,8 +1268,6 @@ int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n  * @vsi: the VSI to be searched\n  * @macaddr: the MAC address\n  * @vlan: the vlan\n- * @is_vf: make sure its a VF filter, else doesn't matter\n- * @is_netdev: make sure its a netdev filter, else doesn't matter\n  *\n  * Returns ptr to the filter object or NULL when no memory available.\n  *\n@@ -1300,11 +1275,9 @@ int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,\n  * being held.\n  **/\n struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,\n-\t\t\t\t\tu8 *macaddr, s16 vlan,\n-\t\t\t\t\tbool is_vf, bool is_netdev)\n+\t\t\t\t\tu8 *macaddr, s16 vlan)\n {\n \tstruct i40e_mac_filter *f;\n-\tint changed = false;\n \n \tif (!vsi || !macaddr)\n \t\treturn NULL;\n@@ -1316,11 +1289,11 @@ struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,\n \tif (is_broadcast_ether_addr(macaddr))\n \t\treturn NULL;\n \n-\tf = i40e_find_filter(vsi, macaddr, vlan, is_vf, is_netdev);\n+\tf = i40e_find_filter(vsi, macaddr, vlan);\n \tif (!f) {\n \t\tf = kzalloc(sizeof(*f), GFP_ATOMIC);\n \t\tif (!f)\n-\t\t\tgoto add_filter_out;\n+\t\t\treturn NULL;\n \n \t\tether_addr_copy(f->macaddr, macaddr);\n \t\tf->vlan = vlan;\n@@ -1332,32 +1305,24 @@ struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,\n \t\t\tf->state = I40E_FILTER_FAILED;\n \t\telse\n \t\t\tf->state = I40E_FILTER_NEW;\n-\t\tchanged = true;\n \t\tINIT_LIST_HEAD(&f->list);\n \t\tlist_add_tail(&f->list, &vsi->mac_filter_list);\n-\t}\n-\n-\t/* increment counter and add a new flag if needed */\n-\tif (is_vf) {\n-\t\tif (!f->is_vf) {\n-\t\t\tf->is_vf = true;\n-\t\t\tf->counter++;\n-\t\t}\n-\t} else if (is_netdev) {\n-\t\tif (!f->is_netdev) {\n-\t\t\tf->is_netdev = true;\n-\t\t\tf->counter++;\n-\t\t}\n-\t} else {\n-\t\tf->counter++;\n-\t}\n \n-\tif (changed) {\n \t\tvsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;\n \t\tvsi->back->flags |= I40E_FLAG_FILTER_SYNC;\n \t}\n \n-add_filter_out:\n+\t/* If we're asked to add a filter that has been marked for removal, it\n+\t * is safe to simply restore it to active state. __i40e_del_filter\n+\t * will have simply deleted any filters which were previously marked\n+\t * NEW or FAILED, so if it is currently marked REMOVE it must have\n+\t * previously been ACTIVE. Since we haven't yet run the sync filters\n+\t * task, just restore this filter to the ACTIVE state so that the\n+\t * sync task leaves it in place\n+\t */\n+\tif (f->state == I40E_FILTER_REMOVE)\n+\t\tf->state = I40E_FILTER_ACTIVE;\n+\n \treturn f;\n }\n \n@@ -1366,8 +1331,6 @@ add_filter_out:\n  * @vsi: the VSI to be searched\n  * @macaddr: the MAC address\n  * @vlan: the vlan\n- * @is_vf: make sure it's a VF filter, else doesn't matter\n- * @is_netdev: make sure it's a netdev filter, else doesn't matter\n  *\n  * NOTE: This function is expected to be called with mac_filter_list_lock\n  * being held.\n@@ -1375,56 +1338,28 @@ add_filter_out:\n  * the \"safe\" variants of any list iterators, e.g. list_for_each_entry_safe()\n  * instead of list_for_each_entry().\n  **/\n-void i40e_del_filter(struct i40e_vsi *vsi,\n-\t\t     u8 *macaddr, s16 vlan,\n-\t\t     bool is_vf, bool is_netdev)\n+void i40e_del_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan)\n {\n \tstruct i40e_mac_filter *f;\n \n \tif (!vsi || !macaddr)\n \t\treturn;\n \n-\tf = i40e_find_filter(vsi, macaddr, vlan, is_vf, is_netdev);\n-\tif (!f || f->counter == 0)\n+\tf = i40e_find_filter(vsi, macaddr, vlan);\n+\tif (!f)\n \t\treturn;\n \n-\tif (is_vf) {\n-\t\tif (f->is_vf) {\n-\t\t\tf->is_vf = false;\n-\t\t\tf->counter--;\n-\t\t}\n-\t} else if (is_netdev) {\n-\t\tif (f->is_netdev) {\n-\t\t\tf->is_netdev = false;\n-\t\t\tf->counter--;\n-\t\t}\n+\tif ((f->state == I40E_FILTER_FAILED) ||\n+\t    (f->state == I40E_FILTER_NEW)) {\n+\t\t/* this one never got added by the FW. Just remove it,\n+\t\t * no need to sync anything.\n+\t\t */\n+\t\tlist_del(&f->list);\n+\t\tkfree(f);\n \t} else {\n-\t\t/* make sure we don't remove a filter in use by VF or netdev */\n-\t\tint min_f = 0;\n-\n-\t\tmin_f += (f->is_vf ? 1 : 0);\n-\t\tmin_f += (f->is_netdev ? 1 : 0);\n-\n-\t\tif (f->counter > min_f)\n-\t\t\tf->counter--;\n-\t}\n-\n-\t/* counter == 0 tells sync_filters_subtask to\n-\t * remove the filter from the firmware's list\n-\t */\n-\tif (f->counter == 0) {\n-\t\tif ((f->state == I40E_FILTER_FAILED) ||\n-\t\t    (f->state == I40E_FILTER_NEW)) {\n-\t\t\t/* this one never got added by the FW. Just remove it,\n-\t\t\t * no need to sync anything.\n-\t\t\t */\n-\t\t\tlist_del(&f->list);\n-\t\t\tkfree(f);\n-\t\t} else {\n-\t\t\tf->state = I40E_FILTER_REMOVE;\n-\t\t\tvsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;\n-\t\t\tvsi->back->flags |= I40E_FLAG_FILTER_SYNC;\n-\t\t}\n+\t\tf->state = I40E_FILTER_REMOVE;\n+\t\tvsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;\n+\t\tvsi->back->flags |= I40E_FLAG_FILTER_SYNC;\n \t}\n }\n \n@@ -1467,8 +1402,8 @@ static int i40e_set_mac(struct net_device *netdev, void *p)\n \t\tnetdev_info(netdev, \"set new mac address %pM\\n\", addr->sa_data);\n \n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\ti40e_del_mac_all_vlan(vsi, netdev->dev_addr, false, true);\n-\ti40e_put_mac_in_vlan(vsi, addr->sa_data, false, true);\n+\ti40e_del_mac_all_vlan(vsi, netdev->dev_addr);\n+\ti40e_put_mac_in_vlan(vsi, addr->sa_data);\n \tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \tether_addr_copy(netdev->dev_addr, addr->sa_data);\n \tif (vsi->type == I40E_VSI_MAIN) {\n@@ -1653,33 +1588,26 @@ static void i40e_set_rx_mode(struct net_device *netdev)\n \n \t/* add addr if not already in the filter list */\n \tnetdev_for_each_uc_addr(uca, netdev) {\n-\t\tif (!i40e_find_mac(vsi, uca->addr, false, true)) {\n+\t\tif (!i40e_find_mac(vsi, uca->addr)) {\n \t\t\tif (i40e_is_vsi_in_vlan(vsi))\n-\t\t\t\ti40e_put_mac_in_vlan(vsi, uca->addr,\n-\t\t\t\t\t\t     false, true);\n+\t\t\t\ti40e_put_mac_in_vlan(vsi, uca->addr);\n \t\t\telse\n-\t\t\t\ti40e_add_filter(vsi, uca->addr, I40E_VLAN_ANY,\n-\t\t\t\t\t\tfalse, true);\n+\t\t\t\ti40e_add_filter(vsi, uca->addr, I40E_VLAN_ANY);\n \t\t}\n \t}\n \n \tnetdev_for_each_mc_addr(mca, netdev) {\n-\t\tif (!i40e_find_mac(vsi, mca->addr, false, true)) {\n+\t\tif (!i40e_find_mac(vsi, mca->addr)) {\n \t\t\tif (i40e_is_vsi_in_vlan(vsi))\n-\t\t\t\ti40e_put_mac_in_vlan(vsi, mca->addr,\n-\t\t\t\t\t\t     false, true);\n+\t\t\t\ti40e_put_mac_in_vlan(vsi, mca->addr);\n \t\t\telse\n-\t\t\t\ti40e_add_filter(vsi, mca->addr, I40E_VLAN_ANY,\n-\t\t\t\t\t\tfalse, true);\n+\t\t\t\ti40e_add_filter(vsi, mca->addr, I40E_VLAN_ANY);\n \t\t}\n \t}\n \n \t/* remove filter if not in netdev list */\n \tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {\n \n-\t\tif (!f->is_netdev)\n-\t\t\tcontinue;\n-\n \t\tnetdev_for_each_mc_addr(mca, netdev)\n \t\t\tif (ether_addr_equal(mca->addr, f->macaddr))\n \t\t\t\tgoto bottom_of_search_loop;\n@@ -1693,7 +1621,7 @@ static void i40e_set_rx_mode(struct net_device *netdev)\n \t\t\t\tgoto bottom_of_search_loop;\n \n \t\t/* f->macaddr wasn't found in uc, mc, or ha list so delete it */\n-\t\ti40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY, false, true);\n+\t\ti40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY);\n \n bottom_of_search_loop:\n \t\tcontinue;\n@@ -1838,13 +1766,11 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)\n \t\t/* Create a list of filters to delete. */\n \t\tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {\n \t\t\tif (f->state == I40E_FILTER_REMOVE) {\n-\t\t\t\tWARN_ON(f->counter != 0);\n \t\t\t\t/* Move the element into temporary del_list */\n \t\t\t\tlist_move_tail(&f->list, &tmp_del_list);\n \t\t\t\tvsi->active_filters--;\n \t\t\t}\n \t\t\tif (f->state == I40E_FILTER_NEW) {\n-\t\t\t\tWARN_ON(f->counter == 0);\n \t\t\t\t/* Move the element into temporary add_list */\n \t\t\t\tlist_move_tail(&f->list, &tmp_add_list);\n \t\t\t}\n@@ -2316,17 +2242,12 @@ static void i40e_vlan_rx_register(struct net_device *netdev, u32 features)\n int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)\n {\n \tstruct i40e_mac_filter *f, *ftmp, *add_f;\n-\tbool is_netdev, is_vf;\n-\n-\tis_vf = (vsi->type == I40E_VSI_SRIOV);\n-\tis_netdev = !!(vsi->netdev);\n \n \t/* Locked once because all functions invoked below iterates list*/\n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n \n-\tif (is_netdev) {\n-\t\tadd_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, vid,\n-\t\t\t\t\tis_vf, is_netdev);\n+\tif (vsi->netdev) {\n+\t\tadd_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, vid);\n \t\tif (!add_f) {\n \t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t \"Could not add vlan filter %d for %pM\\n\",\n@@ -2337,7 +2258,7 @@ int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)\n \t}\n \n \tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {\n-\t\tadd_f = i40e_add_filter(vsi, f->macaddr, vid, is_vf, is_netdev);\n+\t\tadd_f = i40e_add_filter(vsi, f->macaddr, vid);\n \t\tif (!add_f) {\n \t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t \"Could not add vlan filter %d for %pM\\n\",\n@@ -2353,13 +2274,11 @@ int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)\n \t * (and not all tags along with untagged)\n \t */\n \tif (vid > 0) {\n-\t\tif (is_netdev && i40e_find_filter(vsi, vsi->netdev->dev_addr,\n-\t\t\t\t\t\t  I40E_VLAN_ANY,\n-\t\t\t\t\t\t  is_vf, is_netdev)) {\n+\t\tif (vsi->netdev && i40e_find_filter(vsi, vsi->netdev->dev_addr,\n+\t\t\t\t\t\t    I40E_VLAN_ANY)) {\n \t\t\ti40e_del_filter(vsi, vsi->netdev->dev_addr,\n-\t\t\t\t\tI40E_VLAN_ANY, is_vf, is_netdev);\n-\t\t\tadd_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, 0,\n-\t\t\t\t\t\tis_vf, is_netdev);\n+\t\t\t\t\tI40E_VLAN_ANY);\n+\t\t\tadd_f = i40e_add_filter(vsi, vsi->netdev->dev_addr, 0);\n \t\t\tif (!add_f) {\n \t\t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t\t \"Could not add filter 0 for %pM\\n\",\n@@ -2373,13 +2292,10 @@ int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)\n \t/* Do not assume that I40E_VLAN_ANY should be reset to VLAN 0 */\n \tif (vid > 0 && !vsi->info.pvid) {\n \t\tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {\n-\t\t\tif (!i40e_find_filter(vsi, f->macaddr, I40E_VLAN_ANY,\n-\t\t\t\t\t      is_vf, is_netdev))\n+\t\t\tif (!i40e_find_filter(vsi, f->macaddr, I40E_VLAN_ANY))\n \t\t\t\tcontinue;\n-\t\t\ti40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY,\n-\t\t\t\t\tis_vf, is_netdev);\n-\t\t\tadd_f = i40e_add_filter(vsi, f->macaddr,\n-\t\t\t\t\t\t0, is_vf, is_netdev);\n+\t\t\ti40e_del_filter(vsi, f->macaddr, I40E_VLAN_ANY);\n+\t\t\tadd_f = i40e_add_filter(vsi, f->macaddr, 0);\n \t\t\tif (!add_f) {\n \t\t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t\t \"Could not add filter 0 for %pM\\n\",\n@@ -2410,20 +2326,16 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)\n {\n \tstruct net_device *netdev = vsi->netdev;\n \tstruct i40e_mac_filter *f, *ftmp, *add_f;\n-\tbool is_vf, is_netdev;\n \tint filter_count = 0;\n \n-\tis_vf = (vsi->type == I40E_VSI_SRIOV);\n-\tis_netdev = !!(netdev);\n-\n \t/* Locked once because all functions invoked below iterates list */\n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n \n-\tif (is_netdev)\n-\t\ti40e_del_filter(vsi, netdev->dev_addr, vid, is_vf, is_netdev);\n+\tif (vsi->netdev)\n+\t\ti40e_del_filter(vsi, netdev->dev_addr, vid);\n \n \tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list)\n-\t\ti40e_del_filter(vsi, f->macaddr, vid, is_vf, is_netdev);\n+\t\ti40e_del_filter(vsi, f->macaddr, vid);\n \n \t/* go through all the filters for this VSI and if there is only\n \t * vid == 0 it means there are no other filters, so vid 0 must\n@@ -2431,7 +2343,7 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)\n \t * on accept any traffic (with any tag present, or untagged)\n \t */\n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n-\t\tif (is_netdev) {\n+\t\tif (vsi->netdev) {\n \t\t\tif (f->vlan &&\n \t\t\t    ether_addr_equal(netdev->dev_addr, f->macaddr))\n \t\t\t\tfilter_count++;\n@@ -2441,10 +2353,9 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)\n \t\t\tfilter_count++;\n \t}\n \n-\tif (!filter_count && is_netdev) {\n-\t\ti40e_del_filter(vsi, netdev->dev_addr, 0, is_vf, is_netdev);\n-\t\tf = i40e_add_filter(vsi, netdev->dev_addr, I40E_VLAN_ANY,\n-\t\t\t\t    is_vf, is_netdev);\n+\tif (!filter_count && vsi->netdev) {\n+\t\ti40e_del_filter(vsi, netdev->dev_addr, 0);\n+\t\tf = i40e_add_filter(vsi, netdev->dev_addr, I40E_VLAN_ANY);\n \t\tif (!f) {\n \t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t \"Could not add filter %d for %pM\\n\",\n@@ -2456,9 +2367,8 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)\n \n \tif (!filter_count) {\n \t\tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) {\n-\t\t\ti40e_del_filter(vsi, f->macaddr, 0, is_vf, is_netdev);\n-\t\t\tadd_f = i40e_add_filter(vsi, f->macaddr, I40E_VLAN_ANY,\n-\t\t\t\t\t\tis_vf, is_netdev);\n+\t\t\ti40e_del_filter(vsi, f->macaddr, 0);\n+\t\t\tadd_f = i40e_add_filter(vsi, f->macaddr, I40E_VLAN_ANY);\n \t\t\tif (!add_f) {\n \t\t\t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t\t\t \"Could not add filter %d for %pM\\n\",\n@@ -9147,7 +9057,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)\n \t\tSET_NETDEV_DEV(netdev, &pf->pdev->dev);\n \t\tether_addr_copy(mac_addr, hw->mac.perm_addr);\n \t\tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\t\ti40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, true);\n+\t\ti40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY);\n \t\tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \t} else {\n \t\t/* relate the VSI_VMDQ name to the VSI_MAIN name */\n@@ -9156,7 +9066,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)\n \t\trandom_ether_addr(mac_addr);\n \n \t\tspin_lock_bh(&vsi->mac_filter_list_lock);\n-\t\ti40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, false);\n+\t\ti40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY);\n \t\tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \t}\n \n@@ -9512,8 +9422,7 @@ int i40e_vsi_release(struct i40e_vsi *vsi)\n \n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n \tlist_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list)\n-\t\ti40e_del_filter(vsi, f->macaddr, f->vlan,\n-\t\t\t\tf->is_vf, f->is_netdev);\n+\t\ti40e_del_filter(vsi, f->macaddr, f->vlan);\n \tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \n \ti40e_sync_vsi_filters(vsi);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\nindex 54b8ee2..dccc9f8 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n@@ -689,8 +689,8 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)\n \t\tspin_lock_bh(&vsi->mac_filter_list_lock);\n \t\tif (is_valid_ether_addr(vf->default_lan_addr.addr)) {\n \t\t\tf = i40e_add_filter(vsi, vf->default_lan_addr.addr,\n-\t\t\t\t       vf->port_vlan_id ? vf->port_vlan_id : -1,\n-\t\t\t\t       true, false);\n+\t\t\t\t       vf->port_vlan_id ?\n+\t\t\t\t       vf->port_vlan_id : -1);\n \t\t\tif (!f)\n \t\t\t\tdev_info(&pf->pdev->dev,\n \t\t\t\t\t \"Could not add MAC filter %pM for VF %d\\n\",\n@@ -1933,14 +1933,12 @@ static int i40e_vc_add_mac_addr_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)\n \tfor (i = 0; i < al->num_elements; i++) {\n \t\tstruct i40e_mac_filter *f;\n \n-\t\tf = i40e_find_mac(vsi, al->list[i].addr, true, false);\n+\t\tf = i40e_find_mac(vsi, al->list[i].addr);\n \t\tif (!f) {\n \t\t\tif (i40e_is_vsi_in_vlan(vsi))\n-\t\t\t\tf = i40e_put_mac_in_vlan(vsi, al->list[i].addr,\n-\t\t\t\t\t\t\t true, false);\n+\t\t\t\tf = i40e_put_mac_in_vlan(vsi, al->list[i].addr);\n \t\t\telse\n-\t\t\t\tf = i40e_add_filter(vsi, al->list[i].addr, -1,\n-\t\t\t\t\t\t    true, false);\n+\t\t\t\tf = i40e_add_filter(vsi, al->list[i].addr, -1);\n \t\t}\n \n \t\tif (!f) {\n@@ -2006,7 +2004,7 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)\n \tspin_lock_bh(&vsi->mac_filter_list_lock);\n \t/* delete addresses from the list */\n \tfor (i = 0; i < al->num_elements; i++)\n-\t\tif (i40e_del_mac_all_vlan(vsi, al->list[i].addr, true, false)) {\n+\t\tif (i40e_del_mac_all_vlan(vsi, al->list[i].addr)) {\n \t\t\tret = I40E_ERR_INVALID_MAC_ADDR;\n \t\t\tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \t\t\tgoto error_param;\n@@ -2722,14 +2720,13 @@ int i40e_ndo_set_vf_mac(struct net_device *netdev, int vf_id, u8 *mac)\n \t/* delete the temporary mac address */\n \tif (!is_zero_ether_addr(vf->default_lan_addr.addr))\n \t\ti40e_del_filter(vsi, vf->default_lan_addr.addr,\n-\t\t\t\tvf->port_vlan_id ? vf->port_vlan_id : -1,\n-\t\t\t\ttrue, false);\n+\t\t\t\tvf->port_vlan_id ? vf->port_vlan_id : -1);\n \n \t/* Delete all the filters for this VSI - we're going to kill it\n \t * anyway.\n \t */\n \tlist_for_each_entry(f, &vsi->mac_filter_list, list)\n-\t\ti40e_del_filter(vsi, f->macaddr, f->vlan, true, false);\n+\t\ti40e_del_filter(vsi, f->macaddr, f->vlan);\n \n \tspin_unlock_bh(&vsi->mac_filter_list_lock);\n \n",
    "prefixes": [
        "next",
        "S49-V2",
        "01/15"
    ]
}