--- sys/dev/e1000/e1000_vf.c (revision 334275) +++ sys/dev/e1000/e1000_vf.c (working copy) @@ -546,10 +546,11 @@ * or a virtual function reset */ - /* If we were hit with a reset or timeout drop the link */ - if (!mbx->ops.check_for_rst(hw, 0) || !mbx->timeout) + /* If we were hit with a reset or timeout or physical link is down drop the link */ + if (!mbx->ops.check_for_rst(hw, 0) || !mbx->timeout || \ + !(E1000_READ_REG(hw, E1000_STATUS) & E1000_STATUS_LU)) { mac->get_link_status = TRUE; - + } if (!mac->get_link_status) goto out;