Skip to content

Commit

Permalink
drm/ttm: fix two bugs in new placement routines.
Browse files Browse the repository at this point in the history
a) the loops were going to <= not <, leading to illegal memory access
b) the busy placement checks were using the placement arrays not the
   busy placement ones.

Acked-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Dave Airlie committed Dec 16, 2009
1 parent b8ff735 commit b663752
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/gpu/drm/ttm/ttm_bo.c
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
int i, ret;

mem->mm_node = NULL;
for (i = 0; i <= placement->num_placement; ++i) {
for (i = 0; i < placement->num_placement; ++i) {
ret = ttm_mem_type_from_flags(placement->placement[i],
&mem_type);
if (ret)
Expand Down Expand Up @@ -900,8 +900,8 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
if (!type_found)
return -EINVAL;

for (i = 0; i <= placement->num_busy_placement; ++i) {
ret = ttm_mem_type_from_flags(placement->placement[i],
for (i = 0; i < placement->num_busy_placement; ++i) {
ret = ttm_mem_type_from_flags(placement->busy_placement[i],
&mem_type);
if (ret)
return ret;
Expand All @@ -911,7 +911,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
if (!ttm_bo_mt_compatible(man,
bo->type == ttm_bo_type_user,
mem_type,
placement->placement[i],
placement->busy_placement[i],
&cur_flags))
continue;

Expand All @@ -921,7 +921,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
* Use the access and other non-mapping-related flag bits from
* the memory placement flags to the current flags
*/
ttm_flag_masked(&cur_flags, placement->placement[i],
ttm_flag_masked(&cur_flags, placement->busy_placement[i],
~TTM_PL_MASK_MEMTYPE);

ret = ttm_bo_mem_force_space(bo, mem_type, placement, mem,
Expand Down

0 comments on commit b663752

Please sign in to comment.