diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-04-13 18:02:16 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-13 18:02:22 -0400 |
commit | b5c851a88a369854c04e511cefb84ea2d0cfa209 (patch) | |
tree | 55084d3d51708f90f27d0a70db5ab63916942f14 /arch/x86/mm | |
parent | eb02ce017dd83985041a7e54c6449f92d53b026f (diff) | |
parent | 80a04d3f2f94fb68b5df05e3ac6697130bc3467a (diff) |
Merge branch 'linus' into tracing/core
Merge reason: merge latest tracing fixes to avoid conflicts in
kernel/trace/trace_events_filter.c with upcoming change
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mm')
-rw-r--r-- | arch/x86/mm/gup.c | 16 | ||||
-rw-r--r-- | arch/x86/mm/ioremap.c | 23 | ||||
-rw-r--r-- | arch/x86/mm/pat.c | 2 | ||||
-rw-r--r-- | arch/x86/mm/pgtable.c | 3 |
4 files changed, 32 insertions, 12 deletions
diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c index be54176e9eb2..6340cef6798a 100644 --- a/arch/x86/mm/gup.c +++ b/arch/x86/mm/gup.c | |||
@@ -219,6 +219,22 @@ static int gup_pud_range(pgd_t pgd, unsigned long addr, unsigned long end, | |||
219 | return 1; | 219 | return 1; |
220 | } | 220 | } |
221 | 221 | ||
222 | /** | ||
223 | * get_user_pages_fast() - pin user pages in memory | ||
224 | * @start: starting user address | ||
225 | * @nr_pages: number of pages from start to pin | ||
226 | * @write: whether pages will be written to | ||
227 | * @pages: array that receives pointers to the pages pinned. | ||
228 | * Should be at least nr_pages long. | ||
229 | * | ||
230 | * Attempt to pin user pages in memory without taking mm->mmap_sem. | ||
231 | * If not successful, it will fall back to taking the lock and | ||
232 | * calling get_user_pages(). | ||
233 | * | ||
234 | * Returns number of pages pinned. This may be fewer than the number | ||
235 | * requested. If nr_pages is 0 or negative, returns 0. If no pages | ||
236 | * were pinned, returns -errno. | ||
237 | */ | ||
222 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, | 238 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, |
223 | struct page **pages) | 239 | struct page **pages) |
224 | { | 240 | { |
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 0dfa09d69e80..09daebfdb11c 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
@@ -547,7 +547,7 @@ void __init early_ioremap_reset(void) | |||
547 | } | 547 | } |
548 | 548 | ||
549 | static void __init __early_set_fixmap(enum fixed_addresses idx, | 549 | static void __init __early_set_fixmap(enum fixed_addresses idx, |
550 | unsigned long phys, pgprot_t flags) | 550 | phys_addr_t phys, pgprot_t flags) |
551 | { | 551 | { |
552 | unsigned long addr = __fix_to_virt(idx); | 552 | unsigned long addr = __fix_to_virt(idx); |
553 | pte_t *pte; | 553 | pte_t *pte; |
@@ -566,7 +566,7 @@ static void __init __early_set_fixmap(enum fixed_addresses idx, | |||
566 | } | 566 | } |
567 | 567 | ||
568 | static inline void __init early_set_fixmap(enum fixed_addresses idx, | 568 | static inline void __init early_set_fixmap(enum fixed_addresses idx, |
569 | unsigned long phys, pgprot_t prot) | 569 | phys_addr_t phys, pgprot_t prot) |
570 | { | 570 | { |
571 | if (after_paging_init) | 571 | if (after_paging_init) |
572 | __set_fixmap(idx, phys, prot); | 572 | __set_fixmap(idx, phys, prot); |
@@ -607,9 +607,10 @@ static int __init check_early_ioremap_leak(void) | |||
607 | late_initcall(check_early_ioremap_leak); | 607 | late_initcall(check_early_ioremap_leak); |
608 | 608 | ||
609 | static void __init __iomem * | 609 | static void __init __iomem * |
610 | __early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) | 610 | __early_ioremap(resource_size_t phys_addr, unsigned long size, pgprot_t prot) |
611 | { | 611 | { |
612 | unsigned long offset, last_addr; | 612 | unsigned long offset; |
613 | resource_size_t last_addr; | ||
613 | unsigned int nrpages; | 614 | unsigned int nrpages; |
614 | enum fixed_addresses idx0, idx; | 615 | enum fixed_addresses idx0, idx; |
615 | int i, slot; | 616 | int i, slot; |
@@ -625,15 +626,15 @@ __early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) | |||
625 | } | 626 | } |
626 | 627 | ||
627 | if (slot < 0) { | 628 | if (slot < 0) { |
628 | printk(KERN_INFO "early_iomap(%08lx, %08lx) not found slot\n", | 629 | printk(KERN_INFO "early_iomap(%08llx, %08lx) not found slot\n", |
629 | phys_addr, size); | 630 | (u64)phys_addr, size); |
630 | WARN_ON(1); | 631 | WARN_ON(1); |
631 | return NULL; | 632 | return NULL; |
632 | } | 633 | } |
633 | 634 | ||
634 | if (early_ioremap_debug) { | 635 | if (early_ioremap_debug) { |
635 | printk(KERN_INFO "early_ioremap(%08lx, %08lx) [%d] => ", | 636 | printk(KERN_INFO "early_ioremap(%08llx, %08lx) [%d] => ", |
636 | phys_addr, size, slot); | 637 | (u64)phys_addr, size, slot); |
637 | dump_stack(); | 638 | dump_stack(); |
638 | } | 639 | } |
639 | 640 | ||
@@ -680,13 +681,15 @@ __early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) | |||
680 | } | 681 | } |
681 | 682 | ||
682 | /* Remap an IO device */ | 683 | /* Remap an IO device */ |
683 | void __init __iomem *early_ioremap(unsigned long phys_addr, unsigned long size) | 684 | void __init __iomem * |
685 | early_ioremap(resource_size_t phys_addr, unsigned long size) | ||
684 | { | 686 | { |
685 | return __early_ioremap(phys_addr, size, PAGE_KERNEL_IO); | 687 | return __early_ioremap(phys_addr, size, PAGE_KERNEL_IO); |
686 | } | 688 | } |
687 | 689 | ||
688 | /* Remap memory */ | 690 | /* Remap memory */ |
689 | void __init __iomem *early_memremap(unsigned long phys_addr, unsigned long size) | 691 | void __init __iomem * |
692 | early_memremap(resource_size_t phys_addr, unsigned long size) | ||
690 | { | 693 | { |
691 | return __early_ioremap(phys_addr, size, PAGE_KERNEL); | 694 | return __early_ioremap(phys_addr, size, PAGE_KERNEL); |
692 | } | 695 | } |
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 640339ee4fb2..c009a241d562 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #ifdef CONFIG_X86_PAT | 31 | #ifdef CONFIG_X86_PAT |
32 | int __read_mostly pat_enabled = 1; | 32 | int __read_mostly pat_enabled = 1; |
33 | 33 | ||
34 | void __cpuinit pat_disable(const char *reason) | 34 | static inline void pat_disable(const char *reason) |
35 | { | 35 | { |
36 | pat_enabled = 0; | 36 | pat_enabled = 0; |
37 | printk(KERN_INFO "%s\n", reason); | 37 | printk(KERN_INFO "%s\n", reason); |
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index 5b7c7c8464fe..7aa03a5389f5 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c | |||
@@ -345,7 +345,8 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) | |||
345 | fixmaps_set++; | 345 | fixmaps_set++; |
346 | } | 346 | } |
347 | 347 | ||
348 | void native_set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t flags) | 348 | void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys, |
349 | pgprot_t flags) | ||
349 | { | 350 | { |
350 | __native_set_fixmap(idx, pfn_pte(phys >> PAGE_SHIFT, flags)); | 351 | __native_set_fixmap(idx, pfn_pte(phys >> PAGE_SHIFT, flags)); |
351 | } | 352 | } |