1. 24 Aug, 2017 1 commit
    • Luca Coelho's avatar
      iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc() · 10a54d81
      Luca Coelho authored
      Work queues cannot be allocated when a mutex is held because the mutex
      may be in use and that would make it sleep.  Doing so generates the
      following splat with 4.13+:
      
      [   19.513298] ======================================================
      [   19.513429] WARNING: possible circular locking dependency detected
      [   19.513557] 4.13.0-rc5+ #6 Not tainted
      [   19.513638] ------------------------------------------------------
      [   19.513767] cpuhp/0/12 is trying to acquire lock:
      [   19.513867]  (&tz->lock){+.+.+.}, at: [<ffffffff924afebb>] thermal_zone_get_temp+0x5b/0xb0
      [   19.514047]
      [   19.514047] but task is already holding lock:
      [   19.514166]  (cpuhp_state){+.+.+.}, at: [<ffffffff91cc4baa>] cpuhp_thread_fun+0x3a/0x210
      [   19.514338]
      [   19.514338] which lock already depends on the new lock.
      
      This lock dependency already existed with previous kernel versions,
      but it was not detected until commit 49dfe2a6 ("cpuhotplug: Link
      lock stacks for hotplug callbacks") was introduced.
      Reported-by: default avatarDavid Weinehall <david.weinehall@intel.com>
      Reported-by: default avatarJiri Kosina <jikos@kernel.org>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      10a54d81
  2. 14 Aug, 2017 1 commit
  3. 09 Aug, 2017 5 commits
    • Kalle Valo's avatar
      Merge tag 'iwlwifi-for-kalle-2018-08-09' of... · 9d6b9b8d
      Kalle Valo authored
      Merge tag 'iwlwifi-for-kalle-2018-08-09' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
      
      Some more fixes for 4.13
      
      * Fix a memory leak in the SAR code;
      * Fix a stuck queue case in AP mode;
      * Convert a WARN to a simple debug in a legitimate race case (from
        which we can recover);
      * Fix a severe throughput aggregation on 9000-family devices due to
        aggregation issues.
      9d6b9b8d
    • Naftali Goldstein's avatar
      iwlwifi: mvm: send delba upon rx ba session timeout · 20fc690f
      Naftali Goldstein authored
      When an RX block-ack session times out, the firmware, which offloads
      RX reordering but not the BA session negotiation, stops the session
      but doesn't send a DELBA.  This causes the the session to remain
      active in the remote device, so no more BA sessions will be
      established, causing a severe throughput degradation due to the lack
      of aggregation.
      
      Use the new ieee80211_rx_ba_timer_expired API when the ba session timer
      expires, since this will tear down the ba session and also send a delba.
      
      The previous API used is intended for drivers that offload the
      addba/delba negotiation, but not the rx reordering, while our driver
      does the opposite.
      
      This patch depends on "mac80211: add api to start ba session timer
      expired flow".
      Signed-off-by: default avatarNaftali Goldstein <naftali.goldstein@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      20fc690f
    • Naftali Goldstein's avatar
      mac80211: add api to start ba session timer expired flow · 04c2cf34
      Naftali Goldstein authored
      Some drivers handle rx buffer reordering internally (and by extension
      handle also the rx ba session timer internally), but do not ofload the
      addba/delba negotiation.
      Add an api for these drivers to properly tear-down the ba session,
      including sending a delba.
      Signed-off-by: default avatarNaftali Goldstein <naftali.goldstein@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      04c2cf34
    • Emmanuel Grumbach's avatar
      iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU · a600852a
      Emmanuel Grumbach authored
      When we start an Rx A-MPDU session, we first get the AddBA
      request, then we send an ADD_STA command to the firmware
      that will reply with a BAID which is a hardware resource
      that tracks the BA session.
      This BAID will appear on each and every frame that we get
      from the firwmare until the A-MPDU session is torn down.
      In the Rx path, we look at this BAID to manage the
      reordering buffer.
      
      This flow is inherently racy since the hardware will start
      to put the BAID in the frames it receives even if the
      firmware hasn't sent the response to the ADD_STA command.
      This basically means that the driver can get frames with
      a valid BAID that it doesn't know yet.
      When that happens, the driver used to WARN.
      Fix this by simply not WARN in this case. When the driver
      will know abou the BAID, it will initialise the relevant
      states and the next frame with a valid BAID will refresh
      them.
      
      Fixes: b915c101 ("iwlwifi: mvm: add reorder buffer per queue")
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      a600852a
    • Avraham Stern's avatar
      iwlwifi: mvm: start mac queues when deferred tx frames are purged · 7e39a00d
      Avraham Stern authored
      In AP mode, if a station is removed just as it is adding a new stream,
      the queue in question will remain stopped and no more TX will happen
      in this queue, leading to connection failures and other problems.
      
      This is because under DQA, when tx is deferred because a queue needs
      to be allocated, the mac queue for that TID is stopped until the new
      stream is added.  If at this point the station that this stream
      belongs to is removed, all the deferred tx frames are purged, but the
      mac queue is not restarted. As a result, all following tx on this
      queue will not be transmitted.
      
      Fix this by starting the relevant mac queues when the deferred tx
      frames are purged.
      
      Fixes: 24afba76 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
      Signed-off-by: default avatarAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      7e39a00d
  4. 05 Aug, 2017 1 commit
  5. 03 Aug, 2017 1 commit
    • Kalle Valo's avatar
      Merge tag 'iwlwifi-for-kalle-2017-08-02' of... · 368bd88e
      Kalle Valo authored
      Merge tag 'iwlwifi-for-kalle-2017-08-02' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
      
      Some fixes in iwlwifi for 4.13
      
      * Some simple PCI HW ID fix-ups and additions for family 9000;
      * A couple of bugzilla fixes:
        - Remove a bogus warning message with new FWs (196915)
        - Don't allow illegal channel options to be used (195299)
      * A fix for checksum offload in family 9000;
      * A fix serious throughput degradation in 11ac with multiple streams;
      * An old bug in SMPS where the firmware was not aware of SMPS changes;
      368bd88e
  6. 01 Aug, 2017 8 commits
  7. 27 Jul, 2017 2 commits
  8. 21 Jul, 2017 10 commits
  9. 20 Jul, 2017 11 commits