Fix dump_avail[] for MALTA platforms to include the kernel.
dump_avail[] is supposed to be a superset of phys_avail[] that describes all of the memory ranges that should be included in a full dump. minidumps don't consider pages described by dump_avail[] to be valid and thus they are excluded via the is_dumpable() function. Most MIPS platforms (including MALTA) set dump_avail[] to be identical to phys_avail[]. In particular, phys_avail[] doesn't include the kernel itself, so pages for the kernel and it's global variables are not considered dumpable and not included in the dump. Fix this by setting dump_avail[0] to the first memory address (0) rather than the end of the kernel. Several other MIPS platforms have the same bug, though I am only able to test malta in qemu. The correct fix is to set dump_avail[] to describe RAM and in particular to not set dump_avail[0] to the end of the kernel (kernel_kseg0_end). Sponsored by: DARPA / AFRL
This commit is contained in:
parent
9d7c990f62
commit
f2f9011e6c
@ -191,7 +191,7 @@ mips_init(unsigned long memsize, uint64_t ememsize)
|
||||
/* phys_avail regions are in bytes */
|
||||
phys_avail[0] = MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
|
||||
phys_avail[1] = memsize;
|
||||
dump_avail[0] = phys_avail[0];
|
||||
dump_avail[0] = 0;
|
||||
dump_avail[1] = phys_avail[1];
|
||||
|
||||
/* Only specify the extended region if it's set */
|
||||
|
Loading…
x
Reference in New Issue
Block a user