• Rahul Lakkireddy's avatar
    cxgb4: avoid link re-train during TC-MQPRIO configuration · 3822d067
    Rahul Lakkireddy authored
    When configuring TC-MQPRIO offload, only turn off netdev carrier and
    don't bring physical link down in hardware. Otherwise, when the
    physical link is brought up again after configuration, it gets
    re-trained and stalls ongoing traffic.
    
    Also, when firmware is no longer accessible or crashed, avoid sending
    FLOWC and waiting for reply that will never come.
    
    Fix following hung_task_timeout_secs trace seen in these cases.
    
    INFO: task tc:20807 blocked for more than 122 seconds.
          Tainted: G S                5.13.0-rc3+ #122
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    task:tc   state:D stack:14768 pid:20807 ppid: 19366 flags:0x00000000
    Call Trace:
     __schedule+0x27b/0x6a0
     schedule+0x37/0xa0
     schedule_preempt_disabled+0x5/0x10
     __mutex_lock.isra.14+0x2a0/0x4a0
     ? netlink_lookup+0x120/0x1a0
     ? rtnl_fill_ifinfo+0x10f0/0x10f0
     __netlink_dump_start+0x70/0x250
     rtnetlink_rcv_msg+0x28b/0x380
     ? rtnl_fill_ifinfo+0x10f0/0x10f0
     ? rtnl_calcit.isra.42+0x120/0x120
     netlink_rcv_skb+0x4b/0xf0
     netlink_unicast+0x1a0/0x280
     netlink_sendmsg+0x216/0x440
     sock_sendmsg+0x56/0x60
     __sys_sendto+0xe9/0x150
     ? handle_mm_fault+0x6d/0x1b0
     ? do_user_addr_fault+0x1c5/0x620
     __x64_sys_sendto+0x1f/0x30
     do_syscall_64+0x3c/0x80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x7f7f73218321
    RSP: 002b:00007ffd19626208 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    RAX: ffffffffffffffda RBX: 000055b7c0a8b240 RCX: 00007f7f73218321
    RDX: 0000000000000028 RSI: 00007ffd19626210 RDI: 0000000000000003
    RBP: 000055b7c08680ff R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 000055b7c085f5f6
    R13: 000055b7c085f60a R14: 00007ffd19636470 R15: 00007ffd196262a0
    
    Fixes: b1396c2b ("cxgb4: parse and configure TC-MQPRIO offload")
    Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3822d067
cxgb4_tc_mqprio.c 18.3 KB