lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080731132152.GB26782@redhat.com>
Date:	Thu, 31 Jul 2008 09:21:52 -0400
From:	Vivek Goyal <vgoyal@...hat.com>
To:	Simon Horman <horms@...ge.net.au>
Cc:	kexec@...ts.infradead.org, linux-ia64@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [patch 3/3] kdump: use is_vmcore_usable() and
	vmcore_unusable() in reserve_elfcorehdr()

On Thu, Jul 31, 2008 at 10:48:43AM +1000, Simon Horman wrote:
> On Wed, Jul 30, 2008 at 09:01:31AM -0400, Vivek Goyal wrote:
> > On Tue, Jul 29, 2008 at 06:12:38PM +1000, Simon Horman wrote:
> > > After recent changes setting elfcorehdr_addr to ELFCORE_ADDR_MAX
> > > will cause is_kdump_kernel() to return 0 when it should return 1.
> > > Instead use vmcore_unusable(), which has been added for this purpose.
> > > 
> > > Signed-off-by: Simon Horman <horms@...ge.net.au>
> > > 
> > > Index: linux-2.6/arch/ia64/kernel/setup.c
> > > ===================================================================
> > > --- linux-2.6.orig/arch/ia64/kernel/setup.c	2008-07-29 17:27:43.000000000 +1000
> > > +++ linux-2.6/arch/ia64/kernel/setup.c	2008-07-29 17:50:50.000000000 +1000
> > > @@ -502,11 +502,11 @@ int __init reserve_elfcorehdr(unsigned l
> > >  	 * to work properly.
> > >  	 */
> > >  
> > > -	if (elfcorehdr_addr >= ELFCORE_ADDR_MAX)
> > > +	if (!is_vmcore_usable())
> > >  		return -EINVAL;
> > >  
> > >  	if ((length = vmcore_find_descriptor_size(elfcorehdr_addr)) == 0) {
> > > -		elfcorehdr_addr = ELFCORE_ADDR_MAX;
> > > +		vmcore_unusable();
> > >  		return -EINVAL;
> > >  	}
> > >  
> > 
> > Hi Simon,
> > 
> > I had a question. I am not very sure what reserve_elfcorehdr is doing
> > but doing something similar to reserving some memory area where
> > elfcoreheaders are.
> 
> Yes, that is my understanding of what it does.
> 

In x86 we never have to reserve that elf header area as we know that
booting kernel will never overwrite in that area. (Previous kernel has
modified the memory map in such a way so that elf header memory area
is not even part of memory range second kernel can use. 

Any idea, why do we need to reserve this area in IA64.

> > I see that reserve_elfcorehdr is under CONFIG_PROC_VMCORE. Will it work
> > if CONFIG_PROC_VMCORE=n and somebody wants to use /dev/oldmem?
> > Or reserve_elfcorehdr should be under CONFIG_CRASH_DUMP?
> 
> I'm not that familiar with /dev/oldmem, but as far as I can see,
> read_oldmem doesn't do anything with ELF headers, so reservation
> by vmcore_find_descriptor_size() should not be neccessary.
> 

/dev/oldmem does not directly touch elfcorehdr. But it indirectly does in
the sense that it is reading all the previous kernel's memory and dumping
it to disk. That would include elfcorehdrs also.

Now if we need to do some kind of reservation for elf headers so that
fs/vmcore.c code can read it, then same should be true for /dev/oldmem
code also. Otherwise reserving elfcorehdr code should be redundant.

That's why I raised the question that why do we need to reserve that area
in case of IA64. And if there is a genuine reason then probably that
reason will hold valid in case of /dev/oldmem also and we might have
to put is_vmcore_usable() definition also under CONFIG_CRASH_DUMP.

Thanks
Vivek

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