summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2005-03-23 13:30:21 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2005-03-23 13:30:21 +0000
commit529d0d7dc96c9084d1c2e8ad1bd9209da5061396 (patch)
tree53baa4c7acba187b6e10d763a1550cab4d6f81c2 /sys/dev
parent52d6e7b00a7d7d339855026f4b9953a593da10ad (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/em/if_em.c12
-rw-r--r--sys/dev/em/if_em.h7
2 files changed, 18 insertions, 1 deletions
diff --git a/sys/dev/em/if_em.c b/sys/dev/em/if_em.c
index dba004241633..5a0cc40f9b67 100644
--- a/sys/dev/em/if_em.c
+++ b/sys/dev/em/if_em.c
@@ -1669,6 +1669,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,
@@ -1681,6 +1683,11 @@ em_print_link_status(struct adapter * adapter)
"Full Duplex" : "Half Duplex"));
adapter->link_active = 1;
adapter->smartspeed = 0;
+ ifp->if_link_state = LINK_STATE_UP;
+#ifdef DEV_CARP
+ if (ifp->if_carp)
+ carp_carpdev_state(ifp->if_carp);
+#endif
}
} else {
if (adapter->link_active == 1) {
@@ -1688,6 +1695,11 @@ em_print_link_status(struct adapter * adapter)
adapter->link_duplex = 0;
printf("em%d: Link is Down\n", adapter->unit);
adapter->link_active = 0;
+ ifp->if_link_state = LINK_STATE_DOWN;
+#ifdef DEV_CARP
+ if (ifp->if_carp)
+ carp_carpdev_state(ifp->if_carp);
+#endif
}
}
diff --git a/sys/dev/em/if_em.h b/sys/dev/em/if_em.h
index a914c68ef917..5d795166cfa1 100644
--- a/sys/dev/em/if_em.h
+++ b/sys/dev/em/if_em.h
@@ -36,6 +36,8 @@ POSSIBILITY OF SUCH DAMAGE.
#ifndef _EM_H_DEFINED_
#define _EM_H_DEFINED_
+#include "opt_bdg.h"
+#include "opt_carp.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -62,6 +64,10 @@ POSSIBILITY OF SUCH DAMAGE.
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>
+#ifdef DEV_CARP
+#include <netinet/in_var.h>
+#include <netinet/ip_carp.h>
+#endif
#include <sys/bus.h>
#include <machine/bus.h>
@@ -75,7 +81,6 @@ POSSIBILITY OF SUCH DAMAGE.
#include <sys/endian.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
-#include "opt_bdg.h"
#include <dev/em/if_em_hw.h>