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:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user