On Sat, Mar 25, 2006 at 01:21:00PM -0800, Marc Singer wrote: > The change of the zero_unbind and eth_unbind calls to use __exit > breaks the driver on ARM. It causes a difficult to locate error: > > LD .tmp_vmlinux1 > local symbol 0: discarded in section `.exit.text' from drivers/built-in.o > drivers/built-in.o(.init.text+0x3880): In function `release_mem': > drivers/char/tty_io.c:1690: relocation truncated to fit: R_ARM_PC24 .exit.text > make: *** [.tmp_vmlinux1] Error 1 > > or a variant. My understanding is that this doesn't work because > the section where this function is stored has become discardable. > > With this change, the gadget driver is unlinkable on my target, and > I suspect is broken on ARMs as well, but I haven't verified that. > > On ARM, .exit.text is marked discardable: > > /DISCARD/ : { /* Exit code and data */ > *(.exit.text) > *(.exit.data) > *(.exitcall.exit) > } > > I'll post to lak to see what they think. I don't see why this > would be the case.
I think I was a little off base with this. The problem, apparently, is that bind () calls unbind () which is not allowed when unbind is in the exit section. ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel