Re: Unsigned widening casts of binary "not" operations..

From: Cyrill Gorcunov
Date: Wed Apr 24 2013 - 03:47:44 EST

On Wed, Apr 24, 2013 at 09:26:30AM +0200, Ingo Molnar wrote:
> * Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> > And there's quite a lot of them. Even in my (fairly small) config I use on
> > my desktop. And the first warnings I see are in x86 code:
> >
> > arch/x86/kernel/traps.c:405:16: warning: implicit unsigned widening
> > cast of a '~' expression
> > arch/x86/kernel/cpu/perf_event_p4.c:912:15: warning: implicit unsigned
> > widening cast of a '~' expression
> Hm, the perf_event_p4.c code is indeed confused.
> I think the bug is real but probably benign in effect: we allow narrower
> values into the MSR register than probably intended. Only a couple of low
> bits are reserved AFAICS.
> Here's an (untested!) patch that tries to untangle it all: it just moves
> to clean 64-bit types everywhere - these MSRs are 64-bit wide regardless
> of whether we run on 32-bit or not.
> Would be nice if someone with a working P4 could test it - Cyrill? [It
> should also be double checked whether the high words are really not
> reserved and can be written to ...]

Hi Ingo! Ufortunately I don't have access to real p4 hardware,
thus I'm CC'ing Ming who has been helping a lot in testing
this code pieces.

Still the patch itself is perfectly fine to me

Reviewed-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at