Commit Graph

295 Commits

Author SHA1 Message Date
Jose Ignacio Tornos Martinez da7b564c0d wifi: iwlwifi: s/IWL_MVM_STATION_COUNT_MAX/IWL_STATION_COUNT_MAX
JIRA: https://issues.redhat.com/browse/RHEL-67113

commit b61ed2b80911f981fa500252012330c54b9af5a0
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Sun Sep 1 07:17:52 2024 +0300

    wifi: iwlwifi: s/IWL_MVM_STATION_COUNT_MAX/IWL_STATION_COUNT_MAX
    
    This isn't mvm specific.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Link: https://patch.msgid.link/20240901071542.5d71a0a2b56c.I7e0fe636d914852963e7a2f5e6037d0c3e367145@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-11-22 10:58:04 +01:00
Jose Ignacio Tornos Martinez ba76c3b9de wifi: iwlwifi: mvm: cleanup iwl_mvm_get_wd_timeout
JIRA: https://issues.redhat.com/browse/RHEL-67113

commit 7dd22dad8dc335dd7650d03ba1c08cae5afdefcc
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Thu Aug 8 23:22:46 2024 +0300

    wifi: iwlwifi: mvm: cleanup iwl_mvm_get_wd_timeout
    
    This used to extract the timeout from the debug TLV
    (FW_DBG_TRIGGER_TXQ_TIMERS), which is not in use.
    Cleanup iwl_mvm_get_wd_timeout to not consider the debug TLV.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Link: https://patch.msgid.link/20240808232017.7a6944bc2e38.I532b4b5487c6be9203ff4db9742d7cc5b148d502@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-11-22 10:58:00 +01:00
Jose Ignacio Tornos Martinez 0cb3e90542 wifi: iwlwifi: mvm: add and improve EMLSR debug info
JIRA: https://issues.redhat.com/browse/RHEL-67113

commit 36a95e9c51684bbc0983219cc1d86a8428e4d65f
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon Jul 29 20:20:18 2024 +0300

    wifi: iwlwifi: mvm: add and improve EMLSR debug info
    
    Add prints of the per-link MPDU counters, and change the other MPDU
    counters related prints to use DL_INFO, which is already used for all
    EMLSR tests anyway, instead of DL_STATS which pollutes the logs with all
    the RX signal info.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Daniel Gabay <daniel.gabay@intel.com>
    Link: https://patch.msgid.link/20240729201718.02bd85837c87.I85480c9c4fab0f7a574dd69cbeafd82674146921@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-11-22 10:57:58 +01:00
Jose Ignacio Tornos Martinez f934e6e166 wifi: iwlwifi: remove MVM prefix from FW macros
JIRA: https://issues.redhat.com/browse/RHEL-67113

commit cb2b6ce8b2e9289b95d6b997eecdf3083107acad
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon Jul 29 20:20:04 2024 +0300

    wifi: iwlwifi: remove MVM prefix from FW macros
    
    These are not mvm specific.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Link: https://patch.msgid.link/20240729201718.939b32f84f46.I293957bf172680871eba24448d9d1870e49100b6@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-11-22 10:57:56 +01:00
Jose Ignacio Tornos Martinez 4a38c0cc97 wifi: iwlwifi: mvm: clean up reorder buffer data
JIRA: https://issues.redhat.com/browse/RHEL-50013

commit eb801f4fabdf877d38c4746333e3454c4e7603cc
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Jul 3 12:58:49 2024 +0300

    wifi: iwlwifi: mvm: clean up reorder buffer data
    
    We really don't need to maintain the buffer size per
    queue buffer, it's the same for the whole BA session.
    Also, we no longer use the mvm pointer inside each
    queue's data structure. Clean that up.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://patch.msgid.link/20240703125541.64ea1ba75379.I2a25af040061efaf82379e96a84a76c5fb65c677@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-10-29 08:18:22 +01:00
Jose Ignacio Tornos Martinez e3f24dcc15 wifi: iwlwifi: move TXQ bytecount limit to queue code
JIRA: https://issues.redhat.com/browse/RHEL-50013

commit 57bb72fad7bcb9ed0b2d7ec1b73a116ac3c6a2ba
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Jun 5 14:05:00 2024 +0300

    wifi: iwlwifi: move TXQ bytecount limit to queue code
    
    This really isn't correct to be in the opmode, do the clamping
    (and power-of-2 fixup that may be necessary due to this, or even
    otherwise) in the queue code. Also move down the retrying of the
    allocation, it should be after all the size fixups, but also it
    just makes sense, and avoids retrying same-size allocations in
    the case of the BZ-family A-step workaround.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240605140327.000a0a1e807d.Ib822590d5aca76ff3168418ae2c139b3d43d81ed@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-10-29 08:18:02 +01:00
Jose Ignacio Tornos Martinez 2714b571d7 wifi: iwlwifi: mvm: add debug data for MPDU counting
JIRA: https://issues.redhat.com/browse/RHEL-50013

