get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2220613,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2220613/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260407165206.1121317-4-jtornosm@redhat.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": ""
    },
    "msgid": "<20260407165206.1121317-4-jtornosm@redhat.com>",
    "date": "2026-04-07T16:52:05",
    "name": "[net,v2,3/4] iavf: send MAC change request synchronously",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "b2382792f133f8641435d3b9e70f9ef7681de934",
    "submitter": {
        "id": 93070,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/93070/?format=api",
        "name": "Jose Ignacio Tornos Martinez",
        "email": "jtornosm@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260407165206.1121317-4-jtornosm@redhat.com/mbox/",
    "series": [
        {
            "id": 499007,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/499007/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=499007",
            "date": "2026-04-07T16:52:02",
            "name": "Fix i40e/ice/iavf VF bonding after netdev lock changes",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/499007/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2220613/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2220613/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=HVyuUrtH;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqshD0Lx5z1yGM\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 02:53:00 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 2825C608E8;\n\tTue,  7 Apr 2026 16:52:58 +0000 (UTC)",
            "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id BTHalN9wLcNA; Tue,  7 Apr 2026 16:52:57 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 119FE60A9F;\n\tTue,  7 Apr 2026 16:52:57 +0000 (UTC)",
            "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists1.osuosl.org (Postfix) with ESMTP id 771A51F6\n for <intel-wired-lan@lists.osuosl.org>; Tue,  7 Apr 2026 16:52:55 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 5D6D7812C5\n for <intel-wired-lan@lists.osuosl.org>; Tue,  7 Apr 2026 16:52:55 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id B1Bcf-t-yWvt for <intel-wired-lan@lists.osuosl.org>;\n Tue,  7 Apr 2026 16:52:54 +0000 (UTC)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 1A8B1812B6\n for <intel-wired-lan@lists.osuosl.org>; Tue,  7 Apr 2026 16:52:53 +0000 (UTC)",
            "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-582-PWVNoNMPMwyCIBh0gDqkCw-1; Tue,\n 07 Apr 2026 12:52:47 -0400",
            "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id A489B195608C; Tue,  7 Apr 2026 16:52:44 +0000 (UTC)",
            "from fedora.redhat.com (unknown [10.44.48.48])\n by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 1617C300019F; Tue,  7 Apr 2026 16:52:40 +0000 (UTC)"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 119FE60A9F",
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1A8B1812B6"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1775580777;\n\tbh=EKZFBsNheoLVD5sdC0UG4DuUe2CBvyHTNlwHzswNDWM=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=HVyuUrtHgLFqhsxva2DWmw5kW4BIgpZBHvbkXpNCholpiTSxalspNHAlWh+U06BPL\n\t TFBU2hkqw5YEsez3vNClXQGD40z/oZ7I3U3NkwB8F/kYZdEVGALNVU4Vym9vODqxKP\n\t YaJE/pDNUKGnaHHoUWUHhtD8PgVpiMMOpTslicSeJ8oCJneX25eV9P+7l/jfmRmshd\n\t yxDfhr/zHVsSxB4cyKPBiHMP1vgSsgKrIBO9fbbJpIutnHjuNmF3gAaH5VaU7Oormf\n\t NexJL1yy9CkI8cpPaUJE5aq4Nq7IrveR2oy7S0aSsfiVtillRUR+0XgLI5m+wim/kC\n\t cIJSeIpNcJh5w==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=170.10.133.124;\n helo=us-smtp-delivery-124.mimecast.com; envelope-from=jtornosm@redhat.com;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 1A8B1812B6",
        "X-MC-Unique": "PWVNoNMPMwyCIBh0gDqkCw-1",
        "X-Mimecast-MFC-AGG-ID": "PWVNoNMPMwyCIBh0gDqkCw_1775580764",
        "From": "Jose Ignacio Tornos Martinez <jtornosm@redhat.com>",
        "To": "netdev@vger.kernel.org",
        "Cc": "intel-wired-lan@lists.osuosl.org, jesse.brandeburg@intel.com,\n anthony.l.nguyen@intel.com, davem@davemloft.net, edumazet@google.com,\n kuba@kernel.org, pabeni@redhat.com,\n Jose Ignacio Tornos Martinez <jtornosm@redhat.com>, stable@vger.kernel.org",
        "Date": "Tue,  7 Apr 2026 18:52:05 +0200",
        "Message-ID": "<20260407165206.1121317-4-jtornosm@redhat.com>",
        "In-Reply-To": "<20260407165206.1121317-1-jtornosm@redhat.com>",
        "References": "<20260407165206.1121317-1-jtornosm@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4",
        "X-Mimecast-MFC-PROC-ID": "ZOuCOD7bvijf6XheVav9AyO6S-HpMm1Y8jDO7xGE6F4_1775580764",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "content-type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com;\n s=mimecast20190719; t=1775580772;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=EKZFBsNheoLVD5sdC0UG4DuUe2CBvyHTNlwHzswNDWM=;\n b=WAJFcEZ+lSExkKe3UiWXjAYTTMjKQC9zbvT/YG/cS0fYiaOraTsATFPq5nzPLDfeQkp9oK\n f6r67EBxGZ3NlnFTABRiubBOzPqF6AXBbX640hLSd52rMeNO7fEgZglJDZHPUAm7bgbrQq\n 4prc2e8crl22MQ80NhLOMhLPk9m91YY=",
        "X-Mailman-Original-Authentication-Results": [
            "smtp1.osuosl.org;\n dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com",
            "smtp1.osuosl.org;\n dkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=WAJFcEZ+"
        ],
        "Subject": "[Intel-wired-lan] [PATCH net v2 3/4] iavf: send MAC change request\n synchronously",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>",
        "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "After commit ad7c7b2172c3 (\"net: hold netdev instance lock during sysfs\noperations\"), iavf_set_mac() is called with the netdev instance lock\nalready held.\n\nThe function queues a MAC address change request via\niavf_replace_primary_mac() and then waits for completion. However, in\nthe current flow, the actual virtchnl message is sent by the watchdog\ntask, which also needs to acquire the netdev lock to run. Additionally,\nthe adminq_task which processes virtchnl responses also needs the netdev\nlock.\n\nThis creates a deadlock scenario:\n1. iavf_set_mac() holds netdev lock and waits for MAC change\n2. Watchdog needs netdev lock to send the request -> blocked\n3. Even if request is sent, adminq_task needs netdev lock to process\n   PF response -> blocked\n4. MAC change times out after 2.5 seconds\n5. iavf_set_mac() returns -EAGAIN\n\nThis particularly affects VFs during bonding setup when multiple VFs are\nenslaved in quick succession.\n\nFix by implementing a synchronous MAC change operation similar to the\napproach used in commit fdadbf6e84c4 (\"iavf: fix incorrect reset handling\nin callbacks\").\n\nThe solution:\n1. Send the virtchnl ADD_ETH_ADDR message directly (not via watchdog)\n2. Poll the admin queue hardware directly for responses\n3. Process all received messages (including non-MAC messages)\n4. Return when MAC change completes or times out\n\nA new generic function iavf_poll_virtchnl_response() is introduced that\ncan be reused for any future synchronous virtchnl operations. It takes a\ncallback to check completion, allowing flexible condition checking.\n\nThis allows the operation to complete synchronously while holding\nnetdev_lock, without relying on watchdog or adminq_task. The function\ncan sleep for up to 2.5 seconds polling hardware, but this is acceptable\nsince netdev_lock is per-device and only serializes operations on the\nsame interface.\n\nTo support this, change iavf_add_ether_addrs() to return an error code\ninstead of void, allowing callers to detect failures.\n\nFixes: ad7c7b2172c3 (\"net: hold netdev instance lock during sysfs operations\")\ncc: stable@vger.kernel.org\nSigned-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>\n---\nv2: Complete rewrite using synchronous polling approach instead of dropping\n    the netdev lock. New approach:\n    - Polls admin queue hardware directly (similar to iavf_reset_step)\n    - Processes all virtchnl messages inline while holding netdev_lock\n    - Introduced generic iavf_poll_virtchnl_response() for code reuse\n    - No lock dropping, following accepted pattern from ndo_change_mtu fix\nv1: https://lore.kernel.org/netdev/20260406112057.906685-4-jtornosm@redhat.com/\n\n drivers/net/ethernet/intel/iavf/iavf.h        |   2 +-\n drivers/net/ethernet/intel/iavf/iavf_main.c   | 118 +++++++++++++++---\n .../net/ethernet/intel/iavf/iavf_virtchnl.c   |  11 +-\n 3 files changed, 110 insertions(+), 21 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h\nindex e9fb0a0919e3..5bc23519fe9c 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf.h\n+++ b/drivers/net/ethernet/intel/iavf/iavf.h\n@@ -589,7 +589,7 @@ void iavf_configure_queues(struct iavf_adapter *adapter);\n void iavf_enable_queues(struct iavf_adapter *adapter);\n void iavf_disable_queues(struct iavf_adapter *adapter);\n void iavf_map_queues(struct iavf_adapter *adapter);\n-void iavf_add_ether_addrs(struct iavf_adapter *adapter);\n+int iavf_add_ether_addrs(struct iavf_adapter *adapter);\n void iavf_del_ether_addrs(struct iavf_adapter *adapter);\n void iavf_add_vlans(struct iavf_adapter *adapter);\n void iavf_del_vlans(struct iavf_adapter *adapter);\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c\nindex 67aa14350b1b..2ef30b1ef35c 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_main.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c\n@@ -1047,6 +1047,105 @@ static bool iavf_is_mac_set_handled(struct net_device *netdev,\n \treturn ret;\n }\n \n+/**\n+ * iavf_poll_virtchnl_response - Poll admin queue for virtchnl response\n+ * @adapter: board private structure\n+ * @condition: callback to check if desired response received\n+ * @cond_data: context data passed to condition callback\n+ * @timeout_ms: maximum time to wait in milliseconds\n+ *\n+ * Polls admin queue and processes all messages until condition returns true\n+ * or timeout expires. Caller must hold netdev_lock. This can sleep for up to\n+ * timeout_ms while polling hardware.\n+ *\n+ * Returns 0 on success (condition met), -EAGAIN on timeout or error\n+ */\n+static int iavf_poll_virtchnl_response(struct iavf_adapter *adapter,\n+\t\t\t\t       bool (*condition)(struct iavf_adapter *, void *),\n+\t\t\t\t       void *cond_data,\n+\t\t\t\t       unsigned int timeout_ms)\n+{\n+\tstruct iavf_hw *hw = &adapter->hw;\n+\tstruct iavf_arq_event_info event;\n+\tenum virtchnl_ops v_op;\n+\tenum iavf_status v_ret;\n+\tunsigned long timeout;\n+\tint ret;\n+\n+\tnetdev_assert_locked(adapter->netdev);\n+\n+\tevent.buf_len = IAVF_MAX_AQ_BUF_SIZE;\n+\tevent.msg_buf = kzalloc(event.buf_len, GFP_KERNEL);\n+\tif (!event.msg_buf)\n+\t\treturn -ENOMEM;\n+\n+\ttimeout = jiffies + msecs_to_jiffies(timeout_ms);\n+\twhile (time_before(jiffies, timeout)) {\n+\t\tif (condition(adapter, cond_data)) {\n+\t\t\tret = 0;\n+\t\t\tgoto out;\n+\t\t}\n+\n+\t\tret = iavf_clean_arq_element(hw, &event, NULL);\n+\t\tif (!ret) {\n+\t\t\tv_op = (enum virtchnl_ops)le32_to_cpu(event.desc.cookie_high);\n+\t\t\tv_ret = (enum iavf_status)le32_to_cpu(event.desc.cookie_low);\n+\n+\t\t\tiavf_virtchnl_completion(adapter, v_op, v_ret,\n+\t\t\t\t\t\t event.msg_buf, event.msg_len);\n+\n+\t\t\tmemset(event.msg_buf, 0, IAVF_MAX_AQ_BUF_SIZE);\n+\t\t}\n+\n+\t\tusleep_range(1000, 2000);\n+\t}\n+\n+\tret = -EAGAIN;\n+out:\n+\tkfree(event.msg_buf);\n+\treturn ret;\n+}\n+\n+/**\n+ * iavf_mac_change_done - Check if MAC change completed\n+ * @adapter: board private structure\n+ * @data: MAC address being checked (as void *)\n+ *\n+ * Callback for iavf_poll_virtchnl_response() to check if MAC change completed.\n+ *\n+ * Returns true if MAC change completed, false otherwise\n+ */\n+static bool iavf_mac_change_done(struct iavf_adapter *adapter, void *data)\n+{\n+\tconst u8 *addr = data;\n+\n+\treturn iavf_is_mac_set_handled(adapter->netdev, addr);\n+}\n+\n+/**\n+ * iavf_set_mac_sync - Synchronously change MAC address\n+ * @adapter: board private structure\n+ * @addr: MAC address to set\n+ *\n+ * Sends MAC change request to PF and polls admin queue for response.\n+ * Caller must hold netdev_lock. This can sleep for up to 2.5 seconds.\n+ *\n+ * Returns 0 on success or error\n+ */\n+static int iavf_set_mac_sync(struct iavf_adapter *adapter, const u8 *addr)\n+{\n+\tint ret;\n+\n+\tnetdev_assert_locked(adapter->netdev);\n+\n+\tret = iavf_add_ether_addrs(adapter);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\treturn iavf_poll_virtchnl_response(adapter, iavf_mac_change_done,\n+\t\t\t\t\t   (void *)addr, 2500);\n+}\n+\n /**\n  * iavf_set_mac - NDO callback to set port MAC address\n  * @netdev: network interface device structure\n@@ -1067,25 +1166,12 @@ static int iavf_set_mac(struct net_device *netdev, void *p)\n \t\treturn -EADDRNOTAVAIL;\n \n \tret = iavf_replace_primary_mac(adapter, addr->sa_data);\n-\n \tif (ret)\n \t\treturn ret;\n \n-\tret = wait_event_interruptible_timeout(adapter->vc_waitqueue,\n-\t\t\t\t\t       iavf_is_mac_set_handled(netdev, addr->sa_data),\n-\t\t\t\t\t       msecs_to_jiffies(2500));\n-\n-\t/* If ret < 0 then it means wait was interrupted.\n-\t * If ret == 0 then it means we got a timeout.\n-\t * else it means we got response for set MAC from PF,\n-\t * check if netdev MAC was updated to requested MAC,\n-\t * if yes then set MAC succeeded otherwise it failed return -EACCES\n-\t */\n-\tif (ret < 0)\n-\t\treturn ret;\n-\n-\tif (!ret)\n-\t\treturn -EAGAIN;\n+\tret = iavf_set_mac_sync(adapter, addr->sa_data);\n+\tif (ret)\n+\t\treturn ret;\n \n \tif (!ether_addr_equal(netdev->dev_addr, addr->sa_data))\n \t\treturn -EACCES;\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\nindex a52c100dcbc5..fdddf4b033ca 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n@@ -555,8 +555,10 @@ iavf_set_mac_addr_type(struct virtchnl_ether_addr *virtchnl_ether_addr,\n  * @adapter: adapter structure\n  *\n  * Request that the PF add one or more addresses to our filters.\n+ *\n+ * Returns 0 on success or error\n  **/\n-void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n+int iavf_add_ether_addrs(struct iavf_adapter *adapter)\n {\n \tstruct virtchnl_ether_addr_list *veal;\n \tstruct iavf_mac_filter *f;\n@@ -568,7 +570,7 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n \t\t/* bail because we already have a command pending */\n \t\tdev_err(&adapter->pdev->dev, \"Cannot add filters, command %d pending\\n\",\n \t\t\tadapter->current_op);\n-\t\treturn;\n+\t\treturn -EBUSY;\n \t}\n \n \tspin_lock_bh(&adapter->mac_vlan_list_lock);\n@@ -580,7 +582,7 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n \tif (!count) {\n \t\tadapter->aq_required &= ~IAVF_FLAG_AQ_ADD_MAC_FILTER;\n \t\tspin_unlock_bh(&adapter->mac_vlan_list_lock);\n-\t\treturn;\n+\t\treturn 0;\n \t}\n \tadapter->current_op = VIRTCHNL_OP_ADD_ETH_ADDR;\n \n@@ -595,7 +597,7 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n \tveal = kzalloc(len, GFP_ATOMIC);\n \tif (!veal) {\n \t\tspin_unlock_bh(&adapter->mac_vlan_list_lock);\n-\t\treturn;\n+\t\treturn -ENOMEM;\n \t}\n \n \tveal->vsi_id = adapter->vsi_res->vsi_id;\n@@ -617,6 +619,7 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n \n \tiavf_send_pf_msg(adapter, VIRTCHNL_OP_ADD_ETH_ADDR, (u8 *)veal, len);\n \tkfree(veal);\n+\treturn 0;\n }\n \n /**\n",
    "prefixes": [
        "net",
        "v2",
        "3/4"
    ]
}