1. 06 2月, 2016 1 次提交
  2. 18 11月, 2015 1 次提交
  3. 04 3月, 2015 1 次提交
  4. 16 7月, 2014 1 次提交
    • T
      net: set name_assign_type in alloc_netdev() · c835a677
      Tom Gundersen 提交于
      Extend alloc_netdev{,_mq{,s}}() to take name_assign_type as argument, and convert
      all users to pass NET_NAME_UNKNOWN.
      
      Coccinelle patch:
      
      @@
      expression sizeof_priv, name, setup, txqs, rxqs, count;
      @@
      
      (
      -alloc_netdev_mqs(sizeof_priv, name, setup, txqs, rxqs)
      +alloc_netdev_mqs(sizeof_priv, name, NET_NAME_UNKNOWN, setup, txqs, rxqs)
      |
      -alloc_netdev_mq(sizeof_priv, name, setup, count)
      +alloc_netdev_mq(sizeof_priv, name, NET_NAME_UNKNOWN, setup, count)
      |
      -alloc_netdev(sizeof_priv, name, setup)
      +alloc_netdev(sizeof_priv, name, NET_NAME_UNKNOWN, setup)
      )
      
      v9: move comments here from the wrong commit
      Signed-off-by: NTom Gundersen <teg@jklm.no>
      Reviewed-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c835a677
  5. 12 9月, 2012 1 次提交
  6. 03 8月, 2012 1 次提交
    • D
      libertas: don't reset card on error when it is being removed · 9d5d496c
      Daniel Drake 提交于
      On an OLPC XO-1.5 we have seen the following situation:
       - the system starts going into suspend
       - no wake params are set, so the mmc layer removes the card
       - during remove, we send a command to the card
       - that command fails, causing if_sdio's reset method to try and remove
         the mmc card in attempt to reset it
       - the mmc layer is not happy about being asked to remove a card that
         it is already removing, and the kernel crashes
      
      While the MMC layer could possibly be taught to behave better here,
      it also seems sensible for libertas not to try and reset a card if
      we're in the process of removing it anyway.
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9d5d496c
  7. 18 7月, 2012 1 次提交
  8. 18 4月, 2012 3 次提交
  9. 13 4月, 2012 1 次提交
  10. 03 11月, 2011 1 次提交
    • A
      libertas: ensure we clean up a scan request properly · 3209e061
      Andres Salomon 提交于
      Commit 2e30168b ("libertas: terminate scan when stopping interface")
      adds cleanup code to lbs_eth_stop to call cfg80211_scan_done if there's
      an outstanding cfg80211_scan_request.  However, it assumes that the
      scan request was allocated via the cfg80211 stack.  Libertas has
      its own internal allocation method, kept track of with
      priv->internal_scan.  This doesn't set scan_req->wiphy, amongst other
      things, which results in hitting a BUG() when we call cfg80211_scan_done
      on the request.
      
      This provides a function to take care of the low-level scan_req cleanup
      details.  We simply call that to deal with finishing up scan requests.
      
      The bug we were hitting was:
      
      [  964.321495] kernel BUG at net/wireless/core.h:87!
      [  964.329970] Unable to handle kernel NULL pointer dereference at virtual address 00000000
      [  964.341963] pgd = dcf80000
      ...
      [  964.849998] 9fe0: 00000000 beb417b8 4018e280 401e822c 60000010 00000004 00000000 00000000
      [  964.865007] [<c003104c>] (__bug+0x1c/0x28) from [<c0384ffc>] (cfg80211_scan_done+0x54/0x6c)
      [  964.895324] [<c0384ffc>] (cfg80211_scan_done+0x54/0x6c) from [<bf028bac>] (lbs_eth_stop+0x10c/0x188 [libertas])
      [  964.895324] [<bf028bac>] (lbs_eth_stop+0x10c/0x188 [libertas]) from [<c03002a0>] (__dev_close_many+0x94/0xc4)
      [  964.918995] [<c03002a0>] (__dev_close_many+0x94/0xc4) from [<c030037c>] (dev_close_many+0x78/0xe0)
      Signed-off-by: NAndres Salomon <dilinger@queued.net>
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3209e061
  11. 01 11月, 2011 1 次提交
  12. 15 10月, 2011 1 次提交
  13. 04 10月, 2011 1 次提交
    • D
      libertas: detect TX lockups and reset hardware · 8f641d93
      Daniel Drake 提交于
      Recent patches added support for resetting the SD8686 hardware when
      commands time out, which seems to happen quite frequently soon after
      resuming the system from a Wake-on-WLAN-triggered resume.
      
      At http://dev.laptop.org/ticket/10969 we see the same thing happen
      with transmits. In this case, the hardware will fail to respond to
      a frame passed for transmission, and libertas (correctly) will block
      all further commands and transmissions as the hardware can only
      deal with one thing at a time. This results in a lockup while the
      system waits indefinitely for the dead card to respond.
      
      Hook up a TX lockup timer to detect this and reset the hardware.
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8f641d93
  14. 18 8月, 2011 1 次提交
  15. 10 8月, 2011 1 次提交
    • D
      libertas: disable functionality when interface is down · d2e7b342
      Daniel Drake 提交于
      Modify the driver so that it does not function when the interface is
      down, in preparation for runtime power management.
      
      No commands can be run while the interface is down, so the ndo_dev_stop
      routine now directly does all necessary work (including asking the device
      to disconnect from the network and disabling multicast functionality)
      directly.
      
      power_save and power_restore hooks are added meaning that card drivers
      can take steps to turn the device off when the interface is down.
      
      The MAC address can now only be changed when all interfaces are down;
      the new address will be programmed when an interface gets brought up.
      This matches mac80211 behaviour.
      
      Also, some small cleanups/simplifications were made in the surrounding
      device handling logic.
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d2e7b342
  16. 09 8月, 2011 1 次提交
  17. 21 7月, 2011 1 次提交
  18. 12 7月, 2011 1 次提交
    • D
      libertas: fix handling of command timeout, completion and interruption · df90d843
      Daniel Drake 提交于
      When commands time out, corruption ensues. As lbs_complete_command()
      is called without locking, the command node is mistakenly freed twice.
      Also fixed up locking here in a few other places.
      
      The nature of command timeout may be that the card didn't even
      acknowledge receipt of the request. Detect this case and reset dnld_sent
      so that other commands don't hang forever.
      
      When cmdnodes are moved between the free list and the pending list,
      their list heads should be reinitialized. Fixed this.
      
      Sometimes commands are completed without actually submitting them or
      removing them from cmdpendingq. We must remember to remove them from
      cmdpendingq in these cases, so handle this in lbs_complete_command().
      
      Harmless signals generated during suspend/resume were interrupting
      lbs_cmd. Convert to an uninterruptible sleep to avoid this.
      
      lbs_thread must be woken up every time there is some new work to do.
      I found that when 2 commands are queued, ther completion of the first
      command would not wake up lbs_thread to submit the second. Poke lbs_thread
      at the end of lbs_complete_command() to fix this.
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      df90d843
  19. 07 6月, 2011 1 次提交
  20. 12 5月, 2011 3 次提交
  21. 06 5月, 2011 1 次提交
    • D
      libertas: remove tx_timeout handler · 7e4b4eec
      Daniel Drake 提交于
      As described at http://marc.info/?l=linux-netdev&m=130428493104730&w=2
      libertas frequently generates spurious tx timeouts, because the tx
      queue is brought down for extended periods during scanning. The net
      layer takes a look and incorrectly assumes the queue has been down for
      several seconds, and generates a tx_timeout.
      
      One way to fix this is to bump the trans_start counter while scanning
      so that the network layer knows that the device is still alive, but
      I think the tx_timeout handler is implemented wrongly here and not of
      any real use, so I vote to remove it.
      
      As explained at http://marc.info/?l=linux-wireless&m=130430311115755&w=2
      the watchdog is primarily meant to deal with lockup on the hardware TX
      path (detected by the tx queue being stopped for an extended period of
      time), but this is unlikely to happen with libertas. In this case, the tx
      queue is stopped only while waiting for lbs_thread to send the queued frame
      to the driver, and lbs_thread wakes up the queue immediately after, even
      if the frame could not be sent correctly.
      
      So, the only hardware-related possibility that this catches is if
      hw_host_to_card hangs - this is something I have never seen. And if it
      were to happen, nothing done by lbs_tx_timeout would actually wake up
      lbs_thread any quicker than otherwise.
      
      Removing this oddly-behaving spuriously-firing tx_timeout handler should
      fix an occasional kernel crash during resume
      (http://dev.laptop.org/ticket/10748)
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7e4b4eec
  22. 29 4月, 2011 1 次提交
  23. 04 2月, 2011 1 次提交
  24. 30 11月, 2010 1 次提交
  25. 17 11月, 2010 1 次提交
  26. 09 11月, 2010 1 次提交
  27. 17 8月, 2010 1 次提交
    • D
      libertas: add two-stage firmware request helper · 72f7a667
      Dan Williams 提交于
      SDIO, GSPI, and CS all use 2-stage firmware and the loading
      process and logic should be the same.  Allow module parameters
      to override the automatic firmware choice, otherwise just walk
      the bus driver's firmware table and pick out the first firmware
      pair that exists for the given model.
      
      Some special care is taken to allow overriding of just the helper
      or the main firmware, but let the other of the pair be chosen
      automatically.
      Signed-off-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      72f7a667
  28. 06 8月, 2010 1 次提交
  29. 28 7月, 2010 4 次提交
  30. 13 7月, 2010 1 次提交
  31. 24 6月, 2010 3 次提交