commit 6958c4becdf89c2877edd901458ae18ecd06169f
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon May 27 19:06:09 2024 +0300

    wifi: iwlwifi: mvm: add debug data for MPDU counting
    
    It is hard to debug issues of EMLSR entry/exit due to low throughput.
    Add debug data.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Link: https://msgid.link/20240527190228.77ef3c2654dc.I1796a3995da2a49dd5102d33766af1ad416dd60b@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-10-29 08:17:53 +01:00
Jose Ignacio Tornos Martinez fbdc963bcb wifi: iwlwifi: mvm: handle BA session teardown in RF-kill
JIRA: https://issues.redhat.com/browse/RHEL-50013

commit 4d08c0b3357cba0aeffaf3abc62cae0c154f2816
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon May 13 13:27:10 2024 +0300

    wifi: iwlwifi: mvm: handle BA session teardown in RF-kill
    
    When entering RF-kill, mac80211 tears down BA sessions, but
    due to RF-kill the commands aren't sent to the device. As a
    result, there can be frames pending on the reorder buffer or
    perhaps even received while doing so, leading to warnings.
    
    Avoid the warnings by doing the BA session teardown normally
    even in RF-kill, which also requires queue sync.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240513132416.0762cd80fb3d.I43c5877f3b546159b2db4f36d6d956b333c41cf0@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-10-29 08:17:26 +01:00
Jose Ignacio Tornos Martinez 90fd2d852a wifi: iwlwifi: mvm: Activate EMLSR based on traffic volume
JIRA: https://issues.redhat.com/browse/RHEL-50013

commit ec0d43d26f2ca40d3bfb0678985a6ed1e9ed3887
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Sun May 5 09:19:50 2024 +0300

    wifi: iwlwifi: mvm: Activate EMLSR based on traffic volume
    
    Adjust EMLSR activation to account for traffic levels. By
    tracking the number of RX/TX MPDUs, EMLSR will be activated only when
    traffic volume meets the required threshold.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240505091420.9480f99ac8fc.If9eb946e929a39e10fe5f4638bc8bc3f8976edf1@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-10-29 08:17:19 +01:00
Jose Ignacio Tornos Martinez 986b806720 wifi: iwlwifi: mvm: remove one queue sync on BA session stop
JIRA: https://issues.redhat.com/browse/RHEL-34696

commit f863afbd301ef2a29364316dd14a73699d0bc673
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Feb 5 00:06:17 2024 +0200

    wifi: iwlwifi: mvm: remove one queue sync on BA session stop
    
    As documented in the comment, this queue sync was here to
    ensure that an async IWL_MVM_RXQ_NSSN_SYNC queue sync won't
    race with setting up a new BA session with the same BAID.
    However, we no longer do IWL_MVM_RXQ_NSSN_SYNC queue sync,
    so we can remove this as well.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Reviewed-by: Grumbach, Emmanuel <emmanuel.grumbach@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240204235836.0a09ab337b54.I0dfe239dc30577a2ff23f910b10e9957364ccc78@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-06-17 09:19:23 +02:00
Jose Ignacio Tornos Martinez 85171bccde wifi: mac80211: introduce 'channel request'
JIRA: https://issues.redhat.com/browse/RHEL-34696

Conflicts:
    - drivers/net/wireless/rsi/rsi_91x_mac80211.c
      drivers/net/wireless/silabs/wfx/sta.c
      Skip hunks of unsupported drivers silabs and rsi.

commit 6092077ad09ce880c61735c314060f0bd79ae4aa
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jan 29 19:34:40 2024 +0100

    wifi: mac80211: introduce 'channel request'
    
    For channel contexts, mac80211 currently uses the cfg80211
    chandef struct (control channel, center freq(s), width) to
    define towards drivers and internally how these behave. In
    fact, there are _two_ such structs used, where the min_def
    can reduce bandwidth according to the stations connected.
    
    Unfortunately,  with EHT this is longer be sufficient,  at
    least not for all hardware.  EHT requires that non-AP STAs
    that are connected to an AP with a lower bandwidth than it
    (the AP) advertises (e.g. 160 MHz STA connected to 320 MHz
    AP) still be able to receive downlink OFDMA and respond to
    trigger frames for uplink OFDMA  that specify the position
    and bandwidth  for the non-AP STA  relative to the channel
    the AP is using.  Therefore, they need to be aware of this,
    and at least for some hardware (e.g. Intel) this awareness
    is in the hardware. As a result, use of the "same" channel
    may need to be split over  two channel contexts where they
    differ by the AP being used.
    
    As a first step,  introduce a concept of a channel request
    ('chanreq') for each interface,  to control the context it
    requests.   This step does nothing but reorganise the code,
    so that later the AP's chandef can be added to the request
    in order to handle the EHT case described above.
    
    Link: https://msgid.link/20240129194108.2e88e48bd2e9.I4256183debe975c5ed71621611206fdbb69ba330@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-06-17 09:19:15 +02:00
Jose Ignacio Tornos Martinez 195b3385fa wifi: iwlwifi: mvm: support SPP A-MSDUs
JIRA: https://issues.redhat.com/browse/RHEL-34696

