Message ID | 1370536877-2440-1-git-send-email-j.glisse@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 6, 2013 at 12:41 PM, <j.glisse@gmail.com> wrote: > From: Jerome Glisse <jglisse@redhat.com> > > If a buffer is never bind to a virtual memory pagetable than don't try > to unbind it. Only drawback is that we don't update the pagetable when > unbinding the ib pool buffer which is fine because it only happens at > suspend or module unload/shutdown. Applied with a note about fixing spurious messages. Alex > > Cc: stable@kernel.org > Signed-off-by: Jerome Glisse <jglisse@redhat.com> > --- > drivers/gpu/drm/radeon/radeon_gart.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c > index 6e24f84..daf9710 100644 > --- a/drivers/gpu/drm/radeon/radeon_gart.c > +++ b/drivers/gpu/drm/radeon/radeon_gart.c > @@ -1209,11 +1209,13 @@ int radeon_vm_bo_update_pte(struct radeon_device *rdev, > int radeon_vm_bo_rmv(struct radeon_device *rdev, > struct radeon_bo_va *bo_va) > { > - int r; > + int r = 0; > > mutex_lock(&rdev->vm_manager.lock); > mutex_lock(&bo_va->vm->mutex); > - r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL); > + if (bo_va->soffset) { > + r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL); > + } > mutex_unlock(&rdev->vm_manager.lock); > list_del(&bo_va->vm_list); > mutex_unlock(&bo_va->vm->mutex); > -- > 1.7.11.7 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c index 6e24f84..daf9710 100644 --- a/drivers/gpu/drm/radeon/radeon_gart.c +++ b/drivers/gpu/drm/radeon/radeon_gart.c @@ -1209,11 +1209,13 @@ int radeon_vm_bo_update_pte(struct radeon_device *rdev, int radeon_vm_bo_rmv(struct radeon_device *rdev, struct radeon_bo_va *bo_va) { - int r; + int r = 0; mutex_lock(&rdev->vm_manager.lock); mutex_lock(&bo_va->vm->mutex); - r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL); + if (bo_va->soffset) { + r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL); + } mutex_unlock(&rdev->vm_manager.lock); list_del(&bo_va->vm_list); mutex_unlock(&bo_va->vm->mutex);