From 6ba61324f03ced586efe4aed8b552a144314139a Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Tue, 2 Jul 2019 10:30:45 +0200 Subject: [PATCH] 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 --- src/gallium/drivers/panfrost/pan_drm.c | 18 ------------------ src/gallium/drivers/panfrost/pan_resource.c | 21 ++++++++------------- src/gallium/drivers/panfrost/pan_resource.h | 3 --- src/gallium/drivers/panfrost/pan_screen.h | 3 --- 4 files changed, 8 insertions(+), 37 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_drm.c b/src/gallium/drivers/panfrost/pan_drm.c index 3d25eda..8c9a061 100644 --- a/src/gallium/drivers/panfrost/pan_drm.c +++ b/src/gallium/drivers/panfrost/pan_drm.c @@ -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) { diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index fae535e..680b98a 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -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); } diff --git a/src/gallium/drivers/panfrost/pan_resource.h b/src/gallium/drivers/panfrost/pan_resource.h index 89a4396..003211b 100644 --- a/src/gallium/drivers/panfrost/pan_resource.h +++ b/src/gallium/drivers/panfrost/pan_resource.h @@ -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; diff --git a/src/gallium/drivers/panfrost/pan_screen.h b/src/gallium/drivers/panfrost/pan_screen.h index 22565d6..ebc5fee 100644 --- a/src/gallium/drivers/panfrost/pan_screen.h +++ b/src/gallium/drivers/panfrost/pan_screen.h @@ -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); -- 2.7.4