From: Ray Strode Date: Thu, 12 Nov 2009 17:48:54 +0000 (-0500) Subject: [drm] Don't remove drm fb's that we don't know X-Git-Tag: 0.8.0~145 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=808e129fd144e4065c08314723837b4141e90355;p=thirdparty%2Fplymouth.git [drm] Don't remove drm fb's that we don't know When we access to the kernel console's fb, we don't own it and shouldn't remove it. Spotted by Scott James Remnant. --- diff --git a/src/plugins/renderers/drm/ply-renderer-i915-driver.c b/src/plugins/renderers/drm/ply-renderer-i915-driver.c index b32e21ec..8b4b08b3 100644 --- a/src/plugins/renderers/drm/ply-renderer-i915-driver.c +++ b/src/plugins/renderers/drm/ply-renderer-i915-driver.c @@ -59,6 +59,8 @@ struct _ply_renderer_buffer unsigned long width; unsigned long height; unsigned long row_stride; + + uint32_t added_fb : 1; }; struct _ply_renderer_driver @@ -262,6 +264,7 @@ create_buffer (ply_renderer_driver_t *driver, buffer = ply_renderer_buffer_new (driver, buffer_object, buffer_id, width, height, *row_stride); + buffer->added_fb = true; ply_hashtable_insert (driver->buffers, (void *) (uintptr_t) buffer_id, buffer); @@ -329,7 +332,8 @@ destroy_buffer (ply_renderer_driver_t *driver, assert (buffer != NULL); - drmModeRmFB (driver->device_fd, buffer->id); + if (buffer->added_fb) + drmModeRmFB (driver->device_fd, buffer->id); drm_intel_bo_unreference (buffer->object);