From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Subject: [PATCH] setup.c: introduce __pa_symbol() and get ride of CPHYSADDR()
Date: Fri, 06 Oct 2006 15:36:48 +0200 [thread overview]
Message-ID: <45265BF0.8080103@innova-card.com> (raw)
From: Franck Bui-Huu <fbuihuu@gmail.com>
This patch introduces __pa_symbol() macro which should be used to
calculate the physical address of kernel symbols. We should fix any
linker issues in this macro, if any, but more importantly
__pa_symbol() uses __pa() to do the real conversion.
One resulting thing is that we can see that most of CPHYSADDR() uses
weren't needed.
It also rely on RELOC_HIDE() to avoid any compiler's oddities when
doing arithmetics on symbols.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
arch/mips/kernel/setup.c | 17 ++++++++++-------
include/asm-mips/page.h | 1 +
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index fdbb508..cccccd5 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -204,12 +204,12 @@ static void __init finalize_initrd(void)
printk(KERN_INFO "Initrd not found or empty");
goto disable;
}
- if (CPHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) {
+ if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
printk("Initrd extends beyond end of memory");
goto disable;
}
- reserve_bootmem(CPHYSADDR(initrd_start), size);
+ reserve_bootmem(__pa(initrd_start), size);
initrd_below_start_ok = 1;
printk(KERN_INFO "Initial ramdisk at: 0x%lx (%lu bytes)\n",
@@ -256,7 +256,10 @@ static void __init bootmem_init(void)
* of usable memory.
*/
reserved_end = init_initrd();
- reserved_end = PFN_UP(CPHYSADDR(max(reserved_end, (unsigned long)&_end)));
+ if (reserved_end > (unsigned long)&_end)
+ reserved_end = PFN_UP(__pa(reserved_end));
+ else
+ reserved_end = PFN_UP(__pa_symbol(&_end));
/*
* Find the highest page frame number we have available.
@@ -428,10 +431,10 @@ static void __init resource_init(void)
if (UNCAC_BASE != IO_BASE)
return;
- code_resource.start = virt_to_phys(&_text);
- code_resource.end = virt_to_phys(&_etext) - 1;
- data_resource.start = virt_to_phys(&_etext);
- data_resource.end = virt_to_phys(&_edata) - 1;
+ code_resource.start = __pa_symbol(&_text);
+ code_resource.end = __pa_symbol(&_etext) - 1;
+ data_resource.start = __pa_symbol(&_etext);
+ data_resource.end = __pa_symbol(&_edata) - 1;
/*
* Request address space for all standard RAM.
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index 32e5625..1d5f4a3 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -132,6 +132,7 @@ #endif /* !__ASSEMBLY__ */
#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK)
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET)
+#define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x),0))
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
--
1.4.2.3
next reply other threads:[~2006-10-06 13:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-06 13:36 Franck Bui-Huu [this message]
2006-10-06 17:21 ` [PATCH] setup.c: introduce __pa_symbol() and get ride of CPHYSADDR() Thiemo Seufer
2006-10-09 11:58 ` Franck Bui-Huu
2006-10-09 13:21 ` Thiemo Seufer
2006-10-09 14:25 ` Franck Bui-Huu
2006-10-09 14:58 ` Thiemo Seufer
2006-10-09 15:30 ` Franck Bui-Huu
2006-10-09 15:51 ` Atsushi Nemoto
2006-10-09 16:59 ` Thiemo Seufer
2006-10-10 8:49 ` Atsushi Nemoto
2006-10-10 13:49 ` Franck Bui-Huu
2006-10-10 14:19 ` Atsushi Nemoto
2006-10-10 15:01 ` Franck Bui-Huu
2006-10-10 15:29 ` Atsushi Nemoto
2006-10-10 16:04 ` Franck Bui-Huu
2006-10-10 16:16 ` Franck Bui-Huu
2006-10-10 21:51 ` Ralf Baechle
2006-10-11 3:11 ` Atsushi Nemoto
2006-10-11 9:37 ` Franck Bui-Huu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45265BF0.8080103@innova-card.com \
--to=vagabon.xyz@gmail.com \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox