From: Hans de Goede Date: Tue, 15 Jan 2019 08:21:05 +0000 (+0100) Subject: drm: Limit backend->resources lifetime to within query_device X-Git-Tag: 0.9.5~76^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cb2eb14892a3468a2e249709e3f09b7b852d36e;p=thirdparty%2Fplymouth.git drm: Limit backend->resources lifetime to within query_device We do not need / use backend->resources anywhere outside of the query_device function and with the upcoming hotplug support we need to get a fresh set of resources on change events, so limit the resources lifetime to query_device. Signed-off-by: Hans de Goede --- diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c index a66cd675..4e3c41a1 100644 --- a/src/plugins/renderers/drm/plugin.c +++ b/src/plugins/renderers/drm/plugin.c @@ -838,8 +838,6 @@ destroy_backend (ply_renderer_backend_t *backend) ply_hashtable_free (backend->output_buffers); ply_hashtable_free (backend->heads_by_controller_id); - drmModeFreeResources (backend->resources); - free (backend->outputs); free (backend); } @@ -1385,6 +1383,8 @@ has_32bpp_support (ply_renderer_backend_t *backend) static bool query_device (ply_renderer_backend_t *backend) { + bool ret = true; + assert (backend != NULL); assert (backend->device_fd >= 0); @@ -1397,15 +1397,16 @@ query_device (ply_renderer_backend_t *backend) if (!create_heads_for_active_connectors (backend)) { ply_trace ("Could not initialize heads"); - return false; - } - - if (!has_32bpp_support (backend)) { + ret = false; + } else if (!has_32bpp_support (backend)) { ply_trace ("Device doesn't support 32bpp framebuffer"); - return false; + ret = false; } - return true; + drmModeFreeResources (backend->resources); + backend->resources = NULL; + + return ret; } static bool