Re: [PATCH] x86: Construct 32 bit boot time page tables in native format.

Rafael J. Wysocki
2008-01-28T20:29:04Z

On Monday, 28 of January 2008, Pavel Machek wrote:
> Hi!
>
> > > > /*
> > > > * Swap suspend & friends need this for resume because things like the intel-agp
> > > > * driver might have split up a kernel 4MB mapping.
> > > > */
> > > > -char __nosavedata swsusp_pg_dir[PAGE_SIZE]
> > > > +char swsusp_pg_dir[PAGE_SIZE]
> > >
> > > thanks, applied.
>
> Sorry, this is subtle and I've overlooked it before.
>
> (I thought you were only changing ifdef).
>
> Now you memcpy() over pg_dir when that pgdir is in use during swsusp
> resume.

It is not. swsusp hasn't been using swsusp_pg_dir for several months.
Hence, the patch. :-)

> Granted, you memcpy() with same data that already are there,
> but it may still do some funny effects.
>
> Hmm, but same argument applies to lower levels of paging in 64-bit and
> PAE cases, and we still do that memcpy-over-active-pagetables there...
> :-(.

Actually, no. We only do that with the kernel code mapping which should be
safe as long as TLBs are not flushed (and they aren't).

Thanks,
Rafael