summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2012-02-28 17:29:31 +0000
committeremaste <emaste@FreeBSD.org>2012-02-28 17:29:31 +0000
commit5605a1003e44844e1082428389241881b75a730f (patch)
tree3ddf325f06ed279573bdb7e78a74ad3e366ec3b6 /sys/dev/aac
parent714a708b6a92a32fbffa6ee65ea674dc498c9347 (diff)
downloadFreeBSD-src-5605a1003e44844e1082428389241881b75a730f.zip
FreeBSD-src-5605a1003e44844e1082428389241881b75a730f.tar.gz
Avoid transfers crossing a 4GB boundary, which can lead to data
corruption. Thanks to scottl@ for the suggestion. This change will likely be revised after consideration of a general method to address this type of issue for other drivers. Sponsored by: Sandvine Incorporated MFC after: 3 days
Diffstat (limited to 'sys/dev/aac')
-rw-r--r--sys/dev/aac/aac_pci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/aac/aac_pci.c b/sys/dev/aac/aac_pci.c
index 485d5ff..1427f00 100644
--- a/sys/dev/aac/aac_pci.c
+++ b/sys/dev/aac/aac_pci.c
@@ -403,7 +403,8 @@ aac_pci_attach(device_t dev)
* Note that some of these controllers are 64-bit capable.
*/
if (bus_dma_tag_create(NULL, /* parent */
- PAGE_SIZE, 0, /* algnmnt, boundary */
+ PAGE_SIZE, /* alignment */
+ ((bus_size_t)((uint64_t)1 << 32)), /* boundary*/
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
OpenPOWER on IntegriCloud