Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2088357ybt; Mon, 15 Jun 2020 18:20:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjNtdSs1XE3XhkD0mI/8fI12AEr0G6o6Ip2EWGKh3yf3fddJIOSLle6S+0tsynZ7KSKPgr X-Received: by 2002:a50:f611:: with SMTP id c17mr465495edn.60.1592270407612; Mon, 15 Jun 2020 18:20:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592270407; cv=none; d=google.com; s=arc-20160816; b=n8jlYw2SDnB/3FMsOG5pZjbE7TkHi4xVHTcY5e2DGE8knvy9g4hHfnc76p0bTAEA7U wumJNzKwu2LCu0kFaYQU5Ss/yxZ6z+UtUK7KC7Fv7xmL17qVFlMzc+827APuDEYwj5wA dotCRi4MqOBa5fbqks4Xupntp/+xbSxVgHMih2vKClPMq8Y9mxMEteJ8e1gT2P58xaO1 obkGZ2JRTmAknDdqA3apfpfWSIXLNMQBfJSDf+9BmjUZcr4QzoQ1kAzs8UAqcisA95nK e48FRDBNvOWgG9Ye1EfKUAt9puaSRB+U3PwWyy8Sn16be26lBydkD9PINR+Zo7/eFSUW Kp5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=/xX6nZw43qnrS5POTejrGqQ7NU/q6i+TSuGWkPxARP8=; b=P3YsJILw/75N+lG6AO7famvgqa4JuniYqSBbitVlVzFLPXdQNY9HJ9tEJrjWM2f263 zohB7sA7PyYEI8N+kNxTHoZgUPC7jJ3GfNnRYHicgEIjPL4FF2gZS/iN1Zprc8iDGQC2 JLyFnUbMAUKjkVp+6hWaAIYp0kus5zXoyu6lAOcQcZbiYYecs9ZPbf8TJXH2p5IwrLXT vMzglUpPyMTqfgYU9ql2LM+zumLjBFHkGwD2uJwWIspt71cEMgvIOwnwWsENuxa2mmZS fs1oPvL5YDPapx3xsIpRGBdTwpVOeqFZPBAgM5IGMUlBVYladv/cYAQVAyphr8o4Yl+o vGFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=K64yw4Ua; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y16si4781700ejr.344.2020.06.15.18.19.45; Mon, 15 Jun 2020 18:20:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=K64yw4Ua; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726910AbgFPBR4 (ORCPT + 99 others); Mon, 15 Jun 2020 21:17:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726492AbgFPBRy (ORCPT ); Mon, 15 Jun 2020 21:17:54 -0400 Received: from mail-qt1-x84a.google.com (mail-qt1-x84a.google.com [IPv6:2607:f8b0:4864:20::84a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E6D4C08C5C2 for ; Mon, 15 Jun 2020 18:17:54 -0700 (PDT) Received: by mail-qt1-x84a.google.com with SMTP id w14so15499348qtv.19 for ; Mon, 15 Jun 2020 18:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=/xX6nZw43qnrS5POTejrGqQ7NU/q6i+TSuGWkPxARP8=; b=K64yw4UaVuSTB06zM70ynWO3Qe34OlpnWZDFtQx+XohI9pGel76JaZtLQSBoWSuTVn iUzYet0x27iuRTb1k2C8psq+ocK+eUc+lbqn/lM4DjoyK8Lwthh6he1ErlgUVUwd2DYt +Ye+ql9uWjMbbc98okBddDJZZSEPasbtsclPT6fSyzC2cMfQoctWhwgA1EprQkRAaKW3 kZpng1WUzZbMtCYVB9VeNUn8PkNpzWWpfDFshQHOc4eQsm4yRF+loPV3Fp3xPvwnmEqr I9MkdliB1IiEzSTXoV4J1n+HUh2x8Vc310feGGYXQTOVnGd2k9zdRqFaiLC6Nf2wojul zk3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=/xX6nZw43qnrS5POTejrGqQ7NU/q6i+TSuGWkPxARP8=; b=IG7iXFFWN9Qm0YwsDWIczIPWyQQpj1BzRocSPNn8g1g4VbQYZcuJP9wL2xNzadZTmi OvYBfRsElwhq6fcnQQez7ADlAdaQgDxjD6si15o0zgpevV3S0f8pQqer3nND3qtgBs5Q GCs3iJvWtfuFm2aqefsp3Ea3u2J20hx6tAiADB6kGXXevPXsJ0XGueTwyslghd/IDrOB 717JYduQOeLusac0k5L8quxLdpegQDUa82mQJeMdMY0dSJJirnxL3wvYcQm+8O2JwhxL fF4WPYLfqPl5SUh7XEFcfxJ899g3LGpGqfgd0g43opetBleTa07m8WD55X+hCEejx7iE GGtA== X-Gm-Message-State: AOAM530hXwPe5exWJMtRII6DJ8f2gkbKAfVV7KYm4NKPI/Oz7d0w4xpP 3aSxH503rO/dkiaGhM7uPN5Mu89gL8P2 X-Received: by 2002:ad4:4374:: with SMTP id u20mr548678qvt.144.1592270273220; Mon, 15 Jun 2020 18:17:53 -0700 (PDT) Date: Mon, 15 Jun 2020 18:17:41 -0700 In-Reply-To: <20200616011742.138975-1-rajatja@google.com> Message-Id: <20200616011742.138975-3-rajatja@google.com> Mime-Version: 1.0 References: <20200616011742.138975-1-rajatja@google.com> X-Mailer: git-send-email 2.27.0.290.gba653c62da-goog Subject: [PATCH 3/4] pci: acs: Enable PCI_ACS_TB for untrusted/external-facing devices From: Rajat Jain To: David Woodhouse , Lu Baolu , Joerg Roedel , Bjorn Helgaas , "Rafael J. Wysocki" , Len Brown , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, Raj Ashok , lalithambika.krishnakumar@intel.com, Mika Westerberg , Jean-Philippe Brucker , Prashant Malani , Benson Leung , Todd Broch , Alex Levin , Mattias Nissler , Rajat Jain , Bernie Keany , Aaron Durbin , Diego Rivas , Duncan Laurie , Furquan Shaikh , Jesse Barnes , Christian Kellner , Alex Williamson , Greg Kroah-Hartman , oohall@gmail.com Cc: Rajat Jain Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When enabling ACS, currently the bit "translation blocking" was not getting changed at all. Set it to disable translation blocking too for all external facing or untrusted devices. This is OK because ATS is only allowed on internal devces. Signed-off-by: Rajat Jain --- drivers/pci/pci.c | 4 ++++ drivers/pci/quirks.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index d2ff987585855..79853b52658a2 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3330,6 +3330,10 @@ static void pci_std_enable_acs(struct pci_dev *dev) /* Upstream Forwarding */ ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_word(dev, pos + PCI_ACS_CTRL, ctrl); } diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index b341628e47527..6294adeac4049 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4934,6 +4934,13 @@ static void pci_quirk_enable_intel_rp_mpc_acs(struct pci_dev *dev) } } +/* + * Currently this quirk does the equivalent of + * PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_SV + * + * Currently missing, it also needs to do equivalent of PCI_ACS_TB, + * if dev->external_facing || dev->untrusted + */ static int pci_quirk_enable_intel_pch_acs(struct pci_dev *dev) { if (!pci_quirk_intel_pch_acs_match(dev)) @@ -4973,6 +4980,10 @@ static int pci_quirk_enable_intel_spt_pch_acs(struct pci_dev *dev) ctrl |= (cap & PCI_ACS_CR); ctrl |= (cap & PCI_ACS_UF); + if (dev->external_facing || dev->untrusted) + /* Translation Blocking */ + ctrl |= (cap & PCI_ACS_TB); + pci_write_config_dword(dev, pos + INTEL_SPT_ACS_CTRL, ctrl); pci_info(dev, "Intel SPT PCH root port ACS workaround enabled\n"); -- 2.27.0.290.gba653c62da-goog