Re: [PATCH net-next] net: phy: Cleanup struct mdio_driver_common

From: Yajun Deng
Date: Tue Jan 02 2024 - 21:03:38 EST



On 2024/1/3 01:34, Russell King (Oracle) wrote:
On Thu, Dec 28, 2023 at 03:23:50PM +0800, Yajun Deng wrote:
The struct mdio_driver_common is a wrapper for driver-model structure,
it contains device_driver and flags. There are only struct phy_driver
and mdio_driver that use it. The flags is used to distinguish between
struct phy_driver and mdio_driver.

We can test that if probe of device_driver is equal to phy_probe. This
way, the struct mdio_driver_common is no longer needed, and struct
phy_driver and usb_mdio_driver will be consistent with other driver
structs.
usb_mdio_driver?

This is a mistake. It should be 'mdio_driver'.


I'm not sure why this consistency is even desired, the commit message
doesn't properly say _why_ this change is being proposed.

Most drivers use device_driver directly. This should be added to the commit.

Like this:

struct sdio_driver {

... ...

        struct device_driver drv;
};


struct pcie_port_service_driver {

... ...

        struct device_driver driver;
};

and so on ...



+bool is_phy_driver(struct device_driver *driver)
+{
+ return driver->probe == phy_probe;
+}
+EXPORT_SYMBOL_GPL(is_phy_driver);
Do we really need this exported? It doesn't seem like something anything
other than core MDIO/phylib code should know about, and all that becomes
a single module when building it in a modular way - phylib can't be a
separate module from mdio stuff.
I think this exported can be removed.