Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+37 -72
+1 -1
arch/x86/Kconfig
··· 23 23 select HAVE_KPROBES 24 24 select HAVE_KRETPROBES 25 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 29 config GENERIC_LOCKBREAK
+1 -1
arch/x86/kernel/apic_32.c
··· 902 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 907 unsigned long oldvalue, value, maxlvt; 908 908 if (lapic_is_integrated() && !esr_disable) {
+2 -2
arch/x86/kernel/apic_64.c
··· 429 429 * set the DUMMY flag again and force the broadcast mode in the 430 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 434 if (!disable_apic_timer || 435 435 (lapic_clockevent.features & CLOCK_EVT_FEAT_DUMMY)) ··· 834 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 839 unsigned maxlvt = lapic_get_maxlvt(); 840 840
+1 -1
arch/x86/kernel/process_32.c
··· 550 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 555 preempt_disable(); 556 556 if (test_and_clear_thread_flag(TIF_NOTSC))
+1 -1
arch/x86/kernel/process_64.c
··· 562 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 567 preempt_disable(); 568 568 if (test_and_clear_thread_flag(TIF_NOTSC))
-2
arch/x86/kernel/setup.c
··· 18 18 unsigned int boot_cpu_physical_apicid = -1U; 19 19 EXPORT_SYMBOL(boot_cpu_physical_apicid); 20 20 21 - physid_mask_t phys_cpu_present_map; 22 - 23 21 DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID; 24 22 EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); 25 23
+2 -2
arch/x86/kernel/setup_32.c
··· 442 442 } 443 443 444 444 #ifndef CONFIG_NEED_MULTIPLE_NODES 445 - void __init setup_bootmem_allocator(void); 445 + static void __init setup_bootmem_allocator(void); 446 446 static unsigned long __init setup_memory(void) 447 447 { 448 448 /* ··· 477 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 482 unsigned long max_zone_pfns[MAX_NR_ZONES]; 483 483 memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
+6 -6
arch/x86/kernel/smpboot.c
··· 184 184 u8 cpu_2_logical_apicid[NR_CPUS] __read_mostly = 185 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 189 int cpu = smp_processor_id(); 190 190 int apicid = logical_smp_processor_id(); ··· 197 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 202 cpu_2_logical_apicid[cpu] = BAD_APICID; 203 203 unmap_cpu_to_node(cpu); ··· 211 211 * Report back to the Boot Processor. 212 212 * Running on AP. 213 213 */ 214 - void __cpuinit smp_callin(void) 214 + static void __cpuinit smp_callin(void) 215 215 { 216 216 int cpuid, phys_id; 217 217 unsigned long timeout; ··· 436 436 #endif 437 437 } 438 438 439 - void __cpuinit smp_checks(void) 439 + static void __cpuinit smp_checks(void) 440 440 { 441 441 if (smp_b_stepping) 442 442 printk(KERN_WARNING "WARNING: SMP operation may be unreliable" ··· 565 565 } 566 566 #endif 567 567 568 - void impress_friends(void) 568 + static void impress_friends(void) 569 569 { 570 570 int cpu; 571 571 unsigned long bogosum = 0; ··· 1287 1287 } 1288 1288 # endif /* CONFIG_X86_32 */ 1289 1289 1290 - void remove_siblinginfo(int cpu) 1290 + static void remove_siblinginfo(int cpu) 1291 1291 { 1292 1292 int sibling; 1293 1293 struct cpuinfo_x86 *c = &cpu_data(cpu);
+1 -1
arch/x86/kernel/tlb_64.c
··· 191 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 196 int i; 197 197
+1 -1
arch/x86/kernel/vsyscall_64.c
··· 216 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 221 return -ENOSYS; 222 222 }
+1 -14
arch/x86/mach-visws/mpparse.c
··· 11 11 /* Have we found an MP table */ 12 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 14 int pic_mode; 21 - unsigned long mp_lapic_addr; 22 15 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 - 29 - unsigned int __initdata maxcpus = NR_CPUS; 16 + extern unsigned int __cpuinitdata maxcpus; 30 17 31 18 /* 32 19 * The Visual Workstation is Intel MP compliant in the hardware
-17
arch/x86/mach-voyager/voyager_smp.c
··· 206 206 /* used to count up as CPUs are brought on line (starts at 0) */ 207 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 209 /* The per cpu profile stuff - used in smp_local_timer_interrupt */ 215 210 static DEFINE_PER_CPU(int, prof_multiplier) = 1; 216 211 static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; ··· 420 425 *c = boot_cpu_data; 421 426 422 427 identify_secondary_cpu(c); 423 - } 424 - 425 - /* set up the trampoline and return the physical address of the code */ 426 - unsigned long __init setup_trampoline(void) 427 - { 428 - /* these two are global symbols in trampoline.S */ 429 - extern const __u8 trampoline_end[]; 430 - extern const __u8 trampoline_data[]; 431 - 432 - memcpy(trampoline_base, trampoline_data, 433 - trampoline_end - trampoline_data); 434 - return virt_to_phys(trampoline_base); 435 428 } 436 429 437 430 /* Routine initially called when a non-boot CPU is brought online */
+1 -1
arch/x86/mm/dump_pagetables.c
··· 324 324 .release = single_release, 325 325 }; 326 326 327 - int pt_dump_init(void) 327 + static int pt_dump_init(void) 328 328 { 329 329 struct dentry *pe; 330 330
+1 -1
arch/x86/mm/pageattr.c
··· 993 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 998 struct dentry *de; 999 999
+1 -1
arch/x86/mm/srat_64.c
··· 163 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 167 static int hotadd_enough_memory(struct bootnode *nd) {return 1;} 168 168 #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE 169 169 static inline int save_add_info(void) {return 1;}
+17 -18
drivers/pci/intel-iommu.c
··· 1905 1905 return domain; 1906 1906 } 1907 1907 1908 - static dma_addr_t intel_map_single(struct device *hwdev, void *addr, 1909 - size_t size, int dir) 1908 + static dma_addr_t 1909 + intel_map_single(struct device *hwdev, phys_addr_t paddr, size_t size, int dir) 1910 1910 { 1911 1911 struct pci_dev *pdev = to_pci_dev(hwdev); 1912 - int ret; 1913 1912 struct dmar_domain *domain; 1914 - unsigned long start_addr; 1913 + unsigned long start_paddr; 1915 1914 struct iova *iova; 1916 1915 int prot = 0; 1916 + int ret; 1917 1917 1918 1918 BUG_ON(dir == DMA_NONE); 1919 1919 if (pdev->dev.archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO) 1920 - return virt_to_bus(addr); 1920 + return paddr; 1921 1921 1922 1922 domain = get_valid_domain_for_dev(pdev); 1923 1923 if (!domain) 1924 1924 return 0; 1925 1925 1926 - addr = (void *)virt_to_phys(addr); 1927 - size = aligned_size((u64)addr, size); 1926 + size = aligned_size((u64)paddr, size); 1928 1927 1929 1928 iova = __intel_alloc_iova(hwdev, domain, size); 1930 1929 if (!iova) 1931 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 1935 * Check if DMAR supports zero-length reads on write only ··· 1941 1942 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) 1942 1943 prot |= DMA_PTE_WRITE; 1943 1944 /* 1944 - * addr - (addr + size) might be partial page, we should map the whole 1945 + * paddr - (paddr + size) might be partial page, we should map the whole 1945 1946 * page. Note: if two part of one page are separately mapped, we 1946 - * might have two guest_addr mapping to the same host addr, but this 1947 + * might have two guest_addr mapping to the same host paddr, but this 1947 1948 * is not a big problem 1948 1949 */ 1949 - ret = domain_page_mapping(domain, start_addr, 1950 - ((u64)addr) & PAGE_MASK_4K, size, prot); 1950 + ret = domain_page_mapping(domain, start_paddr, 1951 + ((u64)paddr) & PAGE_MASK_4K, size, prot); 1951 1952 if (ret) 1952 1953 goto error; 1953 1954 1954 1955 pr_debug("Device %s request: %lx@%llx mapping: %lx@%llx, dir %d\n", 1955 - pci_name(pdev), size, (u64)addr, 1956 - size, (u64)start_addr, dir); 1956 + pci_name(pdev), size, (u64)paddr, 1957 + size, (u64)start_paddr, dir); 1957 1958 1958 1959 /* it's a non-present to present mapping */ 1959 1960 ret = iommu_flush_iotlb_psi(domain->iommu, domain->id, 1960 - start_addr, size >> PAGE_SHIFT_4K, 1); 1961 + start_paddr, size >> PAGE_SHIFT_4K, 1); 1961 1962 if (ret) 1962 1963 iommu_flush_write_buffer(domain->iommu); 1963 1964 1964 - return (start_addr + ((u64)addr & (~PAGE_MASK_4K))); 1965 + return (start_paddr + ((u64)paddr & (~PAGE_MASK_4K))); 1965 1966 1966 1967 error: 1967 1968 if (iova) 1968 1969 __free_iova(&domain->iovad, iova); 1969 1970 printk(KERN_ERR"Device %s request: %lx@%llx dir %d --- failed\n", 1970 - pci_name(pdev), size, (u64)addr, dir); 1971 + pci_name(pdev), size, (u64)paddr, dir); 1971 1972 return 0; 1972 1973 } 1973 1974 ··· 2081 2082 return NULL; 2082 2083 memset(vaddr, 0, size); 2083 2084 2084 - *dma_handle = intel_map_single(hwdev, vaddr, size, DMA_BIDIRECTIONAL); 2085 + *dma_handle = intel_map_single(hwdev, virt_to_bus(vaddr), size, DMA_BIDIRECTIONAL); 2085 2086 if (*dma_handle) 2086 2087 return vaddr; 2087 2088 free_pages((unsigned long)vaddr, order);
-1
include/asm-x86/smp.h
··· 199 199 #ifdef CONFIG_HOTPLUG_CPU 200 200 extern void cpu_exit_clear(void); 201 201 extern void cpu_uninit(void); 202 - extern void remove_siblinginfo(int cpu); 203 202 #endif 204 203 205 204 extern void smp_alloc_memory(void);
-1
include/asm-x86/tsc.h
··· 18 18 extern unsigned int tsc_khz; 19 19 20 20 extern void disable_TSC(void); 21 - extern void enable_TSC(void); 22 21 23 22 static inline cycles_t get_cycles(void) 24 23 {