Re: [PATCH] mark read_crX() asm code as volatile

From: H. Peter Anvin
Date: Tue Oct 02 2007 - 15:25:44 EST


Arjan van de Ven wrote:
On Tue, 02 Oct 2007 18:08:32 +0400
Kirill Korotaev <dev@xxxxxxxxxx> wrote:

Some gcc versions (I checked at least 4.1.1 from RHEL5 & 4.1.2 from
gentoo) can generate incorrect code with read_crX()/write_crX()
functions mix up, due to cached results of read_crX().


I'm not so sure volatile is the right answer, as compared to giving the
asm more strict contraints....

asm volatile tends to mean something else than "the result has
changed"....


One of the aspect of volatility is "the result will change in ways you (gcc) just don't understand."

-hpa
-
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/