Re: Linux 2.4.1-ac15

Andrea Arcangeli (andrea@suse.de)
Sat, 24 Feb 2001 05:04:02 +0100


On Fri, Feb 23, 2001 at 01:09:02PM -0800, Linus Torvalds wrote:
>
>
> On Fri, 23 Feb 2001, Andrea Arcangeli wrote:
> >
> > I think that can't happen. Infact I think the whole section:
> >
> > pmd = pmd_offset(pgd, address);
> > pmd_k = pmd_offset(pgd_k, address);
> >
> > if (pmd_present(*pmd) || !pmd_present(*pmd_k))
> > goto bad_area_nosemaphore;
> > set_pmd(pmd, *pmd_k);
> > return;
> >
> > is superflows.
>
> No. Think about the differences in PAE and non-PAE mode.
>
> > The middle pagetable is shared and the pmd_t entry is set by vmalloc itself (it
> > just points to the as well shared pte), it's only the pgd that is setup lazily
>
> In non-PAE mode, the pgd entry doesn't exist. pgd_present() returns a
> unconditional 1. Its' the pmd functions that kick in then.

Woops, I see, I was thinking only PAE mode indeed 8), sorry. Thanks for the
correction.

All the rest still applies (and the patch still looks fine for PAE mode). I
think I only need to rediff my patch after resurrecting the pmd thing inside
the cli critical section in a #ifndef CONFIG_X86_PAE region.

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