e1000_serdes_link_autoneg_progress;
                                mac->serdes_has_link = false;
                                e_dbg("AN_UP     -> AN_PROG\n");
+                       } else {
+                               mac->serdes_has_link = true;
                        }
-               break;
+                       break;
 
                case e1000_serdes_link_forced_up:
                        /*
                                    e1000_serdes_link_autoneg_progress;
                                mac->serdes_has_link = false;
                                e_dbg("FORCED_UP -> AN_PROG\n");
+                       } else {
+                               mac->serdes_has_link = true;
                        }
                        break;
 
                        ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));
                        mac->serdes_link_state =
                            e1000_serdes_link_autoneg_progress;
+                       mac->serdes_has_link = false;
                        e_dbg("DOWN      -> AN_PROG\n");
                        break;
                }