Jon, Kay, anyone? Should Intel just proceed with their kernel patch and not worry about the 'modprobe -r' complications, as Michal Marek suggested?
John On Fri, Apr 20, 2012 at 02:41:57PM +0000, Fry, Donald H wrote: > Today we have wifi devices with stuff implemented in hardware and other > things done in microcode. For example the 6205 device. Today we do modprobe > iwlwifi to install and modprobe iwlwifi -r to remove the module. > > 'Tomorrow' we use the same hardware but with a different microcode file which > changes the driver quite a bit. The PCI device/vendor id's are the same > since the hardware has not changed, however the kernel driver is new. > > We would like to shield the users from having to know the details of our > driver and make things look pretty much like they do today. What we have > been testing, and have done a lot of code refactoring to clean the driver up > in preparation for this change is the following: > > The base/core/common functionality is still called iwlwifi which interacts > with the hardware. On modprobe, the driver tries to find a microcode file to > run based on the device/vendor id/sub-id. While parsing the microcode file, > it will indicate which software API it supports, which will indicate which > specific module to use, module A (old) or module B (new). This way the user > still uses modprobe iwlwifi to install, and iwlwifi will request the > appropriate specific module to make the hardware function. > > However, since module A (for example) requires iwlwifi, an attempt to > modprobe iwlwifi -r results in a message that iwlwifi is still in use. > Module A must be removed first followed by iwlwifi, etc. While this may be > obvious from looking at lsmod for a kernel developer, it is not obvious for > most users. While trying to provide a user friendly way to accomplish this, > I found the .conf files described in /etc/modprobe.d. This is one way to > hide the details of what we are doing, and allow most users to continue to > install with modprobe iwlwifi and remove with modprobe iwlwifi -r. > > If there is a better way to do this, I am very open to suggestions. If this > is an acceptable solution, how do we get the iwlwifi.conf file out to the > distros and user community before or at the same time as this new change so > we do not break things? > > Thanks, > Don > > -----Original Message----- > From: John W. Linville [mailto:[email protected]] > Sent: Friday, April 20, 2012 7:09 AM > To: Fry, Donald H > Cc: [email protected]; [email protected]; [email protected]; > [email protected] > Subject: Re: question on non-kernel patch > > On Thu, Apr 19, 2012 at 01:56:00PM -0700, Don Fry wrote: > > Hi John, > > We have a change to the iwlwifi driver for the near future which will > > dynamically load a different module based on the version of microcode > > installed on the system. The driver does a request_module_nowait > > after obtaining the firmware file loaded as part of modprobe. This > > all works fine, however unloading the module is not > > symmetrical/straight forward. > > It looks like there are capabilities already implemented to make this > > easy. If I put the following script into /etc/modprobe.d then > > modprobe iwlwifi-r will do the right thing. > > It is backward compatible with the current iwlwifi driver. > > How do I get this out in the community before we submit the patch that > > would break iwlwifi removal? > > > > Thanks, > > Don > > > > > > # /etc/modprobe.d/iwlwifi.conf > > # iwlwifi will dyamically load either iwldvm or iwlmvm depending on > > the # microcode file installed on the system. When removing iwlwifi, > > first # remove the iwl?vm module and then iwlwifi. > > remove iwlwifi \ > > (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs > > /sbin/rmmod) \ && /sbin/modprobe -r mac80211 > > Honestly, I'm not entirely sure -- this seems like a peculiar situation. Can > you go into more detail about why this seems necessary? > > John > -- > John W. Linville Someday the world will need a hero, and you > [email protected] might be all we have. Be ready. > -- John W. Linville Someday the world will need a hero, and you [email protected] might be all we have. Be ready. -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
