On Tue, Mar 27, 2012 at 10:20:21AM +0200, Michel D?nzer wrote:
 > On Die, 2012-03-27 at 17:21 +1100, Benjamin Herrenschmidt wrote:
 > >         On Mon, 2012-03-26 at 17:32 -0400, Dave Jones wrote:
 > >         > Seeing this in Linus' tree as of v3.3-6972-ge22057c
 > >         
 > >         Same WARN_ON hit here on a G5 with rv350
 > 
 > Thanks for the report, guys. Does the patch below help?
 > 
 > 
 > diff --git a/drivers/gpu/drm/radeon/radeon_object.c 
 > b/drivers/gpu/drm/radeon/radeon_object.c
 > index f441d58..ad9d450 100644
 > --- a/drivers/gpu/drm/radeon/radeon_object.c
 > +++ b/drivers/gpu/drm/radeon/radeon_object.c
 > @@ -233,7 +233,17 @@ int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 
 > domain, u64 max_offset,
 >              bo->pin_count++;
 >              if (gpu_addr)
 >                      *gpu_addr = radeon_bo_gpu_offset(bo);
 > -            WARN_ON_ONCE(max_offset != 0);
 > +
 > +            if (max_offset != 0) {
 > +                    u64 domain_start;
 > +
 > +                    if (domain == RADEON_GEM_DOMAIN_VRAM)
 > +                            domain_start = bo->rdev->mc.vram_start;
 > +                    else
 > +                            domain_start = bo->rdev->mc.gtt_start;
 > +                    WARN_ON_ONCE((*gpu_addr - domain_start) > max_offset);
 > +            }
 > +
 >              return 0;

Stops the warning, and there are no additional side-effects,
so looks all good here.

Tested-by: Dave Jones <davej at redhat.com>

thanks,

        Dave

Reply via email to