changeset 13192:517dd7bce70e

143 rge driver stalls during network receive load on Toshiba A300 Reviewed by: garrett@nexenta.com Approved by: garrett@nexenta.com
author Alexander Eremin <a.eremin@nexenta.com>
date Mon, 20 Sep 2010 22:29:01 +0400
parents 0b65a6e42434
children c50e16fa675f
files usr/src/uts/common/io/rge/rge.h usr/src/uts/common/io/rge/rge_chip.c
diffstat 2 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/rge/rge.h	Mon Sep 20 11:11:50 2010 +0400
+++ b/usr/src/uts/common/io/rge/rge.h	Mon Sep 20 22:29:01 2010 +0400
@@ -348,6 +348,7 @@
 	uint8_t			clsize;		/* cache-line-size	*/
 	uint8_t			latency;	/* latency-timer	*/
 	boolean_t		is_pcie;
+	boolean_t		enable_mac_first;
 	uint32_t		mac_ver;
 	uint32_t		phy_ver;
 	uint32_t		rxconfig;
--- a/usr/src/uts/common/io/rge/rge_chip.c	Mon Sep 20 11:11:50 2010 +0400
+++ b/usr/src/uts/common/io/rge/rge_chip.c	Mon Sep 20 22:29:01 2010 +0400
@@ -710,6 +710,7 @@
 	/*
 	 * Workaround for 8101E_C
 	 */
+	chip->enable_mac_first = !chip->is_pcie;
 	if (chip->mac_ver == MAC_VER_8101E_C) {
 		chip->is_pcie = B_FALSE;
 	}
@@ -938,7 +939,7 @@
 	/*
 	 * Start transmit/receive before set tx/rx configuration register
 	 */
-	if (!chip->is_pcie)
+	if (chip->enable_mac_first)
 		rge_reg_set8(rgep, RT_COMMAND_REG,
 		    RT_COMMAND_RX_ENABLE | RT_COMMAND_TX_ENABLE);