All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Golle <daniel@makrotopia.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org, linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Sean Wang <sean.wang@mediatek.com>,
	Landen Chao <Landen.Chao@mediatek.com>,
	DENG Qingfang <dqfext@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Sam Shih <Sam.Shih@mediatek.com>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	John Crispin <john@phrozen.org>, Felix Fietkau <nbd@nbd.name>
Subject: Re: [RFC PATCH net-next v3 03/15] net: dsa: mt7530: use regmap to access switch register space
Date: Wed, 29 Mar 2023 19:33:17 +0100	[thread overview]
Message-ID: <ZCSEbUt9kj8Ta6Yc@makrotopia.org> (raw)
In-Reply-To: <7eb07ed2-2b1c-44fa-b029-0ecad7872fd2@lunn.ch>

On Wed, Mar 29, 2023 at 06:24:21PM +0200, Andrew Lunn wrote:
> Thanks for splitting this patchset up. This is much easier to review.
> 
> > +static u32
> > +mt7530_mii_read(struct mt7530_priv *priv, u32 reg)
> > +{
> > +	int ret;
> > +	u32 val;
> > +
> > +	ret = regmap_read(priv->regmap, reg, &val);
> > +	if (ret) {
> > +		dev_err(priv->dev,
> > +			"failed to read mt7530 register\n");
> > +		return ret;
> 
> This is a u32 function. ret should be negative on error, which is
> going to be turned positive in order to return a u32. So you probably
> want to make this an int function.

This is a pre-existing flaw in the code. As we are accessing 32-bit
registers there has just never been any meaningful error handling.
I guess the correct solution would be to not use the return value only
to indicate success or error, and use an additional u32* parameter for
the read value.

However, I was hestitating to convert all the calls (they are many) to
follow that improved paradigm.

Should I?


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Golle <daniel@makrotopia.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org, linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Sean Wang <sean.wang@mediatek.com>,
	Landen Chao <Landen.Chao@mediatek.com>,
	DENG Qingfang <dqfext@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Sam Shih <Sam.Shih@mediatek.com>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	John Crispin <john@phrozen.org>, Felix Fietkau <nbd@nbd.name>
Subject: Re: [RFC PATCH net-next v3 03/15] net: dsa: mt7530: use regmap to access switch register space
Date: Wed, 29 Mar 2023 19:33:17 +0100	[thread overview]
Message-ID: <ZCSEbUt9kj8Ta6Yc@makrotopia.org> (raw)
In-Reply-To: <7eb07ed2-2b1c-44fa-b029-0ecad7872fd2@lunn.ch>

On Wed, Mar 29, 2023 at 06:24:21PM +0200, Andrew Lunn wrote:
> Thanks for splitting this patchset up. This is much easier to review.
> 
> > +static u32
> > +mt7530_mii_read(struct mt7530_priv *priv, u32 reg)
> > +{
> > +	int ret;
> > +	u32 val;
> > +
> > +	ret = regmap_read(priv->regmap, reg, &val);
> > +	if (ret) {
> > +		dev_err(priv->dev,
> > +			"failed to read mt7530 register\n");
> > +		return ret;
> 
> This is a u32 function. ret should be negative on error, which is
> going to be turned positive in order to return a u32. So you probably
> want to make this an int function.

This is a pre-existing flaw in the code. As we are accessing 32-bit
registers there has just never been any meaningful error handling.
I guess the correct solution would be to not use the return value only
to indicate success or error, and use an additional u32* parameter for
the read value.

However, I was hestitating to convert all the calls (they are many) to
follow that improved paradigm.

Should I?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-03-29 18:33 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-29 15:57 [RFC PATCH net-next v3 00/15] net: dsa: add support for MT7988 Daniel Golle
2023-03-29 15:57 ` Daniel Golle
2023-03-29 15:57 ` [RFC PATCH net-next v3 01/15] net: dsa: mt7530: refactor SGMII PCS creation Daniel Golle
2023-03-29 15:57   ` Daniel Golle
2023-03-29 15:57 ` [RFC PATCH net-next v3 02/15] net: dsa: mt7530: use unlocked regmap accessors Daniel Golle
2023-03-29 15:57   ` Daniel Golle
2023-03-29 15:57 ` [RFC PATCH net-next v3 03/15] net: dsa: mt7530: use regmap to access switch register space Daniel Golle
2023-03-29 15:57   ` Daniel Golle
2023-03-29 16:24   ` Andrew Lunn
2023-03-29 16:24     ` Andrew Lunn
2023-03-29 18:33     ` Daniel Golle [this message]
2023-03-29 18:33       ` Daniel Golle
2023-03-29 19:35       ` Andrew Lunn
2023-03-29 19:35         ` Andrew Lunn
2023-03-29 15:58 ` [RFC PATCH net-next v3 04/15] net: dsa: mt7530: move SGMII PCS creation to mt7530_probe function Daniel Golle
2023-03-29 15:58   ` Daniel Golle
2023-03-29 15:58 ` [RFC PATCH net-next v3 05/15] net: dsa: mt7530: introduce mutex helpers Daniel Golle
2023-03-29 15:58   ` Daniel Golle
2023-03-29 16:27   ` Andrew Lunn
2023-03-29 16:27     ` Andrew Lunn
2023-03-29 15:58 ` [RFC PATCH net-next v3 06/15] net: dsa: mt7530: move p5_intf_modes() function to mt7530.c Daniel Golle
2023-03-29 15:58   ` Daniel Golle
2023-03-29 16:28   ` Andrew Lunn
2023-03-29 16:28     ` Andrew Lunn
2023-03-29 15:58 ` [RFC PATCH net-next v3 07/15] net: dsa: mt7530: introduce mt7530_probe_common helper function Daniel Golle
2023-03-29 15:58   ` Daniel Golle
2023-03-29 16:34   ` Andrew Lunn
2023-03-29 16:34     ` Andrew Lunn
2023-03-29 15:59 ` [RFC PATCH net-next v3 08/15] net: dsa: mt7530: introduce mt7530_remove_common " Daniel Golle
2023-03-29 15:59   ` Daniel Golle
2023-03-29 16:34   ` Andrew Lunn
2023-03-29 16:34     ` Andrew Lunn
2023-03-29 15:59 ` [RFC PATCH net-next v3 09/15] net: dsa: mt7530: split-off common parts from mt7531_setup Daniel Golle
2023-03-29 15:59   ` Daniel Golle
2023-03-29 16:35   ` Andrew Lunn
2023-03-29 16:35     ` Andrew Lunn
2023-03-29 15:59 ` [RFC PATCH net-next v3 10/15] net: dsa: mt7530: introduce separate MDIO driver Daniel Golle
2023-03-29 15:59   ` Daniel Golle
2023-03-29 16:38   ` Andrew Lunn
2023-03-29 16:38     ` Andrew Lunn
2023-03-29 15:59 ` [RFC PATCH net-next v3 11/15] net: dsa: mt7530: skip locking if MDIO bus isn't present Daniel Golle
2023-03-29 15:59   ` Daniel Golle
2023-03-29 16:39   ` Andrew Lunn
2023-03-29 16:39     ` Andrew Lunn
2023-03-29 16:00 ` [RFC PATCH net-next v3 12/15] net: dsa: mt7530: add support for single-chip reset line Daniel Golle
2023-03-29 16:00   ` Daniel Golle
2023-03-29 16:44   ` Andrew Lunn
2023-03-29 16:44     ` Andrew Lunn
2023-03-29 16:00 ` [RFC PATCH net-next v3 13/15] net: dsa: mt7530: add support for 10G link modes for CPU port Daniel Golle
2023-03-29 16:00   ` Daniel Golle
2023-03-29 16:48   ` Andrew Lunn
2023-03-29 16:48     ` Andrew Lunn
2023-03-29 16:00 ` [RFC PATCH net-next v3 14/15] net: dsa: mt7530: introduce driver for MT7988 built-in switch Daniel Golle
2023-03-29 16:00   ` Daniel Golle
2023-03-29 16:57   ` Andrew Lunn
2023-03-29 16:57     ` Andrew Lunn
2023-03-29 19:05     ` Daniel Golle
2023-03-29 19:05       ` Daniel Golle
2023-03-29 16:00 ` [RFC PATCH net-next v3 15/15] dt-bindings: net: dsa: mediatek,mt7530: add mediatek,mt7988-switch Daniel Golle
2023-03-29 16:02   ` Daniel Golle
2023-03-29 16:02   ` Daniel Golle
2023-03-29 16:00   ` Daniel Golle

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=ZCSEbUt9kj8Ta6Yc@makrotopia.org \
    --to=daniel@makrotopia.org \
    --cc=Landen.Chao@mediatek.com \
    --cc=Sam.Shih@mediatek.com \
    --cc=andrew@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=davem@davemloft.net \
    --cc=dqfext@gmail.com \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=john@phrozen.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=lorenzo@kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=p.zabel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=sean.wang@mediatek.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.