commit c289f5cd6978af1bd14c1b7c230aaa011e1b3b5d
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jan 29 21:22:01 2024 +0200

    wifi: iwlwifi: mvm: support SPP A-MSDUs
    
    If the firmware has the necessary support, enable SPP A-MSDUs.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
    Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240129211905.15e4570e471f.I87cf284d3b19bb9f5558f0f33afaace6d6492acb@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-06-17 09:19:02 +02:00
Jose Ignacio Tornos Martinez 23cb421b39 wifi: iwlwifi: mvm: Add support for removing responder TKs
JIRA: https://issues.redhat.com/browse/RHEL-34696

commit 619a900f279800876e425ce4ef41c4e493bdf7d4
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Wed Jan 31 23:08:16 2024 +0200

    wifi: iwlwifi: mvm: Add support for removing responder TKs
    
    When removing a PASN station, the TK must be removed before
    the station is removed as otherwise the FW would assert.
    
    To handle this, store the key configuration, and use it to remove
    the key when the station is removed.
    
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240131230734.3e6364730c04.Ia76dc4a9d399f1f68ac6b157d844b63f74d5159f@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-06-17 09:18:59 +02:00
Jose Ignacio Tornos Martinez d710d5995a wifi: iwlwifi: mvm: ensure offloading TID queue exists
JIRA: https://issues.redhat.com/browse/RHEL-28754

commit 78f65fbf421a61894c14a1b91fe2fb4437b3fe5f
Author: Benjamin Berg <benjamin.berg@intel.com>
Date:   Sun Feb 18 19:51:47 2024 +0200

    wifi: iwlwifi: mvm: ensure offloading TID queue exists
    
    The resume code path assumes that the TX queue for the offloading TID
    has been configured. At resume time it then tries to sync the write
    pointer as it may have been updated by the firmware.
    
    In the unusual event that no packets have been send on TID 0, the queue
    will not have been allocated and this causes a crash. Fix this by
    ensuring the queue exist at suspend time.
    
    Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240218194912.6632e6dc7b35.Ie6e6a7488c9c7d4529f13d48f752b5439d8ac3c4@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-03-18 17:58:19 +01:00
Jose Ignacio Tornos Martinez 024940e76f wifi: iwlwifi: replace ENOTSUPP with EOPNOTSUPP
JIRA: https://issues.redhat.com/browse/RHEL-28754

commit 968509128207f122d7177ffb6ff51c9c6fa7e13d
Author: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Date:   Tue Dec 19 21:59:02 2023 +0200

    wifi: iwlwifi: replace ENOTSUPP with EOPNOTSUPP
    
    ENOTSUPP isn't a standard error code, don't use it. Replace with
    EOPNOTSUPP instead.
    
    Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
    Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20231219215605.a69f4347b5f8.I88429d5de8251287ec0b58ff26a588465b9049a5@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-03-18 17:58:13 +01:00
Jose Ignacio Tornos Martinez d20d6818a0 wifi: iwlwifi: mvm: do not send STA_DISABLE_TX_CMD for newer firmware
JIRA: https://issues.redhat.com/browse/RHEL-28754

commit 32dc0f8edc65ec74ed813309798ddb07325b9ecc
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Dec 7 04:50:16 2023 +0200

    wifi: iwlwifi: mvm: do not send STA_DISABLE_TX_CMD for newer firmware
    
    Newest firmware has completely offloaded this logic and this command
    will be deprecated soon. Based on a capability bit advertised by the
    firmware, skip this command.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20231207044813.e64ef70c0133.I9f47cdef2ba45f1f383b70023857376973de3a8c@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-03-18 17:57:57 +01:00
Jose Ignacio Tornos Martinez bb0f5f7171 wifi: iwlwifi: remove async command callback
JIRA: https://issues.redhat.com/browse/RHEL-28754

commit 14c1b6f430e3582b3ef2ce1e3016de829b520f77
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Dec 7 04:50:15 2023 +0200

    wifi: iwlwifi: remove async command callback
    
    There's only one user of this code, which is STA unblock
    during sleep for uAPSD on really old devices. Instead of
    having this all through the API with calls up and down,
    just implemented a special-case CMD_BLOCK_TXQS flag for
    this, it's only needed in the old gen1 transport.
    
    While at it, fix a complain that lockdep would have, as
    we lock the cmd queue and then the TXQs in the reclaim
    by using spin_lock_nested(). We no longer need to disable
    BHs in iwl_trans_pcie_block_txq_ptrs() since it's called
    with them disabled already.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20231207044813.2bd95e0570fc.I16486dbc82570d2f73a585872f5394698627310d@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-03-18 17:57:57 +01:00
Jose Ignacio Tornos Martinez 88222825d2 wifi: iwlwifi: mvm: simplify the reorder buffer
JIRA: https://issues.redhat.com/browse/RHEL-19746

commit ff8e3a40d78bc414213b2724ad775adf98780a5a
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Tue Oct 17 12:16:47 2023 +0300

    wifi: iwlwifi: mvm: simplify the reorder buffer
    
    The firmware / hardware of devices supporting RSS is able to report
    duplicates and packets that time out inside the reoder buffer. We can
    now remove all the complex logic that was implemented to keep all the Rx
    queues more the less synchronized: we used to send a message to all the
    queues through the firmware to teach the different queues about what is
    the current SSN every 2048 packets.
    
    Now that we rely on the firmware / hardware to detect duplicates, we can
    completely remove the code that did that in the driver and it has been
    reported that this code was spuriously dropping legit packets.
    
    Suggested-by: Sultan Alsawaf <sultan@kerneltoast.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20231017115047.54cf4d3d5956.Ic06a08c9fb1e1ec315a4b49d632b78b8474dab79@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-02-01 15:29:52 +01:00
Jose Ignacio Tornos Martinez f3145dd6ad wifi: iwlwifi: mvm: remove TDLS stations from FW
JIRA: https://issues.redhat.com/browse/RHEL-19746

commit 7b404c5cff3d4270fcd5212b6776c8484623ac74
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 11 13:07:30 2023 +0300

    wifi: iwlwifi: mvm: remove TDLS stations from FW
    
    When we remove TDLS stations, we need to remove them from FW
    immediately, even while associated. Some previous refactoring
    here lost the sta ID condition, add it back.
    
    Fixes: 57974a55d995 ("wifi: iwlwifi: mvm: refactor iwl_mvm_mac_sta_state_common()")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20231011130030.933011e710a9.I77c069c781e8b2b698b86cc3f43fc3c7e2dde114@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-02-01 15:29:50 +01:00
Jose Ignacio Tornos Martinez 2246cef931 wifi: iwlwifi: mvm: change iwl_mvm_flush_sta() API
JIRA: https://issues.redhat.com/browse/RHEL-19746

commit 391762969769b089c808defc8fce5544a945f9eb
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Oct 11 13:07:28 2023 +0300

    wifi: iwlwifi: mvm: change iwl_mvm_flush_sta() API
    
    This API is type unsafe and needs an extra parameter to know
    what kind of station was passed, so it has two, but really it
    only needs two values. Just pass the values instead of doing
    this type-unsafe dance, which will also make it better to use
    for multi-link.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20231011130030.aeb3bf4204cd.I5b0e6d64a67455784bc8fbdaf9ceaf03699d9ce1@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-02-01 15:29:49 +01:00
Jose Ignacio Tornos Martinez 5e030b7b3e wifi: iwlwifi: mvm: iterate active links for STA queues
JIRA: https://issues.redhat.com/browse/RHEL-19746

commit 5f809bafe48cf3f1d4bf1b1c852441d737194def
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Sep 21 11:58:00 2023 +0300

    wifi: iwlwifi: mvm: iterate active links for STA queues
    
    During HW restart in eSR, links allocated in a station and links
    active in the interface may differ. Use for_each_sta_active_link
    to capture this.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230921110726.7ee1f1a55e1c.I410c512d1fad7d1cf9b2d2a3451a312821dc816d@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-02-01 15:29:14 +01:00
Jose Ignacio Tornos Martinez e43fd6301c wifi: iwlwifi: mvm: reduce maximum RX A-MPDU size
JIRA: https://issues.redhat.com/browse/RHEL-19746

commit 09212dd727397a401aff8dfc98311697b084e507
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Aug 30 11:31:02 2023 +0300

    wifi: iwlwifi: mvm: reduce maximum RX A-MPDU size
    
    Since 1024 isn't being tested right now, allow only 512
    for now.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230830112059.6e80366716ad.I19022084ac978b9960b12b205c052a83ab141203@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-02-01 15:28:59 +01:00
Jose Ignacio Tornos Martinez 1659d7b854 wifi: iwlwifi: mvm: add EHT A-MPDU size exponent support
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit 00e482010dfb5879fc9e8601d5819641fe4ae925
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 20 13:03:55 2023 +0300

    wifi: iwlwifi: mvm: add EHT A-MPDU size exponent support
    
    Add support for reading the EHT MAC capabilities A-MPDU
    size exponent field, as indicated by the draft spec.
    
    Also clarify the existing code a bit and add comments
    so it's clearer to understand what's going on here.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230620125813.c5e00045d90f.I7520787fca8f8430a564adedf975d069ad8c5417@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:48 +01:00
Jose Ignacio Tornos Martinez 3f66249b8d wifi: iwlwifi: mvm: use min_t() for agg_size
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit d51173c13b24925553489dff77c8cee136c7bfb1
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 20 13:03:54 2023 +0300

    wifi: iwlwifi: mvm: use min_t() for agg_size
    
    We can use min_t() for the agg_size and avoid
    spelling out the (firmware) limit twice.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230620125813.211768036c1f.I78b7eea32eaae20cc9f32869aa3f42814634ce9a@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:48 +01:00
Jose Ignacio Tornos Martinez faeebb9e77 wifi: iwlwifi: mvm: allow ADD_STA not to be advertised by the firwmare
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit 1724fc781ffe6e1e44dfe25c3a27e19db42dc0ff
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Tue Jun 13 15:57:23 2023 +0300

    wifi: iwlwifi: mvm: allow ADD_STA not to be advertised by the firwmare
    
    Newest firmware don't advertise the version of ADD_STA because it has
    been replaced by another command. There are old firmware images
    that also don't advertise it. Replace all the checks with a new
    inline, and in that check for either MLD API or the ADD_STA
    command version.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230613155501.4b9305510223.I7cc143d87186f8441e9b8435cc550b76734c7eef@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:31 +01:00
