From patchwork Tue Apr 19 17:13:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Auger X-Patchwork-Id: 8882081 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 45DB49F36E for ; Tue, 19 Apr 2016 17:16:15 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7444C2026D for ; Tue, 19 Apr 2016 17:16:14 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 982AA2026F for ; Tue, 19 Apr 2016 17:16:13 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1asZEd-0006FN-Cx; Tue, 19 Apr 2016 17:14:47 +0000 Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1asZDi-0005Jr-2O for linux-arm-kernel@lists.infradead.org; Tue, 19 Apr 2016 17:13:51 +0000 Received: by mail-wm0-x22e.google.com with SMTP id e201so21940874wme.0 for ; Tue, 19 Apr 2016 10:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4iGeRqRFv3abGXTu1J2oCsW26GPGRrVEh092TD8ngjk=; b=U5FGb9P2ypLukF3tqz5zTcM8fogxjROXKtsJebhcoHCAvB7+1MyuorVvf9uNpbi4nd SB8HCvjo/6acJaRU2zlmy25sHnjlnCQXZQjdeV16UaMNN4pyAkmJ8+hVLwzGEk378Wcx 3or9utEtgFdglXUDYaqsBcCUxj6iTFjS1r5c0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4iGeRqRFv3abGXTu1J2oCsW26GPGRrVEh092TD8ngjk=; b=fXSJlBxCgoQB5wt7nzU+PfO9u6jikCL6bh8UZiEDjEPrqb6i44fkyzdR/4yMrX+dJ/ 1DqHPJ50T2bFL5/MHURGk40cz8NxZwzxCSVIzXdmHtNTyw0sJdBWzt/f0Mt2QUOJKqNk 964uPeR0HObCRCytiB+AUCL1hYNOY3j+FRZzaQfZ0TeWrBxO4uroqYSjhjf3Egtfsa31 AgO88Jj+/8MkhoCEQCYwGhwkLnceCMaYFWqXhPC79zYii+FpVjn8AyFFufdq4P26SH8d rw6DTyuTHijTQGFzXFm/atiH4Kw0pMMPLQvsr1OGVJPkaV+2rGg162ekBN7ufRibEFhO Sxqg== X-Gm-Message-State: AOPr4FVDHrWkl7wXq02mHU5gbs/nZSsTIVyBxjNlqe70aCfO7r1tvLm8MDLlUHApN3+bdETJ X-Received: by 10.194.234.101 with SMTP id ud5mr4162199wjc.34.1461086012554; Tue, 19 Apr 2016 10:13:32 -0700 (PDT) Received: from new-host-34.home (LMontsouris-657-1-37-90.w80-11.abo.wanadoo.fr. [80.11.198.90]) by smtp.gmail.com with ESMTPSA id gr4sm1243604wjd.23.2016.04.19.10.13.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Apr 2016 10:13:31 -0700 (PDT) From: Eric Auger To: eric.auger@st.com, eric.auger@linaro.org, robin.murphy@arm.com, alex.williamson@redhat.com, will.deacon@arm.com, joro@8bytes.org, tglx@linutronix.de, jason@lakedaemon.net, marc.zyngier@arm.com, christoffer.dall@linaro.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v7 8/8] genirq/msi: use the MSI doorbell's IOVA when requested Date: Tue, 19 Apr 2016 17:13:10 +0000 Message-Id: <1461085990-2547-9-git-send-email-eric.auger@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1461085990-2547-1-git-send-email-eric.auger@linaro.org> References: <1461085990-2547-1-git-send-email-eric.auger@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160419_101350_307127_B093346D X-CRM114-Status: GOOD ( 14.13 ) X-Spam-Score: -2.7 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: julien.grall@arm.com, patches@linaro.org, Jean-Philippe.Brucker@arm.com, p.fedin@samsung.com, linux-kernel@vger.kernel.org, Bharat.Bhushan@freescale.com, iommu@lists.linux-foundation.org, pranav.sawargaonkar@gmail.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On MSI message composition we now use the MSI doorbell's IOVA in place of the doorbell's PA in case the device is upstream to an IOMMU that requires MSI addresses to be mapped. The doorbell's allocation and mapping happened on an early stage (pci_enable_msi). Signed-off-by: Eric Auger --- v6 -> v7: - allocation/mapping is done at an earlier stage. We now just perform the iova lookup. So it is safe now to be called in a code that cannot sleep. iommu_msi_set_doorbell_iova is moved in the dma-reserved-iommu API: I think it cleans things up with respect to various #ifdef CONFIGS. v5: - use macros to increase the readability - add comments - fix a typo that caused a compilation error if CONFIG_IOMMU_API is not set --- kernel/irq/msi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c index e45907e..0ebb2d8 100644 --- a/kernel/irq/msi.c +++ b/kernel/irq/msi.c @@ -19,6 +19,7 @@ /* Temparory solution for building, will be removed later */ #include +#include struct msi_desc *alloc_msi_entry(struct device *dev) { @@ -64,8 +65,12 @@ static int msi_compose(struct irq_data *irq_data, if (erase) memset(msg, 0, sizeof(*msg)); - else + else { ret = irq_chip_compose_msi_msg(irq_data, msg); + if (ret) + return ret; + iommu_msi_mapping_translate_msg(irq_data, msg); + } return ret; }