diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c
index df360042be8d887b83d6eee98869026395d9741b..9424fb2bb69cc697ea0fb3ab1a1dc54f511d7aec 100644
--- a/drivers/net/cs8900.c
+++ b/drivers/net/cs8900.c
@@ -308,14 +308,13 @@ int cs8900_initialize(u8 dev_num, int base_addr)
 
 	dev = malloc(sizeof(*dev));
 	if (!dev) {
-		free(dev);
 		return 0;
 	}
 	memset(dev, 0, sizeof(*dev));
 
 	priv = malloc(sizeof(*priv));
 	if (!priv) {
-		free(priv);
+		free(dev);
 		return 0;
 	}
 	memset(priv, 0, sizeof(*priv));