diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index c4ca7c930a46cec4fdcb6187407958224fbf77d4..ca2b21f9d44489f4008761764f520f90a8956053 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -271,7 +271,8 @@ static int __init ifb_init_module(void)
 	for (i = 0; i < numifbs && !err; i++)
 		err = ifb_init_one(i);
 	if (err) {
-		while (i--)
+		i--;
+		while (--i >= 0)
 			ifb_free_one(i);
 	}