On Wed, Feb 09, 2011 at 01:13:04PM +0200, Ahmed S. Darwish wrote: > On Wed, Feb 09, 2011 at 07:15:45AM +0900, Simon Horman wrote: > > On Tue, Feb 08, 2011 at 05:20:36PM +0200, Ahmed S. Darwish wrote: > > > > > > diff --git a/kexec/arch/i386/kexec-bzImage.c b/kexec/arch/i386/kexec-bzImage.c > > > index 83d3a69..2312eb8 100644 > > > --- a/kexec/arch/i386/kexec-bzImage.c > > > +++ b/kexec/arch/i386/kexec-bzImage.c > > > @@ -43,32 +43,32 @@ static const int probe_debug = 0; > > > > > > int bzImage_probe(const char *buf, off_t len) > > > { > > > - struct x86_linux_header header; > > > + const struct x86_linux_header *header; > > > if ((uintmax_t)len < (uintmax_t)sizeof(header)) { > > > return -1; > > > } > > > - memcpy(&header, buf, sizeof(header)); > > > - if (memcmp(header.header_magic, "HdrS", 4) != 0) { > > > + header = (void *)buf; > > > > Perhaps casting to (struct x86_linux_header*) would read better? > > > > I felt that '(const struct x86_linux_header *)' is a bit long, but it's > not a big deal. Attached is the same patch with that line modified: > > ==> > > Don't wholeheartedly copy the 32-Kbytes bzImage header area to the stack, > just use a constant pointer instead. Thanks, applied.