X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fifb.c;h=a3bed28197d29bf9722b6c586f311827d357b501;hb=53b87ce37e19939c80aaeaa5e8702b521597ce3e;hp=dc9f6a45515dacaa76fabb419ed82daa89d9a3d3;hpb=188af63c0af2d7ef395bc94e3efa173f34dae03d;p=deliverable%2Flinux.git diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c index dc9f6a45515d..a3bed28197d2 100644 --- a/drivers/net/ifb.c +++ b/drivers/net/ifb.c @@ -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;