summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDariusz Swiderski <dms@cvs.openbsd.org>2009-11-26 16:01:01 +0000
committerDariusz Swiderski <dms@cvs.openbsd.org>2009-11-26 16:01:01 +0000
commitfc80d666e401d8168b4e8aeb615654205805e74c (patch)
tree533a1af214c19a32d5c09637c0811642c220a5ea /sys
parent79c9c6ac5e7fbb9621444458d6568683f3b3491b (diff)
Fix an issue where 82573L based em(4) devices had long latencies on the
recieved packets. fix from intel drivers, via Brad ok claudio@, deraadt@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_em.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/pci/if_em.c b/sys/dev/pci/if_em.c
index caed84bf3d7..66077448e98 100644
--- a/sys/dev/pci/if_em.c
+++ b/sys/dev/pci/if_em.c
@@ -31,7 +31,7 @@ POSSIBILITY OF SUCH DAMAGE.
***************************************************************************/
-/* $OpenBSD: if_em.c,v 1.232 2009/11/26 15:53:15 dms Exp $ */
+/* $OpenBSD: if_em.c,v 1.233 2009/11/26 16:01:00 dms Exp $ */
/* $FreeBSD: if_em.c,v 1.46 2004/09/29 18:28:28 mlaier Exp $ */
#include <dev/pci/if_em.h>
@@ -2603,6 +2603,13 @@ em_initialize_receive_unit(struct em_softc *sc)
E1000_WRITE_REG(&sc->hw, RXCSUM, reg_rxcsum);
}
+ /*
+ * XXX TEMPORARY WORKAROUND: on some systems with 82573
+ * long latencies are observed, like Lenovo X60.
+ */
+ if (sc->hw.mac_type == em_82573)
+ E1000_WRITE_REG(&sc->hw, RDTR, 0x20);
+
/* Enable Receives */
E1000_WRITE_REG(&sc->hw, RCTL, reg_rctl);