Am 16.04.2013 18:26, schrieb alexdeucher at gmail.com: > From: Jerome Glisse <jglisse at redhat.com> > > This is slightly cleaned up version of Jerome's patch. > There seems to be an issue tracking the last flush of > the VM which results in hangs in certain cases when > VM is used. For now just flush the VM for every IB. > > Fixes: > https://bugs.freedesktop.org/show_bug.cgi?id=62959 > https://bugs.freedesktop.org/show_bug.cgi?id=62997 > > Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
Reviewed-by: Christian K?nig <christian.koenig at amd.com> > Cc: stable at vger.kernel.org > --- > drivers/gpu/drm/radeon/radeon_ring.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_ring.c > b/drivers/gpu/drm/radeon/radeon_ring.c > index 31e47d8..e17faa7 100644 > --- a/drivers/gpu/drm/radeon/radeon_ring.c > +++ b/drivers/gpu/drm/radeon/radeon_ring.c > @@ -180,7 +180,8 @@ int radeon_ib_schedule(struct radeon_device *rdev, struct > radeon_ib *ib, > radeon_semaphore_free(rdev, &ib->semaphore, NULL); > } > /* if we can't remember our last VM flush then flush now! */ > - if (ib->vm && !ib->vm->last_flush) { > + /* XXX figure out why we have to flush for every IB */ > + if (ib->vm /*&& !ib->vm->last_flush*/) { > radeon_ring_vm_flush(rdev, ib->ring, ib->vm); > } > if (const_ib) {