diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-24 17:41:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-24 17:41:20 -0400 |
commit | b69d3987f4360a5e7e9e55465b3cdd0cc204b79e (patch) | |
tree | 8b2142b2ed4a4951b4d7fc13739b6207730e6b04 | |
parent | 57675e6e75c18f279b944dc2397cc9fd0053845e (diff) | |
parent | a4928cffe6435caf427ae673131a633c1329dbf3 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes:
"make namespacecheck" fixes
x86: fix compilation error in VisWS
x86: voyager fix
x86: Drop duplicate from setup.c
intel-iommu.c: dma ops fix
-rw-r--r-- | arch/x86/Kconfig | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic_32.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/apic_64.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/process_32.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/process_64.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/setup_32.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot.c | 12 | ||||
-rw-r--r-- | arch/x86/kernel/tlb_64.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/vsyscall_64.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-visws/mpparse.c | 15 | ||||
-rw-r--r-- | arch/x86/mach-voyager/voyager_smp.c | 17 | ||||
-rw-r--r-- | arch/x86/mm/dump_pagetables.c | 2 | ||||
-rw-r--r-- | arch/x86/mm/pageattr.c | 2 | ||||
-rw-r--r-- | arch/x86/mm/srat_64.c | 2 | ||||
-rw-r--r-- | drivers/pci/intel-iommu.c | 35 | ||||
-rw-r--r-- | include/asm-x86/smp.h | 1 | ||||
-rw-r--r-- | include/asm-x86/tsc.h | 1 |
18 files changed, 37 insertions, 72 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 87a693cf2bb7..4d350b5cbc71 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -23,7 +23,7 @@ config X86 | |||
23 | select HAVE_KPROBES | 23 | select HAVE_KPROBES |
24 | select HAVE_KRETPROBES | 24 | select HAVE_KRETPROBES |
25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) | 25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) |
26 | select HAVE_ARCH_KGDB | 26 | select HAVE_ARCH_KGDB if !X86_VOYAGER |
27 | 27 | ||
28 | 28 | ||
29 | config GENERIC_LOCKBREAK | 29 | config GENERIC_LOCKBREAK |
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 687208190b06..8317401170b8 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c | |||
@@ -902,7 +902,7 @@ void __init init_bsp_APIC(void) | |||
902 | apic_write_around(APIC_LVT1, value); | 902 | apic_write_around(APIC_LVT1, value); |
903 | } | 903 | } |
904 | 904 | ||
905 | void __cpuinit lapic_setup_esr(void) | 905 | static void __cpuinit lapic_setup_esr(void) |
906 | { | 906 | { |
907 | unsigned long oldvalue, value, maxlvt; | 907 | unsigned long oldvalue, value, maxlvt; |
908 | if (lapic_is_integrated() && !esr_disable) { | 908 | if (lapic_is_integrated() && !esr_disable) { |
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index 9e8e5c050c55..bf83157337e4 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c | |||
@@ -429,7 +429,7 @@ void __init setup_boot_APIC_clock(void) | |||
429 | * set the DUMMY flag again and force the broadcast mode in the | 429 | * set the DUMMY flag again and force the broadcast mode in the |
430 | * clockevents layer. | 430 | * clockevents layer. |
431 | */ | 431 | */ |
432 | void __cpuinit check_boot_apic_timer_broadcast(void) | 432 | static void __cpuinit check_boot_apic_timer_broadcast(void) |
433 | { | 433 | { |
434 | if (!disable_apic_timer || | 434 | if (!disable_apic_timer || |
435 | (lapic_clockevent.features & CLOCK_EVT_FEAT_DUMMY)) | 435 | (lapic_clockevent.features & CLOCK_EVT_FEAT_DUMMY)) |
@@ -834,7 +834,7 @@ void __cpuinit setup_local_APIC(void) | |||
834 | preempt_enable(); | 834 | preempt_enable(); |
835 | } | 835 | } |
836 | 836 | ||
837 | void __cpuinit lapic_setup_esr(void) | 837 | static void __cpuinit lapic_setup_esr(void) |
838 | { | 838 | { |
839 | unsigned maxlvt = lapic_get_maxlvt(); | 839 | unsigned maxlvt = lapic_get_maxlvt(); |
840 | 840 | ||
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 7adad088e373..77de848bd1fb 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
@@ -550,7 +550,7 @@ static void hard_enable_TSC(void) | |||
550 | write_cr4(read_cr4() & ~X86_CR4_TSD); | 550 | write_cr4(read_cr4() & ~X86_CR4_TSD); |
551 | } | 551 | } |
552 | 552 | ||
553 | void enable_TSC(void) | 553 | static void enable_TSC(void) |
554 | { | 554 | { |
555 | preempt_disable(); | 555 | preempt_disable(); |
556 | if (test_and_clear_thread_flag(TIF_NOTSC)) | 556 | if (test_and_clear_thread_flag(TIF_NOTSC)) |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 891af1a1b48a..131c2ee7ac56 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -562,7 +562,7 @@ static void hard_enable_TSC(void) | |||
562 | write_cr4(read_cr4() & ~X86_CR4_TSD); | 562 | write_cr4(read_cr4() & ~X86_CR4_TSD); |
563 | } | 563 | } |
564 | 564 | ||
565 | void enable_TSC(void) | 565 | static void enable_TSC(void) |
566 | { | 566 | { |
567 | preempt_disable(); | 567 | preempt_disable(); |
568 | if (test_and_clear_thread_flag(TIF_NOTSC)) | 568 | if (test_and_clear_thread_flag(TIF_NOTSC)) |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 0d1f44ae6eea..c0c68c18a788 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -18,8 +18,6 @@ unsigned disabled_cpus __cpuinitdata; | |||
18 | unsigned int boot_cpu_physical_apicid = -1U; | 18 | unsigned int boot_cpu_physical_apicid = -1U; |
19 | EXPORT_SYMBOL(boot_cpu_physical_apicid); | 19 | EXPORT_SYMBOL(boot_cpu_physical_apicid); |
20 | 20 | ||
21 | physid_mask_t phys_cpu_present_map; | ||
22 | |||
23 | DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID; | 21 | DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID; |
24 | EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); | 22 | EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); |
25 | 23 | ||
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c index 78828b0f604f..455d3c80960b 100644 --- a/arch/x86/kernel/setup_32.c +++ b/arch/x86/kernel/setup_32.c | |||
@@ -442,7 +442,7 @@ static void __init reserve_ebda_region(void) | |||
442 | } | 442 | } |
443 | 443 | ||
444 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 444 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
445 | void __init setup_bootmem_allocator(void); | 445 | static void __init setup_bootmem_allocator(void); |
446 | static unsigned long __init setup_memory(void) | 446 | static unsigned long __init setup_memory(void) |
447 | { | 447 | { |
448 | /* | 448 | /* |
@@ -477,7 +477,7 @@ static unsigned long __init setup_memory(void) | |||
477 | return max_low_pfn; | 477 | return max_low_pfn; |
478 | } | 478 | } |
479 | 479 | ||
480 | void __init zone_sizes_init(void) | 480 | static void __init zone_sizes_init(void) |
481 | { | 481 | { |
482 | unsigned long max_zone_pfns[MAX_NR_ZONES]; | 482 | unsigned long max_zone_pfns[MAX_NR_ZONES]; |
483 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); | 483 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 6a925394bc7e..ade371f9663a 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -184,7 +184,7 @@ static void unmap_cpu_to_node(int cpu) | |||
184 | u8 cpu_2_logical_apicid[NR_CPUS] __read_mostly = | 184 | u8 cpu_2_logical_apicid[NR_CPUS] __read_mostly = |
185 | { [0 ... NR_CPUS-1] = BAD_APICID }; | 185 | { [0 ... NR_CPUS-1] = BAD_APICID }; |
186 | 186 | ||
187 | void map_cpu_to_logical_apicid(void) | 187 | static void map_cpu_to_logical_apicid(void) |
188 | { | 188 | { |
189 | int cpu = smp_processor_id(); | 189 | int cpu = smp_processor_id(); |
190 | int apicid = logical_smp_processor_id(); | 190 | int apicid = logical_smp_processor_id(); |
@@ -197,7 +197,7 @@ void map_cpu_to_logical_apicid(void) | |||
197 | map_cpu_to_node(cpu, node); | 197 | map_cpu_to_node(cpu, node); |
198 | } | 198 | } |
199 | 199 | ||
200 | void unmap_cpu_to_logical_apicid(int cpu) | 200 | static void unmap_cpu_to_logical_apicid(int cpu) |
201 | { | 201 | { |
202 | cpu_2_logical_apicid[cpu] = BAD_APICID; | 202 | cpu_2_logical_apicid[cpu] = BAD_APICID; |
203 | unmap_cpu_to_node(cpu); | 203 | unmap_cpu_to_node(cpu); |
@@ -211,7 +211,7 @@ void unmap_cpu_to_logical_apicid(int cpu) | |||
211 | * Report back to the Boot Processor. | 211 | * Report back to the Boot Processor. |
212 | * Running on AP. | 212 | * Running on AP. |
213 | */ | 213 | */ |
214 | void __cpuinit smp_callin(void) | 214 | static void __cpuinit smp_callin(void) |
215 | { | 215 | { |
216 | int cpuid, phys_id; | 216 | int cpuid, phys_id; |
217 | unsigned long timeout; | 217 | unsigned long timeout; |
@@ -436,7 +436,7 @@ valid_k7: | |||
436 | #endif | 436 | #endif |
437 | } | 437 | } |
438 | 438 | ||
439 | void __cpuinit smp_checks(void) | 439 | static void __cpuinit smp_checks(void) |
440 | { | 440 | { |
441 | if (smp_b_stepping) | 441 | if (smp_b_stepping) |
442 | printk(KERN_WARNING "WARNING: SMP operation may be unreliable" | 442 | printk(KERN_WARNING "WARNING: SMP operation may be unreliable" |
@@ -565,7 +565,7 @@ void __init smp_alloc_memory(void) | |||
565 | } | 565 | } |
566 | #endif | 566 | #endif |
567 | 567 | ||
568 | void impress_friends(void) | 568 | static void impress_friends(void) |
569 | { | 569 | { |
570 | int cpu; | 570 | int cpu; |
571 | unsigned long bogosum = 0; | 571 | unsigned long bogosum = 0; |
@@ -1287,7 +1287,7 @@ void cpu_exit_clear(void) | |||
1287 | } | 1287 | } |
1288 | # endif /* CONFIG_X86_32 */ | 1288 | # endif /* CONFIG_X86_32 */ |
1289 | 1289 | ||
1290 | void remove_siblinginfo(int cpu) | 1290 | static void remove_siblinginfo(int cpu) |
1291 | { | 1291 | { |
1292 | int sibling; | 1292 | int sibling; |
1293 | struct cpuinfo_x86 *c = &cpu_data(cpu); | 1293 | struct cpuinfo_x86 *c = &cpu_data(cpu); |
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c index 1558e513757e..df224a8774cb 100644 --- a/arch/x86/kernel/tlb_64.c +++ b/arch/x86/kernel/tlb_64.c | |||
@@ -191,7 +191,7 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm, | |||
191 | spin_unlock(&f->tlbstate_lock); | 191 | spin_unlock(&f->tlbstate_lock); |
192 | } | 192 | } |
193 | 193 | ||
194 | int __cpuinit init_smp_flush(void) | 194 | static int __cpuinit init_smp_flush(void) |
195 | { | 195 | { |
196 | int i; | 196 | int i; |
197 | 197 | ||
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c index edff4c985485..61efa2f7d564 100644 --- a/arch/x86/kernel/vsyscall_64.c +++ b/arch/x86/kernel/vsyscall_64.c | |||
@@ -216,7 +216,7 @@ vgetcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache) | |||
216 | return 0; | 216 | return 0; |
217 | } | 217 | } |
218 | 218 | ||
219 | long __vsyscall(3) venosys_1(void) | 219 | static long __vsyscall(3) venosys_1(void) |
220 | { | 220 | { |
221 | return -ENOSYS; | 221 | return -ENOSYS; |
222 | } | 222 | } |
diff --git a/arch/x86/mach-visws/mpparse.c b/arch/x86/mach-visws/mpparse.c index 2a8456a1f44f..57484e91ab90 100644 --- a/arch/x86/mach-visws/mpparse.c +++ b/arch/x86/mach-visws/mpparse.c | |||
@@ -11,22 +11,9 @@ | |||
11 | /* Have we found an MP table */ | 11 | /* Have we found an MP table */ |
12 | int smp_found_config; | 12 | int smp_found_config; |
13 | 13 | ||
14 | /* | ||
15 | * Various Linux-internal data structures created from the | ||
16 | * MP-table. | ||
17 | */ | ||
18 | int apic_version [MAX_APICS]; | ||
19 | |||
20 | int pic_mode; | 14 | int pic_mode; |
21 | unsigned long mp_lapic_addr; | ||
22 | |||
23 | /* Processor that is doing the boot up */ | ||
24 | unsigned int boot_cpu_physical_apicid = -1U; | ||
25 | |||
26 | /* Bitmask of physically existing CPUs */ | ||
27 | physid_mask_t phys_cpu_present_map; | ||
28 | 15 | ||
29 | unsigned int __initdata maxcpus = NR_CPUS; | 16 | extern unsigned int __cpuinitdata maxcpus; |
30 | 17 | ||
31 | /* | 18 | /* |
32 | * The Visual Workstation is Intel MP compliant in the hardware | 19 | * The Visual Workstation is Intel MP compliant in the hardware |
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 96f60c7cd124..d05722121d24 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -206,11 +206,6 @@ static struct irq_chip vic_chip = { | |||
206 | /* used to count up as CPUs are brought on line (starts at 0) */ | 206 | /* used to count up as CPUs are brought on line (starts at 0) */ |
207 | static int cpucount = 0; | 207 | static int cpucount = 0; |
208 | 208 | ||
209 | /* steal a page from the bottom of memory for the trampoline and | ||
210 | * squirrel its address away here. This will be in kernel virtual | ||
211 | * space */ | ||
212 | unsigned char *trampoline_base; | ||
213 | |||
214 | /* The per cpu profile stuff - used in smp_local_timer_interrupt */ | 209 | /* The per cpu profile stuff - used in smp_local_timer_interrupt */ |
215 | static DEFINE_PER_CPU(int, prof_multiplier) = 1; | 210 | static DEFINE_PER_CPU(int, prof_multiplier) = 1; |
216 | static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; | 211 | static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; |
@@ -427,18 +422,6 @@ void __init smp_store_cpu_info(int id) | |||
427 | identify_secondary_cpu(c); | 422 | identify_secondary_cpu(c); |
428 | } | 423 | } |
429 | 424 | ||
430 | /* set up the trampoline and return the physical address of the code */ | ||
431 | unsigned long __init setup_trampoline(void) | ||
432 | { | ||
433 | /* these two are global symbols in trampoline.S */ | ||
434 | extern const __u8 trampoline_end[]; | ||
435 | extern const __u8 trampoline_data[]; | ||
436 | |||
437 | memcpy(trampoline_base, trampoline_data, | ||
438 | trampoline_end - trampoline_data); | ||
439 | return virt_to_phys(trampoline_base); | ||
440 | } | ||
441 | |||
442 | /* Routine initially called when a non-boot CPU is brought online */ | 425 | /* Routine initially called when a non-boot CPU is brought online */ |
443 | static void __init start_secondary(void *unused) | 426 | static void __init start_secondary(void *unused) |
444 | { | 427 | { |
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c index 6791b8334bc6..2c24bea92c66 100644 --- a/arch/x86/mm/dump_pagetables.c +++ b/arch/x86/mm/dump_pagetables.c | |||
@@ -324,7 +324,7 @@ static const struct file_operations ptdump_fops = { | |||
324 | .release = single_release, | 324 | .release = single_release, |
325 | }; | 325 | }; |
326 | 326 | ||
327 | int pt_dump_init(void) | 327 | static int pt_dump_init(void) |
328 | { | 328 | { |
329 | struct dentry *pe; | 329 | struct dentry *pe; |
330 | 330 | ||
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index f7823a172868..c29ebd037254 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -993,7 +993,7 @@ static const struct file_operations dpa_fops = { | |||
993 | .release = single_release, | 993 | .release = single_release, |
994 | }; | 994 | }; |
995 | 995 | ||
996 | int __init debug_pagealloc_proc_init(void) | 996 | static int __init debug_pagealloc_proc_init(void) |
997 | { | 997 | { |
998 | struct dentry *de; | 998 | struct dentry *de; |
999 | 999 | ||
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c index fb43d89f46f3..3890234e5b26 100644 --- a/arch/x86/mm/srat_64.c +++ b/arch/x86/mm/srat_64.c | |||
@@ -163,7 +163,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) | |||
163 | pxm, apic_id, node); | 163 | pxm, apic_id, node); |
164 | } | 164 | } |
165 | 165 | ||
166 | int update_end_of_memory(unsigned long end) {return -1;} | 166 | static int update_end_of_memory(unsigned long end) {return -1;} |
167 | static int hotadd_enough_memory(struct bootnode *nd) {return 1;} | 167 | static int hotadd_enough_memory(struct bootnode *nd) {return 1;} |
168 | #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE | 168 | #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE |
169 | static inline int save_add_info(void) {return 1;} | 169 | static inline int save_add_info(void) {return 1;} |
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 301c68fab03b..1fd8bb765702 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c | |||
@@ -1905,32 +1905,31 @@ get_valid_domain_for_dev(struct pci_dev *pdev) | |||
1905 | return domain; | 1905 | return domain; |
1906 | } | 1906 | } |
1907 | 1907 | ||
1908 | static dma_addr_t intel_map_single(struct device *hwdev, void *addr, | 1908 | static dma_addr_t |
1909 | size_t size, int dir) | 1909 | intel_map_single(struct device *hwdev, phys_addr_t paddr, size_t size, int dir) |
1910 | { | 1910 | { |
1911 | struct pci_dev *pdev = to_pci_dev(hwdev); | 1911 | struct pci_dev *pdev = to_pci_dev(hwdev); |
1912 | int ret; | ||
1913 | struct dmar_domain *domain; | 1912 | struct dmar_domain *domain; |
1914 | unsigned long start_addr; | 1913 | unsigned long start_paddr; |
1915 | struct iova *iova; | 1914 | struct iova *iova; |
1916 | int prot = 0; | 1915 | int prot = 0; |
1916 | int ret; | ||
1917 | 1917 | ||
1918 | BUG_ON(dir == DMA_NONE); | 1918 | BUG_ON(dir == DMA_NONE); |
1919 | if (pdev->dev.archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO) | 1919 | if (pdev->dev.archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO) |
1920 | return virt_to_bus(addr); | 1920 | return paddr; |
1921 | 1921 | ||
1922 | domain = get_valid_domain_for_dev(pdev); | 1922 | domain = get_valid_domain_for_dev(pdev); |
1923 | if (!domain) | 1923 | if (!domain) |
1924 | return 0; | 1924 | return 0; |
1925 | 1925 | ||
1926 | addr = (void *)virt_to_phys(addr); | 1926 | size = aligned_size((u64)paddr, size); |
1927 | size = aligned_size((u64)addr, size); | ||
1928 | 1927 | ||
1929 | iova = __intel_alloc_iova(hwdev, domain, size); | 1928 | iova = __intel_alloc_iova(hwdev, domain, size); |
1930 | if (!iova) | 1929 | if (!iova) |
1931 | goto error; | 1930 | goto error; |
1932 | 1931 | ||
1933 | start_addr = iova->pfn_lo << PAGE_SHIFT_4K; | 1932 | start_paddr = iova->pfn_lo << PAGE_SHIFT_4K; |
1934 | 1933 | ||
1935 | /* | 1934 | /* |
1936 | * Check if DMAR supports zero-length reads on write only | 1935 | * Check if DMAR supports zero-length reads on write only |
@@ -1942,33 +1941,33 @@ static dma_addr_t intel_map_single(struct device *hwdev, void *addr, | |||
1942 | if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) | 1941 | if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) |
1943 | prot |= DMA_PTE_WRITE; | 1942 | prot |= DMA_PTE_WRITE; |
1944 | /* | 1943 | /* |
1945 | * addr - (addr + size) might be partial page, we should map the whole | 1944 | * paddr - (paddr + size) might be partial page, we should map the whole |
1946 | * page. Note: if two part of one page are separately mapped, we | 1945 | * page. Note: if two part of one page are separately mapped, we |
1947 | * might have two guest_addr mapping to the same host addr, but this | 1946 | * might have two guest_addr mapping to the same host paddr, but this |
1948 | * is not a big problem | 1947 | * is not a big problem |
1949 | */ | 1948 | */ |
1950 | ret = domain_page_mapping(domain, start_addr, | 1949 | ret = domain_page_mapping(domain, start_paddr, |
1951 | ((u64)addr) & PAGE_MASK_4K, size, prot); | 1950 | ((u64)paddr) & PAGE_MASK_4K, size, prot); |
1952 | if (ret) | 1951 | if (ret) |
1953 | goto error; | 1952 | goto error; |
1954 | 1953 | ||
1955 | pr_debug("Device %s request: %lx@%llx mapping: %lx@%llx, dir %d\n", | 1954 | pr_debug("Device %s request: %lx@%llx mapping: %lx@%llx, dir %d\n", |
1956 | pci_name(pdev), size, (u64)addr, | 1955 | pci_name(pdev), size, (u64)paddr, |
1957 | size, (u64)start_addr, dir); | 1956 | size, (u64)start_paddr, dir); |
1958 | 1957 | ||
1959 | /* it's a non-present to present mapping */ | 1958 | /* it's a non-present to present mapping */ |
1960 | ret = iommu_flush_iotlb_psi(domain->iommu, domain->id, | 1959 | ret = iommu_flush_iotlb_psi(domain->iommu, domain->id, |
1961 | start_addr, size >> PAGE_SHIFT_4K, 1); | 1960 | start_paddr, size >> PAGE_SHIFT_4K, 1); |
1962 | if (ret) | 1961 | if (ret) |
1963 | iommu_flush_write_buffer(domain->iommu); | 1962 | iommu_flush_write_buffer(domain->iommu); |
1964 | 1963 | ||
1965 | return (start_addr + ((u64)addr & (~PAGE_MASK_4K))); | 1964 | return (start_paddr + ((u64)paddr & (~PAGE_MASK_4K))); |
1966 | 1965 | ||
1967 | error: | 1966 | error: |
1968 | if (iova) | 1967 | if (iova) |
1969 | __free_iova(&domain->iovad, iova); | 1968 | __free_iova(&domain->iovad, iova); |
1970 | printk(KERN_ERR"Device %s request: %lx@%llx dir %d --- failed\n", | 1969 | printk(KERN_ERR"Device %s request: %lx@%llx dir %d --- failed\n", |
1971 | pci_name(pdev), size, (u64)addr, dir); | 1970 | pci_name(pdev), size, (u64)paddr, dir); |
1972 | return 0; | 1971 | return 0; |
1973 | } | 1972 | } |
1974 | 1973 | ||
@@ -2082,7 +2081,7 @@ static void * intel_alloc_coherent(struct device *hwdev, size_t size, | |||
2082 | return NULL; | 2081 | return NULL; |
2083 | memset(vaddr, 0, size); | 2082 | memset(vaddr, 0, size); |
2084 | 2083 | ||
2085 | *dma_handle = intel_map_single(hwdev, vaddr, size, DMA_BIDIRECTIONAL); | 2084 | *dma_handle = intel_map_single(hwdev, virt_to_bus(vaddr), size, DMA_BIDIRECTIONAL); |
2086 | if (*dma_handle) | 2085 | if (*dma_handle) |
2087 | return vaddr; | 2086 | return vaddr; |
2088 | free_pages((unsigned long)vaddr, order); | 2087 | free_pages((unsigned long)vaddr, order); |
diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h index 62ebdec394b9..1ebaa5cd3112 100644 --- a/include/asm-x86/smp.h +++ b/include/asm-x86/smp.h | |||
@@ -199,7 +199,6 @@ static inline int hard_smp_processor_id(void) | |||
199 | #ifdef CONFIG_HOTPLUG_CPU | 199 | #ifdef CONFIG_HOTPLUG_CPU |
200 | extern void cpu_exit_clear(void); | 200 | extern void cpu_exit_clear(void); |
201 | extern void cpu_uninit(void); | 201 | extern void cpu_uninit(void); |
202 | extern void remove_siblinginfo(int cpu); | ||
203 | #endif | 202 | #endif |
204 | 203 | ||
205 | extern void smp_alloc_memory(void); | 204 | extern void smp_alloc_memory(void); |
diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h index 0434bd8349a7..d2d8eb5b55f5 100644 --- a/include/asm-x86/tsc.h +++ b/include/asm-x86/tsc.h | |||
@@ -18,7 +18,6 @@ extern unsigned int cpu_khz; | |||
18 | extern unsigned int tsc_khz; | 18 | extern unsigned int tsc_khz; |
19 | 19 | ||
20 | extern void disable_TSC(void); | 20 | extern void disable_TSC(void); |
21 | extern void enable_TSC(void); | ||
22 | 21 | ||
23 | static inline cycles_t get_cycles(void) | 22 | static inline cycles_t get_cycles(void) |
24 | { | 23 | { |