From nobody Thu Oct 29 06:48:58 2026 X-Original-To: dev-commits-src-branches@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 4jFZZg19gqz6xvZ9 for ; Thu, 29 Oct 2026 06:48:59 +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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jFZZf71pFz3RBY for ; Thu, 29 Oct 2026 06:48:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793256539; 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=uDtlo9k5b7/LcP5r63IAdgzUEXwAlsn+svnpts45TQI=; b=paDV/Dip7tju7VqjNUdRPbV46t7l2toF77fF385YhAtfyZ0L59unQmyGE3zsGVtJ4YP0E0 zwEe5cEkiMOKmbDWHHrGFsnaUOkLddKiSVKssh7JdALC5s86cmOxpvn1n9GKA6IialGMYE 9QwMVlWP2vxFBpWvSTn2IgMGcD4v1MmJS8BzNJPW3hf9mT7u/STQkC1hkYum706ij81P1K 0BcgFerc1pNfMFCi2S7Nc8aVGF1QiaKa64UTf6atPLmm9Lv2qpkohyFhnZkdOgpB1nI3Ah 8o35hV1qdJRC5Q408TZaVkbZj3XKrwfTn2t7gHDyCMrvbfZpbgVxyFVypYtAiA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793256539; b=xcQlQSsXcSYJ1oIwFx4+vNi0aN1FUB9fh9cGl1FbpX5W1T/2gHunYj7XQLddQ/k1pY2RbD xbTf8WVazQqnPUIcJ3Jv3NwIymQlnCMWfq6XaCKX/WnxgzNQ5H3q7DKAWK84zr97f4u7bu +SJXKWYeWlqKFed24et3hkcj7f8Ns+bYzoCIATb/X4xZtpQ/57wLcb7TmhZTtFVRpQgJHz oEHPGuqaxCqySFtSEzYBgP7NzSPRzxB25kDJJ7gSwcLLuhnTXAEIFVD1aJfNByIi8UxJeX WAiIqq+MyJj7zfH4k3GbIi11oSgHpVZ8OpM+fXbvKFSA/GK9xGk71US7DD5UyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793256539; 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=uDtlo9k5b7/LcP5r63IAdgzUEXwAlsn+svnpts45TQI=; b=pYvJSymV8v+LKrQS1xVga5B3P6ZQRvbj/rjQLTf7SAWE4qdyA4CLb02IzHvEAqwbVdnqNx vSbi2/lM9B6l+M2twbxQtbpt9WdNHaEKnUKFey0LEbDjLkvszKQR76bMMYXK7MKybC625o CFtFzUgMlOGnMLsmjuOkPCIOQ8Do8WAjfNRwov3J0BbbSW+BrzN2ZzFCLSlILi815mP357 Yl8EfuSz/Zu4l/o65gGGIupKx50n8hUpEkN7MjZjwnVEir4fW3hcUXyYKt2ma73Qxtl2o1 zmxBAUBfNcOVT5D4vBuJr3VFsz+twRtwLkDtpcXiopqehjHNtx0bSu11lmDrdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jFZZf61sbzRjS for ; Thu, 29 Oct 2026 06:48:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ef51 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Oct 2026 06:48:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 0abea942d6d0 - stable/15 - bxe: Program the common RSS key in searcher byte order List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0abea942d6d0c7b5200d063a85206b98b2a5505c Auto-Submitted: auto-generated Date: Thu, 29 Oct 2026 06:48:58 +0000 Message-Id: <6ae2ec5a.3ef51.72f17994@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=0abea942d6d0c7b5200d063a85206b98b2a5505c commit 0abea942d6d0c7b5200d063a85206b98b2a5505c Author: Kevin Bowling AuthorDate: 2026-09-18 08:29:18 +0000 Commit: Kevin Bowling CommitDate: 2026-10-29 06:46:36 +0000 bxe: Program the common RSS key in searcher byte order Use the common RSS key instead of generating private random words. Reverse the bytes before passing the key to the shared code, which copies the supplied bytes directly into the firmware request. The searcher consumes this array in reverse order; a raw copy of the common key would not produce matching Toeplitz hashes. The hardware ordering is documented by Linux commit d682d2bdc30650a5c7ce9908ab83ab674b658744 ("bnx2x: byte swap rss_key to comply to Toeplitz specs"). Keep the conversion in the FreeBSD caller rather than changing the shared-code interface. Preserve the config_hash gate, including the PMF-only key programming on 57710/57711, and leave hash types and indirection policy unchanged. Reviewed by: gallatin Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59796 (cherry picked from commit 9b374ad2b3f3b0f4e6c9d4e78859a429b6b282d6) --- sys/dev/bxe/bxe.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sys/dev/bxe/bxe.c b/sys/dev/bxe/bxe.c index 3e7120a42a90..02d317775231 100644 --- a/sys/dev/bxe/bxe.c +++ b/sys/dev/bxe/bxe.c @@ -30,6 +30,7 @@ #define BXE_DRIVER_VERSION "1.78.91" #include "bxe.h" +#include #include "ecore_sp.h" #include "ecore_init.h" #include "ecore_init_ops.h" @@ -11478,7 +11479,6 @@ bxe_config_rss_pf(struct bxe_softc *sc, uint8_t config_hash) { struct ecore_config_rss_params params = { NULL }; - int i; /* * Although RSS is meaningless when there is a single HW queue we @@ -11509,10 +11509,15 @@ bxe_config_rss_pf(struct bxe_softc *sc, memcpy(params.ind_table, rss_obj->ind_table, sizeof(params.ind_table)); if (config_hash) { - /* RSS keys */ - for (i = 0; i < sizeof(params.rss_key) / 4; i++) { - params.rss_key[i] = arc4random(); - } + uint8_t key[RSS_KEYSIZE]; + unsigned int i; + + /* The searcher consumes the key in reverse byte order. */ + _Static_assert(sizeof(params.rss_key) == RSS_KEYSIZE, + "RSS key size mismatch"); + rss_getkey(key); + for (i = 0; i < sizeof(key); i++) + ((uint8_t *)params.rss_key)[sizeof(key) - 1 - i] = key[i]; bxe_set_bit(ECORE_RSS_SET_SRCH, ¶ms.rss_flags); }