From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lu Baolu Subject: Re: [RFC 1/7] iommu/vt-d: Set the dma_ops per device so we can remove the iommu_no_mapping code Date: Mon, 6 May 2019 09:42:15 +0800 Message-ID: <8fef18f5-773c-e1c9-2537-c9dff5bfd35e@linux.intel.com> References: <20190504132327.27041-1-tmurphy@arista.com> <20190504132327.27041-2-tmurphy@arista.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20190504132327.27041-2-tmurphy@arista.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Tom Murphy , iommu@lists.linux-foundation.org Cc: baolu.lu@linux.intel.com, murphyt7@tcd.ie, Joerg Roedel , Will Deacon , Robin Murphy , Marek Szyprowski , Kukjin Kim , Krzysztof Kozlowski , David Woodhouse , Andy Gross , David Brown , Matthias Brugger , Rob Clark , Heiko Stuebner , Gerald Schaefer , Thierry Reding , Jonathan Hunter , Alex Williamson , Thomas Gleixner , Marc Zyngier , linux-ker List-Id: linux-arm-msm@vger.kernel.org Hi, On 5/4/19 9:23 PM, Tom Murphy wrote: > Set the dma_ops per device so we can remove the iommu_no_mapping code. > > Signed-off-by: Tom Murphy > --- > drivers/iommu/intel-iommu.c | 85 +++---------------------------------- > 1 file changed, 6 insertions(+), 79 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index eace915602f0..2db1dc47e7e4 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -2622,17 +2622,6 @@ static int __init si_domain_init(int hw) > return 0; > } > > -static int identity_mapping(struct device *dev) > -{ > - struct device_domain_info *info; > - > - info = dev->archdata.iommu; > - if (info && info != DUMMY_DEVICE_DOMAIN_INFO) > - return (info->domain == si_domain); > - > - return 0; > -} > - > static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev) > { > struct dmar_domain *ndomain; > @@ -3270,43 +3259,6 @@ static unsigned long intel_alloc_iova(struct device *dev, > return iova_pfn; > } > > -/* Check if the dev needs to go through non-identity map and unmap process.*/ > -static int iommu_no_mapping(struct device *dev) > -{ > - int found; > - > - if (iommu_dummy(dev)) > - return 1; > - > - found = identity_mapping(dev); > - if (found) { > - /* > - * If the device's dma_mask is less than the system's memory > - * size then this is not a candidate for identity mapping. > - */ > - u64 dma_mask = *dev->dma_mask; > - > - if (dev->coherent_dma_mask && > - dev->coherent_dma_mask < dma_mask) > - dma_mask = dev->coherent_dma_mask; > - > - if (dma_mask < dma_get_required_mask(dev)) { > - /* > - * 32 bit DMA is removed from si_domain and fall back > - * to non-identity mapping. > - */ > - dmar_remove_one_dev_info(dev); > - dev_warn(dev, "32bit DMA uses non-identity mapping\n"); > - > - return 0; > - } The iommu_no_mapping() also checks whether any 32bit DMA device uses identity mapping. The device might not work if the system memory space is bigger than 4G. Will you add this to other place, or it's unnecessary? Best regards, Lu Baolu 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=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 6838FC004C9 for ; Mon, 6 May 2019 01:48:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3F5EA20675 for ; Mon, 6 May 2019 01:48:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726085AbfEFBsp (ORCPT ); Sun, 5 May 2019 21:48:45 -0400 Received: from mga17.intel.com ([192.55.52.151]:49033 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725786AbfEFBsp (ORCPT ); Sun, 5 May 2019 21:48:45 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2019 18:48:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,435,1549958400"; d="scan'208";a="146640656" Received: from allen-box.sh.intel.com (HELO [10.239.159.136]) ([10.239.159.136]) by fmsmga008.fm.intel.com with ESMTP; 05 May 2019 18:48:39 -0700 Cc: baolu.lu@linux.intel.com, murphyt7@tcd.ie, Joerg Roedel , Will Deacon , Robin Murphy , Marek Szyprowski , Kukjin Kim , Krzysztof Kozlowski , David Woodhouse , Andy Gross , David Brown , Matthias Brugger , Rob Clark , Heiko Stuebner , Gerald Schaefer , Thierry Reding , Jonathan Hunter , Alex Williamson , Thomas Gleixner , Marc Zyngier , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-s390@vger.kernel.org, linux-tegra@vger.kernel.org, kvm@vger.kernel.org Subject: Re: [RFC 1/7] iommu/vt-d: Set the dma_ops per device so we can remove the iommu_no_mapping code To: Tom Murphy , iommu@lists.linux-foundation.org References: <20190504132327.27041-1-tmurphy@arista.com> <20190504132327.27041-2-tmurphy@arista.com> From: Lu Baolu Message-ID: <8fef18f5-773c-e1c9-2537-c9dff5bfd35e@linux.intel.com> Date: Mon, 6 May 2019 09:42:15 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190504132327.27041-2-tmurphy@arista.com> Content-Type: text/plain; charset="UTF-8"; format="flowed" Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Message-ID: <20190506014215.-hweCNRg8p7l6G-BawVQuKqDw2rRo9arPaGwARBkNU8@z> Hi, On 5/4/19 9:23 PM, Tom Murphy wrote: > Set the dma_ops per device so we can remove the iommu_no_mapping code. > > Signed-off-by: Tom Murphy > --- > drivers/iommu/intel-iommu.c | 85 +++---------------------------------- > 1 file changed, 6 insertions(+), 79 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index eace915602f0..2db1dc47e7e4 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -2622,17 +2622,6 @@ static int __init si_domain_init(int hw) > return 0; > } > > -static int identity_mapping(struct device *dev) > -{ > - struct device_domain_info *info; > - > - info = dev->archdata.iommu; > - if (info && info != DUMMY_DEVICE_DOMAIN_INFO) > - return (info->domain == si_domain); > - > - return 0; > -} > - > static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev) > { > struct dmar_domain *ndomain; > @@ -3270,43 +3259,6 @@ static unsigned long intel_alloc_iova(struct device *dev, > return iova_pfn; > } > > -/* Check if the dev needs to go through non-identity map and unmap process.*/ > -static int iommu_no_mapping(struct device *dev) > -{ > - int found; > - > - if (iommu_dummy(dev)) > - return 1; > - > - found = identity_mapping(dev); > - if (found) { > - /* > - * If the device's dma_mask is less than the system's memory > - * size then this is not a candidate for identity mapping. > - */ > - u64 dma_mask = *dev->dma_mask; > - > - if (dev->coherent_dma_mask && > - dev->coherent_dma_mask < dma_mask) > - dma_mask = dev->coherent_dma_mask; > - > - if (dma_mask < dma_get_required_mask(dev)) { > - /* > - * 32 bit DMA is removed from si_domain and fall back > - * to non-identity mapping. > - */ > - dmar_remove_one_dev_info(dev); > - dev_warn(dev, "32bit DMA uses non-identity mapping\n"); > - > - return 0; > - } The iommu_no_mapping() also checks whether any 32bit DMA device uses identity mapping. The device might not work if the system memory space is bigger than 4G. Will you add this to other place, or it's unnecessary? Best regards, Lu Baolu 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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS autolearn=unavailable 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 169BDC004C9 for ; Mon, 6 May 2019 01:49:37 +0000 (UTC) Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DE51620675 for ; Mon, 6 May 2019 01:49:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DE51620675 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id ABEC0449B; Mon, 6 May 2019 01:49:36 +0000 (UTC) Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B3EE44498 for ; Mon, 6 May 2019 01:48:45 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 4A4057DB for ; Mon, 6 May 2019 01:48:45 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2019 18:48:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,435,1549958400"; d="scan'208";a="146640656" Received: from allen-box.sh.intel.com (HELO [10.239.159.136]) ([10.239.159.136]) by fmsmga008.fm.intel.com with ESMTP; 05 May 2019 18:48:39 -0700 Subject: Re: [RFC 1/7] iommu/vt-d: Set the dma_ops per device so we can remove the iommu_no_mapping code To: Tom Murphy , iommu@lists.linux-foundation.org References: <20190504132327.27041-1-tmurphy@arista.com> <20190504132327.27041-2-tmurphy@arista.com> From: Lu Baolu Message-ID: <8fef18f5-773c-e1c9-2537-c9dff5bfd35e@linux.intel.com> Date: Mon, 6 May 2019 09:42:15 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190504132327.27041-2-tmurphy@arista.com> Content-Language: en-US Cc: Heiko Stuebner , kvm@vger.kernel.org, Will Deacon , David Brown , Thierry Reding , linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Jonathan Hunter , linux-rockchip@lists.infradead.org, Kukjin Kim , Gerald Schaefer , Andy Gross , linux-tegra@vger.kernel.org, Marc Zyngier , linux-arm-msm@vger.kernel.org, Alex Williamson , linux-mediatek@lists.infradead.org, Matthias Brugger , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Robin Murphy , linux-kernel@vger.kernel.org, murphyt7@tcd.ie, David Woodhouse X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: iommu-bounces@lists.linux-foundation.org Errors-To: iommu-bounces@lists.linux-foundation.org Hi, On 5/4/19 9:23 PM, Tom Murphy wrote: > Set the dma_ops per device so we can remove the iommu_no_mapping code. > > Signed-off-by: Tom Murphy > --- > drivers/iommu/intel-iommu.c | 85 +++---------------------------------- > 1 file changed, 6 insertions(+), 79 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index eace915602f0..2db1dc47e7e4 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -2622,17 +2622,6 @@ static int __init si_domain_init(int hw) > return 0; > } > > -static int identity_mapping(struct device *dev) > -{ > - struct device_domain_info *info; > - > - info = dev->archdata.iommu; > - if (info && info != DUMMY_DEVICE_DOMAIN_INFO) > - return (info->domain == si_domain); > - > - return 0; > -} > - > static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev) > { > struct dmar_domain *ndomain; > @@ -3270,43 +3259,6 @@ static unsigned long intel_alloc_iova(struct device *dev, > return iova_pfn; > } > > -/* Check if the dev needs to go through non-identity map and unmap process.*/ > -static int iommu_no_mapping(struct device *dev) > -{ > - int found; > - > - if (iommu_dummy(dev)) > - return 1; > - > - found = identity_mapping(dev); > - if (found) { > - /* > - * If the device's dma_mask is less than the system's memory > - * size then this is not a candidate for identity mapping. > - */ > - u64 dma_mask = *dev->dma_mask; > - > - if (dev->coherent_dma_mask && > - dev->coherent_dma_mask < dma_mask) > - dma_mask = dev->coherent_dma_mask; > - > - if (dma_mask < dma_get_required_mask(dev)) { > - /* > - * 32 bit DMA is removed from si_domain and fall back > - * to non-identity mapping. > - */ > - dmar_remove_one_dev_info(dev); > - dev_warn(dev, "32bit DMA uses non-identity mapping\n"); > - > - return 0; > - } The iommu_no_mapping() also checks whether any 32bit DMA device uses identity mapping. The device might not work if the system memory space is bigger than 4G. Will you add this to other place, or it's unnecessary? Best regards, Lu Baolu _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu 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=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,T_DKIMWL_WL_HIGH autolearn=unavailable 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 56A93C004C9 for ; Mon, 6 May 2019 01:48:58 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 27A382087F for ; Mon, 6 May 2019 01:48:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pnsV6se7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27A382087F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=U1UQQ9v43AZQz3LQDeCHKMf9snUyOOpvqHkxlnNzG80=; b=pnsV6se7ykw0xfVPPkSffecdP 0KbQnMTlODdqVEAtPi9zbTfe4fth8U5bs/Y175IpVnLXo4OCbC7iNWhpes5cH/ZoUhA7IKa46ml05 vgt4K0SQlfY0mve0ehp89SjlejTQoIeoQXxOm97u4G51JTu8TZ0epUC7OzbI9//SxZa6IUpt3T1wN fKqFSBMBLiuSKV1O02si8mFrZ/IYBNURFdbf5x+lv+TwxTUtuo3xoKd9SezbLpsFakOj/w6M+IArD 22flSoTycwDm/2RAI42jmbYU9CKMabyGjZro6OPT3WosWf1pcdH3RanUZEsMvSdSfLoBVqXhP1LyI hBI8VZZug==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hNSkN-0007iu-Aw; Mon, 06 May 2019 01:48:51 +0000 Received: from mga12.intel.com ([192.55.52.136]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hNSkH-0007gT-HE; Mon, 06 May 2019 01:48:46 +0000 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2019 18:48:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,435,1549958400"; d="scan'208";a="146640656" Received: from allen-box.sh.intel.com (HELO [10.239.159.136]) ([10.239.159.136]) by fmsmga008.fm.intel.com with ESMTP; 05 May 2019 18:48:39 -0700 Subject: Re: [RFC 1/7] iommu/vt-d: Set the dma_ops per device so we can remove the iommu_no_mapping code To: Tom Murphy , iommu@lists.linux-foundation.org References: <20190504132327.27041-1-tmurphy@arista.com> <20190504132327.27041-2-tmurphy@arista.com> From: Lu Baolu Message-ID: <8fef18f5-773c-e1c9-2537-c9dff5bfd35e@linux.intel.com> Date: Mon, 6 May 2019 09:42:15 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190504132327.27041-2-tmurphy@arista.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190505_184845_591552_7A65A273 X-CRM114-Status: GOOD ( 21.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heiko Stuebner , kvm@vger.kernel.org, Will Deacon , David Brown , Thierry Reding , Marek Szyprowski , linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Joerg Roedel , Krzysztof Kozlowski , Jonathan Hunter , linux-rockchip@lists.infradead.org, Kukjin Kim , Gerald Schaefer , Andy Gross , linux-tegra@vger.kernel.org, Marc Zyngier , linux-arm-msm@vger.kernel.org, Alex Williamson , linux-mediatek@lists.infradead.org, Matthias Brugger , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, Robin Murphy , linux-kernel@vger.kernel.org, murphyt7@tcd.ie, Rob Clark , David Woodhouse , baolu.lu@linux.intel.com Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, On 5/4/19 9:23 PM, Tom Murphy wrote: > Set the dma_ops per device so we can remove the iommu_no_mapping code. > > Signed-off-by: Tom Murphy > --- > drivers/iommu/intel-iommu.c | 85 +++---------------------------------- > 1 file changed, 6 insertions(+), 79 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index eace915602f0..2db1dc47e7e4 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -2622,17 +2622,6 @@ static int __init si_domain_init(int hw) > return 0; > } > > -static int identity_mapping(struct device *dev) > -{ > - struct device_domain_info *info; > - > - info = dev->archdata.iommu; > - if (info && info != DUMMY_DEVICE_DOMAIN_INFO) > - return (info->domain == si_domain); > - > - return 0; > -} > - > static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev) > { > struct dmar_domain *ndomain; > @@ -3270,43 +3259,6 @@ static unsigned long intel_alloc_iova(struct device *dev, > return iova_pfn; > } > > -/* Check if the dev needs to go through non-identity map and unmap process.*/ > -static int iommu_no_mapping(struct device *dev) > -{ > - int found; > - > - if (iommu_dummy(dev)) > - return 1; > - > - found = identity_mapping(dev); > - if (found) { > - /* > - * If the device's dma_mask is less than the system's memory > - * size then this is not a candidate for identity mapping. > - */ > - u64 dma_mask = *dev->dma_mask; > - > - if (dev->coherent_dma_mask && > - dev->coherent_dma_mask < dma_mask) > - dma_mask = dev->coherent_dma_mask; > - > - if (dma_mask < dma_get_required_mask(dev)) { > - /* > - * 32 bit DMA is removed from si_domain and fall back > - * to non-identity mapping. > - */ > - dmar_remove_one_dev_info(dev); > - dev_warn(dev, "32bit DMA uses non-identity mapping\n"); > - > - return 0; > - } The iommu_no_mapping() also checks whether any 32bit DMA device uses identity mapping. The device might not work if the system memory space is bigger than 4G. Will you add this to other place, or it's unnecessary? Best regards, Lu Baolu _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel