From: Lu Baolu <baolu.lu@linux.intel.com>
To: Alex Williamson <alex.williamson@redhat.com>,
joro@8bytes.org, iommu@lists.linux-foundation.org
Cc: cprt@protonmail.com, eauger@redhat.com
Subject: Re: [PATCH] iommu/vt-d: Set ISA bridge reserved region as relaxable
Date: Thu, 12 Dec 2019 09:16:14 +0800 [thread overview]
Message-ID: <f5160d16-ea8d-6bcb-cad8-56e59b11f924@linux.intel.com> (raw)
In-Reply-To: <157609608124.14870.10855090013879818212.stgit@gimli.home>
Hi,
On 12/12/19 4:28 AM, Alex Williamson wrote:
> Commit d850c2ee5fe2 ("iommu/vt-d: Expose ISA direct mapping region via
> iommu_get_resv_regions") created a direct-mapped reserved memory region
> in order to replace the static identity mapping of the ISA address
> space, where the latter was then removed in commit df4f3c603aeb
> ("iommu/vt-d: Remove static identity map code"). According to the
> history of this code and the Kconfig option surrounding it, this direct
> mapping exists for the benefit of legacy ISA drivers that are not
> compatible with the DMA API.
>
> In conjuntion with commit 9b77e5c79840 ("vfio/type1: check dma map
> request is within a valid iova range") this change introduced a
> regression where the vfio IOMMU backend enforces reserved memory regions
> per IOMMU group, preventing userspace from creating IOMMU mappings
> conflicting with prescribed reserved regions. A necessary prerequisite
> for the vfio change was the introduction of "relaxable" direct mappings
> introduced by commit adfd37382090 ("iommu: Introduce
> IOMMU_RESV_DIRECT_RELAXABLE reserved memory regions"). These relaxable
> direct mappings provide the same identity mapping support in the default
> domain, but also indicate that the reservation is software imposed and
> may be relaxed under some conditions, such as device assignment.
>
> Convert the ISA bridge direct-mapped reserved region to relaxable to
> reflect that the restriction is self imposed and need not be enforced
> by drivers such as vfio.
>
> Fixes: d850c2ee5fe2 ("iommu/vt-d: Expose ISA direct mapping region via iommu_get_resv_regions")
> Cc: stable@vger.kernel.org # v5.3+
> Link: https://lore.kernel.org/linux-iommu/20191211082304.2d4fab45@x1.home
> Reported-by: cprt <cprt@protonmail.com>
> Tested-by: cprt <cprt@protonmail.com>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This fix looks reasonable to me.
Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
Best regards,
baolu
> ---
> drivers/iommu/intel-iommu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
> index 0c8d81f56a30..6eb0dd7489a1 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -5737,7 +5737,7 @@ static void intel_iommu_get_resv_regions(struct device *device,
>
> if ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) {
> reg = iommu_alloc_resv_region(0, 1UL << 24, 0,
> - IOMMU_RESV_DIRECT);
> + IOMMU_RESV_DIRECT_RELAXABLE);
> if (reg)
> list_add_tail(®->list, head);
> }
>
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2019-12-12 1:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-11 20:28 [PATCH] iommu/vt-d: Set ISA bridge reserved region as relaxable Alex Williamson
2019-12-12 1:16 ` Lu Baolu [this message]
2019-12-12 8:49 ` Auger Eric
2019-12-12 19:27 ` Alex Williamson
2019-12-17 10:22 ` Joerg Roedel
2019-12-13 5:41 ` Jerry Snitselaar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f5160d16-ea8d-6bcb-cad8-56e59b11f924@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=alex.williamson@redhat.com \
--cc=cprt@protonmail.com \
--cc=eauger@redhat.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.