Skip to content

Commit

Permalink
Merge branch 'net-usb-asix-ax88772-fix-potential-string-cut'
Browse files Browse the repository at this point in the history
Andy Shevchenko says:

====================
net: usb: asix: ax88772: Fix potential string cut

The agreement and also PHY_MAX_ADDR limit suggest that the PHY address
can't occupy more than two hex digits. In some cases GCC complains about
potential string cut. In course of fixing this, introduce the PHY_ID_SIZE
predefined constant to make it easier for the users to know the bare
minimum for the buffer that holds PHY ID string (patch 1). With that,
fix the ASIX driver that triggers GCC accordingly (patch 2).
====================

Link: https://patch.msgid.link/20250324144751.1271761-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jakub Kicinski committed Mar 25, 2025
2 parents 4f74a45 + 6199727 commit a19f40d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/net/usb/ax88172a.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
struct ax88172a_private {
struct mii_bus *mdio;
struct phy_device *phydev;
char phy_name[20];
u16 phy_addr;
char phy_name[PHY_ID_SIZE];
u8 phy_addr;
u16 oldmode;
int use_embdphy;
struct asix_rx_fixup_info rx_fixup_info;
Expand Down Expand Up @@ -210,7 +210,11 @@ static int ax88172a_bind(struct usbnet *dev, struct usb_interface *intf)
ret = asix_read_phy_addr(dev, priv->use_embdphy);
if (ret < 0)
goto free;

if (ret >= PHY_MAX_ADDR) {
netdev_err(dev->net, "Invalid PHY address %#x\n", ret);
ret = -ENODEV;
goto free;
}
priv->phy_addr = ret;

ax88172a_reset_phy(dev, priv->use_embdphy);
Expand Down Expand Up @@ -308,7 +312,7 @@ static int ax88172a_reset(struct usbnet *dev)
rx_ctl);

/* Connect to PHY */
snprintf(priv->phy_name, 20, PHY_ID_FMT,
snprintf(priv->phy_name, sizeof(priv->phy_name), PHY_ID_FMT,
priv->mdio->id, priv->phy_addr);

priv->phydev = phy_connect(dev->net, priv->phy_name,
Expand Down
1 change: 1 addition & 0 deletions include/linux/phy.h
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ static inline long rgmii_clock(int speed)

/* Used when trying to connect to a specific phy (mii bus id:phy device id) */
#define PHY_ID_FMT "%s:%02x"
#define PHY_ID_SIZE (MII_BUS_ID_SIZE + 3)

#define MII_BUS_ID_SIZE 61

Expand Down

0 comments on commit a19f40d

Please sign in to comment.