]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Fix VF virtual link state.
authorMichael Chan <michael.chan@broadcom.com>
Fri, 11 Nov 2016 05:11:43 +0000 (00:11 -0500)
committerDhaval Giani <dhaval.giani@oracle.com>
Fri, 20 Jan 2017 18:07:54 +0000 (13:07 -0500)
Orabug: 24567991

If the physical link is down and the VF virtual link is set to "enable",
the current code does not always work.  If the link is down but the
cable is attached, the firmware returns LINK_SIGNAL instead of
NO_LINK.  The current code is treating LINK_SIGNAL as link up.
The fix is to treat link as down when the link_status != LINK.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 73b9bad63ae3c902ce64221d10a0d371d059748d)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c

index 8be718508600ba07761f5148f751cd26e8689df5..1dbb762eeaff95415cf4104b7b86a4b0e2fef6b0 100644 (file)
@@ -770,8 +770,8 @@ static int bnxt_vf_set_link(struct bnxt *bp, struct bnxt_vf_info *vf)
 
                if (vf->flags & BNXT_VF_LINK_UP) {
                        /* if physical link is down, force link up on VF */
-                       if (phy_qcfg_resp.link ==
-                           PORT_PHY_QCFG_RESP_LINK_NO_LINK) {
+                       if (phy_qcfg_resp.link !=
+                           PORT_PHY_QCFG_RESP_LINK_LINK) {
                                phy_qcfg_resp.link =
                                        PORT_PHY_QCFG_RESP_LINK_LINK;
                                phy_qcfg_resp.link_speed = cpu_to_le16(