diff --git a/drivers/net/ax88796.c b/drivers/net/ax88796.c
index 55c9958043c43266c0d5b67350648f03f58143ee..20e946b1e744d9d0d4f4802969d05e8c640e5b17 100644
--- a/drivers/net/ax88796.c
+++ b/drivers/net/ax88796.c
@@ -481,8 +481,10 @@ static int ax_open(struct net_device *dev)
 		return ret;
 
 	ret = ax_ei_open(dev);
-	if (ret)
+	if (ret) {
+		free_irq(dev->irq, dev);
 		return ret;
+	}
 
 	/* turn the phy on (if turned off) */