]> 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)
commit6c242da99ac5312d13b4dd325f7b09f11ebd9a6f
tree9d47d98ef8db3b4ffad5e6b1e3544b78998c9555
parent100ee8817d1ee97da4bfb48414315e35532a6fa8
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: abe466baf23e ("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