Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp245163ybi; Wed, 29 May 2019 20:32:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqydv9v+gdanDtae9wBWKhbve66Lzxg1WNlpaY+GaJkqF9uG9DZcQDA1xVPznf0CmTqqw7WE X-Received: by 2002:a17:90a:350d:: with SMTP id q13mr1677183pjb.20.1559187160132; Wed, 29 May 2019 20:32:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559187160; cv=none; d=google.com; s=arc-20160816; b=bXRZJQ46g/B6RWOdZV/WtIkSxLT3p9fLPvB2jsNFsxwsHw3w9U9bzutWN2O/s4st0D lt5mvE6F5gZdPSNPsd2AtLVEk9XHgviVWo10e+iwvYPwUp/06SUzxPEk0IpElUueWLRC QwMSYEoE9FdFRhZzCxnWqlmzH6W3kxxaaeTkyol8edCIgWVSpF4drew0tPYWOtW6MWf4 ox3QkRYHFnNy/jT6fXve1sVjFUf3FWWrn1mDAiBoCyUiAs7+LFijX5KBoCp6HOZHHx0Y HDVZvlnAF9NOAn9nyQfNa25aRcI+mu43arVlkn2AF2RKAs5Stz90MLXapo1FpdWH7loo zHHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YqixVx50BHr4wGG+Gy4CR33Wdlza9DOGgDAgxKJlTHw=; b=kilVZOCcLwTFsbRez8uyoNMcMZubm47ZatCvPAeNQhthVXJm/820lbonmOgQVU/p7f r8IcO9gIopbmtLIHs6s4hHjIM7799z5dAUX0QWi6YZQQ6B6T8s0LAWfoNrN3AuK2Ijer 6FJpjF5D/2Z8+zsoKqdf45vcDfVhkzMtxeYItO6opAQ0giXOvD7xH2Q+Argx80+NYuxg ++AH+CMyW8ZOw5ovKre9gEu8JnDVrgM2ASZnCRph551HR9rYmMx4Yx80jCjrJRPCAZL6 AlfhPiZ1VznnflwGv7RzPlYOFOpb19Gl355x6xD9p6eZ61WlZx2Bdtb2bLKy+RnCYfS0 T5ZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aAX7Hddd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i14si2129796pfe.187.2019.05.29.20.32.23; Wed, 29 May 2019 20:32:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aAX7Hddd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388423AbfE3D3i (ORCPT + 99 others); Wed, 29 May 2019 23:29:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:60008 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730575AbfE3DUr (ORCPT ); Wed, 29 May 2019 23:20:47 -0400 Received: from localhost (ip67-88-213-2.z213-88-67.customer.algx.net [67.88.213.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 21D8F2496F; Thu, 30 May 2019 03:20:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186447; bh=xHVzDq91aH0SJhrqyRTORQomLvIyxj+MOPYxDC+DYK4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aAX7HdddUkmF56IjZtnmHpDnyuJ5b5ie8gPmEXg10EWvtVWspm3uAKK0k8h/0o5Ra O5otIA/3O3rD0uD1vpBlW3B86ekuE9AXuy/er17XB4PcpeETMXMHP5zGunKt91cIg0 9FfyRb1nFm5l+pHo3BIt3cu9Q7y6FLYznocwrWv0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johannes Berg , Luca Coelho , Sasha Levin Subject: [PATCH 4.9 037/128] iwlwifi: pcie: dont crash on invalid RX interrupt Date: Wed, 29 May 2019 20:06:09 -0700 Message-Id: <20190530030440.829423723@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030432.977908967@linuxfoundation.org> References: <20190530030432.977908967@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 30f24eabab8cd801064c5c37589d803cb4341929 ] 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 Signed-off-by: Luca Coelho Signed-off-by: Sasha Levin --- 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 c21f8bd32d08f..25f2a0aceaa21 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c @@ -1225,10 +1225,15 @@ static void iwl_pcie_rx_handle_rb(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