Jose Ignacio Tornos Martinez ed4fddfa14 wifi: iwlwifi: mvm: remove useless code
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit 8dd1039f8fab9ed9514d601be5988aa72ab2c077
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed May 24 20:42:09 2023 +0300

    wifi: iwlwifi: mvm: remove useless code
    
    Setting the station to -EBUSY was originally done under
    this lock, and the comment still refers to it. But this
    no longer happens because that was removed when DQA was
    removed. Remove the leftover code as well.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230524203151.30048b1cd0fd.Ie2c2ff6fd7c6e3ebf5b736de350dc15515970792@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:12 +01:00
Jose Ignacio Tornos Martinez f0a8ca0a97 wifi: iwlwifi: mvm: adjust csa notifications and commands to MLO
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit fa53608b525fa8d32770783f4f9e59eafd905cc4
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Wed May 24 20:42:06 2023 +0300

    wifi: iwlwifi: mvm: adjust csa notifications and commands to MLO
    
    In the following notifications and commands mac_id was replaced
    with link_id:
    * CANCEL_CHANNEL_SWITCH_CMD
    * CHANNEL_SWITCH_START_NOTIF
    * CHANNEL_SWITCH_ERROR_NOTIF
    
    The logic around was not changed, so only adjust handling
    mac/link id.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230524203151.6aa6e394f5fe.Ie9e78918511ca901f9f3966d774fa74a71a186e3@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:11 +01:00
Jose Ignacio Tornos Martinez 3e2bf5e465 wifi: iwlwifi: mvm: support PASN for MLO
JIRA: https://issues.redhat.com/browse/RHEL-2907

commit 0945f9762ec3766186a179f7ccd001a3e160e3a0
Author: Avraham Stern <avraham.stern@intel.com>
Date:   Wed May 24 20:42:02 2023 +0300

    wifi: iwlwifi: mvm: support PASN for MLO
    
    When adding a PASN station, the non MLD API was used. This results
    in assert when operating as MLD. Fix it to use the MLD API when
    operating as MLD. For now, the default link is used for the added
    station.
    
    Signed-off-by: Avraham Stern <avraham.stern@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230524203151.7c35dccc8a12.I7bc78cd16d7c750f42fdd60e07e839a860d279d2@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2023-11-27 15:01:11 +01:00
Íñigo Huguet 372d90bf76 wifi: iwlwifi: mvm: Handle return value for iwl_mvm_sta_init
Bugzilla: https://bugzilla.redhat.com/2196821

commit 8d507812cb4bb3c3b05404a7dda70b32a1fc1324
Author: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
Date:   Mon Jun 12 18:51:04 2023 +0300

    wifi: iwlwifi: mvm: Handle return value for iwl_mvm_sta_init
    
    sta_init function can fail and if it returns an error then
    driver should not send the request to fw to add a station.
    
    Fixes: 69aef848052b ("wifi: iwlwifi: mvm: refactor iwl_mvm_add_sta(), iwl_mvm_rm_sta()")
    Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230612184434.1ecd293539e8.I5ec6aab387bb2fe743a7402581beaeb9c801d31f@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:16:43 +02:00
Íñigo Huguet 01bc421828 wifi: iwlwifi: mvm: avoid baid size integer overflow
Bugzilla: https://bugzilla.redhat.com/2196821

commit 1a528ab1da324d078ec60283c34c17848580df24
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Jun 20 13:04:02 2023 +0300

    wifi: iwlwifi: mvm: avoid baid size integer overflow
    
    Roee reported various hard-to-debug crashes with pings in
    EHT aggregation scenarios. Enabling KASAN showed that we
    access the BAID allocation out of bounds, and looking at
    the code a bit shows that since the reorder buffer entry
    (struct iwl_mvm_reorder_buf_entry) is 128 bytes if debug
    such as lockdep is enabled, then staring from an agg size
    512 we overflow the size calculation, and allocate a much
    smaller structure than we should, causing slab corruption
    once we initialize this.
    
    Fix this by simply using u32 instead of u16.
    
    Reported-by: Roee Goldfiner <roee.h.goldfiner@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230620125813.f428c856030d.I2c2bb808e945adb71bc15f5b2bac2d8957ea90eb@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:16:41 +02:00
Íñigo Huguet 66f892fb6f wifi: iwlwifi: mvm: fix access to fw_id_to_mac_id
Bugzilla: https://bugzilla.redhat.com/2196821

commit 6818266283d191549afa87ac5d7b86635a5fb105
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Sun May 14 12:15:49 2023 +0300

    wifi: iwlwifi: mvm: fix access to fw_id_to_mac_id
    
    RCU protected fw_id_to_mac_id can be initialized with either
    an error code or NULL. Thus, after dereferencing need to check
    the value with IS_ERR_OR_NULL() and not only that it is not NULL.
    Fix it.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230514120631.ec5f2880e81c.Ifa8c0f451df2835bde800f5c3670cc46238a3bd8@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:16:32 +02:00
