Marek Szyprowski wrote: > When no IOMMU is available, all GEM buffers allocated by Exynos DRM driver > are contiguous, because of the underlying dma_alloc_attrs() function > provides only such buffers. In such case it makes no sense to keep > BO_NONCONTIG flag for the allocated GEM buffers. This allows to avoid > failures for buffer contiguity checks in the subsequent operations on GEM > objects. Reviewed-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx> - Tobias > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > CC: stable@xxxxxxxxxxxxxxx # v4.4+ > --- > This issue is there since commit 0519f9a12d011 ("drm/exynos: add iommu > support for exynos drm framework"), but this patch applies cleanly > only to v4.4+ kernel releases due changes in the surrounding code. > > Changelog: > v2: > - added warning message when buffer flags are updadated (requested by Inki) > > v1: https://patchwork.kernel.org/patch/10034919/ > - initial version > --- > drivers/gpu/drm/exynos/exynos_drm_gem.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index 077de014d610..4400efe3974a 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -247,6 +247,15 @@ struct exynos_drm_gem *exynos_drm_gem_create(struct drm_device *dev, > if (IS_ERR(exynos_gem)) > return exynos_gem; > > + if (!is_drm_iommu_supported(dev) && (flags & EXYNOS_BO_NONCONTIG)) { > + /* > + * when no IOMMU is available, all allocated buffers are > + * contiguous anyway, so drop EXYNOS_BO_NONCONTIG flag > + */ > + flags &= ~EXYNOS_BO_NONCONTIG; > + DRM_WARN("Non-contiguous allocation is not supported without IOMMU, falling back to contiguous buffer\n"); > + } > + > /* set memory type and cache attribute from user side. */ > exynos_gem->flags = flags; > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel