From: Thomas Zimmermann Date: Tue, 21 May 2019 11:08:31 +0000 (+0200) Subject: drm: Assert that BO is locked in drm_gem_vram_{pin, unpin}_locked() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9977e5b43776fd0f6cc62c29b4b7ade16bfdf649;p=openwrt%2Fstaging%2Fblogic.git drm: Assert that BO is locked in drm_gem_vram_{pin, unpin}_locked() We may not call drm_gem_vram_{pin,unpin}_locked() with an unlocked BO. Now test for this. Signed-off-by: Thomas Zimmermann Acked-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190521110831.20200-4-tzimmermann@suse.de Signed-off-by: Gerd Hoffmann --- diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index aefb0c361486..7380a06a582c 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -284,6 +284,8 @@ int drm_gem_vram_pin_locked(struct drm_gem_vram_object *gbo, int i, ret; struct ttm_operation_ctx ctx = { false, false }; + lockdep_assert_held(&gbo->bo.resv->lock.base); + if (gbo->pin_count) { ++gbo->pin_count; return 0; @@ -361,6 +363,8 @@ int drm_gem_vram_unpin_locked(struct drm_gem_vram_object *gbo) int i, ret; struct ttm_operation_ctx ctx = { false, false }; + lockdep_assert_held(&gbo->bo.resv->lock.base); + if (WARN_ON_ONCE(!gbo->pin_count)) return 0;