]> Pileus Git - ~andy/linux/blobdiff - drivers/net/ifb.c
ifb: fix oops when loading the ifb failed
[~andy/linux] / drivers / net / ifb.c
index dc9f6a45515dacaa76fabb419ed82daa89d9a3d3..a3bed28197d29bf9722b6c586f311827d357b501 100644 (file)
@@ -291,11 +291,17 @@ static int __init ifb_init_module(void)
 
        rtnl_lock();
        err = __rtnl_link_register(&ifb_link_ops);
+       if (err < 0)
+               goto out;
 
-       for (i = 0; i < numifbs && !err; i++)
+       for (i = 0; i < numifbs && !err; i++) {
                err = ifb_init_one(i);
+               cond_resched();
+       }
        if (err)
                __rtnl_link_unregister(&ifb_link_ops);
+
+out:
        rtnl_unlock();
 
        return err;