From patchwork Sat May 5 15:18:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tee Hao Wei X-Patchwork-Id: 10382191 X-Patchwork-Delegate: luca@coelho.fi Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D44826053F for ; Sat, 5 May 2018 15:18:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C3BA428981 for ; Sat, 5 May 2018 15:18:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B793B28D99; Sat, 5 May 2018 15:18:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3AC0C28981 for ; Sat, 5 May 2018 15:18:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751771AbeEEPSw (ORCPT ); Sat, 5 May 2018 11:18:52 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:45892 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751747AbeEEPSv (ORCPT ); Sat, 5 May 2018 11:18:51 -0400 Received: by mail-pg0-f66.google.com with SMTP id i29-v6so17342936pgn.12 for ; Sat, 05 May 2018 08:18:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=in04.sg; s=google; h=subject:from:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=toDELxmGzTQtcbaxrBehJ6/b0fUPVNVu5n9po4C3gxw=; b=cIbOIC8oWs0mpi9WIU3j8Vt3mk4nfh+BPVxTSN+nuapC05qpnkr8YlX4Vojn/X5V2o v+q0FAr2twzOFl4bYOua2zdE7oqFuPK6vsJCYMa4wwvbjc35AgwkNlel/7cqQcJ0bOsP BRYPqs9OiFAeD6URIggpSnEXENdmdluiwNYvAgPF/bRCsKpMu+TuthkRDhasNt+l1sSw lSRTToO9CTFst3fW7i/KOoF1W1J8yUkypAqzvptHXNp77Fero3q7v11c7ytwVsORen7h pq4m3DuDq+8LJqVJNZaOxv+NYLh/PYL/2Zc2eeFpAm8vamrrx1ObqM2lg6c3lSdomOx0 +AAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=toDELxmGzTQtcbaxrBehJ6/b0fUPVNVu5n9po4C3gxw=; b=YzmdDAjLl3TrMSLamGZXbutsTwCXQZFJ0VEkF0pQmxSr1hDL8h7/Bfq+R1d838XTF5 x/fjSZsOsaCzyieH6qwBvZn1o/6IQd4hPms+xImWAlcsE7ixKn/q1mq77uoBhZo2fVPL V53PbIk/WcK5l67QvTuQ84zjkNAWDehdLaET2SQf6ILd7CElaA5pycmM5c81ibrjHdK7 gkxR5e6Zjej6pQ8v+xDAlbnmMb+wUOufyEnmhv/m2o4LPLtLrSE2UiHLS+1qnpRoPEzm NKTkuCU1EAL2gtjKe7hRPxP9DGTs51riPAYB6fC0PF+7+XMo5sg7XHL5Q5eUgrhqoUEm 9dYw== X-Gm-Message-State: ALQs6tDy1RiHbIc6LLdeGy2kL7ffokkkEHoLmCv8V+sgvV8Ym4W/w+zi 87/g9hZLLiD6+g7D7D8L4JZdAR7GUeiGxg== X-Google-Smtp-Source: AB8JxZpZHb75OUZtkRjKFU2FKayHxPE2e0RV3dyTXDMUhVH1kwHaGu5zpaFc/lMC/etsuZb9k9Q+2w== X-Received: by 2002:a17:902:758a:: with SMTP id j10-v6mr31931840pll.11.1525533530466; Sat, 05 May 2018 08:18:50 -0700 (PDT) Received: from ?IPv6:2406:3003:2000:1e23:645d:763c:cc7c:3764? ([2406:3003:2000:1e23:645d:763c:cc7c:3764]) by smtp.gmail.com with ESMTPSA id 206sm32770390pfy.51.2018.05.05.08.18.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 05 May 2018 08:18:49 -0700 (PDT) Subject: [PATCH v2] iwlwifi: limit MSI-X IRQs to IWL_MAX_RX_HW_QUEUES - 1 to avoid num_rx_queues > IWL_MAX_RX_HW_QUEUES From: Hao Wei Tee To: johannes.berg@intel.com, emmanuel.grumbach@intel.com, luciano.coelho@intel.com, linuxwifi@intel.com, linux-wireless@vger.kernel.org References: Message-ID: <0b07aa06-111b-4399-786d-056d9bba5cdd@in04.sg> Date: Sat, 5 May 2018 23:18:46 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When there are 16 or more logical CPUs, we request for `IWL_MAX_RX_HW_QUEUES` (16) IRQs only, but later on create `num_irqs+1` RX queues, which could end up more than `IWL_MAX_RX_HW_QUEUES` if the OS does return us 16 IRQs. This wreaks lots of havoc elsewhere later on due to code that uses `num_rx_queues` to calculate array sizes. Limit to IWL_MAX_RX_HW_QUEUES - 1 IRQs so num_rx_queues is never more than IWL_MAX_RX_HW_QUEUES. Signed-off-by: Hao Wei Tee --- My bad. Forgot to sign off. drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index 6e9a9ecfb11c..f5c12924c836 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -1607,7 +1607,7 @@ static void iwl_pcie_set_interrupt_capa(struct pci_dev *pdev, goto enable_msi; nr_online_cpus = num_online_cpus(); - max_irqs = min_t(u32, nr_online_cpus + 2, IWL_MAX_RX_HW_QUEUES); + max_irqs = min_t(u32, nr_online_cpus + 2, IWL_MAX_RX_HW_QUEUES - 1); for (i = 0; i < max_irqs; i++) trans_pcie->msix_entries[i].entry = i;