All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luca Coelho <luca@coelho.fi>
To: kvalo@codeaurora.org
Cc: linux-wireless@vger.kernel.org,
	Johannes Berg <johannes.berg@intel.com>,
	Luca Coelho <luciano.coelho@intel.com>
Subject: [PATCH 24/31] iwlwifi: pcie: warn if paging is already initialized during init
Date: Wed, 28 Jun 2017 23:13:23 +0300	[thread overview]
Message-ID: <20170628201330.9432-25-luca@coelho.fi> (raw)
In-Reply-To: <20170628201330.9432-1-luca@coelho.fi>

From: Johannes Berg <johannes.berg@intel.com>

This appears to happen in some cases, like when iwlmvm is unloaded and
loaded again without also unloading iwlwifi. Warn in this case and free
the paging data to be able to continue without causing corruption and
kernel crashes due to it (otherwise, paging data is overwritten, but
dram->paging_cnt gets to be twice as big as it should be, and then an
eventual free will crash.)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
index 00d1a5f048b3..eddaca76d514 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
@@ -137,6 +137,11 @@ static int iwl_pcie_ctxt_info_init_fw_sec(struct iwl_trans *trans,
 	struct iwl_context_info_dram *ctxt_dram = &ctxt_info->dram;
 	int i, ret, lmac_cnt, umac_cnt, paging_cnt;
 
+	if (WARN(dram->paging,
+		 "paging shouldn't already be initialized (%d pages)\n",
+		 dram->paging_cnt))
+		iwl_pcie_ctxt_info_free_paging(trans);
+
 	lmac_cnt = iwl_pcie_get_num_sections(fw, 0);
 	/* add 1 due to separator */
 	umac_cnt = iwl_pcie_get_num_sections(fw, lmac_cnt + 1);
-- 
2.11.0

  parent reply	other threads:[~2017-06-28 20:15 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-28 20:12 [PATCH 00/31] iwlwifi: updates intended for v4.13 2017-06-28 Luca Coelho
2017-06-28 20:13 ` [PATCH 01/31] iwlwifi: mvm: refactor geo init Luca Coelho
2017-06-28 20:13 ` [PATCH 02/31] iwlwifi: mvm: Add debugfs entry to retrieve SAR geographic profile Luca Coelho
2017-06-28 20:13 ` [PATCH 03/31] iwlwifi: mvm: remove some CamelCase from firmware API Luca Coelho
2017-06-28 20:13 ` [PATCH 04/31] iwlwifi: mvm: fix various "Excess ... description" kernel-doc warnings Luca Coelho
2017-06-28 20:13 ` [PATCH 05/31] iwlwifi: mvm: remove various unused command IDs/structs Luca Coelho
2017-06-28 20:13 ` [PATCH 06/31] iwlwifi: mvm: use __le16 even for reserved fields Luca Coelho
2017-06-28 20:13 ` [PATCH 07/31] iwlwifi: mvm: add documentation for all command IDs Luca Coelho
2017-06-28 20:13 ` [PATCH 08/31] iwlwifi: mvm: fix a bunch of kernel-doc warnings Luca Coelho
2017-06-28 20:13 ` [PATCH 09/31] iwlwifi: dvm: use macros for format strings Luca Coelho
2017-06-28 20:13 ` [PATCH 10/31] iwlwifi: pcie: only apply retention workaround on 9000-series A-step Luca Coelho
2017-06-28 20:13 ` [PATCH 11/31] iwlwifi: pcie: fix 9000-series RF-kill interrupt propagation Luca Coelho
2017-06-28 20:13 ` [PATCH 12/31] iwlwifi: mvm: change sta_id to u8 Luca Coelho
2017-06-28 20:13 ` [PATCH 13/31] iwlwifi: mvm: simplify CHECK_MLME_TRIGGER macro Luca Coelho
2017-06-28 20:13 ` [PATCH 14/31] iwlwifi: add the new a000_2ax series Luca Coelho
2017-06-28 20:13 ` [PATCH 15/31] iwlwifi: add twelve new 9560 series PCI IDs Luca Coelho
2017-06-28 20:13 ` [PATCH 16/31] iwlwifi: mvm: use proper CDB check in PHY context modify Luca Coelho
2017-06-28 20:13 ` [PATCH 17/31] iwlwifi: pcie: improve "invalid queue" warning Luca Coelho
2017-06-28 20:13 ` [PATCH 18/31] iwlwifi: mvm: support aggs of 64 frames in A000 family Luca Coelho
2017-06-28 20:13 ` [PATCH 19/31] iwlwifi: pcie: improve debug in iwl_pcie_rx_handle_rb() Luca Coelho
2017-06-28 20:43   ` Joe Perches
2017-06-29 18:59     ` Luca Coelho
2017-06-28 20:13 ` [PATCH 20/31] iwlwifi: mvm: change when the BT_COEX is sent Luca Coelho
2017-06-28 20:13 ` [PATCH 21/31] iwlwifi: mvm: support multi tid ba notif Luca Coelho
2017-06-28 20:13 ` [PATCH 22/31] iwlwifi: unify external & internal modparam names Luca Coelho
2017-06-28 20:13 ` [PATCH 23/31] iwlwifi: pcie: make ctxt-info free idempotent Luca Coelho
2017-06-28 20:13 ` Luca Coelho [this message]
2017-06-28 20:13 ` [PATCH 25/31] iwlwifi: mvm: unconditionally stop device after init Luca Coelho
2017-06-28 20:13 ` [PATCH 26/31] iwlwifi: mvm: fix deduplication start logic Luca Coelho
2017-06-28 20:13 ` [PATCH 27/31] iwlwifi: mvm: rename iwl_shared_mem_cfg_v1 to the correct _v2 Luca Coelho
2017-06-28 20:13 ` [PATCH 28/31] iwlwifi: create new subdirectory for FW interaction Luca Coelho
2017-06-28 20:13 ` [PATCH 29/31] iwlwifi: move notification wait into fw/ Luca Coelho
2017-06-28 20:13 ` [PATCH 30/31] iwlwifi: move configuration into sub-directory Luca Coelho
2017-06-28 20:13 ` [PATCH 31/31] iwlwifi: mvm: remove version 2 of paging command Luca Coelho
2017-06-28 20:14 ` [PATCH 00/31] iwlwifi: updates intended for v4.13 2017-06-28 Coelho, Luciano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170628201330.9432-25-luca@coelho.fi \
    --to=luca@coelho.fi \
    --cc=johannes.berg@intel.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=luciano.coelho@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.