summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2011-01-04 20:06:26 +0000
committeryongari <yongari@FreeBSD.org>2011-01-04 20:06:26 +0000
commitee15a43d8579645bbe3b489df6824586258b77f8 (patch)
tree1e541a04bb3244c3b3c88b0af4ed67acdb60dc71 /sys/dev/bge
parent766cc9324189007926510b035c8a4dbae82cdf1e (diff)
downloadFreeBSD-src-ee15a43d8579645bbe3b489df6824586258b77f8.zip
FreeBSD-src-ee15a43d8579645bbe3b489df6824586258b77f8.tar.gz
Limit hardware bug workaround to controllers that have 4GB boundary
bug instead of blindly applying it to all controllers. Pointed out by: marius MFC after: 3 days
Diffstat (limited to 'sys/dev/bge')
-rw-r--r--sys/dev/bge/if_bge.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 5bddaa2..0963abe 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -2482,8 +2482,11 @@ bge_dma_alloc(struct bge_softc *sc)
* restriction and limit DMA address space to 32bit. It's not
* clear whether there is another hardware issue here.
*/
+ lowaddr = BUS_SPACE_MAXADDR;
+ if ((sc->bge_flags & BGE_FLAG_40BIT_BUG) != 0)
+ lowaddr = BUS_SPACE_MAXADDR_32BIT;
error = bus_dma_tag_create(bus_get_dma_tag(sc->bge_dev),
- 1, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL,
+ 1, 0, lowaddr, BUS_SPACE_MAXADDR, NULL,
NULL, BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT,
0, NULL, NULL, &sc->bge_cdata.bge_buffer_tag);
if (error != 0) {
OpenPOWER on IntegriCloud