1. 17 5月, 2014 4 次提交
  2. 14 5月, 2014 1 次提交
    • B
      net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions · 50a0ffaf
      Bjørn Mork 提交于
      The NCM class match in the cdc_mbim driver is confusing and
      cause unexpected behaviour. The USB core guarantees that a
      USB interface is in altsetting 0 when probing starts. This
      means that devices implementing a NCM 1.0 backwards
      compatible MBIM function (a "NCM/MBIM function") always hit
      the NCM entry in the cdc_mbim driver match table. Such
      functions will never match any of the MBIM entries.
      
      This causes unexpeced behaviour for cases where the NCM and
      MBIM entries are differet, which is currently the case for
      all except Ericsson devices.
      
      Improve the probing of NCM/MBIM functions by looking up the
      device again in the cdc_mbim match table after switching to
      the MBIM identity.
      
      The shared altsetting selection is updated to better
      accommodate the new probing logic, returning the preferred
      altsetting for the control interface instead of the data
      interface. The control interface altsetting update is moved
      to the cdc_mbim driver. It is never necessary to change the
      control interface altsetting for NCM.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Reported by: Yu-an Shih <yshih@nvidia.com>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      50a0ffaf
  3. 06 5月, 2014 1 次提交
    • B
      net: cdc_ncm: fix buffer overflow · 9becd707
      Bjørn Mork 提交于
      Commit 4d619f62 ("net: cdc_ncm: no point in filling up the NTBs
      if we send ZLPs") changed the padding logic for devices with the ZLP
      flag set.  This meant that frames of any size will be sent without
      additional padding, except for the single byte added if the size is
      a multiple of the USB packet size. But if the unpadded size is
      identical to the maximum frame size, and the maximum size is a
      multiplum of the USB packet size, then this one-byte padding will
      overflow the buffer.
      
      Prevent padding if already at maximum frame size, letting usbnet
      transmit a ZLP instead in this case.
      
      Fixes: 4d619f62 ("net: cdc_ncm: no point in filling up the NTBs if we send ZLPs")
      Reported by: Yu-an Shih <yshih@nvidia.com>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9becd707
  4. 21 3月, 2014 1 次提交
    • B
      net: cdc_ncm: respect operator preferred MTU reported by MBIM · 259fef03
      Ben Chan 提交于
      According to "Universal Serial Bus Communications Class Subclass
      Specification for Mobile Broadband Interface Model, Revision 1.0,
      Errata-1" published by USB-IF, the wMTU field of the MBIM extended
      functional descriptor indicates the operator preferred MTU for IP data
      streams.
      
      This patch modifies cdc_ncm_setup to ensure that the MTU value set on
      the usbnet device does not exceed the operator preferred MTU indicated
      by wMTU if the MBIM device exposes a MBIM extended functional
      descriptor.
      Signed-off-by: NBen Chan <benchan@chromium.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      259fef03
  5. 19 3月, 2014 1 次提交
  6. 17 1月, 2014 1 次提交
  7. 14 11月, 2013 1 次提交
  8. 06 11月, 2013 2 次提交
  9. 02 11月, 2013 22 次提交
  10. 12 4月, 2013 1 次提交
  11. 09 4月, 2013 1 次提交
  12. 31 3月, 2013 1 次提交
  13. 17 3月, 2013 1 次提交
  14. 28 2月, 2013 1 次提交
  15. 15 2月, 2013 1 次提交
    • B
      net: cdc_ncm: fix probing of devices with multiple control interface altsettings · f350ca03
      Bjørn Mork 提交于
      commit bd329e12 ("net: cdc_ncm: do not bind to NCM compatible MBIM devices")
      added a test for a CDC MBIM altsetting, implementing the cdc_ncm part of
      MBIM backward compatibility support.  This intentionally made the driver
      behave differently for CDC NCM devices with 2 alternate settings for the
      Communication interface, depending on whether or not CONFIG_USB_NET_CDC_MBIM
      was enabled.  This is correct iff alternate setting #1 really *is* a MBIM
      setting.  If not, then NCM probing will use a different altsetting than before,
      possibly causing probing failures depending on CONFIG_USB_NET_CDC_MBIM.
      
      Fix by setting the altsetting back to default after the test, restoring the
      previous behaviour for non MBIM devices.
      
      This bug causes probing of Huawei E3276 devices to fail when the MBIM driver
      is enabled, because these devices have a second alternate setting with no CDC
      functional descriptors.
      
      Cc: Greg Suarez <gsuarez@smithmicro.com>
      Cc: Alexey Orishko <alexey.orishko@stericsson.com>
      Reported-and-tested-by: NJonathan A. <yo.natan@hotmail.com>
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f350ca03