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 X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30175C432C0 for ; Fri, 29 Nov 2019 17:57:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F32782158A for ; Fri, 29 Nov 2019 17:57:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=arista.com header.i=@arista.com header.b="c2lqMUF0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727142AbfK2R5Y (ORCPT ); Fri, 29 Nov 2019 12:57:24 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:45408 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726970AbfK2R5Y (ORCPT ); Fri, 29 Nov 2019 12:57:24 -0500 Received: by mail-pf1-f195.google.com with SMTP id z4so14902138pfn.12 for ; Fri, 29 Nov 2019 09:57:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=googlenew; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=9ZkhQrbE0pqWo4Xrfbt5no2EyvavM8680V6oMcMbppE=; b=c2lqMUF03+NSISePuwEOQ8Bd5i/uGHLhUPTsAK4hss2wEZNO0YtKZZP+M6/3ykCaUV YcetGbI59k7rYvyGajEF+jYtXpODH//HkgX/NLg+AaXkMdP88G569ABBt6CkB8/E/FCD wtCSgaV4vJt7qaH+XdQGLTeQx4bDc0mg8FsG9X0IH3JYGgHBs2DN1gj/oDCTZSg9GjDg sXjeWlR0zFuvErWy+pocrKwGJxdoPytMflbh4lLohMKQM0wIZcZk8D54+NRLdCNjRyom fujXxl6O0Mt6DySUUTU6s9BM1YwdYI1MCH2NmrhA7n8cGNVFY4U20ECnfVoS5trgLGgU yulQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=9ZkhQrbE0pqWo4Xrfbt5no2EyvavM8680V6oMcMbppE=; b=aHusjXyxBRW+MlRN6I43LMUV4YjHRHAbJfP7zncAGac2rLQa/XUl8S/EhJl0xfWYD7 5JkjlZNaI3faTbOvFE7ED0PuIzesxnAxIKzdQjcKaoDZOECFNC9J3z9/bAcavh1LH1Ih PCQRosu0IkFCNFeI3aiycDTimt18y23WWiSuvL1nIR9l2Tp10ZZkf7oV36VEJ0C+HoCd oEBj61LiJFuDEDWELNtDfgCmdkwXEBIGxjBKS5IW40tT/A/qRfm5te2dSzWePXKm7Xcr Su/jzU6Adti8p8LeK8Q4EHFuQnR8ZYuvdN3ebK64Agu+0Xl7acCerZNUgDurDuvw4JZW gy1Q== X-Gm-Message-State: APjAAAXNF5Bk60KDEy7Zht5+2alUKi2OVS2NSlsC5/1fUYlrF2m32eQa nqY2hKhyGyksPzUe/c2/s23HmA== X-Google-Smtp-Source: APXvYqw9Eg6DFBj7pyzOk1ulRHR0zTPsy8bNtI9mmkXKnlGLTxoL+kXcdVsCFL9rQKLOL9a11hNA7Q== X-Received: by 2002:a63:1402:: with SMTP id u2mr18046875pgl.224.1575050243696; Fri, 29 Nov 2019 09:57:23 -0800 (PST) Received: from [10.83.36.220] ([217.173.96.166]) by smtp.gmail.com with ESMTPSA id s7sm9962922pfe.22.2019.11.29.09.57.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Nov 2019 09:57:22 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: [PATCH v5 3/3] PCI: Add DMA alias quirk for PLX PEX NTB From: James Sewart In-Reply-To: <07D724A1-308F-44C3-8937-EE0C21EF3170@arista.com> Date: Fri, 29 Nov 2019 17:57:20 +0000 Cc: Logan Gunthorpe , Christoph Hellwig , Dmitry Safonov <0x7f454c46@gmail.com>, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Dmitry Safonov , Alex Williamson , Bjorn Helgaas Content-Transfer-Encoding: quoted-printable Message-Id: <7B1FC6DB-18D2-4946-A0AF-9C1EC626D3B7@arista.com> References: <20191120193228.GA103670@google.com> <6A902F0D-FE98-4760-ADBB-4D5987D866BE@arista.com> <20191126173833.GA16069@infradead.org> <547214A9-9FD0-4DD5-80E1-1F5A467A0913@arista.com> <9c54c5dd-702c-a19b-38ba-55ab73b24729@deltatee.com> <435064D4-00F0-47F5-94D2-2C354F6B1206@arista.com> <058383d9-69fe-65e3-e410-eebd99840261@deltatee.com> <9DD82D05-6B9E-4AF5-9A3C-D459B75C0089@arista.com> <07D724A1-308F-44C3-8937-EE0C21EF3170@arista.com> To: linux-pci@vger.kernel.org X-Mailer: Apple Mail (2.3445.102.3) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The PLX PEX NTB forwards DMA transactions using Requester ID's that don't exist as PCI devices. The devfn for a transaction is used as an index into a lookup table storing the origin of a transaction on the other side of the bridge. This patch aliases all possible devfn's to the NTB device so that any transaction coming in is governed by the mappings for the NTB. Reviewed-by: Logan Gunthorpe Signed-off-by: James Sewart --- drivers/pci/quirks.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 0f3f5afc73fd..3a67049ca630 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5315,6 +5315,21 @@ SWITCHTEC_QUIRK(0x8574); /* PFXI 64XG3 */ SWITCHTEC_QUIRK(0x8575); /* PFXI 80XG3 */ SWITCHTEC_QUIRK(0x8576); /* PFXI 96XG3 */ =20 +/* + * PLX NTB uses devfn proxy IDs to move TLPs between NT endpoints. = These IDs + * are used to forward responses to the originator on the other side of = the + * NTB. Alias all possible IDs to the NTB to permit access when the = IOMMU is + * turned on. + */ +static void quirk_plx_ntb_dma_alias(struct pci_dev *pdev) +{ + pci_info(pdev, "Setting PLX NTB proxy ID aliases\n"); + /* PLX NTB may use all 256 devfns */ + pci_add_dma_alias(pdev, 0, 256); +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_PLX, 0x87b0, = quirk_plx_ntb_dma_alias); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_PLX, 0x87b1, = quirk_plx_ntb_dma_alias); + /* * On Lenovo Thinkpad P50 SKUs with a Nvidia Quadro M1000M, the BIOS = does * not always reset the secondary Nvidia GPU between reboots if the = system --=20 2.24.0