diff options
author | emaste <emaste@FreeBSD.org> | 2012-02-28 17:29:31 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2012-02-28 17:29:31 +0000 |
commit | 5605a1003e44844e1082428389241881b75a730f (patch) | |
tree | 3ddf325f06ed279573bdb7e78a74ad3e366ec3b6 /sys/dev/aac | |
parent | 714a708b6a92a32fbffa6ee65ea674dc498c9347 (diff) | |
download | FreeBSD-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.c | 3 |
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 */ |