Re: [PATCH] Linux always started with 9600 8N1

From: Jan Engelhardt
Date: Tue May 29 2007 - 16:11:50 EST



On May 27 2007 14:47, David Miller wrote:
>
>> So even writes to so-called 'read-only' sections of the kernel image
>> will work and therefore I don't understand what the bug could be other
>> than the compiler "optimizing" away the write to the constant string
>> in which case the compiler should have warned about it.
>
>I just stared at the drivers/serial/suncore.s assembler a little
>bit and this is indeed what appears to be happening, the compiler
>is optimizing the stores away completely yet not doing so much
>as emitting a warning, how rude :-)

I do not think it can throw a meaningful warning. After all, whether
dereferencing and writing to a char* actually touches

(a) rw memory
(b) ro memory
(c) rw memory which we'd like to be ro ;-)

is not known to the compiler. Of course, one may add more complicated
code to cover simple cases like the one in suncore.c, but that may
as well just gives us more can't-figure-out-correctly-on-my-own warnings
like "possible uninitialized value used" (int n; set_n(&n); use_n(n);) /
where adding more code to cover all detectable cases increases complexity
too much.


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