summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authormhitch <mhitch@NetBSD.org>2001-11-11 18:47:03 +0000
committermhitch <mhitch@NetBSD.org>2001-11-11 18:47:03 +0000
commitc873b07b2d93f7fda976c661bae86b23fad166cf (patch)
tree7b4b58e4d446792eebb996c9953b7696e6dfa710 /sys/dev/ic
parent944fcd0d8398b16616da2442cc22ea6fbcd7be55 (diff)
After modifying transmit descriptors, write-back cache needs to be flushed.
Fixes DEFTA on R4x00 DECstations.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/pdq.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/ic/pdq.c b/sys/dev/ic/pdq.c
index a9afe95237d..1af110d1acd 100644
--- a/sys/dev/ic/pdq.c
+++ b/sys/dev/ic/pdq.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pdq.c,v 1.31 2001/06/13 10:46:03 wiz Exp $ */
+/* $NetBSD: pdq.c,v 1.32 2001/11/11 18:47:03 mhitch Exp $ */
/*-
* Copyright (c) 1995,1996 Matt Thomas <matt@3am-software.com>
@@ -1013,9 +1013,13 @@ pdq_queue_transmit_data(
* Everything went fine. Finish it up.
*/
tx->tx_descriptor_count[tx->tx_producer] = tx->tx_free - freecnt;
- if (PDQ_RX_FC_OFFSET != PDQ_OS_HDR_OFFSET)
+ if (PDQ_RX_FC_OFFSET != PDQ_OS_HDR_OFFSET) {
dbp->pdqdb_transmits[tx->tx_producer].txd_sop = 1;
+ PDQ_OS_DESC_PRESYNC(pdq, &dbp->pdqdb_transmits[tx->tx_producer],
+ sizeof(pdq_txdesc_t));
+ }
eop->txd_eop = 1;
+ PDQ_OS_DESC_PRESYNC(pdq, eop, sizeof(pdq_txdesc_t));
PDQ_OS_DATABUF_ENQUEUE(&tx->tx_txq, pdu);
tx->tx_producer = producer;
tx->tx_free = freecnt;