From patchwork Wed Apr 23 05:50:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884348 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 871FC26462C for ; Wed, 23 Apr 2025 05:50:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387453; cv=none; b=n20JIL1ArIWMc6r3OmYCdCdWjDqSariEhwZ5wdFLcMP8yhgWnHr82KpxdU7WdslIvh6YeE7ZszpE7BPhG7SAts1JN5kdRd+DC8zp6wPOQ4ez4OdHQc6lMuqKxiTnjYmTInQFXUPp/+f8nLaKZHuQjinsR/DRyMvB69i55Euweq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387453; c=relaxed/simple; bh=JjWMqa+PLxdUGrCT7fLZo+1F/pQQ3ynROXEYgLdn02Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RFY9z3WYWaIrlTacZGELRohZh7EC9IfeTp9lWPceSgRNSnpqU8w09WdR5UZvNqYzqzmwT8WMF75S42Il9+1VIlGzxMur94mQ8ow8CWrJwdYRiRhx6BfgYYApF0gX+sM6B/2WC7KzF4bsVak7EG/QpTiRRLbffgNELuyOmLjY8Qk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=SMwcBulD; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="SMwcBulD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387451; x=1776923451; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JjWMqa+PLxdUGrCT7fLZo+1F/pQQ3ynROXEYgLdn02Y=; b=SMwcBulDqjJCJ3jrizVTZqONC5/MOjPA6F+j1yqNYKU5SvhyToSIL1Dj vnap3tnefWxNVDGvs/IFgMaH8xh/+dMf4mN8uVwSm3xnUv40WKXGCF4hr rUuxa7s70MpCOvy1t86WGnP/pqc7WW2gc0boEzgjUQgMSe/OL3+xkF1fi cDZl5RpA40uj3bNjT/xBzcKY7AYKTtPdLrUypEc6kmXfq9DlaDtEhVN4L 0aUKFuVepqTG05MyO6EgIAH5KTOdBjOmDQqgB/bm843rO9rFHzLkIssxw /7A3IvAsGx0cpBsG1lYEjMfJdyUNJ1CvtLSai5hOkpHMIP1HyhMfiyfHo g==; X-CSE-ConnectionGUID: wrulUb98T7q0vuIBzrpkJw== X-CSE-MsgGUID: om9a3sRySpWY6scWnxH8Zw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844613" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844613" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:51 -0700 X-CSE-ConnectionGUID: EesnaCyRTD6/g/ZImoroGg== X-CSE-MsgGUID: s7DCOzJxTcy9CDXFwEbKTQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164298" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:50 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 01/17] wifi: iwlwifi: mvm: remove IWL_EMPTYING_HW_QUEUE_DELBA state Date: Wed, 23 Apr 2025 08:50:20 +0300 Message-Id: <20250423084826.e8a20fb41dc5.I9cd41a15148c90e953335e7020405103ba3fc7f0@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg This state can never be entered, since the last place using it was removed with non-DQA mode in commit c8f54701bdbf ("iwlwifi: mvm: remove non-DQA mode"). Clean up this code too. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 5 +---- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 14 ++------------ 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h index 19c905b641e2..af62c7f7c834 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h @@ -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-2014 Intel Mobile Communications GmbH * Copyright (C) 2015-2016 Intel Deutschland GmbH */ @@ -225,8 +225,6 @@ struct iwl_mvm_vif; * @IWL_AGG_ON: aggregation session is up * @IWL_EMPTYING_HW_QUEUE_ADDBA: establishing a BA session - waiting for the * HW queue to be empty from packets for this RA /TID. - * @IWL_EMPTYING_HW_QUEUE_DELBA: tearing down a BA session - waiting for the - * HW queue to be empty from packets for this RA /TID. */ enum iwl_mvm_agg_state { IWL_AGG_OFF = 0, @@ -234,7 +232,6 @@ enum iwl_mvm_agg_state { IWL_AGG_STARTING, IWL_AGG_ON, IWL_EMPTYING_HW_QUEUE_ADDBA, - IWL_EMPTYING_HW_QUEUE_DELBA, }; /** diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c index f67afb66ef2b..91f6945f3f98 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -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 */ @@ -1372,8 +1372,7 @@ static void iwl_mvm_check_ratid_empty(struct iwl_mvm *mvm, lockdep_assert_held(&mvmsta->lock); - if ((tid_data->state == IWL_AGG_ON || - tid_data->state == IWL_EMPTYING_HW_QUEUE_DELBA) && + if (tid_data->state == IWL_AGG_ON && iwl_mvm_tid_queued(mvm, tid_data) == 0) { /* * Now that this aggregation or DQA queue is empty tell @@ -1402,15 +1401,6 @@ static void iwl_mvm_check_ratid_empty(struct iwl_mvm *mvm, tid_data->state = IWL_AGG_STARTING; ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); break; - - case IWL_EMPTYING_HW_QUEUE_DELBA: - IWL_DEBUG_TX_QUEUES(mvm, - "Can continue DELBA flow ssn = next_recl = %d\n", - tid_data->next_reclaimed); - tid_data->state = IWL_AGG_OFF; - ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); - break; - default: break; } From patchwork Wed Apr 23 05:50:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883749 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94A05266B47 for ; Wed, 23 Apr 2025 05:50:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387454; cv=none; b=QbYZJdIKoSYQ2wCCJsdzSBnwATE0KGz0W6BMKNlBn3/cdKNe5FEHBbWCOC8A9nSKh4dHV95niyQru+5mdHgXv+Xm733XyXmpVjayT78GHlJotC7ES8sdF7rQZVtvAZLNbeyr/+kuQpZwBEahraq9sG2LdZ8ncE6Q6Ww+b4xodYI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387454; c=relaxed/simple; bh=nZNwPewvg76PjjaVgFfRyzeodqBY47odI5aOUnfzcfw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NJiDA1BX0yDLFPS29dQRxx7tZGhsEvUP3HEs/B9q7eoJ0Rvw+QAU2KHCv5pdiJJz9vUSzICrrYs5UE8emxG21Vq2UbWGnQ70LZo3WRsc1DCu10k+VSEUYvYKU0qLg5epxaYpgFtQ1t5aqfQTXcwlaL07xkJ6xXsoV4B07I5q1/k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=VEUMPs+R; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="VEUMPs+R" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387452; x=1776923452; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nZNwPewvg76PjjaVgFfRyzeodqBY47odI5aOUnfzcfw=; b=VEUMPs+R7mrV4845UzObr47MTb+Wy68yzDRovjqZCm/Px0ToXN2XHGxs uz182iEuWhLaqqYYlmzoESXxxpclzF25tW+A/7T8SPIk59V3ztnA1BM02 2C0rhqGaNQosB7TyBMPomjoTDl8Q2sf+BCqbNTa8Lryrg5DslR0FD4yqZ NcdXaiQ61DBmsEq4/OIxZLLBJ1cxt/ppFxvv/bv1PrYcRkx0vdSpkCvzu ww8czjbv90/BvZY9onSGlROJOCRD0wie9w3t0P1hl5SMPvRBPTwM/5qPW /8Vx8P91HrYcq8+1INLKYNtgas5b0uJqehX4srD7UYccyv/RAY7UNqqrq A==; X-CSE-ConnectionGUID: FhK5X0eVQpW4YpEp5a9kaQ== X-CSE-MsgGUID: u2hLs/AqSmeS4/1rDU36Jg== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844616" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844616" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:52 -0700 X-CSE-ConnectionGUID: QT+kBLQuRayZc0Qv4l8EgQ== X-CSE-MsgGUID: rsu3i4OlTSuLbdSwla93MQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164306" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:51 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 02/17] wifi: iwlwifi: fw: do reset handshake during assert if needed Date: Wed, 23 Apr 2025 08:50:21 +0300 Message-Id: <20250423084826.10adafedb74b.Ie3911db1ebbd196ae4b0de1c53012aa1de193c0d@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Earlier, the firmware could only request the reset handshake is done during the dump, if the dump was split. However, it's also needed when the dump isn't split, in which case it must be done before the dump. The firmware now advertises this requirement, so do the handshake in the non-split case when asked for. Rename apply policy ..._RESET_HANDSHAKE to ..._SPLIT_DUMP_RESET to more clearly indicate that this specific dump needs to be split, while the handshake requirement overall is now indicated by the new capability flag. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 8 ++++---- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 15 ++++++++++++--- drivers/net/wireless/intel/iwlwifi/fw/file.h | 7 +++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h b/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h index 4fab6c66994e..3173fa96cb48 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h @@ -527,8 +527,8 @@ enum iwl_fw_ini_time_point { * @IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA: override trigger data. * Append otherwise * @IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD: send cmd once dump collected - * @IWL_FW_INI_APPLY_POLICY_RESET_HANDSHAKE: perform reset handshake and - * split dump to before/after with region marking + * @IWL_FW_INI_APPLY_POLICY_SPLIT_DUMP_RESET: split this dump into regions + * before and after the reset handshake */ enum iwl_fw_ini_trigger_apply_policy { IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT = BIT(0), @@ -537,7 +537,7 @@ enum iwl_fw_ini_trigger_apply_policy { IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG = BIT(9), IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA = BIT(10), IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD = BIT(16), - IWL_FW_INI_APPLY_POLICY_RESET_HANDSHAKE = BIT(17), + IWL_FW_INI_APPLY_POLICY_SPLIT_DUMP_RESET = BIT(17), }; /** @@ -560,7 +560,7 @@ enum iwl_fw_ini_trigger_reset_fw_policy { * @IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB: mini dump only 600KB region dump * @IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB: mini dump 5MB size dump * @IWL_FW_IWL_DEBUG_DUMP_POLICY_BEFORE_RESET: dump this region before reset - * handshake (if requested by %IWL_FW_INI_APPLY_POLICY_RESET_HANDSHAKE) + * handshake (if requested by %IWL_FW_INI_APPLY_POLICY_SPLIT_DUMP_RESET) */ enum iwl_fw_ini_dump_policy { IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT = BIT(0), diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c index 03f639fbf9b6..e70eebf079be 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c @@ -2624,6 +2624,12 @@ enum iwl_dump_ini_region_selector { IWL_INI_DUMP_LATE_REGIONS, }; +static bool iwl_dump_due_to_error(enum iwl_fw_ini_time_point tp_id) +{ + return tp_id == IWL_FW_INI_TIME_POINT_FW_ASSERT || + tp_id == IWL_FW_INI_TIME_POINT_FW_HW_ERROR; +} + static u32 iwl_dump_ini_dump_regions(struct iwl_fw_runtime *fwrt, struct iwl_fwrt_dump_data *dump_data, @@ -2689,8 +2695,7 @@ iwl_dump_ini_dump_regions(struct iwl_fw_runtime *fwrt, * debug data which also need to be collected. */ if (reg_type == IWL_FW_INI_REGION_DRAM_IMR) { - if (tp_id == IWL_FW_INI_TIME_POINT_FW_ASSERT || - tp_id == IWL_FW_INI_TIME_POINT_FW_HW_ERROR) + if (iwl_dump_due_to_error(tp_id)) imr_reg_data->reg_tlv = fwrt->trans->dbg.active_regions[i]; else @@ -2727,7 +2732,7 @@ static u32 iwl_dump_ini_trigger(struct iwl_fw_runtime *fwrt, ARRAY_SIZE(fwrt->trans->dbg.active_regions)); if (trigger->time_point & - cpu_to_le32(IWL_FW_INI_APPLY_POLICY_RESET_HANDSHAKE)) { + cpu_to_le32(IWL_FW_INI_APPLY_POLICY_SPLIT_DUMP_RESET)) { size += iwl_dump_ini_dump_regions(fwrt, dump_data, list, tp_id, regions_mask, &imr_reg_data, IWL_INI_DUMP_EARLY_REGIONS); @@ -2736,6 +2741,10 @@ static u32 iwl_dump_ini_trigger(struct iwl_fw_runtime *fwrt, regions_mask, &imr_reg_data, IWL_INI_DUMP_LATE_REGIONS); } else { + if (fw_has_capa(&fwrt->fw->ucode_capa, + IWL_UCODE_TLV_CAPA_RESET_DURING_ASSERT) && + iwl_dump_due_to_error(tp_id)) + iwl_trans_pcie_fw_reset_handshake(fwrt->trans); size += iwl_dump_ini_dump_regions(fwrt, dump_data, list, tp_id, regions_mask, &imr_reg_data, IWL_INI_DUMP_ALL_REGIONS); diff --git a/drivers/net/wireless/intel/iwlwifi/fw/file.h b/drivers/net/wireless/intel/iwlwifi/fw/file.h index 9860903ecd3f..9155d64c4a58 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/file.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h @@ -504,6 +504,13 @@ enum iwl_ucode_tlv_capa { IWL_UCODE_TLV_CAPA_MONITOR_PASSIVE_CHANS = (__force iwl_ucode_tlv_capa_t)122, IWL_UCODE_TLV_CAPA_BIOS_OVERRIDE_5G9_FOR_CA = (__force iwl_ucode_tlv_capa_t)123, IWL_UCODE_TLV_CAPA_UHB_CANADA_TAS_SUPPORT = (__force iwl_ucode_tlv_capa_t)124, + + /* set 4 */ + /** + * @IWL_UCODE_TLV_CAPA_RESET_DURING_ASSERT: FW reset handshake is needed + * during assert handling even if the dump isn't split + */ + IWL_UCODE_TLV_CAPA_RESET_DURING_ASSERT = (__force iwl_ucode_tlv_capa_t)(4 * 32 + 0), NUM_IWL_UCODE_TLV_CAPA /* * This construction make both sparse (which cannot increment the previous From patchwork Wed Apr 23 05:50:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884347 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5787266B51 for ; Wed, 23 Apr 2025 05:50:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387455; cv=none; b=MnEsLYBVRGVDiq+XaJMDeEjLc38tc1JELwJ9DV9L9JvZ0cULAAEWnb+RvOk1hyXnpjHMHHxjGxA+twbmn3bqCxufdJV1MHMyLkOm/QwD8JOSsGBbDSFMrMt/jGOy3MBx/Pxo/vWy3Cxe96fEa+FyLKP6emAsY200mSqnsL6GvfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387455; c=relaxed/simple; bh=g6BiFm89esW+8V8YJ24jsMF1JDmgXbzryMkXVjpvqIM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fXLYsjGXQ/qtuLDsX1iEvOeNlICpQUS9/avGL3DEFX7pd8+45Yx70RfieSBr+MTNcrWztaNMnkxwQ2XN7V+NQmpsMmvtM2+GEtvIcEiE2jGaAiVuYiNcx5Sq71OCLhJy/eII1DyL5/3eFY7k4EM/MoCMVparkTL9AVEAM68QWlo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Jp98w9Jj; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Jp98w9Jj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387453; x=1776923453; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=g6BiFm89esW+8V8YJ24jsMF1JDmgXbzryMkXVjpvqIM=; b=Jp98w9Jj5sMawQrEZxg1sCyhm5x9Nw1P7b1UZ6xqi/CwT/VVoM7m8kn7 mjehAW21ATkzwSLrGJa0Wcp7ZJOXDs0tk2OVBsPdzENgLx0npzYXPW5x5 1Vl6PkteyPviba8atzpgNjD4aBie1Jr8dgwhqfgZ6QT/dgaoYTp013t3H KDUy83ttFojlx1YsbqEjxZhibRHVjkHvyXO+M6GUiKuG6tsAeKtta6hx4 5fK50S9k+YXFZR8NjQkZh7eBSUPEGpYE+F/hoySs9SkwxlilD9pdDefh3 EQjZS12didWAlM5U987zJN/7LHMYCO61Yf1Hl1iEqj//rpJkXAshgio/E g==; X-CSE-ConnectionGUID: NNOLrlyzRSeDU3eSLkpCmg== X-CSE-MsgGUID: DEB8cTl3TZ26C3P3Wz/a+Q== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844619" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844619" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:53 -0700 X-CSE-ConnectionGUID: TyHzT6VEQz2Ldts0dchRFw== X-CSE-MsgGUID: l3EcZlNYRH65eFlXIVMRbg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164309" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:52 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org Subject: [PATCH wireless 03/17] wifi: iwlwifi: re-add IWL_AMSDU_8K case Date: Wed, 23 Apr 2025 08:50:22 +0300 Message-Id: <20250423084826.ef19205aa358.Ifbf89e7b7391cd7070267b7360c53230b3b2c57c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited This case in iwl_trans_get_rb_size_order was accidently combined with the IWL_AMSDU_12K case. Fix this. Fixes: 7391b2a4f7db ("wifi: iwlwifi: rework firmware error handling") Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h index 25fb4c50e38b..b9dc1b8794ce 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h @@ -328,6 +328,7 @@ iwl_trans_get_rb_size_order(enum iwl_amsdu_size rb_size) case IWL_AMSDU_4K: return get_order(4 * 1024); case IWL_AMSDU_8K: + return get_order(8 * 1024); case IWL_AMSDU_12K: return get_order(16 * 1024); default: From patchwork Wed Apr 23 05:50:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883748 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD8A4266EE0 for ; Wed, 23 Apr 2025 05:50:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387457; cv=none; b=a1XmFwJGdk4zY2RNw95SVncNAsn/WhyDW2/Z6eiXRZ4w92ho/Ta4XYv7E1eww0o47faz5aJbibwy/9Vl8ChB3fCeZAG8oJHI+KNSdT90uoLPRuHiM1GlOIe4Qgx1S+d2WXUPi0ce5znFWzCo0Ih+3I1WsaVRnfs4ktTzqqZ5h0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387457; c=relaxed/simple; bh=9R/p5e27pnoiAY42Zg51kvE3IwL5/rlJmnxIW0GQFG4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=giE/J/qT8tKp1e004i4kYCa8G5lVjmFw4/ixJ831NhhgXcTgGOneKbsJwwB/5S5+GLewyJieupRt8MNba28xi8kgbh1kggCx6ixKw4XXp5WQClIuZ9BPnHhKDqKmx8OOHrXtZMME1ddSG1AwNW/4JhHtKLpSgXlyAqKdvJFLlUM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=CYzZgUoM; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="CYzZgUoM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387456; x=1776923456; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9R/p5e27pnoiAY42Zg51kvE3IwL5/rlJmnxIW0GQFG4=; b=CYzZgUoMdXiojx5fJ7vm9y7FgsepByBps5YfN+Q61TbokTZadTR1jK+m sIyiIED/edYb1joFBOAg43m+T8MiS8TzcMMNK/CcyQM45rVAuW8TLevgv i2hfcwiAhKxAMPfN92zY0B+ZCt/oD261z76xMgOmTLYzAkLRGzCzrdrN7 inJ6xmEibNtDKkvXA6dPoq1w+roIOJ6DLTi2ePgQx3uzjVzI/iHIAnhmt 6RT0EzTIv6LRGLh3wZL6QST894SyAadBvZQwlTupPGCZyLLzJBCwWJHpC bCGJys+Ex6sWjfSaxwPBAge1myp/k6jKJBlME3TrIBSUhMOT2aUbTe4Bl A==; X-CSE-ConnectionGUID: GoXLEESuRkKZzqf2DgrihQ== X-CSE-MsgGUID: zIDYhFlfQOuAuneYWVLujw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844621" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844621" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:55 -0700 X-CSE-ConnectionGUID: igL8ZEROTGKBuUKZtk91Bg== X-CSE-MsgGUID: 7nhnUPBCTX+bzyg4poxeIw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164319" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:54 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Anjaneyulu , Somashekhar Puttagangaiah Subject: [PATCH wireless 04/17] wifi: iwlwifi: parse active and 20 MHz AP NVM channel flag Date: Wed, 23 Apr 2025 08:50:23 +0300 Message-Id: <20250423084826.897d826a8612.I1f7f84f4485ed3928070c97a031110ccb608bda8@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Anjaneyulu Configure 20 MHz AP mode based on NVM settings, set the NL80211_RRF_ALLOW_20MHZ_ACTIVITY flag, when the NVM indicates that an access point can operate in 20 MHz only. Signed-off-by: Somashekhar Puttagangaiah Signed-off-by: Pagadala Yesu Anjaneyulu Signed-off-by: Miri Korenblit --- Depends on commit: "wifi: cfg80211: allow AP operations in 20 MHz configuration" --- .../wireless/intel/iwlwifi/iwl-nvm-parse.c | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c index cd1b0048bb6d..018752b8c4d8 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -143,6 +143,9 @@ static struct ieee80211_rate iwl_cfg80211_rates[] = { * @NVM_CHANNEL_VALID: channel is usable for this SKU/geo * @NVM_CHANNEL_IBSS: usable as an IBSS channel and deprecated * when %IWL_NVM_SBANDS_FLAGS_LAR enabled. + * @NVM_CHANNEL_ALLOW_20MHZ_ACTIVITY: active scanning allowed and + * AP allowed only in 20 MHz. Valid only + * when %IWL_NVM_SBANDS_FLAGS_LAR enabled. * @NVM_CHANNEL_ACTIVE: active scanning allowed and allows IBSS * when %IWL_NVM_SBANDS_FLAGS_LAR enabled. * @NVM_CHANNEL_RADAR: radar detection required @@ -159,20 +162,21 @@ static struct ieee80211_rate iwl_cfg80211_rates[] = { * @NVM_CHANNEL_AFC: client support connection to UHB AFC AP */ enum iwl_nvm_channel_flags { - NVM_CHANNEL_VALID = BIT(0), - NVM_CHANNEL_IBSS = BIT(1), - NVM_CHANNEL_ACTIVE = BIT(3), - NVM_CHANNEL_RADAR = BIT(4), - NVM_CHANNEL_INDOOR_ONLY = BIT(5), - NVM_CHANNEL_GO_CONCURRENT = BIT(6), - NVM_CHANNEL_UNIFORM = BIT(7), - NVM_CHANNEL_20MHZ = BIT(8), - NVM_CHANNEL_40MHZ = BIT(9), - NVM_CHANNEL_80MHZ = BIT(10), - NVM_CHANNEL_160MHZ = BIT(11), - NVM_CHANNEL_DC_HIGH = BIT(12), - NVM_CHANNEL_VLP = BIT(13), - NVM_CHANNEL_AFC = BIT(14), + NVM_CHANNEL_VALID = BIT(0), + NVM_CHANNEL_IBSS = BIT(1), + NVM_CHANNEL_ALLOW_20MHZ_ACTIVITY = BIT(2), + NVM_CHANNEL_ACTIVE = BIT(3), + NVM_CHANNEL_RADAR = BIT(4), + NVM_CHANNEL_INDOOR_ONLY = BIT(5), + NVM_CHANNEL_GO_CONCURRENT = BIT(6), + NVM_CHANNEL_UNIFORM = BIT(7), + NVM_CHANNEL_20MHZ = BIT(8), + NVM_CHANNEL_40MHZ = BIT(9), + NVM_CHANNEL_80MHZ = BIT(10), + NVM_CHANNEL_160MHZ = BIT(11), + NVM_CHANNEL_DC_HIGH = BIT(12), + NVM_CHANNEL_VLP = BIT(13), + NVM_CHANNEL_AFC = BIT(14), }; /** @@ -1659,6 +1663,10 @@ static u32 iwl_nvm_get_regdom_bw_flags(const u16 *nvm_chan, if (nvm_flags & NVM_CHANNEL_INDOOR_ONLY) flags |= NL80211_RRF_NO_OUTDOOR; + if (nvm_flags & NVM_CHANNEL_ALLOW_20MHZ_ACTIVITY && + flags & NL80211_RRF_NO_IR) + flags |= NL80211_RRF_ALLOW_20MHZ_ACTIVITY; + /* Set the GO concurrent flag only in case that NO_IR is set. * Otherwise it is meaningless */ From patchwork Wed Apr 23 05:50:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884346 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68D4B264A96 for ; Wed, 23 Apr 2025 05:50:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387459; cv=none; b=iNKhbh89isogxCP/MpqWsA/+ojBjTEox1geU8QkuJHaM33h1LGSTKbiv6BGolS0K/diKpesG6E0xuHvNdOL9y6sb6XWsg6parHfcGVPM3Z13PFBJd6sgztMSH64e8yfZI6OAcqS+3imuWLyQQK52EWfKGy97Z/2Ff2x/bUXzIJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387459; c=relaxed/simple; bh=NOq6/f8vnecOpLLLBXcUEJZOu3U+aUpseDi1yRiS2V8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KC7YYb1kc4Cw+KwDDlc8xGH+61DzZDK/9ZqPAfqDi2u+zyxiKcp3yfxbcUJzWjJA/OMFqDd/54uLtGHVdJonOTDPCZ/tZ7urD63USQtZUp19DzmDBqg5PZMbIHlhuHoejgdLM+ve0s6SR/5Sb361c8j5SA8JJ8eYiGJvUL4zKdg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Rav2x9Z9; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Rav2x9Z9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387457; x=1776923457; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NOq6/f8vnecOpLLLBXcUEJZOu3U+aUpseDi1yRiS2V8=; b=Rav2x9Z9MfrOvdlPhX3FagI0Ny9mnRoD7BM6UjKwh+rC7UKQQKshx6Q7 4PS0ozz187th+ZQx/L352Oez2QaKpA2xPL6CpaMzdx/QxdkcraoxRbqWN L/KTVla8j1lXY7HcBulnWcZK5GYDYTkiTjNOR/jusshBC9mbeBZeRMxin NbEChjFFkgkitX6XdtymvnlfiSXxukXP4jQrpVuvH0d/09ddPTg8n8K+R YHF82psN/ZzyYCAmJD+j8NNCvL2W9QToA7PVBf/AD/6wfuUJYoSuE4MJx VqTPHSATsL9EHnTKLvXR6OI2Dnmr3ircREAABkCcudabV1KFRiEDne6WM Q==; X-CSE-ConnectionGUID: M4Vwbn/QSo6dt6TxQ15oAA== X-CSE-MsgGUID: 50J0iOdaT/++YHNvT0rang== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844624" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844624" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:57 -0700 X-CSE-ConnectionGUID: mLr2VFypT8GK0+EcvMgCww== X-CSE-MsgGUID: HrSRVU6tSCCNv/AsxTJDsw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164324" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:55 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg , Emmanuel Grumbach Subject: [PATCH wireless 05/17] wifi: iwlwifi: mld: remove P2P powersave tracking Date: Wed, 23 Apr 2025 08:50:24 +0300 Message-Id: <20250423084826.ee164b464c21.I29de491b4d74b2b8084e54bfbd28646b15dee196@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Since the FW is tracking the CT window by itself, we don't need to update the MAC context or even fill in the value. We just had added that because a firmware bug had broken it for a while. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/iface.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/iface.c b/drivers/net/wireless/intel/iwlwifi/mld/iface.c index e49e2260ac05..47b5b31b5b91 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/iface.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/iface.c @@ -226,11 +226,6 @@ static void iwl_mld_fill_mac_cmd_sta(struct iwl_mld *mld, if (vif->probe_req_reg && vif->cfg.assoc && vif->p2p) cmd->filter_flags |= cpu_to_le32(MAC_CFG_FILTER_ACCEPT_PROBE_REQ); - - if (vif->p2p) - cmd->client.ctwin = - cpu_to_le32(vif->bss_conf.p2p_noa_attr.oppps_ctwindow & - IEEE80211_P2P_OPPPS_CTWINDOW_MASK); } static void iwl_mld_fill_mac_cmd_ap(struct iwl_mld *mld, From patchwork Wed Apr 23 05:50:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883747 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 734FA266EF0 for ; Wed, 23 Apr 2025 05:50:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387460; cv=none; b=jMTOEIuGErZ4uP86uS4XTdjqoRZOcQnvwxQINHP+BRdKMduBPCvMIeXBysdk3eCwRB9RcTgswRcdXZe/ZeeVb++0iD1Ht461FbAwZ100XQNZ5KxJxP8wukKU/gTjW9bd6E60DGL+nDjLZv8yOph82OTCZ0/u1vZMmYZ4yYLm7JU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387460; c=relaxed/simple; bh=E7v+HbxbPv0UBZZyCsSQiz0aYRzKOgZiYHNQEYGcHdk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KmyBD5AOMM4YRpYcD9DgIJO3Dm7FeLMk+AfKRsZv+cVR0j6LW7cFoipUxvRU/bwlN529vKH91xqlHh44BwJZBB1N6PAVski1SCSH2t0nyLMkMmArHglVZ2EdWKTkVfTNxk8O6vLXtiKq9u/W7gC1S6jxKSR1AFfwFdyOsDfJV+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=N8wj3xx7; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="N8wj3xx7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387458; x=1776923458; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E7v+HbxbPv0UBZZyCsSQiz0aYRzKOgZiYHNQEYGcHdk=; b=N8wj3xx72FwKt0J+dY1iXxFJC5XbGKjf/rEU7z9k62z2e0tuld82d8bT 2uLMm7vZshcWo56N/5ITg4dn9GyLed1EudXIK1zZx6eODloMMu4Mt+iFO TOWWSvLMpckvg/2M7Rlsjkj/784qr/t5jSKrVzQI/15IB15Yqn5IVIkNw lpS2InsD16PNCJ5UI2QEvwV1F/T1pMEQm9cZj1EaRaz4KQN8C0ZoaORWJ hAGz6OylKxiIaelGbWkUdgJgJg3w84A8QN++WmwiNY1AE0BPIp86/yfcO rYu2L+FF7BtcvYBIQP7WV1kaGv9WdwiShW6uJnjSBtWLwtCurcAUvWO18 w==; X-CSE-ConnectionGUID: Fez6x9xlQVObxcqr7j1/YA== X-CSE-MsgGUID: IugdRJ+4QgSXC/MLpUtksg== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844626" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844626" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:58 -0700 X-CSE-ConnectionGUID: crGBkkLFSkOPFt0BxMejFA== X-CSE-MsgGUID: +RkQmLzJR5WbEAeOO8+6og== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164328" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:57 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Emmanuel Grumbach Subject: [PATCH wireless 06/17] wifi: iwlwifi: mld: remove stored_beacon support Date: Wed, 23 Apr 2025 08:50:25 +0300 Message-Id: <20250423084826.2bb3ea3ff79b.Ie8f1d89f59d45a960a5fe63e7b717527251350ad@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Emmanuel Grumbach We never ask the firmware to store the beacon, so it won't ever send the notification. Remove the handling of that notification. Remove that notification from the arrays of the notifications' names and add the ones that we forgot to add. Signed-off-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/mld.c | 4 +- .../net/wireless/intel/iwlwifi/mld/notif.c | 45 ------------------- 2 files changed, 3 insertions(+), 46 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c index d4a99ae64074..367f9738c011 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c @@ -286,7 +286,9 @@ static const struct iwl_hcmd_names iwl_mld_statistics_names[] = { * Access is done through binary search */ static const struct iwl_hcmd_names iwl_mld_prot_offload_names[] = { - HCMD_NAME(STORED_BEACON_NTF), + HCMD_NAME(WOWLAN_WAKE_PKT_NOTIFICATION), + HCMD_NAME(WOWLAN_INFO_NOTIFICATION), + HCMD_NAME(D3_END_NOTIFICATION), }; /* Please keep this array *SORTED* by hex value. diff --git a/drivers/net/wireless/intel/iwlwifi/mld/notif.c b/drivers/net/wireless/intel/iwlwifi/mld/notif.c index fc18cba8aaa8..b8a3204c7847 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/notif.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/notif.c @@ -182,47 +182,6 @@ static void iwl_mld_handle_mu_mimo_grp_notif(struct iwl_mld *mld, notif); } -static void -iwl_mld_handle_stored_beacon_notif(struct iwl_mld *mld, - struct iwl_rx_packet *pkt) -{ - unsigned int pkt_len = iwl_rx_packet_payload_len(pkt); - struct iwl_stored_beacon_notif *sb = (void *)pkt->data; - struct ieee80211_rx_status rx_status = {}; - struct sk_buff *skb; - u32 size = le32_to_cpu(sb->common.byte_count); - - if (size == 0) - return; - - if (pkt_len < struct_size(sb, data, size)) - return; - - skb = alloc_skb(size, GFP_ATOMIC); - if (!skb) { - IWL_ERR(mld, "alloc_skb failed\n"); - return; - } - - /* update rx_status according to the notification's metadata */ - rx_status.mactime = le64_to_cpu(sb->common.tsf); - /* TSF as indicated by the firmware is at INA time */ - rx_status.flag |= RX_FLAG_MACTIME_PLCP_START; - rx_status.device_timestamp = le32_to_cpu(sb->common.system_time); - rx_status.band = - iwl_mld_phy_band_to_nl80211(le16_to_cpu(sb->common.band)); - rx_status.freq = - ieee80211_channel_to_frequency(le16_to_cpu(sb->common.channel), - rx_status.band); - - /* copy the data */ - skb_put_data(skb, sb->data, size); - memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status)); - - /* pass it as regular rx to mac80211 */ - ieee80211_rx_napi(mld->hw, NULL, skb, NULL); -} - static void iwl_mld_handle_channel_switch_start_notif(struct iwl_mld *mld, struct iwl_rx_packet *pkt) @@ -361,8 +320,6 @@ CMD_VERSIONS(ct_kill_notif, CMD_VER_ENTRY(2, ct_kill_notif)) CMD_VERSIONS(temp_notif, CMD_VER_ENTRY(2, iwl_dts_measurement_notif)) -CMD_VERSIONS(stored_beacon_notif, - CMD_VER_ENTRY(4, iwl_stored_beacon_notif)) CMD_VERSIONS(roc_notif, CMD_VER_ENTRY(1, iwl_roc_notif)) CMD_VERSIONS(probe_resp_data_notif, @@ -473,8 +430,6 @@ const struct iwl_rx_handler iwl_mld_rx_handlers[] = { RX_HANDLER_OF_ROC(MAC_CONF_GROUP, ROC_NOTIF, roc_notif) RX_HANDLER_NO_OBJECT(DATA_PATH_GROUP, MU_GROUP_MGMT_NOTIF, mu_mimo_grp_notif, RX_HANDLER_SYNC) - RX_HANDLER_NO_OBJECT(PROT_OFFLOAD_GROUP, STORED_BEACON_NTF, - stored_beacon_notif, RX_HANDLER_SYNC) RX_HANDLER_OF_VIF(MAC_CONF_GROUP, PROBE_RESPONSE_DATA_NOTIF, probe_resp_data_notif) RX_HANDLER_NO_OBJECT(PHY_OPS_GROUP, CT_KILL_NOTIFICATION, From patchwork Wed Apr 23 05:50:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884345 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD524266B4C for ; Wed, 23 Apr 2025 05:50:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387461; cv=none; b=P33ZDCjqa2/9yWK4nDcRAMTJQX2JsbOmHjR1QGEcTRbg7eZ88Fu1zOANcoJttc7d7n7jRHTDeVJwtz1NXO+FLdWin0TjFXWNy9zMwhlOhDLEAjJuOu0w+KHYFkKIviWLwUi0L+yLY1e8zXz7mgukIje8FO+bgqXfMYm1N7+nXtM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387461; c=relaxed/simple; bh=csjViaGQSf5FNOj5F04VW80J5j/q0jWBsIx0qDESDYw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=k4YtETgwOIFmlbsJXYBLMh/2cHqzIJdhyDy+SxAG2tT+s3v16KI07zonWzXKBLdMMY7UwdRSM3wr1zJQ50cERico5DG95zvjj+HIaw8+9w3vYPx+yXF17h32F/2loPq6OmiFIGXnAUKVqJ5DDKp5OvNBzUfmmaYqD/wFu3hiJfw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=O+hkjUvA; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="O+hkjUvA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387460; x=1776923460; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=csjViaGQSf5FNOj5F04VW80J5j/q0jWBsIx0qDESDYw=; b=O+hkjUvAGKaFarflrSkbQxY4ji/bYY8Vz1rifARXUWueKyS38almrCoW mXDn8z3hol0LDLr5dC2GiQiZiG7/UPoP+2GTWoB2hvOZju4/8S9PwN7kW z4oVxeVFwQeK0OXA0fOViQsQNGkBUHCjPbOeZOGlqtTM4CxikvM9oeNLU Y2EBESOM0rL9AHozOk/0Xfn1tW2WV3+Fic7misnPgJ1RfC/ElaanqFFk6 8JXso8nbM/rt99OrYx2SX1I4mGg0plPYQWtzD/JaRkUA929P5b/cObYjm pfb22oSa+9YvU5kOhlKRz3SqTJ7886ksxW5Vt1yMwatOS+nrsqaKMHaqp A==; X-CSE-ConnectionGUID: dfywnPW0Trq/mKOXCOW4Ew== X-CSE-MsgGUID: zxdvA9N+Rii5emTWqNtbnA== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844629" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844629" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:59 -0700 X-CSE-ConnectionGUID: BUVNAteXR2uQKAxRny0GCQ== X-CSE-MsgGUID: XmtMR80ETq+PKSzfLtkXrg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164331" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:50:58 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 07/17] wifi: iwlwifi: mld: avoid memory leak if mcc_init fails Date: Wed, 23 Apr 2025 08:50:26 +0300 Message-Id: <20250423084826.d07469f866ac.I84ad2e624ce7cd4a661c73b4942186e50cdf82b2@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited allocating mld->nvm_data used to be the last thing done in iwl_mld_load_fw, so there was no need to free on any error path of iwl_mld_load_fw. But now iwl_mld_load_fw also calls iwl_mld_init_mcc, that can fail, after allocating nvm->data. In that case, it is not freed. As allocating the NVM data should only be done at op mode start anyway, simply move it to there, where it is already freed in the right error paths. Signed-off-by: Miri Korenblit Reviewed-by: Johannes Berg --- drivers/net/wireless/intel/iwlwifi/mld/fw.c | 11 ----------- drivers/net/wireless/intel/iwlwifi/mld/mld.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/fw.c b/drivers/net/wireless/intel/iwlwifi/mld/fw.c index 62da137e1024..77cc8e4bb498 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/fw.c @@ -11,7 +11,6 @@ #include "fw/dbg.h" #include "fw/pnvm.h" #include "hcmd.h" -#include "iwl-nvm-parse.h" #include "power.h" #include "mcc.h" #include "led.h" @@ -308,16 +307,6 @@ static int iwl_mld_run_fw_init_sequence(struct iwl_mld *mld) goto init_failure; } - if (!mld->nvm_data) { - mld->nvm_data = iwl_get_nvm(mld->trans, mld->fw, 0, 0); - if (IS_ERR(mld->nvm_data)) { - ret = PTR_ERR(mld->nvm_data); - mld->nvm_data = NULL; - IWL_ERR(mld, "Failed to read NVM: %d\n", ret); - goto init_failure; - } - } - return 0; init_failure: diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c index 367f9738c011..8d788af8dcc8 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c @@ -26,6 +26,8 @@ #include "hcmd.h" #include "fw/api/location.h" +#include "iwl-nvm-parse.h" + #define DRV_DESCRIPTION "Intel(R) MLD wireless driver for Linux" MODULE_DESCRIPTION(DRV_DESCRIPTION); MODULE_LICENSE("GPL"); @@ -412,6 +414,14 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, break; } + if (!ret) { + mld->nvm_data = iwl_get_nvm(mld->trans, mld->fw, 0, 0); + if (IS_ERR(mld->nvm_data)) { + IWL_ERR(mld, "Failed to read NVM: %d\n", ret); + ret = PTR_ERR(mld->nvm_data); + } + } + if (ret) { wiphy_unlock(mld->wiphy); rtnl_unlock(); From patchwork Wed Apr 23 05:50:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883746 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4183A266F13 for ; Wed, 23 Apr 2025 05:51:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387463; cv=none; b=MbmdfIEtDLsDjNEIzogVbbONlPA/sXfd/CnIzqLrzcY05tXWyoiAhes0vYYeixlzDd8LIKpV0w52IUmNn7/OrVUCnOcs/dgqfcoO7MOhAFdYpA0aX/FMBcZsS0cgmEZvLq6HP0/A0GONirxn57LkZAsyeMBssNDQ+96yGohokDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387463; c=relaxed/simple; bh=l+2ye8Wn6MGC6tKklV/KB2fZ4l+ccQwr9i/7i+L5scg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YFYzDI+kET2csBnJ2vX+n1QiBnOJ4JZ2IL+DPeuFnET6ayO9pV84PXTWs1TDise0phU7KvUSaZ3XHbwvDpt6WNkOzi5vvwYfxs5w2twff8LtBoBQxbfUgQJlOKBul9Th8Otzokl4kdMq9DcUBGG4grE2HY4kg7LT9ehO5Zl/u8k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=gA0tc9Ww; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="gA0tc9Ww" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387461; x=1776923461; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=l+2ye8Wn6MGC6tKklV/KB2fZ4l+ccQwr9i/7i+L5scg=; b=gA0tc9Wwo68a7s0g/y8MHgVd1rb5h8S1G5ByqxHNfpHtIEcB5lGPF1Xc Y0dx4OiyEtm9UodJlMSiWeOJrZj0B6Z9UdMzxDwJQdEMxmhE0L2VvbkkI FkRDVq7sCy+sJ8vwkobdvce+7M4/hzQng8jrngv3sl/2TxPZRlwb8rxNV LjvsQi7cOAy6aAw63g542gGOPamq9CPZ2DTxLxDgVsPCow0dAeQsBiTbs fFCSqNfZ7qOeGCF3q6e8MOAX1bYktsMl9XxTAHyYuihRqDuqtxqx3IvB4 VxjRvrev+VKor7h13IRF2gAg59I8PnquK/soKaDsgRYW7oxDQsc3HCzap Q==; X-CSE-ConnectionGUID: ZAlE3PXVTu60dyTQJihmEg== X-CSE-MsgGUID: osGbJExXTr+9AZrYR8wVvg== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844631" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844631" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:01 -0700 X-CSE-ConnectionGUID: S7QJq7O8QPm8O+b9PveNOw== X-CSE-MsgGUID: zDNlIuJ8SIqKO6HqV0ydDA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164335" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:00 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 08/17] wifi: iwlwifi: mld: stop hw if mcc_init fails Date: Wed, 23 Apr 2025 08:50:27 +0300 Message-Id: <20250423084826.ba06d972a57b.I317fb7b10ed8a688a0d92c5d99de8765d8044b10@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited iwl_mld_run_fw_init_sequence used to be the last thing done in iwl_mld_load_fw, and if it failed, it called iwl_trans_stop_hw. Now we also have there iwl_mld_init_mcc, and it can fail. In that case, we need to undo what we did so far, which is basically only iwl_trans_stop_device. Do that. Signed-off-by: Miri Korenblit Reviewed-by: Johannes Berg --- drivers/net/wireless/intel/iwlwifi/mld/fw.c | 26 ++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/fw.c b/drivers/net/wireless/intel/iwlwifi/mld/fw.c index 77cc8e4bb498..511df49672b5 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/fw.c @@ -238,22 +238,17 @@ static int iwl_mld_load_fw_wait_alive(struct iwl_mld *mld) iwl_fw_dbg_error_collect(&mld->fwrt, FW_DBG_TRIGGER_ALIVE_TIMEOUT); iwl_mld_print_alive_notif_timeout(mld); - goto alive_failure; + return ret; } if (!alive_valid) { IWL_ERR(mld, "Loaded firmware is not valid!\n"); - ret = -EIO; - goto alive_failure; + return -EIO; } iwl_trans_fw_alive(mld->trans, 0); return 0; - -alive_failure: - iwl_trans_stop_device(mld->trans); - return ret; } static int iwl_mld_run_fw_init_sequence(struct iwl_mld *mld) @@ -279,7 +274,7 @@ static int iwl_mld_run_fw_init_sequence(struct iwl_mld *mld) &mld->fw->ucode_capa); if (ret) { IWL_ERR(mld, "Timeout waiting for PNVM load %d\n", ret); - goto init_failure; + return ret; } iwl_dbg_tlv_time_point(&mld->fwrt, IWL_FW_INI_TIME_POINT_AFTER_ALIVE, @@ -297,21 +292,17 @@ static int iwl_mld_run_fw_init_sequence(struct iwl_mld *mld) if (ret) { IWL_ERR(mld, "Failed to send init config command: %d\n", ret); iwl_remove_notification(&mld->notif_wait, &init_wait); - goto init_failure; + return ret; } ret = iwl_wait_notification(&mld->notif_wait, &init_wait, MLD_INIT_COMPLETE_TIMEOUT); if (ret) { IWL_ERR(mld, "Failed to get INIT_COMPLETE %d\n", ret); - goto init_failure; + return ret; } return 0; - -init_failure: - iwl_trans_stop_device(mld->trans); - return ret; } int iwl_mld_load_fw(struct iwl_mld *mld) @@ -326,15 +317,18 @@ int iwl_mld_load_fw(struct iwl_mld *mld) ret = iwl_mld_run_fw_init_sequence(mld); if (ret) - return ret; + goto err; ret = iwl_mld_init_mcc(mld); if (ret) - return ret; + goto err; mld->fw_status.running = true; return 0; +err: + iwl_trans_stop_device(mld->trans); + return ret; } void iwl_mld_stop_fw(struct iwl_mld *mld) From patchwork Wed Apr 23 05:50:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884344 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D90ED266B4C for ; Wed, 23 Apr 2025 05:51:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387464; cv=none; b=bkHOgwOI1R7dimaSa8lUR8zJjGv1d+uItciP/VcuKslHg8Z/LayoU9dxqt9lw560IaUl4RORS6keJKbl+Ku5OTxiZJYGwZP1ZAWoYUB3FhH1jJgNM74yxSpeRZCYKk9J3qt1DArXcx/wy2CB43jO+7acFhs040BaLx/kUf+OcNs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387464; c=relaxed/simple; bh=9iMzZFYH77hQZH4clEdGsh0IA21gqz3IWXYP8hKdjBA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gV98x20h7WXvv406gSFRqprMefB55UqKqjNB0cY+90JhcmLu3an4zv2iiUWYyzm4PmgnkfjeeuoVXt5G5EStcjw+8/pWL5DvE3LNDlog0IHpjUhK51rXIg7qh/M2zrI91Iwvslr6qXj6fKK5+NrRL81JeREhepENNkPQ40APkFY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=jVL3L10G; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="jVL3L10G" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387463; x=1776923463; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9iMzZFYH77hQZH4clEdGsh0IA21gqz3IWXYP8hKdjBA=; b=jVL3L10GXnFzOH2yBgrT0crlM5/QgfmZXxG00i9W+co7vxaJqZVN0QHT hsyjQHCWOnuuO8DJPwuKbrkAiv9mMQsiL07+3AkM52rs6d/7c8LQvn5Sc WlhbfWRLA66vzRCDgwhYw3Y/RYbGfr2dob6r4KqIIqJJOHh3917HRZtJ3 FMsDVaVwalbECgK/U3ITqZcoMDmFElxwvIOygHaXi9WJAcyAg//OWPxGt XTHUC6RvvEUR1da3CyO935O5a21UeRLYe2k8+KAuSCG9C+mA3fF1VUu7L sDafnnqHgNjSrrATB9qC8D1pqKij1aN+tscgxDIJnV54+AQUdJTENktxJ g==; X-CSE-ConnectionGUID: e85+xnkeQMylRm59KWyV4A== X-CSE-MsgGUID: vMG/FKjzSY6xS8QAbyK+Eg== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844633" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844633" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:03 -0700 X-CSE-ConnectionGUID: R8l8PE54RTaxtzOOmrattA== X-CSE-MsgGUID: lFIpD+NBRu68YvYw+EVALg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164339" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:01 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Daniel Gabay , Johannes Berg Subject: [PATCH wireless 09/17] wifi: iwlwifi: mld: don't do iwl_trans_stop_device twice Date: Wed, 23 Apr 2025 08:50:28 +0300 Message-Id: <20250423084826.f7d86be570d3.Ied68f0c4d126b3b0f1ffd9990bbc43d97f098e24@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited If iwl_mld_load_fw failed, we call iwl_mld_stop_fw which does, among the others, iwl_trans_stop_device. But this is already called from iwl_mld_load_fw's error path. Since we do need the other stuff of iwl_mld_stop_fw to be done also in the error path of iwl_mld_load_fw, just call it there. This also makes the call to iwl_fw_flush_dumps in iwl_mld_op_mope_start redundant, since it is the same as iwl_fw_dbg_stop_sync. Signed-off-by: Miri Korenblit Reviewed-by: Daniel Gabay Reviewed-by: Johannes Berg --- drivers/net/wireless/intel/iwlwifi/mld/fw.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/mld/mld.c | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/fw.c b/drivers/net/wireless/intel/iwlwifi/mld/fw.c index 511df49672b5..76bf83549407 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/fw.c @@ -327,7 +327,7 @@ int iwl_mld_load_fw(struct iwl_mld *mld) return 0; err: - iwl_trans_stop_device(mld->trans); + iwl_mld_stop_fw(mld); return ret; } @@ -502,7 +502,7 @@ int iwl_mld_start_fw(struct iwl_mld *mld) ret = iwl_mld_load_fw(mld); if (IWL_FW_CHECK(mld, ret, "Failed to start firmware %d\n", ret)) { iwl_fw_dbg_error_collect(&mld->fwrt, FW_DBG_TRIGGER_DRIVER); - goto error; + return ret; } IWL_DEBUG_INFO(mld, "uCode started.\n"); diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c index 8d788af8dcc8..2f5b6dc8bc62 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c @@ -425,7 +425,6 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, if (ret) { wiphy_unlock(mld->wiphy); rtnl_unlock(); - iwl_fw_flush_dumps(&mld->fwrt); goto free_hw; } From patchwork Wed Apr 23 05:50:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883745 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4CECB26462C for ; Wed, 23 Apr 2025 05:51:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387467; cv=none; b=uhkH1LtRstUZ9fWkzHxHBz1C7Z9fblSjEUr8pdxcM5W3TdVlfiNzEwm7nsEJTQkP1+It2acqWI8wUYgM08tg2VdNW3jhdhrOrOGGAzslg+cMCN3t8bDCwGx3g/NKaHc0hQxWQawJ8gf8ghU7I9pfuG0Cy+DRkOFOOG2l85YyFeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387467; c=relaxed/simple; bh=my1n6X125pRxeSgwvG3O82GWFlZ1PI6UkcptXzh6dOY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=A7ueWhLO1VDrXyCGc1rwI9EaItdeqkP7wKrm6XPun7FgK+PjQGyZB/L5Ju2AkEoW18CjHS+SmwFgthzOlncgTyoUoTaW3WOIPuhMxCZb4X1ITEo08l0sqgQGWQ2J2d4AtLUEq902aGK1TxEfmlm7RuQbz0R1TvgTGH+GcaRzhtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=SZ2zGEYl; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="SZ2zGEYl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387464; x=1776923464; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=my1n6X125pRxeSgwvG3O82GWFlZ1PI6UkcptXzh6dOY=; b=SZ2zGEYlQ4km0HqIqFH82RH0cpogD4yMCK/x1X0qqH4062kaWg2ianHU cO32dnTmBy/a4GuG20EXe3S51w8sI168ZZ2bO6SZGO53pmKTUxaTn7fmc qmWpHc3doRzl6zI8sVbVAlnQUwI3pumeJepvXG5QcSwwA1BGefhO1+psf mBDrGn7Z3kuWklAMWb3yoN9lIBtjMMq9nmzTdxyRsBlrjuezPrA2rzHyl dvlcb6KpPzq/oC4LntGayut2H25rAIqI37qM/nD3ezNO1c2JmPCvrItvO 3r5IYsmAYLSIGwnbVkrrWr0Ohl8q89t99dlYBfn7O4sMsZagxc83GWLXo A==; X-CSE-ConnectionGUID: PpjvlIfWSSKI5weS+5+s+A== X-CSE-MsgGUID: 7FR7zcpQTWG+vzJcnJTkMw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844635" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844635" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:04 -0700 X-CSE-ConnectionGUID: Ao129LI9SDSWfPrJWTS15Q== X-CSE-MsgGUID: mF9FLk/FQ7mzwVyeiXcocw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164343" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:03 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 10/17] wifi: iwlwifi: mld: refactor purging async notifications Date: Wed, 23 Apr 2025 08:50:29 +0300 Message-Id: <20250423084826.e98aed77e836.Id9f858d9d553d406a24165b09db830df111befce@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited To cancel all async notifications, we need to: - cancel async_handlers_wk - empty async_handlers_list Instead of having the callers to do both, do it in iwl_mld_purge_async_handlers_list and rename it accordingly. Note that the caller iwl_cleanup_mld didn't cancel the work, but it is harmless. Signed-off-by: Miri Korenblit Reviewed-by: Johannes Berg --- drivers/net/wireless/intel/iwlwifi/mld/mac80211.c | 10 +++------- drivers/net/wireless/intel/iwlwifi/mld/mld.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/mld/notif.c | 6 +++++- drivers/net/wireless/intel/iwlwifi/mld/notif.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c index 6851064b82da..e127f29839ea 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c @@ -540,14 +540,10 @@ void iwl_mld_mac80211_stop(struct ieee80211_hw *hw, bool suspend) if (!suspend || iwl_mld_no_wowlan_suspend(mld)) iwl_mld_stop_fw(mld); - /* HW is stopped, no more coming RX. OTOH, the worker can't run as the - * wiphy lock is held. Cancel it in case it was scheduled just before - * we stopped the HW. + /* HW is stopped, no more coming RX. Cancel all notifications in + * case they were sent just before stopping the HW. */ - wiphy_work_cancel(mld->wiphy, &mld->async_handlers_wk); - - /* Empty out the list, as the worker won't do that */ - iwl_mld_purge_async_handlers_list(mld); + iwl_mld_cancel_async_notifications(mld); /* Clear in_hw_restart flag when stopping the hw, as mac80211 won't * execute the restart. diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.h b/drivers/net/wireless/intel/iwlwifi/mld/mld.h index 5eceaaf7696d..c436eb4a6a6f 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.h @@ -299,10 +299,10 @@ iwl_cleanup_mld(struct iwl_mld *mld) iwl_mld_low_latency_restart_cleanup(mld); - /* Empty the list of async notification handlers so we won't process + /* Cancel the async notification handlers so we won't process * notifications from the dead fw after the reconfig flow. */ - iwl_mld_purge_async_handlers_list(mld); + iwl_mld_cancel_async_notifications(mld); } enum iwl_power_scheme { diff --git a/drivers/net/wireless/intel/iwlwifi/mld/notif.c b/drivers/net/wireless/intel/iwlwifi/mld/notif.c index b8a3204c7847..10f1bee89205 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/notif.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/notif.c @@ -662,10 +662,14 @@ void iwl_mld_async_handlers_wk(struct wiphy *wiphy, struct wiphy_work *wk) } } -void iwl_mld_purge_async_handlers_list(struct iwl_mld *mld) +void iwl_mld_cancel_async_notifications(struct iwl_mld *mld) { struct iwl_async_handler_entry *entry, *tmp; + lockdep_assert_wiphy(mld->wiphy); + + wiphy_work_cancel(mld->wiphy, &mld->async_handlers_wk); + spin_lock_bh(&mld->async_handlers_lock); list_for_each_entry_safe(entry, tmp, &mld->async_handlers_list, list) { iwl_mld_log_async_handler_op(mld, "Purged", &entry->rxb); diff --git a/drivers/net/wireless/intel/iwlwifi/mld/notif.h b/drivers/net/wireless/intel/iwlwifi/mld/notif.h index 2eaa1d4e138e..adcdd9dec192 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/notif.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/notif.h @@ -15,7 +15,7 @@ void iwl_mld_rx_rss(struct iwl_op_mode *op_mode, struct napi_struct *napi, void iwl_mld_async_handlers_wk(struct wiphy *wiphy, struct wiphy_work *wk); -void iwl_mld_purge_async_handlers_list(struct iwl_mld *mld); +void iwl_mld_cancel_async_notifications(struct iwl_mld *mld); enum iwl_mld_object_type { IWL_MLD_OBJECT_TYPE_NONE, From patchwork Wed Apr 23 05:50:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883744 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 158BF267396 for ; Wed, 23 Apr 2025 05:51:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387469; cv=none; b=VKESV9CivRmoINDkApf3Pjj4P++w/LdJPf3Dki1g5VNzbITtXNX/xUqFDLqUp18qYHz8nYZk0Pnhrh9OreruGqYQC1ytRB+al7acconr3UwiqAK2IDJ3+CsihoTDZZNx7HmLRTPso20CkDNIv6Lm/MRXZ5/f61TMQ0RrhltveDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387469; c=relaxed/simple; bh=TDgUanoiDYEsLusK4sJsMvwRnzTz2Q1fOhniUcB4p7I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=N0zSpP1YeGc76WWDZ+ZXekQMeZ9bUX8v6ekQbFO3XK8wz1cUtBo4/RDEnTKqSsl7TJ3z1seYVXJJpvTk/dKtNAIrWigJYkSqoJKBlJulg8jyUtbA4igzo/vFmbE3E7YZizzCi7v/LUsVvvBt2OfW/siA7Lus5pv8aOBg56yFkas= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Ae7MmCHw; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Ae7MmCHw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387468; x=1776923468; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TDgUanoiDYEsLusK4sJsMvwRnzTz2Q1fOhniUcB4p7I=; b=Ae7MmCHwX8/jTqRlEEzkfkFv+JHP6J2JiPcuBwhgs8F8ZOD+2Kk+mqtc K1dIry4sCxUOEfBJgqwHp9SNLzyHLigWmVAORL3FOWs6HcmwQ+hF3elBD UdLNIHwKjvaOpBOmsvad7kDiJj7zm2IBwlOUWx9DmB4GSK3fRrxCksDak Cmvp4B4g/IOiHx31ttagE3uXWfCc9P8CnvmsH2kHqg1k7upxg2YvIlX3V Fh8yLoagpsXUmphV0NicD3qjhWwdOxsYvvegko7B//caRGcuIb3WUuEUT 7tBUJvgwOlv559HvVfT48VUAhImhO4J+eyyzizRNFY46YxxlsAl8A+GJC w==; X-CSE-ConnectionGUID: Vv2MSyzxRNquXLlqzND/gQ== X-CSE-MsgGUID: zTwBEIuaTgyC3ThvrUT6XQ== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844642" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844642" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:07 -0700 X-CSE-ConnectionGUID: J3jD0Ex5RMuOEjPdUEwI4Q== X-CSE-MsgGUID: VyjVq8I9T3m11A/GYT8FGw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164352" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:06 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Emmanuel Grumbach , Johannes Berg Subject: [PATCH wireless 12/17] wifi: iwlwifi: mld: inform trans on init failure Date: Wed, 23 Apr 2025 08:50:31 +0300 Message-Id: <20250423084826.c7e178748ef7.Ifaf15bdd8ef8c59e04effbd2e7aa0034b30eeacb@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited If starting the op mode failed, the opmode memory is being freed, so trans->op_mode needs to be NULLified. Otherwise, trans will access already freed memory. Call iwl_trans_op_mode_leave in that case. Signed-off-by: Miri Korenblit Reviewed-by: Emmanuel Grumbach Reviewed-by: Johannes Berg --- drivers/net/wireless/intel/iwlwifi/mld/mld.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c index 562d320b2c3a..87624730fb50 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c @@ -425,7 +425,7 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, if (ret) { wiphy_unlock(mld->wiphy); rtnl_unlock(); - goto free_hw; + goto err; } /* We are about to stop the FW. Notifications may require an @@ -471,7 +471,8 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, iwl_mld_leds_exit(mld); free_nvm: kfree(mld->nvm_data); -free_hw: +err: + iwl_trans_op_mode_leave(mld->trans); ieee80211_free_hw(mld->hw); return ERR_PTR(ret); } From patchwork Wed Apr 23 05:50:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884343 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E435926462C for ; Wed, 23 Apr 2025 05:51:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387470; cv=none; b=H82Yf4UetaQLBvgYm+H8WDyeXzCMhCZ56mla/6WS+yJuXcVVNOMME4IehJcu4MVk0dRmySDEEahUK4s0Kj5v/0q6P4azEuxgusGYiN+vAzor0KvvrT2kEFdTz1pLv8yf7jUr+SKN42mZiJKb9SXDiUozXcoYsWUaIT8a2iwLfow= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387470; c=relaxed/simple; bh=Gj2IPnVdT+xs7I66m+zJJJtlcsN6BUGv1DzFs0yhaYo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HOaPnSfPL1trBw4xs59WMOel/YGlOFxaxqZ5ZVYBwJh2e/9UWEvYDb1n06Uq5oEU2BE04/rdcwcl5LZoX2IPd+SQR798qFx4zCx0iQzCbIuWYoGrtPDX3VWM0D/BRMClNrEjqF5N+Rqe4qZFB0ExKGow+sUL8UOcMgrbyO5aLAc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Vxx7UGZl; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Vxx7UGZl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387469; x=1776923469; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Gj2IPnVdT+xs7I66m+zJJJtlcsN6BUGv1DzFs0yhaYo=; b=Vxx7UGZlzQUKEwdX+pNFF62E6HwKRm73rYu92ZpMY2jPbfVay7bX0U8y YgNCTfJ07eeDR7lCwm4Y5EOUTIiN1crcoOJ3DrHOJgQ3jxNLiBJj5v08U 88o/fsDsH0/5Dwdpv2IwgmR078l+9SAWyhVSJvVcHb53cjlaeT2FWS6w0 3BiL1go0elgvsuD+cR0oKyEzpzs0HLA36vzacrwatxdingUWvuvNkWVbI 5VARufH7MsYk3l3bB94GV7jjtz+mcdGBuSGAEHpaM81AzFj+ZMDhGTm/u oSkIFCVdxUHUqdb4a1xmqqd8UgzTSBWNGQw0IMSxk7tUqqZ9UfzZGNt7f w==; X-CSE-ConnectionGUID: JCVvoq04Sp+HXTojFcQY3Q== X-CSE-MsgGUID: ztwNvjDsS5GpbSrFAW9mlg== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844645" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844645" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:08 -0700 X-CSE-ConnectionGUID: NG2bkx2zQVOU37enMi96zg== X-CSE-MsgGUID: WoCSqu96QUKrOEN5Xdl8YA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164357" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:07 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Emmanuel Grumbach Subject: [PATCH wireless 13/17] wifi: iwlwifi: update the PHY_CONTEXT_CMD API Date: Wed, 23 Apr 2025 08:50:32 +0300 Message-Id: <20250423084826.0e1324ae07b7.I6d8ffda2b00c817d3f784241dd61cfe533e12d93@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Emmanuel Grumbach A new field is added, no impact on the current flows. Signed-off-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h b/drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h index 4d8a12799c4d..4594a7c94bd6 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2012-2014, 2018, 2020-2024 Intel Corporation + * Copyright (C) 2012-2014, 2018, 2020-2025 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH */ @@ -146,6 +146,7 @@ struct iwl_phy_context_cmd_v1 { * @sbb_ctrl_channel_loc: location of the control channel * @puncture_mask: bitmap of punctured subchannels * @dsp_cfg_flags: set to 0 + * @secondary_ctrl_chnl_loc: location of secondary control channel * @reserved: reserved to align to 64 bit */ struct iwl_phy_context_cmd { @@ -164,11 +165,13 @@ struct iwl_phy_context_cmd { }; }; __le32 dsp_cfg_flags; - __le32 reserved; + u8 secondary_ctrl_chnl_loc; + u8 reserved[3]; } __packed; /* PHY_CONTEXT_CMD_API_VER_3, * PHY_CONTEXT_CMD_API_VER_4, * PHY_CONTEXT_CMD_API_VER_5, - * PHY_CONTEXT_CMD_API_VER_6 + * PHY_CONTEXT_CMD_API_VER_6, + * PHY_CONTEXT_CMD_API_S_VER_7 */ #endif /* __iwl_fw_api_phy_ctxt_h__ */ From patchwork Wed Apr 23 05:50:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883743 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4467126738C for ; Wed, 23 Apr 2025 05:51:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387471; cv=none; b=DyXtqzdEt+in7R3i8ge0IF/fe2DrOTeYfIEVZmRwY2bd3EEmMF7p9JoLixVeD9slD5+MZPUGEvKKg5tfRhwi7U6WgXbejRwewgKVO/OeXRLTFFg3ddyMLJn6y4LIUzuwi+Ovs3M7TkLIh5tl6y5uBulcfGTctYyumkARDmqbnh4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387471; c=relaxed/simple; bh=ajIoWqSDuHD0IENlyOMoZsh9q4twXWKOjizwB4dtUDQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=h4GyC6oEC8OXRicwDQ4FWJ6fWA126i5ZeJcew9CXT9D4lmQw0FIZNoy4ASD6EwmasVoQhXJlM0J1O6SKavZlCZlOzCQNKBVG4wpuqqxXjiV7YHy+PwsaTNFzexlJ9tYnH2zc5JpCTM3ok+4FmzT8DuqOi5yytCNBioc6XobodVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=j68viy2t; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="j68viy2t" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387470; x=1776923470; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ajIoWqSDuHD0IENlyOMoZsh9q4twXWKOjizwB4dtUDQ=; b=j68viy2tKUEaxbJA6v+sH35J6iCq+D3JXYGKuRSQ5O0fg1725HFKZ6oe ClREFNCfoPweK1qFz51M6RGbehyY6sOmmLTErpiKeQD+ms56iQe/n4kWF w/ifG23pU3mo57mWaaIcg8CW75vj6HklE1zxGwYzg/yQJoi4J2K25nwLe Sz0TghVaOxcqPlh8QaPbr82kkdQQKTR5dvSuqZfDFoCVcJAzIFfnyk8xM UdUKEJJwXLJ/SFUvkPP6vPhxq7Q5e1z5hMtnbythKWluWR+xz/XSy5kpv yucoanGO7pwAYd+qrMk83xjW7v1nqtgXsE47oxcjxESqo+kcheoDNbbv0 g==; X-CSE-ConnectionGUID: xpv267YyQyeSwpPEhOkMaQ== X-CSE-MsgGUID: FMhiIBUJSm2Rbv/YhDjjWw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844649" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844649" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:10 -0700 X-CSE-ConnectionGUID: 0MjVX0ryRzCJo+p3vrbFlA== X-CSE-MsgGUID: zWyPXntGQUW0rcEMS7wAXg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164363" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:09 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 14/17] wifi: iwlwifi: mld: tests: simplify le32 bitfield handling Date: Wed, 23 Apr 2025 08:50:33 +0300 Message-Id: <20250423084826.9155a412dcc7.I8330ca413d6bdf953e79361ac50939176bcc4e6e@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg We can use le32_encode_bits() instead of cpu_to_le32() combined with FIELD_PREP(). Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/tests/agg.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/tests/agg.c b/drivers/net/wireless/intel/iwlwifi/mld/tests/agg.c index 1fd664be1a7c..29b0248cec3d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/tests/agg.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/tests/agg.c @@ -2,7 +2,7 @@ /* * KUnit tests for channel helper functions * - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation */ #include #include @@ -474,14 +474,14 @@ static struct iwl_rx_mpdu_desc *setup_mpdu_desc(void) KUNIT_ALLOC_AND_ASSERT(test, mpdu_desc); mpdu_desc->reorder_data |= - cpu_to_le32(FIELD_PREP(IWL_RX_MPDU_REORDER_BAID_MASK, - param->rx_pkt.baid)); + le32_encode_bits(param->rx_pkt.baid, + IWL_RX_MPDU_REORDER_BAID_MASK); mpdu_desc->reorder_data |= - cpu_to_le32(FIELD_PREP(IWL_RX_MPDU_REORDER_SN_MASK, - param->rx_pkt.sn)); + le32_encode_bits(param->rx_pkt.sn, + IWL_RX_MPDU_REORDER_SN_MASK); mpdu_desc->reorder_data |= - cpu_to_le32(FIELD_PREP(IWL_RX_MPDU_REORDER_NSSN_MASK, - param->rx_pkt.nssn)); + le32_encode_bits(param->rx_pkt.nssn, + IWL_RX_MPDU_REORDER_NSSN_MASK); if (param->rx_pkt.old_sn) mpdu_desc->reorder_data |= cpu_to_le32(IWL_RX_MPDU_REORDER_BA_OLD_SN); From patchwork Wed Apr 23 05:50:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884342 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A2F626462C for ; Wed, 23 Apr 2025 05:51:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387473; cv=none; b=KAUNQTQla+7RxwEOFm9J2vYaLR1/5EsTW+/PR3JsWsFGxHEnMILiTse8X8kMBUrDk9oE43mVigU5JQ6Oi9Rh8tZ7Mj+4OboK2zdglTsJb0BUgUWDbAhxuMn0puYFfg3fJYi5DUnrdmoEh1olj25RjCaFaUa8B0EhSh9aWy0JWDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387473; c=relaxed/simple; bh=0UaAhWKXTpLAI0s1PCxxttiASBp3yhdtleOrcP3Sizc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=grlk0jV08DlebyftDR8ZPvy++f4Z5TlMxGLzk9K8nC5No1ag2me6u7w7cD2+RgOvtbYcTRCOVC1TWX9g6Ct2DXCKpuBFIWQ30mkIGp8Rtfdjkne161w9dmxImRVRlT07EWISMFOFRyKnDpr8wqsrjlsV+78QVPsBVHXD0FUiEsg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=m7s69+pq; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="m7s69+pq" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387471; x=1776923471; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0UaAhWKXTpLAI0s1PCxxttiASBp3yhdtleOrcP3Sizc=; b=m7s69+pq9BkcgqeKvDElLHHShExcd/PMzRfyoBa5b+KcMeq6WVplwggm Z7H7u2PKv+nfyKI6gxmHYF3b+eNP6NFPx0GjzMYerHIb3RR6zwU6QkY9j k3ZiwQNjdXGuz76Fs24+xr/f0n0Vd6PV6Plts55OAPdAZXrZW9c0GCQoC WRwCfRAs3ntkKdocrtpcI/sYIvalOsI0mXKlnOALvE4f6PpPEUNX4KKbl KQtide9tkxnYElRIlPtumBRNHGDVUThBG/fXxsNvm3rBVHlrOaeWL+f5p sC5kVBYjVJqkonxRKdh/Kytl3L882rZKUw7pCorwpnNREZqAzzXtxzAfJ g==; X-CSE-ConnectionGUID: X2ls3P8BQwaISijEJATe6Q== X-CSE-MsgGUID: roD14d6kRq+Z7FKShyOrTw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844653" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844653" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:11 -0700 X-CSE-ConnectionGUID: KU94mDYYRQ+77xqnNlg0Cw== X-CSE-MsgGUID: yAmjKLk6Rke+206QTFsL7g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164370" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:10 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Emmanuel Grumbach Subject: [PATCH wireless 15/17] wifi: iwlwifi: set step_urm in transport and not in the opmodes Date: Wed, 23 Apr 2025 08:50:34 +0300 Message-Id: <20250423084826.4e288f7897be.I0c8f792ea2ed6967f8c6d8181f9c5f74bbec7d18@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited This has nothing to do with the opmode. Set it in the transport layer instead. Signed-off-by: Miri Korenblit Reviewed-by: Emmanuel Grumbach Tested-by: Emmanuel Grumbach --- drivers/net/wireless/intel/iwlwifi/mld/fw.c | 4 ---- drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 5 ----- drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 5 +++++ 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/fw.c b/drivers/net/wireless/intel/iwlwifi/mld/fw.c index 14aacfbab5c8..6e9af37fb86d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/fw.c @@ -266,10 +266,6 @@ static int iwl_mld_run_fw_init_sequence(struct iwl_mld *mld) if (ret) return ret; - mld->trans->step_urm = - !!(iwl_read_umac_prph(mld->trans, CNVI_PMU_STEP_FLOW) & - CNVI_PMU_STEP_FLOW_FORCE_URM); - ret = iwl_pnvm_load(mld->trans, &mld->notif_wait, &mld->fw->ucode_capa); if (ret) { diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c index 2b5a62604fc4..f67348acd5f0 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c @@ -651,11 +651,6 @@ static int iwl_run_unified_mvm_ucode(struct iwl_mvm *mvm) iwl_dbg_tlv_time_point(&mvm->fwrt, IWL_FW_INI_TIME_POINT_AFTER_ALIVE, NULL); - if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) - mvm->trans->step_urm = !!(iwl_read_umac_prph(mvm->trans, - CNVI_PMU_STEP_FLOW) & - CNVI_PMU_STEP_FLOW_FORCE_URM); - /* Send init config command to mark that we are sending NVM access * commands */ diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c index 3ece34e30d58..bfa050d987db 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c @@ -373,6 +373,11 @@ void iwl_trans_pcie_gen2_fw_alive(struct iwl_trans *trans) iwl_pcie_get_rf_name(trans); mutex_unlock(&trans_pcie->mutex); + + if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) + trans->step_urm = !!(iwl_read_umac_prph(trans, + CNVI_PMU_STEP_FLOW) & + CNVI_PMU_STEP_FLOW_FORCE_URM); } static bool iwl_pcie_set_ltr(struct iwl_trans *trans) From patchwork Wed Apr 23 05:50:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 883742 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33EE8266EEC for ; Wed, 23 Apr 2025 05:51:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387474; cv=none; b=CH/NIq1e6e3WT7jBqlGO5J2IvGVpxX+33ZRIC/L0VhpwrS0D1AeeXeOY3GvqwznhNHyy9H/jD4yNa4VV0g/mRWzbso8mq7QkDOKTf/052wZIznz1MSm9X53GqGULotMN9aN8oQJsIMEPlR+77DhbhMPe7KGu8mm/GxRgqbiXMZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387474; c=relaxed/simple; bh=UkAADFo0UYHBV0q0TZkSj04OYM6ck3zpHYZFaj2SALw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jrSDdzwgFqLgfIgnUyk/I+3bY7gcDmwuNM49lMeJktd4EAW8hS4JHopHPyIfuaiJq+k6oXn0PyHw6pykVXkXJduXdpK9YpqoNBnd+a5V4mren5N/OqiOC1wFr3mIgv8viveaqYirTokVpHlvwK/VsnjnCeGA0+4Wht3R1Gaphto= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=VrQWfTdj; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="VrQWfTdj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387473; x=1776923473; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UkAADFo0UYHBV0q0TZkSj04OYM6ck3zpHYZFaj2SALw=; b=VrQWfTdjNYLmeDjMxiF7lnOvxEnJIHh5a06w81/sKB6ziKfRowXIu5rP j6m2N3bNBNMCDXCEXS+V2cuT0uX/MTo56gHAikfmLHc9vybNJ6OM7MCS7 w1yxxwE/SGsxwm4cpX4l49Q0Kp6ZqWTxjMKnYgIGe9YcMR1WqWm8C9MK/ em3Q0djSpnludnoyC0Xgfok1sfVs7NkoupJu9F5fZqdTXORrrzJx0KCR6 sfs5uZChqyAsLyhU1fZYz/P6rS9DMS4TS3Sk9Jp5q2pgheyL8WTUvUcBw 4kRjwFkNLrQ3afcI8ZGYKA8ykXS55hMWOeItgXju/umyvd0Goag4dkltk A==; X-CSE-ConnectionGUID: YkgaNbK2RbSxZlmchWJBrw== X-CSE-MsgGUID: PqXEGy2+QaebwZRJJR62QA== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844656" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844656" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:13 -0700 X-CSE-ConnectionGUID: vIYhwt5wSNiMtQzx1Zg7PA== X-CSE-MsgGUID: 1vRZLk38Q5a12ZUmwsuZKA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164378" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:12 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Emmanuel Grumbach Subject: [PATCH wireless 16/17] wifi: iwlwifi: pcie: add support for the reset handshake in MSI Date: Wed, 23 Apr 2025 08:50:35 +0300 Message-Id: <20250423084826.ea278ad99247.Ia359071e6148218c26f18e783a8130c681d77df7@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Emmanuel Grumbach Add the proper case in the MSI interrupt handler and read the non-MSIx interrupt cause register in case of timeout. Signed-off-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 20 ++++++++++--------- drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 14 ++++++++++++- .../wireless/intel/iwlwifi/pcie/trans-gen2.c | 18 +++++++++++++---- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h index be9e464c9b7b..f259747e21b3 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2005-2014, 2018-2024 Intel Corporation + * Copyright (C) 2005-2014, 2018-2025 Intel Corporation * Copyright (C) 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2016 Intel Deutschland GmbH */ @@ -193,17 +193,19 @@ #define CSR_INT_BIT_RF_KILL (1 << 7) /* HW RFKILL switch GP_CNTRL[27] toggled */ #define CSR_INT_BIT_CT_KILL (1 << 6) /* Critical temp (chip too hot) rfkill */ #define CSR_INT_BIT_SW_RX (1 << 3) /* Rx, command responses */ +#define CSR_INT_BIT_RESET_DONE (1 << 2) /* reset handshake with firmware is done */ #define CSR_INT_BIT_WAKEUP (1 << 1) /* NIC controller waking up (pwr mgmt) */ #define CSR_INT_BIT_ALIVE (1 << 0) /* uCode interrupts once it initializes */ -#define CSR_INI_SET_MASK (CSR_INT_BIT_FH_RX | \ - CSR_INT_BIT_HW_ERR | \ - CSR_INT_BIT_FH_TX | \ - CSR_INT_BIT_SW_ERR | \ - CSR_INT_BIT_RF_KILL | \ - CSR_INT_BIT_SW_RX | \ - CSR_INT_BIT_WAKEUP | \ - CSR_INT_BIT_ALIVE | \ +#define CSR_INI_SET_MASK (CSR_INT_BIT_FH_RX | \ + CSR_INT_BIT_HW_ERR | \ + CSR_INT_BIT_FH_TX | \ + CSR_INT_BIT_SW_ERR | \ + CSR_INT_BIT_RF_KILL | \ + CSR_INT_BIT_SW_RX | \ + CSR_INT_BIT_WAKEUP | \ + CSR_INT_BIT_RESET_DONE | \ + CSR_INT_BIT_ALIVE | \ CSR_INT_BIT_RX_PERIODIC) /* interrupt flags in FH (flow handler) (PCI busmaster DMA) */ diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c index 4a4f8de4efe2..337324eea1a1 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c @@ -1947,6 +1947,13 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id) handled |= CSR_INT_BIT_ALIVE; } + if (inta & CSR_INT_BIT_RESET_DONE) { + IWL_DEBUG_ISR(trans, "Reset flow completed\n"); + trans_pcie->fw_reset_state = FW_RESET_OK; + handled |= CSR_INT_BIT_RESET_DONE; + wake_up(&trans_pcie->fw_reset_waitq); + } + /* Safely ignore these bits for debug checks below */ inta &= ~(CSR_INT_BIT_SCD | CSR_INT_BIT_ALIVE); @@ -1968,7 +1975,12 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id) IWL_ERR(trans, "Microcode SW error detected. " " Restarting 0x%X.\n", inta); isr_stats->sw++; - iwl_pcie_irq_handle_error(trans); + if (trans_pcie->fw_reset_state == FW_RESET_REQUESTED) { + trans_pcie->fw_reset_state = FW_RESET_ERROR; + wake_up(&trans_pcie->fw_reset_waitq); + } else { + iwl_pcie_irq_handle_error(trans); + } handled |= CSR_INT_BIT_SW_ERR; } diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c index bfa050d987db..413a271beb9b 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c @@ -117,13 +117,23 @@ void iwl_trans_pcie_fw_reset_handshake(struct iwl_trans *trans) trans_pcie->fw_reset_state != FW_RESET_REQUESTED, FW_RESET_TIMEOUT); if (!ret || trans_pcie->fw_reset_state == FW_RESET_ERROR) { - u32 inta_hw = iwl_read32(trans, CSR_MSIX_HW_INT_CAUSES_AD); + bool reset_done; + u32 inta_hw; + + if (trans_pcie->msix_enabled) { + inta_hw = iwl_read32(trans, CSR_MSIX_HW_INT_CAUSES_AD); + reset_done = + inta_hw & MSIX_HW_INT_CAUSES_REG_RESET_DONE; + } else { + inta_hw = iwl_read32(trans, CSR_INT_MASK); + reset_done = inta_hw & CSR_INT_BIT_RESET_DONE; + } IWL_ERR(trans, - "timeout waiting for FW reset ACK (inta_hw=0x%x)\n", - inta_hw); + "timeout waiting for FW reset ACK (inta_hw=0x%x, reset_done %d)\n", + inta_hw, reset_done); - if (!(inta_hw & MSIX_HW_INT_CAUSES_REG_RESET_DONE)) { + if (!reset_done) { struct iwl_fw_error_dump_mode mode = { .type = IWL_ERR_TYPE_RESET_HS_TIMEOUT, .context = IWL_ERR_CONTEXT_FROM_OPMODE, From patchwork Wed Apr 23 05:50:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 884341 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BB1C26462C for ; Wed, 23 Apr 2025 05:51:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387475; cv=none; b=MmmIYWTitJtgsmgLtoL3Y5rE2GfkNtbDO94+nZpL9raG/uAe6/TqEmtq0sm7jEOt1cJZx2YWbXTJQw0L3K78/fm2zsSw8WA2Ce9EePIetGNoVGGP12vvlJjzpySzUJAe1Hv5Fv7YR00vLUfNscKoKpjS71NXlc0TzIGhy1Rz/y0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745387475; c=relaxed/simple; bh=c/V2aRHqPEAfrppj7F21Qr3t8qAwhyhUigfJ3ebJt+s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i9Z25Na65iKXYZEjT3qat9Ik0CoZeSD5fBODkKJl1i0SM0+DA7x/1lE/8SDp8RfUqFOT5L0NM7ub0i5NPf5toVtS7i36zEX0pJgtELOqkmMc8zzHwBe+oHDfXl1KTmIJmynWLBDijxh1wDn6EHaPhbyIEfA16ZXbTSpHFbTEi+4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=e9/64JJZ; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="e9/64JJZ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1745387474; x=1776923474; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c/V2aRHqPEAfrppj7F21Qr3t8qAwhyhUigfJ3ebJt+s=; b=e9/64JJZxFz+9igpGrsMq1dCZEMwQHfQuBugc9FOHWeSEndJ29/uhjzD zKDjpraQS0HVhzMdVz8tpJCZgp398siHVeiWq2le8sMJ+6ILVfS5Vhtxv /upmTS1qEnMkY0B0WnmnZQ1Nzg/TTZ8yooGgUpcpfTSCPNmGXkqnIujmt +MxRZ1trAxRKW/JyYIG2XUSKu/zoLHeOVfVeSrD1R/K1woF4N9nML1RlK loh5eFurEPLtnZ8FfYcMIzgXrnnowVCDgfcEMTH9sEepNkAX7sEORqMtR zl68OU4R23XlRi85K92xs8hZw7iJasxv7Mx36noG26nYz7ZrFmUZozwo5 Q==; X-CSE-ConnectionGUID: Q6JeArW5QmmZSTB//fb6MA== X-CSE-MsgGUID: j/p3pNxpTUq+wxT2hitbsw== X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="46844658" X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="46844658" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:14 -0700 X-CSE-ConnectionGUID: /xQv33IWQjikoOXL3u0caQ== X-CSE-MsgGUID: YB46q4RETE2sfm8UtiPHFQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; d="scan'208";a="133164383" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2025 22:51:13 -0700 From: Miri Korenblit To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH wireless 17/17] wifi: iwlwifi: mld: clarify variable type Date: Wed, 23 Apr 2025 08:50:36 +0300 Message-Id: <20250423084826.9edbdbc0a86e.Ie2e8de150f67369c4e034452c5f1a15f85d2931c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> References: <20250423055036.2262960-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg In iwl_mld_emlsr_disallowed_with_link() the code uses an enum for a bitmap of values from it, which doesn't really make sense.Use u32 for the variable just like the return value. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/mlo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mlo.c b/drivers/net/wireless/intel/iwlwifi/mld/mlo.c index a870e169e265..bf158af5f6f3 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mlo.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mlo.c @@ -643,7 +643,7 @@ iwl_mld_emlsr_disallowed_with_link(struct iwl_mld *mld, { struct wiphy *wiphy = mld->wiphy; struct ieee80211_bss_conf *conf; - enum iwl_mld_emlsr_exit ret = 0; + u32 ret = 0; conf = wiphy_dereference(wiphy, vif->link_conf[link->link_id]); if (WARN_ON_ONCE(!conf))