svn commit: r298987 - head/sys/dev/ioat

Conrad E. Meyer cem at FreeBSD.org
Tue May 3 17:05:59 UTC 2016


Author: cem
Date: Tue May  3 17:05:58 2016
New Revision: 298987
URL: https://svnweb.freebsd.org/changeset/base/298987

Log:
  ioat(4): Limit descriptor allocation to low 40 bits
  
  The IOAT engine can only address the low 40 bits (1 TB) of physmem via
  the 'next descriptor' pointer.  Restrict acceptable range given to
  bus_dma_tag_create to match.
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/sys/dev/ioat/ioat.c

Modified: head/sys/dev/ioat/ioat.c
==============================================================================
--- head/sys/dev/ioat/ioat.c	Tue May  3 16:37:09 2016	(r298986)
+++ head/sys/dev/ioat/ioat.c	Tue May  3 17:05:58 2016	(r298987)
@@ -52,6 +52,9 @@ __FBSDID("$FreeBSD$");
 #include "ioat_hw.h"
 #include "ioat_internal.h"
 
+#ifndef	BUS_SPACE_MAXADDR_40BIT
+#define	BUS_SPACE_MAXADDR_40BIT	0xFFFFFFFFFFULL
+#endif
 #define	IOAT_INTR_TIMO	(hz / 10)
 #define	IOAT_REFLK	(&ioat->submit_lock)
 
@@ -454,7 +457,7 @@ ioat3_attach(device_t device)
 	num_descriptors = 1 << ioat->ring_size_order;
 
 	bus_dma_tag_create(bus_get_dma_tag(ioat->device), 0x40, 0x0,
-	    BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL,
+	    BUS_SPACE_MAXADDR_40BIT, BUS_SPACE_MAXADDR, NULL, NULL,
 	    sizeof(struct ioat_dma_hw_descriptor), 1,
 	    sizeof(struct ioat_dma_hw_descriptor), 0, NULL, NULL,
 	    &ioat->hw_desc_tag);


More information about the svn-src-head mailing list