diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-03 17:33:42 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-03 17:33:42 -0400 |
commit | 3bb5da3837cc1aa17736b05139c9a22c3794851a (patch) | |
tree | c92d5684a866542b1cb20641607ac1643ce03a47 /arch/x86/mm | |
parent | 7feb49c82a74bc7c091b8ab2a3f96baa33d08ece (diff) | |
parent | 9597362d354f8655ece324b01d0c640a0e99c077 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'arch/x86/mm')
-rw-r--r-- | arch/x86/mm/discontig_32.c | 1 | ||||
-rw-r--r-- | arch/x86/mm/fault.c | 10 | ||||
-rw-r--r-- | arch/x86/mm/highmem_32.c | 6 | ||||
-rw-r--r-- | arch/x86/mm/hugetlbpage.c | 2 | ||||
-rw-r--r-- | arch/x86/mm/ioremap.c | 12 | ||||
-rw-r--r-- | arch/x86/mm/numa_64.c | 3 | ||||
-rw-r--r-- | arch/x86/mm/pageattr.c | 2 |
7 files changed, 18 insertions, 18 deletions
diff --git a/arch/x86/mm/discontig_32.c b/arch/x86/mm/discontig_32.c index c394ca0720b8..8e25e06ff730 100644 --- a/arch/x86/mm/discontig_32.c +++ b/arch/x86/mm/discontig_32.c | |||
@@ -324,7 +324,6 @@ unsigned long __init setup_memory(void) | |||
324 | * this space and use it to adjust the boundary between ZONE_NORMAL | 324 | * this space and use it to adjust the boundary between ZONE_NORMAL |
325 | * and ZONE_HIGHMEM. | 325 | * and ZONE_HIGHMEM. |
326 | */ | 326 | */ |
327 | find_max_pfn(); | ||
328 | get_memcfg_numa(); | 327 | get_memcfg_numa(); |
329 | 328 | ||
330 | kva_pages = calculate_numa_remap_pages(); | 329 | kva_pages = calculate_numa_remap_pages(); |
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index fdc667422df9..ec08d8389850 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c | |||
@@ -91,12 +91,10 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr, | |||
91 | int prefetch = 0; | 91 | int prefetch = 0; |
92 | unsigned char *max_instr; | 92 | unsigned char *max_instr; |
93 | 93 | ||
94 | #ifdef CONFIG_X86_32 | 94 | /* |
95 | if (!(__supported_pte_mask & _PAGE_NX)) | 95 | * If it was a exec (instruction fetch) fault on NX page, then |
96 | return 0; | 96 | * do not ignore the fault: |
97 | #endif | 97 | */ |
98 | |||
99 | /* If it was a exec fault on NX page, ignore */ | ||
100 | if (error_code & PF_INSTR) | 98 | if (error_code & PF_INSTR) |
101 | return 0; | 99 | return 0; |
102 | 100 | ||
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c index 3d936f232704..9cf33d3ee5bc 100644 --- a/arch/x86/mm/highmem_32.c +++ b/arch/x86/mm/highmem_32.c | |||
@@ -73,15 +73,15 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot) | |||
73 | { | 73 | { |
74 | enum fixed_addresses idx; | 74 | enum fixed_addresses idx; |
75 | unsigned long vaddr; | 75 | unsigned long vaddr; |
76 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | ||
77 | |||
78 | debug_kmap_atomic_prot(type); | ||
79 | 76 | ||
77 | /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */ | ||
80 | pagefault_disable(); | 78 | pagefault_disable(); |
81 | 79 | ||
82 | if (!PageHighMem(page)) | 80 | if (!PageHighMem(page)) |
83 | return page_address(page); | 81 | return page_address(page); |
84 | 82 | ||
83 | debug_kmap_atomic_prot(type); | ||
84 | |||
85 | idx = type + KM_TYPE_NR*smp_processor_id(); | 85 | idx = type + KM_TYPE_NR*smp_processor_id(); |
86 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); | 86 | vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); |
87 | BUG_ON(!pte_none(*(kmap_pte-idx))); | 87 | BUG_ON(!pte_none(*(kmap_pte-idx))); |
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index 4fbafb4bc2f0..0b3d567e686d 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c | |||
@@ -178,7 +178,7 @@ follow_huge_addr(struct mm_struct *mm, unsigned long address, int write) | |||
178 | 178 | ||
179 | page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; | 179 | page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; |
180 | 180 | ||
181 | WARN_ON(!PageCompound(page)); | 181 | WARN_ON(!PageHead(page)); |
182 | 182 | ||
183 | return page; | 183 | return page; |
184 | } | 184 | } |
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 8fe576baa148..794895c6dcc9 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
@@ -106,7 +106,7 @@ static int ioremap_change_attr(unsigned long vaddr, unsigned long size, | |||
106 | * have to convert them into an offset in a page-aligned mapping, but the | 106 | * have to convert them into an offset in a page-aligned mapping, but the |
107 | * caller shouldn't need to know that small detail. | 107 | * caller shouldn't need to know that small detail. |
108 | */ | 108 | */ |
109 | static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, | 109 | static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size, |
110 | enum ioremap_mode mode) | 110 | enum ioremap_mode mode) |
111 | { | 111 | { |
112 | unsigned long pfn, offset, last_addr, vaddr; | 112 | unsigned long pfn, offset, last_addr, vaddr; |
@@ -137,7 +137,11 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, | |||
137 | switch (mode) { | 137 | switch (mode) { |
138 | case IOR_MODE_UNCACHED: | 138 | case IOR_MODE_UNCACHED: |
139 | default: | 139 | default: |
140 | prot = PAGE_KERNEL_NOCACHE; | 140 | /* |
141 | * FIXME: we will use UC MINUS for now, as video fb drivers | ||
142 | * depend on it. Upcoming ioremap_wc() will fix this behavior. | ||
143 | */ | ||
144 | prot = PAGE_KERNEL_UC_MINUS; | ||
141 | break; | 145 | break; |
142 | case IOR_MODE_CACHED: | 146 | case IOR_MODE_CACHED: |
143 | prot = PAGE_KERNEL; | 147 | prot = PAGE_KERNEL; |
@@ -193,13 +197,13 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, | |||
193 | * | 197 | * |
194 | * Must be freed with iounmap. | 198 | * Must be freed with iounmap. |
195 | */ | 199 | */ |
196 | void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size) | 200 | void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size) |
197 | { | 201 | { |
198 | return __ioremap(phys_addr, size, IOR_MODE_UNCACHED); | 202 | return __ioremap(phys_addr, size, IOR_MODE_UNCACHED); |
199 | } | 203 | } |
200 | EXPORT_SYMBOL(ioremap_nocache); | 204 | EXPORT_SYMBOL(ioremap_nocache); |
201 | 205 | ||
202 | void __iomem *ioremap_cache(unsigned long phys_addr, unsigned long size) | 206 | void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size) |
203 | { | 207 | { |
204 | return __ioremap(phys_addr, size, IOR_MODE_CACHED); | 208 | return __ioremap(phys_addr, size, IOR_MODE_CACHED); |
205 | } | 209 | } |
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c index 8ccfee10f5b5..16b82ad34b96 100644 --- a/arch/x86/mm/numa_64.c +++ b/arch/x86/mm/numa_64.c | |||
@@ -221,8 +221,7 @@ void __init setup_node_bootmem(int nodeid, unsigned long start, | |||
221 | bootmap_pages<<PAGE_SHIFT, PAGE_SIZE); | 221 | bootmap_pages<<PAGE_SHIFT, PAGE_SIZE); |
222 | if (bootmap == NULL) { | 222 | if (bootmap == NULL) { |
223 | if (nodedata_phys < start || nodedata_phys >= end) | 223 | if (nodedata_phys < start || nodedata_phys >= end) |
224 | free_bootmem((unsigned long)node_data[nodeid], | 224 | free_bootmem(nodedata_phys, pgdat_size); |
225 | pgdat_size); | ||
226 | node_data[nodeid] = NULL; | 225 | node_data[nodeid] = NULL; |
227 | return; | 226 | return; |
228 | } | 227 | } |
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 14e48b5a94ba..7b79f6be4e7d 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -771,7 +771,7 @@ static inline int change_page_attr_clear(unsigned long addr, int numpages, | |||
771 | int set_memory_uc(unsigned long addr, int numpages) | 771 | int set_memory_uc(unsigned long addr, int numpages) |
772 | { | 772 | { |
773 | return change_page_attr_set(addr, numpages, | 773 | return change_page_attr_set(addr, numpages, |
774 | __pgprot(_PAGE_PCD | _PAGE_PWT)); | 774 | __pgprot(_PAGE_PCD)); |
775 | } | 775 | } |
776 | EXPORT_SYMBOL(set_memory_uc); | 776 | EXPORT_SYMBOL(set_memory_uc); |
777 | 777 | ||