Message ID | 20200325090741.21957-4-bigbeeshane@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | AMDGPU / RADEON / DRM Fix mapping of user pages | expand |
>-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of >Shane Francis >Sent: Wednesday, March 25, 2020 5:08 AM >To: dri-devel@lists.freedesktop.org >Cc: airlied@linux.ie; linux-kernel@vger.kernel.org; bigbeeshane@gmail.com; >amd-gfx-request@lists.freedesktop.org; alexander.deucher@amd.com; >christian.koenig@amd.com >Subject: [PATCH v4 3/3] drm/radeon: fix scatter-gather mapping with user >pages > >Calls to dma_map_sg may return segments / entries than requested "may return less segment..." ? ^^^ >if they fall on page bounderies. The old implementation did not >support this use case. > >Signed-off-by: Shane Francis <bigbeeshane@gmail.com> >--- > drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c >b/drivers/gpu/drm/radeon/radeon_ttm.c >index 3b92311d30b9..b3380ffab4c2 100644 >--- a/drivers/gpu/drm/radeon/radeon_ttm.c >+++ b/drivers/gpu/drm/radeon/radeon_ttm.c >@@ -528,7 +528,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt >*ttm) > > r = -ENOMEM; > nents = dma_map_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, >direction); >- if (nents != ttm->sg->nents) >+ if (nents == 0) > goto release_sg; This looks correct to me. Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> M > drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages, >-- >2.26.0 > >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >-----Original Message----- > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > >Shane Francis > >Sent: Wednesday, March 25, 2020 5:08 AM > >To: dri-devel@lists.freedesktop.org > >Cc: airlied@linux.ie; linux-kernel@vger.kernel.org; bigbeeshane@gmail.com; > >amd-gfx-request@lists.freedesktop.org; alexander.deucher@amd.com; > >christian.koenig@amd.com > >Subject: [PATCH v4 3/3] drm/radeon: fix scatter-gather mapping with user > >pages > > > >Calls to dma_map_sg may return segments / entries than requested > > "may return less segment..." ? > ^^^ I will reword / fix the highlighted issues with the text and send a updated patch set later today. > > >if they fall on page bounderies. The old implementation did not > >support this use case. > > > >Signed-off-by: Shane Francis <bigbeeshane@gmail.com> > >--- > > drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c > >b/drivers/gpu/drm/radeon/radeon_ttm.c > >index 3b92311d30b9..b3380ffab4c2 100644 > >--- a/drivers/gpu/drm/radeon/radeon_ttm.c > >+++ b/drivers/gpu/drm/radeon/radeon_ttm.c > >@@ -528,7 +528,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt > >*ttm) > > > > r = -ENOMEM; > > nents = dma_map_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, > >direction); > >- if (nents != ttm->sg->nents) > >+ if (nents == 0) > > goto release_sg; > > This looks correct to me. > > Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> > > M > > drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages, > >-- > >2.26.0 > > > >_______________________________________________ > >dri-devel mailing list > >dri-devel@lists.freedesktop.org > >https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Wed, Mar 25, 2020 at 11:54 AM Shane Francis <bigbeeshane@gmail.com> wrote: > > > >-----Original Message----- > > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > > >Shane Francis > > >Sent: Wednesday, March 25, 2020 5:08 AM > > >To: dri-devel@lists.freedesktop.org > > >Cc: airlied@linux.ie; linux-kernel@vger.kernel.org; bigbeeshane@gmail.com; > > >amd-gfx-request@lists.freedesktop.org; alexander.deucher@amd.com; > > >christian.koenig@amd.com > > >Subject: [PATCH v4 3/3] drm/radeon: fix scatter-gather mapping with user > > >pages > > > > > >Calls to dma_map_sg may return segments / entries than requested > > > > "may return less segment..." ? > > ^^^ > > I will reword / fix the highlighted issues with the text and send a updated > patch set later today. I'll fix it up locally when I apply it. Thanks! Alex > > > > > >if they fall on page bounderies. The old implementation did not > > >support this use case. > > > > > >Signed-off-by: Shane Francis <bigbeeshane@gmail.com> > > >--- > > > drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > >diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c > > >b/drivers/gpu/drm/radeon/radeon_ttm.c > > >index 3b92311d30b9..b3380ffab4c2 100644 > > >--- a/drivers/gpu/drm/radeon/radeon_ttm.c > > >+++ b/drivers/gpu/drm/radeon/radeon_ttm.c > > >@@ -528,7 +528,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt > > >*ttm) > > > > > > r = -ENOMEM; > > > nents = dma_map_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, > > >direction); > > >- if (nents != ttm->sg->nents) > > >+ if (nents == 0) > > > goto release_sg; > > > > This looks correct to me. > > > > Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> > > > > M > > > drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages, > > >-- > > >2.26.0 > > > > > >_______________________________________________ > > >dri-devel mailing list > > >dri-devel@lists.freedesktop.org > > >https://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 3b92311d30b9..b3380ffab4c2 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -528,7 +528,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt *ttm) r = -ENOMEM; nents = dma_map_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, direction); - if (nents != ttm->sg->nents) + if (nents == 0) goto release_sg; drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages,
Calls to dma_map_sg may return segments / entries than requested if they fall on page bounderies. The old implementation did not support this use case. Signed-off-by: Shane Francis <bigbeeshane@gmail.com> --- drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)