drm/radeon drop gobj from radeon_cs_reloc
It's only used once after initializing and that ptr can be calculated from the BO as well. Signed-off-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
ff4b4af16f
commit
d33a8fc719
|
@ -1045,7 +1045,6 @@ void cayman_dma_fini(struct radeon_device *rdev);
|
||||||
* CS.
|
* CS.
|
||||||
*/
|
*/
|
||||||
struct radeon_cs_reloc {
|
struct radeon_cs_reloc {
|
||||||
struct drm_gem_object *gobj;
|
|
||||||
struct radeon_bo *robj;
|
struct radeon_bo *robj;
|
||||||
struct ttm_validate_buffer tv;
|
struct ttm_validate_buffer tv;
|
||||||
uint64_t gpu_offset;
|
uint64_t gpu_offset;
|
||||||
|
|
|
@ -101,6 +101,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
|
||||||
|
|
||||||
for (i = 0; i < p->nrelocs; i++) {
|
for (i = 0; i < p->nrelocs; i++) {
|
||||||
struct drm_radeon_cs_reloc *r;
|
struct drm_radeon_cs_reloc *r;
|
||||||
|
struct drm_gem_object *gobj;
|
||||||
unsigned priority;
|
unsigned priority;
|
||||||
|
|
||||||
duplicate = false;
|
duplicate = false;
|
||||||
|
@ -117,15 +118,14 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p->relocs[i].gobj = drm_gem_object_lookup(ddev, p->filp,
|
gobj = drm_gem_object_lookup(ddev, p->filp, r->handle);
|
||||||
r->handle);
|
if (gobj == NULL) {
|
||||||
if (p->relocs[i].gobj == NULL) {
|
|
||||||
DRM_ERROR("gem object lookup failed 0x%x\n",
|
DRM_ERROR("gem object lookup failed 0x%x\n",
|
||||||
r->handle);
|
r->handle);
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
p->relocs_ptr[i] = &p->relocs[i];
|
p->relocs_ptr[i] = &p->relocs[i];
|
||||||
p->relocs[i].robj = gem_to_radeon_bo(p->relocs[i].gobj);
|
p->relocs[i].robj = gem_to_radeon_bo(gobj);
|
||||||
|
|
||||||
/* The userspace buffer priorities are from 0 to 15. A higher
|
/* The userspace buffer priorities are from 0 to 15. A higher
|
||||||
* number means the buffer is more important.
|
* number means the buffer is more important.
|
||||||
|
@ -439,8 +439,11 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error, bo
|
||||||
|
|
||||||
if (parser->relocs != NULL) {
|
if (parser->relocs != NULL) {
|
||||||
for (i = 0; i < parser->nrelocs; i++) {
|
for (i = 0; i < parser->nrelocs; i++) {
|
||||||
if (parser->relocs[i].gobj)
|
struct radeon_bo *bo = parser->relocs[i].robj;
|
||||||
drm_gem_object_unreference_unlocked(parser->relocs[i].gobj);
|
if (bo == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
drm_gem_object_unreference_unlocked(&bo->gem_base);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kfree(parser->track);
|
kfree(parser->track);
|
||||||
|
|
|
@ -138,7 +138,6 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct radeon_device *rdev,
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* add the vm page table to the list */
|
/* add the vm page table to the list */
|
||||||
list[0].gobj = NULL;
|
|
||||||
list[0].robj = vm->page_directory;
|
list[0].robj = vm->page_directory;
|
||||||
list[0].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
|
list[0].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
|
||||||
list[0].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
|
list[0].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
|
||||||
|
@ -152,7 +151,6 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct radeon_device *rdev,
|
||||||
if (!vm->page_tables[i].bo)
|
if (!vm->page_tables[i].bo)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
list[idx].gobj = NULL;
|
|
||||||
list[idx].robj = vm->page_tables[i].bo;
|
list[idx].robj = vm->page_tables[i].bo;
|
||||||
list[idx].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
|
list[idx].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
|
||||||
list[idx].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
|
list[idx].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
|
||||||
|
|
Loading…
Reference in New Issue