diff options
author | delphij <delphij@FreeBSD.org> | 2008-10-06 22:34:17 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2008-10-06 22:34:17 +0000 |
commit | 83b7a52a1639cf331a280b0e55216edc2b3cd45d (patch) | |
tree | 8baa58c9cde62d50750a2602cc028e96d0a646c0 | |
parent | 1d7527fd9e48a7bac7eea8d6b8560ef4e47941d5 (diff) | |
download | FreeBSD-src-83b7a52a1639cf331a280b0e55216edc2b3cd45d.zip FreeBSD-src-83b7a52a1639cf331a280b0e55216edc2b3cd45d.tar.gz |
Limit DMA memory to lower addressable 4GB, without this patch, we
can reliably provoke data corruption on systems equipped with a
plenty of memory during high load.
Reported by: gnn via iXsystems
MFC candidate: RELENG_7_1, RELENG_7
-rw-r--r-- | sys/dev/twa/tw_osl_freebsd.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/twa/tw_osl_freebsd.c b/sys/dev/twa/tw_osl_freebsd.c index b1fd287..d18fd0a 100644 --- a/sys/dev/twa/tw_osl_freebsd.c +++ b/sys/dev/twa/tw_osl_freebsd.c @@ -492,7 +492,7 @@ tw_osli_alloc_mem(struct twa_softc *sc) if (bus_dma_tag_create(NULL, /* parent */ sc->alignment, /* alignment */ 0, /* boundary */ - BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR_32BIT,/* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ TW_CL_MAX_IO_SIZE, /* maxsize */ @@ -515,7 +515,7 @@ tw_osli_alloc_mem(struct twa_softc *sc) if (bus_dma_tag_create(sc->parent_tag, /* parent */ sc->alignment, /* alignment */ 0, /* boundary */ - BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR_32BIT,/* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ dma_mem_size, /* maxsize */ @@ -562,7 +562,7 @@ tw_osli_alloc_mem(struct twa_softc *sc) if (bus_dma_tag_create(sc->parent_tag, /* parent */ sc->alignment, /* alignment */ 0, /* boundary */ - BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR_32BIT,/* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ TW_CL_MAX_IO_SIZE, /* maxsize */ @@ -588,7 +588,7 @@ tw_osli_alloc_mem(struct twa_softc *sc) if (bus_dma_tag_create(sc->parent_tag, /* parent */ sc->alignment, /* alignment */ 0, /* boundary */ - BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR_32BIT,/* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ TW_CL_MAX_IO_SIZE, /* maxsize */ |