aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2011-02-15 08:31:37 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-02-15 09:20:22 -0500
commit29a38193c15bd72ba96c57a805443ef46ea6a6ac (patch)
treeb4367269a4bfb5b75537605c5191fe4828b62437 /arch/arm
parent410f14837a92177242a403c20d0a0906fe357019 (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')
-rw-r--r--arch/arm/kernel/setup.c2
-rw-r--r--arch/arm/kernel/traps.c6
-rw-r--r--arch/arm/mm/fault.c10
-rw-r--r--arch/arm/mm/mmu.c26
4 files changed, 23 insertions, 21 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 336f14e0e5c2..77af580953e6 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -448,7 +448,7 @@ static int __init arm_add_memory(unsigned long start, unsigned long size)
448 448
449 if (meminfo.nr_banks >= NR_BANKS) { 449 if (meminfo.nr_banks >= NR_BANKS) {
450 printk(KERN_CRIT "NR_BANKS too low, " 450 printk(KERN_CRIT "NR_BANKS too low, "
451 "ignoring memory at %#lx\n", start); 451 "ignoring memory at 0x%08llx\n", (long long)start);
452 return -EINVAL; 452 return -EINVAL;
453 } 453 }
454 454
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 354cd4ce400a..10f5b8926ee6 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -710,17 +710,17 @@ EXPORT_SYMBOL(__readwrite_bug);
710 710
711void __pte_error(const char *file, int line, pte_t pte) 711void __pte_error(const char *file, int line, pte_t pte)
712{ 712{
713 printk("%s:%d: bad pte %08lx.\n", file, line, pte_val(pte)); 713 printk("%s:%d: bad pte %08llx.\n", file, line, (long long)pte_val(pte));
714} 714}
715 715
716void __pmd_error(const char *file, int line, pmd_t pmd) 716void __pmd_error(const char *file, int line, pmd_t pmd)
717{ 717{
718 printk("%s:%d: bad pmd %08lx.\n", file, line, pmd_val(pmd)); 718 printk("%s:%d: bad pmd %08llx.\n", file, line, (long long)pmd_val(pmd));
719} 719}
720 720
721void __pgd_error(const char *file, int line, pgd_t pgd) 721void __pgd_error(const char *file, int line, pgd_t pgd)
722{ 722{
723 printk("%s:%d: bad pgd %08lx.\n", file, line, pgd_val(pgd)); 723 printk("%s:%d: bad pgd %08llx.\n", file, line, (long long)pgd_val(pgd));
724} 724}
725 725
726asmlinkage void __div0(void) 726asmlinkage void __div0(void)
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