Íñigo Huguet 79143aceb5 wifi: iwlwifi: mvm: always free dup_data
Bugzilla: https://bugzilla.redhat.com/2196821

commit 783336b05f06821c9af3b057ecd5a7aa082ed973
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sun May 14 12:15:44 2023 +0300

    wifi: iwlwifi: mvm: always free dup_data
    
    There are some assertions in the STA removal code that can
    fail, and in that case we may leak memory since we skip
    the freeing.
    
    Fix this by freeing the dup_data earlier in the function,
    we already have a check for when we free the station, and
    this we don't need to do it with and without MLD API, so
    it's a win all around.
    
    Fixes: a571f5f635 ("iwlwifi: mvm: add duplicate packet detection per rx queue")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230514120631.173938681d72.Iff4b55fc52943825d6e3e28d78a24b155ea5cd22@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:16:31 +02:00
Íñigo Huguet d9a4ed7ff7 wifi: iwlwifi: mvm: prefer RCU_INIT_POINTER()
Bugzilla: https://bugzilla.redhat.com/2196821

commit 3e75668be54eff49c86d498623e3cf3d3a23169a
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Apr 18 12:28:09 2023 +0300

    wifi: iwlwifi: mvm: prefer RCU_INIT_POINTER()
    
    For constant values we don't need rcu_assign_pointer(),
    use RCU_INIT_POINTER() instead.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230418122405.7b400d21a27f.Iccdef9d777677390a9881c88b06c0ed13a83d978@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:16:23 +02:00
Íñigo Huguet 0ebc1d4873 wifi: iwlwifi: mvm: track station mask for BAIDs
Bugzilla: https://bugzilla.redhat.com/2196821

commit 9aa3856d9b6f3f8bf085b5bbb5f3703578bf452b
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Sun Apr 16 15:47:34 2023 +0300

    wifi: iwlwifi: mvm: track station mask for BAIDs
    
    When we have MLO connections, a BAID applies to multiple
    firmware stations. Track the station mask instead of the
    station ID, getting rid of a few more deflink cases and
    preparing for handling link switching for BAIDs.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230416154301.c08523808c34.I719b7bba499648d1495ed3e3a90889d4732ef15d@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:56 +02:00
Íñigo Huguet a23edb7baf wifi: iwlwifi: mvm: fix shift-out-of-bounds
Bugzilla: https://bugzilla.redhat.com/2196821

commit 72c20e60966cb8429875a58ddbb99110f9252b9d
Author: Avraham Stern <avraham.stern@intel.com>
Date:   Thu Apr 13 21:40:24 2023 +0300

    wifi: iwlwifi: mvm: fix shift-out-of-bounds
    
    The aux queue is initialized to IWL_MVM_INVALID_QUEUE. This is
    later used for a bitmask of the queue, which results in a
    shift-out-of-bounds. Fix it.
    
    Fixes: b85f7ebb2497 ("wifi: iwlwifi: mvm: avoid UB shift of snif_queue")
    Signed-off-by: Avraham Stern <avraham.stern@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230413213309.c41a33c32898.Idc15f9eed005345a4137c28ef62efd80a405fad0@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:42 +02:00
Íñigo Huguet ad10bad162 wifi: iwlwifi: mvm: convert TID to FW value on queue remove
Bugzilla: https://bugzilla.redhat.com/2196821

commit 925c6a40e31db33ae22f35cd866786d3164481ac
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Apr 13 10:44:05 2023 +0300

    wifi: iwlwifi: mvm: convert TID to FW value on queue remove
    
    On queue remove, we should convert the TID value to the
    firmware value (8 -> 15) just like we do on queue add.
    Otherwise, the firmware will not be able to find the
    correct queue to remove.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230413102635.6651077eaec3.Ia6868c8fc1a92063609bb057b6a618726712d0bb@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:38 +02:00
Íñigo Huguet 9f28da45cc wifi: iwlwifi: mvm: correctly use link in iwl_mvm_sta_del()
Bugzilla: https://bugzilla.redhat.com/2196821

commit a6ef8a88fc38cc1bf5c440be73fe520d04301424
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Mar 29 10:05:40 2023 +0300

    wifi: iwlwifi: mvm: correctly use link in iwl_mvm_sta_del()
    
    This function can be invoked for both MLO and non-MLO, so
    it must deal with multi-link correctly. Notable, on auth
    timeout, we'd otherwise get a warning due to the erroneous
    deflink usage in MLO cases.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230329100040.b85f6052d51a.Iedfef4b4c4f3ca557aebc0093fdc3f5cfb49b507@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:22 +02:00
Íñigo Huguet 2861da47f6 wifi: iwlwifi: separate AP link management queues
Bugzilla: https://bugzilla.redhat.com/2196821

commit de50140b701911a34c4652d3a4212cce8f4fccd7
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Mar 29 10:05:39 2023 +0300

    wifi: iwlwifi: separate AP link management queues
    
    The link management queues associated with the broadcast stations
    were forgotten and so the same queue was used with both broadcast
    stations. This leads to lost frames and warnings on cleanup and
    HW restart.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230329100040.0671fa976832.Id5aa9856fd5984e447f247e6d0c3979d9794a21a@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:22 +02:00
