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