diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 0ee909c97fdfa91499eb60648e4d59a775c5faa0..0a41281e901d303b552ee5a20a453fd5578d9cca 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -14,6 +14,7 @@
 #include <net.h>
 #include <netdev.h>
 #include <config.h>
+#include <console.h>
 #include <malloc.h>
 #include <asm/io.h>
 #include <phy.h>
@@ -469,6 +470,11 @@ static int wait_for_bit(const char *func, u32 *reg, const u32 mask,
 		if (get_timer(start) > timeout)
 			break;
 
+		if (ctrlc()) {
+			puts("Abort\n");
+			return -EINTR;
+		}
+
 		udelay(1);
 	}