drm/qxl: fix gaping memory hole

This is how you implement a memory sieve in a driver. ;-)

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
This commit is contained in:
Maarten Lankhorst
2014-09-03 17:01:28 +02:00
parent d7e4d67136
commit b75402c9f9

View File

@@ -162,12 +162,14 @@ static void
qxl_release_free_list(struct qxl_release *release) qxl_release_free_list(struct qxl_release *release)
{ {
while (!list_empty(&release->bos)) { while (!list_empty(&release->bos)) {
struct ttm_validate_buffer *entry; struct qxl_bo_list *entry;
struct qxl_bo *bo;
entry = container_of(release->bos.next, entry = container_of(release->bos.next,
struct ttm_validate_buffer, head); struct qxl_bo_list, tv.head);
bo = to_qxl_bo(entry->tv.bo);
list_del(&entry->head); qxl_bo_unref(&bo);
list_del(&entry->tv.head);
kfree(entry); kfree(entry);
} }
} }