From nobody Tue Apr 28 06:45:04 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g4WC61tfRz6bR2j for ; Tue, 28 Apr 2026 06:45:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g4WC50xSSz3Z51 for ; Tue, 28 Apr 2026 06:45:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777358705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fy8wysMSldwbveiy2QXdM81wf/AAQxJ0JlKVaq1HYAg=; b=DJKxYXKfOgOdwk2zIq6dMAW7mwIptte3GW9s8QCeHnzvy7YW9teCslnPJMbbLrorS85EBH I3+o21ea3PpKOicEREnaiiuB24zqCDkmlCtu/1/yFXgZe061td4BuUf1X9ceXUjkjQ4/1B xplGSk460MbiVa24c3UiHxuzg15uQiaptWbQD5/2zafVUYkEM2gP4ryz3XKMidgKHUyuJc uBx3p7Rmn53w2IkjR0nD6LVYuN7vq4eus1AP0bwAH0CL7BQReOzVveoE4O9diXnYqgrekh 64tpK5aJ6Uc1YnXV+9wHG4aBZ+Cq1N91UN38UdDHr/9ENu+mFtaRLcK3VSUlaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777358705; a=rsa-sha256; cv=none; b=rt0GUNOjGlAJKID+JXCd+3ElaG+GxMjy9m0+fIzaeY7VZUgnbL9Rxh1It0wdeIokQVxY6V +GrqNPTSzYJkLkbf6VtoX3H1nwV82Q27JU+FdDke/Or2X8EzbOuNtfnraiQqg/apWvwxAS xoOS+egceFJUriJVWGUvFY6iZNgTDnN1+7ybD3YsV2zgSE92Ub/EDagFW1L3ZEcP9+EZlY njH0day8LEXrRy7ZAfP7apfpADg3K7sRdwDN1o/bY+fdsPSrqYW2PYEY/LOBf3U8/Z8/OJ k52F/vRlCFUZ905jVSPwsdsCt2EPUUSlaNX7DgSQLOrCKwRA66VIsJTm7+zDsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777358705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fy8wysMSldwbveiy2QXdM81wf/AAQxJ0JlKVaq1HYAg=; b=gpOOaQNBN75AiPDCXj4liiWgwBDVj5z+V4oOesMw7EuhCzKAc/tEcB6F4+1w61G6FPJNg/ nfdZFeF3SSLIJcYf93iopPthVULzWeC5qlnj03qt5qFj6+7jlp16ZF9JmUV8UAYd+O5VO8 vOZwGvVpqw2K5zk8qON8Nojh3WVuhII20eOouIgSiDxrYX+1yJRI0D3zAxk3vigzburUgD xWmmLdE6bo2ZgL+uTbLYF25H9PPdcbRiTcJ9cdWWRqJSERl5RITTmJzF/7XNXMxQtkNapd HGUC5AVaQeKPVm/5PiCBszuIbjn5/dKEJawo5hLUB9tJfuy/WXb5bKQepSL9oQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g4WC45WcwzjVq for ; Tue, 28 Apr 2026 06:45:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 264fc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 28 Apr 2026 06:45:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Chandrakanth Patil From: Sumit Saxena Subject: git: 7c450d1127c7 - main - bnxt_en: Address review comments for core SR-IOV support List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7c450d1127c7f08361f848c0ac57189910da8d3b Auto-Submitted: auto-generated Date: Tue, 28 Apr 2026 06:45:04 +0000 Message-Id: <69f05770.264fc.5860a40d@gitrepo.freebsd.org> The branch main has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=7c450d1127c7f08361f848c0ac57189910da8d3b commit 7c450d1127c7f08361f848c0ac57189910da8d3b Author: Chandrakanth Patil AuthorDate: 2026-04-26 18:11:31 +0000 Commit: Sumit Saxena CommitDate: 2026-04-28 06:37:06 +0000 bnxt_en: Address review comments for core SR-IOV support This patch addresses the code review comments provided for: https://reviews.freebsd.org/D56197 * P7 VF PCI ID: rename NETXTREME_E_P7_VF to E_P7_VF (P7/Thor2 line drops the Netxtreme name in product strings; other VF device IDs are unchanged). * Use the return value of bnxt_vf_parse_schema() in bnxt_iov_vf_add() to decide when to call bnxt_set_vf_admin_mac(); make parse_schema() return bool and remove the has_admin_mac field. * In bnxt_free_vf_resources(), fix indentation after dma_free_coherent() so the NULL assignment is clearly separate from the call. * In bnxt_hwrm_func_vf_resource_free(), use first_vf_id/last_vf_id in the HWRM_FUNC_VF_RESC_FREE loop. MFC after: 1 month Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D56644 --- sys/dev/bnxt/bnxt_en/bnxt.h | 2 +- sys/dev/bnxt/bnxt_en/bnxt_sriov.c | 31 ++++++++++++++++--------------- sys/dev/bnxt/bnxt_en/bnxt_sriov.h | 1 - sys/dev/bnxt/bnxt_en/if_bnxt.c | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index 6d00cd4d601d..b15cc65e290e 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -107,7 +107,7 @@ #define NETXTREME_E_P5_VF2 0x1807 #define NETXTREME_E_P5_VF_HV1 0x1808 #define NETXTREME_E_P5_VF_HV2 0x1809 -#define NETXTREME_E_P7_VF 0x1819 +#define E_P7_VF 0x1819 #define EVENT_DATA1_RESET_NOTIFY_FATAL(data1) \ (((data1) & \ diff --git a/sys/dev/bnxt/bnxt_en/bnxt_sriov.c b/sys/dev/bnxt/bnxt_en/bnxt_sriov.c index 2aeefd9308fb..270c18165fb7 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_sriov.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_sriov.c @@ -30,7 +30,7 @@ bnxt_set_vf_admin_mac(struct bnxt_softc *softc, struct bnxt_vf_info *vf, return (rc); } -static void +static bool bnxt_vf_parse_schema(struct bnxt_softc *softc, struct bnxt_vf_info *vf, const nvlist_t *params) { @@ -41,7 +41,7 @@ bnxt_vf_parse_schema(struct bnxt_softc *softc, struct bnxt_vf_info *vf, memset(vf->vf_mac_addr, 0, ETHER_ADDR_LEN); if (params == NULL) - return; + return (false); if (nvlist_exists(params, "mac-anti-spoof")) vf->spoofchk = nvlist_get_bool(params, "mac-anti-spoof"); @@ -49,18 +49,18 @@ bnxt_vf_parse_schema(struct bnxt_softc *softc, struct bnxt_vf_info *vf, vf->trusted = nvlist_get_bool(params, "trust"); if (!nvlist_exists(params, "mac-addr")) - return; + return (false); mac = nvlist_get_binary(params, "mac-addr", &maclen); if (maclen != ETHER_ADDR_LEN) - return; + return (false); if (!is_valid_ether_addr(mac)) - return; + return (false); memcpy(vf->mac_addr, mac, ETHER_ADDR_LEN); - vf->has_admin_mac = true; + return (true); } /* Add a Virtual Functions */ @@ -74,13 +74,10 @@ bnxt_iov_vf_add(if_ctx_t ctx, uint16_t vfnum, const nvlist_t *params) vf->fw_fid = softc->pf.first_vf_id + vfnum; vf->vfnum = vfnum; - /* Parse schema */ - bnxt_vf_parse_schema(softc, vf, params); - /* - * If user provided MAC, program it into firmware. + * If the schema provided a valid admin MAC, program it into firmware. */ - if (vf->has_admin_mac) { + if (bnxt_vf_parse_schema(softc, vf, params)) { rc = bnxt_set_vf_admin_mac(softc, vf, vf->mac_addr); if (rc) device_printf(softc->dev, @@ -113,9 +110,9 @@ void bnxt_free_vf_resources(struct bnxt_softc *softc) for (i = 0; i < softc->pf.hwrm_cmd_req_pages; i++) { if (softc->pf.hwrm_cmd_req_addr[i]) { dma_free_coherent(&softc->pdev->dev, page_size, - softc->pf.hwrm_cmd_req_addr[i], - softc->pf.hwrm_cmd_req_dma_addr[i]); - softc->pf.hwrm_cmd_req_addr[i] = NULL; + softc->pf.hwrm_cmd_req_addr[i], + softc->pf.hwrm_cmd_req_dma_addr[i]); + softc->pf.hwrm_cmd_req_addr[i] = NULL; } } } @@ -125,12 +122,16 @@ int bnxt_hwrm_func_vf_resource_free(struct bnxt_softc *softc, int num_vfs) { int i, rc; + int first_vf_id, last_vf_id; struct hwrm_func_vf_resc_free_input req; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_VF_RESC_FREE); + first_vf_id = softc->pf.first_vf_id; + last_vf_id = first_vf_id + num_vfs - 1; + BNXT_HWRM_LOCK(softc); - for (i = softc->pf.first_vf_id; i < softc->pf.first_vf_id + num_vfs; i++) { + for (i = first_vf_id; i <= last_vf_id; i++) { req.vf_id = cpu_to_le16(i); rc = _hwrm_send_message(softc, &req, sizeof(req)); if (rc) diff --git a/sys/dev/bnxt/bnxt_en/bnxt_sriov.h b/sys/dev/bnxt/bnxt_en/bnxt_sriov.h index c0c3d2d70b08..176f54af0aa8 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_sriov.h +++ b/sys/dev/bnxt/bnxt_en/bnxt_sriov.h @@ -81,7 +81,6 @@ struct bnxt_vf_info { struct iflib_dma_info hwrm_cmd_req; uint16_t trusted; bool spoofchk; - bool has_admin_mac; }; struct bnxt_resc_map { diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c index 80ca53db4782..6618016f3932 100644 --- a/sys/dev/bnxt/bnxt_en/if_bnxt.c +++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c @@ -180,7 +180,7 @@ static const pci_vendor_info_t bnxt_vendor_info_array[] = "Broadcom NetXtreme-C Virtual Function for Hyper-V"), PVID(BROADCOM_VENDOR_ID, NETXTREME_E_P5_VF_HV2, "Broadcom NetXtreme-C Virtual Function for Hyper-V"), - PVID(BROADCOM_VENDOR_ID, NETXTREME_E_P7_VF, + PVID(BROADCOM_VENDOR_ID, E_P7_VF, "Broadcom BCM5760X Virtual Function"), /* required last entry */ @@ -479,7 +479,7 @@ bnxt_is_vf_device(uint16_t device_id) case NETXTREME_E_P5_VF2: case NETXTREME_E_P5_VF_HV1: case NETXTREME_E_P5_VF_HV2: - case NETXTREME_E_P7_VF: + case E_P7_VF: return true; default: return false;