git: 0f7bdeadaf9d - main - ixl: Initialize the extended RSS key

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Fri, 18 Sep 2026 22:48:52 UTC
The branch main has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=0f7bdeadaf9d8101993dd39abee3a6a2ef4e2950

commit 0f7bdeadaf9d8101993dd39abee3a6a2ef4e2950
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-09-18 08:29:16 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-09-18 22:47:44 +0000

    ixl: Initialize the extended RSS key
    
    Zero the complete 52-byte RSS key buffer before fetching the common
    40-byte key.  Both the X722 AdminQ path and the register path consume all
    52 bytes; the trailing extended-key bytes must not come from uninitialized
    stack storage.  This matches the zero padding already used by iavf and ice.
    
    Remove the unused driver-default key helper and its declaration.  Keep
    the standard key, hash selections, and indirection policy unchanged.
    
    Reviewed by:    gallatin
    MFC after:      2 weeks
    Sponsored by:   BBOX.io
    Differential Revision:  https://reviews.freebsd.org/D59791
---
 sys/dev/ixl/ixl.h         |  1 -
 sys/dev/ixl/ixl_pf_main.c |  2 +-
 sys/dev/ixl/ixl_txrx.c    | 17 -----------------
 3 files changed, 1 insertion(+), 19 deletions(-)

diff --git a/sys/dev/ixl/ixl.h b/sys/dev/ixl/ixl.h
index e265c8fbe3eb..2d21bf5c12de 100644
--- a/sys/dev/ixl/ixl.h
+++ b/sys/dev/ixl/ixl.h
@@ -516,7 +516,6 @@ extern const uint8_t ixl_bcast_addr[ETHER_ADDR_LEN];
 /* Common function prototypes between PF/VF driver */
 void		ixl_debug_core(device_t dev, u32 enabled_mask, u32 mask, char *fmt, ...);
 void		 ixl_init_tx_ring(struct ixl_vsi *vsi, struct ixl_tx_queue *que);
-void		 ixl_get_default_rss_key(u32 *);
 const char *	i40e_vc_stat_str(struct i40e_hw *hw,
     enum virtchnl_status_code stat_err);
 void		ixl_init_tx_rsqs(struct ixl_vsi *vsi);
diff --git a/sys/dev/ixl/ixl_pf_main.c b/sys/dev/ixl/ixl_pf_main.c
index 4c7907a5a9be..838e2178a110 100644
--- a/sys/dev/ixl/ixl_pf_main.c
+++ b/sys/dev/ixl/ixl_pf_main.c
@@ -1099,7 +1099,7 @@ ixl_set_rss_key(struct ixl_pf *pf)
 	struct i40e_hw *hw = &pf->hw;
 	struct ixl_vsi *vsi = &pf->vsi;
 	device_t	dev = pf->dev;
-	u32 rss_seed[IXL_RSS_KEY_SIZE_REG];
+	u32 rss_seed[IXL_RSS_KEY_SIZE_REG] = {0};
 	enum i40e_status_code status;
 
 	/* Fetch the configured RSS key */
diff --git a/sys/dev/ixl/ixl_txrx.c b/sys/dev/ixl/ixl_txrx.c
index d047733ecbbb..047bb468254b 100644
--- a/sys/dev/ixl/ixl_txrx.c
+++ b/sys/dev/ixl/ixl_txrx.c
@@ -86,23 +86,6 @@ struct if_txrx ixl_txrx_dwb = {
 	NULL
 };
 
-/*
- * @key key is saved into this parameter
- */
-void
-ixl_get_default_rss_key(u32 *key)
-{
-	MPASS(key != NULL);
-
-	u32 rss_seed[IXL_RSS_KEY_SIZE_REG] = {0x41b01687,
-	    0x183cfd8c, 0xce880440, 0x580cbc3c,
-	    0x35897377, 0x328b25e1, 0x4fa98922,
-	    0xb7d90c14, 0xd5bad70d, 0xcd15a2c1,
-	    0x0, 0x0, 0x0};
-
-	bcopy(rss_seed, key, IXL_RSS_KEY_SIZE);
-}
-
 /**
  * i40e_vc_stat_str - convert virtchnl status err code to a string
  * @hw: pointer to the HW structure