summaryrefslogtreecommitdiff
path: root/sys/dev/ic/gem.c
diff options
context:
space:
mode:
authorHenric Jungheim <henric@cvs.openbsd.org>2003-03-02 02:59:11 +0000
committerHenric Jungheim <henric@cvs.openbsd.org>2003-03-02 02:59:11 +0000
commit727d4fd600e72da0257f3aa9093b66f0817c36dc (patch)
treeb13170c6cd28c57e84ff7032806e6be53867c46a /sys/dev/ic/gem.c
parent0d4ae03d6d21f5f02361f8d8c9ee858c7bf10a3f (diff)
The gem driver will sometimes unmap bus_dma mappings that are still
in use by the hardware. Since the sparc64 has IOMMUs, an access by the hardware after the unmap operation will cause a fault. This replaces "disable" calls by "reset" calls. This increases the time between the command to disable DMA and when the maps are actually unloaded.
Diffstat (limited to 'sys/dev/ic/gem.c')
-rw-r--r--sys/dev/ic/gem.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/ic/gem.c b/sys/dev/ic/gem.c
index 92414bf959c..aeaadbe0446 100644
--- a/sys/dev/ic/gem.c
+++ b/sys/dev/ic/gem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gem.c,v 1.30 2003/01/23 22:55:52 jason Exp $ */
+/* $OpenBSD: gem.c,v 1.31 2003/03/02 02:59:10 henric Exp $ */
/* $NetBSD: gem.c,v 1.1 2001/09/16 00:11:43 eeh Exp $ */
/*
@@ -446,9 +446,8 @@ gem_stop(struct ifnet *ifp, int disable)
timeout_del(&sc->sc_tick_ch);
mii_down(&sc->sc_mii);
- /* XXX - Should we reset these instead? */
- gem_disable_rx(sc);
- gem_disable_tx(sc);
+ gem_reset_rx(sc);
+ gem_reset_tx(sc);
/*
* Release any queued transmit buffers.