aboutsummaryrefslogtreecommitdiff
path: root/sys/arm
diff options
context:
space:
mode:
authorLuiz Otavio O Souza <loos@FreeBSD.org>2017-01-22 17:24:00 +0000
committerLuiz Otavio O Souza <loos@FreeBSD.org>2017-01-22 17:24:00 +0000
commit6386d003c96c7d20ccdaac4361f5beb651e017cd (patch)
tree5facd885efd57a5642f4dc0eb1b79cae6b64b8a1 /sys/arm
parent3a3d1c770e13069c81f1b6d7fa128a06c53efdb9 (diff)
downloadsrc-6386d003c96c7d20ccdaac4361f5beb651e017cd.tar.gz
src-6386d003c96c7d20ccdaac4361f5beb651e017cd.zip
Be a little more pedantic here, the TRM says the hardware is supposed to
only clean the OWNER bit on SOP descriptors. MFC after: 3 days Sponsored by: Rubicon Communications, LLC (Netgate)
Notes
Notes: svn path=/head/; revision=312637
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/ti/cpsw/if_cpsw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arm/ti/cpsw/if_cpsw.c b/sys/arm/ti/cpsw/if_cpsw.c
index 85220dfa45e4..a84fac588f6e 100644
--- a/sys/arm/ti/cpsw/if_cpsw.c
+++ b/sys/arm/ti/cpsw/if_cpsw.c
@@ -1981,7 +1981,8 @@ cpsw_tx_dequeue(struct cpsw_softc *sc)
sc->tx.teardown = 1;
}
- if ((flags & CPDMA_BD_OWNER) != 0 && sc->tx.teardown == 0)
+ if ((flags & (CPDMA_BD_SOP | CPDMA_BD_OWNER)) ==
+ (CPDMA_BD_SOP | CPDMA_BD_OWNER) && sc->tx.teardown == 0)
break; /* Hardware is still using this packet. */
bus_dmamap_sync(sc->mbuf_dtag, slot->dmamap, BUS_DMASYNC_POSTWRITE);