Bug 54791

Summary: CDC MBIM support breaks mobile broadband on Lenovo Thinkpad X1
Product: Drivers Reporter: Tommi Kyntola (tommi.kyntola)
Component: network-wirelessAssignee: Bjørn Mork (bjorn)
Status: RESOLVED CODE_FIX    
Severity: normal CC: bjorn, florian, tommi.kyntola
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.8.x Subsystem:
Regression: No Bisected commit-id:

Description Tommi Kyntola 2013-03-04 20:12:20 UTC
The mobile broadband worked ok with 3.7.x and 3.6.x, but if I enable the CDC MBIM module it no longer works. Setting the CONFIG_USB_NET_CDC_MBIM=n makes it work again. At least Fedora 18 now ships 3.8.1 with this module enabled and luckily/unluckily I answered it m during my oldconfig.

How reproducible:
very, happens every time

Steps to reproduce:
1) try to bring up a network connection

Actual results:
Interface wwan0 is brought up but it doesn't get an IP. all I see in tcpdump are some DCHP queries without an answer.

The device in question:
Bus 003 Device 018: ID 0bdb:1926 Ericsson Business Mobile Networks BV

Additional information>
System is a fully updated Fedora 18 running on Lenovo Thinkpad X1.
I tried mainline 3.8.2 with CDC NCM and CDC MBIM both as modules, didn't work.
I disabled the new CDC MBIM and it works again.
I tried the latest fedora kernel 3.8.1-201.fc18.x86_64, didn't work.
Older fedora and mainline kernels worked ok.
Comment 1 Bjørn Mork 2013-03-14 09:28:07 UTC
Yes, this problem is known and I have a proposed hackish solution/workaround here:
http://www.spinics.net/lists/linux-usb/msg81577.html

It's not beautiful and I was really hoping for some feedback saying "That's stupid, why don't you just <fill in obvious and simple solution here>".  But it seems I won't get any...

The current situation is of course unacceptable, so I guess I'll just have to submit that patch formally if nothing else comes up.  You should be able to choose either cdc_ncm or cdc_mbim for devices like this one, implementing both protocols as different altsettings on the same interface.
Comment 2 Florian Mickler 2013-03-24 10:21:40 UTC
A patch referencing this bug report has been merged in Linux v3.9-rc4:

commit 1e8bbe6cd02fc300c88bd48244ce61ad9c7d1776
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Mar 14 01:05:13 2013 +0000

    net: cdc_ncm, cdc_mbim: allow user to prefer NCM for backwards compatibility
Comment 3 Tommi Kyntola 2013-03-25 10:10:54 UTC
I tried it against v3.8.4 after I noticed gkh had accepted it into stable, too. And indeed that fixes the regression.
Comment 4 Tommi Kyntola 2013-04-03 11:17:44 UTC
For the record, the module parameter still needs to be set to false for the old behaviour to be maintained, e.g. something like
options cdc_ncm prefer_mbim=N
to /etc/modprobe.d/cdc_ncm.conf will do the trick.