Commit 73b9bad6 authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

bnxt_en: Fix VF virtual link state.

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: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3ffb6a39
...@@ -774,8 +774,8 @@ static int bnxt_vf_set_link(struct bnxt *bp, struct bnxt_vf_info *vf) ...@@ -774,8 +774,8 @@ static int bnxt_vf_set_link(struct bnxt *bp, struct bnxt_vf_info *vf)
if (vf->flags & BNXT_VF_LINK_UP) { if (vf->flags & BNXT_VF_LINK_UP) {
/* if physical link is down, force link up on VF */ /* if physical link is down, force link up on VF */
if (phy_qcfg_resp.link == if (phy_qcfg_resp.link !=
PORT_PHY_QCFG_RESP_LINK_NO_LINK) { PORT_PHY_QCFG_RESP_LINK_LINK) {
phy_qcfg_resp.link = phy_qcfg_resp.link =
PORT_PHY_QCFG_RESP_LINK_LINK; PORT_PHY_QCFG_RESP_LINK_LINK;
phy_qcfg_resp.link_speed = cpu_to_le16( phy_qcfg_resp.link_speed = cpu_to_le16(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment