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

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86

* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
x86: cpa, fix out of date comment
KVM is not seen under X86 config with latest git (32 bit compile)
x86: cpa: ensure page alignment
x86: include proper prototypes for rodata_test
x86: fix gart_iommu_init()
x86: EFI set_memory_x()/set_memory_uc() fixes
x86: make dump_pagetable() static
x86: fix "BUG: sleeping function called from invalid context" in print_vma_addr()

+46 -13
+2 -2
arch/x86/Kconfig
··· 21 21 select HAVE_IDE 22 22 select HAVE_OPROFILE 23 23 select HAVE_KPROBES 24 + select HAVE_KVM 25 + 24 26 25 27 config GENERIC_LOCKBREAK 26 28 def_bool n ··· 120 118 121 119 config HAVE_SETUP_PER_CPU_AREA 122 120 def_bool X86_64 123 - 124 - select HAVE_KVM 125 121 126 122 config ARCH_HIBERNATION_POSSIBLE 127 123 def_bool y
+2 -2
arch/x86/kernel/efi.c
··· 391 391 if (md->type != EFI_RUNTIME_SERVICES_CODE) 392 392 continue; 393 393 394 - set_memory_x(md->virt_addr, md->num_pages << EFI_PAGE_SHIFT); 394 + set_memory_x(md->virt_addr, md->num_pages); 395 395 } 396 396 } 397 397 ··· 434 434 } 435 435 436 436 if (!(md->attribute & EFI_MEMORY_WB)) 437 - set_memory_uc(md->virt_addr, size); 437 + set_memory_uc(md->virt_addr, md->num_pages); 438 438 439 439 systab = (u64) (unsigned long) efi_phys.systab; 440 440 if (md->phys_addr <= systab && systab < end) {
+9
arch/x86/kernel/pci-gart_64.c
··· 749 749 */ 750 750 set_memory_np((unsigned long)__va(iommu_bus_base), 751 751 iommu_size >> PAGE_SHIFT); 752 + /* 753 + * Tricky. The GART table remaps the physical memory range, 754 + * so the CPU wont notice potential aliases and if the memory 755 + * is remapped to UC later on, we might surprise the PCI devices 756 + * with a stray writeout of a cacheline. So play it sure and 757 + * do an explicit, full-scale wbinvd() _after_ having marked all 758 + * the pages as Not-Present: 759 + */ 760 + wbinvd(); 752 761 753 762 /* 754 763 * Try to workaround a bug (thanks to BenH)
+1 -1
arch/x86/kernel/test_rodata.c
··· 10 10 * of the License. 11 11 */ 12 12 #include <linux/module.h> 13 + #include <asm/cacheflush.h> 13 14 #include <asm/sections.h> 14 - extern int rodata_test_data; 15 15 16 16 int rodata_test(void) 17 17 {
+2 -2
arch/x86/kernel/traps_64.c
··· 84 84 85 85 static inline void preempt_conditional_sti(struct pt_regs *regs) 86 86 { 87 - preempt_disable(); 87 + inc_preempt_count(); 88 88 if (regs->flags & X86_EFLAGS_IF) 89 89 local_irq_enable(); 90 90 } ··· 95 95 local_irq_disable(); 96 96 /* Make sure to not schedule here because we could be running 97 97 on an exception stack. */ 98 - preempt_enable_no_resched(); 98 + dec_preempt_count(); 99 99 } 100 100 101 101 int kstack_depth_to_print = 12;
+1 -1
arch/x86/mm/fault.c
··· 186 186 } 187 187 #endif 188 188 189 - void dump_pagetable(unsigned long address) 189 + static void dump_pagetable(unsigned long address) 190 190 { 191 191 #ifdef CONFIG_X86_32 192 192 __typeof__(pte_val(__pte(0))) page;
+1
arch/x86/mm/init_32.c
··· 47 47 #include <asm/sections.h> 48 48 #include <asm/paravirt.h> 49 49 #include <asm/setup.h> 50 + #include <asm/cacheflush.h> 50 51 51 52 unsigned int __VMALLOC_RESERVE = 128 << 20; 52 53
+1
arch/x86/mm/init_64.c
··· 45 45 #include <asm/sections.h> 46 46 #include <asm/kdebug.h> 47 47 #include <asm/numa.h> 48 + #include <asm/cacheflush.h> 48 49 49 50 const struct dma_mapping_ops *dma_ops; 50 51 EXPORT_SYMBOL(dma_ops);
+15 -2
arch/x86/mm/pageattr.c
··· 688 688 if (!pgprot_val(mask_set) && !pgprot_val(mask_clr)) 689 689 return 0; 690 690 691 + /* Ensure we are PAGE_SIZE aligned */ 692 + if (addr & ~PAGE_MASK) { 693 + addr &= PAGE_MASK; 694 + /* 695 + * People should not be passing in unaligned addresses: 696 + */ 697 + WARN_ON_ONCE(1); 698 + } 699 + 691 700 cpa.vaddr = addr; 692 701 cpa.numpages = numpages; 693 702 cpa.mask_set = mask_set; ··· 870 861 return; 871 862 872 863 /* 873 - * The return value is ignored - the calls cannot fail, 874 - * large pages are disabled at boot time: 864 + * The return value is ignored as the calls cannot fail. 865 + * Large pages are kept enabled at boot time, and are 866 + * split up quickly with DEBUG_PAGEALLOC. If a splitup 867 + * fails here (due to temporary memory shortage) no damage 868 + * is done because we just keep the largepage intact up 869 + * to the next attempt when it will likely be split up: 875 870 */ 876 871 if (enable) 877 872 __set_pages_p(page, numpages);
+5 -2
include/asm-x86/cacheflush.h
··· 48 48 49 49 #ifdef CONFIG_DEBUG_RODATA 50 50 void mark_rodata_ro(void); 51 + extern const int rodata_test_data; 51 52 #endif 53 + 52 54 #ifdef CONFIG_DEBUG_RODATA_TEST 53 - void rodata_test(void); 55 + int rodata_test(void); 54 56 #else 55 - static inline void rodata_test(void) 57 + static inline int rodata_test(void) 56 58 { 59 + return 0; 57 60 } 58 61 #endif 59 62
-1
include/asm-x86/kdebug.h
··· 31 31 unsigned long *sp, unsigned long bp); 32 32 extern void __show_regs(struct pt_regs *regs); 33 33 extern void show_regs(struct pt_regs *regs); 34 - extern void dump_pagetable(unsigned long); 35 34 extern unsigned long oops_begin(void); 36 35 extern void oops_end(unsigned long, struct pt_regs *, int signr); 37 36
+7
mm/memory.c
··· 2711 2711 struct mm_struct *mm = current->mm; 2712 2712 struct vm_area_struct *vma; 2713 2713 2714 + /* 2715 + * Do not print if we are in atomic 2716 + * contexts (in exception stacks, etc.): 2717 + */ 2718 + if (preempt_count()) 2719 + return; 2720 + 2714 2721 down_read(&mm->mmap_sem); 2715 2722 vma = find_vma(mm, ip); 2716 2723 if (vma && vma->vm_file) {