Couple of fixes:
- ath12k performance regression from -rc1
- cfg80211 counted_by() removal for scan request
as it doesn't match usage and keeps complaining
- iwlwifi crash with certain older devices
- iwlwifi missing an error path unlock
- iwlwifi compatibility with certain BIOS updates
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEpeA8sTs3M8SN2hR410qiO8sPaAAFAmh4vwsACgkQ10qiO8sP
aAAv+w/9Fs51/x4KVnUhAK7+WtOjvFAuzQkCsVlMZplO8WnXOzUPWfZ+sOiBrMbR
ws55b4SDnO82LoeLq4MBxAMJG7P+aWK9hNbMzA6TENaWCgxvTYNEQBijGjplx8pt
0r2lpn3OP3ALluV09UnCVTVIWFL3pq/jCsGEGHVhjpRUJz9RSwmBrHFM6V7yqrzl
VIbN8k5U90L1gwQ0wf2RI/KMZwJ85zCVViYSx1wNEpfwDH0pnoy5V1bMCNaCvReh
Gca8XCmCKYP2/NSQcsoyqnz0RgjKDAsN1a8s/S/HHFea62iOpUctSg8rgc8bLfJn
bbuwuSx40Ol70kPnSii35ImTO6PRSWXpibOlA3xtjPoLprX99e7xrdm6nSbf03It
VnQtfhB5fuoBHQuPxLUeLDVl8dT4r4zbS1JQw7feUCP1Rs3IGGDLtBQHZQNE0VIr
eFkWSa4SHv5mOFrPSuyAsSviRn6O8/Ni84/hXnAf9Lh1hzfPFG4pQ+gzBNf1ZoZI
lrgNvj1xoDothTb3DzgEQwO5oxd3zFHdtOD/4DN8wH0pSOTm4obQm23b43F6t+CC
q2E8eD4BurfnBuL1zlLseo6JbSFC7LOsustgarB+q2XSPoTCmJqaOfR24Kq9ZjjN
OBE+uvTlg+/l2UjZ5lp/07XE3LSy6bWAvsl4Yy02biOiyZ0GuXU=
=yzt3
-----END PGP SIGNATURE-----
Merge tag 'wireless-2025-07-17' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless
Johannes Berg says:
====================
Couple of fixes:
- ath12k performance regression from -rc1
- cfg80211 counted_by() removal for scan request
as it doesn't match usage and keeps complaining
- iwlwifi crash with certain older devices
- iwlwifi missing an error path unlock
- iwlwifi compatibility with certain BIOS updates
* tag 'wireless-2025-07-17' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless:
wifi: iwlwifi: Fix botched indexing conversion
wifi: cfg80211: remove scan request n_channels counted_by
wifi: ath12k: Fix packets received in WBM error ring with REO LUT enabled
wifi: iwlwifi: mask reserved bits in chan_state_active_bitmap
wifi: iwlwifi: pcie: fix locking on invalid TOP reset
====================
Link: https://patch.msgid.link/20250717091831.18787-5-johannes@sipsolutions.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
pull/1294/merge
commit
e49f95dc8c
|
|
@ -1060,7 +1060,6 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
|
|||
}
|
||||
|
||||
rx_tid = &peer->rx_tid[tid];
|
||||
paddr_aligned = rx_tid->qbuf.paddr_aligned;
|
||||
/* Update the tid queue if it is already setup */
|
||||
if (rx_tid->active) {
|
||||
ret = ath12k_peer_rx_tid_reo_update(ar, peer, rx_tid,
|
||||
|
|
@ -1072,6 +1071,7 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
|
|||
}
|
||||
|
||||
if (!ab->hw_params->reoq_lut_support) {
|
||||
paddr_aligned = rx_tid->qbuf.paddr_aligned;
|
||||
ret = ath12k_wmi_peer_rx_reorder_queue_setup(ar, vdev_id,
|
||||
peer_mac,
|
||||
paddr_aligned, tid,
|
||||
|
|
@ -1098,6 +1098,7 @@ int ath12k_dp_rx_peer_tid_setup(struct ath12k *ar, const u8 *peer_mac, int vdev_
|
|||
return ret;
|
||||
}
|
||||
|
||||
paddr_aligned = rx_tid->qbuf.paddr_aligned;
|
||||
if (ab->hw_params->reoq_lut_support) {
|
||||
/* Update the REO queue LUT at the corresponding peer id
|
||||
* and tid with qaddr.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
/*
|
||||
* Copyright (C) 2012-2014, 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2012-2014, 2018-2025 Intel Corporation
|
||||
* Copyright (C) 2013-2015 Intel Mobile Communications GmbH
|
||||
* Copyright (C) 2016-2017 Intel Deutschland GmbH
|
||||
*/
|
||||
|
|
@ -754,7 +754,7 @@ struct iwl_lari_config_change_cmd_v10 {
|
|||
* according to the BIOS definitions.
|
||||
* For LARI cmd version 11 - bits 0:4 are supported.
|
||||
* For LARI cmd version 12 - bits 0:6 are supported and bits 7:31 are
|
||||
* reserved. No need to mask out the reserved bits.
|
||||
* reserved.
|
||||
* @force_disable_channels_bitmap: Bitmap of disabled bands/channels.
|
||||
* Each bit represents a set of channels in a specific band that should be
|
||||
* disabled
|
||||
|
|
@ -787,6 +787,7 @@ struct iwl_lari_config_change_cmd {
|
|||
/* Activate UNII-1 (5.2GHz) for World Wide */
|
||||
#define ACTIVATE_5G2_IN_WW_MASK BIT(4)
|
||||
#define CHAN_STATE_ACTIVE_BITMAP_CMD_V11 0x1F
|
||||
#define CHAN_STATE_ACTIVE_BITMAP_CMD_V12 0x7F
|
||||
|
||||
/**
|
||||
* struct iwl_pnvm_init_complete_ntfy - PNVM initialization complete
|
||||
|
|
|
|||
|
|
@ -614,6 +614,7 @@ int iwl_fill_lari_config(struct iwl_fw_runtime *fwrt,
|
|||
|
||||
ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ACTIVATE_CHANNEL, &value);
|
||||
if (!ret) {
|
||||
value &= CHAN_STATE_ACTIVE_BITMAP_CMD_V12;
|
||||
if (cmd_ver < 8)
|
||||
value &= ~ACTIVATE_5G2_IN_WW_MASK;
|
||||
|
||||
|
|
|
|||
|
|
@ -251,8 +251,10 @@ void iwl_mld_configure_lari(struct iwl_mld *mld)
|
|||
cpu_to_le32(value &= DSM_UNII4_ALLOW_BITMAP);
|
||||
|
||||
ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ACTIVATE_CHANNEL, &value);
|
||||
if (!ret)
|
||||
if (!ret) {
|
||||
value &= CHAN_STATE_ACTIVE_BITMAP_CMD_V12;
|
||||
cmd.chan_state_active_bitmap = cpu_to_le32(value);
|
||||
}
|
||||
|
||||
ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ENABLE_6E, &value);
|
||||
if (!ret)
|
||||
|
|
|
|||
|
|
@ -546,8 +546,10 @@ again:
|
|||
}
|
||||
|
||||
if (WARN_ON(trans->do_top_reset &&
|
||||
trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_SC))
|
||||
return -EINVAL;
|
||||
trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_SC)) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* we need to wait later - set state */
|
||||
if (trans->do_top_reset)
|
||||
|
|
|
|||
|
|
@ -2101,10 +2101,10 @@ static void iwl_txq_gen1_update_byte_cnt_tbl(struct iwl_trans *trans,
|
|||
|
||||
bc_ent = cpu_to_le16(len | (sta_id << 12));
|
||||
|
||||
scd_bc_tbl[txq_id * BC_TABLE_SIZE + write_ptr].tfd_offset = bc_ent;
|
||||
scd_bc_tbl[txq_id * TFD_QUEUE_BC_SIZE + write_ptr].tfd_offset = bc_ent;
|
||||
|
||||
if (write_ptr < TFD_QUEUE_SIZE_BC_DUP)
|
||||
scd_bc_tbl[txq_id * BC_TABLE_SIZE + TFD_QUEUE_SIZE_MAX + write_ptr].tfd_offset =
|
||||
scd_bc_tbl[txq_id * TFD_QUEUE_BC_SIZE + TFD_QUEUE_SIZE_MAX + write_ptr].tfd_offset =
|
||||
bc_ent;
|
||||
}
|
||||
|
||||
|
|
@ -2328,10 +2328,10 @@ static void iwl_txq_gen1_inval_byte_cnt_tbl(struct iwl_trans *trans,
|
|||
|
||||
bc_ent = cpu_to_le16(1 | (sta_id << 12));
|
||||
|
||||
scd_bc_tbl[txq_id * BC_TABLE_SIZE + read_ptr].tfd_offset = bc_ent;
|
||||
scd_bc_tbl[txq_id * TFD_QUEUE_BC_SIZE + read_ptr].tfd_offset = bc_ent;
|
||||
|
||||
if (read_ptr < TFD_QUEUE_SIZE_BC_DUP)
|
||||
scd_bc_tbl[txq_id * BC_TABLE_SIZE + TFD_QUEUE_SIZE_MAX + read_ptr].tfd_offset =
|
||||
scd_bc_tbl[txq_id * TFD_QUEUE_BC_SIZE + TFD_QUEUE_SIZE_MAX + read_ptr].tfd_offset =
|
||||
bc_ent;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2690,7 +2690,7 @@ struct cfg80211_scan_request {
|
|||
s8 tsf_report_link_id;
|
||||
|
||||
/* keep last */
|
||||
struct ieee80211_channel *channels[] __counted_by(n_channels);
|
||||
struct ieee80211_channel *channels[];
|
||||
};
|
||||
|
||||
static inline void get_random_mask_addr(u8 *buf, const u8 *addr, const u8 *mask)
|
||||
|
|
|
|||
Loading…
Reference in New Issue