On 03/28/14 at 10:19am, Dave Young wrote: > On 03/19/14 at 04:03pm, WANG Chao wrote: > > Use these two variables to store the memory ranges and the number of > > memory ranges for crash kernel to boot into: > > > > struct memory_range crash_memory_range; > > int crash_memory_range; > > > > These two variables are not static now, so can be used in other file > > later. > > > > Signed-off-by: WANG Chao <chaowang at redhat.com> > > Tested-by: Linn Crosetto <linn at hp.com> > > --- > > kexec/arch/i386/crashdump-x86.c | 134 ++++++++++++++++++++++------------------ > > kexec/arch/i386/crashdump-x86.h | 5 +- > > 2 files changed, 77 insertions(+), 62 deletions(-) > > > > diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c > > index 979c2bd..c55a6b1 100644 > > --- a/kexec/arch/i386/crashdump-x86.c > > +++ b/kexec/arch/i386/crashdump-x86.c > > @@ -179,7 +179,8 @@ static int exclude_region(int *nr_ranges, uint64_t start, uint64_t end); > > > > /* Stores a sorted list of RAM memory ranges for which to create elf headers. > > * A separate program header is created for backup region */ > > -static struct memory_range crash_memory_range[CRASH_MAX_MEMORY_RANGES]; > > +struct memory_range crash_memory_range[CRASH_MAX_MEMORY_RANGES]; > > +int crash_memory_ranges; > > > > /* Memory region reserved for storing panic kernel and other data. */ > > #define CRASH_RESERVED_MEM_NR 8 > > @@ -201,7 +202,7 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges, > > int kexec_flags, unsigned long lowmem_limit) > > It's not necessary to replace every static vars in the function, since there's param > *ranges and **range, so how about just replace them in caller function. OK. Will do. > > > { > > const char *iomem = proc_iomem(); > > - int memory_ranges = 0, gart = 0, i; > > + int gart = 0, i; > > char line[MAX_LINE]; > > FILE *fp; > > unsigned long long start, end; > > @@ -218,7 +219,7 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges, > > char *str; > > int type, consumed, count; > > > > - if (memory_ranges >= CRASH_MAX_MEMORY_RANGES) > > + if (crash_memory_ranges >= CRASH_MAX_MEMORY_RANGES) > > break; > > count = sscanf(line, "%Lx-%Lx : %n", > > &start, &end, &consumed); > > @@ -250,17 +251,17 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges, > > continue; > > } > > > > - crash_memory_range[memory_ranges].start = start; > > - crash_memory_range[memory_ranges].end = end; > > - crash_memory_range[memory_ranges].type = type; > > + crash_memory_range[crash_memory_ranges].start = start; > > + crash_memory_range[crash_memory_ranges].end = end; > > + crash_memory_range[crash_memory_ranges].type = type; > > > > - segregate_lowmem_region(&memory_ranges, lowmem_limit); > > + segregate_lowmem_region(&crash_memory_ranges, lowmem_limit); > > > > - memory_ranges++; > > + crash_memory_ranges++; > > } > > fclose(fp); > > if (kexec_flags & KEXEC_PRESERVE_CONTEXT) { > > - for (i = 0; i < memory_ranges; i++) { > > + for (i = 0; i < crash_memory_ranges; i++) { > > if (crash_memory_range[i].end > 0x0009ffff) { > > crash_reserved_mem[0].start = \ > > crash_memory_range[i].start; > > @@ -278,17 +279,17 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges, > > } > > > > for (i = 0; i < crash_reserved_mem_nr; i++) > > - if (exclude_region(&memory_ranges, crash_reserved_mem[i].start, > > + if (exclude_region(&crash_memory_ranges, crash_reserved_mem[i].start, > > crash_reserved_mem[i].end) < 0) > > return -1; > > > > if (gart) { > > /* exclude GART region if the system has one */ > > - if (exclude_region(&memory_ranges, gart_start, gart_end) < 0) > > + if (exclude_region(&crash_memory_ranges, gart_start, gart_end) < 0) > > return -1; > > } > > *range = crash_memory_range; > > - *ranges = memory_ranges; > > + *ranges = crash_memory_ranges; > > > > return 0; > > } > > @@ -324,7 +325,7 @@ static int get_crash_memory_ranges_xen(struct memory_range **range, > > Ditto for get_crash_memory_ranges_xen, just fix the caller function instead of use > global variable in this function. Will do.