1. 14 1月, 2014 2 次提交
    • L
      b43: Fix unload oops if firmware is not available · 0673effd
      Larry Finger 提交于
      The asyncronous firmware load uses a completion struct to hold firmware
      processing until the user-space routines are up and running. There is.
      however, a problem in that the waiter is nevered canceled during teardown.
      As a result, unloading the driver when firmware is not available causes an oops.
      
      To be able to access the completion structure at teardown, it had to be moved
      into the b43_wldev structure.
      
      This patch also fixes a typo in a comment.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0673effd
    • L
      b43: Fix lockdep splat · 09164043
      Larry Finger 提交于
      In https://bugzilla.kernel.org/show_bug.cgi?id=67561, a locking dependency is reported
      when b43 is used with hostapd, and rfkill is used to kill the radio output.
      
      The lockdep splat (in part) is as follows:
      
      ======================================================
      [ INFO: possible circular locking dependency detected ]
      3.12.0 #1 Not tainted
      -------------------------------------------------------
      rfkill/10040 is trying to acquire lock:
       (rtnl_mutex){+.+.+.}, at: [<ffffffff8146f282>] rtnl_lock+0x12/0x20
      
      but task is already holding lock:
       (rfkill_global_mutex){+.+.+.}, at: [<ffffffffa04832ca>] rfkill_fop_write+0x6a/0x170 [rfkill]
      
      --snip--
      
      Chain exists of:
        rtnl_mutex --> misc_mtx --> rfkill_global_mutex
      
      The fix is to move the initialization of the hardware random number generator
      outside the code range covered by the rtnl_mutex.
      Reported-by: Nyury <urykhy@gmail.com>
      Tested-by: Nyury <urykhy@gmail.com>
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      09164043
  2. 19 10月, 2013 1 次提交
  3. 03 10月, 2013 1 次提交
  4. 22 9月, 2013 1 次提交
  5. 30 8月, 2013 1 次提交
  6. 27 8月, 2013 1 次提交
  7. 28 6月, 2013 1 次提交
  8. 13 6月, 2013 2 次提交
  9. 12 6月, 2013 1 次提交
  10. 09 5月, 2013 1 次提交
  11. 23 4月, 2013 21 次提交
  12. 13 4月, 2013 1 次提交
  13. 10 4月, 2013 1 次提交
  14. 02 4月, 2013 2 次提交
  15. 28 3月, 2013 1 次提交
  16. 27 3月, 2013 2 次提交
    • R
      b43: N-PHY: use more bits for offset in RSSI calibration · 2e1253d6
      Rafał Miłecki 提交于
      When calculating "offset" for final RSSI calibration we're using numbers
      bigger than s8 can hold. We have for example:
      offset[j] = 232 - poll_results[j];
      formula. If poll_results[j] is small enough (it usually is) we treat
      number's bit as a sign bit. For example 232 - 1 becomes:
      0xE8 - 0x1 = 0xE7, which is not 231 but -25.
      
      This code was introduced in e0c9a021
      and caused stability regression on some cards, for ex. BCM4322.
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2e1253d6
    • I
      b43: A fix for DMA transmission sequence errors · b251412d
      Iestyn C. Elfick 提交于
      Intermittently, b43 will report "Out of order TX status report on DMA ring".
      When this happens, the driver must be reset before communication can resume.
      The cause of the problem is believed to be an error in the closed-source
      firmware; however, all versions of the firmware are affected.
      
      This change uses the observation that the expected status is always 2 less
      than the observed value, and supplies a fake status report to skip one
      header/data pair.
      
      Not all devices suffer from this problem, but it can occur several times
      per second under heavy load. As each occurence kills the unmodified driver,
      this patch makes if possible for the affected devices to function. The patch
      logs only the first instance of the reset operation to prevent spamming
      the logs.
      Tested-by: NChris Vine <chris@cvine.freeserve.co.uk>
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b251412d