diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index d575043629d5ddc1f63689220c66be9bfeadae7f..6c670dd75f18c64ae9a48c64fcf17d60904cab9a 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -2171,6 +2171,8 @@ ar8xxx_phy_probe(struct phy_device *phydev)
 		swdev->devname, swdev->name, priv->chip_rev,
 		dev_name(&priv->mii_bus->dev));
 
+	list_add(&priv->list, &ar8xxx_dev_list);
+
 found:
 	priv->use_count++;
 
@@ -2199,8 +2201,6 @@ found:
 
 	phydev->priv = priv;
 
-	list_add(&priv->list, &ar8xxx_dev_list);
-
 	mutex_unlock(&ar8xxx_dev_list_lock);
 
 	return 0;