diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
index 281c4536707b39f5d2fe34511b50a3d8e3ac6f8a..f0a92bcd7f8185c15dc9abfa579eaea7b2c60268 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
@@ -143,8 +143,10 @@ static int rtl8366_smi_wait_for_ack(struct rtl8366_smi *smi)
 		if (ack == 0)
 			break;
 
-		if (++retry_cnt > RTL8366_SMI_ACK_RETRY_COUNT)
-			return -EIO;
+		if (++retry_cnt > RTL8366_SMI_ACK_RETRY_COUNT) {
+			dev_err(smi->parent, "ACK timeout\n");
+			return -ETIMEDOUT;
+		}
 	} while (1);
 
 	return 0;