Commit d9809d24 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-fixes-2023-09-01' of...

Merge tag 'drm-misc-next-fixes-2023-09-01' of git://anongit.freedesktop.org/drm/drm-misc

 into drm-next

Short summary of fixes pull:

 * ivpu: Replace strncpy
 * nouveau: Fix fence state in nouveau_fence_emit()

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230901070123.GA6987@linux-uq9g
parents 3698a75f 978474dc
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -118,8 +118,7 @@ int ivpu_jsm_dyndbg_control(struct ivpu_device *vdev, char *command, size_t size
	struct vpu_jsm_msg resp;
	int ret;

	if (!strncpy(req.payload.dyndbg_control.dyndbg_cmd, command, VPU_DYNDBG_CMD_MAX_LEN - 1))
		return -ENOMEM;
	strscpy(req.payload.dyndbg_control.dyndbg_cmd, command, VPU_DYNDBG_CMD_MAX_LEN);

	ret = ivpu_ipc_send_receive(vdev, &req, VPU_JSM_MSG_DYNDBG_CONTROL_RSP, &resp,
				    VPU_IPC_CHAN_ASYNC_CMD, vdev->timeout.jsm);
+1 −8
Original line number Diff line number Diff line
@@ -1122,18 +1122,11 @@ nv04_page_flip_emit(struct nouveau_channel *chan,
	PUSH_NVSQ(push, NV_SW, NV_SW_PAGE_FLIP, 0x00000000);
	PUSH_KICK(push);

	ret = nouveau_fence_new(pfence);
	ret = nouveau_fence_new(pfence, chan);
	if (ret)
		goto fail;

	ret = nouveau_fence_emit(*pfence, chan);
	if (ret)
		goto fail_fence_unref;

	return 0;

fail_fence_unref:
	nouveau_fence_unref(pfence);
fail:
	spin_lock_irqsave(&dev->event_lock, flags);
	list_del(&s->head);
+1 −7
Original line number Diff line number Diff line
@@ -875,16 +875,10 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict,
	if (ret)
		goto out_unlock;

	ret = nouveau_fence_new(&fence);
	ret = nouveau_fence_new(&fence, chan);
	if (ret)
		goto out_unlock;

	ret = nouveau_fence_emit(fence, chan);
	if (ret) {
		nouveau_fence_unref(&fence);
		goto out_unlock;
	}

	/* TODO: figure out a better solution here
	 *
	 * wait on the fence here explicitly as going through
+2 −4
Original line number Diff line number Diff line
@@ -70,10 +70,8 @@ nouveau_channel_idle(struct nouveau_channel *chan)
		struct nouveau_fence *fence = NULL;
		int ret;

		ret = nouveau_fence_new(&fence);
		ret = nouveau_fence_new(&fence, chan);
		if (!ret) {
			ret = nouveau_fence_emit(fence, chan);
			if (!ret)
			ret = nouveau_fence_wait(fence, false, false);
			nouveau_fence_unref(&fence);
		}
+3 −6
Original line number Diff line number Diff line
@@ -209,8 +209,7 @@ static vm_fault_t nouveau_dmem_migrate_to_ram(struct vm_fault *vmf)
		goto done;
	}

	if (!nouveau_fence_new(&fence))
		nouveau_fence_emit(fence, dmem->migrate.chan);
	nouveau_fence_new(&fence, dmem->migrate.chan);
	migrate_vma_pages(&args);
	nouveau_dmem_fence_done(&fence);
	dma_unmap_page(drm->dev->dev, dma_addr, PAGE_SIZE, DMA_BIDIRECTIONAL);
@@ -403,8 +402,7 @@ nouveau_dmem_evict_chunk(struct nouveau_dmem_chunk *chunk)
		}
	}

	if (!nouveau_fence_new(&fence))
		nouveau_fence_emit(fence, chunk->drm->dmem->migrate.chan);
	nouveau_fence_new(&fence, chunk->drm->dmem->migrate.chan);
	migrate_device_pages(src_pfns, dst_pfns, npages);
	nouveau_dmem_fence_done(&fence);
	migrate_device_finalize(src_pfns, dst_pfns, npages);
@@ -677,8 +675,7 @@ static void nouveau_dmem_migrate_chunk(struct nouveau_drm *drm,
		addr += PAGE_SIZE;
	}

	if (!nouveau_fence_new(&fence))
		nouveau_fence_emit(fence, drm->dmem->migrate.chan);
	nouveau_fence_new(&fence, drm->dmem->migrate.chan);
	migrate_vma_pages(args);
	nouveau_dmem_fence_done(&fence);
	nouveau_pfns_map(svmm, args->vma->vm_mm, args->start, pfns, i);
Loading