Íñigo Huguet ed55272d0d wifi: iwlwifi: mvm: move max_agg_bufsize into host TLC lq_sta
Bugzilla: https://bugzilla.redhat.com/2196821

commit 59c2d94bba838b61733186e490d4febaec8e93a6
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Wed Mar 29 10:05:36 2023 +0300

    wifi: iwlwifi: mvm: move max_agg_bufsize into host TLC lq_sta
    
    This field is used only for host TLC, so it can reside inside
    the corresponding lq_sta struct. Also, TLC lq_sta is cleared
    in iwl_mvm_rs_rate_init() upon association, but max_agg_bufsize
    is set earlier in iwl_mvm_sta_init(). Thus, place this field
    in the persistent part of lq_sta to retain its value.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230329100040.d55361064e39.Ib79d30f27d94607d097f0192af2aacd455a17958@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:21 +02:00
Íñigo Huguet 214d530485 wifi: iwlwifi: mvm: remove only link-specific AP keys
Bugzilla: https://bugzilla.redhat.com/2196821

commit 072573f6971dcedeb0e221259a41718e42154c8f
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Mar 29 10:05:24 2023 +0300

    wifi: iwlwifi: mvm: remove only link-specific AP keys
    
    When we remove the AP station, we iterate over the links
    and remove all the keys, however, the key iteration will
    return all keys for all links, so skip the ones that we
    don't need based on the link ID.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230329100039.e724878f502e.I66870d4629244b4b309be79e11cbbd384bdf93be@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:18 +02:00
Íñigo Huguet 90b5467dc6 wifi: iwlwifi: mvm: adjust iwl_mvm_sec_key_remove_ap to MLO
Bugzilla: https://bugzilla.redhat.com/2196821

commit ba9eef6ba636e72c00b565610d29d10984711d68
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Wed Mar 29 10:05:14 2023 +0300

    wifi: iwlwifi: mvm: adjust iwl_mvm_sec_key_remove_ap to MLO
    
    It has to be done per link. We still don't support keys
    configuration for several links, but the single vif link can
    still point to a link different from deflink. For now handle
    the removal of keys for the default link.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230329100039.19d729cc4654.I4ebe8e3eb5fc00a994761f7c0ad40107382705ca@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:16 +02:00
Íñigo Huguet b0c1fd6924 wifi: iwlwifi: mvm: refactor iwl_mvm_mac_sta_state_common()
Bugzilla: https://bugzilla.redhat.com/2196821

commit 57974a55d995468a9a476e24693eb741c649b25f
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Tue Mar 28 10:59:09 2023 +0300

    wifi: iwlwifi: mvm: refactor iwl_mvm_mac_sta_state_common()
    
    Move code handling specific state transitions into separate handlers
    and adjust them for MLO. Adjust relevant callbacks as well.
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104949.5a3f8a849723.I0670d20436858a1cd3c055e03c7528db81292811@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:13 +02:00
Íñigo Huguet 434a40595c wifi: iwlwifi: mvm: unite sta_modify_disable_tx flows
Bugzilla: https://bugzilla.redhat.com/2196821

commit 56f4f12ba8f6d8cb52f776dfcd261f2e1040d38c
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Tue Mar 28 10:58:48 2023 +0300

    wifi: iwlwifi: mvm: unite sta_modify_disable_tx flows
    
    These flows are the same in both MLD API and the current API,
    except for the commands that are being sent during this flows.
    Instead of checking each time before calling these floews
    what API we use and then call the correct function, call always the old
    one, which in turn will call the new one in case we're using the MLD
    API.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104948.5692d8dea9be.Ib1882b2c2f0b0603abc4b7d4a0ecc45cd1fbf9a7@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:09 +02:00
Íñigo Huguet 38b6ee1587 wifi: iwlwifi: mvm: add sta handling flows for MLD mode
Bugzilla: https://bugzilla.redhat.com/2196821

commit 87f7e2435cb7ddafbc644b759aa1a9dffaab1515
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Tue Mar 28 10:58:44 2023 +0300

    wifi: iwlwifi: mvm: add sta handling flows for MLD mode
    
    In MLD mode we have a new STA cmd. As a result, it is also changes
    the flows of adding/updating/removing and handling state of
    a station. Add these flows.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104948.b5548cfd8fe3.I70f9c8f3c95e18d5c9af0a5681e0830893509531@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:08 +02:00
Íñigo Huguet b57a5bcd1e wifi: iwlwifi: mvm: sta preparation for MLO
Bugzilla: https://bugzilla.redhat.com/2196821

commit c8ee33e184e4163586cc6c786d5c14dcdf6f4e07
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Tue Mar 28 10:58:42 2023 +0300

    wifi: iwlwifi: mvm: sta preparation for MLO
    
    Split iwl_mvm_sta into general and link specific parts. As a first
    step, all link dependent parameters reside in deflink.
    
    The change was done mostly using the spatch below with some manual
    adjustments.
    
    @iwl_mvm_sta@
    struct iwl_mvm_sta *s;
    identifier var = {sta_id, lq_sta, avg_energy};
    @@
    
    (
      s->
    -    var
    +    deflink.var
    )
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104948.34eace06d583.I1f8c5e919a71b21030460fbdd220d42401b688b1@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:07 +02:00
Íñigo Huguet 360fc6c86d wifi: iwlwifi: mvm: vif preparation for MLO
Bugzilla: https://bugzilla.redhat.com/2196821

