1. 24 11月, 2022 2 次提交
  2. 23 11月, 2022 4 次提交
  3. 22 11月, 2022 20 次提交
    • G
      tsnep: Fix rotten packets · 2dc4ac91
      Gerhard Engleder 提交于
      If PTP synchronisation is done every second, then sporadic the interval
      is higher than one second:
      
      ptp4l[696.582]: master offset        -17 s2 freq   -1891 path delay 573
      ptp4l[697.582]: master offset        -22 s2 freq   -1901 path delay 573
      ptp4l[699.368]: master offset         -1 s2 freq   -1887 path delay 573
            ^^^^^^^ Should be 698.582!
      
      This problem is caused by rotten packets, which are received after
      polling but before interrupts are enabled again. This can be fixed by
      checking for pending work and rescheduling if necessary after interrupts
      has been enabled again.
      
      Fixes: 403f69bb ("tsnep: Add TSN endpoint Ethernet MAC driver")
      Signed-off-by: NGerhard Engleder <gerhard@engleder-embedded.com>
      Link: https://lore.kernel.org/r/20221119211825.81805-1-gerhard@engleder-embedded.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
      2dc4ac91
    • Z
      octeontx2-pf: Remove duplicate MACSEC setting · bb3cfbaf
      Zheng Bin 提交于
      Commit 4581dd48 ("net: octeontx2-pf: mcs: consider MACSEC setting")
      has already added "depends on MACSEC || !MACSEC", so remove it.
      Signed-off-by: NZheng Bin <zhengbin13@huawei.com>
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Link: https://lore.kernel.org/r/20221119133616.3583538-1-zhengbin13@huawei.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
      bb3cfbaf
    • Y
      bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending() · 3637a29c
      Yang Yingliang 提交于
      As comment of pci_get_domain_bus_and_slot() says, it returns
      a pci device with refcount increment, when finish using it,
      the caller must decrement the reference count by calling
      pci_dev_put(). Call pci_dev_put() before returning from
      bnx2x_vf_is_pcie_pending() to avoid refcount leak.
      
      Fixes: b56e9670 ("bnx2x: Prepare device and initialize VF database")
      Suggested-by: NJakub Kicinski <kuba@kernel.org>
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: NLeon Romanovsky <leonro@nvidia.com>
      Link: https://lore.kernel.org/r/20221119070202.1407648-1-yangyingliang@huawei.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
      3637a29c
    • L
      net: sparx5: fix error handling in sparx5_port_open() · 4305fe23
      Liu Jian 提交于
      If phylink_of_phy_connect() fails, the port should be disabled.
      If sparx5_serdes_set()/phy_power_on() fails, the port should be
      disabled and the phylink should be stopped and disconnected.
      
      Fixes: 946e7fd5 ("net: sparx5: add port module support")
      Fixes: f3cad261 ("net: sparx5: add hostmode with phylink support")
      Signed-off-by: NLiu Jian <liujian56@huawei.com>
      Tested-by: NBjarni Jonasson <bjarni.jonasson@microchip.com>
      Reviewed-by: NSteen Hegelund <steen.hegelund@microchip.com>
      Link: https://lore.kernel.org/r/20221117125918.203997-1-liujian56@huawei.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
      4305fe23
    • Z
      sfc: fix potential memleak in __ef100_hard_start_xmit() · aad98abd
      Zhang Changzhong 提交于
      The __ef100_hard_start_xmit() returns NETDEV_TX_OK without freeing skb
      in error handling case, add dev_kfree_skb_any() to fix it.
      
      Fixes: 51b35a45 ("sfc: skeleton EF100 PF driver")
      Signed-off-by: NZhang Changzhong <zhangchangzhong@huawei.com>
      Acked-by: NMartin Habets <habetsm.xilinx@gmail.com>
      Reviewed-by: NLeon Romanovsky <leonro@nvidia.com>
      Link: https://lore.kernel.org/r/1668671409-10909-1-git-send-email-zhangchangzhong@huawei.comSigned-off-by: NPaolo Abeni <pabeni@redhat.com>
      aad98abd
    • J
      ice: fix handling of burst Tx timestamps · 30f15874
      Jacob Keller 提交于
      Commit 1229b339 ("ice: Add low latency Tx timestamp read") refactored
      PTP timestamping logic to use a threaded IRQ instead of a separate kthread.
      
      This implementation introduced ice_misc_intr_thread_fn and redefined the
      ice_ptp_process_ts function interface to return a value of whether or not
      the timestamp processing was complete.
      
      ice_misc_intr_thread_fn would take the return value from ice_ptp_process_ts
      and convert it into either IRQ_HANDLED if there were no more timestamps to
      be processed, or IRQ_WAKE_THREAD if the thread should continue processing.
      
      This is not correct, as the kernel does not re-schedule threaded IRQ
      functions automatically. IRQ_WAKE_THREAD can only be used by the main IRQ
      function.
      
      This results in the ice_ptp_process_ts function (and in turn the
      ice_ptp_tx_tstamp function) from only being called exactly once per
      interrupt.
      
      If an application sends a burst of Tx timestamps without waiting for a
      response, the interrupt will trigger for the first timestamp. However,
      later timestamps may not have arrived yet. This can result in dropped or
      discarded timestamps. Worse, on E822 hardware this results in the interrupt
      logic getting stuck such that no future interrupts will be triggered. The
      result is complete loss of Tx timestamp functionality.
      
      Fix this by modifying the ice_misc_intr_thread_fn to perform its own
      polling of the ice_ptp_process_ts function. We sleep for a few microseconds
      between attempts to avoid wasting significant CPU time. The value was
      chosen to allow time for the Tx timestamps to complete without wasting so
      much time that we overrun application wait budgets in the worst case.
      
      The ice_ptp_process_ts function also currently returns false in the event
      that the Tx tracker is not initialized. This would result in the threaded
      IRQ handler never exiting if it gets started while the tracker is not
      initialized.
      
      Fix the function to appropriately return true when the tracker is not
      initialized.
      
      Note that this will not reproduce with default ptp4l behavior, as the
      program always synchronously waits for a timestamp response before sending
      another timestamp request.
      Reported-by: NSiddaraju DH <siddaraju.dh@intel.com>
      Fixes: 1229b339 ("ice: Add low latency Tx timestamp read")
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      Link: https://lore.kernel.org/r/20221118222729.1565317-1-anthony.l.nguyen@intel.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      30f15874
    • E
      net/mlx5e: Fix possible race condition in macsec extended packet number update routine · 8514e325
      Emeel Hakim 提交于
      Currenty extended packet number (EPN) update routine is accessing
      macsec object without holding the general macsec lock hence facing
      a possible race condition when an EPN update occurs while updating
      or deleting the SA.
      Fix by holding the general macsec lock before accessing the object.
      
      Fixes: 4411a6c0 ("net/mlx5e: Support MACsec offload extended packet number (EPN)")
      Signed-off-by: NEmeel Hakim <ehakim@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      8514e325
    • E
      net/mlx5e: Fix MACsec update SecY · 94ffd6e0
      Emeel Hakim 提交于
      Currently updating SecY destroys and re-creates RX SA objects,
      the re-created RX SA objects are not identical to the destroyed
      objects and it disagree on the encryption enabled property which
      holds the value false after recreation, this value is not
      supported with offload which leads to no traffic after an update.
      Fix by recreating an identical objects.
      
      Fixes: 5a39816a ("net/mlx5e: Add MACsec offload SecY support")
      Signed-off-by: NEmeel Hakim <ehakim@nvidia.com>
      Reviewed-by: NRaed Salem <raeds@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      94ffd6e0
    • E
      net/mlx5e: Fix MACsec SA initialization routine · d20a56b0
      Emeel Hakim 提交于
      Currently as part of MACsec SA initialization routine
      extended packet number (EPN) object attribute is always
      being set without checking if EPN is actually enabled,
      the above could lead to a NULL dereference.
      Fix by adding such a check.
      
      Fixes: 4411a6c0 ("net/mlx5e: Support MACsec offload extended packet number (EPN)")
      Signed-off-by: NEmeel Hakim <ehakim@nvidia.com>
      Reviewed-by: NRaed Salem <raeds@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      d20a56b0
    • T
      net/mlx5e: Remove leftovers from old XSK queues enumeration · 11abca03
      Tariq Toukan 提交于
      Before the cited commit, for N channels, a dedicated set of N queues was
      created to support XSK, in indices [N, 2N-1], doubling the number of
      queues.
      
      In addition, changing the number of channels was prohibited, as it would
      shift the indices.
      
      Remove these two leftovers, as we moved XSK to a new queueing scheme,
      starting from index 0.
      
      Fixes: 3db4c85c ("net/mlx5e: xsk: Use queue indices starting from 0 for XSK queues")
      Signed-off-by: NTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: NGal Pressman <gal@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      11abca03
    • C
      net/mlx5e: Offload rule only when all encaps are valid · f3774220
      Chris Mi 提交于
      The cited commit adds a for loop to support multiple encapsulations.
      But it only checks if the last encap is valid.
      
      Fix it by setting slow path flag when one of the encap is invalid.
      
      Fixes: f493f155 ("net/mlx5e: Move flow attr reformat action bit to per dest flags")
      Signed-off-by: NChris Mi <cmi@nvidia.com>
      Reviewed-by: NRoi Dayan <roid@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      f3774220
    • T
      net/mlx5e: Fix missing alignment in size of MTT/KLM entries · 3e874cb1
      Tariq Toukan 提交于
      In the cited patch, an alignment required by the HW spec was mistakenly
      dropped. Bring it back to fix error completions like the below:
      
      mlx5_core 0000:00:08.0 eth2: Error cqe on cqn 0x40b, ci 0x0, qn 0x104f, opcode 0xd, syndrome 0x2, vendor syndrome 0x68
      00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000030: 00 00 00 00 86 00 68 02 25 00 10 4f 00 00 bb d2
      WQE DUMP: WQ size 1024 WQ cur size 0, WQE index 0x0, len: 192
      00000000: 00 00 00 25 00 10 4f 0c 00 00 00 00 00 18 2e 00
      00000010: 90 00 00 00 00 02 00 00 00 00 00 00 20 00 00 00
      00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      00000080: 08 00 00 00 48 6a 00 02 08 00 00 00 0e 10 00 02
      00000090: 08 00 00 00 0c db 00 02 08 00 00 00 0e 82 00 02
      000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      
      Fixes: 9f123f74 ("net/mlx5e: Improve MTT/KSM alignment")
      Signed-off-by: NTariq Toukan <tariqt@nvidia.com>
      Reviewed-by: NGal Pressman <gal@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      3e874cb1
    • M
      net/mlx5: Fix sync reset event handler error flow · e1ad07b9
      Moshe Shemesh 提交于
      When sync reset now event handling fails on mlx5_pci_link_toggle() then
      no reset was done. However, since mlx5_cmd_fast_teardown_hca() was
      already done, the firmware function is closed and the driver is left
      without firmware functionality.
      
      Fix it by setting device error state and reopen the firmware resources.
      Reopening is done by the thread that was called for devlink reload
      fw_activate as it already holds the devlink lock.
      
      Fixes: 5ec69744 ("net/mlx5: Add support for devlink reload action fw activate")
      Signed-off-by: NMoshe Shemesh <moshe@nvidia.com>
      Reviewed-by: NAya Levin <ayal@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      e1ad07b9
    • R
      net/mlx5: E-Switch, Set correctly vport destination · 6d942e40
      Roi Dayan 提交于
      The cited commit moved from using reformat_id integer to packet_reformat
      pointer which introduced the possibility to null pointer dereference.
      When setting packet reformat flag and pkt_reformat pointer must
      exists so checking MLX5_ESW_DEST_ENCAP is not enough, we need
      to make sure the pkt_reformat is valid and check for MLX5_ESW_DEST_ENCAP_VALID.
      If the dest encap valid flag does not exists then pkt_reformat can be
      either invalid address or null.
      Also, to make sure we don't try to access invalid pkt_reformat set it to
      null when invalidated and invalidate it before calling add flow code as
      its logically more correct and to be safe.
      
      Fixes: 2b688ea5 ("net/mlx5: Add flow steering actions to fs_cmd shim layer")
      Signed-off-by: NRoi Dayan <roid@nvidia.com>
      Reviewed-by: NChris Mi <cmi@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      6d942e40
    • E
      net/mlx5: Lag, avoid lockdep warnings · 0d4e8ed1
      Eli Cohen 提交于
      ldev->lock is used to serialize lag change operations. Since multiport
      eswtich functionality was added, we now change the mode dynamically.
      However, acquiring ldev->lock is not allowed as it could possibly lead
      to a deadlock as reported by the lockdep mechanism.
      
      [  836.154963] WARNING: possible circular locking dependency detected
      [  836.155850] 5.19.0-rc5_net_56b7df2 #1 Not tainted
      [  836.156549] ------------------------------------------------------
      [  836.157418] handler1/12198 is trying to acquire lock:
      [  836.158178] ffff888187d52b58 (&ldev->lock){+.+.}-{3:3}, at: mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.159575]
      [  836.159575] but task is already holding lock:
      [  836.160474] ffff8881d4de2930 (&block->cb_lock){++++}-{3:3}, at: tc_setup_cb_add+0x5b/0x200
      [  836.161669] which lock already depends on the new lock.
      [  836.162905]
      [  836.162905] the existing dependency chain (in reverse order) is:
      [  836.164008] -> #3 (&block->cb_lock){++++}-{3:3}:
      [  836.164946]        down_write+0x25/0x60
      [  836.165548]        tcf_block_get_ext+0x1c6/0x5d0
      [  836.166253]        ingress_init+0x74/0xa0 [sch_ingress]
      [  836.167028]        qdisc_create.constprop.0+0x130/0x5e0
      [  836.167805]        tc_modify_qdisc+0x481/0x9f0
      [  836.168490]        rtnetlink_rcv_msg+0x16e/0x5a0
      [  836.169189]        netlink_rcv_skb+0x4e/0xf0
      [  836.169861]        netlink_unicast+0x190/0x250
      [  836.170543]        netlink_sendmsg+0x243/0x4b0
      [  836.171226]        sock_sendmsg+0x33/0x40
      [  836.171860]        ____sys_sendmsg+0x1d1/0x1f0
      [  836.172535]        ___sys_sendmsg+0xab/0xf0
      [  836.173183]        __sys_sendmsg+0x51/0x90
      [  836.173836]        do_syscall_64+0x3d/0x90
      [  836.174471]        entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  836.175282]
      
      [  836.175282] -> #2 (rtnl_mutex){+.+.}-{3:3}:
      [  836.176190]        __mutex_lock+0x6b/0xf80
      [  836.176830]        register_netdevice_notifier+0x21/0x120
      [  836.177631]        rtnetlink_init+0x2d/0x1e9
      [  836.178289]        netlink_proto_init+0x163/0x179
      [  836.178994]        do_one_initcall+0x63/0x300
      [  836.179672]        kernel_init_freeable+0x2cb/0x31b
      [  836.180403]        kernel_init+0x17/0x140
      [  836.181035]        ret_from_fork+0x1f/0x30
      
       [  836.181687] -> #1 (pernet_ops_rwsem){+.+.}-{3:3}:
      [  836.182628]        down_write+0x25/0x60
      [  836.183235]        unregister_netdevice_notifier+0x1c/0xb0
      [  836.184029]        mlx5_ib_roce_cleanup+0x94/0x120 [mlx5_ib]
      [  836.184855]        __mlx5_ib_remove+0x35/0x60 [mlx5_ib]
      [  836.185637]        mlx5_eswitch_unregister_vport_reps+0x22f/0x440 [mlx5_core]
      [  836.186698]        auxiliary_bus_remove+0x18/0x30
      [  836.187409]        device_release_driver_internal+0x1f6/0x270
      [  836.188253]        bus_remove_device+0xef/0x160
      [  836.188939]        device_del+0x18b/0x3f0
      [  836.189562]        mlx5_rescan_drivers_locked+0xd6/0x2d0 [mlx5_core]
      [  836.190516]        mlx5_lag_remove_devices+0x69/0xe0 [mlx5_core]
      [  836.191414]        mlx5_do_bond_work+0x441/0x620 [mlx5_core]
      [  836.192278]        process_one_work+0x25c/0x590
      [  836.192963]        worker_thread+0x4f/0x3d0
      [  836.193609]        kthread+0xcb/0xf0
      [  836.194189]        ret_from_fork+0x1f/0x30
      
      [  836.194826] -> #0 (&ldev->lock){+.+.}-{3:3}:
      [  836.195734]        __lock_acquire+0x15b8/0x2a10
      [  836.196426]        lock_acquire+0xce/0x2d0
      [  836.197057]        __mutex_lock+0x6b/0xf80
      [  836.197708]        mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.198575]        tc_act_parse_mirred+0x25b/0x800 [mlx5_core]
      [  836.199467]        parse_tc_actions+0x168/0x5a0 [mlx5_core]
      [  836.200340]        __mlx5e_add_fdb_flow+0x263/0x480 [mlx5_core]
      [  836.201241]        mlx5e_configure_flower+0x8a0/0x1820 [mlx5_core]
      [  836.202187]        tc_setup_cb_add+0xd7/0x200
      [  836.202856]        fl_hw_replace_filter+0x14c/0x1f0 [cls_flower]
      [  836.203739]        fl_change+0xbbe/0x1730 [cls_flower]
      [  836.204501]        tc_new_tfilter+0x407/0xd90
      [  836.205168]        rtnetlink_rcv_msg+0x406/0x5a0
      [  836.205877]        netlink_rcv_skb+0x4e/0xf0
      [  836.206535]        netlink_unicast+0x190/0x250
      [  836.207217]        netlink_sendmsg+0x243/0x4b0
      [  836.207915]        sock_sendmsg+0x33/0x40
      [  836.208538]        ____sys_sendmsg+0x1d1/0x1f0
      [  836.209219]        ___sys_sendmsg+0xab/0xf0
      [  836.209878]        __sys_sendmsg+0x51/0x90
      [  836.210510]        do_syscall_64+0x3d/0x90
      [  836.211137]        entry_SYSCALL_64_after_hwframe+0x46/0xb0
      
      [  836.211954] other info that might help us debug this:
      [  836.213174] Chain exists of:
      [  836.213174]   &ldev->lock --> rtnl_mutex --> &block->cb_lock
         836.214650]  Possible unsafe locking scenario:
      [  836.214650]
      [  836.215574]        CPU0                    CPU1
      [  836.216255]        ----                    ----
      [  836.216943]   lock(&block->cb_lock);
      [  836.217518]                                lock(rtnl_mutex);
      [  836.218348]                                lock(&block->cb_lock);
      [  836.219212]   lock(&ldev->lock);
      [  836.219758]
      [  836.219758]  *** DEADLOCK ***
      [  836.219758]
       [  836.220747] 2 locks held by handler1/12198:
      [  836.221390]  #0: ffff8881d4de2930 (&block->cb_lock){++++}-{3:3}, at: tc_setup_cb_add+0x5b/0x200
      [  836.222646]  #1: ffff88810c9a92c0 (&esw->mode_lock){++++}-{3:3}, at: mlx5_esw_hold+0x39/0x50 [mlx5_core]
      
      [  836.224063] stack backtrace:
      [  836.224799] CPU: 6 PID: 12198 Comm: handler1 Not tainted 5.19.0-rc5_net_56b7df2 #1
      [  836.225923] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
      [  836.227476] Call Trace:
      [  836.227929]  <TASK>
      [  836.228332]  dump_stack_lvl+0x57/0x7d
      [  836.228924]  check_noncircular+0x104/0x120
      [  836.229562]  __lock_acquire+0x15b8/0x2a10
      [  836.230201]  lock_acquire+0xce/0x2d0
      [  836.230776]  ? mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.231614]  ? find_held_lock+0x2b/0x80
      [  836.232221]  __mutex_lock+0x6b/0xf80
      [  836.232799]  ? mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.233636]  ? mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.234451]  ? xa_load+0xc3/0x190
      [  836.234995]  mlx5_lag_do_mirred+0x3b/0x70 [mlx5_core]
      [  836.235803]  tc_act_parse_mirred+0x25b/0x800 [mlx5_core]
      [  836.236636]  ? tc_act_can_offload_mirred+0x135/0x210 [mlx5_core]
      [  836.237550]  parse_tc_actions+0x168/0x5a0 [mlx5_core]
      [  836.238364]  __mlx5e_add_fdb_flow+0x263/0x480 [mlx5_core]
      [  836.239202]  mlx5e_configure_flower+0x8a0/0x1820 [mlx5_core]
      [  836.240076]  ? lock_acquire+0xce/0x2d0
      [  836.240668]  ? tc_setup_cb_add+0x5b/0x200
      [  836.241294]  tc_setup_cb_add+0xd7/0x200
      [  836.241917]  fl_hw_replace_filter+0x14c/0x1f0 [cls_flower]
      [  836.242709]  fl_change+0xbbe/0x1730 [cls_flower]
      [  836.243408]  tc_new_tfilter+0x407/0xd90
      [  836.244043]  ? tc_del_tfilter+0x880/0x880
      [  836.244672]  rtnetlink_rcv_msg+0x406/0x5a0
      [  836.245310]  ? netlink_deliver_tap+0x7a/0x4b0
      [  836.245991]  ? if_nlmsg_stats_size+0x2b0/0x2b0
      [  836.246675]  netlink_rcv_skb+0x4e/0xf0
      [  836.258046]  netlink_unicast+0x190/0x250
      [  836.258669]  netlink_sendmsg+0x243/0x4b0
      [  836.259288]  sock_sendmsg+0x33/0x40
      [  836.259857]  ____sys_sendmsg+0x1d1/0x1f0
      [  836.260473]  ___sys_sendmsg+0xab/0xf0
      [  836.261064]  ? lock_acquire+0xce/0x2d0
      [  836.261669]  ? find_held_lock+0x2b/0x80
      [  836.262272]  ? __fget_files+0xb9/0x190
      [  836.262871]  ? __fget_files+0xd3/0x190
      [  836.263462]  __sys_sendmsg+0x51/0x90
      [  836.264064]  do_syscall_64+0x3d/0x90
      [  836.264652]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
      [  836.265425] RIP: 0033:0x7fdbe5e2677d
      
      [  836.266012] Code: 28 89 54 24 1c 48 89 74 24 10 89 7c 24 08 e8 ba ee
      ff ff 8b 54 24 1c 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 2e 00 00 00 0f
      05 <48> 3d 00 f0 ff ff 77 33 44 89 c7 48 89 44 24 08 e8 ee ee ff ff 48
      [  836.268485] RSP: 002b:00007fdbe48a75a0 EFLAGS: 00000293 ORIG_RAX: 000000000000002e
      [  836.269598] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007fdbe5e2677d
      [  836.270576] RDX: 0000000000000000 RSI: 00007fdbe48a7640 RDI: 000000000000003c
      [  836.271565] RBP: 00007fdbe48a8368 R08: 0000000000000000 R09: 0000000000000000
      [  836.272546] R10: 00007fdbe48a84b0 R11: 0000000000000293 R12: 0000557bd17dc860
      [  836.273527] R13: 0000000000000000 R14: 0000557bd17dc860 R15: 00007fdbe48a7640
      
      [  836.274521]  </TASK>
      
      To avoid using mode holding ldev->lock in the configure flow, we queue a
      work to the lag workqueue and cease wait on a completion object.
      
      In addition, we remove the lock from mlx5_lag_do_mirred() since it is
      not really protecting anything.
      
      It should be noted that an actual deadlock has not been observed.
      Signed-off-by: NEli Cohen <elic@nvidia.com>
      Reviewed-by: NMark Bloch <mbloch@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      0d4e8ed1
    • M
      net/mlx5: Fix handling of entry refcount when command is not issued to FW · aaf2e65c
      Moshe Shemesh 提交于
      In case command interface is down, or the command is not allowed, driver
      did not increment the entry refcount, but might have decrement as part
      of forced completion handling.
      
      Fix that by always increment and decrement the refcount to make it
      symmetric for all flows.
      
      Fixes: 50b2412b ("net/mlx5: Avoid possible free of command entry while timeout comp handler")
      Signed-off-by: NEran Ben Elisha <eranbe@nvidia.com>
      Signed-off-by: NMoshe Shemesh <moshe@nvidia.com>
      Reported-by: NJack Wang <jinpu.wang@ionos.com>
      Tested-by: NJack Wang <jinpu.wang@ionos.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      aaf2e65c
    • M
      net/mlx5: cmdif, Print info on any firmware cmd failure to tracepoint · 870c2481
      Moshe Shemesh 提交于
      While moving to new CMD API (quiet API), some pre-existing flows may call the new API
      function that in case of error, returns the error instead of printing it as previously done.
      For such flows we bring back the print but to tracepoint this time for sys admins to
      have the ability to check for errors especially for commands using the new quiet API.
      
      Tracepoint output example:
               devlink-1333    [001] .....   822.746922: mlx5_cmd: ACCESS_REG(0x805) op_mod(0x0) failed, status bad resource(0x5), syndrome (0xb06e1f), err(-22)
      
      Fixes: f23519e5 ("net/mlx5: cmdif, Add new api for command execution")
      Signed-off-by: NMoshe Shemesh <moshe@nvidia.com>
      Reviewed-by: NShay Drory <shayd@nvidia.com>
      Reviewed-by: NMaor Gottlieb <maorg@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      870c2481
    • S
      net/mlx5: SF: Fix probing active SFs during driver probe phase · 4f57332d
      Shay Drory 提交于
      When SF devices and SF port representors are located on different
      functions, unloading and reloading of SF parent driver doesn't recreate
      the existing SF present in the device.
      Fix it by querying SFs and probe active SFs during driver probe phase.
      
      Fixes: 90d010b8 ("net/mlx5: SF, Add auxiliary device support")
      Signed-off-by: NShay Drory <shayd@nvidia.com>
      Reviewed-by: NParav Pandit <parav@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      4f57332d
    • M
      net/mlx5: Fix FW tracer timestamp calculation · 61db3d7b
      Moshe Shemesh 提交于
      Fix a bug in calculation of FW tracer timestamp. Decreasing one in the
      calculation should effect only bits 52_7 and not effect bits 6_0 of the
      timestamp, otherwise bits 6_0 are always set in this calculation.
      
      Fixes: 70dd6fdb ("net/mlx5: FW tracer, parse traces and kernel tracing support")
      Signed-off-by: NMoshe Shemesh <moshe@nvidia.com>
      Reviewed-by: NFeras Daoud <ferasda@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      61db3d7b
    • R
      net/mlx5: Do not query pci info while pci disabled · 394164f9
      Roy Novich 提交于
      The driver should not interact with PCI while PCI is disabled. Trying to
      do so may result in being unable to get vital signs during PCI reset,
      driver gets timed out and fails to recover.
      
      Fixes: fad1783a ("net/mlx5: Print more info on pci error handlers")
      Signed-off-by: NRoy Novich <royno@nvidia.com>
      Reviewed-by: NMoshe Shemesh <moshe@nvidia.com>
      Reviewed-by: NAya Levin <ayal@nvidia.com>
      Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
      394164f9
  4. 21 11月, 2022 2 次提交
  5. 19 11月, 2022 12 次提交
    • J
      nfp: add port from netdev validation for EEPROM access · 0873016d
      Jaco Coetzee 提交于
      Setting of the port flag `NFP_PORT_CHANGED`, introduced
      to ensure the correct reading of EEPROM data, causes a
      fatal kernel NULL pointer dereference in cases where
      the target netdev type cannot be determined.
      
      Add validation of port struct pointer before attempting
      to set the `NFP_PORT_CHANGED` flag. Return that operation
      is not supported if the netdev type cannot be determined.
      
      Fixes: 4ae97cae ("nfp: ethtool: fix the display error of `ethtool -m DEVNAME`")
      Signed-off-by: NJaco Coetzee <jaco.coetzee@corigine.com>
      Reviewed-by: NLouis Peens <louis.peens@corigine.com>
      Signed-off-by: NSimon Horman <simon.horman@corigine.com>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      0873016d
    • D
      nfp: fill splittable of devlink_port_attrs correctly · 4abd9600
      Diana Wang 提交于
      The error is reflected in that it shows wrong splittable status of
      port when executing "devlink port show".
      The reason which leads the error is that the assigned operation of
      splittable is just a simple negation operation of split and it does
      not consider port lanes quantity. A splittable port should have
      several lanes that can be split(lanes quantity > 1).
      If without the judgement, it will show wrong message for some
      firmware, such as 2x25G, 2x10G.
      
      Fixes: a0f49b54 ("devlink: Add a new devlink port split ability attribute and pass to netlink")
      Signed-off-by: NDiana Wang <na.wang@corigine.com>
      Reviewed-by: NLouis Peens <louis.peens@corigine.com>
      Reviewed-by: NNiklas Söderlund <niklas.soderlund@corigine.com>
      Signed-off-by: NSimon Horman <simon.horman@corigine.com>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      4abd9600
    • Y
      net: pch_gbe: fix pci device refcount leak while module exiting · 56195372
      Yang Yingliang 提交于
      As comment of pci_get_domain_bus_and_slot() says, it returns
      a pci device with refcount increment, when finish using it,
      the caller must decrement the reference count by calling
      pci_dev_put().
      
      In pch_gbe_probe(), pci_get_domain_bus_and_slot() is called,
      so in error path in probe() and remove() function, pci_dev_put()
      should be called to avoid refcount leak. Compile tested only.
      
      Fixes: 1a0bdadb ("net/pch_gbe: supports eg20t ptp clock")
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      Link: https://lore.kernel.org/r/20221117135148.301014-1-yangyingliang@huawei.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      56195372
    • Y
      octeontx2-af: debugsfs: fix pci device refcount leak · d6660880
      Yang Yingliang 提交于
      As comment of pci_get_domain_bus_and_slot() says, it returns
      a pci device with refcount increment, when finish using it,
      the caller must decrement the reference count by calling
      pci_dev_put().
      
      So before returning from rvu_dbg_rvu_pf_cgx_map_display() or
      cgx_print_dmac_flt(), pci_dev_put() is called to avoid refcount
      leak.
      
      Fixes: dbc52deb ("octeontx2-af: Debugfs support for DMAC filters")
      Fixes: e2fb3730 ("octeontx2-af: Display CGX, NIX and PF map in debugfs.")
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      Link: https://lore.kernel.org/r/20221117124658.162409-1-yangyingliang@huawei.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      d6660880
    • Z
      net/qla3xxx: fix potential memleak in ql3xxx_send() · 62a7311f
      Zhang Changzhong 提交于
      The ql3xxx_send() returns NETDEV_TX_OK without freeing skb in error
      handling case, add dev_kfree_skb_any() to fix it.
      
      Fixes: bd36b0ac ("qla3xxx: Add support for Qlogic 4032 chip.")
      Signed-off-by: NZhang Changzhong <zhangchangzhong@huawei.com>
      Link: https://lore.kernel.org/r/1668675039-21138-1-git-send-email-zhangchangzhong@huawei.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      62a7311f
    • H
      net: mvpp2: fix possible invalid pointer dereference · cbe86768
      Hui Tang 提交于
      It will cause invalid pointer dereference to priv->cm3_base behind,
      if PTR_ERR(priv->cm3_base) in mvpp2_get_sram().
      
      Fixes: e54ad1e0 ("net: mvpp2: add CM3 SRAM memory map")
      Signed-off-by: NHui Tang <tanghui20@huawei.com>
      Link: https://lore.kernel.org/r/20221117084032.101144-1-tanghui20@huawei.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      cbe86768
    • P
      net/mlx4: Check retval of mlx4_bitmap_init · 594c61ff
      Peter Kosyh 提交于
      If mlx4_bitmap_init fails, mlx4_bitmap_alloc_range will dereference
      the NULL pointer (bitmap->table).
      
      Make sure, that mlx4_bitmap_alloc_range called in no error case.
      
      Found by Linux Verification Center (linuxtesting.org) with SVACE.
      
      Fixes: d57febe1 ("net/mlx4: Add A0 hybrid steering")
      Reviewed-by: NTariq Toukan <tariqt@nvidia.com>
      Signed-off-by: NPeter Kosyh <pkosyh@yandex.ru>
      Link: https://lore.kernel.org/r/20221117152806.278072-1-pkosyh@yandex.ruSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      594c61ff
    • L
      net: ethernet: mtk_eth_soc: fix error handling in mtk_open() · f7007414
      Liu Jian 提交于
      If mtk_start_dma() fails, invoke phylink_disconnect_phy() to perform
      cleanup. phylink_disconnect_phy() contains the put_device action. If
      phylink_disconnect_phy is not performed, the Kref of netdev will leak.
      
      Fixes: b8fc9f30 ("net: ethernet: mediatek: Add basic PHYLINK support")
      Signed-off-by: NLiu Jian <liujian56@huawei.com>
      Reviewed-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Link: https://lore.kernel.org/r/20221117111356.161547-1-liujian56@huawei.comSigned-off-by: NJakub Kicinski <kuba@kernel.org>
      f7007414
    • S
      iavf: Fix race condition between iavf_shutdown and iavf_remove · a8417330
      Slawomir Laba 提交于
      Fix a deadlock introduced by commit
      97457801 ("iavf: Add waiting so the port is initialized in remove")
      due to race condition between iavf_shutdown and iavf_remove, where
      iavf_remove stucks forever in while loop since iavf_shutdown already
      set __IAVF_REMOVE adapter state.
      
      Fix this by checking if the __IAVF_IN_REMOVE_TASK has already been
      set and return if so.
      
      Fixes: 97457801 ("iavf: Add waiting so the port is initialized in remove")
      Signed-off-by: NSlawomir Laba <slawomirx.laba@intel.com>
      Signed-off-by: NMateusz Palczewski <mateusz.palczewski@intel.com>
      Tested-by: NMarek Szlosek <marek.szlosek@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      a8417330
    • S
      iavf: remove INITIAL_MAC_SET to allow gARP to work properly · bb861c14
      Stefan Assmann 提交于
      IAVF_FLAG_INITIAL_MAC_SET prevents waiting on iavf_is_mac_set_handled()
      the first time the MAC is set. This breaks gratuitous ARP because the
      MAC address has not been updated yet when the gARP packet is sent out.
      
      Current behaviour:
      $ echo 1 > /sys/class/net/ens4f0/device/sriov_numvfs
      iavf 0000:88:02.0: MAC address: ee:04:19:14:ec:ea
      $ ip addr add 192.168.1.1/24 dev ens4f0v0
      $ ip link set dev ens4f0v0 up
      $ echo 1 > /proc/sys/net/ipv4/conf/ens4f0v0/arp_notify
      $ ip link set ens4f0v0 addr 00:11:22:33:44:55
      07:23:41.676611 ee:04:19:14:ec:ea > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.1, length 28
      
      With IAVF_FLAG_INITIAL_MAC_SET removed:
      $ echo 1 > /sys/class/net/ens4f0/device/sriov_numvfs
      iavf 0000:88:02.0: MAC address: 3e:8a:16:a2:37:6d
      $ ip addr add 192.168.1.1/24 dev ens4f0v0
      $ ip link set dev ens4f0v0 up
      $ echo 1 > /proc/sys/net/ipv4/conf/ens4f0v0/arp_notify
      $ ip link set ens4f0v0 addr 00:11:22:33:44:55
      07:28:01.836608 00:11:22:33:44:55 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.1, length 28
      
      Fixes: 35a2443d ("iavf: Add waiting for response from PF in set mac")
      Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
      Tested-by: NKonrad Jankowski <konrad0.jankowski@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      bb861c14
    • I
      iavf: Do not restart Tx queues after reset task failure · 08f1c147
      Ivan Vecera 提交于
      After commit aa626da9 ("iavf: Detach device during reset task")
      the device is detached during reset task and re-attached at its end.
      The problem occurs when reset task fails because Tx queues are
      restarted during device re-attach and this leads later to a crash.
      
      To resolve this issue properly close the net device in cause of
      failure in reset task to avoid restarting of tx queues at the end.
      Also replace the hacky manipulation with IFF_UP flag by device close
      that clears properly both IFF_UP and __LINK_STATE_START flags.
      In these case iavf_close() does not do anything because the adapter
      state is already __IAVF_DOWN.
      
      Reproducer:
      1) Run some Tx traffic (e.g. iperf3) over iavf interface
      2) Set VF trusted / untrusted in loop
      
      [root@host ~]# cat repro.sh
      
      PF=enp65s0f0
      IF=${PF}v0
      
      ip link set up $IF
      ip addr add 192.168.0.2/24 dev $IF
      sleep 1
      
      iperf3 -c 192.168.0.1 -t 600 --logfile /dev/null &
      sleep 2
      
      while :; do
              ip link set $PF vf 0 trust on
              ip link set $PF vf 0 trust off
      done
      [root@host ~]# ./repro.sh
      
      Result:
      [ 2006.650969] iavf 0000:41:01.0: Failed to init adminq: -53
      [ 2006.675662] ice 0000:41:00.0: VF 0 is now trusted
      [ 2006.689997] iavf 0000:41:01.0: Reset task did not complete, VF disabled
      [ 2006.696611] iavf 0000:41:01.0: failed to allocate resources during reinit
      [ 2006.703209] ice 0000:41:00.0: VF 0 is now untrusted
      [ 2006.737011] ice 0000:41:00.0: VF 0 is now trusted
      [ 2006.764536] ice 0000:41:00.0: VF 0 is now untrusted
      [ 2006.768919] BUG: kernel NULL pointer dereference, address: 0000000000000b4a
      [ 2006.776358] #PF: supervisor read access in kernel mode
      [ 2006.781488] #PF: error_code(0x0000) - not-present page
      [ 2006.786620] PGD 0 P4D 0
      [ 2006.789152] Oops: 0000 [#1] PREEMPT SMP NOPTI
      [ 2006.792903] ice 0000:41:00.0: VF 0 is now trusted
      [ 2006.793501] CPU: 4 PID: 0 Comm: swapper/4 Kdump: loaded Not tainted 6.1.0-rc3+ #2
      [ 2006.805668] Hardware name: Abacus electric, s.r.o. - servis@abacus.cz Super Server/H12SSW-iN, BIOS 2.4 04/13/2022
      [ 2006.815915] RIP: 0010:iavf_xmit_frame_ring+0x96/0xf70 [iavf]
      [ 2006.821028] ice 0000:41:00.0: VF 0 is now untrusted
      [ 2006.821572] Code: 48 83 c1 04 48 c1 e1 04 48 01 f9 48 83 c0 10 6b 50 f8 55 c1 ea 14 45 8d 64 14 01 48 39 c8 75 eb 41 83 fc 07 0f 8f e9 08 00 00 <0f> b7 45 4a 0f b7 55 48 41 8d 74 24 05 31 c9 66 39 d0 0f 86 da 00
      [ 2006.845181] RSP: 0018:ffffb253004bc9e8 EFLAGS: 00010293
      [ 2006.850397] RAX: ffff9d154de45b00 RBX: ffff9d15497d52e8 RCX: ffff9d154de45b00
      [ 2006.856327] ice 0000:41:00.0: VF 0 is now trusted
      [ 2006.857523] RDX: 0000000000000000 RSI: 00000000000005a8 RDI: ffff9d154de45ac0
      [ 2006.857525] RBP: 0000000000000b00 R08: ffff9d159cb010ac R09: 0000000000000001
      [ 2006.857526] R10: ffff9d154de45940 R11: 0000000000000000 R12: 0000000000000002
      [ 2006.883600] R13: ffff9d1770838dc0 R14: 0000000000000000 R15: ffffffffc07b8380
      [ 2006.885840] ice 0000:41:00.0: VF 0 is now untrusted
      [ 2006.890725] FS:  0000000000000000(0000) GS:ffff9d248e900000(0000) knlGS:0000000000000000
      [ 2006.890727] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 2006.909419] CR2: 0000000000000b4a CR3: 0000000c39c10002 CR4: 0000000000770ee0
      [ 2006.916543] PKRU: 55555554
      [ 2006.918254] ice 0000:41:00.0: VF 0 is now trusted
      [ 2006.919248] Call Trace:
      [ 2006.919250]  <IRQ>
      [ 2006.919252]  dev_hard_start_xmit+0x9e/0x1f0
      [ 2006.932587]  sch_direct_xmit+0xa0/0x370
      [ 2006.936424]  __dev_queue_xmit+0x7af/0xd00
      [ 2006.940429]  ip_finish_output2+0x26c/0x540
      [ 2006.944519]  ip_output+0x71/0x110
      [ 2006.947831]  ? __ip_finish_output+0x2b0/0x2b0
      [ 2006.952180]  __ip_queue_xmit+0x16d/0x400
      [ 2006.952721] ice 0000:41:00.0: VF 0 is now untrusted
      [ 2006.956098]  __tcp_transmit_skb+0xa96/0xbf0
      [ 2006.965148]  __tcp_retransmit_skb+0x174/0x860
      [ 2006.969499]  ? cubictcp_cwnd_event+0x40/0x40
      [ 2006.973769]  tcp_retransmit_skb+0x14/0xb0
      ...
      
      Fixes: aa626da9 ("iavf: Detach device during reset task")
      Cc: Jacob Keller <jacob.e.keller@intel.com>
      Cc: Patryk Piotrowski <patryk.piotrowski@intel.com>
      Cc: SlawomirX Laba <slawomirx.laba@intel.com>
      Signed-off-by: NIvan Vecera <ivecera@redhat.com>
      Reviewed-by: NJacob Keller <jacob.e.keller@intel.com>
      Reviewed-by: NLeon Romanovsky <leonro@nvidia.com>
      Tested-by: NKonrad Jankowski <konrad0.jankowski@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      08f1c147
    • I
      iavf: Fix a crash during reset task · c678669d
      Ivan Vecera 提交于
      Recent commit aa626da9 ("iavf: Detach device during reset task")
      removed netif_tx_stop_all_queues() with an assumption that Tx queues
      are already stopped by netif_device_detach() in the beginning of
      reset task. This assumption is incorrect because during reset
      task a potential link event can start Tx queues again.
      Revert this change to fix this issue.
      
      Reproducer:
      1. Run some Tx traffic (e.g. iperf3) over iavf interface
      2. Switch MTU of this interface in a loop
      
      [root@host ~]# cat repro.sh
      
      IF=enp2s0f0v0
      
      iperf3 -c 192.168.0.1 -t 600 --logfile /dev/null &
      sleep 2
      
      while :; do
              for i in 1280 1500 2000 900 ; do
                      ip link set $IF mtu $i
                      sleep 2
              done
      done
      [root@host ~]# ./repro.sh
      
      Result:
      [  306.199917] iavf 0000:02:02.0 enp2s0f0v0: NIC Link is Up Speed is 40 Gbps Full Duplex
      [  308.205944] iavf 0000:02:02.0 enp2s0f0v0: NIC Link is Up Speed is 40 Gbps Full Duplex
      [  310.103223] BUG: kernel NULL pointer dereference, address: 0000000000000008
      [  310.110179] #PF: supervisor write access in kernel mode
      [  310.115396] #PF: error_code(0x0002) - not-present page
      [  310.120526] PGD 0 P4D 0
      [  310.123057] Oops: 0002 [#1] PREEMPT SMP NOPTI
      [  310.127408] CPU: 24 PID: 183 Comm: kworker/u64:9 Kdump: loaded Not tainted 6.1.0-rc3+ #2
      [  310.135485] Hardware name: Abacus electric, s.r.o. - servis@abacus.cz Super Server/H12SSW-iN, BIOS 2.4 04/13/2022
      [  310.145728] Workqueue: iavf iavf_reset_task [iavf]
      [  310.150520] RIP: 0010:iavf_xmit_frame_ring+0xd1/0xf70 [iavf]
      [  310.156180] Code: d0 0f 86 da 00 00 00 83 e8 01 0f b7 fa 29 f8 01 c8 39 c6 0f 8f a0 08 00 00 48 8b 45 20 48 8d 14 92 bf 01 00 00 00 4c 8d 3c d0 <49> 89 5f 08 8b 43 70 66 41 89 7f 14 41 89 47 10 f6 83 82 00 00 00
      [  310.174918] RSP: 0018:ffffbb5f0082caa0 EFLAGS: 00010293
      [  310.180137] RAX: 0000000000000000 RBX: ffff92345471a6e8 RCX: 0000000000000200
      [  310.187259] RDX: 0000000000000000 RSI: 000000000000000d RDI: 0000000000000001
      [  310.194385] RBP: ffff92341d249000 R08: ffff92434987fcac R09: 0000000000000001
      [  310.201509] R10: 0000000011f683b9 R11: 0000000011f50641 R12: 0000000000000008
      [  310.208631] R13: ffff923447500000 R14: 0000000000000000 R15: 0000000000000000
      [  310.215756] FS:  0000000000000000(0000) GS:ffff92434ee00000(0000) knlGS:0000000000000000
      [  310.223835] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  310.229572] CR2: 0000000000000008 CR3: 0000000fbc210004 CR4: 0000000000770ee0
      [  310.236696] PKRU: 55555554
      [  310.239399] Call Trace:
      [  310.241844]  <IRQ>
      [  310.243855]  ? dst_alloc+0x5b/0xb0
      [  310.247260]  dev_hard_start_xmit+0x9e/0x1f0
      [  310.251439]  sch_direct_xmit+0xa0/0x370
      [  310.255276]  __qdisc_run+0x13e/0x580
      [  310.258848]  __dev_queue_xmit+0x431/0xd00
      [  310.262851]  ? selinux_ip_postroute+0x147/0x3f0
      [  310.267377]  ip_finish_output2+0x26c/0x540
      
      Fixes: aa626da9 ("iavf: Detach device during reset task")
      Cc: Jacob Keller <jacob.e.keller@intel.com>
      Cc: Patryk Piotrowski <patryk.piotrowski@intel.com>
      Cc: SlawomirX Laba <slawomirx.laba@intel.com>
      Signed-off-by: NIvan Vecera <ivecera@redhat.com>
      Tested-by: NKonrad Jankowski <konrad0.jankowski@intel.com>
      Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
      c678669d