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 03/16] iwlwifi: pcie: don't crash on invalid RX interrupt
Date: Tue, 23 Apr 2019 12:10:30 +0300 [thread overview]
Message-ID: <20190423091043.7156-4-luca@coelho.fi> (raw)
In-Reply-To: <20190423091043.7156-1-luca@coelho.fi>
From: Johannes Berg <johannes.berg@intel.com>
If for some reason the device gives us an RX interrupt before we're
ready for it, perhaps during device power-on with misconfigured IRQ
causes mapping or so, we can crash trying to access the queues.
Prevent that by checking that we actually have RXQs and that they
were properly allocated.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 69fcfa930791..413937824764 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -1429,10 +1429,15 @@ static struct iwl_rx_mem_buffer *iwl_pcie_get_rxb(struct iwl_trans *trans,
static void iwl_pcie_rx_handle(struct iwl_trans *trans, int queue)
{
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
- struct iwl_rxq *rxq = &trans_pcie->rxq[queue];
+ struct iwl_rxq *rxq;
u32 r, i, count = 0;
bool emergency = false;
+ if (WARN_ON_ONCE(!trans_pcie->rxq || !trans_pcie->rxq[queue].bd))
+ return;
+
+ rxq = &trans_pcie->rxq[queue];
+
restart:
spin_lock(&rxq->lock);
/* uCode's read index (stored in shared DRAM) indicates the last Rx
--
2.20.1
next prev parent reply other threads:[~2019-04-23 9:10 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-23 9:10 [PATCH 00/16] iwlwifi: updates intended for v5.2 2019-04-23 (new try) Luca Coelho
2019-04-23 9:10 ` [PATCH 01/16] iwlwifi: Use correct channel_profile iniwl_get_nvm Luca Coelho
2019-04-23 9:10 ` [PATCH 02/16] iwlwifi: pcie: initialize debug_rfkill to -1 Luca Coelho
2019-04-23 9:10 ` Luca Coelho [this message]
2019-04-23 9:10 ` [PATCH 04/16] iwlwifi: mvm: support v2 of the WoWLAN patterns command Luca Coelho
2019-04-23 9:10 ` [PATCH 05/16] iwlwifi: mvm: report FTM start time TSF when applicable Luca Coelho
2019-04-23 9:10 ` [PATCH 06/16] iwlwifi: support fseq tlv and print fseq version Luca Coelho
2019-04-23 9:10 ` [PATCH 07/16] iwlwifi: mvm: limit TLC according to our HE capabilities Luca Coelho
2019-04-23 9:10 ` [PATCH 08/16] iwlwifi: bump FW API to 48 for 22000 series Luca Coelho
2019-04-23 9:10 ` [PATCH 09/16] iwlwifi: mvm: Don't sleep in RX path Luca Coelho
2019-04-23 9:10 ` [PATCH 10/16] iwlwifi: pcie: remove stray character in iwl_pcie_rx_alloc_page() Luca Coelho
2019-04-23 9:10 ` [PATCH 11/16] iwlwifi: parse command version TLV Luca Coelho
2019-04-23 9:10 ` [PATCH 12/16] iwlwifi: dbg_ini: add lmac and umac error tables dumping support Luca Coelho
2019-04-23 9:10 ` [PATCH 13/16] iwlwifi: dbg_ini: add periodic trigger support Luca Coelho
2019-04-23 9:10 ` [PATCH 14/16] iwlwifi: dbg: replace dump info device family with HW type Luca Coelho
2019-04-23 9:10 ` [PATCH 15/16] iwlwifi: avoid allocating memory for region with disabled domain Luca Coelho
2019-04-23 9:10 ` [PATCH 16/16] iwlwifi: dbg_ini: check for valid region type during regions parsing Luca Coelho
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=20190423091043.7156-4-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox