diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-12-25 08:17:48 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-12-25 08:17:48 -0500 |
commit | 15e7f8b92aed71819411025279cd3df37f8c636b (patch) | |
tree | 6bc90fd9fcdd4e58321e3f881b2fbcb108a6a654 /lib/swiotlb.c | |
parent | 21949f00a022e090a7e8bc9a01dfca88273c6146 (diff) | |
parent | ef18beded8ddbaafdf4914bab209f77e60ae3a18 (diff) |
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'lib/swiotlb.c')
-rw-r--r-- | lib/swiotlb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 5bc01803f8f8..437eedb5a53b 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c | |||
@@ -549,7 +549,7 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size, | |||
549 | dma_mask = hwdev->coherent_dma_mask; | 549 | dma_mask = hwdev->coherent_dma_mask; |
550 | 550 | ||
551 | ret = (void *)__get_free_pages(flags, order); | 551 | ret = (void *)__get_free_pages(flags, order); |
552 | if (ret && swiotlb_virt_to_bus(hwdev, ret) + size > dma_mask) { | 552 | if (ret && swiotlb_virt_to_bus(hwdev, ret) + size - 1 > dma_mask) { |
553 | /* | 553 | /* |
554 | * The allocated memory isn't reachable by the device. | 554 | * The allocated memory isn't reachable by the device. |
555 | */ | 555 | */ |
@@ -571,7 +571,7 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size, | |||
571 | dev_addr = swiotlb_virt_to_bus(hwdev, ret); | 571 | dev_addr = swiotlb_virt_to_bus(hwdev, ret); |
572 | 572 | ||
573 | /* Confirm address can be DMA'd by device */ | 573 | /* Confirm address can be DMA'd by device */ |
574 | if (dev_addr + size > dma_mask) { | 574 | if (dev_addr + size - 1 > dma_mask) { |
575 | printk("hwdev DMA mask = 0x%016Lx, dev_addr = 0x%016Lx\n", | 575 | printk("hwdev DMA mask = 0x%016Lx, dev_addr = 0x%016Lx\n", |
576 | (unsigned long long)dma_mask, | 576 | (unsigned long long)dma_mask, |
577 | (unsigned long long)dev_addr); | 577 | (unsigned long long)dev_addr); |