2011/10/28 Christian K?nig <deathsimple at vodafone.de>: > Only check the previously checked relocs for > duplicates. Also leaving the handle uninitialized > isn't such a good idea. > > Signed-off-by: Christian K?nig <deathsimple at vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > ?drivers/gpu/drm/radeon/radeon_cs.c | ? ?5 +++-- > ?1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_cs.c > b/drivers/gpu/drm/radeon/radeon_cs.c > index fae00c0..7b6e98a 100644 > --- a/drivers/gpu/drm/radeon/radeon_cs.c > +++ b/drivers/gpu/drm/radeon/radeon_cs.c > @@ -58,7 +58,7 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p) > > ? ? ? ? ? ? ? ?duplicate = false; > ? ? ? ? ? ? ? ?r = (struct drm_radeon_cs_reloc *)&chunk->kdata[i*4]; > - ? ? ? ? ? ? ? for (j = 0; j < p->nrelocs; j++) { > + ? ? ? ? ? ? ? for (j = 0; j < i; j++) { > ? ? ? ? ? ? ? ? ? ? ? ?if (r->handle == p->relocs[j].handle) { > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?p->relocs_ptr[i] = &p->relocs[j]; > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?duplicate = true; > @@ -84,7 +84,8 @@ int radeon_cs_parser_relocs(struct radeon_cs_parser *p) > ? ? ? ? ? ? ? ? ? ? ? ?p->relocs[i].flags = r->flags; > ? ? ? ? ? ? ? ? ? ? ? ?radeon_bo_list_add_object(&p->relocs[i].lobj, > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?&p->validated); > - ? ? ? ? ? ? ? } > + ? ? ? ? ? ? ? } else > + ? ? ? ? ? ? ? ? ? ? ? p->relocs[i].handle = 0; > ? ? ? ?} > ? ? ? ?return radeon_bo_list_validate(&p->validated); > ?} > -- > 1.7.5.4 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >