]> 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)
commite9a7c9cbad6514dbe4e814125839d5b13a095121
tree4725edaaa3606846a7457cd9ee0d17e8a222dc86
parente79c9024fa310602c0c4099564ead9dde18f10c4
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: dfe047769e71 ("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