diff options
author | Ingo Molnar <mingo@elte.hu> | 2011-05-26 07:51:31 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-05-26 07:51:35 -0400 |
commit | de66ee979d0ea45171cc2501750e9f9f22f5a690 (patch) | |
tree | 5ab1a5c6b596b9b786902fb380274e1e1f4ceb13 /arch/x86 | |
parent | 916f676f8dc016103f983c7ec54c18ecdbb6e349 (diff) | |
parent | 4db70f73e56961b9bcdfd0c36c62847a18b7dbb5 (diff) |
Merge branch 'linus' into x86/urgent
Merge reason: we want to queue up a dependent patch.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/Kconfig | 3 | ||||
-rw-r--r-- | arch/x86/Kconfig.debug | 20 | ||||
-rw-r--r-- | arch/x86/include/asm/io.h | 24 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/tboot.c | 1 | ||||
-rw-r--r-- | arch/x86/kvm/mmu.c | 3 | ||||
-rw-r--r-- | arch/x86/mm/fault.c | 12 | ||||
-rw-r--r-- | arch/x86/mm/hugetlbpage.c | 4 | ||||
-rw-r--r-- | arch/x86/mm/init.c | 2 |
9 files changed, 20 insertions, 51 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 880fcb6c86f4..483775f42d2a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -17,8 +17,6 @@ config X86_64 | |||
17 | config X86 | 17 | config X86 |
18 | def_bool y | 18 | def_bool y |
19 | select HAVE_AOUT if X86_32 | 19 | select HAVE_AOUT if X86_32 |
20 | select HAVE_READQ | ||
21 | select HAVE_WRITEQ | ||
22 | select HAVE_UNSTABLE_SCHED_CLOCK | 20 | select HAVE_UNSTABLE_SCHED_CLOCK |
23 | select HAVE_IDE | 21 | select HAVE_IDE |
24 | select HAVE_OPROFILE | 22 | select HAVE_OPROFILE |
@@ -917,6 +915,7 @@ config TOSHIBA | |||
917 | 915 | ||
918 | config I8K | 916 | config I8K |
919 | tristate "Dell laptop support" | 917 | tristate "Dell laptop support" |
918 | select HWMON | ||
920 | ---help--- | 919 | ---help--- |
921 | This adds a driver to safely access the System Management Mode | 920 | This adds a driver to safely access the System Management Mode |
922 | of the CPU on the Dell Inspiron 8000. The System Management Mode | 921 | of the CPU on the Dell Inspiron 8000. The System Management Mode |
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 615e18810f48..c0f8a5c88910 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
@@ -66,26 +66,6 @@ config DEBUG_STACKOVERFLOW | |||
66 | This option will cause messages to be printed if free stack space | 66 | This option will cause messages to be printed if free stack space |
67 | drops below a certain limit. | 67 | drops below a certain limit. |
68 | 68 | ||
69 | config DEBUG_STACK_USAGE | ||
70 | bool "Stack utilization instrumentation" | ||
71 | depends on DEBUG_KERNEL | ||
72 | ---help--- | ||
73 | Enables the display of the minimum amount of free stack which each | ||
74 | task has ever had available in the sysrq-T and sysrq-P debug output. | ||
75 | |||
76 | This option will slow down process creation somewhat. | ||
77 | |||
78 | config DEBUG_PER_CPU_MAPS | ||
79 | bool "Debug access to per_cpu maps" | ||
80 | depends on DEBUG_KERNEL | ||
81 | depends on SMP | ||
82 | ---help--- | ||
83 | Say Y to verify that the per_cpu map being accessed has | ||
84 | been setup. Adds a fair amount of code to kernel memory | ||
85 | and decreases performance. | ||
86 | |||
87 | Say N if unsure. | ||
88 | |||
89 | config X86_PTDUMP | 69 | config X86_PTDUMP |
90 | bool "Export kernel pagetable layout to userspace via debugfs" | 70 | bool "Export kernel pagetable layout to userspace via debugfs" |
91 | depends on DEBUG_KERNEL | 71 | depends on DEBUG_KERNEL |
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index 072273082528..d02804d650c4 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h | |||
@@ -38,7 +38,6 @@ | |||
38 | 38 | ||
39 | #include <linux/string.h> | 39 | #include <linux/string.h> |
40 | #include <linux/compiler.h> | 40 | #include <linux/compiler.h> |
41 | #include <asm-generic/int-ll64.h> | ||
42 | #include <asm/page.h> | 41 | #include <asm/page.h> |
43 | 42 | ||
44 | #include <xen/xen.h> | 43 | #include <xen/xen.h> |
@@ -87,27 +86,6 @@ build_mmio_write(__writel, "l", unsigned int, "r", ) | |||
87 | build_mmio_read(readq, "q", unsigned long, "=r", :"memory") | 86 | build_mmio_read(readq, "q", unsigned long, "=r", :"memory") |
88 | build_mmio_write(writeq, "q", unsigned long, "r", :"memory") | 87 | build_mmio_write(writeq, "q", unsigned long, "r", :"memory") |
89 | 88 | ||
90 | #else | ||
91 | |||
92 | static inline __u64 readq(const volatile void __iomem *addr) | ||
93 | { | ||
94 | const volatile u32 __iomem *p = addr; | ||
95 | u32 low, high; | ||
96 | |||
97 | low = readl(p); | ||
98 | high = readl(p + 1); | ||
99 | |||
100 | return low + ((u64)high << 32); | ||
101 | } | ||
102 | |||
103 | static inline void writeq(__u64 val, volatile void __iomem *addr) | ||
104 | { | ||
105 | writel(val, addr); | ||
106 | writel(val >> 32, addr+4); | ||
107 | } | ||
108 | |||
109 | #endif | ||
110 | |||
111 | #define readq_relaxed(a) readq(a) | 89 | #define readq_relaxed(a) readq(a) |
112 | 90 | ||
113 | #define __raw_readq(a) readq(a) | 91 | #define __raw_readq(a) readq(a) |
@@ -117,6 +95,8 @@ static inline void writeq(__u64 val, volatile void __iomem *addr) | |||
117 | #define readq readq | 95 | #define readq readq |
118 | #define writeq writeq | 96 | #define writeq writeq |
119 | 97 | ||
98 | #endif | ||
99 | |||
120 | /** | 100 | /** |
121 | * virt_to_phys - map virtual addresses to physical | 101 | * virt_to_phys - map virtual addresses to physical |
122 | * @address: address to remap | 102 | * @address: address to remap |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index b9ca498f5602..afaf38447ef5 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -953,6 +953,8 @@ void __init setup_arch(char **cmdline_p) | |||
953 | if (init_ohci1394_dma_early) | 953 | if (init_ohci1394_dma_early) |
954 | init_ohci1394_dma_on_all_controllers(); | 954 | init_ohci1394_dma_on_all_controllers(); |
955 | #endif | 955 | #endif |
956 | /* Allocate bigger log buffer */ | ||
957 | setup_log_buf(1); | ||
956 | 958 | ||
957 | reserve_initrd(); | 959 | reserve_initrd(); |
958 | 960 | ||
diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index 998e972f3b1a..30ac65df7d4e 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c | |||
@@ -110,7 +110,6 @@ static struct mm_struct tboot_mm = { | |||
110 | .mmap_sem = __RWSEM_INITIALIZER(init_mm.mmap_sem), | 110 | .mmap_sem = __RWSEM_INITIALIZER(init_mm.mmap_sem), |
111 | .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), | 111 | .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), |
112 | .mmlist = LIST_HEAD_INIT(init_mm.mmlist), | 112 | .mmlist = LIST_HEAD_INIT(init_mm.mmlist), |
113 | .cpu_vm_mask = CPU_MASK_ALL, | ||
114 | }; | 113 | }; |
115 | 114 | ||
116 | static inline void switch_to_tboot_pt(void) | 115 | static inline void switch_to_tboot_pt(void) |
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 28418054b880..bd14bb4c8594 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
@@ -3545,10 +3545,11 @@ static int kvm_mmu_remove_some_alloc_mmu_pages(struct kvm *kvm, | |||
3545 | return kvm_mmu_prepare_zap_page(kvm, page, invalid_list); | 3545 | return kvm_mmu_prepare_zap_page(kvm, page, invalid_list); |
3546 | } | 3546 | } |
3547 | 3547 | ||
3548 | static int mmu_shrink(struct shrinker *shrink, int nr_to_scan, gfp_t gfp_mask) | 3548 | static int mmu_shrink(struct shrinker *shrink, struct shrink_control *sc) |
3549 | { | 3549 | { |
3550 | struct kvm *kvm; | 3550 | struct kvm *kvm; |
3551 | struct kvm *kvm_freed = NULL; | 3551 | struct kvm *kvm_freed = NULL; |
3552 | int nr_to_scan = sc->nr_to_scan; | ||
3552 | 3553 | ||
3553 | if (nr_to_scan == 0) | 3554 | if (nr_to_scan == 0) |
3554 | goto out; | 3555 | goto out; |
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index bcb394dfbb35..f7a2a054a3c0 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c | |||
@@ -965,7 +965,7 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) | |||
965 | struct mm_struct *mm; | 965 | struct mm_struct *mm; |
966 | int fault; | 966 | int fault; |
967 | int write = error_code & PF_WRITE; | 967 | int write = error_code & PF_WRITE; |
968 | unsigned int flags = FAULT_FLAG_ALLOW_RETRY | | 968 | unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE | |
969 | (write ? FAULT_FLAG_WRITE : 0); | 969 | (write ? FAULT_FLAG_WRITE : 0); |
970 | 970 | ||
971 | tsk = current; | 971 | tsk = current; |
@@ -1139,6 +1139,16 @@ good_area: | |||
1139 | } | 1139 | } |
1140 | 1140 | ||
1141 | /* | 1141 | /* |
1142 | * Pagefault was interrupted by SIGKILL. We have no reason to | ||
1143 | * continue pagefault. | ||
1144 | */ | ||
1145 | if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) { | ||
1146 | if (!(error_code & PF_USER)) | ||
1147 | no_context(regs, error_code, address); | ||
1148 | return; | ||
1149 | } | ||
1150 | |||
1151 | /* | ||
1142 | * Major/minor page fault accounting is only done on the | 1152 | * Major/minor page fault accounting is only done on the |
1143 | * initial attempt. If we go through a retry, it is extremely | 1153 | * initial attempt. If we go through a retry, it is extremely |
1144 | * likely that the page will be found in page cache at that point. | 1154 | * likely that the page will be found in page cache at that point. |
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index d4203988504a..f581a18c0d4d 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c | |||
@@ -72,7 +72,7 @@ static void huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) | |||
72 | if (!vma_shareable(vma, addr)) | 72 | if (!vma_shareable(vma, addr)) |
73 | return; | 73 | return; |
74 | 74 | ||
75 | spin_lock(&mapping->i_mmap_lock); | 75 | mutex_lock(&mapping->i_mmap_mutex); |
76 | vma_prio_tree_foreach(svma, &iter, &mapping->i_mmap, idx, idx) { | 76 | vma_prio_tree_foreach(svma, &iter, &mapping->i_mmap, idx, idx) { |
77 | if (svma == vma) | 77 | if (svma == vma) |
78 | continue; | 78 | continue; |
@@ -97,7 +97,7 @@ static void huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) | |||
97 | put_page(virt_to_page(spte)); | 97 | put_page(virt_to_page(spte)); |
98 | spin_unlock(&mm->page_table_lock); | 98 | spin_unlock(&mm->page_table_lock); |
99 | out: | 99 | out: |
100 | spin_unlock(&mapping->i_mmap_lock); | 100 | mutex_unlock(&mapping->i_mmap_mutex); |
101 | } | 101 | } |
102 | 102 | ||
103 | /* | 103 | /* |
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 37b8b0fe8320..30326443ab81 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c | |||
@@ -16,8 +16,6 @@ | |||
16 | #include <asm/tlb.h> | 16 | #include <asm/tlb.h> |
17 | #include <asm/proto.h> | 17 | #include <asm/proto.h> |
18 | 18 | ||
19 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | ||
20 | |||
21 | unsigned long __initdata pgt_buf_start; | 19 | unsigned long __initdata pgt_buf_start; |
22 | unsigned long __meminitdata pgt_buf_end; | 20 | unsigned long __meminitdata pgt_buf_end; |
23 | unsigned long __meminitdata pgt_buf_top; | 21 | unsigned long __meminitdata pgt_buf_top; |