Re: [PATCH 1/24] make atomic_read() behave consistently on alpha
From: Segher Boessenkool <hidden>
Date: 2007-08-10 20:11:55
Also in:
lkml, netdev
From: Segher Boessenkool <hidden>
Date: 2007-08-10 20:11:55
Also in:
lkml, netdev
quoted
The compiler is within its rights to read a 32-bit quantity 16 bits at at time, even on a 32-bit machine. I would be glad to help pummel any compiler writer that pulls such a dirty trick, but the C standard really does permit this.Code all over the kernel assumes that 32-bit reads/writes are atomic so while such a compiler might be legal it certainly can't compile Linux.
That means GCC cannot compile Linux; it already optimises some accesses to scalars to smaller accesses when it knows it is allowed to. Not often though, since it hardly ever helps in the cost model it employs. Segher