From 9c3473572f294a59ac96d90dda56eebf6a1379da Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 27 Sep 2017 09:38:28 +0200 Subject: ffec: Use explicit cache synchronization --- freebsd/sys/dev/ffec/if_ffec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/freebsd/sys/dev/ffec/if_ffec.c b/freebsd/sys/dev/ffec/if_ffec.c index 2fc94a6a..f4914adf 100644 --- a/freebsd/sys/dev/ffec/if_ffec.c +++ b/freebsd/sys/dev/ffec/if_ffec.c @@ -607,8 +607,12 @@ ffec_setup_txbuf(struct ffec_softc *sc, int idx, struct mbuf **mp) if (error != 0) { return (ENOMEM); } +#ifndef __rtems__ bus_dmamap_sync(sc->txbuf_tag, sc->txbuf_map[idx].map, BUS_DMASYNC_PREWRITE); +#else /* __rtems__ */ + rtems_cache_flush_multiple_data_lines((void *)seg.ds_addr, seg.ds_len); +#endif /* __rtems__ */ sc->txbuf_map[idx].mbuf = m; ffec_setup_txdesc(sc, idx, seg.ds_addr, seg.ds_len); @@ -771,6 +775,9 @@ ffec_alloc_mbufcl(struct ffec_softc *sc) m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); m->m_pkthdr.len = m->m_len = m->m_ext.ext_size; +#ifdef __rtems__ + rtems_cache_invalidate_multiple_data_lines(m->m_data, m->m_len); +#endif /* __rtems__ */ return (m); } -- cgit v1.2.3