1. 20 12月, 2018 1 次提交
  2. 14 12月, 2018 1 次提交
    • A
      iwlwifi: mvm: force TCM re-evaluation on TCM resume · 7bc24682
      Avraham Stern 提交于
      When traffic load is not low or low latency is active, TCM schedules
      re-evaluation work so in case traffic stops TCM will detect that
      traffic load has become low or that low latency is no longer active.
      However, if TCM is paused when the re-evaluation work runs, it does
      not re-evaluate and the re-evaluation work is no longer scheduled.
      As a result, TCM will not indicate that low latency is no longer
      active or that traffic load is low when traffic stops.
      
      Fix this by forcing TCM re-evaluation when TCM is resumed in case
      low latency is active or traffic load is not low.
      Signed-off-by: NAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      7bc24682
  3. 11 11月, 2018 3 次提交
  4. 08 10月, 2018 2 次提交
  5. 06 10月, 2018 1 次提交
  6. 28 9月, 2018 1 次提交
  7. 31 8月, 2018 3 次提交
  8. 26 4月, 2018 1 次提交
  9. 20 4月, 2018 6 次提交
  10. 29 3月, 2018 2 次提交
  11. 28 3月, 2018 1 次提交
    • L
      iwlwifi: mvm: check if mac80211_queue is valid in iwl_mvm_disable_txq · 9a233bb8
      Luca Coelho 提交于
      Sometimes iwl_mvm_disable_txq() may be called with mac80211_queue ==
      IEEE80211_INVAL_HW_QUEUE, and this would cause us to use BIT(0xFF)
      which is way too large for the u16 we used to store it in
      hw_queue_to_mac820211.  If this happens the following UBSAN warning
      will be generated:
      
      [  167.185167] UBSAN: Undefined behaviour in drivers/net/wireless/intel/iwlwifi/mvm/utils.c:838:5
      [  167.185171] shift exponent 255 is too large for 64-bit type 'long unsigned int'
      
      Fix that by checking that it is not IEEE80211_INVAL_HW_QUEUE and,
      while at it, add a warning if the queue number is larger than
      IEEE80211_MAX_QUEUES.
      
      Fixes: 34e10860 ("iwlwifi: mvm: remove references to queue_info in new TX path")
      Reported-by: NPaul Menzel <pmenzel+linux-wireless@molgen.mpg.de>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      9a233bb8
  12. 21 12月, 2017 3 次提交
  13. 06 12月, 2017 3 次提交
  14. 25 11月, 2017 2 次提交
  15. 18 10月, 2017 2 次提交
  16. 06 10月, 2017 2 次提交
  17. 01 8月, 2017 3 次提交
  18. 30 6月, 2017 2 次提交
    • E
      iwlwifi: pcie: wait longer after device reset · 099a628b
      Emmanuel Grumbach 提交于
      The newest devices need a longer time to reset because of
      their more complex hardware. Wait 5ms after device reset.
      Consolidate all the places that reset the device in the
      PCIe transport to avoid future bugs.
      
      While at it, unify the flow to use set_bit instead of full
      write as requested by the hardware designers.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      099a628b
    • J
      iwlwifi: mvm: fix mac80211 queue tracking · 37e474ac
      Johannes Berg 提交于
      In the driver, we track which hardware queue is associated with
      which mac80211 "hw_queue", in order to be able to stop and wake
      it. When moving these bitmaps out of the queue_info structures,
      the type of the bitmap was erroneously changed from u32 to u8,
      presumably in order to save memory.
      
      Turns out that u32 isn't needed, because the highest queue we
      can ever tell mac80211 is always < 16, but a u16 definitely is
      needed, queues >=8 do happen.
      
      While at it, throw a BUILD_BUG_ON() into the place where we set
      the limit (mvm->first_agg_queue) and a warning when it actually
      gets put into the bitmap.
      
      The consequence of this bug is that full HW queues associated
      with such a too-high mac80211 number never stop higher layer
      queues when full, and thus would simply drop all packets that
      couldn't be enqueued to the hardware queue.
      
      Fixes: 34e10860 ("iwlwifi: mvm: remove references to queue_info in new TX path")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      37e474ac
  19. 23 6月, 2017 1 次提交
    • E
      iwlwifi: add a W/A for a scheduler hardware bug · dcfbd67b
      Emmanuel Grumbach 提交于
      In case we need to move the scheduler write pointer by
      steps of 0x40, 0x80 or 0xc0, the scheduler gets stuck.
      This leads to hardware error interrupts with status:
      0x5A5A5A5A or alike.
      
      In order to work around this, detect in the transport
      layer that we are going to hit this case and tell iwlmvm
      to increment the sequence number of the packets. This
      allows to keep the requirement that the WiFi sequence
      number is in sync with the index in the scheduler Tx queue
      and it also allows to avoid the problematic sequence.
      This means that from time to time, we will start a queue
      from ssn + 1, but that shouldn't be a problem since we
      don't switch to new queues for AMPDU now that we have
      DQA which allows to keep the same queue while toggling
      the AMPDU state.
      
      This bug has been fixed on 9000 devices and up.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      dcfbd67b