commit 650cadb730105f1894b6c8afacc57a368dd18b91
Author: Gregory Greenman <gregory.greenman@intel.com>
Date:   Tue Mar 28 10:58:41 2023 +0300

    wifi: iwlwifi: mvm: vif preparation for MLO
    
    In MLO, some fields of iwl_mvm_vif should be defined in the
    context of a link. Define a separate structure for these fields and
    add a deflink object to hold it as part of iwl_mvm_vif. Non-MLO legacy
    code will use only deflink object while MLO related code will use the
    corresponding link from the link array.
    
    It follows the strategy applied in mac80211 for introducing MLO
    changes.
    
    The below spatch takes care of updating all driver code to access
    fields separated into MLD specific data structure via deflink (need
    to convert all references to the fields listed in var to deflink.var
    and also to take care of calls like iwl_mvm_vif_from_mac80211(vif)->field).
    
      @iwl_mld_vif@
      struct iwl_mvm_vif *v;
      struct ieee80211_vif *vv;
      identifier fn;
      identifier var = {bssid, ap_sta_id, bcast_sta, mcast_sta,
                        beacon_stats, smps_requests, probe_resp_data,
                        he_ru_2mhz_block, cab_queue, phy_ctxt,
                        queue_params};
      @@
    
      (
        v->
      -    var
      +    deflink.var
      |
        fn(vv)->
      -    var
      +    deflink.var
      )
    
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230328104948.4896576f0a9f.Ifaf0187c96b9fe52b24bd629331165831a877691@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:15:07 +02:00
Íñigo Huguet c71ef2bbd8 wifi: iwlwifi: mvm: support enabling and disabling HW timestamping
Bugzilla: https://bugzilla.redhat.com/2196821

commit cf85123a210fe99cdd972a5cc84857fec925f794
Author: Avraham Stern <avraham.stern@intel.com>
Date:   Mon Mar 20 12:33:18 2023 +0200

    wifi: iwlwifi: mvm: support enabling and disabling HW timestamping
    
    Instead of enabling HW timestamping by default every time a station
    is connected, disable it by default and enable it only upon request
    for a specific station. HW timestamping can be enabled for only one
    peer at a time.
    
    Signed-off-by: Avraham Stern <avraham.stern@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230320122330.62b98fbf545b.I450c1017ada7900a71a63d879bb542a08e3166c8@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:14:58 +02:00
Íñigo Huguet a35ef3c0d3 wifi: iwlwifi: mvm: refactor iwl_mvm_add_sta(), iwl_mvm_rm_sta()
Bugzilla: https://bugzilla.redhat.com/2196821

commit 69aef848052b8f8a5d8348606809cd3d92db9b69
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon Mar 20 12:33:16 2023 +0200

    wifi: iwlwifi: mvm: refactor iwl_mvm_add_sta(), iwl_mvm_rm_sta()
    
    As we have a new MLD STA cmd, there will be a different function to
    add/remove a station in MLD mode. But both functions will share a
    common part. Put this part in a separate function which will be used
    later in adding/removing a sta in MLD mode.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230320122330.d01e0c9ccdc3.I5e9e27c3b363b36209a0ff960d2e59708e7ff0bf@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:14:58 +02:00
Íñigo Huguet 2d09b2fd5c wifi: iwlwifi: mvm: remove not needed initializations
Bugzilla: https://bugzilla.redhat.com/2196821

commit 6a8dee1391ff1d4942e8f09b5fb8c1087cd6a6c7
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon Mar 20 12:33:15 2023 +0200

    wifi: iwlwifi: mvm: remove not needed initializations
    
    In iwl_mvm_add_sta() we're initializing the new allocated mvm_sta.
    We are setting some fields to zero even though it was allocated with
    kzalloc, for the case of HW restart. But in such a case we will never
    get to this initializations due to the goto statement that we have in
    this case. Remove these initializations.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230320122330.c0b4d1e986a5.I6959bf1aca74c865e3c1edbf711f5fe8fb8c0c9f@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:14:57 +02:00
Íñigo Huguet 9c9acc25ad wifi: iwlwifi: mvm: refactor iwl_mvm_sta_send_to_fw()
Bugzilla: https://bugzilla.redhat.com/2196821

commit 77b6a2e5f49bb3a4756a4b82f24221e62fa6ea8c
Author: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Date:   Mon Mar 20 12:33:14 2023 +0200

    wifi: iwlwifi: mvm: refactor iwl_mvm_sta_send_to_fw()
    
    We have a new STA cmd as part of the new MLD API. There are some
    parts of sending the STA cmd which are common to both the old and
    the new one. Put this parts in functions which will later be used
    to send the new STA cmd.
    
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
    Link: https://lore.kernel.org/r/20230320122330.4da940bd7384.I3a66990fbffe9611b5e41f3686c2aff37ba2eb56@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
2023-07-26 13:14:57 +02:00