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