diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2008-09-10 01:06:47 +0900 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-10 11:33:44 +0200 |
commit | ac4ff656c07ada78316307b0c0ce8a8eb48aa6dd (patch) | |
tree | 24cca8ef20d79aae3a027ff51a8c8d48f625e968 /arch/x86/kernel/pci-gart_64.c | |
parent | 636dc67cbf8c481a996faf6c23f0532d0f02ebad (diff) | |
download | lwn-ac4ff656c07ada78316307b0c0ce8a8eb48aa6dd.tar.gz lwn-ac4ff656c07ada78316307b0c0ce8a8eb48aa6dd.zip |
x86: convert gart to use is_buffer_dma_capable helper function
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/pci-gart_64.c')
-rw-r--r-- | arch/x86/kernel/pci-gart_64.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index 0b99d4a06f74..1b0c412566e5 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c @@ -214,24 +214,14 @@ static void iommu_full(struct device *dev, size_t size, int dir) static inline int need_iommu(struct device *dev, unsigned long addr, size_t size) { - u64 mask = *dev->dma_mask; - int high = addr + size > mask; - int mmu = high; - - if (force_iommu) - mmu = 1; - - return mmu; + return force_iommu || + !is_buffer_dma_capable(*dev->dma_mask, addr, size); } static inline int nonforced_iommu(struct device *dev, unsigned long addr, size_t size) { - u64 mask = *dev->dma_mask; - int high = addr + size > mask; - int mmu = high; - - return mmu; + return !is_buffer_dma_capable(*dev->dma_mask, addr, size); } /* Map a single continuous physical area into the IOMMU. |