1. 09 4月, 2018 1 次提交
  2. 29 3月, 2018 10 次提交
  3. 28 3月, 2018 5 次提交
  4. 27 3月, 2018 1 次提交
  5. 19 3月, 2018 5 次提交
    • A
      iwlwifi: mvm: Move unused phy's to a default channel · 9f4ef1d7
      Andrei Otcheretianski 提交于
      When immediate quiet bit is set in CSA, the entire channel is blocked
      by the firmware. It is expected that all the MACs will evacuate the
      channel and the phy will be eventually either moved or removed.
      
      Currently, the phy context is just unreferenced and thus, the quiet
      bit is kept set and it will be impossible to TX on this phy, if we
      will need to reuse it in the future.  This can be seen when doing a
      channel switch with mode=1 (quiet) twice from channel X to Y and then
      back to channel X.
      
      Fix that, by moving the phy context to a default channel when not
      referenced anymore.
      Signed-off-by: NAndrei Otcheretianski <andrei.otcheretianski@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      9f4ef1d7
    • A
      iwlwifi: mvm: fix array out of bounds reference · 4a6d2e52
      Avraham Stern 提交于
      When starting aggregation, the code checks the status of the queue
      allocated to the aggregation tid, which might not yet be allocated
      and thus the queue index may be invalid.
      Fix this by reserving a new queue in case the queue id is invalid.
      
      While at it, clean up some unreachable code (a condition that is
      already handled earlier) and remove all the non-DQA comments since
      non-DQA mode is no longer supported.
      
      Fixes: cf961e16 ("iwlwifi: mvm: support dqa-mode agg on non-shared queue")
      Signed-off-by: NAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      4a6d2e52
    • A
      iwlwifi: mvm: make sure internal station has a valid id · df65c8d1
      Avraham Stern 提交于
      If the driver failed to resume from D3, it is possible that it has
      no valid aux station. In such case, fw restart will end up in sending
      station related commands with an invalid station id, which will
      result in an assert.
      
      Fix this by allocating a new station id for the aux station if it
      does not have a valid id even in the case of fw restart.
      Signed-off-by: NAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      df65c8d1
    • A
      iwlwifi: mvm: clear tx queue id when unreserving aggregation queue · 4b387906
      Avraham Stern 提交于
      When a queue is reserved for aggregation, the queue id is assigned
      to the tid_data. This is fine since iwl_mvm_sta_tx_agg_oper()
      takes care of allocating the queue before actual tx starts.
      When the reservation is cancelled (e.g. when the AP declined the
      aggregation request) the tid_data is not cleared. As a result,
      following tx for this tid was trying to use an unallocated queue.
      
      Fix this by setting the txq_id for the tid to invalid when unreserving
      the queue.
      Signed-off-by: NAvraham Stern <avraham.stern@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      4b387906
    • A
      iwlwifi: mvm: Increase session protection time after CS · 19125cb0
      Andrei Otcheretianski 提交于
      After switching to a new channel, driver schedules session protection
      time event in order to hear the beacon on the new channel.
      The duration of the protection is two beacon intervals.
      However, since we start to switch slightly before beacon with count 1, in
      case we don't hear (or AP doesn't transmit) the very first beacon on the
      new channel the protection ends without hearing any beacon at all.
      At this stage the switch is not complete, the queues are closed and the
      interface doesn't have quota yet or TBTT events. As the result, we are
      stuck forever waiting for iwl_mvm_post_channel_switch() to be called.
      
      Fix this by increasing the protection time to be 3 beacon intervals and
      in addition drop the connection if the time event ends before we got any
      beacon.
      Signed-off-by: NAndrei Otcheretianski <andrei.otcheretianski@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      19125cb0
  6. 16 3月, 2018 4 次提交
    • L
      iwlwifi: add shared clock PHY config flag for some devices · 86a2b204
      Luca Coelho 提交于
      Some devices use a shared clock which is very sensitive to variations
      and cause trouble in some situations.  We need to set a bit in the phy
      configuration to indicate that to the FW.  To make this generic, add a
      extra_phy_config_flags element to the device configuration and OR it
      into the phy_cfg before sending it to the firmware.  And also create a
      set of configurations for devices that use shared clocks and need this
      extra bit to be set.
      
      Fixes: c62446d2 ("iwlwifi: add new 9460 series PCI IDs")
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      86a2b204
    • J
      iwlwifi: mvm: fix error checking for multi/broadcast sta · 75fd4fec
      Johannes Berg 提交于
      The earlier patch called the station add functions but didn't
      assign their return value to the ret variable, so that the
      checks for it were meaningless. Fix that.
      
      Found by smatch:
      
      .../mac80211.c:2560 iwl_mvm_start_ap_ibss() warn: we tested 'ret' before and it was 'false'
      .../mac80211.c:2563 iwl_mvm_start_ap_ibss() warn: we tested 'ret' before and it was 'false'
      
      Fixes: 3a89411cd31c ("iwlwifi: mvm: fix assert 0x2B00 on older FWs")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      75fd4fec
    • B
      iwlwifi: mvm: Correctly set IGTK for AP · e829b17c
      Beni Lev 提交于
      Currently when an IGTK is set for an AP, it is set as a regular key.
      Since the cipher is set to CMAC, the STA_KEY_FLG_EXT flag is added to
      the host command, which causes assert 0x253D on NICs that do not support
      this.
      
      Fixes: 85aeb58c ("iwlwifi: mvm: Enable security on new TX API")
      Signed-off-by: NBeni Lev <beni.lev@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      e829b17c
    • E
      iwlwifi: mvm: set the correct tid when we flush the MCAST sta · 334167de
      Emmanuel Grumbach 提交于
      The tid being used for the queue (cab_queue) for the MCAST
      station has been changed recently to be 0 (for BE).
      The flush path still flushed only the special tid (15)
      which means that the firmware wasn't flushing the right
      queue and we could get a firmware crash upon remove
      station if we had an MCAST packet on the ring.
      
      The current code that flushes queues for a station only
      differentiates between internal stations (stations that
      aren't instantiated in mac80211, like the MCAST station)
      and the non-internal ones.
      Internal stations can be either: BCAST (beacons), MCAST
      (for cab_queue), GENERAL_PURPOSE (p2p dev, and sniffer
      injection). The internal stations can use different tids.
      
      To make the code simpler, just flush all the tids always
      and add the special internal tid (15) for internal
      stations. The firmware will know how to handle this even
      if we hadn't any queue mapped that that tid.
      
      Fixes: e340c1a6ef4b ("iwlwifi: mvm: Correctly set the tid for mcast queue")
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      334167de
  7. 02 3月, 2018 9 次提交
  8. 16 2月, 2018 5 次提交