ttm: on move memory failure don't leave a node dangling
authorDave Airlie <airlied@gmail.com>
Wed, 16 Jan 2013 05:58:34 +0000 (15:58 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 21 Jan 2013 03:45:23 +0000 (13:45 +1000)
if we have a move notify callback, when moving fails, we call move notify
the opposite way around, however this ends up with *mem containing the mm_node
from the bo, which means we double free it. This is a follow on to the previous
fix.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/ttm/ttm_bo.c

index 33d20be..52b20b1 100644 (file)
@@ -434,6 +434,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
                        bo->mem = tmp_mem;
                        bdev->driver->move_notify(bo, mem);
                        bo->mem = *mem;
+                       *mem = tmp_mem;
                }
 
                goto out_err;