[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <280fdb18-4948-968d-faa6-23197cd2b23e@huawei.com>
Date: Mon, 25 Mar 2019 23:20:01 +0800
From: "wanghai (M)" <wanghai26@...wei.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
syzbot <syzbot+6024817a931b2830bc93@...kaller.appspotmail.com>
CC: <alexander.h.duyck@...el.com>, <amritha.nambiar@...el.com>,
<davem@...emloft.net>, <dmitry.torokhov@...il.com>,
<f.fainelli@...il.com>, <idosch@...lanox.com>, <joe@...ches.com>,
<linux-kernel@...r.kernel.org>, <netdev@...r.kernel.org>,
<stephen@...workplumber.org>, <syzkaller-bugs@...glegroups.com>,
<tyhicks@...onical.com>, <yuehaibing@...wei.com>
Subject: Re: kernel BUG at net/core/net-sysfs.c:LINE!
thanks , Can it be fixed like this?
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 4ff661f..e609c8d 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1745,16 +1745,21 @@ int netdev_register_kobject(struct net_device *ndev)
error = device_add(dev);
if (error)
- return error;
+ goto error_put_device;
error = register_queue_kobjects(ndev);
- if (error) {
- device_del(dev);
- return error;
- }
+ if (error)
+ goto error_device_del;
pm_runtime_set_memalloc_noio(dev, true);
+ return 0;
+
+error_device_del:
+ device_del(dev);
+error_put_device:
+ ndev->reg_state = NETREG_RELEASED;
+ put_device(dev);
return error;
}
在 2019/3/24 1:16, Andy Shevchenko 写道:
> Nice.
>
> I looked briefly in the flow of this report and it looks like the patch above
> should be reverted.
>
> The problem is not so easy to fix. One approach is to initialize device
> (and thus kobject) somewhere in alloc_netdev() and put device in free_netdev()
> respectively, but this might produce more interesting regressions.
Powered by blists - more mailing lists