]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Improve VF/PF link change logic.
authorMichael Chan <michael.chan@broadcom.com>
Sat, 14 Oct 2017 01:09:29 +0000 (21:09 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Oct 2017 01:51:51 +0000 (18:51 -0700)
commit1051f667eb98ec75000c3a62d373f9e9969b31eb
tree4725edaaa3606846a7457cd9ee0d17e8a222dc86
parentba3d448a9df0b6b660e79468d8a64ae15a93c4b5
bnxt_en: Improve VF/PF link change logic.

Link status query firmware messages originating from the VFs are forwarded
to the PF.  The driver handles these interactions in a workqueue for the
VF and PF.  The VF driver waits for the response from the PF in the
workqueue.  If the PF and VF driver are running on the same host and the
work for both PF and VF are queued on the same workqueue, the VF driver
may not get the response if the PF work item is queued behind it on the
same workqueue.  This will lead to the VF link query message timing out.

To prevent this, we create a private workqueue for PFs instead of using
the common workqueue.  The VF query and PF response will never be on
the same workqueue.

Fixes: 93658deae41f ("bnxt_en: New Broadcom ethernet driver.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c