| From 44780fa991640ee8c5fc4f4c47d5033a5c98895d Mon Sep 17 00:00:00 2001 |
| From: dingtianhong <dingtianhong@huawei.com> |
| Date: Thu, 11 Jul 2013 19:04:06 +0800 |
| Subject: ifb: fix oops when loading the ifb failed |
| |
| From: dingtianhong <dingtianhong@huawei.com> |
| |
| [ Upstream commit f2966cd5691058b8674a20766525bedeaea9cbcf ] |
| |
| If __rtnl_link_register() return faild when loading the ifb, it will |
| take the wrong path and get oops, so fix it just like dummy. |
| |
| Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ifb.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/net/ifb.c |
| +++ b/drivers/net/ifb.c |
| @@ -291,6 +291,8 @@ 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++) { |
| err = ifb_init_one(i); |
| @@ -298,6 +300,8 @@ static int __init ifb_init_module(void) |
| } |
| if (err) |
| __rtnl_link_unregister(&ifb_link_ops); |
| + |
| +out: |
| rtnl_unlock(); |
| |
| return err; |