From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23161C433F5 for ; Fri, 1 Apr 2022 15:51:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345008AbiDAPre (ORCPT ); Fri, 1 Apr 2022 11:47:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350274AbiDAO7a (ORCPT ); Fri, 1 Apr 2022 10:59:30 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C528653A65; Fri, 1 Apr 2022 07:46:47 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 4C109B824AF; Fri, 1 Apr 2022 14:46:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C26FAC34111; Fri, 1 Apr 2022 14:46:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1648824405; bh=5n6gkPn4odniDxxdbPfsYkqV0k8lz58Vff0Ug6fRgoU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F8TCqa000dcZJPKP6mQ0eBoZPR0+MCPgrDnRm+LF1RTiUCCfyV4kASs20gBG0VFkS 307Cwa2IPjX+EA/PZROwkRe5UDABBGVD7FAJPoJlJogeO9KZZDxDUNWBHd2AnGNg8q sS2jvbUyzh4A+QY2fSV1K2YIpd1wWoRqOR3psQMv63+7L2OmXLdWlCjDqRCLZvNTqM vi6HMLT88SlZtwYH2Mg5dJurVl/bH9L71HnPxOBY3YGCXv48Y4SnxaWo/lDlQeLOCt x/M4A/PxGDqPC/2ml/lkvs6kFbyRBAhlpkehbDvnYLJg6lmL51BEWMQKGKLzbPdm1n O7goG6oj1jM1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Pali=20Roh=C3=A1r?= , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lorenzo Pieralisi , Sasha Levin , thomas.petazzoni@bootlin.com, bhelgaas@google.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 4.19 10/29] PCI: aardvark: Fix support for MSI interrupts Date: Fri, 1 Apr 2022 10:45:53 -0400 Message-Id: <20220401144612.1955177-10-sashal@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401144612.1955177-1-sashal@kernel.org> References: <20220401144612.1955177-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org From: Pali Rohár [ Upstream commit b0b0b8b897f8e12b2368e868bd7cdc5742d5c5a9 ] Aardvark hardware supports Multi-MSI and MSI_FLAG_MULTI_PCI_MSI is already set for the MSI chip. But when allocating MSI interrupt numbers for Multi-MSI, the numbers need to be properly aligned, otherwise endpoint devices send MSI interrupt with incorrect numbers. Fix this issue by using function bitmap_find_free_region() instead of bitmap_find_next_zero_area(). To ensure that aligned MSI interrupt numbers are used by endpoint devices, we cannot use Linux virtual irq numbers (as they are random and not properly aligned). Instead we need to use the aligned hwirq numbers. This change fixes receiving MSI interrupts on Armada 3720 boards and allows using NVMe disks which use Multi-MSI feature with 3 interrupts. Without this NVMe disks freeze booting as linux nvme-core.c is waiting 60s for an interrupt. Link: https://lore.kernel.org/r/20220110015018.26359-4-kabel@kernel.org Signed-off-by: Pali Rohár Signed-off-by: Marek Behún Signed-off-by: Lorenzo Pieralisi Signed-off-by: Sasha Levin --- drivers/pci/controller/pci-aardvark.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index e6d60fa2217d..db778a25bae3 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -833,7 +833,7 @@ static void advk_msi_irq_compose_msi_msg(struct irq_data *data, msg->address_lo = lower_32_bits(msi_msg); msg->address_hi = upper_32_bits(msi_msg); - msg->data = data->irq; + msg->data = data->hwirq; } static int advk_msi_set_affinity(struct irq_data *irq_data, @@ -850,15 +850,11 @@ static int advk_msi_irq_domain_alloc(struct irq_domain *domain, int hwirq, i; mutex_lock(&pcie->msi_used_lock); - hwirq = bitmap_find_next_zero_area(pcie->msi_used, MSI_IRQ_NUM, - 0, nr_irqs, 0); - if (hwirq >= MSI_IRQ_NUM) { - mutex_unlock(&pcie->msi_used_lock); - return -ENOSPC; - } - - bitmap_set(pcie->msi_used, hwirq, nr_irqs); + hwirq = bitmap_find_free_region(pcie->msi_used, MSI_IRQ_NUM, + order_base_2(nr_irqs)); mutex_unlock(&pcie->msi_used_lock); + if (hwirq < 0) + return -ENOSPC; for (i = 0; i < nr_irqs; i++) irq_domain_set_info(domain, virq + i, hwirq + i, @@ -876,7 +872,7 @@ static void advk_msi_irq_domain_free(struct irq_domain *domain, struct advk_pcie *pcie = domain->host_data; mutex_lock(&pcie->msi_used_lock); - bitmap_clear(pcie->msi_used, d->hwirq, nr_irqs); + bitmap_release_region(pcie->msi_used, d->hwirq, order_base_2(nr_irqs)); mutex_unlock(&pcie->msi_used_lock); } -- 2.34.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 63AC1C433EF for ; Fri, 1 Apr 2022 14:59:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DwlQhbOeo/J7VJF6Qz8AttJhHHVrnODT+6KIgsZb/wo=; b=BGsFSIbps2TduA eKw+WSWUTW7eOXZaG9HBjraM+GznOchrXkKspBktZjL3B16oX05D4gDvazCzZMFvDoSRPnl2tiPC1 2+BfkJkuuJOPKsxjZiZdqg/NNX4nDrRVFlDcsLHJ57k+Ov4eiN7lCfxuYfEwMCJM0MTQKtR1qXmR1 B3hSFtgpme48ZeTDQJBYAZGSK/T48ntSFDX1pHTEPA+siBgKeISUVnygCxNQsi0TMDmzHXcZiY3jA S3abaTVdeja+yCvdBFHeNtp8KqUB+ns6UyHBLOjYrS2L1C++QuoTwdQn12AfqzOnmLTA/ecefzs4h wgfGg/nymgyX6rKQmbSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1naIig-006Hi4-Of; Fri, 01 Apr 2022 14:57:47 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1naIY3-006C15-If for linux-arm-kernel@lists.infradead.org; Fri, 01 Apr 2022 14:46:49 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3058EB824D5; Fri, 1 Apr 2022 14:46:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C26FAC34111; Fri, 1 Apr 2022 14:46:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1648824405; bh=5n6gkPn4odniDxxdbPfsYkqV0k8lz58Vff0Ug6fRgoU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F8TCqa000dcZJPKP6mQ0eBoZPR0+MCPgrDnRm+LF1RTiUCCfyV4kASs20gBG0VFkS 307Cwa2IPjX+EA/PZROwkRe5UDABBGVD7FAJPoJlJogeO9KZZDxDUNWBHd2AnGNg8q sS2jvbUyzh4A+QY2fSV1K2YIpd1wWoRqOR3psQMv63+7L2OmXLdWlCjDqRCLZvNTqM vi6HMLT88SlZtwYH2Mg5dJurVl/bH9L71HnPxOBY3YGCXv48Y4SnxaWo/lDlQeLOCt x/M4A/PxGDqPC/2ml/lkvs6kFbyRBAhlpkehbDvnYLJg6lmL51BEWMQKGKLzbPdm1n O7goG6oj1jM1A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Pali=20Roh=C3=A1r?= , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lorenzo Pieralisi , Sasha Levin , thomas.petazzoni@bootlin.com, bhelgaas@google.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 4.19 10/29] PCI: aardvark: Fix support for MSI interrupts Date: Fri, 1 Apr 2022 10:45:53 -0400 Message-Id: <20220401144612.1955177-10-sashal@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401144612.1955177-1-sashal@kernel.org> References: <20220401144612.1955177-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220401_074647_974512_FB00A164 X-CRM114-Status: GOOD ( 16.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KClsgVXBzdHJlYW0gY29tbWl0IGIw YjBiOGI4OTdmOGUxMmIyMzY4ZTg2OGJkN2NkYzU3NDJkNWM1YTkgXQoKQWFyZHZhcmsgaGFyZHdh cmUgc3VwcG9ydHMgTXVsdGktTVNJIGFuZCBNU0lfRkxBR19NVUxUSV9QQ0lfTVNJIGlzIGFscmVh ZHkKc2V0IGZvciB0aGUgTVNJIGNoaXAuIEJ1dCB3aGVuIGFsbG9jYXRpbmcgTVNJIGludGVycnVw dCBudW1iZXJzIGZvcgpNdWx0aS1NU0ksIHRoZSBudW1iZXJzIG5lZWQgdG8gYmUgcHJvcGVybHkg YWxpZ25lZCwgb3RoZXJ3aXNlIGVuZHBvaW50CmRldmljZXMgc2VuZCBNU0kgaW50ZXJydXB0IHdp dGggaW5jb3JyZWN0IG51bWJlcnMuCgpGaXggdGhpcyBpc3N1ZSBieSB1c2luZyBmdW5jdGlvbiBi aXRtYXBfZmluZF9mcmVlX3JlZ2lvbigpIGluc3RlYWQgb2YKYml0bWFwX2ZpbmRfbmV4dF96ZXJv X2FyZWEoKS4KClRvIGVuc3VyZSB0aGF0IGFsaWduZWQgTVNJIGludGVycnVwdCBudW1iZXJzIGFy ZSB1c2VkIGJ5IGVuZHBvaW50IGRldmljZXMsCndlIGNhbm5vdCB1c2UgTGludXggdmlydHVhbCBp cnEgbnVtYmVycyAoYXMgdGhleSBhcmUgcmFuZG9tIGFuZCBub3QKcHJvcGVybHkgYWxpZ25lZCku IEluc3RlYWQgd2UgbmVlZCB0byB1c2UgdGhlIGFsaWduZWQgaHdpcnEgbnVtYmVycy4KClRoaXMg Y2hhbmdlIGZpeGVzIHJlY2VpdmluZyBNU0kgaW50ZXJydXB0cyBvbiBBcm1hZGEgMzcyMCBib2Fy ZHMgYW5kCmFsbG93cyB1c2luZyBOVk1lIGRpc2tzIHdoaWNoIHVzZSBNdWx0aS1NU0kgZmVhdHVy ZSB3aXRoIDMgaW50ZXJydXB0cy4KCldpdGhvdXQgdGhpcyBOVk1lIGRpc2tzIGZyZWV6ZSBib290 aW5nIGFzIGxpbnV4IG52bWUtY29yZS5jIGlzIHdhaXRpbmcKNjBzIGZvciBhbiBpbnRlcnJ1cHQu CgpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjIwMTEwMDE1MDE4LjI2MzU5LTQt a2FiZWxAa2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwu b3JnPgpTaWduZWQtb2ZmLWJ5OiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+ClNpZ25l ZC1vZmYtYnk6IExvcmVuem8gUGllcmFsaXNpIDxsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tPgpT aWduZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYyB8IDE2ICsrKysrKy0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMgYi9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaS1hYXJkdmFyay5jCmluZGV4IGU2ZDYwZmEyMjE3ZC4uZGI3NzhhMjViYWUz IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCisrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKQEAgLTgzMyw3ICs4MzMsNyBA QCBzdGF0aWMgdm9pZCBhZHZrX21zaV9pcnFfY29tcG9zZV9tc2lfbXNnKHN0cnVjdCBpcnFfZGF0 YSAqZGF0YSwKIAogCW1zZy0+YWRkcmVzc19sbyA9IGxvd2VyXzMyX2JpdHMobXNpX21zZyk7CiAJ bXNnLT5hZGRyZXNzX2hpID0gdXBwZXJfMzJfYml0cyhtc2lfbXNnKTsKLQltc2ctPmRhdGEgPSBk YXRhLT5pcnE7CisJbXNnLT5kYXRhID0gZGF0YS0+aHdpcnE7CiB9CiAKIHN0YXRpYyBpbnQgYWR2 a19tc2lfc2V0X2FmZmluaXR5KHN0cnVjdCBpcnFfZGF0YSAqaXJxX2RhdGEsCkBAIC04NTAsMTUg Kzg1MCwxMSBAQCBzdGF0aWMgaW50IGFkdmtfbXNpX2lycV9kb21haW5fYWxsb2Moc3RydWN0IGly cV9kb21haW4gKmRvbWFpbiwKIAlpbnQgaHdpcnEsIGk7CiAKIAltdXRleF9sb2NrKCZwY2llLT5t c2lfdXNlZF9sb2NrKTsKLQlod2lycSA9IGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhKHBjaWUt Pm1zaV91c2VkLCBNU0lfSVJRX05VTSwKLQkJCQkJICAgMCwgbnJfaXJxcywgMCk7Ci0JaWYgKGh3 aXJxID49IE1TSV9JUlFfTlVNKSB7Ci0JCW11dGV4X3VubG9jaygmcGNpZS0+bXNpX3VzZWRfbG9j ayk7Ci0JCXJldHVybiAtRU5PU1BDOwotCX0KLQotCWJpdG1hcF9zZXQocGNpZS0+bXNpX3VzZWQs IGh3aXJxLCBucl9pcnFzKTsKKwlod2lycSA9IGJpdG1hcF9maW5kX2ZyZWVfcmVnaW9uKHBjaWUt Pm1zaV91c2VkLCBNU0lfSVJRX05VTSwKKwkJCQkJb3JkZXJfYmFzZV8yKG5yX2lycXMpKTsKIAlt dXRleF91bmxvY2soJnBjaWUtPm1zaV91c2VkX2xvY2spOworCWlmIChod2lycSA8IDApCisJCXJl dHVybiAtRU5PU1BDOwogCiAJZm9yIChpID0gMDsgaSA8IG5yX2lycXM7IGkrKykKIAkJaXJxX2Rv bWFpbl9zZXRfaW5mbyhkb21haW4sIHZpcnEgKyBpLCBod2lycSArIGksCkBAIC04NzYsNyArODcy LDcgQEAgc3RhdGljIHZvaWQgYWR2a19tc2lfaXJxX2RvbWFpbl9mcmVlKHN0cnVjdCBpcnFfZG9t YWluICpkb21haW4sCiAJc3RydWN0IGFkdmtfcGNpZSAqcGNpZSA9IGRvbWFpbi0+aG9zdF9kYXRh OwogCiAJbXV0ZXhfbG9jaygmcGNpZS0+bXNpX3VzZWRfbG9jayk7Ci0JYml0bWFwX2NsZWFyKHBj aWUtPm1zaV91c2VkLCBkLT5od2lycSwgbnJfaXJxcyk7CisJYml0bWFwX3JlbGVhc2VfcmVnaW9u KHBjaWUtPm1zaV91c2VkLCBkLT5od2lycSwgb3JkZXJfYmFzZV8yKG5yX2lycXMpKTsKIAltdXRl eF91bmxvY2soJnBjaWUtPm1zaV91c2VkX2xvY2spOwogfQogCi0tIAoyLjM0LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==