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: 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>,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Robert Marko <robimarko@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Puneet Gupta <puneet.gupta@amd.com>,
	Abhijit Gangurde <abhijit.gangurde@amd.com>,
	Umang Jain <umang.jain@ideasonboard.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [net-next RFC PATCH 1/6] net: phy: add support for defining multiple PHY IDs in PHY driver
Date: Sun, 18 Feb 2024 20:34:16 +0000	[thread overview]
Message-ID: <ZdJpyGkFRiRufySw@shell.armlinux.org.uk> (raw)
In-Reply-To: <65d2682a.5d0a0220.3fef2.efe4@mx.google.com>

On Sun, Feb 18, 2024 at 09:27:22PM +0100, Christian Marangi wrote:
> On Sun, Feb 18, 2024 at 09:10:30PM +0100, Andrew Lunn wrote:
> > > > > +	phy_dev_id = (struct mdio_device_id *)&phydev->dev_id;
> > > > 
> > > > Why this cast? Try to write code that doesn't need casts.
> > > > 
> > > 
> > > This cast is needed to keep the dev_id const in the phy_device struct so
> > > that other are warned to not modify it and should only be handled by
> > > phy_probe since it's the one that fills it.
> > > 
> > > Alternative is to drop const and drop the warning.
> > 
> > Can you propagate the const. Make phy_dev_id point to a const?
> >
> 
> Mhh not following, I tried changing to const struct mdio_device_id *phy_dev_id
> but that results in memcpy complain (dest is void * not const) and
> writing in read-only for the single PHY part (the else part)
> 
> An alternative might be to make dev_id a pointer in struct phy_device
> and dynamically allocate a mdio_device_id for the case of single PHY
> (else case). That effectively remove the need of this cast but I would
> love to skip checking for -ENOMEM (this is why i made that local)
> 
> If it's OK to dynamically allocate for the else case then I will make
> this change. I just tested this implementation and works correctly with
> not warning.

Why do we need memcpy() etc - as I demonstrated in my proposal, it's
not necessary if we introduce a mdio_device_id within struct phy_driver
and we can just store a const pointer to the mdio_device_id that
matched. That was very much an intentional decision in my proposal to
make the code simple.

-- 
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:[~2024-02-18 20:34 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-18 19:00 [net-next RFC PATCH 0/6] net: phy: support multi PHY in phy_driver Was: net: phy: detach PHY driver OPs from phy_driver struct Christian Marangi
2024-02-18 19:00 ` [net-next RFC PATCH 1/6] net: phy: add support for defining multiple PHY IDs in PHY driver Christian Marangi
2024-02-18 19:33   ` Russell King (Oracle)
2024-02-18 19:57     ` Christian Marangi
2024-02-18 20:10       ` Andrew Lunn
2024-02-18 20:27         ` Christian Marangi
2024-02-18 20:34           ` Russell King (Oracle) [this message]
2024-02-18 20:44             ` Christian Marangi
2024-02-18 21:06               ` Russell King (Oracle)
2024-02-18 22:07               ` Andrew Lunn
2024-02-18 19:00 ` [net-next RFC PATCH 2/6] net: phy: fill phy_id with C45 PHY Christian Marangi
2024-02-18 19:35   ` Russell King (Oracle)
2024-02-18 19:59     ` Christian Marangi
2024-02-18 19:00 ` [net-next RFC PATCH 3/6] mod_devicetable: permit to define a name for an mdio_device_id Christian Marangi
2024-02-18 19:00 ` [net-next RFC PATCH 4/6] net: phy: support named mdio_device_id PHY IDs Christian Marangi
2024-02-18 19:00 ` [net-next RFC PATCH 5/6] net: phy: aquantia: group common OPs for PHYs where possible Christian Marangi
2024-02-18 19:00 ` [net-next RFC PATCH 6/6] net: phy: bcm7xxx: rework phy_driver table to new multiple PHY ID format Christian Marangi
2024-02-19  4:26   ` Florian Fainelli
2024-02-19 16:41     ` Christian Marangi
2024-02-19 20:15       ` Florian Fainelli
2024-02-19 22:00         ` Christian Marangi

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=ZdJpyGkFRiRufySw@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=abhijit.gangurde@amd.com \
    --cc=andrew@lunn.ch \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=ansuelsmth@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hkallweit1@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nipun.gupta@amd.com \
    --cc=pabeni@redhat.com \
    --cc=pieter.jansen-van-vuuren@amd.com \
    --cc=puneet.gupta@amd.com \
    --cc=robimarko@gmail.com \
    --cc=umang.jain@ideasonboard.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.