From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kees Cook Subject: [PATCH] iommu/intel: disable DMAR for Q35 integrated gfx Date: Mon, 5 Dec 2016 13:58:41 -0800 Message-ID: <20161205215841.GA20819@beast> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, David Woodhouse , Joerg Roedel List-Id: iommu@lists.linux-foundation.org VGhpcyBibGFja2xpc3RzIHRoZSBRMzUgaW50ZWdyYXRlZCBncmFwaGljcyBzbyBJT01NVSBjYW4g YmUgb3RoZXJ3aXNlCmVuYWJsZWQuIFdpdGhvdXQgdGhpcywgYSBRMzUgc3lzdGVtIGNhbiBvbmx5 IGVuYWJsZSBJT01NVSB3aGVuIGJvb3RpbmcKd2l0aCAiaW50ZWxfaW9tbXU9b24saWdmeF9vZmYi IGJ1dCBub3QgImludGVsX2lvbW11PW9uIi4KCjAwOjAyLjAgMDMwMDogODA4NjoyOWIyIChyZXYg MDIpIChwcm9nLWlmIDAwIFtWR0EgY29udHJvbGxlcl0pCiAgICAgICAgU3Vic3lzdGVtOiA4MDg2 OjRmNGEKICAgICAgICBGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwg SVJRIDMyCiAgICAgICAgTWVtb3J5IGF0IGUwMzgwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFi bGUpIFtzaXplPTUxMktdCiAgICAgICAgSS9PIHBvcnRzIGF0IDI0NjAgW3NpemU9OF0KICAgICAg ICBNZW1vcnkgYXQgZDAwMDAwMDAgKDMyLWJpdCwgcHJlZmV0Y2hhYmxlKSBbc2l6ZT0yNTZNXQog ICAgICAgIE1lbW9yeSBhdCBlMDIwMDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6 ZT0xTV0KICAgICAgICBFeHBhbnNpb24gUk9NIGF0IDx1bmFzc2lnbmVkPiBbZGlzYWJsZWRdCiAg ICAgICAgQ2FwYWJpbGl0aWVzOiA8YWNjZXNzIGRlbmllZD4KICAgICAgICBLZXJuZWwgZHJpdmVy IGluIHVzZTogaTkxNQogICAgICAgIEtlcm5lbCBtb2R1bGVzOiBpOTE1CgpTaWduZWQtb2ZmLWJ5 OiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2lvbW11L2lu dGVsLWlvbW11LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwt aW9tbXUuYwppbmRleCBkODM3NmMyZDE4YjMuLjI0ZTViMDY4MzRhZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9pb21tdS9pbnRlbC1pb21tdS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUu YwpAQCAtNTMyNyw2ICs1MzI3LDcgQEAgc3RhdGljIHZvaWQgcXVpcmtfaW9tbXVfZzR4X2dmeChz dHJ1Y3QgcGNpX2RldiAqZGV2KQogCWRtYXJfbWFwX2dmeCA9IDA7CiB9CiAKK0RFQ0xBUkVfUENJ X0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCAweDI5YjIsIHF1aXJrX2lvbW11X2c0 eF9nZngpOwogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4 MmE0MCwgcXVpcmtfaW9tbXVfZzR4X2dmeCk7CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJ X1ZFTkRPUl9JRF9JTlRFTCwgMHgyZTAwLCBxdWlya19pb21tdV9nNHhfZ2Z4KTsKIERFQ0xBUkVf UENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCAweDJlMTAsIHF1aXJrX2lvbW11 X2c0eF9nZngpOwotLSAKMi43LjQKCgotLSAKS2VlcyBDb29rCk5leHVzIFNlY3VyaXR5Cl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752554AbcLEV6o (ORCPT ); Mon, 5 Dec 2016 16:58:44 -0500 Received: from mail-pg0-f47.google.com ([74.125.83.47]:35481 "EHLO mail-pg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751510AbcLEV6n (ORCPT ); Mon, 5 Dec 2016 16:58:43 -0500 Date: Mon, 5 Dec 2016 13:58:41 -0800 From: Kees Cook To: Daniel Vetter Cc: iommu@lists.linux-foundation.org, Jani Nikula , intel-gfx@lists.freedesktop.org, David Woodhouse , Joerg Roedel , linux-kernel@vger.kernel.org Subject: [PATCH] iommu/intel: disable DMAR for Q35 integrated gfx Message-ID: <20161205215841.GA20819@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This blacklists the Q35 integrated graphics so IOMMU can be otherwise enabled. Without this, a Q35 system can only enable IOMMU when booting with "intel_iommu=on,igfx_off" but not "intel_iommu=on". 00:02.0 0300: 8086:29b2 (rev 02) (prog-if 00 [VGA controller]) Subsystem: 8086:4f4a Flags: bus master, fast devsel, latency 0, IRQ 32 Memory at e0380000 (32-bit, non-prefetchable) [size=512K] I/O ports at 2460 [size=8] Memory at d0000000 (32-bit, prefetchable) [size=256M] Memory at e0200000 (32-bit, non-prefetchable) [size=1M] Expansion ROM at [disabled] Capabilities: Kernel driver in use: i915 Kernel modules: i915 Signed-off-by: Kees Cook --- drivers/iommu/intel-iommu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index d8376c2d18b3..24e5b06834ae 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -5327,6 +5327,7 @@ static void quirk_iommu_g4x_gfx(struct pci_dev *dev) dmar_map_gfx = 0; } +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x29b2, quirk_iommu_g4x_gfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_g4x_gfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_g4x_gfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e10, quirk_iommu_g4x_gfx); -- 2.7.4 -- Kees Cook Nexus Security