summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-02-04 18:36:04 +0000
committerglebius <glebius@FreeBSD.org>2005-02-04 18:36:04 +0000
commite11596c7179433fb09e0561fb8e40db5372b1b55 (patch)
treef85ca0a9d8432c7fdfb22b711a9bdc250311c356
parent24d2516dd718437365d5098a622d39d73842451f (diff)
downloadFreeBSD-src-e11596c7179433fb09e0561fb8e40db5372b1b55.zip
FreeBSD-src-e11596c7179433fb09e0561fb8e40db5372b1b55.tar.gz
Call if_link_state_change() when link status changes.
PR: kern/76890 Reviewed by: rwatson, sam
-rw-r--r--sys/dev/em/if_em.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/em/if_em.c b/sys/dev/em/if_em.c
index 296c765..525074d 100644
--- a/sys/dev/em/if_em.c
+++ b/sys/dev/em/if_em.c
@@ -1654,6 +1654,8 @@ em_local_timer(void *arg)
static void
em_print_link_status(struct adapter * adapter)
{
+ struct ifnet *ifp = &adapter->interface_data.ac_if;
+
if (E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU) {
if (adapter->link_active == 0) {
em_get_speed_and_duplex(&adapter->hw,
@@ -1667,6 +1669,7 @@ em_print_link_status(struct adapter * adapter)
"Full Duplex" : "Half Duplex"));
adapter->link_active = 1;
adapter->smartspeed = 0;
+ if_link_state_change(ifp, LINK_STATE_UP);
}
} else {
if (adapter->link_active == 1) {
@@ -1675,6 +1678,7 @@ em_print_link_status(struct adapter * adapter)
if (bootverbose)
printf("em%d: Link is Down\n", adapter->unit);
adapter->link_active = 0;
+ if_link_state_change(ifp, LINK_STATE_DOWN);
}
}
OpenPOWER on IntegriCloud