From nobody Fri Jul 18 19:16:18 2025 X-Original-To: dev-commits-src-main@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 4bkKJz2ttPz62g2W; Fri, 18 Jul 2025 19:16:19 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bkKJz1KgHz42CS; Fri, 18 Jul 2025 19:16:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752866179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PMlNhXlvww7QaYXsOMlpLiKJ6Li3qiPcmx/Y6CZnmkc=; b=Rw/rKCoSBFYpnZTjmaolMGcn4bvabJeoWyTSmpOTkO9qJSOmyMhjIiii3nXUudoV87+YAR c9kVzhyjNKeKPgE3JXigNItiFgwjPmcubpNhFg4xD/mwuI2CtZDlG76OofiwULllkmvDyu LpDETU+8A2EP06e6sAcE4KUrvsT6ViUJOk3d8nI0FJmp2lj5Wo5yRLRW2fKoTtH3Ux7UzE kx9hTC3BEPFFh6ViaQv/oiJXCEGSeA31uLy6mr22sZbBBeaqW2zIs9L8Id8Yn+gAS06O8K HSOQEZb62K2T0BgfHlGLNbcLyDbN610cwv00Ld57ie3pSur0unYKkDh1W0TTMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752866179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PMlNhXlvww7QaYXsOMlpLiKJ6Li3qiPcmx/Y6CZnmkc=; b=I51ZzIHDPgyjxLoO789y7xPek0wTi2K/zw+Py51HUwBaSLJCkeAoXXNFcz/YEaBJ8dQdzt 5mqb2ko3RMupRHn3YVswbGMoSlNWDMKVOEIIGcrb91BQzoDWwnl3f+dyB/LDavSXS65RgJ pTNLa3mP+B/tVsvLjoza4+ujweHObxlnc3bxHj1A9XHwXYY4bqMUroZl740GAYxDwxrCPR ZZIv5Z0DPqQG+XMJ+JXmP4SeYClN8DOwCIX6/BUNFslQ7khyrVmzixgbCXXYwGFZNJgTMJ KpmhlLFmMZ1PRG0/jNE6TmVFeOGivPzH3oV2ZwmrdBLlmtoUCFT0qKsC1HDNmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752866179; a=rsa-sha256; cv=none; b=Sh0n6WFFrO8wn0a8UuARPAAlZj6nVgPiyfF+Fj5s4/Z2QADAjnroN5VmgyD21ZgYaRSduy faoaHuftRonID9idlZ39D+++VXlEPoO4ly6nnaXAX67YY5Vh0E2mLiGMXw/AN8A5DK7mtU +150dZdT0j/Bw04kxDwK/KOc891r3ogxnfO+bfPctsa8NW8E3PcYKKcsTHoBgBfB7/Thva 3HL2aT04tvjiHvrtpqwrr31GvZ1DfygpswaMy1myiBhgRobinxeim9XMw18E4vkdKBbwT7 XG5qOgzHooINMkcs3qdqn2rz0UG2kj3kTRY4vqCG2wFs9z6UTo9vOVGFU+rDLQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bkKJz0WNnzt82; Fri, 18 Jul 2025 19:16:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56IJGIgZ001056; Fri, 18 Jul 2025 19:16:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56IJGIMI001053; Fri, 18 Jul 2025 19:16:18 GMT (envelope-from git) Date: Fri, 18 Jul 2025 19:16:18 GMT Message-Id: <202507181916.56IJGIMI001053@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 69bb592fa3da - main - ice(4): Fix set RSS hena virtchnl op handler List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 69bb592fa3daed00982bbdf75c3b41898e476d9b Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=69bb592fa3daed00982bbdf75c3b41898e476d9b commit 69bb592fa3daed00982bbdf75c3b41898e476d9b Author: Krzysztof Galazka AuthorDate: 2025-03-12 07:50:46 +0000 Commit: Warner Losh CommitDate: 2025-07-18 19:16:17 +0000 ice(4): Fix set RSS hena virtchnl op handler Remove existing RSS HENA configuration to make sure that only config requested by VF is applied and allow VFs to disable RSS completely. Signed-off-by: Krzysztof Galazka Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1573 --- sys/dev/ice/ice_iov.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/sys/dev/ice/ice_iov.c b/sys/dev/ice/ice_iov.c index 3785a6c8dd13..05393083af16 100644 --- a/sys/dev/ice/ice_iov.c +++ b/sys/dev/ice/ice_iov.c @@ -1139,17 +1139,34 @@ ice_vc_set_rss_hena_msg(struct ice_softc *sc, struct ice_vf *vf, u8 *msg_buf) enum virtchnl_status_code v_status = VIRTCHNL_STATUS_SUCCESS; struct ice_vsi *vsi = vf->vsi; + MPASS(vsi != NULL); + vrh = (struct virtchnl_rss_hena *)msg_buf; - status = ice_add_avf_rss_cfg(hw, vsi->idx, vrh->hena); - if (status) { - device_printf(sc->dev, - "ice_add_avf_rss_cfg status %s, error %s\n", - ice_status_str(status), - ice_aq_str(hw->adminq.sq_last_status)); - v_status = ice_iov_err_to_virt_err(status); + /* + * Remove existing configuration to make sure only requested + * config is applied and allow VFs to disable RSS completly. + */ + status = ice_rem_vsi_rss_cfg(hw, vsi->idx); + if (vrh->hena) { + /* + * Problem with removing config is not fatal, when new one + * is requested. Warn about it but try to apply new config + * anyway. + */ + if (status) + device_printf(sc->dev, + "ice_rem_vsi_rss_cfg status %s, error %s\n", + ice_status_str(status), + ice_aq_str(hw->adminq.sq_last_status)); + status = ice_add_avf_rss_cfg(hw, vsi->idx, vrh->hena); + if (status) + device_printf(sc->dev, + "ice_add_avf_rss_cfg status %s, error %s\n", + ice_status_str(status), + ice_aq_str(hw->adminq.sq_last_status)); } - + v_status = ice_iov_err_to_virt_err(status); ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_SET_RSS_HENA, v_status, NULL, 0, NULL); }