net: phy: ensure that phy IDs are correctly typed
authorRussell King <rmk+kernel@armlinux.org.uk>
Thu, 19 Dec 2019 23:24:52 +0000 (23:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Dec 2019 05:48:06 +0000 (21:48 -0800)
PHY IDs are 32-bit unsigned quantities. Ensure that they are always
treated as such, and not passed around as "int"s.

Fixes: 13d0ab6750b2 ("net: phy: check return code when requesting PHY driver module")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c
include/linux/phy.h

index 0887ed2bb0500ca702f20a6d9fd9feef7a0df61e..b13c52873ef5d75cbf8ed473db077a4fceb8d71d 100644 (file)
@@ -553,7 +553,7 @@ static const struct device_type mdio_bus_phy_type = {
        .pm = MDIO_BUS_PHY_PM_OPS,
 };
 
-static int phy_request_driver_module(struct phy_device *dev, int phy_id)
+static int phy_request_driver_module(struct phy_device *dev, u32 phy_id)
 {
        int ret;
 
@@ -565,15 +565,15 @@ static int phy_request_driver_module(struct phy_device *dev, int phy_id)
         * then modprobe isn't available.
         */
        if (IS_ENABLED(CONFIG_MODULES) && ret < 0 && ret != -ENOENT) {
-               phydev_err(dev, "error %d loading PHY driver module for ID 0x%08x\n",
-                          ret, phy_id);
+               phydev_err(dev, "error %d loading PHY driver module for ID 0x%08lx\n",
+                          ret, (unsigned long)phy_id);
                return ret;
        }
 
        return 0;
 }
 
-struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
+struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
                                     bool is_c45,
                                     struct phy_c45_device_ids *c45_ids)
 {
index 5032d453ac66a2a6d3643d6dc59b7dfaeb042346..dd4a91f1feaa8b0a44601e9a7ea2f95063a840c3 100644 (file)
@@ -1000,7 +1000,7 @@ int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum,
 int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
                     u16 mask, u16 set);
 
-struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
+struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
                                     bool is_c45,
                                     struct phy_c45_device_ids *c45_ids);
 #if IS_ENABLED(CONFIG_PHYLIB)