> -----Original Message----- > From: Horms [mailto:horms@xxxxxxxxxxxx] > 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 <horms@xxxxxxxxxxxx> > > 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 > /* crashkernel=size@offset 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 - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |