Re: [PATCH 00 of 10] x86: unify asm/pgtable.h

Jeremy Fitzhardinge
2008-01-09T01:09:22Z

Ingo Molnar wrote:
> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>
>> In other words, prot and ref_prot can never be equal, so this path is
>> always taken, and the other branch which tests pte_huge() is never
>> run.
>>
>> Andi? Jan? Is this code just buggy, or is there something else going
>> on here?
>>
>
> this code is plain buggy but fixing it triggered driver bugs in the past
> so we've been procrastinating it forever ...
>

What kind of driver bugs? Do drivers manage to get into the other
branch of the if()? If not, can't we just remove it and avoid this
present problem?

Of course, there are a couple of other places which use naked
__PAGE_KERNEL_* constants, most significantly in head_64.S's initial
pagetable setup. Does that rely _PAGE_GLOBAL not being set? Also
early_io_remap().

J