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

Commit 15ba79ad authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: shut lockdep up if last vm ref needs to destroy pgd



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 06b75e35
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -369,23 +369,26 @@ nouveau_vm_link(struct nouveau_vm *vm, struct nouveau_gpuobj *pgd)
}

static void
nouveau_vm_unlink(struct nouveau_vm *vm, struct nouveau_gpuobj *pgd)
nouveau_vm_unlink(struct nouveau_vm *vm, struct nouveau_gpuobj *mpgd)
{
	struct nouveau_vm_pgd *vpgd, *tmp;
	struct nouveau_gpuobj *pgd = NULL;

	if (!pgd)
	if (!mpgd)
		return;

	mutex_lock(&vm->mm->mutex);
	list_for_each_entry_safe(vpgd, tmp, &vm->pgd_list, head) {
		if (vpgd->obj != pgd)
			continue;

		if (vpgd->obj == mpgd) {
			pgd = vpgd->obj;
			list_del(&vpgd->head);
		nouveau_gpuobj_ref(NULL, &vpgd->obj);
			kfree(vpgd);
			break;
		}
	}
	mutex_unlock(&vm->mm->mutex);

	nouveau_gpuobj_ref(NULL, &pgd);
}

static void