summaryrefslogtreecommitdiff
path: root/kexec/arch/ppc64/crashdump-ppc64.c
diff options
context:
space:
mode:
authorSachin P. Sant <sachinp@in.ibm.com>2008-07-03 18:39:02 +0530
committerSimon Horman <horms@verge.net.au>2008-07-04 09:01:22 +1000
commitf63fe8aa4a22238768e28b59555d98d6b3b769f0 (patch)
tree7695606e631a77af7461d1c69663e89a187c711b /kexec/arch/ppc64/crashdump-ppc64.c
parent5887072c6392c43e5139c8c94305708c212e333b (diff)
[ppc64] Allow 32 bit kexec binary to boot kdump kernel on ppc64 architecture
Signed-off-by : Sachin Sant <sachinp@in.ibm.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/ppc64/crashdump-ppc64.c')
-rw-r--r--kexec/arch/ppc64/crashdump-ppc64.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/kexec/arch/ppc64/crashdump-ppc64.c b/kexec/arch/ppc64/crashdump-ppc64.c
index a1963e1..962f445 100644
--- a/kexec/arch/ppc64/crashdump-ppc64.c
+++ b/kexec/arch/ppc64/crashdump-ppc64.c
@@ -82,7 +82,7 @@ mem_rgns_t usablemem_rgns = {0, NULL};
* we can determine the RAM size unless parsing the device-tree/memoy@/reg
* property in the kernel.
*/
-unsigned long saved_max_mem = 0;
+uint64_t saved_max_mem = 0;
/* Reads the appropriate file and retrieves the SYSTEM RAM regions for whom to
* create Elf headers. Keeping it separate from get_memory_ranges() as
@@ -264,7 +264,7 @@ err:
}
/* Converts unsigned long to ascii string. */
-static void ultoa(unsigned long i, char *str)
+static void ultoa(uint64_t i, char *str)
{
int j = 0, k;
char tmp;
@@ -282,8 +282,8 @@ static void ultoa(unsigned long i, char *str)
}
}
-static int add_cmdline_param(char *cmdline, unsigned long addr,
- char *cmdstr, char *byte)
+static int add_cmdline_param(char *cmdline, uint64_t addr, char *cmdstr,
+ char *byte)
{
int cmdlen, len, align = 1024;
char str[COMMAND_LINE_SIZE], *ptr;
@@ -320,10 +320,11 @@ static int add_cmdline_param(char *cmdline, unsigned long addr,
* for crash memory image.
*/
int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
- unsigned long max_addr, unsigned long min_base)
+ uint64_t max_addr, unsigned long min_base)
{
void *tmp;
- unsigned long sz, elfcorehdr;
+ unsigned long sz;
+ uint64_t elfcorehdr;
int nr_ranges, align = 1024, i;
unsigned long long end;
struct memory_range *mem_range;