diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/kernel/pci_iommu.c | 1 | ||||
-rw-r--r-- | arch/arm/common/dmabounce.c | 1 | ||||
-rw-r--r-- | arch/mips/mm/dma-default.c | 1 | ||||
-rw-r--r-- | arch/parisc/kernel/pci-dma.c | 1 | ||||
-rw-r--r-- | arch/sparc64/kernel/iommu_common.c | 5 |
5 files changed, 9 insertions, 0 deletions
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index ee07dceae1d..2d00a08d3f0 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c @@ -7,6 +7,7 @@ #include <linux/pci.h> #include <linux/slab.h> #include <linux/bootmem.h> +#include <linux/scatterlist.h> #include <linux/log2.h> #include <asm/io.h> diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c index 9d371e47655..52fc6a88328 100644 --- a/arch/arm/common/dmabounce.c +++ b/arch/arm/common/dmabounce.c @@ -29,6 +29,7 @@ #include <linux/dma-mapping.h> #include <linux/dmapool.h> #include <linux/list.h> +#include <linux/scatterlist.h> #include <asm/cacheflush.h> diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c index b0b034c4654..b1b40527658 100644 --- a/arch/mips/mm/dma-default.c +++ b/arch/mips/mm/dma-default.c @@ -13,6 +13,7 @@ #include <linux/mm.h> #include <linux/module.h> #include <linux/string.h> +#include <linux/scatterlist.h> #include <asm/cache.h> #include <asm/io.h> diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c index 41f8e321e34..9448d4e9114 100644 --- a/arch/parisc/kernel/pci-dma.c +++ b/arch/parisc/kernel/pci-dma.c @@ -25,6 +25,7 @@ #include <linux/slab.h> #include <linux/string.h> #include <linux/types.h> +#include <linux/scatterlist.h> #include <asm/cacheflush.h> #include <asm/dma.h> /* for DMA_CHUNK_SIZE */ diff --git a/arch/sparc64/kernel/iommu_common.c b/arch/sparc64/kernel/iommu_common.c index 78e8277df65..b70324e0d83 100644 --- a/arch/sparc64/kernel/iommu_common.c +++ b/arch/sparc64/kernel/iommu_common.c @@ -233,6 +233,11 @@ unsigned long prepare_sg(struct scatterlist *sg, int nents) dma_sg->dma_address = dent_addr; dma_sg->dma_length = dent_len; + if (dma_sg != sg) { + dma_sg = next_sg(dma_sg); + dma_sg->dma_length = 0; + } + return ((unsigned long) dent_addr + (unsigned long) dent_len + (IO_PAGE_SIZE - 1UL)) >> IO_PAGE_SHIFT; |