diff options
Diffstat (limited to 'drivers/misc/habanalabs/command_submission.c')
| -rw-r--r-- | drivers/misc/habanalabs/command_submission.c | 22 | 
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/misc/habanalabs/command_submission.c b/drivers/misc/habanalabs/command_submission.c index 19c84214a7ea..6fe785e26859 100644 --- a/drivers/misc/habanalabs/command_submission.c +++ b/drivers/misc/habanalabs/command_submission.c @@ -93,7 +93,6 @@ static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job)  	parser.user_cb_size = job->user_cb_size;  	parser.ext_queue = job->ext_queue;  	job->patched_cb = NULL; -	parser.use_virt_addr = hdev->mmu_enable;  	rc = hdev->asic_funcs->cs_parser(hdev, &parser);  	if (job->ext_queue) { @@ -261,7 +260,8 @@ static void cs_timedout(struct work_struct *work)  	ctx_asid = cs->ctx->asid;  	/* TODO: add information about last signaled seq and last emitted seq */ -	dev_err(hdev->dev, "CS %d.%llu got stuck!\n", ctx_asid, cs->sequence); +	dev_err(hdev->dev, "User %d command submission %llu got stuck!\n", +		ctx_asid, cs->sequence);  	cs_put(cs); @@ -600,20 +600,20 @@ int hl_cs_ioctl(struct hl_fpriv *hpriv, void *data)  	void __user *chunks;  	u32 num_chunks;  	u64 cs_seq = ULONG_MAX; -	int rc, do_restore; +	int rc, do_ctx_switch;  	bool need_soft_reset = false;  	if (hl_device_disabled_or_in_reset(hdev)) { -		dev_warn(hdev->dev, +		dev_warn_ratelimited(hdev->dev,  			"Device is %s. Can't submit new CS\n",  			atomic_read(&hdev->in_reset) ? "in_reset" : "disabled");  		rc = -EBUSY;  		goto out;  	} -	do_restore = atomic_cmpxchg(&ctx->thread_restore_token, 1, 0); +	do_ctx_switch = atomic_cmpxchg(&ctx->thread_ctx_switch_token, 1, 0); -	if (do_restore || (args->in.cs_flags & HL_CS_FLAGS_FORCE_RESTORE)) { +	if (do_ctx_switch || (args->in.cs_flags & HL_CS_FLAGS_FORCE_RESTORE)) {  		long ret;  		chunks = (void __user *)(uintptr_t)args->in.chunks_restore; @@ -621,7 +621,7 @@ int hl_cs_ioctl(struct hl_fpriv *hpriv, void *data)  		mutex_lock(&hpriv->restore_phase_mutex); -		if (do_restore) { +		if (do_ctx_switch) {  			rc = hdev->asic_funcs->context_switch(hdev, ctx->asid);  			if (rc) {  				dev_err_ratelimited(hdev->dev, @@ -677,18 +677,18 @@ int hl_cs_ioctl(struct hl_fpriv *hpriv, void *data)  			}  		} -		ctx->thread_restore_wait_token = 1; -	} else if (!ctx->thread_restore_wait_token) { +		ctx->thread_ctx_switch_wait_token = 1; +	} else if (!ctx->thread_ctx_switch_wait_token) {  		u32 tmp;  		rc = hl_poll_timeout_memory(hdev, -			(u64) (uintptr_t) &ctx->thread_restore_wait_token, +			(u64) (uintptr_t) &ctx->thread_ctx_switch_wait_token,  			jiffies_to_usecs(hdev->timeout_jiffies),  			&tmp);  		if (rc || !tmp) {  			dev_err(hdev->dev, -				"restore phase hasn't finished in time\n"); +				"context switch phase didn't finish in time\n");  			rc = -ETIMEDOUT;  			goto out;  		}  |