Revision 976ee3b21119dcf5c6d96233d688a1453f29fa83 authored by Shannon Nelson on 09 June 2020, 03:41:43 UTC, committed by David S. Miller on 09 June 2020, 20:19:27 UTC
The netif_running() test looks at __LINK_STATE_START which gets set before ndo_open() is called, there is a window of time between that and when the queues are actually ready to be run. If ionic_check_link_status() notices that the link is up very soon after netif_running() becomes true, it might try to run the queues before they are ready, causing all manner of potential issues. Since the netdev->flags IFF_UP isn't set until after ndo_open() returns, we can wait for that before we allow ionic_check_link_status() to start the queues. On the way back to close, __LINK_STATE_START is cleared before calling ndo_stop(), and IFF_UP is cleared after. Both of these need to be true in order to safely stop the queues from ionic_check_link_status(). Fixes: 49d3b493673a ("ionic: disable the queues on link down") Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 1a3db27
File | Mode | Size |
---|---|---|
.gitignore | -rw-r--r-- | 696 bytes |
Makefile | -rw-r--r-- | 10.4 KB |
Makefile.target | -rw-r--r-- | 2.5 KB |
README.rst | -rw-r--r-- | 3.1 KB |
asm_goto_workaround.h | -rw-r--r-- | 725 bytes |
bpf_insn.h | -rw-r--r-- | 5.4 KB |
bpf_load.c | -rw-r--r-- | 16.0 KB |
bpf_load.h | -rw-r--r-- | 1.5 KB |
cookie_uid_helper_example.c | -rw-r--r-- | 9.2 KB |
cpustat_kern.c | -rw-r--r-- | 7.0 KB |
cpustat_user.c | -rw-r--r-- | 4.7 KB |
do_hbm_test.sh | -rwxr-xr-x | 12.1 KB |
fds_example.c | -rw-r--r-- | 4.2 KB |
hash_func01.h | -rw-r--r-- | 1.3 KB |
hbm.c | -rw-r--r-- | 13.2 KB |
hbm.h | -rw-r--r-- | 1.2 KB |
hbm_edt_kern.c | -rw-r--r-- | 5.3 KB |
hbm_kern.h | -rw-r--r-- | 5.7 KB |
hbm_out_kern.c | -rw-r--r-- | 5.5 KB |
ibumad_kern.c | -rw-r--r-- | 3.0 KB |
ibumad_user.c | -rw-r--r-- | 2.5 KB |
lathist_kern.c | -rw-r--r-- | 2.1 KB |
lathist_user.c | -rw-r--r-- | 1.8 KB |
lwt_len_hist.sh | -rw-r--r-- | 956 bytes |
lwt_len_hist_kern.c | -rw-r--r-- | 1.9 KB |
lwt_len_hist_user.c | -rw-r--r-- | 1.6 KB |
map_perf_test_kern.c | -rw-r--r-- | 6.3 KB |
map_perf_test_user.c | -rw-r--r-- | 10.4 KB |
offwaketime_kern.c | -rw-r--r-- | 3.5 KB |
offwaketime_user.c | -rw-r--r-- | 2.4 KB |
parse_ldabs.c | -rw-r--r-- | 1.2 KB |
parse_simple.c | -rw-r--r-- | 1.3 KB |
parse_varlen.c | -rw-r--r-- | 3.4 KB |
run_cookie_uid_helper_example.sh | -rwxr-xr-x | 341 bytes |
sampleip_kern.c | -rw-r--r-- | 942 bytes |
sampleip_user.c | -rw-r--r-- | 4.8 KB |
sock_example.c | -rw-r--r-- | 2.9 KB |
sock_example.h | -rw-r--r-- | 814 bytes |
sock_flags_kern.c | -rw-r--r-- | 1.2 KB |
sockex1_kern.c | -rw-r--r-- | 661 bytes |
sockex1_user.c | -rw-r--r-- | 1.1 KB |
sockex2_kern.c | -rw-r--r-- | 4.8 KB |
sockex2_user.c | -rw-r--r-- | 1.2 KB |
sockex3_kern.c | -rw-r--r-- | 6.1 KB |
sockex3_user.c | -rw-r--r-- | 2.5 KB |
spintest_kern.c | -rw-r--r-- | 2.1 KB |
spintest_user.c | -rw-r--r-- | 1.2 KB |
syscall_nrs.c | -rw-r--r-- | 337 bytes |
syscall_tp_kern.c | -rw-r--r-- | 1.4 KB |
syscall_tp_user.c | -rw-r--r-- | 2.4 KB |
task_fd_query_kern.c | -rw-r--r-- | 416 bytes |
task_fd_query_user.c | -rw-r--r-- | 10.5 KB |
tc_l2_redirect.sh | -rwxr-xr-x | 4.9 KB |
tc_l2_redirect_kern.c | -rw-r--r-- | 6.0 KB |
tc_l2_redirect_user.c | -rw-r--r-- | 1.3 KB |
tcbpf1_kern.c | -rw-r--r-- | 2.6 KB |
tcp_basertt_kern.c | -rw-r--r-- | 1.7 KB |
tcp_bpf.readme | -rw-r--r-- | 1.1 KB |
tcp_bufs_kern.c | -rw-r--r-- | 2.1 KB |
tcp_clamp_kern.c | -rw-r--r-- | 2.7 KB |
tcp_cong_kern.c | -rw-r--r-- | 1.9 KB |
tcp_dumpstats_kern.c | -rw-r--r-- | 1.3 KB |
tcp_iw_kern.c | -rw-r--r-- | 2.2 KB |
tcp_rwnd_kern.c | -rw-r--r-- | 1.7 KB |
tcp_synrto_kern.c | -rw-r--r-- | 1.7 KB |
tcp_tos_reflect_kern.c | -rw-r--r-- | 1.8 KB |
test_cgrp2_array_pin.c | -rw-r--r-- | 2.1 KB |
test_cgrp2_attach.c | -rw-r--r-- | 4.6 KB |
test_cgrp2_sock.c | -rw-r--r-- | 6.2 KB |
test_cgrp2_sock.sh | -rwxr-xr-x | 2.9 KB |
test_cgrp2_sock2.c | -rw-r--r-- | 1.4 KB |
test_cgrp2_sock2.sh | -rwxr-xr-x | 1.5 KB |
test_cgrp2_tc.sh | -rwxr-xr-x | 4.2 KB |
test_cgrp2_tc_kern.c | -rw-r--r-- | 1.8 KB |
test_cls_bpf.sh | -rwxr-xr-x | 915 bytes |
test_current_task_under_cgroup_kern.c | -rw-r--r-- | 1.1 KB |
test_current_task_under_cgroup_user.c | -rw-r--r-- | 1.5 KB |
test_ipip.sh | -rwxr-xr-x | 5.6 KB |
test_lru_dist.c | -rw-r--r-- | 12.0 KB |
test_lwt_bpf.c | -rw-r--r-- | 6.0 KB |
test_lwt_bpf.sh | -rw-r--r-- | 9.0 KB |
test_map_in_map_kern.c | -rw-r--r-- | 3.9 KB |
test_map_in_map_user.c | -rw-r--r-- | 3.0 KB |
test_overhead_kprobe_kern.c | -rw-r--r-- | 1.1 KB |
test_overhead_raw_tp_kern.c | -rw-r--r-- | 361 bytes |
test_overhead_tp_kern.c | -rw-r--r-- | 832 bytes |
test_overhead_user.c | -rw-r--r-- | 3.6 KB |
test_override_return.sh | -rwxr-xr-x | 263 bytes |
test_probe_write_user_kern.c | -rw-r--r-- | 1.7 KB |
test_probe_write_user_user.c | -rw-r--r-- | 2.5 KB |
trace_common.h | -rw-r--r-- | 286 bytes |
trace_event_kern.c | -rw-r--r-- | 2.3 KB |
trace_event_user.c | -rw-r--r-- | 7.9 KB |
trace_output_kern.c | -rw-r--r-- | 613 bytes |
trace_output_user.c | -rw-r--r-- | 1.7 KB |
tracex1_kern.c | -rw-r--r-- | 1.5 KB |
tracex1_user.c | -rw-r--r-- | 1.1 KB |
tracex2_kern.c | -rw-r--r-- | 2.3 KB |
tracex2_user.c | -rw-r--r-- | 4.2 KB |
tracex3_kern.c | -rw-r--r-- | 2.1 KB |
tracex3_user.c | -rw-r--r-- | 3.8 KB |
tracex4_kern.c | -rw-r--r-- | 1.2 KB |
tracex4_user.c | -rw-r--r-- | 2.2 KB |
tracex5_kern.c | -rw-r--r-- | 2.2 KB |
tracex5_user.c | -rw-r--r-- | 2.4 KB |
tracex6_kern.c | -rw-r--r-- | 1.4 KB |
tracex6_user.c | -rw-r--r-- | 5.6 KB |
tracex7_kern.c | -rw-r--r-- | 339 bytes |
tracex7_user.c | -rw-r--r-- | 1.1 KB |
xdp1_kern.c | -rw-r--r-- | 2.1 KB |
xdp1_user.c | -rw-r--r-- | 3.4 KB |
xdp2_kern.c | -rw-r--r-- | 2.4 KB |
xdp2skb_meta.sh | -rwxr-xr-x | 4.5 KB |
xdp2skb_meta_kern.c | -rw-r--r-- | 3.0 KB |
xdp_adjust_tail_kern.c | -rw-r--r-- | 3.8 KB |
xdp_adjust_tail_user.c | -rw-r--r-- | 4.7 KB |
xdp_fwd_kern.c | -rw-r--r-- | 4.5 KB |
xdp_fwd_user.c | -rw-r--r-- | 3.8 KB |
xdp_monitor_kern.c | -rw-r--r-- | 6.6 KB |
xdp_monitor_user.c | -rw-r--r-- | 17.1 KB |
xdp_redirect_cpu_kern.c | -rw-r--r-- | 16.8 KB |
xdp_redirect_cpu_user.c | -rw-r--r-- | 20.7 KB |
xdp_redirect_kern.c | -rw-r--r-- | 2.1 KB |
xdp_redirect_map_kern.c | -rw-r--r-- | 2.2 KB |
xdp_redirect_map_user.c | -rw-r--r-- | 5.4 KB |
xdp_redirect_user.c | -rw-r--r-- | 5.4 KB |
xdp_router_ipv4_kern.c | -rw-r--r-- | 4.4 KB |
xdp_router_ipv4_user.c | -rw-r--r-- | 18.4 KB |
xdp_rxq_info_kern.c | -rw-r--r-- | 3.2 KB |
xdp_rxq_info_user.c | -rw-r--r-- | 14.1 KB |
xdp_sample_pkts_kern.c | -rw-r--r-- | 1.6 KB |
xdp_sample_pkts_user.c | -rw-r--r-- | 4.1 KB |
xdp_tx_iptunnel_common.h | -rw-r--r-- | 485 bytes |
xdp_tx_iptunnel_kern.c | -rw-r--r-- | 5.6 KB |
xdp_tx_iptunnel_user.c | -rw-r--r-- | 7.5 KB |
xdpsock.h | -rw-r--r-- | 167 bytes |
xdpsock_kern.c | -rw-r--r-- | 593 bytes |
xdpsock_user.c | -rw-r--r-- | 27.8 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...