[kernel] r13994 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/series

Dann Frazier dannf at alioth.debian.org
Thu Jul 23 05:19:13 UTC 2009


Author: dannf
Date: Thu Jul 23 05:19:07 2009
New Revision: 13994

Log:
workaround gcc-4.2 regression when compiling fbcon

Added:
   dists/lenny/linux-2.6/debian/patches/bugfix/all/fbmon-work-around-compiler-bug.patch
Modified:
   dists/lenny/linux-2.6/debian/changelog
   dists/lenny/linux-2.6/debian/patches/series/18

Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog	Wed Jul 22 22:46:37 2009	(r13993)
+++ dists/lenny/linux-2.6/debian/changelog	Thu Jul 23 05:19:07 2009	(r13994)
@@ -14,7 +14,9 @@
 
   [ dann frazier ]
   * e1000e: add support for 82574L controllers (closes: #534519)
-  * Use -fno-strict-overflow instead of -fwrapv (closes: #536354)
+  * Use -fno-strict-overflow instead of -fwrapv and workaround a
+    regression in fbcon this may introduce if users build custom kernels
+    w/ gcc-4.2 (prebuilt kernels use 4.1) (closes: #536354)
 
   [ Moritz Muehlenhoff ]
   * fbdev/atyfb: Fix display corruption on some PowerMacs & PowerBooks

Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/fbmon-work-around-compiler-bug.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/fbmon-work-around-compiler-bug.patch	Thu Jul 23 05:19:07 2009	(r13994)
@@ -0,0 +1,48 @@
+commit 3730793d457fed79a6d49bae72996d458c8e4f2d
+Author: Linus Torvalds <torvalds at linux-foundation.org>
+Date:   Wed Jul 22 08:49:22 2009 -0700
+
+    fbmon: work around compiler bug in gcc-2.4.2
+    
+    There's some odd bug in gcc-4.2 where it miscompiles a simple loop whent
+    he loop counter is of type 'unsigned char' and it should count to 128.
+    
+    The compiler will incorrectly decide that a trivial loop like this:
+    
+    	unsigned char i, ...
+    
+    	for (i = 0; i < 128; i++) {
+    		..
+    
+    is endless, and will compile it to a single instruction that just
+    branches to itself.
+    
+    This was triggered by the addition of '-fno-strict-overflow', and we
+    could play games with compiler versions and go back to '-fwrapv'
+    instead, but the trivial way to avoid it is to just make the loop
+    induction variable be an 'int' instead.
+    
+    Thanks to Krzysztof Oledzki for reporting and testing and to Troy Moure
+    for digging through assembler differences and finding it.
+    
+    Reported-and-tested-by: Krzysztof Oledzki <olel at ans.pl>
+    Found-by: Troy Moure <twmoure at szypr.net>
+    Gcc-bug-acked-by: Ian Lance Taylor <iant at google.com>
+    Cc: stable at kernel.org
+    Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
+index 5c1a2c0..9ae9cd3 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 char csum = 0, all_null = 0;
++	int i, err = 0, fix = check_edid(edid);
+ 
+ 	if (fix)
+ 		fix_edid(edid, fix);

Modified: dists/lenny/linux-2.6/debian/patches/series/18
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/18	Wed Jul 22 22:46:37 2009	(r13993)
+++ dists/lenny/linux-2.6/debian/patches/series/18	Thu Jul 23 05:19:07 2009	(r13994)
@@ -11,3 +11,4 @@
 + bugfix/all/sound-enable-snoop-for-nvidia-hda.patch
 + bugfix/all/eeepc-fix-oops-when-changing-backlight-brightness-during-init.patch
 + bugfix/all/hpet-avoid-log-flooding.patch
++ bugfix/all/fbmon-work-around-compiler-bug.patch



More information about the Kernel-svn-changes mailing list