diff options
-rw-r--r-- | drivers/block/DAC960.c | 1 | ||||
-rw-r--r-- | drivers/block/cpqarray.c | 1 | ||||
-rw-r--r-- | drivers/block/sx8.c | 1 | ||||
-rw-r--r-- | drivers/ieee1394/dma.c | 2 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.h | 1 | ||||
-rw-r--r-- | drivers/media/video/videobuf-dma-sg.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/mmci.h | 2 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.c | 1 | ||||
-rw-r--r-- | drivers/usb/core/message.c | 2 | ||||
-rw-r--r-- | include/asm-xtensa/dma-mapping.h | 13 | ||||
-rw-r--r-- | include/linux/scatterlist.h | 5 | ||||
-rw-r--r-- | include/media/saa7146.h | 1 | ||||
-rw-r--r-- | net/ieee80211/ieee80211_crypt_tkip.c | 1 | ||||
-rw-r--r-- | net/ieee80211/ieee80211_crypt_wep.c | 1 | ||||
-rw-r--r-- | net/mac80211/wep.c | 2 |
15 files changed, 23 insertions, 12 deletions
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 53505422867c..9030c373ce67 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <linux/init.h> | 44 | #include <linux/init.h> |
45 | #include <linux/jiffies.h> | 45 | #include <linux/jiffies.h> |
46 | #include <linux/random.h> | 46 | #include <linux/random.h> |
47 | #include <linux/scatterlist.h> | ||
47 | #include <asm/io.h> | 48 | #include <asm/io.h> |
48 | #include <asm/uaccess.h> | 49 | #include <asm/uaccess.h> |
49 | #include "DAC960.h" | 50 | #include "DAC960.h" |
diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index efab27fa1083..c8132d958795 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
38 | #include <linux/blkdev.h> | 38 | #include <linux/blkdev.h> |
39 | #include <linux/genhd.h> | 39 | #include <linux/genhd.h> |
40 | #include <linux/scatterlist.h> | ||
40 | #include <asm/uaccess.h> | 41 | #include <asm/uaccess.h> |
41 | #include <asm/io.h> | 42 | #include <asm/io.h> |
42 | 43 | ||
diff --git a/drivers/block/sx8.c b/drivers/block/sx8.c index 282a69558e8a..52dc5e131718 100644 --- a/drivers/block/sx8.c +++ b/drivers/block/sx8.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/hdreg.h> | 27 | #include <linux/hdreg.h> |
28 | #include <linux/dma-mapping.h> | 28 | #include <linux/dma-mapping.h> |
29 | #include <linux/completion.h> | 29 | #include <linux/completion.h> |
30 | #include <linux/scatterlist.h> | ||
30 | #include <asm/io.h> | 31 | #include <asm/io.h> |
31 | #include <asm/uaccess.h> | 32 | #include <asm/uaccess.h> |
32 | 33 | ||
diff --git a/drivers/ieee1394/dma.c b/drivers/ieee1394/dma.c index 25e113b50d86..3051e312fdc8 100644 --- a/drivers/ieee1394/dma.c +++ b/drivers/ieee1394/dma.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include <linux/vmalloc.h> | 14 | #include <linux/vmalloc.h> |
15 | #include <asm/scatterlist.h> | 15 | #include <linux/scatterlist.h> |
16 | 16 | ||
17 | #include "dma.h" | 17 | #include "dma.h" |
18 | 18 | ||
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h index 3bda1df63cb6..49ce14d14a54 100644 --- a/drivers/media/video/ivtv/ivtv-driver.h +++ b/drivers/media/video/ivtv/ivtv-driver.h | |||
@@ -51,6 +51,7 @@ | |||
51 | #include <linux/unistd.h> | 51 | #include <linux/unistd.h> |
52 | #include <linux/byteorder/swab.h> | 52 | #include <linux/byteorder/swab.h> |
53 | #include <linux/pagemap.h> | 53 | #include <linux/pagemap.h> |
54 | #include <linux/scatterlist.h> | ||
54 | #include <linux/workqueue.h> | 55 | #include <linux/workqueue.h> |
55 | #include <linux/mutex.h> | 56 | #include <linux/mutex.h> |
56 | #include <asm/uaccess.h> | 57 | #include <asm/uaccess.h> |
diff --git a/drivers/media/video/videobuf-dma-sg.c b/drivers/media/video/videobuf-dma-sg.c index 0a18286279d3..9ab94a749d81 100644 --- a/drivers/media/video/videobuf-dma-sg.c +++ b/drivers/media/video/videobuf-dma-sg.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/pci.h> | 27 | #include <linux/pci.h> |
28 | #include <linux/vmalloc.h> | 28 | #include <linux/vmalloc.h> |
29 | #include <linux/pagemap.h> | 29 | #include <linux/pagemap.h> |
30 | #include <linux/scatterlist.h> | ||
30 | #include <asm/page.h> | 31 | #include <asm/page.h> |
31 | #include <asm/pgtable.h> | 32 | #include <asm/pgtable.h> |
32 | 33 | ||
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index 000e6a919782..0f39c490f022 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h | |||
@@ -169,7 +169,7 @@ static inline char *mmci_kmap_atomic(struct mmci_host *host, unsigned long *flag | |||
169 | struct scatterlist *sg = host->sg_ptr; | 169 | struct scatterlist *sg = host->sg_ptr; |
170 | 170 | ||
171 | local_irq_save(*flags); | 171 | local_irq_save(*flags); |
172 | return kmap_atomic(sg->page, KM_BIO_SRC_IRQ) + sg->offset; | 172 | return kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset; |
173 | } | 173 | } |
174 | 174 | ||
175 | static inline void mmci_kunmap_atomic(struct mmci_host *host, void *buffer, unsigned long *flags) | 175 | static inline void mmci_kunmap_atomic(struct mmci_host *host, void *buffer, unsigned long *flags) |
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 0db837e44b77..d7c5b94d8c58 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/highmem.h> | 13 | #include <linux/highmem.h> |
14 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
15 | #include <linux/dma-mapping.h> | 15 | #include <linux/dma-mapping.h> |
16 | #include <linux/scatterlist.h> | ||
16 | 17 | ||
17 | #include <linux/mmc/host.h> | 18 | #include <linux/mmc/host.h> |
18 | 19 | ||
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 90d64a808464..8bdaa157ffe7 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -11,9 +11,9 @@ | |||
11 | #include <linux/timer.h> | 11 | #include <linux/timer.h> |
12 | #include <linux/ctype.h> | 12 | #include <linux/ctype.h> |
13 | #include <linux/device.h> | 13 | #include <linux/device.h> |
14 | #include <linux/scatterlist.h> | ||
14 | #include <linux/usb/quirks.h> | 15 | #include <linux/usb/quirks.h> |
15 | #include <asm/byteorder.h> | 16 | #include <asm/byteorder.h> |
16 | #include <asm/scatterlist.h> | ||
17 | 17 | ||
18 | #include "hcd.h" /* for usbcore internals */ | 18 | #include "hcd.h" /* for usbcore internals */ |
19 | #include "usb.h" | 19 | #include "usb.h" |
diff --git a/include/asm-xtensa/dma-mapping.h b/include/asm-xtensa/dma-mapping.h index 82b03b3a2ee6..8bd9d2c02a24 100644 --- a/include/asm-xtensa/dma-mapping.h +++ b/include/asm-xtensa/dma-mapping.h | |||
@@ -58,11 +58,10 @@ dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | |||
58 | BUG_ON(direction == DMA_NONE); | 58 | BUG_ON(direction == DMA_NONE); |
59 | 59 | ||
60 | for (i = 0; i < nents; i++, sg++ ) { | 60 | for (i = 0; i < nents; i++, sg++ ) { |
61 | BUG_ON(!sg->page); | 61 | BUG_ON(!sg_page(sg)); |
62 | 62 | ||
63 | sg->dma_address = page_to_phys(sg->page) + sg->offset; | 63 | sg->dma_address = sg_phys(sg); |
64 | consistent_sync(page_address(sg->page) + sg->offset, | 64 | consistent_sync(sg_virt(sg), sg->length, direction); |
65 | sg->length, direction); | ||
66 | } | 65 | } |
67 | 66 | ||
68 | return nents; | 67 | return nents; |
@@ -128,8 +127,7 @@ dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, | |||
128 | { | 127 | { |
129 | int i; | 128 | int i; |
130 | for (i = 0; i < nelems; i++, sg++) | 129 | for (i = 0; i < nelems; i++, sg++) |
131 | consistent_sync(page_address(sg->page) + sg->offset, | 130 | consistent_sync(sg_virt(sg), sg->length, dir); |
132 | sg->length, dir); | ||
133 | } | 131 | } |
134 | 132 | ||
135 | static inline void | 133 | static inline void |
@@ -138,8 +136,7 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, | |||
138 | { | 136 | { |
139 | int i; | 137 | int i; |
140 | for (i = 0; i < nelems; i++, sg++) | 138 | for (i = 0; i < nelems; i++, sg++) |
141 | consistent_sync(page_address(sg->page) + sg->offset, | 139 | consistent_sync(sg_virt(sg), sg->length, dir); |
142 | sg->length, dir); | ||
143 | } | 140 | } |
144 | static inline int | 141 | static inline int |
145 | dma_mapping_error(dma_addr_t dma_addr) | 142 | dma_mapping_error(dma_addr_t dma_addr) |
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index 42daf5e15265..df7ddcee7c4b 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h | |||
@@ -41,6 +41,11 @@ static inline void sg_set_page(struct scatterlist *sg, struct page *page) | |||
41 | { | 41 | { |
42 | unsigned long page_link = sg->page_link & 0x3; | 42 | unsigned long page_link = sg->page_link & 0x3; |
43 | 43 | ||
44 | /* | ||
45 | * In order for the low bit stealing approach to work, pages | ||
46 | * must be aligned at a 32-bit boundary as a minimum. | ||
47 | */ | ||
48 | BUG_ON((unsigned long) page & 0x03); | ||
44 | #ifdef CONFIG_DEBUG_SG | 49 | #ifdef CONFIG_DEBUG_SG |
45 | BUG_ON(sg->sg_magic != SG_MAGIC); | 50 | BUG_ON(sg->sg_magic != SG_MAGIC); |
46 | #endif | 51 | #endif |
diff --git a/include/media/saa7146.h b/include/media/saa7146.h index cd3ff2c29d5e..88b2b5a619aa 100644 --- a/include/media/saa7146.h +++ b/include/media/saa7146.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/io.h> /* for accessing devices */ | 12 | #include <asm/io.h> /* for accessing devices */ |
13 | #include <linux/stringify.h> | 13 | #include <linux/stringify.h> |
14 | #include <linux/mutex.h> | 14 | #include <linux/mutex.h> |
15 | #include <linux/scatterlist.h> | ||
15 | 16 | ||
16 | #include <linux/vmalloc.h> /* for vmalloc() */ | 17 | #include <linux/vmalloc.h> /* for vmalloc() */ |
17 | #include <linux/mm.h> /* for vmalloc_to_page() */ | 18 | #include <linux/mm.h> /* for vmalloc_to_page() */ |
diff --git a/net/ieee80211/ieee80211_crypt_tkip.c b/net/ieee80211/ieee80211_crypt_tkip.c index c796661a021b..811777682e2b 100644 --- a/net/ieee80211/ieee80211_crypt_tkip.c +++ b/net/ieee80211/ieee80211_crypt_tkip.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
16 | #include <linux/random.h> | 16 | #include <linux/random.h> |
17 | #include <linux/scatterlist.h> | ||
17 | #include <linux/skbuff.h> | 18 | #include <linux/skbuff.h> |
18 | #include <linux/netdevice.h> | 19 | #include <linux/netdevice.h> |
19 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
diff --git a/net/ieee80211/ieee80211_crypt_wep.c b/net/ieee80211/ieee80211_crypt_wep.c index 0af6103d715c..9693429489ed 100644 --- a/net/ieee80211/ieee80211_crypt_wep.c +++ b/net/ieee80211/ieee80211_crypt_wep.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
16 | #include <linux/random.h> | 16 | #include <linux/random.h> |
17 | #include <linux/scatterlist.h> | ||
17 | #include <linux/skbuff.h> | 18 | #include <linux/skbuff.h> |
18 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
19 | #include <asm/string.h> | 20 | #include <asm/string.h> |
diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c index cc806d640f7a..a84a23310ff4 100644 --- a/net/mac80211/wep.c +++ b/net/mac80211/wep.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <linux/crypto.h> | 16 | #include <linux/crypto.h> |
17 | #include <linux/err.h> | 17 | #include <linux/err.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <asm/scatterlist.h> | 19 | #include <linux/scatterlist.h> |
20 | 20 | ||
21 | #include <net/mac80211.h> | 21 | #include <net/mac80211.h> |
22 | #include "ieee80211_i.h" | 22 | #include "ieee80211_i.h" |