Messages in this thread | | | From | Segher Boessenkool <> | Subject | Re: bisected boot regression post 2.6.25-rc3.. please revert | Date | Mon, 3 Mar 2008 23:33:52 +0100 |
| |
>> so (on 32-bit) ~_PAGE_PSE is ~0x80L is 0xffffff7f, which when cast to >> 64-bit is 0x00000000ffffff7f, > > Actually, it is signed, so this isn't true. Comments about unsafeness > still apply.
It turns out that PAGE_SIZE is unsigned. So this gives us for
(~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PSE & ~_PAGE_NX)
the types UL, L, L, ULL resp.
The associativity of & is left-to-right, so this in turn becomes
UL, L, ULL
UL, ULL
ULL
and that cast from UL to ULL doesn't sign-extend.
Segher
| |