Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5951641ybl; Sun, 22 Dec 2019 19:05:52 -0800 (PST) X-Google-Smtp-Source: APXvYqzVBhCvr1JlPlBLsrNnvgsjjvzMcOfQbp+kmqasP3lNFS2780dYLpMsPnvQfhwFIq4824my X-Received: by 2002:a05:6830:1691:: with SMTP id k17mr31274399otr.282.1577070352624; Sun, 22 Dec 2019 19:05:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577070352; cv=none; d=google.com; s=arc-20160816; b=Ej3Nl/3POReGW7tXkgec3yRzln9vOLdNbcHLVXZam8A8+HNB3Xj6bJePViM7nnc3hj ZaBKPcEe5m+klRTJJ+Ick0B2rUH2aOu6hOy2rY/wKSjJemFwGrH6Y145BNYD4UNLcRzF PeySFwnwuceDB7PiI8M3N0z+qD1mBw4NcyCgt4wE7pOG8c1H5RA35loYZqIwE0zbS14W dnj/j9tYmdJWNDmWcRkOaS1I5ArvpjGVVmikOChjXCC57ibWxTZy6BZLZOOxADVM4/9b 2/nHdzLzOOTZ7TtAdhqWe8dCRo4LLY34NrWitd+myzfGLwUaUicza4M3BASjeIzcdCH0 LS8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:cc; bh=SiLGynarVa+BTjzfzW6BxZJPF72Pv23dibvBhEva8y4=; b=mBB1zZ2xTvaKuho8dLl2cP3DGtPMm+w6UpZDHMgIiDIvJL1ybS6Mz9nI8IprWuVueN 97JzArQcx2sdkE6Cu47JEUoG/Sti4BlxfBnB3J0N/l8BSRn3HnRrt1o7zqtL4yaG1pPU hoqoNAePW+ylr39PQ2UvPutxcWrMujQ3qbdadXulZtMFxTeTNf63IcJsdMdZeko0egAU V6JlmQccQPvV9Fju5rr6s8J8mp7CH02ErVwZc6WHRDaQKykSAshN7kAJW9KXPci47KRU QQ1xXpw0NlBpxJhLv0JoYnlXB9LU+801J5lX6xT0cRzgf1HjQ2vFViMuzCSBFMzX3fZW FvFA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s128si8733548oig.204.2019.12.22.19.05.12; Sun, 22 Dec 2019 19:05:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726671AbfLWDBx (ORCPT + 99 others); Sun, 22 Dec 2019 22:01:53 -0500 Received: from mga14.intel.com ([192.55.52.115]:30684 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726393AbfLWDBx (ORCPT ); Sun, 22 Dec 2019 22:01:53 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Dec 2019 19:01:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,346,1571727600"; d="scan'208";a="417121170" Received: from allen-box.sh.intel.com (HELO [10.239.159.136]) ([10.239.159.136]) by fmsmga005.fm.intel.com with ESMTP; 22 Dec 2019 19:01:43 -0800 Cc: baolu.lu@linux.intel.com, Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , David Airlie , Daniel Vetter , Joerg Roedel , Will Deacon , Robin Murphy , Marek Szyprowski , Kukjin Kim , Krzysztof Kozlowski , David Woodhouse , Andy Gross , Bjorn Andersson , Matthias Brugger , Rob Clark , Heiko Stuebner , Gerald Schaefer , Thierry Reding , Jonathan Hunter , Jean-Philippe Brucker , Alex Williamson , Cornelia Huck , Eric Auger , Julien Grall , Marc Zyngier , Thomas Gleixner , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, 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, virtualization@lists.linux-foundation.org, kvm@vger.kernel.org Subject: Re: [PATCH 1/8] iommu/vt-d: clean up 32bit si_domain assignment To: Tom Murphy , iommu@lists.linux-foundation.org References: <20191221150402.13868-1-murphyt7@tcd.ie> <20191221150402.13868-2-murphyt7@tcd.ie> From: Lu Baolu Message-ID: Date: Mon, 23 Dec 2019 11:00:47 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <20191221150402.13868-2-murphyt7@tcd.ie> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 12/21/19 11:03 PM, Tom Murphy wrote: > @@ -5618,9 +5583,13 @@ static int intel_iommu_add_device(struct device *dev) > struct iommu_domain *domain; > struct intel_iommu *iommu; > struct iommu_group *group; > + u64 dma_mask = *dev->dma_mask; > u8 bus, devfn; > int ret; > > + if (dev->coherent_dma_mask && dev->coherent_dma_mask < dma_mask) > + dma_mask = dev->coherent_dma_mask; > + > iommu = device_to_iommu(dev, &bus, &devfn); > if (!iommu) > return -ENODEV; > @@ -5640,7 +5609,12 @@ static int intel_iommu_add_device(struct device *dev) > domain = iommu_get_domain_for_dev(dev); > dmar_domain = to_dmar_domain(domain); > if (domain->type == IOMMU_DOMAIN_DMA) { > - if (device_def_domain_type(dev) == IOMMU_DOMAIN_IDENTITY) { > + /* > + * We check dma_mask >= dma_get_required_mask(dev) because > + * 32 bit DMA falls back to non-identity mapping. > + */ > + if (device_def_domain_type(dev) == IOMMU_DOMAIN_IDENTITY && > + dma_mask >= dma_get_required_mask(dev)) { > ret = iommu_request_dm_for_dev(dev); > if (ret) { > dmar_remove_one_dev_info(dev); dev->dma_mask is set to 32bit by default. During loading driver, it sets the real dma_mask with dma_set_mask() according to the real capability. Here you will always see 32bit dma_mask for each device. Best regards, baolu