Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 May 2016 17:05:58 +0000 (UTC)
From:      "Conrad E. Meyer" <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r298987 - head/sys/dev/ioat
Message-ID:  <201605031705.u43H5wUb011828@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605031705.u43H5wUb011828>