Commit e49f95dc authored by Paolo Abeni's avatar Paolo Abeni
Browse files

Merge tag 'wireless-2025-07-17' of...

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: default avatarPaolo Abeni <pabeni@redhat.com>
parents 69b1b21a bbc19fef
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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.
+3 −2
Original line number Diff line number Diff line
/* 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
+1 −0
Original line number Diff line number Diff line
@@ -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;

+3 −1
Original line number Diff line number Diff line
@@ -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)
+4 −2
Original line number Diff line number Diff line
@@ -546,8 +546,10 @@ int iwl_trans_pcie_gen2_start_fw(struct iwl_trans *trans,
	}

	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)
Loading