Message ID | 20170713224625.6022-1-gvaradar@cisco.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c index 4996984885c2..03002bac93e7 100644 --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c @@ -331,7 +331,9 @@ int usnic_ib_query_port(struct ib_device *ibdev, u8 port, usnic_dbg("\n"); mutex_lock(&us_ibdev->usdev_lock); + rtnl_lock(); __ethtool_get_link_ksettings(us_ibdev->netdev, &cmd); + rtnl_unlock(); /* props being zeroed by the caller, avoid zeroing it here */ props->lid = 0;
__ethtool_get_link_ksettings requires rtnl lock. If not it throws the following warnning. [ 1855.996191] RTNL: assertion failed at net/core/ethtool.c (564) [ 1855.997084] CPU: 12 PID: 1866 Comm: kworker/12:0 Not tainted 4.12.0+ #47 [ 1855.997982] Hardware name: Cisco Systems Inc UCSC-C240-M4S2/UCSC-C240-M4S2, BIOS C240M4.2.0.12.503.0307172239 03/07/2017 [ 1855.998949] Workqueue: infiniband ib_cache_task [ib_core] [ 1855.999920] Call Trace: [ 1856.000872] dump_stack+0x63/0x8b [ 1856.001576] enic 0000:11:00.0 a0: Link DOWN [ 1856.002769] __ethtool_get_link_ksettings+0xfe/0x110 [ 1856.003733] ? netlink_broadcast_filtered+0x14b/0x3a0 [ 1856.004703] usnic_ib_query_port+0x46/0x1c0 [usnic_verbs] [ 1856.005680] ib_query_port+0x9e/0x120 [ib_core] [ 1856.006654] ib_cache_update+0xcf/0x430 [ib_core] [ 1856.007621] ? ib_cache_update+0xcf/0x430 [ib_core] [ 1856.008601] ? netdev_run_todo+0x51/0x2f0 [ 1856.009581] ? linkwatch_do_dev+0x38/0x50 [ 1856.010588] ib_cache_task+0x1e/0x30 [ib_core] [ 1856.011564] process_one_work+0x1bc/0x3e0 [ 1856.012528] worker_thread+0x4a/0x3a0 [ 1856.013486] kthread+0x125/0x140 [ 1856.014437] ? process_one_work+0x3e0/0x3e0 [ 1856.015378] ? kthread_create_on_node+0x40/0x40 [ 1856.016318] ret_from_fork+0x25/0x30 Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com> --- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 2 ++ 1 file changed, 2 insertions(+)