Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp249542ybi; Wed, 29 May 2019 20:37:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqxph/iT+h27yd91U9+hL1/JRUGCUjOt5CKBFxnFxH8Nvd+cyUj1mKim5JkbqLCljwivRzXC X-Received: by 2002:a65:4084:: with SMTP id t4mr1739707pgp.224.1559187478641; Wed, 29 May 2019 20:37:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559187478; cv=none; d=google.com; s=arc-20160816; b=lCj4KqaQ7XQI6MN63jbEKI4XPQGSuExI6k6wNib2yufeJ+Xs+TAxIqlw1A6Yel8rXi JZ0Y1xIZXTEXPdCYzV7i/f7Zhw0upbT1ayEvTeXc3M7bpPz3Kwsw8EzSik92ljT9CXPD F8QFsVNlR8/FComh/fqAAv8Dc6iYC/KeW935AeOs5OnBqs9QUAJb2wc85btYdejna7Xy OpPNjSdvioamPS6JSGXXePkXKjv0RmNm1aNZjfynbywXvT0nDl7OAhHt3PmeF4acma+t KvZYZ28yTKKWov2T66bEhvIuw226rbq5WY4chhqbtuENTKPUyfGpwEZRAmAVZeKVOy99 +Rvw== 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=iZOKHgNrd4/MAJ0UDnJQYyK5axxZgTN1bPsLIVnjwe8=; b=du1iQ/FcA3ojy2nMG+LJV2rtH+o00RODGwVwct1ha9r53GYiAE9vKQlK1sVeWm9YXF 43o4LkFcRvErFtjbiYFspkOuM4bGVQKvFO7GgvYBlPVWsUxKKDWXLX+PbjoHdyy6IkRr YCZ4Gi0HWls9A2dQanv/fJOldTRm2I0MD8lz2auhNzzzEsobZcMtCTaHzS8FLOTHfXJW 4D30G+D8O8w6j1rd6Mo4elW/7fgyqLp9E0wEWTH2dH9u5rVHjxkffF5O3QahnOvGccaj EZasz9ftb/y4vXyTLVGzRAMMGMDD8RJvNHgbPKQDWk+2h4CvLCS7uduCzfV960Cdjlav +lbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Y64OVnWM; 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 bo10si1621038pjb.59.2019.05.29.20.37.41; Wed, 29 May 2019 20:37:58 -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=Y64OVnWM; 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 S1733292AbfE3D0h (ORCPT + 99 others); Wed, 29 May 2019 23:26:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:53306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731763AbfE3DS7 (ORCPT ); Wed, 29 May 2019 23:18:59 -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 AFF952481B; Thu, 30 May 2019 03:18:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186338; bh=pIQPawHZ5IFuCUzabyBZl2wAqFNJ+HzJXZxHmV9vQ/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y64OVnWMdi8a38PiaThErMb/kYBDimVuxee+TKEyMaU2kmZnIVXxD/rDmN+VSspTX wJ496edYqtdYds89vCl1/yI1J2Xn8Q6U00Ocgq8UrxvL4FoKeek9DEWl+lMKzeuwO2 SuX5d9ZqJY1kMBtW/xDk1G7Py/3yA4sDPNuXRUzs= 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.14 062/193] iwlwifi: pcie: dont crash on invalid RX interrupt Date: Wed, 29 May 2019 20:05:16 -0700 Message-Id: <20190530030458.067993242@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030446.953835040@linuxfoundation.org> References: <20190530030446.953835040@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 a40ad4675e19e..953e0254a94c1 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c @@ -1252,10 +1252,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