Hi all, This is a question that arose from a older kernel ( 2.6.21 ) but I think it's generic to all kernels. Actually this might not a question on the kernel itself at all. So here it goes, I'm using a USB 3G modem with this kernel. The system loads three modules for it: pl2303, option and usbserial. Problem is, it looks like the order or loading is different ( I'm judging this by the order they appear in lsmod output): Sometimes, lsmod says: pl2303 18628 0 option 9664 0 usbserial 28296 2 pl2303,option And sometimes, it says: option 9664 0 pl2303 18628 0 usbserial 28296 2 option,pl2303 Problem is, if option is before pl2303, the device won't work properly. So my question is: who decides which is loaded first, or, why does lsmod give different order? Thanks a lot!
On Wed, May 11, 2011 at 09:00:30AM +0100, Simon Leung wrote:
Hi all,
This is a question that arose from a older kernel ( 2.6.21 ) but I think it's generic to all kernels. Actually this might not a question on the kernel itself at all. So here it goes,
I'm using a USB 3G modem with this kernel. The system loads three modules for it: pl2303, option and usbserial. Problem is, it looks like the order or loading is different ( I'm judging this by the order they appear in lsmod output):
Sometimes, lsmod says: pl2303 18628 0 option 9664 0 usbserial 28296 2 pl2303,option
And sometimes, it says: option 9664 0 pl2303 18628 0 usbserial 28296 2 option,pl2303
Problem is, if option is before pl2303, the device won't work properly. So my question is: who decides which is loaded first, or, why does lsmod give different order?
It's random and there is no way to specify the order unless you make one module a dependancy of the other. And for these modules, they should not be dependant on each other, so you can't do that. To fix this, you need to add a quirk to keep the option module from binding to the device, please send the information to the linux-usb@vger.kernel.org about this device and we will fix the drivers. thanks, greg k-h
participants (2)
-
Greg KH -
Simon Leung