svn commit: r217225 - head/sys/dev/bge

Pyun YongHyeon yongari at FreeBSD.org
Mon Jan 10 17:37:49 UTC 2011


Author: yongari
Date: Mon Jan 10 17:37:49 2011
New Revision: 217225
URL: http://svn.freebsd.org/changeset/base/217225

Log:
  Backout r216973 and r216970. r216973 didn't solve watchdog timeout
  issue seen on PCIX BCM5704 controller. r216970 fixed the issue but
  the DMA address space restriction was applied to all bge(4)
  controllers such that it caused unnecessary performance degradation
  for controllers that have no such issues.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Mon Jan 10 16:10:25 2011	(r217224)
+++ head/sys/dev/bge/if_bge.c	Mon Jan 10 17:37:49 2011	(r217225)
@@ -2475,18 +2475,8 @@ bge_dma_alloc(struct bge_softc *sc)
 	boundary = 0;
 	if ((sc->bge_flags & BGE_FLAG_4G_BNDRY_BUG) != 0)
 		boundary = BGE_DMA_BNDRY;
-	/*
-	 * XXX
-	 * It seems bus_dma(9) still has issue on dealing with boundary
-	 * restriction for dynamic buffers so disable the boundary
-	 * 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, lowaddr, BUS_SPACE_MAXADDR, NULL,
+	    1, boundary, 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) {


More information about the svn-src-head mailing list