[drm] Don't remove drm fb's that we don't know about

When we access to the kernel console's fb, we don't own
it and shouldn't remove it.

This is like commit 808e129fd1,
but for radeon and nouveau instead of intel.
This commit is contained in:
Ray Strode 2010-03-24 10:19:07 -04:00
parent 186381ee63
commit 344afa14f5
2 changed files with 10 additions and 2 deletions

View file

@ -60,6 +60,8 @@ struct _ply_renderer_buffer
unsigned long width;
unsigned long height;
unsigned long row_stride;
uint32_t added_fb : 1;
};
struct _ply_renderer_driver
@ -250,6 +252,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);
@ -317,7 +320,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);
nouveau_bo_ref (NULL, &buffer->object);

View file

@ -60,6 +60,8 @@ struct _ply_renderer_buffer
unsigned long width;
unsigned long height;
unsigned long row_stride;
uint32_t added_fb : 1;
};
struct _ply_renderer_driver
@ -275,6 +277,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);
@ -342,7 +345,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);
radeon_bo_unref (buffer->object);