
Dear Wolfgang,
On 09.01.2011 23:25, Wolfgang Denk wrote:
Dear Dirk Behme,
In message4D1F1841.5060508@googlemail.com you wrote:
Do you like to test the patch in the attachment? I named it 'v4'.
Please send patches inline.
After some thinking and testing, it seems to me that the volatile optimization issue this patch shall fix is only with the readx() macros. So the idea is to drop all writex() changes done in the v3 version of this patch. With dropping the writex() changes, we would drop all issues we discussed with e.g. the GCC statement-expression and the do while workaround, too.
This makes no sense. Even if we experience problems only with read*() at the moment, we should to the Rigth Thing (TM) and fix both the read*() and write*() functions.
The question I was thinking about with my patch was "what's Right Thing?" ;)
It's my understanding that we don't fix read*() and write*() because they are broken. We touch them to work around a broken tool chain.
We saw that this specific tool chain has issues with read*(). While working around this, we touched write*(), too. This was done in the wrong way. So while read*() was fine, write*() was accidentally broken (with all tool chains), then. So we could
(a) do write*() correctly, too (as you do in your patch below)
or
(b) just don't touch write*() as it isn't needed to work around the read*() tool chain issue (as I proposed in my patch v4)
Anyway:
Please have a look a the patch I just posted, http://patchwork.ozlabs.org/patch/78056/
I'm fine with that patch.
Thanks
Dirk