Messages in this thread | | | Date | Wed, 22 Jul 2009 10:12:21 +0200 (CEST) | From | Krzysztof Oledzki <> | Subject | Re: Linux 2.6.27.27 |
| |
On Tue, 21 Jul 2009, Linus Torvalds wrote:
> > > On Tue, 21 Jul 2009, Linus Torvalds wrote: >> >> Anyway, I bet we can work around the compiler bug by just changing the >> type of "i" from "unsigned char" to be a plain "int". > > IOW, like this. > > Linus > > --- > drivers/video/fbmon.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c > index 5c1a2c0..af4a15c 100644 > --- a/drivers/video/fbmon.c > +++ b/drivers/video/fbmon.c > @@ -256,8 +256,8 @@ static void fix_edid(unsigned char *edid, int fix) > > static int edid_checksum(unsigned char *edid) > { > - unsigned char i, csum = 0, all_null = 0; > - int err = 0, fix = check_edid(edid); > + unsigned csum = 0, all_null = 0; > + int i, err = 0, fix = check_edid(edid); > > if (fix) > fix_edid(edid, fix);
Wow! You guys rock! ;)
Indeed, this simple change is enough to make my kernel bootable. However, there is still something wrong. My console is now 80x30 instead of 128x48:
-Console: switching to colour frame buffer device 128x48 +Console: switching to colour frame buffer device 80x30
So, it looks like the loop may be still miscompiled.
The kernel is here: http://noc.axelspringer.pl/no-strict-overflow-vs-wrapv/vmlinux-fno-strict-overflow-fixed.bz2
Best regards,
Krzysztof Olędzki
| |