Re: bisected boot regression post 2.6.25-rc3.. please revert

From: Ingo Molnar
Date: Tue Mar 04 2008 - 01:59:21 EST



* Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> wrote:

> so (on 32-bit) ~_PAGE_PSE is ~0x80L is 0xffffff7f, which when cast to
> 64-bit is 0x00000000ffffff7f, so in
>
> (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PSE & ~_PAGE_NX)
>
> all the high bits are lost, while the original
>
> ~(PAGE_MASK | _PAGE_USER | _PAGE_PSE | _PAGE_NX)
>
> works as intended, since the bit inversion is done on a 64-bit number.

but we really are interested in the low bits here (lets ignore the NX
bit for now) and the patch has been in the queue for a long time (more
than a month), so if there was a trivial mask mixup problem it would
have shown on the first day. So i suspect some gcc bug instead - and
certainly the colorful mixture of types and signs in this expression
might have surprised a new version of gcc somewhere.

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