Re: Memory corruption due to word sharing

From: Jeff Law
Date: Wed Feb 01 2012 - 13:46:49 EST


On 02/01/2012 11:09 AM, David Miller wrote:
From: Michael Matz<matz@xxxxxxx>
Date: Wed, 1 Feb 2012 18:41:05 +0100 (CET)

One problem is that it's not a new problem, GCC emitted similar code since
about forever, and still they turned up only now (well, probably because
ia64 is dead, but sparc64 should have similar problems).

Indeed, on sparc64 it does do the silly 64-bit access too:

wrong:
ldx [%o0+8], %g2
sethi %hi(2147483648), %g1
or %g2, %g1, %g1
jmp %o7+8
stx %g1, [%o0+8]

Personally I've avoided C bitfields like the plague in any code I've
written.
Torvald Riegel & I were told that was kernel policy when we brought up the upcoming bitfield semantic changes with some of the linux kernel folks last year.

Regardless of the kernel team's policy WRT bitfields, I believe fixing the semantics to avoid creation of data races in bitfields is going to be important. I'm hoping Aldy can return to that task soon and he and Richi can come to some agreement on the implementation with gcc-4.8 as a target.

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