summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/pkgdefs/SUNWiwh/postinstall4
-rw-r--r--usr/src/uts/common/io/e1000g/README5
-rw-r--r--usr/src/uts/common/io/e1000g/e1000g_main.c9
3 files changed, 14 insertions, 4 deletions
diff --git a/usr/src/pkgdefs/SUNWiwh/postinstall b/usr/src/pkgdefs/SUNWiwh/postinstall
index 2e0c2a0940..c1f234ed2d 100644
--- a/usr/src/pkgdefs/SUNWiwh/postinstall
+++ b/usr/src/pkgdefs/SUNWiwh/postinstall
@@ -21,14 +21,14 @@
#
#
-# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Driver info
DRV=iwh
DRVALIAS='"pciex8086,4232" "pciex8086,4235" "pciex8086,4236"
-"pciex8086,4237" "pciex8086,423a"'
+"pciex8086,4237" "pciex8086,423a" "pciex8086,4236.8086.1011"'
BASEDIR=${BASEDIR:-/}
diff --git a/usr/src/uts/common/io/e1000g/README b/usr/src/uts/common/io/e1000g/README
index c81f05bff8..5a4d4386d5 100644
--- a/usr/src/uts/common/io/e1000g/README
+++ b/usr/src/uts/common/io/e1000g/README
@@ -662,3 +662,8 @@ Notes on packaging:
This version has the following fixes:
6812227 e1000g(intel 82571 adapter) must support MTU size of 9216
+5.3.8
+======
+ This version has the following fixes:
+ 6775380 the e1000g link hung at "up" state after down and unplumb the interface
+ 6816786 e1000g panics on Lenovo X301 with snv_109
diff --git a/usr/src/uts/common/io/e1000g/e1000g_main.c b/usr/src/uts/common/io/e1000g/e1000g_main.c
index cec4981d5e..b92b7c8b23 100644
--- a/usr/src/uts/common/io/e1000g/e1000g_main.c
+++ b/usr/src/uts/common/io/e1000g/e1000g_main.c
@@ -46,7 +46,7 @@
static char ident[] = "Intel PRO/1000 Ethernet";
static char e1000g_string[] = "Intel(R) PRO/1000 Network Connection";
-static char e1000g_version[] = "Driver Ver. 5.3.7";
+static char e1000g_version[] = "Driver Ver. 5.3.8";
/*
* Proto types for DDI entry points
@@ -1032,7 +1032,7 @@ e1000g_unattach(dev_info_t *devinfo, struct e1000g *Adapter)
}
mutex_enter(&e1000g_rx_detach_lock);
- if (e1000g_force_detach) {
+ if (e1000g_force_detach && (Adapter->priv_devi_node != NULL)) {
devi_node = Adapter->priv_devi_node;
devi_node->flag |= E1000G_PRIV_DEVI_DETACH;
@@ -1826,6 +1826,11 @@ e1000g_stop(struct e1000g *Adapter, boolean_t global)
}
mutex_exit(&e1000g_rx_detach_lock);
}
+
+ if (Adapter->link_state == LINK_STATE_UP) {
+ Adapter->link_state = LINK_STATE_UNKNOWN;
+ mac_link_update(Adapter->mh, Adapter->link_state);
+ }
}
static void