From mboxrd@z Thu Jan 1 00:00:00 1970 From: greg@kroah.com (Greg KH) Date: Wed, 11 May 2011 06:41:17 -0700 Subject: module loading order In-Reply-To: <4DCA421E.5080304@gmx.com> References: <4DCA421E.5080304@gmx.com> Message-ID: <20110511134117.GA12695@kroah.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org 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 at vger.kernel.org about this device and we will fix the drivers. thanks, greg k-h