[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260120040938.95789-2-takkozu@amazon.com>
Date: Tue, 20 Jan 2026 13:09:39 +0900
From: Takashi Kozu <takkozu@...zon.com>
To: <aleksandr.loktionov@...el.com>
CC: <andrew+netdev@...n.ch>, <anthony.l.nguyen@...el.com>,
<davem@...emloft.net>, <edumazet@...gle.com>,
<intel-wired-lan@...ts.osuosl.org>, <kuba@...nel.org>,
<netdev@...r.kernel.org>, <pabeni@...hat.com>, <piotr.kwapulinski@...el.com>,
<pmenzel@...gen.mpg.de>, <przemyslaw.kitszel@...el.com>,
<takkozu@...zon.com>, <enjuk@...zon.com>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v3 1/3] igb: prepare for RSS key get/set support
> From: "Loktionov, Aleksandr" <aleksandr.loktionov@...el.com>
> To: Takashi Kozu <takkozu@...zon.com>,
> "Nguyen, Anthony L" <anthony.l.nguyen@...el.com>
> Cc: "Kitszel, Przemyslaw" <przemyslaw.kitszel@...el.com>,
> "andrew+netdev@...n.ch" <andrew+netdev@...n.ch>,
> "davem@...emloft.net" <davem@...emloft.net>,
> "edumazet@...gle.com" <edumazet@...gle.com>,
> "kuba@...nel.org" <kuba@...nel.org>,
> "pabeni@...hat.com" <pabeni@...hat.com>,
> "intel-wired-lan@...ts.osuosl.org"
> <intel-wired-lan@...ts.osuosl.org>,
> "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
> "pmenzel@...gen.mpg.de" <pmenzel@...gen.mpg.de>,
> "Kwapulinski, Piotr" <piotr.kwapulinski@...el.com>
> Subject: Re: [Intel-wired-lan] [PATCH iwl-next v3 1/3] igb: prepare for RSS key get/set support
> Date: Mon, 19 Jan 2026 10:19:02 +0000 [thread overview]
> Message-ID: <IA3PR11MB898693239F08B055E714E430E588A@...PR11MB8986.namprd11.prod.outlook.com> (raw)
> In-Reply-To: <20260119084511.95287-6-takkozu@...zon.com>
>
>
>
> > -----Original Message-----
> > From: Takashi Kozu <takkozu@...zon.com>
> > Sent: Monday, January 19, 2026 9:45 AM
> > To: Nguyen, Anthony L <anthony.l.nguyen@...el.com>
> > Cc: Kitszel, Przemyslaw <przemyslaw.kitszel@...el.com>;
> > andrew+netdev@...n.ch; davem@...emloft.net; edumazet@...gle.com;
> > kuba@...nel.org; pabeni@...hat.com; intel-wired-lan@...ts.osuosl.org;
> > netdev@...r.kernel.org; Loktionov, Aleksandr
> > <aleksandr.loktionov@...el.com>; pmenzel@...gen.mpg.de; Kwapulinski,
> > Piotr <piotr.kwapulinski@...el.com>; Takashi Kozu <takkozu@...zon.com>
> > Subject: [PATCH iwl-next v3 1/3] igb: prepare for RSS key get/set
> > support
> >
> > Store the RSS key inside struct igb_adapter and introduce the
> > igb_write_rss_key() helper function. This allows the driver to program
> > the E1000 registers using a persistent RSS key, instead of using a
> > stack-local buffer in igb_setup_mrqc().
> >
> > Signed-off-by: Takashi Kozu <takkozu@...zon.com>
> > ---
> > drivers/net/ethernet/intel/igb/igb.h | 3 +++
> > drivers/net/ethernet/intel/igb/igb_ethtool.c | 21
> > ++++++++++++++++++++
> > drivers/net/ethernet/intel/igb/igb_main.c | 8 ++++----
> > 3 files changed, 28 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/intel/igb/igb.h
> > b/drivers/net/ethernet/intel/igb/igb.h
> > index 0fff1df81b7b..8c9b02058cec 100644
> > --- a/drivers/net/ethernet/intel/igb/igb.h
> > +++ b/drivers/net/ethernet/intel/igb/igb.h
> > @@ -495,6 +495,7 @@ struct hwmon_buff {
> > #define IGB_N_PEROUT 2
> > #define IGB_N_SDP 4
> > #define IGB_RETA_SIZE 128
> > +#define IGB_RSS_KEY_SIZE 40
> >
> > enum igb_filter_match_flags {
> > IGB_FILTER_FLAG_ETHER_TYPE = 0x1,
> > @@ -655,6 +656,7 @@ struct igb_adapter {
> > struct i2c_client *i2c_client;
> > u32 rss_indir_tbl_init;
> > u8 rss_indir_tbl[IGB_RETA_SIZE];
> > + u8 rss_key[IGB_RSS_KEY_SIZE];
> >
> > unsigned long link_check_timeout;
> > int copper_tries;
> > @@ -735,6 +737,7 @@ void igb_down(struct igb_adapter *); void
> > igb_reinit_locked(struct igb_adapter *); void igb_reset(struct
> > igb_adapter *); int igb_reinit_queues(struct igb_adapter *);
> > +void igb_write_rss_key(struct igb_adapter *adapter);
> > void igb_write_rss_indir_tbl(struct igb_adapter *); int
> > igb_set_spd_dplx(struct igb_adapter *, u32, u8); int
> > igb_setup_tx_resources(struct igb_ring *); diff --git
> > a/drivers/net/ethernet/intel/igb/igb_ethtool.c
> > b/drivers/net/ethernet/intel/igb/igb_ethtool.c
> > index 10e2445e0ded..5107b0de4fa3 100644
> > --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
> > +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
> > @@ -3016,6 +3016,27 @@ static int igb_set_rxnfc(struct net_device
> > *dev, struct ethtool_rxnfc *cmd)
> > return ret;
> > }
> >
> > +/**
> > + info.plist igb_write_rss_key - Program the RSS key into device registers
> > + info.plist @adapter: board private structure
> > + info.plist
> > + info.plist Write the RSS key stored in adapter->rss_key to the E1000 hardware
> > registers.
> > + info.plist Each 32-bit chunk of the key is read using get_unaligned_le32()
> > and
> > +written
> > + info.plist to the appropriate register.
> > + */
> > +void igb_write_rss_key(struct igb_adapter *adapter) {
> Opening brace placement violates kernel coding style. For functions,
> the opening brace should be on the next line, not on the same line as the function declaration.
> Or is it my mail-client issue?
>From my side, the opening brace is correctly on the next line.
```
+void igb_write_rss_key(struct igb_adapter *adapter)
+{
```
> > + ASSERT_RTNL();
> > +
> > + struct e1000_hw *hw = &adapter->hw;
> Declarations should be at the start of the block.
> I think ASSERT_RTNL(); can be moved down safely?
Thanks for pointing out. I'll fix this.
Powered by blists - more mailing lists