Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1386374pxb; Wed, 10 Feb 2021 07:18:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJyP6Bzx3JYM4xBMVJU8Yv3/krqr+h1AEPzedpu+8JWO26Lc/Pu3rvTu5eEyS7+GhqJh2u24 X-Received: by 2002:aa7:c685:: with SMTP id n5mr3759417edq.150.1612970298905; Wed, 10 Feb 2021 07:18:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612970298; cv=none; d=google.com; s=arc-20160816; b=hdpO16yrYg95WUJX+jN6kgz274pu0fGjHz36r6J16PhJnWbADsKnKngQFPJbXADNfi v74Z/jFxP5mf2MrYzaYNcOZF8IBAW3JlOluJCmFKuwmqPVhiGDC10rdJ8wNYYWSZM/+P Hxw2Ib50xpMmrEfhxVwG+Tb4Gwln0XldEy+CqoHTsRlVg9jpABhI/vBmMLC9tJ8rwyAD AvOxyz7FHIBh6aCBeSYtcEwh5K4HxuYhGT8W3m8WEdp1ErlAuncYpm3XOi0riHSuu8fP lKr/PzSvm6ax3vuhmj8cw0sW+0n5pySY3BJU07dghzyokJIWk0EZoNYFLw4UtIC+wX8K 7QWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from; bh=Hh3pRnSiDdk2TV7/bWge0iGqfhq/w9MpHgomRSpbWo0=; b=I+wQ7zhh/S+qg/DWlw+/CDppF2OqsEx59crTEzl8lvR9LhFgkPnVbxeONBP7j6/P+X n9CYlQ/iY4ZJ5S9QMWD28rWm3ujUitaORV4RbCoYgjoDwTSZ3w3Xun76HXo3hNaaIo+x 2gUbfBNA+lW2PQ5MMmBqiBhBB8d8XgyJWJsugcs7vLI/WdQV7657Z1t2gqJlIgYIbPkU 0DULFl+RT+j8SKtUnGu4dN++vIfM2aMIWj7Stc+Om3xfoTSQjNuVN+bsjn/J59mkfZgn BD7HDY4GN3xL7OAOgdbYBkgp3FqeTz0t0zlBitkr1ZVGU6YnQG44rBPuWpDP/fhBZpTl 10eQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y18si1637615edw.35.2021.02.10.07.17.54; Wed, 10 Feb 2021 07:18:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231865AbhBJPQR (ORCPT + 99 others); Wed, 10 Feb 2021 10:16:17 -0500 Received: from paleale.coelho.fi ([176.9.41.70]:45274 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231695AbhBJPQK (ORCPT ); Wed, 10 Feb 2021 10:16:10 -0500 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=redipa.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1l9rD7-0049kS-1f; Wed, 10 Feb 2021 17:15:21 +0200 From: Luca Coelho To: kvalo@codeaurora.org Cc: linux-wireless@vger.kernel.org Date: Wed, 10 Feb 2021 17:15:10 +0200 Message-Id: X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210210151514.416221-1-luca@coelho.fi> References: <20210210151514.416221-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.4 Subject: [PATCH 08/12] iwlwifi: mvm: Check ret code for iwl_mvm_load_nvm_to_nic Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Abhishek Naik Return value of the iwl_mvm_load_nvm_to_nic func is not analyzed. If load NVM to nic func fails and NVM is not loaded to fw properly, then fw may behave badly and lead to some strange issue. This commit will analyze return value and if load NVM to nic has failed, then the error code is sent to the previous func, which will trigger WRT log collection. iwl_fw_dbg_error_collect() func collects dump only if tri type is FW_DBG_TRIGGER_ALIVE_TIMEOUT. But when Load NVM to nic function fails trig_type is FW_DBG_TRIGGER_DRIVER. This commit also has code changes to collect dump when trig_type is FW_DBG_TRIGGER_DRIVER. Signed-off-by: Abhishek Naik Signed-off-by: Luca Coelho --- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 3 ++- drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c index 811480eac5fa..504729663c35 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c @@ -2447,7 +2447,8 @@ int iwl_fw_dbg_error_collect(struct iwl_fw_runtime *fwrt, return -EIO; if (iwl_trans_dbg_ini_valid(fwrt->trans)) { - if (trig_type != FW_DBG_TRIGGER_ALIVE_TIMEOUT) + if (trig_type != FW_DBG_TRIGGER_ALIVE_TIMEOUT && + trig_type != FW_DBG_TRIGGER_DRIVER) return -EIO; iwl_dbg_tlv_time_point(fwrt, diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c index 4d5def7e2d8c..15e2773ce7e7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c @@ -476,9 +476,13 @@ static int iwl_run_unified_mvm_ucode(struct iwl_mvm *mvm) /* Load NVM to NIC if needed */ if (mvm->nvm_file_name) { - iwl_read_external_nvm(mvm->trans, mvm->nvm_file_name, - mvm->nvm_sections); - iwl_mvm_load_nvm_to_nic(mvm); + ret = iwl_read_external_nvm(mvm->trans, mvm->nvm_file_name, + mvm->nvm_sections); + if (ret) + goto error; + ret = iwl_mvm_load_nvm_to_nic(mvm); + if (ret) + goto error; } if (IWL_MVM_PARSE_NVM && !mvm->nvm_data) { @@ -659,8 +663,11 @@ int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm) } /* In case we read the NVM from external file, load it to the NIC */ - if (mvm->nvm_file_name) - iwl_mvm_load_nvm_to_nic(mvm); + if (mvm->nvm_file_name) { + ret = iwl_mvm_load_nvm_to_nic(mvm); + if (ret) + goto remove_notif; + } WARN_ONCE(mvm->nvm_data->nvm_version < mvm->trans->cfg->nvm_ver, "Too old NVM version (0x%0x, required = 0x%0x)", -- 2.30.0