Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5be5a15a authored by Alexandre Courbot's avatar Alexandre Courbot Committed by Ben Skeggs
Browse files

drm/nouveau: warn when moving a pinned object



Pinned BOs are supposed to remain in their current location until
unpinned. Display a warning for the supposedly-erroneous case where we
are trying to move such objects.

Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent f9895e6d
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -323,8 +323,8 @@ nouveau_bo_pin(struct nouveau_bo *nvbo, uint32_t memtype)
		goto out;
	}

	if (nvbo->pin_refcnt++)
		goto out;
	if (nvbo->pin_refcnt)
		goto ref_inc;

	nouveau_bo_placement_set(nvbo, memtype, 0);

@@ -341,6 +341,10 @@ nouveau_bo_pin(struct nouveau_bo *nvbo, uint32_t memtype)
			break;
		}
	}

ref_inc:
	nvbo->pin_refcnt++;

out:
	ttm_bo_unreserve(bo);
	return ret;
@@ -1184,6 +1188,9 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
	struct nouveau_drm_tile *new_tile = NULL;
	int ret = 0;

	if (nvbo->pin_refcnt)
		NV_WARN(drm, "Moving pinned object %p!\n", nvbo);

	if (drm->device.info.family < NV_DEVICE_INFO_V0_TESLA) {
		ret = nouveau_bo_vm_bind(bo, new_mem, &new_tile);
		if (ret)