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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 38A26C32764 for ; Wed, 1 Jan 2020 05:28:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 100672072C for ; Wed, 1 Jan 2020 05:28:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726792AbgAAF2Y (ORCPT ); Wed, 1 Jan 2020 00:28:24 -0500 Received: from mga01.intel.com ([192.55.52.88]:55757 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725765AbgAAF2X (ORCPT ); Wed, 1 Jan 2020 00:28:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Dec 2019 21:28:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,382,1571727600"; d="scan'208";a="244319511" Received: from allen-box.sh.intel.com ([10.239.159.136]) by fmsmga004.fm.intel.com with ESMTP; 31 Dec 2019 21:28:21 -0800 From: Lu Baolu To: Joerg Roedel , Greg Kroah-Hartman , Bjorn Helgaas Cc: ashok.raj@intel.com, jacob.jun.pan@intel.com, kevin.tian@intel.com, Christoph Hellwig , Robin Murphy , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Lu Baolu Subject: [RFC PATCH 1/4] driver core: Add iommu_passthrough to struct device Date: Wed, 1 Jan 2020 13:26:45 +0800 Message-Id: <20200101052648.14295-2-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200101052648.14295-1-baolu.lu@linux.intel.com> References: <20200101052648.14295-1-baolu.lu@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add iommu_passthrough to struct device. This enables the iommu subsystem to prepare an identity domain for the device so that the DMA IOVA will be translated to the same physical address. This field could be set in various subsystems, such as PCI, according to the device/firmware properties or kernel command parameters. Signed-off-by: Lu Baolu --- include/linux/device.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index 96ff76731e93..763d2d078d34 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -1247,6 +1247,8 @@ struct dev_links_info { * sync_state() callback. * @dma_coherent: this particular device is dma coherent, even if the * architecture supports non-coherent devices. + * @iommu_passthrough: this particular device need to by pass the IOMMU DMA + * translation. * * At the lowest level, every device in a Linux system is represented by an * instance of struct device. The device structure contains the information @@ -1347,6 +1349,7 @@ struct device { defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) bool dma_coherent:1; #endif + bool iommu_passthrough:1; }; static inline struct device *kobj_to_dev(struct kobject *kobj) -- 2.17.1