diff options
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/agp/backend.c | 9 | ||||
-rw-r--r-- | drivers/char/agp/generic.c | 9 | ||||
-rw-r--r-- | drivers/char/agp/i460-agp.c | 17 | ||||
-rw-r--r-- | drivers/char/agp/intel-agp.c | 5 | ||||
-rw-r--r-- | drivers/char/drm/ati_pcigart.c | 4 | ||||
-rw-r--r-- | drivers/char/ip2.c | 1 | ||||
-rw-r--r-- | drivers/char/mwave/tp3780i.c | 1 | ||||
-rw-r--r-- | drivers/char/mxser.c | 1 | ||||
-rw-r--r-- | drivers/char/specialix.c | 1 | ||||
-rw-r--r-- | drivers/char/sysrq.c | 4 | ||||
-rw-r--r-- | drivers/char/tpm/tpm.h | 1 | ||||
-rw-r--r-- | drivers/char/viocons.c | 1 | ||||
-rw-r--r-- | drivers/char/viotape.c | 1 |
13 files changed, 32 insertions, 23 deletions
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index 73f333f491bd..27bca34b4a65 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c | |||
@@ -147,6 +147,7 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) | |||
147 | printk(KERN_ERR PFX "unable to get memory for scratch page.\n"); | 147 | printk(KERN_ERR PFX "unable to get memory for scratch page.\n"); |
148 | return -ENOMEM; | 148 | return -ENOMEM; |
149 | } | 149 | } |
150 | flush_agp_mappings(); | ||
150 | 151 | ||
151 | bridge->scratch_page_real = virt_to_gart(addr); | 152 | bridge->scratch_page_real = virt_to_gart(addr); |
152 | bridge->scratch_page = | 153 | bridge->scratch_page = |
@@ -187,9 +188,11 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) | |||
187 | return 0; | 188 | return 0; |
188 | 189 | ||
189 | err_out: | 190 | err_out: |
190 | if (bridge->driver->needs_scratch_page) | 191 | if (bridge->driver->needs_scratch_page) { |
191 | bridge->driver->agp_destroy_page( | 192 | bridge->driver->agp_destroy_page( |
192 | gart_to_virt(bridge->scratch_page_real)); | 193 | gart_to_virt(bridge->scratch_page_real)); |
194 | flush_agp_mappings(); | ||
195 | } | ||
193 | if (got_gatt) | 196 | if (got_gatt) |
194 | bridge->driver->free_gatt_table(bridge); | 197 | bridge->driver->free_gatt_table(bridge); |
195 | if (got_keylist) { | 198 | if (got_keylist) { |
@@ -211,9 +214,11 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge) | |||
211 | bridge->key_list = NULL; | 214 | bridge->key_list = NULL; |
212 | 215 | ||
213 | if (bridge->driver->agp_destroy_page && | 216 | if (bridge->driver->agp_destroy_page && |
214 | bridge->driver->needs_scratch_page) | 217 | bridge->driver->needs_scratch_page) { |
215 | bridge->driver->agp_destroy_page( | 218 | bridge->driver->agp_destroy_page( |
216 | gart_to_virt(bridge->scratch_page_real)); | 219 | gart_to_virt(bridge->scratch_page_real)); |
220 | flush_agp_mappings(); | ||
221 | } | ||
217 | } | 222 | } |
218 | 223 | ||
219 | /* When we remove the global variable agp_bridge from all drivers | 224 | /* When we remove the global variable agp_bridge from all drivers |
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index c4a38715c6f9..5567ce8d72b0 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c | |||
@@ -57,7 +57,8 @@ int map_page_into_agp(struct page *page) | |||
57 | { | 57 | { |
58 | int i; | 58 | int i; |
59 | i = change_page_attr(page, 1, PAGE_KERNEL_NOCACHE); | 59 | i = change_page_attr(page, 1, PAGE_KERNEL_NOCACHE); |
60 | global_flush_tlb(); | 60 | /* Caller's responsibility to call global_flush_tlb() for |
61 | * performance reasons */ | ||
61 | return i; | 62 | return i; |
62 | } | 63 | } |
63 | EXPORT_SYMBOL_GPL(map_page_into_agp); | 64 | EXPORT_SYMBOL_GPL(map_page_into_agp); |
@@ -66,7 +67,8 @@ int unmap_page_from_agp(struct page *page) | |||
66 | { | 67 | { |
67 | int i; | 68 | int i; |
68 | i = change_page_attr(page, 1, PAGE_KERNEL); | 69 | i = change_page_attr(page, 1, PAGE_KERNEL); |
69 | global_flush_tlb(); | 70 | /* Caller's responsibility to call global_flush_tlb() for |
71 | * performance reasons */ | ||
70 | return i; | 72 | return i; |
71 | } | 73 | } |
72 | EXPORT_SYMBOL_GPL(unmap_page_from_agp); | 74 | EXPORT_SYMBOL_GPL(unmap_page_from_agp); |
@@ -153,6 +155,7 @@ void agp_free_memory(struct agp_memory *curr) | |||
153 | for (i = 0; i < curr->page_count; i++) { | 155 | for (i = 0; i < curr->page_count; i++) { |
154 | curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i])); | 156 | curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i])); |
155 | } | 157 | } |
158 | flush_agp_mappings(); | ||
156 | } | 159 | } |
157 | agp_free_key(curr->key); | 160 | agp_free_key(curr->key); |
158 | vfree(curr->memory); | 161 | vfree(curr->memory); |
@@ -210,7 +213,7 @@ struct agp_memory *agp_allocate_memory(struct agp_bridge_data *bridge, | |||
210 | new->memory[i] = virt_to_gart(addr); | 213 | new->memory[i] = virt_to_gart(addr); |
211 | new->page_count++; | 214 | new->page_count++; |
212 | } | 215 | } |
213 | new->bridge = bridge; | 216 | new->bridge = bridge; |
214 | 217 | ||
215 | flush_agp_mappings(); | 218 | flush_agp_mappings(); |
216 | 219 | ||
diff --git a/drivers/char/agp/i460-agp.c b/drivers/char/agp/i460-agp.c index 58944cd271ea..34a444658ffe 100644 --- a/drivers/char/agp/i460-agp.c +++ b/drivers/char/agp/i460-agp.c | |||
@@ -111,8 +111,10 @@ static int i460_fetch_size (void) | |||
111 | 111 | ||
112 | if (i460.io_page_shift != I460_IO_PAGE_SHIFT) { | 112 | if (i460.io_page_shift != I460_IO_PAGE_SHIFT) { |
113 | printk(KERN_ERR PFX | 113 | printk(KERN_ERR PFX |
114 | "I/O (GART) page-size %ZuKB doesn't match expected size %ZuKB\n", | 114 | "I/O (GART) page-size %luKB doesn't match expected " |
115 | 1UL << (i460.io_page_shift - 10), 1UL << (I460_IO_PAGE_SHIFT)); | 115 | "size %luKB\n", |
116 | 1UL << (i460.io_page_shift - 10), | ||
117 | 1UL << (I460_IO_PAGE_SHIFT)); | ||
116 | return 0; | 118 | return 0; |
117 | } | 119 | } |
118 | 120 | ||
@@ -514,9 +516,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge) | |||
514 | { | 516 | { |
515 | void *page; | 517 | void *page; |
516 | 518 | ||
517 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) | 519 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) { |
518 | page = agp_generic_alloc_page(agp_bridge); | 520 | page = agp_generic_alloc_page(agp_bridge); |
519 | else | 521 | global_flush_tlb(); |
522 | } else | ||
520 | /* Returning NULL would cause problems */ | 523 | /* Returning NULL would cause problems */ |
521 | /* AK: really dubious code. */ | 524 | /* AK: really dubious code. */ |
522 | page = (void *)~0UL; | 525 | page = (void *)~0UL; |
@@ -525,8 +528,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge) | |||
525 | 528 | ||
526 | static void i460_destroy_page (void *page) | 529 | static void i460_destroy_page (void *page) |
527 | { | 530 | { |
528 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) | 531 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) { |
529 | agp_generic_destroy_page(page); | 532 | agp_generic_destroy_page(page); |
533 | global_flush_tlb(); | ||
534 | } | ||
530 | } | 535 | } |
531 | 536 | ||
532 | #endif /* I460_LARGE_IO_PAGES */ | 537 | #endif /* I460_LARGE_IO_PAGES */ |
@@ -536,7 +541,7 @@ static unsigned long i460_mask_memory (struct agp_bridge_data *bridge, | |||
536 | { | 541 | { |
537 | /* Make sure the returned address is a valid GATT entry */ | 542 | /* Make sure the returned address is a valid GATT entry */ |
538 | return bridge->driver->masks[0].mask | 543 | return bridge->driver->masks[0].mask |
539 | | (((addr & ~((1 << I460_IO_PAGE_SHIFT) - 1)) & 0xffffff000) >> 12); | 544 | | (((addr & ~((1 << I460_IO_PAGE_SHIFT) - 1)) & 0xfffff000) >> 12); |
540 | } | 545 | } |
541 | 546 | ||
542 | struct agp_bridge_driver intel_i460_driver = { | 547 | struct agp_bridge_driver intel_i460_driver = { |
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index bf4cc9ffd5b1..027161ab88e9 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -270,6 +270,7 @@ static struct agp_memory *alloc_agpphysmem_i8xx(size_t pg_count, int type) | |||
270 | 270 | ||
271 | switch (pg_count) { | 271 | switch (pg_count) { |
272 | case 1: addr = agp_bridge->driver->agp_alloc_page(agp_bridge); | 272 | case 1: addr = agp_bridge->driver->agp_alloc_page(agp_bridge); |
273 | global_flush_tlb(); | ||
273 | break; | 274 | break; |
274 | case 4: | 275 | case 4: |
275 | /* kludge to get 4 physical pages for ARGB cursor */ | 276 | /* kludge to get 4 physical pages for ARGB cursor */ |
@@ -330,9 +331,11 @@ static void intel_i810_free_by_type(struct agp_memory *curr) | |||
330 | if(curr->type == AGP_PHYS_MEMORY) { | 331 | if(curr->type == AGP_PHYS_MEMORY) { |
331 | if (curr->page_count == 4) | 332 | if (curr->page_count == 4) |
332 | i8xx_destroy_pages(gart_to_virt(curr->memory[0])); | 333 | i8xx_destroy_pages(gart_to_virt(curr->memory[0])); |
333 | else | 334 | else { |
334 | agp_bridge->driver->agp_destroy_page( | 335 | agp_bridge->driver->agp_destroy_page( |
335 | gart_to_virt(curr->memory[0])); | 336 | gart_to_virt(curr->memory[0])); |
337 | global_flush_tlb(); | ||
338 | } | ||
336 | vfree(curr->memory); | 339 | vfree(curr->memory); |
337 | } | 340 | } |
338 | kfree(curr); | 341 | kfree(curr); |
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c index 6d3fec160bff..efff0eec618c 100644 --- a/drivers/char/drm/ati_pcigart.c +++ b/drivers/char/drm/ati_pcigart.c | |||
@@ -203,10 +203,10 @@ int drm_ati_pcigart_init(drm_device_t * dev, drm_ati_pcigart_info * gart_info) | |||
203 | 203 | ||
204 | for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { | 204 | for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { |
205 | if (gart_info->is_pcie) | 205 | if (gart_info->is_pcie) |
206 | *pci_gart = (cpu_to_le32(page_base) >> 8) | 0xc; | 206 | *pci_gart = cpu_to_le32((page_base >> 8) | 0xc); |
207 | else | 207 | else |
208 | *pci_gart = cpu_to_le32(page_base); | 208 | *pci_gart = cpu_to_le32(page_base); |
209 | *pci_gart++; | 209 | pci_gart++; |
210 | page_base += ATI_PCIGART_PAGE_SIZE; | 210 | page_base += ATI_PCIGART_PAGE_SIZE; |
211 | } | 211 | } |
212 | } | 212 | } |
diff --git a/drivers/char/ip2.c b/drivers/char/ip2.c index 6cd12f23aa58..7cadfc6ef352 100644 --- a/drivers/char/ip2.c +++ b/drivers/char/ip2.c | |||
@@ -7,7 +7,6 @@ | |||
7 | // | 7 | // |
8 | 8 | ||
9 | #include <linux/module.h> | 9 | #include <linux/module.h> |
10 | #include <linux/version.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/wait.h> | 11 | #include <linux/wait.h> |
13 | 12 | ||
diff --git a/drivers/char/mwave/tp3780i.c b/drivers/char/mwave/tp3780i.c index d6c72e0934e2..cc3e54dd7234 100644 --- a/drivers/char/mwave/tp3780i.c +++ b/drivers/char/mwave/tp3780i.c | |||
@@ -46,7 +46,6 @@ | |||
46 | * First release to the public | 46 | * First release to the public |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #include <linux/version.h> | ||
50 | #include <linux/interrupt.h> | 49 | #include <linux/interrupt.h> |
51 | #include <linux/kernel.h> | 50 | #include <linux/kernel.h> |
52 | #include <linux/ptrace.h> | 51 | #include <linux/ptrace.h> |
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 3b965a651da4..26448f176803 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c | |||
@@ -38,7 +38,6 @@ | |||
38 | 38 | ||
39 | #include <linux/config.h> | 39 | #include <linux/config.h> |
40 | #include <linux/module.h> | 40 | #include <linux/module.h> |
41 | #include <linux/version.h> | ||
42 | #include <linux/autoconf.h> | 41 | #include <linux/autoconf.h> |
43 | #include <linux/errno.h> | 42 | #include <linux/errno.h> |
44 | #include <linux/signal.h> | 43 | #include <linux/signal.h> |
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c index 352547eabf7b..0bbfce43031c 100644 --- a/drivers/char/specialix.c +++ b/drivers/char/specialix.c | |||
@@ -90,7 +90,6 @@ | |||
90 | #include <linux/fcntl.h> | 90 | #include <linux/fcntl.h> |
91 | #include <linux/major.h> | 91 | #include <linux/major.h> |
92 | #include <linux/delay.h> | 92 | #include <linux/delay.h> |
93 | #include <linux/version.h> | ||
94 | #include <linux/pci.h> | 93 | #include <linux/pci.h> |
95 | #include <linux/init.h> | 94 | #include <linux/init.h> |
96 | #include <asm/uaccess.h> | 95 | #include <asm/uaccess.h> |
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c index feb25158c8ee..145275ebdd7e 100644 --- a/drivers/char/sysrq.c +++ b/drivers/char/sysrq.c | |||
@@ -354,7 +354,7 @@ struct sysrq_key_op *__sysrq_get_key_op (int key) { | |||
354 | return op_p; | 354 | return op_p; |
355 | } | 355 | } |
356 | 356 | ||
357 | void __sysrq_put_key_op (int key, struct sysrq_key_op *op_p) { | 357 | static void __sysrq_put_key_op (int key, struct sysrq_key_op *op_p) { |
358 | int i; | 358 | int i; |
359 | 359 | ||
360 | i = sysrq_key_table_key2index(key); | 360 | i = sysrq_key_table_key2index(key); |
@@ -419,7 +419,7 @@ void handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty) | |||
419 | __handle_sysrq(key, pt_regs, tty, 1); | 419 | __handle_sysrq(key, pt_regs, tty, 1); |
420 | } | 420 | } |
421 | 421 | ||
422 | int __sysrq_swap_key_ops(int key, struct sysrq_key_op *insert_op_p, | 422 | static int __sysrq_swap_key_ops(int key, struct sysrq_key_op *insert_op_p, |
423 | struct sysrq_key_op *remove_op_p) { | 423 | struct sysrq_key_op *remove_op_p) { |
424 | 424 | ||
425 | int retval; | 425 | int retval; |
diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h index 99a60496ecc6..9293bcc4dc62 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | */ | 20 | */ |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/version.h> | ||
23 | #include <linux/pci.h> | 22 | #include <linux/pci.h> |
24 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
25 | #include <linux/fs.h> | 24 | #include <linux/fs.h> |
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c index 98601c7d04a9..4d75c261f98a 100644 --- a/drivers/char/viocons.c +++ b/drivers/char/viocons.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 26 | * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | 28 | #include <linux/config.h> |
29 | #include <linux/version.h> | ||
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
31 | #include <linux/proc_fs.h> | 30 | #include <linux/proc_fs.h> |
32 | #include <linux/errno.h> | 31 | #include <linux/errno.h> |
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c index 867cc4e418c7..60aabdb4a046 100644 --- a/drivers/char/viotape.c +++ b/drivers/char/viotape.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * iseries/vio.h | 32 | * iseries/vio.h |
33 | */ | 33 | */ |
34 | #include <linux/config.h> | 34 | #include <linux/config.h> |
35 | #include <linux/version.h> | ||
36 | #include <linux/module.h> | 35 | #include <linux/module.h> |
37 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
38 | #include <linux/errno.h> | 37 | #include <linux/errno.h> |