Skip to contentSkip to conversation

drm/cirrus: Invalidate page tables when pinning a BO

PATCH New Michal Srb 1 participant 1 message Jul 30, 2013

Subsystems (2)
lore
Share & tools
lore

Michal Srb

author
#0 lore raw

PATCH 1/1 drm/cirrus: Invalidate page tables when pinning a BO

This is a cirrus version of Egbert Eich's patch for mgag200.

Without bo.bdev->dev_mapping set, the ttm_bo_unmap_virtual_locked called from ttm_bo_handle_move_mem returns with no effect. If any application accessed the memory before it was moved, it will access wrong memory next time. This causes crashes when changing resolution down.

---

drivers/gpu/drm/cirrus/cirrus_ttm.c +1 -0
index 0047012..69fd8f1 100644
@@ -328,6 +328,7 @@ int cirrus_bo_create(struct drm_device *dev, int size, int align,
 
 	cirrusbo->gem.driver_private = NULL;
 	cirrusbo->bo.bdev = &cirrus->ttm.bdev;
+	cirrusbo->bo.bdev->dev_mapping = dev->dev_mapping;
 
 	cirrus_ttm_placement(cirrusbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);