diff --git a/net/eth.c b/net/eth.c
index c46a8c30500130bff53f4766d15724500c94bfdb..26520d303885ea1e77e396b7f175d13f0299417b 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -195,10 +195,11 @@ struct udevice *eth_get_dev_by_name(const char *devname)
 	const char *startp = NULL;
 	struct udevice *it;
 	struct uclass *uc;
+	int len = strlen("eth");
 
 	/* Must be longer than 3 to be an alias */
-	if (strlen(devname) > strlen("eth")) {
-		startp = devname + strlen("eth");
+	if (!strncmp(devname, "eth", len) && strlen(devname) > len) {
+		startp = devname + len;
 		seq = simple_strtoul(startp, &endp, 10);
 	}