1. 16 5月, 2012 1 次提交
    • M
      usbnet: fix skb traversing races during unlink(v2) · 5b6e9bcd
      Ming Lei 提交于
      Commit 4231d47e(net/usbnet: avoid
      recursive locking in usbnet_stop()) fixes the recursive locking
      problem by releasing the skb queue lock before unlink, but may
      cause skb traversing races:
      	- after URB is unlinked and the queue lock is released,
      	the refered skb and skb->next may be moved to done queue,
      	even be released
      	- in skb_queue_walk_safe, the next skb is still obtained
      	by next pointer of the last skb
      	- so maybe trigger oops or other problems
      
      This patch extends the usage of entry->state to describe 'start_unlink'
      state, so always holding the queue(rx/tx) lock to change the state if
      the referd skb is in rx or tx queue because we need to know if the
      refered urb has been started unlinking in unlink_urbs.
      
      The other part of this patch is based on Huajun's patch:
      always traverse from head of the tx/rx queue to get skb which is
      to be unlinked but not been started unlinking.
      Signed-off-by: NHuajun Li <huajun.li.lee@gmail.com>
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Cc: Oliver Neukum <oneukum@suse.de>
      Cc: stable@kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5b6e9bcd
  2. 29 4月, 2011 1 次提交
  3. 14 4月, 2011 1 次提交
  4. 02 4月, 2011 1 次提交
    • A
      usbnet: use eth%d name for known ethernet devices · c261344d
      Arnd Bergmann 提交于
      The documentation for the USB ethernet devices suggests that
      only some devices are supposed to use usb0 as the network interface
      name instead of eth0. The logic used there, and documented in
      Kconfig for CDC is that eth0 will be used when the mac address
      is a globally assigned one, but usb0 is used for the locally
      managed range that is typically used on point-to-point links.
      
      Unfortunately, this has caused a lot of pain on the smsc95xx
      device that is used on the popular pandaboard without an
      EEPROM to store the MAC address, which causes the driver to
      call random_ether_address().
      
      Obviously, there should be a proper MAC addressed assigned to
      the device, and discussions are ongoing about how to solve
      this, but this patch at least makes sure that the default
      interface naming gets a little saner and matches what the
      user can expect based on the documentation, including for
      new devices.
      
      The approach taken here is to flag whether a device might be a
      point-to-point link with the new FLAG_POINTTOPOINT setting in
      the usbnet driver_info. A driver can set both FLAG_POINTTOPOINT
      and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one
      of the two.  The usbnet framework only looks at the MAC address
      for device naming if both flags are set, otherwise it trusts the
      flag.
      Signed-off-by: NArnd Bergmann <arnd.bergmann@linaro.org>
      Tested-by: NAndy Green <andy.green@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c261344d
  5. 30 3月, 2011 1 次提交
    • A
      net/usb: Ethernet quirks for the LG-VL600 4G modem · 7a635ea9
      Andrzej Zaborowski 提交于
      This adds a driver for the CDC Ethernet part of this modem.  The
      device's ID is blacklisted in cdc_ether.c and is white-listed in
      this new driver because of the quirks needed to make it useful.
      The modem's firmware exposes a CDC ACM port for modem control and a
      CDC Ethernet port for network data.  The descriptors look fine but
      both ports actually are some sort of multiplexers requiring non-
      standard headers added/removed from every packet or they get
      ignored.  All information is based on a usb traffic log from a
      Windows machine.
      
      On the Verizon 4G network I've seen speeds up to 1.1MB/s so far with
      this driver, a speed-o-meter site reports 16.2Mbps/10.5Mbps.
      Userspace scripts are required to talk to the CDC ACM port.
      Signed-off-by: NAndrzej Zaborowski <balrogg@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7a635ea9
  6. 07 12月, 2010 1 次提交
  7. 21 5月, 2010 1 次提交
  8. 18 2月, 2010 1 次提交
  9. 04 12月, 2009 1 次提交
  10. 11 11月, 2009 1 次提交
  11. 05 10月, 2009 1 次提交
  12. 23 9月, 2009 1 次提交
    • S
      smsc95xx: fix transmission where ZLP is expected · ec475623
      Steve Glendinning 提交于
      Usbnet framework assumes USB hardware doesn't handle zero length
      packets, but SMSC LAN95xx requires these to be sent for correct
      operation.
      
      This patch fixes an easily reproducible tx lockup when sending a frame
      that results in exactly 512 bytes in a USB transmission (e.g. a UDP
      frame with 458 data bytes, due to IP headers and our USB headers).  It
      adds an extra flag to usbnet for the hardware driver to indicate that
      it can handle and requires the zero length packets.
      
      This patch should not affect other usbnet users, please also consider
      for -stable.
      Signed-off-by: NSteve Glendinning <steve.glendinning@smsc.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec475623
  13. 01 9月, 2009 1 次提交
  14. 14 8月, 2009 1 次提交
  15. 05 8月, 2009 2 次提交
  16. 11 7月, 2009 1 次提交
  17. 01 7月, 2009 1 次提交
  18. 21 4月, 2009 1 次提交
  19. 22 3月, 2009 1 次提交
  20. 22 1月, 2009 1 次提交
  21. 25 4月, 2008 1 次提交
  22. 01 2月, 2008 5 次提交
  23. 11 10月, 2007 1 次提交
  24. 09 7月, 2007 1 次提交
  25. 23 5月, 2007 1 次提交
  26. 10 5月, 2007 1 次提交
  27. 09 5月, 2007 1 次提交
  28. 28 4月, 2007 1 次提交
  29. 18 10月, 2006 2 次提交
  30. 28 9月, 2006 1 次提交
  31. 28 10月, 2005 1 次提交
  32. 09 9月, 2005 3 次提交
    • D
      [PATCH] USB: usbnet (6/9) module for Zaurii and compatibles · 0aa599c5
      David Brownell 提交于
      This moves usbnet support for Zaurus and compatibles into its own module.
      Other than exporting a couple of helper functions, this just involved
      shuffling some code and updating the comments.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0aa599c5
    • D
      [PATCH] USB: usbnet (3/9) module for ASIX Ethernet adapters · 2e55cc72
      David Brownell 提交于
      This patch moves the ASIX AX8817x driver into its own file, just using
      the "usbnet" infrastructure as a utility library.
      
       - As with "cdc_subset" this involved minor Kconfig/kbuild tweaks,
         moving code from one file to another, and exporting a few functions.
      
       - This includes updates from Jamie Painter to add (and use) a new hook
         to handle the different maximum transfer sizes for rx and tx sides.
      
       - Also from Jamie, some bugfixes:
          * MDIO byteorder (to address some PPC media negotiation problems);
          * Force alignment at key spots when using ax88772 framing (on some
            embedded hardware, the network stack will break otherwise);
          * Address some link reset problems.
      
      It also makes this driver use the standard (5 seconds vs half second)
      control timeouts used elsewhere in USB; and wraps a few lines before
      the 80th column (which previously needed it).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      2e55cc72
    • D
      [PATCH] USB: usbnet (2/9) module for simple network links · 38bde1d4
      David Brownell 提交于
      This patch creates the first of several separate "minidriver" modules
      for "usbnet".  This one handles only the very simplest hardware, which
      can be handled almost entirely by the "usbnet" core.
      
          - Move device-specific bits into new "cdc_subset.c" driver,
            shrinking "usbnet" by a bunch;
      
          - Export the functions needed to support this minidriver
            (with EXPORT_SYMBOL_GPL);
      
          - Update Kconfig and kbuild accordingly.
      
      This one handles about a dozen different device types, with the most
      notable ones being Gumstix and most Linux-based PDAs (except Zaurus
      running that ancient code from Sharp).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      38bde1d4