diff --git a/sys/dev/drm/radeon/radeon_sa.c b/sys/dev/drm/radeon/radeon_sa.c --- a/sys/dev/drm/radeon/radeon_sa.c +++ b/sys/dev/drm/radeon/radeon_sa.c @@ -79,6 +79,7 @@ { struct radeon_sa_bo *sa_bo, *tmp; + lockmgr(&sa_manager->wq.lock, LK_EXCLUSIVE); if (!list_empty(&sa_manager->olist)) { sa_manager->hole = &sa_manager->olist, radeon_sa_bo_try_free(sa_manager); @@ -91,6 +92,7 @@ } radeon_bo_unref(&sa_manager->bo); sa_manager->size = 0; + lockmgr(&sa_manager->wq.lock, LK_RELEASE); } int radeon_sa_bo_manager_start(struct radeon_device *rdev,