diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 13:09:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 13:09:16 -0400 |
commit | 92d15c2ccbb3e31a3fc71ad28fdb55e1319383c0 (patch) | |
tree | 8d83c0dc3c6b935d8367e331872f242b742f0a8a /include/asm-x86 | |
parent | f20bf6125605acbbc7eb8c9420d7221c91aa83eb (diff) | |
parent | 644bd2f048972d75eb1979b1fdca257d528ce687 (diff) |
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block: (63 commits)
Fix memory leak in dm-crypt
SPARC64: sg chaining support
SPARC: sg chaining support
PPC: sg chaining support
PS3: sg chaining support
IA64: sg chaining support
x86-64: enable sg chaining
x86-64: update pci-gart iommu to sg helpers
x86-64: update nommu to sg helpers
x86-64: update calgary iommu to sg helpers
swiotlb: sg chaining support
i386: enable sg chaining
i386 dma_map_sg: convert to using sg helpers
mmc: need to zero sglist on init
Panic in blk_rq_map_sg() from CCISS driver
remove sglist_len
remove blk_queue_max_phys_segments in libata
revert sg segment size ifdefs
Fixup u14-34f ENABLE_SG_CHAINING
qla1280: enable use_sg_chaining option
...
Diffstat (limited to 'include/asm-x86')
-rw-r--r-- | include/asm-x86/dma-mapping_32.h | 13 | ||||
-rw-r--r-- | include/asm-x86/dma-mapping_64.h | 3 | ||||
-rw-r--r-- | include/asm-x86/scatterlist_32.h | 2 | ||||
-rw-r--r-- | include/asm-x86/scatterlist_64.h | 2 |
4 files changed, 12 insertions, 8 deletions
diff --git a/include/asm-x86/dma-mapping_32.h b/include/asm-x86/dma-mapping_32.h index f1d72d177f68..6a2d26cb5da6 100644 --- a/include/asm-x86/dma-mapping_32.h +++ b/include/asm-x86/dma-mapping_32.h | |||
@@ -2,10 +2,10 @@ | |||
2 | #define _ASM_I386_DMA_MAPPING_H | 2 | #define _ASM_I386_DMA_MAPPING_H |
3 | 3 | ||
4 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
5 | #include <linux/scatterlist.h> | ||
5 | 6 | ||
6 | #include <asm/cache.h> | 7 | #include <asm/cache.h> |
7 | #include <asm/io.h> | 8 | #include <asm/io.h> |
8 | #include <asm/scatterlist.h> | ||
9 | #include <asm/bug.h> | 9 | #include <asm/bug.h> |
10 | 10 | ||
11 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | 11 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) |
@@ -35,18 +35,19 @@ dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | |||
35 | } | 35 | } |
36 | 36 | ||
37 | static inline int | 37 | static inline int |
38 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | 38 | dma_map_sg(struct device *dev, struct scatterlist *sglist, int nents, |
39 | enum dma_data_direction direction) | 39 | enum dma_data_direction direction) |
40 | { | 40 | { |
41 | struct scatterlist *sg; | ||
41 | int i; | 42 | int i; |
42 | 43 | ||
43 | BUG_ON(!valid_dma_direction(direction)); | 44 | BUG_ON(!valid_dma_direction(direction)); |
44 | WARN_ON(nents == 0 || sg[0].length == 0); | 45 | WARN_ON(nents == 0 || sglist[0].length == 0); |
45 | 46 | ||
46 | for (i = 0; i < nents; i++ ) { | 47 | for_each_sg(sglist, sg, nents, i) { |
47 | BUG_ON(!sg[i].page); | 48 | BUG_ON(!sg->page); |
48 | 49 | ||
49 | sg[i].dma_address = page_to_phys(sg[i].page) + sg[i].offset; | 50 | sg->dma_address = page_to_phys(sg->page) + sg->offset; |
50 | } | 51 | } |
51 | 52 | ||
52 | flush_write_buffers(); | 53 | flush_write_buffers(); |
diff --git a/include/asm-x86/dma-mapping_64.h b/include/asm-x86/dma-mapping_64.h index 6897e2a436e5..ecd0f6125ba3 100644 --- a/include/asm-x86/dma-mapping_64.h +++ b/include/asm-x86/dma-mapping_64.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * documentation. | 6 | * documentation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | 9 | #include <linux/scatterlist.h> | |
10 | #include <asm/scatterlist.h> | ||
11 | #include <asm/io.h> | 10 | #include <asm/io.h> |
12 | #include <asm/swiotlb.h> | 11 | #include <asm/swiotlb.h> |
13 | 12 | ||
diff --git a/include/asm-x86/scatterlist_32.h b/include/asm-x86/scatterlist_32.h index d7e45a8f1aae..bd5164aa8f63 100644 --- a/include/asm-x86/scatterlist_32.h +++ b/include/asm-x86/scatterlist_32.h | |||
@@ -10,6 +10,8 @@ struct scatterlist { | |||
10 | unsigned int length; | 10 | unsigned int length; |
11 | }; | 11 | }; |
12 | 12 | ||
13 | #define ARCH_HAS_SG_CHAIN | ||
14 | |||
13 | /* These macros should be used after a pci_map_sg call has been done | 15 | /* These macros should be used after a pci_map_sg call has been done |
14 | * to get bus addresses of each of the SG entries and their lengths. | 16 | * to get bus addresses of each of the SG entries and their lengths. |
15 | * You should only work with the number of sg entries pci_map_sg | 17 | * You should only work with the number of sg entries pci_map_sg |
diff --git a/include/asm-x86/scatterlist_64.h b/include/asm-x86/scatterlist_64.h index eaf7ada27e14..ef3986ba4b79 100644 --- a/include/asm-x86/scatterlist_64.h +++ b/include/asm-x86/scatterlist_64.h | |||
@@ -11,6 +11,8 @@ struct scatterlist { | |||
11 | unsigned int dma_length; | 11 | unsigned int dma_length; |
12 | }; | 12 | }; |
13 | 13 | ||
14 | #define ARCH_HAS_SG_CHAIN | ||
15 | |||
14 | #define ISA_DMA_THRESHOLD (0x00ffffff) | 16 | #define ISA_DMA_THRESHOLD (0x00ffffff) |
15 | 17 | ||
16 | /* These macros should be used after a pci_map_sg call has been done | 18 | /* These macros should be used after a pci_map_sg call has been done |