All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: hans.rosenfeld@amd.com, torvalds@linux-foundation.org,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Arjan van de Ven <arjan@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: bisected boot regression post 2.6.25-rc3.. please revert
Date: Mon, 03 Mar 2008 14:56:17 -0800	[thread overview]
Message-ID: <47CC8211.7090704@goop.org> (raw)
In-Reply-To: <a9af8424f96a9118c6b097d9b2df79b2@kernel.crashing.org>

Segher Boessenkool wrote:
>>> 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. 

I went through and made a bunch of these flags signed so that they would 
sign-extend properly in 32 vs 64 bit.  We could make them 
unconditionally 64-bit, but I'm worried that will have unforeseen 
consequences too.

In this case, PAGE_MASK should probably be signed too, so the sign 
extension happens properly.

Alternatively, they could be cast to pteval_t and/or phys_addr_t so that 
they will have an inherent size which matches the pagetable format 
(using _AT() rather than _AC()).

    J

  parent reply	other threads:[~2008-03-03 23:01 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-01 18:56 bisected boot regression post 2.6.25-rc3.. please revert Arjan van de Ven
2008-03-03  7:46 ` Ingo Molnar
2008-03-03  9:13   ` Ingo Molnar
2008-03-03 16:41     ` Arjan van de Ven
2008-03-03 17:40       ` Ingo Molnar
2008-03-03 17:51         ` Nish Aravamudan
2008-03-03 17:55           ` Ingo Molnar
2008-03-03 17:58             ` H. Peter Anvin
2008-03-03 18:36         ` Arjan van de Ven
2008-03-03 18:44           ` Linus Torvalds
2008-03-03 22:00             ` Arjan van de Ven
2008-03-04  1:05               ` Arjan van de Ven
2008-03-04  6:53                 ` Ingo Molnar
2008-03-05 15:35                   ` Arjan van de Ven
2008-03-09 11:56             ` Ingo Molnar
2008-03-09 17:27               ` Linus Torvalds
2008-03-09 18:57                 ` Ingo Molnar
2008-03-10  2:45                 ` Jeremy Fitzhardinge
2008-03-10  4:35                 ` Paul Mackerras
2008-03-03 21:13           ` Segher Boessenkool
2008-03-03 21:22             ` Segher Boessenkool
2008-03-03 22:33               ` Segher Boessenkool
2008-03-03 22:55                 ` H. Peter Anvin
2008-03-03 22:56                 ` Jeremy Fitzhardinge [this message]
2008-03-03 23:04                   ` H. Peter Anvin
2008-03-04  6:58             ` Ingo Molnar
2008-03-03 17:15 ` Nish Aravamudan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47CC8211.7090704@goop.org \
    --to=jeremy@goop.org \
    --cc=arjan@linux.intel.com \
    --cc=hans.rosenfeld@amd.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=segher@kernel.crashing.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.