Messages in this thread | | | Date | Wed, 15 Oct 2008 15:19:11 +0200 | From | Jiri Slaby <> | Subject | Re: GIT head no longer boots on x86-64 |
| |
On 10/15/2008 01:51 PM, Ingo Molnar wrote: > Queued the fix below up in tip/x86/urgent for a merge to Linus later > today. Thanks!
Thanks. Omitted S-O-B below.
> From 5870942537422066655816e971629aa729c023d8 Mon Sep 17 00:00:00 2001 > From: Jiri Slaby <jirislaby@gmail.com> > Date: Mon, 13 Oct 2008 17:11:33 +0200 > Subject: [PATCH] x86: fix CONFIG_DEBUG_VIRTUAL=y boot crash on x86-64 > > Alan reported a bootup crash in the module loader: > >> BUG? vmalloc_to_page (from text_poke+0x30/0x14a): ffffffffa01e40b1 > > SMP kernel is running on UP, in such a case the module .text > is patched to use UP locks before the module is added to the modules > list and it thinks there are no valid data at that place while > patching. > > Also the !is_module_address(addr) test is useless now. > > Reported-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
> Signed-off-by: Ingo Molnar <mingo@elte.hu> > Tested-by: Alan Cox <alan@lxorguk.ukuu.org.uk> > --- > include/linux/mm.h | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index c61ba10..45772fd 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -267,6 +267,10 @@ static inline int is_vmalloc_addr(const void *x) > #ifdef CONFIG_MMU > unsigned long addr = (unsigned long)x; > > +#ifdef CONFIG_X86_64 > + if (addr >= MODULES_VADDR && addr < MODULES_END) > + return 1; > +#endif > return addr >= VMALLOC_START && addr < VMALLOC_END; > #else > return 0;
| |