diff options
author | glebius <glebius@FreeBSD.org> | 2005-02-04 18:36:04 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2005-02-04 18:36:04 +0000 |
commit | e11596c7179433fb09e0561fb8e40db5372b1b55 (patch) | |
tree | f85ca0a9d8432c7fdfb22b711a9bdc250311c356 /sys/dev/em | |
parent | 24d2516dd718437365d5098a622d39d73842451f (diff) | |
download | FreeBSD-src-e11596c7179433fb09e0561fb8e40db5372b1b55.zip FreeBSD-src-e11596c7179433fb09e0561fb8e40db5372b1b55.tar.gz |
Call if_link_state_change() when link status changes.
PR: kern/76890
Reviewed by: rwatson, sam
Diffstat (limited to 'sys/dev/em')
-rw-r--r-- | sys/dev/em/if_em.c | 4 |
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); } } |