2010/12/9 Dave Airlie <airlied@xxxxxxxxx>: > 2010/12/9 Michel Dänzer <michel@xxxxxxxxxxx>: >> On Fre, 2010-12-03 at 16:38 -0500, jglisse@xxxxxxxxxx wrote: >>> From: Jerome Glisse <jglisse@xxxxxxxxxx> >>> >>> Forbid allocating buffer bigger than visible VRAM or GTT, also >>> properly set lpfn field. >>> >>> v2 - use max macro >>> - silence warning >>> v3 - don't explicitly set range limit >>> - use min macro >>> >>> Cc: stable <stable@xxxxxxxxxx> >>> >>> Signed-off-by: Jerome Glisse <jglisse@xxxxxxxxxx> >>> --- >>> drivers/gpu/drm/radeon/radeon_object.c | 13 +++++++++++-- >>> 1 files changed, 11 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c >>> index 1d06774..a598d00 100644 >>> --- a/drivers/gpu/drm/radeon/radeon_object.c >>> +++ b/drivers/gpu/drm/radeon/radeon_object.c >>> @@ -91,7 +91,8 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj, >>> { >>> struct radeon_bo *bo; >>> enum ttm_bo_type type; >>> - int page_align = roundup(byte_align, PAGE_SIZE) >> PAGE_SHIFT; >>> + unsigned long page_align = roundup(byte_align, PAGE_SIZE) >> PAGE_SHIFT; >>> + unsigned long max_size = 0; >> >> The initialization of max_size is superfluous. >> >> >>> @@ -104,6 +105,14 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj, >>> } >>> *bo_ptr = NULL; >>> >>> + /* maximun bo size is the minimun btw visible vram and gtt size */ >>> + max_size = min(rdev->mc.visible_vram_size, rdev->mc.gtt_size); >>> + if ((page_align << PAGE_SHIFT) >= max_size) { >>> + printk(KERN_WARNING "%s:%d alloc size %ldM bigger than %ldMb limit\n", >>> + __func__, __LINE__, page_align >> (20 - PAGE_SHIFT), max_size >> 20); >>> + return -ENOMEM; >>> + } >> >> Still not sure this simple minimum is quite the right solution... e.g. >> if GTT is larger than visible VRAM, what's the problem with having a BO >> that fits in GTT but not in visible VRAM? On systems with 8 MB of VRAM, >> this will effectively limit the maximum texture size to 2048x1024. > > Just wondering if such a card exists, the only 8MB cards I know are > pre-r100, I think a 16MB M6 is the lowest one I can find. > I have an 8 MB M6. Alex > and yeah no cc'ing just leave it in the patch, though Itihnk git send > email can do it automagically. > > Dave. > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel