All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list 
	<bcm-kernel-feedback-list@broadcom.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	David Epping <david.epping@missinglinkelectronics.com>,
	Harini Katakam <harini.katakam@amd.com>,
	Simon Horman <horms@kernel.org>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [net-next PATCH v6 1/3] net: phy: extend PHY package API to support multiple global address
Date: Wed, 13 Dec 2023 16:34:50 +0000	[thread overview]
Message-ID: <ZXndKlCTq12jf53y@shell.armlinux.org.uk> (raw)
In-Reply-To: <6579dab5.050a0220.8552a.d827@mx.google.com>

On Wed, Dec 13, 2023 at 05:24:18PM +0100, Christian Marangi wrote:
> On Wed, Dec 13, 2023 at 04:12:24PM +0000, Russell King (Oracle) wrote:
> > On Wed, Dec 13, 2023 at 04:50:33PM +0100, Christian Marangi wrote:
> > > On Wed, Dec 13, 2023 at 03:45:24PM +0000, Russell King (Oracle) wrote:
> > > > On Wed, Dec 13, 2023 at 11:57:28AM +0100, Christian Marangi wrote:
> > > > > -static inline int phy_package_read(struct phy_device *phydev, u32 regnum)
> > > > > +static inline int phy_package_read(struct phy_device *phydev,
> > > > > +				   unsigned int addr_offset, u32 regnum)
> > > > >  {
> > > > >  	struct phy_package_shared *shared = phydev->shared;
> > > > > +	int addr = shared->base_addr + addr_offset;
> > > > >  
> > > > > -	if (!shared)
> > > > > +	if (addr >= PHY_MAX_ADDR)
> > > > >  		return -EIO;
> > > > 
> > > > If we're going to check the address, I think we should check it
> > > > properly, which means also checking whether it's become negative.
> > > > 
> > > > Alternatively, we could consider making "addr" and "base_addr"
> > > > unsigned types, since they should never be negative. However,
> > > > that probably should be done as a separate patch before this one.
> > > >
> > > 
> > > Maybe I'm confused but isn't already like that?
> > > On phy_package_join base_addr is already checked if it's negative (and
> > > rejected)
> > > 
> > > addr_offset is unsigned so it can't be negative.
> > 
> > True, but with base_addr being an int, addr_offset being unsigned int,
> > and addr being an int, if addr_offset is a very large number,
> > 2-complement arithmetic will have the effect of treating it as a
> > negative number.
> > 
> > So, base_addr=0, addr_offset=~0 results in addr being -1.
> > 
> > If "addr" were unsigned int, and as we've already established,
> > "base_addr" can't be less than zero because of the checks already done
> > (thus it can also be unsigned int) then we'll end up with the checks
> > you're adding automatically doing the right thing, because...
> > 
> > base_addr=0, addr_offset=~0 results in addr being ~0 (a large
> > positive unsigned number).
> > 
> 
> Oh ok... now it makes sense. So I guess I should change "addr" to
> unsigned.
> 
> Considering I'm changing addr in phy_package_shared to base_addr would
> it be ok to change that also to unsigned (doesn't make sense to have
> that int) in this patch? Or should I create first a small patch before
> this to change addr type?

What I said when I mooted the use of unsigned was:

"Alternatively, we could consider making "addr" and "base_addr"
 unsigned types, since they should never be negative. However,
 that probably should be done as a separate patch before this
 one."

so my thoughts are that it should be a separate small patch - it's a
single logical change.

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

      reply	other threads:[~2023-12-13 16:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-13 10:57 [net-next PATCH v6 1/3] net: phy: extend PHY package API to support multiple global address Christian Marangi
2023-12-13 10:57 ` [net-next PATCH v6 2/3] net: phy: restructure __phy_write/read_mmd to helper and phydev user Christian Marangi
2023-12-13 15:39   ` Russell King (Oracle)
2023-12-13 10:57 ` [net-next PATCH v6 3/3] net: phy: add support for PHY package MMD read/write Christian Marangi
2023-12-13 15:47   ` Russell King (Oracle)
2023-12-13 15:55     ` Christian Marangi
2023-12-13 16:13       ` Russell King (Oracle)
2023-12-13 16:26         ` Christian Marangi
2023-12-14  2:13           ` Jakub Kicinski
2023-12-13 15:45 ` [net-next PATCH v6 1/3] net: phy: extend PHY package API to support multiple global address Russell King (Oracle)
2023-12-13 15:50   ` Christian Marangi
2023-12-13 16:12     ` Russell King (Oracle)
2023-12-13 16:24       ` Christian Marangi
2023-12-13 16:34         ` Russell King (Oracle) [this message]

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=ZXndKlCTq12jf53y@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=andrew@lunn.ch \
    --cc=ansuelsmth@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=davem@davemloft.net \
    --cc=david.epping@missinglinkelectronics.com \
    --cc=edumazet@google.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=harini.katakam@amd.com \
    --cc=hkallweit1@gmail.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --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 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.