> -----Original Message-----
> From: Horms [mailto:[EMAIL PROTECTED]
> Sent: 2006年9月21日 13:33
> To: Zou, Nanhai
> Cc: Luck, Tony; Linux-IA64; fastboot
> Subject: Re: Kexec/Kdump: honour non-zero crashkernel offset.
> 
> On Thu, Sep 21, 2006 at 09:01:33AM +0800, Zou Nan hai wrote:
> >  This patch is incorrect.
> >  I think you will get a compile warning of base is used before it is
> > aligned a value here...
> 
> Sorry about that.  Is this better?
> 
> --
> Horms
>   H: http://www.vergenet.net/~horms/
>   W: http://www.valinux.co.jp/en/
> 
> [IA64] Kexec/Kdump: honour non-zero crashkernel offset.
> 
> There seems to be a value in both allowing the kernel to determine
> the base offset of the crashkernel automatically and allowing
> users's to sepcify it.
> 
> The old behaviour on ia64, which is still the current behaviour on
> most architectures is for the user to always specify the address.
> Recently ia64 was changed so that it is always automatically determined.
> 
> With this patch the kernel automatically determines the offset if
> the supplied value is 0, otherwise it uses the value provided.
> 
> This should probably be backed by a documentation change.
> 
> Signed-Off-By: Simon Horman <[EMAIL PROTECTED]>
> 
> Index: linux-2.6-ia64/arch/ia64/kernel/setup.c
> ===================================================================
> --- linux-2.6-ia64.orig/arch/ia64/kernel/setup.c      2006-09-21
> 14:08:20.000000000 +0900
> +++ linux-2.6-ia64/arch/ia64/kernel/setup.c   2006-09-21
> 14:15:36.000000000 +0900
> @@ -257,7 +257,7 @@
> 
>  #ifdef CONFIG_KEXEC
>       /* [EMAIL PROTECTED] specifies the size to reserve for a crash
> -      * kernel.(offset is ingored for keep compatibility with other archs)
> +      * kernel. If offset is 0, then it is determined automatically.
>        * By reserving this memory we guarantee that linux
>        * never set's it up as a DMA target.
>        * Useful for holding code to do something appropriate
> @@ -268,7 +268,11 @@
>               unsigned long base, size;
>               if (from) {
>                       size = memparse(from + 12, &from);
> -                     if (size) {
> +                     if (*from == '@')
> +                             base = memparse(from+1, &from);
> +                     else
> +                             base = 0;
> +                     if (size && !base) {
>                               sort_regions(rsvd_region, n);
>                               base = kdump_find_rsvd_region(size,
>                               rsvd_region, n);
        This patch is still incorrect. You will miss the rsvd_region code if 
base not equals 0. 
        
Zou Nan hai

_______________________________________________
fastboot mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/fastboot

Reply via email to