From: Simon Horman <horms@kernel.org>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Jose Abreu <joabreu@synopsys.com>,
linux-arm-kernel@lists.infradead.org,
linux-stm32@st-md-mailman.stormreply.com,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net-next v2 03/17] net: stmmac: use correct type for tx_lpi_timer
Date: Tue, 7 Jan 2025 14:41:03 +0000 [thread overview]
Message-ID: <20250107144103.GB5872@kernel.org> (raw)
In-Reply-To: <Z30WmPpMp_BRgrOI@shell.armlinux.org.uk>
On Tue, Jan 07, 2025 at 11:57:12AM +0000, Russell King (Oracle) wrote:
> On Tue, Jan 07, 2025 at 11:28:51AM +0000, Simon Horman wrote:
> > On Mon, Jan 06, 2025 at 12:24:58PM +0000, Russell King (Oracle) wrote:
> > > The ethtool interface uses u32 for tx_lpi_timer, and so does phylib.
> > > Use u32 to store this internally within stmmac rather than "int"
> > > which could misinterpret large values.
> > >
> > > Since eee_timer is used to initialise priv->tx_lpi_timer, this also
> > > should be unsigned to avoid a negative number being interpreted as a
> > > very large positive number.
> > >
> > > Also correct "value" in dwmac4_set_eee_lpi_entry_timer() to use u32
> > > rather than int, which is derived from tx_lpi_timer, even though
> > > masking with STMMAC_ET_MAX will truncate the sign bits. u32 is the
> > > value argument type for writel().
> > >
> > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> >
> > ...
> >
> > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > index 9a9169ca7cd2..b0ef439b715b 100644
> > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > > @@ -111,8 +111,8 @@ static const u32 default_msg_level = (NETIF_MSG_DRV | NETIF_MSG_PROBE |
> > > NETIF_MSG_IFDOWN | NETIF_MSG_TIMER);
> > >
> > > #define STMMAC_DEFAULT_LPI_TIMER 1000
> > > -static int eee_timer = STMMAC_DEFAULT_LPI_TIMER;
> > > -module_param(eee_timer, int, 0644);
> > > +static unsigned int eee_timer = STMMAC_DEFAULT_LPI_TIMER;
> > > +module_param(eee_timer, uint, 0644);
> > > MODULE_PARM_DESC(eee_timer, "LPI tx expiration time in msec");
> > > #define STMMAC_LPI_T(x) (jiffies + usecs_to_jiffies(x))
> > >
> >
> > Hi Russell,
> >
> > now that eee_timer is unsigned the following check in stmmac_verify_args()
> > can never be true. I guess it should be removed.
> >
> > if (eee_timer < 0)
> > eee_timer = STMMAC_DEFAULT_LPI_TIMER;
> >
>
> Thanks for finding that. The parameter description doesn't seem to
> detail whether this is intentional behaviour or not, or whether it is
> "because someone used int and we shouldn't have negative values here".
>
> I can't see why someone would pass a negative number for eee_timer
> given that it already defaults to STMMAC_DEFAULT_LPI_TIMER.
>
> So, I'm tempted to remove this.
I'm not sure either. It did cross my mind that the check could be changed,
to disallow illegal values (if the range of legal values is not all
possible unsigned integer values). But it was just an idea without any
inspection of the code or thought about it's practicality. And my first
instinct was the same as yours: remove the check.
next prev parent reply other threads:[~2025-01-07 14:41 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 12:24 [PATCH net-next 00/17] net: stmmac: clean up and fix EEE implementation Russell King (Oracle)
2025-01-06 12:24 ` [PATCH net-next v2 01/17] net: phy: add configuration of rx clock stop mode Russell King (Oracle)
2025-01-06 12:24 ` [PATCH net-next v2 02/17] net: stmmac: move tx_lpi_timer tracking to phylib Russell King (Oracle)
2025-01-06 16:44 ` Andrew Lunn
2025-01-06 12:24 ` [PATCH net-next v2 03/17] net: stmmac: use correct type for tx_lpi_timer Russell King (Oracle)
2025-01-06 16:45 ` Andrew Lunn
2025-01-07 16:34 ` Russell King (Oracle)
2025-01-07 11:28 ` Simon Horman
2025-01-07 11:57 ` Russell King (Oracle)
2025-01-07 14:41 ` Simon Horman [this message]
2025-01-07 15:26 ` Russell King (Oracle)
2025-01-08 9:42 ` Simon Horman
2025-01-06 12:25 ` [PATCH net-next v2 04/17] net: stmmac: make EEE depend on phy->enable_tx_lpi Russell King (Oracle)
2025-01-06 16:48 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 05/17] net: stmmac: remove redundant code from ethtool EEE ops Russell King (Oracle)
2025-01-06 16:49 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 06/17] net: stmmac: clean up stmmac_disable_eee_mode() Russell King (Oracle)
2025-01-06 16:50 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 07/17] net: stmmac: remove priv->tx_lpi_enabled Russell King (Oracle)
2025-01-06 16:50 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 08/17] net: stmmac: report EEE error statistics if EEE is supported Russell King (Oracle)
2025-01-06 16:51 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 09/17] net: stmmac: convert to use phy_eee_rx_clock_stop() Russell King (Oracle)
2025-01-06 17:02 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 10/17] net: stmmac: remove priv->eee_tw_timer Russell King (Oracle)
2025-01-06 17:02 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 11/17] net: stmmac: move priv->eee_enabled into stmmac_eee_init() Russell King (Oracle)
2025-01-06 17:04 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 12/17] net: stmmac: move priv->eee_active " Russell King (Oracle)
2025-01-06 17:05 ` Andrew Lunn
2025-01-07 7:28 ` kernel test robot
2025-01-06 12:25 ` [PATCH net-next v2 13/17] net: stmmac: use boolean for eee_enabled and eee_active Russell King (Oracle)
2025-01-06 17:05 ` Andrew Lunn
2025-01-06 12:25 ` [PATCH net-next v2 14/17] net: stmmac: move setup of eee_ctrl_timer to stmmac_dvr_probe() Russell King (Oracle)
2025-01-06 17:05 ` Andrew Lunn
2025-01-06 12:26 ` [PATCH net-next v2 15/17] net: stmmac: remove unnecessary EEE handling in stmmac_release() Russell King (Oracle)
2025-01-06 17:06 ` Andrew Lunn
2025-01-06 12:26 ` [PATCH net-next v2 16/17] net: stmmac: split hardware LPI timer control Russell King (Oracle)
2025-01-06 17:07 ` Andrew Lunn
2025-01-06 12:26 ` [PATCH net-next v2 17/17] net: stmmac: remove stmmac_lpi_entry_timer_config() Russell King (Oracle)
2025-01-06 17:08 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250107144103.GB5872@kernel.org \
--to=horms@kernel.org \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=joabreu@synopsys.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux@armlinux.org.uk \
--cc=mcoquelin.stm32@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).