]> git.baikalelectronics.ru Git - kernel.git/commit
qlcnic: fix Tx descriptor corruption on 82xx devices
authorShahed Shaikh <shahed.shaikh@cavium.com>
Wed, 26 Sep 2018 19:41:10 +0000 (12:41 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Sep 2018 18:46:07 +0000 (11:46 -0700)
commitdf81c990c0c624027f0a35d5b13ac75686e60479
tree9d47d98ef8db3b4ffad5e6b1e3544b78998c9555
parent02dd8fed649ab786963781e5a5303acb5a157d0a
qlcnic: fix Tx descriptor corruption on 82xx devices

In regular NIC transmission flow, driver always configures MAC using
Tx queue zero descriptor as a part of MAC learning flow.
But with multi Tx queue supported NIC, regular transmission can occur on
any non-zero Tx queue and from that context it uses
Tx queue zero descriptor to configure MAC, at the same time TX queue
zero could be used by another CPU for regular transmission
which could lead to Tx queue zero descriptor corruption and cause FW
abort.

This patch fixes this in such a way that driver always configures
learned MAC address from the same Tx queue which is used for
regular transmission.

Fixes: 46b57105c57f ("qlcnic: change driver hardware interface mechanism")
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c