It is possible that the reserved crashkernel region can be overlapped
with initrd since the bootloader sets the initrd location. When the
initrd region is freed, the second kernel memory will not be contiguous.
The Kexec_load can cause an oops since there is no contiguous memory to
write the second kernel or this memory could be used in the first kernel
itself and may not be part of the dump. For example, on powerpc, the
initrd is located at 36MB and the crashkernel starts at 32MB. The
kexec_load caused panic since writing into non-allocated memory (after
36MB). We could see the similar issue even on other archs.
One possibility is to move the initrd outside of crashkernel region.
But, the initrd region will be freed anyway before the system is up.
This patch fixes this issue and frees only regions that are not part of
crashkernel memory in case overlaps.
Thanks
Haren
Signed-off-by: Haren Myneni <[email protected]>
Haren Myneni writes:
> --- 2616-rc2.orig/include/linux/kexec.h 2006-02-06 19:08:01.000000000 -0800
> +++ 2616-rc2/include/linux/kexec.h 2006-02-06 19:06:37.000000000 -0800
> @@ -6,6 +6,7 @@
> #include <linux/list.h>
> #include <linux/linkage.h>
> #include <linux/compat.h>
> +#include <linux/ioport.h>
> #include <asm/kexec.h>
What's this hunk for?
Paul.
Paul Mackerras wrote:
>Haren Myneni writes:
>
>
>
>>--- 2616-rc2.orig/include/linux/kexec.h 2006-02-06 19:08:01.000000000 -0800
>>+++ 2616-rc2/include/linux/kexec.h 2006-02-06 19:06:37.000000000 -0800
>>@@ -6,6 +6,7 @@
>> #include <linux/list.h>
>> #include <linux/linkage.h>
>> #include <linux/compat.h>
>>+#include <linux/ioport.h>
>> #include <asm/kexec.h>
>>
>>
>
>What's this hunk for?
>
>Paul.
>
>
crashk_res is an extern declaration in kexec.h. Declared as "struct
resource" which is defined in linux/ioport.h.
For other places wherever this variable is used, ioport.h got included
through some other header file. Whereas for initramfs.c, either we need
to include ioport.h explicitly or include in kexec.h. Chosen the later
one. Probably, some comment would be better to make it clear.
Paul, do you prefer to repost the patch with the comment?
Thanks
Haren
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>
>