[Lguest] [PATCH] fix lguest rmmod "bad pgd"

Rusty Russell rusty at rustcorp.com.au
Thu Jan 3 17:50:29 EST 2008


On Thursday 03 January 2008 00:27:10 pageexec at freemail.hu wrote:
> (sorry for breaking the thread but i didn't get the original headers)
>
> > After 17d57a9206b4de6ad082ac9f2d2346985abbd2aa
> > (x86: fix x86-32 early fixmap initialization.) removing lg.ko caused a
> > printk from vunmap:
> >
> >  mm/memory.c:115: bad pgd 004b3027.
> >
> > On the second use after module load, the kernel crashes.
> >
> > This fixes the immediate problem (accessed and dirty bits not set as
> > expected in pmd_none_or_clear_bad).  I can't see why this would cause a
> > crash, but I haven't been able to reproduce it once this is applied.
>
> it's the 'clear_bad' part that zero's out the pmd and hence destroys
> all the fixmap mappings in that 4 MB range leading to page faults at
> probably the most unexpected times.

Thanks, I had misread the code as clearing it normally anyway.  This is a 
nasty bug because we'd hit it if we ever filled vmalloc space, but now Linus 
has applied that patch we should all be merry...

Cheers,
Rusty.



More information about the Lguest mailing list