diff options
author | Will Deacon <will.deacon@arm.com> | 2011-02-15 08:31:37 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-02-15 09:20:22 -0500 |
commit | 29a38193c15bd72ba96c57a805443ef46ea6a6ac (patch) | |
tree | b4367269a4bfb5b75537605c5191fe4828b62437 /arch/arm/mm | |
parent | 410f14837a92177242a403c20d0a0906fe357019 (diff) |
ARM: 6674/1: LPAE: use long long format when printing physical addresses and ptes
For the Kernel to support 2 level and 3 level page tables, physical
addresses (and also page table entries) need to be 32 or 64-bits depending
upon the configuration.
This patch uses the %08llx conversion specifier for physical addresses
and page table entries, ensuring that they are cast to (long long) so
that common code can be used regardless of the datatype widths.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/fault.c | 10 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 26 |
2 files changed, 19 insertions, 17 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index f10f9bac2206..ef0e24f578ef 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -76,7 +76,8 @@ void show_pte(struct mm_struct *mm, unsigned long addr) | |||
76 | 76 | ||
77 | printk(KERN_ALERT "pgd = %p\n", mm->pgd); | 77 | printk(KERN_ALERT "pgd = %p\n", mm->pgd); |
78 | pgd = pgd_offset(mm, addr); | 78 | pgd = pgd_offset(mm, addr); |
79 | printk(KERN_ALERT "[%08lx] *pgd=%08lx", addr, pgd_val(*pgd)); | 79 | printk(KERN_ALERT "[%08lx] *pgd=%08llx", |
80 | addr, (long long)pgd_val(*pgd)); | ||
80 | 81 | ||
81 | do { | 82 | do { |
82 | pmd_t *pmd; | 83 | pmd_t *pmd; |
@@ -92,7 +93,7 @@ void show_pte(struct mm_struct *mm, unsigned long addr) | |||
92 | 93 | ||
93 | pmd = pmd_offset(pgd, addr); | 94 | pmd = pmd_offset(pgd, addr); |
94 | if (PTRS_PER_PMD != 1) | 95 | if (PTRS_PER_PMD != 1) |
95 | printk(", *pmd=%08lx", pmd_val(*pmd)); | 96 | printk(", *pmd=%08llx", (long long)pmd_val(*pmd)); |
96 | 97 | ||
97 | if (pmd_none(*pmd)) | 98 | if (pmd_none(*pmd)) |
98 | break; | 99 | break; |
@@ -107,8 +108,9 @@ void show_pte(struct mm_struct *mm, unsigned long addr) | |||
107 | break; | 108 | break; |
108 | 109 | ||
109 | pte = pte_offset_map(pmd, addr); | 110 | pte = pte_offset_map(pmd, addr); |
110 | printk(", *pte=%08lx", pte_val(*pte)); | 111 | printk(", *pte=%08llx", (long long)pte_val(*pte)); |
111 | printk(", *ppte=%08lx", pte_val(pte[PTE_HWTABLE_PTRS])); | 112 | printk(", *ppte=%08llx", |
113 | (long long)pte_val(pte[PTE_HWTABLE_PTRS])); | ||
112 | pte_unmap(pte); | 114 | pte_unmap(pte); |
113 | } while(0); | 115 | } while(0); |
114 | 116 | ||
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 7515d4718645..f512ad97dafe 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -597,7 +597,7 @@ static void __init create_36bit_mapping(struct map_desc *md, | |||
597 | if (!(cpu_architecture() >= CPU_ARCH_ARMv6 || cpu_is_xsc3())) { | 597 | if (!(cpu_architecture() >= CPU_ARCH_ARMv6 || cpu_is_xsc3())) { |
598 | printk(KERN_ERR "MM: CPU does not support supersection " | 598 | printk(KERN_ERR "MM: CPU does not support supersection " |
599 | "mapping for 0x%08llx at 0x%08lx\n", | 599 | "mapping for 0x%08llx at 0x%08lx\n", |
600 | __pfn_to_phys((u64)md->pfn), addr); | 600 | (long long)__pfn_to_phys((u64)md->pfn), addr); |
601 | return; | 601 | return; |
602 | } | 602 | } |
603 | 603 | ||
@@ -610,14 +610,14 @@ static void __init create_36bit_mapping(struct map_desc *md, | |||
610 | if (type->domain) { | 610 | if (type->domain) { |
611 | printk(KERN_ERR "MM: invalid domain in supersection " | 611 | printk(KERN_ERR "MM: invalid domain in supersection " |
612 | "mapping for 0x%08llx at 0x%08lx\n", | 612 | "mapping for 0x%08llx at 0x%08lx\n", |
613 | __pfn_to_phys((u64)md->pfn), addr); | 613 | (long long)__pfn_to_phys((u64)md->pfn), addr); |
614 | return; | 614 | return; |
615 | } | 615 | } |
616 | 616 | ||
617 | if ((addr | length | __pfn_to_phys(md->pfn)) & ~SUPERSECTION_MASK) { | 617 | if ((addr | length | __pfn_to_phys(md->pfn)) & ~SUPERSECTION_MASK) { |
618 | printk(KERN_ERR "MM: cannot create mapping for " | 618 | printk(KERN_ERR "MM: cannot create mapping for 0x%08llx" |
619 | "0x%08llx at 0x%08lx invalid alignment\n", | 619 | " at 0x%08lx invalid alignment\n", |
620 | __pfn_to_phys((u64)md->pfn), addr); | 620 | (long long)__pfn_to_phys((u64)md->pfn), addr); |
621 | return; | 621 | return; |
622 | } | 622 | } |
623 | 623 | ||
@@ -656,17 +656,17 @@ static void __init create_mapping(struct map_desc *md) | |||
656 | pgd_t *pgd; | 656 | pgd_t *pgd; |
657 | 657 | ||
658 | if (md->virtual != vectors_base() && md->virtual < TASK_SIZE) { | 658 | if (md->virtual != vectors_base() && md->virtual < TASK_SIZE) { |
659 | printk(KERN_WARNING "BUG: not creating mapping for " | 659 | printk(KERN_WARNING "BUG: not creating mapping for 0x%08llx" |
660 | "0x%08llx at 0x%08lx in user region\n", | 660 | " at 0x%08lx in user region\n", |
661 | __pfn_to_phys((u64)md->pfn), md->virtual); | 661 | (long long)__pfn_to_phys((u64)md->pfn), md->virtual); |
662 | return; | 662 | return; |
663 | } | 663 | } |
664 | 664 | ||
665 | if ((md->type == MT_DEVICE || md->type == MT_ROM) && | 665 | if ((md->type == MT_DEVICE || md->type == MT_ROM) && |
666 | md->virtual >= PAGE_OFFSET && md->virtual < VMALLOC_END) { | 666 | md->virtual >= PAGE_OFFSET && md->virtual < VMALLOC_END) { |
667 | printk(KERN_WARNING "BUG: mapping for 0x%08llx at 0x%08lx " | 667 | printk(KERN_WARNING "BUG: mapping for 0x%08llx" |
668 | "overlaps vmalloc space\n", | 668 | " at 0x%08lx overlaps vmalloc space\n", |
669 | __pfn_to_phys((u64)md->pfn), md->virtual); | 669 | (long long)__pfn_to_phys((u64)md->pfn), md->virtual); |
670 | } | 670 | } |
671 | 671 | ||
672 | type = &mem_types[md->type]; | 672 | type = &mem_types[md->type]; |
@@ -684,9 +684,9 @@ static void __init create_mapping(struct map_desc *md) | |||
684 | length = PAGE_ALIGN(md->length + (md->virtual & ~PAGE_MASK)); | 684 | length = PAGE_ALIGN(md->length + (md->virtual & ~PAGE_MASK)); |
685 | 685 | ||
686 | if (type->prot_l1 == 0 && ((addr | phys | length) & ~SECTION_MASK)) { | 686 | if (type->prot_l1 == 0 && ((addr | phys | length) & ~SECTION_MASK)) { |
687 | printk(KERN_WARNING "BUG: map for 0x%08lx at 0x%08lx can not " | 687 | printk(KERN_WARNING "BUG: map for 0x%08llx at 0x%08lx can not " |
688 | "be mapped using pages, ignoring.\n", | 688 | "be mapped using pages, ignoring.\n", |
689 | __pfn_to_phys(md->pfn), addr); | 689 | (long long)__pfn_to_phys(md->pfn), addr); |
690 | return; | 690 | return; |
691 | } | 691 | } |
692 | 692 | ||