On Fri, 2013-03-15 at 08:02 +0100, Bjørn Mork wrote: > Ben Hutchings <ben@xxxxxxxxxxxxxxx> writes: > > > On Thu, 2013-03-14 at 12:05 +0100, Bjørn Mork wrote: > >> commit bd329e1 ("net: cdc_ncm: do not bind to NCM compatible MBIM devices") > >> introduced a new policy, preferring MBIM for dual NCM/MBIM functions if > >> the cdc_mbim driver was enabled. This caused a regression for users > >> wanting to use NCM. > >> > >> Devices implementing NCM backwards compatibility according to section > >> 3.2 of the MBIM v1.0 specification allow either NCM or MBIM on a single > >> USB function, using different altsettings. The cdc_ncm and cdc_mbim > >> drivers will both probe such functions, and must agree on a common > >> policy for selecting either MBIM or NCM. Until now, this policy has > >> been set at build time based on CONFIG_USB_NET_CDC_MBIM. > >> > >> Use a module parameter to set the system policy at runtime, allowing the > >> user to prefer NCM on systems with the cdc_mbim driver. > >> > >> Cc: Greg Suarez <gsuarez@xxxxxxxxxxxxxx> > >> Cc: Alexey Orishko <alexey.orishko@xxxxxxxxxxxxxx> > >> Reported-by: Geir Haatveit <nospam@xxxxxxxxxxx> > >> Reported-by: Tommi Kyntola <kynde@xxxxxxxxx> > >> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=54791 > >> Signed-off-by: Bjørn Mork <bjorn@xxxxxxx> > >> --- > >> > >> We now have two users independently reporting this as a 3.8 regression, > >> so something needs to be done. I am not sure if adding a new module > >> parameter is acceptable for stable, but this problem is definitely a > >> regression and no other solutions came up in response to my RFC. > >> > >> The only real alternative I see for stable, is disabling MBIM support > >> on any dual NCM/MBIM function. Which of course will be a regression > >> for any user wanting MBIM, making it unacceptable. > > [...] > > > > It definitely makes sense for this to be a run-time parameter. And the > > default seems correct for custom kernels. > > > > For a distribution kernel - at least for Debian, where we can't assume > > kernel and userland are always updated together - I think the > > compile-time default should be false, and the userland package > > (presumably ModemManager?) can install a modprobe.conf file to override > > that once it can handle MBIM. We handled KMS transitions in a similar > > way. I don't know that it's worth having a Kconfig option for that, > > though. > > We could consider always defaulting to NCM. That would remove the > ugliest parts of the code as well. Should I send a new version with > such a change? We could, but I fear that would annoy people building custom kernels. > Bundling a modprobe.conf file to enable MBIM with userland tools > supporting it is a great idea, and sounds feasible for custom built > systems as well. Using unpatched Linux & ModemManager (or other userland) needs to just work. So if Linux is going to have MBIM disabled by default then upstream ModemManager needs to ship and install that modprobe.conf file. > (BTW, if there is any doubt about it, I feel really bad about my recent > request to enable MBIM in Debian, where I wrote "enabling the driver > will not prevent any existing solution from working.". At the time, I > had not seen any of these dual NCM/MBIM functions and I just didn't > think about the problems such devices would run into. Sorry about > that. I guess I owe you one more...) It's called experimental for a reason. :-) Ben. -- Ben Hutchings It is easier to change the specification to fit the program than vice versa.
Attachment:
signature.asc
Description: This is a digitally signed message part