mirror of
https://github.com/torvalds/linux.git
synced 2026-09-20 09:40:02 +02:00
Breno reports following splats on mlx5:
RTNL: assertion failed at net/core/dev.c (2241)
WARNING: net/core/dev.c:2241 at netif_state_change+0xed/0x130, CPU#5: ethtool/1335
RIP: 0010:netif_state_change+0xf9/0x130
Call Trace:
<TASK>
__linkwatch_sync_dev+0xea/0x120
ethtool_op_get_link+0xe/0x20
__ethtool_get_link+0x26/0x40
linkstate_prepare_data+0x51/0x200
ethnl_default_doit+0x213/0x470
genl_family_rcv_msg_doit+0xdd/0x110
Looks like I missed ethtool_op_get_link() trying to sync linkwatch,
which needs rtnl_lock. Not all drivers do this - bnxt doesn't,
it just returns the link state, so add an opt-in bit.
Reported-by: Breno Leitao <leitao@debian.org>
Fixes:
|
||
|---|---|---|
| .. | ||
| iavf_adminq_cmd.h | ||
| iavf_adminq.c | ||
| iavf_adminq.h | ||
| iavf_adv_rss.c | ||
| iavf_adv_rss.h | ||
| iavf_alloc.h | ||
| iavf_common.c | ||
| iavf_devids.h | ||
| iavf_ethtool.c | ||
| iavf_fdir.c | ||
| iavf_fdir.h | ||
| iavf_main.c | ||
| iavf_osdep.h | ||
| iavf_prototype.h | ||
| iavf_ptp.c | ||
| iavf_ptp.h | ||
| iavf_register.h | ||
| iavf_status.h | ||
| iavf_trace.h | ||
| iavf_txrx.c | ||
| iavf_txrx.h | ||
| iavf_type.h | ||
| iavf_types.h | ||
| iavf_virtchnl.c | ||
| iavf.h | ||
| Makefile | ||