2010/12/9 Michel D?nzer <michel at daenzer.net>:
> On Fre, 2010-12-03 at 16:38 -0500, jglisse at redhat.com wrote:
>> From: Jerome Glisse <jglisse at redhat.com>
>>
>> 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 at kernel.org>
>>
>> Signed-off-by: Jerome Glisse <jglisse at redhat.com>
>> ---
>> ?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.

and yeah no cc'ing just leave it in the patch, though Itihnk git send
email can do it automagically.

Dave.

Reply via email to