panfrost: Get rid of the "free imported BO" logic

bo->imported was never set to true which means this path was never taken.
Moreover, panfrost_drm_free_imported_bo() is doing missing the munmap()
call which seems wrong because the import BO function calls mmap().

Let's just kill this function along with the ->imported field.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
This commit is contained in:
Boris Brezillon
2019-07-02 10:30:45 +02:00
parent 079aaa9c6d
commit 6ba61324f0
4 changed files with 7 additions and 36 deletions
-18
View File
@@ -175,24 +175,6 @@ panfrost_drm_export_bo(struct panfrost_screen *screen, int gem_handle, unsigned
return TRUE;
}
void
panfrost_drm_free_imported_bo(struct panfrost_screen *screen, struct panfrost_bo *bo)
{
struct drm_gem_close gem_close = {
.handle = bo->gem_handle,
};
int ret;
ret = drmIoctl(screen->fd, DRM_IOCTL_GEM_CLOSE, &gem_close);
if (ret) {
fprintf(stderr, "DRM_IOCTL_GEM_CLOSE failed: %d\n", ret);
assert(0);
}
bo->gem_handle = -1;
bo->gpu = (mali_ptr)NULL;
}
int
panfrost_drm_submit_job(struct panfrost_context *ctx, u64 job_desc, int reqs, struct pipe_surface *surf)
{
+7 -12
View File
@@ -435,19 +435,14 @@ panfrost_resource_create(struct pipe_screen *screen,
static void
panfrost_destroy_bo(struct panfrost_screen *screen, struct panfrost_bo *bo)
{
if (bo->imported) {
panfrost_drm_free_imported_bo(screen, bo);
} else {
struct panfrost_memory mem = {
.cpu = bo->cpu,
.gpu = bo->gpu,
.size = bo->size,
.gem_handle = bo->gem_handle,
};
panfrost_drm_free_slab(screen, &mem);
}
struct panfrost_memory mem = {
.cpu = bo->cpu,
.gpu = bo->gpu,
.size = bo->size,
.gem_handle = bo->gem_handle,
};
panfrost_drm_free_slab(screen, &mem);
ralloc_free(bo);
}
@@ -75,9 +75,6 @@ struct panfrost_bo {
/* Distance from tree to tree */
unsigned cubemap_stride;
/* Set if this bo was imported rather than allocated */
bool imported;
/* Internal layout (tiled?) */
enum panfrost_memory_layout layout;
@@ -88,9 +88,6 @@ panfrost_drm_import_bo(struct panfrost_screen *screen,
int
panfrost_drm_export_bo(struct panfrost_screen *screen, int gem_handle,
unsigned int stride, struct winsys_handle *whandle);
void
panfrost_drm_free_imported_bo(struct panfrost_screen *screen,
struct panfrost_bo *bo);
int
panfrost_drm_submit_job(struct panfrost_context *ctx, u64 job_desc, int reqs,
struct pipe_surface *surf);