summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-23 08:53:41 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-23 08:53:41 -0700
commitba1c28a94322865457ad59f80474615156065123 (patch)
treea1de9e1b7aba07583e49ff1c3f1c495cf148475a /arch
parent101e4d91f5e8c78d64970c03323d942d6706320f (diff)
parentcb92ae81509eb5ddaea53884b60437502c837405 (diff)
downloadlinux-stable-ba1c28a94322865457ad59f80474615156065123.tar.gz
linux-stable-ba1c28a94322865457ad59f80474615156065123.tar.bz2
linux-stable-ba1c28a94322865457ad59f80474615156065123.zip
Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block
* 'sg' of git://git.kernel.dk/linux-2.6-block: sparc64: zero out dma_length fvr32: fixup dma-mapping for new sg layout sh/sh64: fixup dma-mapping for new sg layout Fix sctp compile m68knommu: remove sg_address() frv: update comment in scatterlist to reflect new setup blackfin: remove sg_address() arm: sg fallout mips: sg_page() fallout alpha: sg_virt() fallout intel-iommu: fix sg_page() parisc: fix sg_page() fallout ide: build fix net: fix xfrm build - missing scatterlist.h include [BLOCK] blk_rq_map_sg: force clear termination bit [BLOCK] Don't clear sg_dma_len/addr() in blk_rq_map_sg() s390 zfcp: sg fixups powerpc: Fix fallout from sg_page() changes IB/ehca: Fix sg_page() fallout arm: build fix
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/kernel/pci_iommu.c1
-rw-r--r--arch/arm/common/dmabounce.c1
-rw-r--r--arch/mips/mm/dma-default.c1
-rw-r--r--arch/parisc/kernel/pci-dma.c1
-rw-r--r--arch/sparc64/kernel/iommu_common.c5
5 files changed, 9 insertions, 0 deletions
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c
index ee07dceae1d4..2d00a08d3f08 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 9d371e476552..52fc6a883281 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 b0b034c4654f..b1b40527658b 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 41f8e321e34c..9448d4e91142 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 78e8277df655..b70324e0d83d 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;