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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to