gcc -Os triggers oops in io_edgeport kernel module

Willem Riede wrrhdev at riede.org
Sun Jul 25 21:56:25 UTC 2004


The oops I reported earlier on this list, and in  
http://marc.theaimsgroup.com/?l=linux-usb-devel&m=109029025821698&w=2
turns out to be triggered by just this directive in the .config file:


[root at fallguy root]# diff -u ok3.config bad.config
--- ok3.config  2004-07-25 11:45:05.000000000 -0400
+++ bad.config  2004-07-25 13:45:11.000000000 -0400
@@ -37,7 +37,7 @@
 CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y

 #
 # Loadable module support


So the size optimization, which is on in the FC3T1 kernel, but about which the  
config help warns that it may produce invalid code, trips up over the code  
generation for the io_edgeport module.

By inserting extra print statements, and seeing how many come out, I've  
deduced that the bad code is produced around 'get_manufacturing_desc' in
the following code fragment in 'edge_startup()' in drivers/usb/serial/ 
io_edgeport.c:


        get_string(dev, dev->descriptor.iProduct, &edge_serial->name[i]);

        dev_info(&serial->dev->dev, "%s detected\n", edge_serial->name);

        /* get the manufacturing descriptor for this device */
==>     get_manufacturing_desc (edge_serial);                       <===

        /* get the boot descriptor */
        get_boot_desc (edge_serial);

        get_product_info(edge_serial);


The gcc version installed:


[root at fallguy root]# gcc --version
gcc (GCC) 3.4.1 20040714 (Red Hat 3.4.1-5)


Should I enter a bug against gcc in bugzilla?

Thanks, Willem Riede.





More information about the fedora-test-list mailing list