diff options
| -rw-r--r-- | drivers/gpu/ipu-v3/ipu-image-convert.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/drivers/gpu/ipu-v3/ipu-image-convert.c b/drivers/gpu/ipu-v3/ipu-image-convert.c index e3e032252604..abd8afb22b48 100644 --- a/drivers/gpu/ipu-v3/ipu-image-convert.c +++ b/drivers/gpu/ipu-v3/ipu-image-convert.c @@ -896,7 +896,7 @@ static irqreturn_t do_bh(int irq, void *dev_id)  			dev_dbg(priv->ipu->dev,  				"%s: task %u: signaling abort for ctx %p\n",  				__func__, chan->ic_task, ctx); -			complete(&ctx->aborted); +			complete_all(&ctx->aborted);  		}  	} @@ -1533,8 +1533,6 @@ static void __ipu_image_convert_abort(struct ipu_image_convert_ctx *ctx)  	int run_count, ret;  	bool need_abort; -	reinit_completion(&ctx->aborted); -  	spin_lock_irqsave(&chan->irqlock, flags);  	/* move all remaining pending runs in this context to done_q */ @@ -1549,6 +1547,9 @@ static void __ipu_image_convert_abort(struct ipu_image_convert_ctx *ctx)  	active_run = (chan->current_run && chan->current_run->ctx == ctx) ?  		chan->current_run : NULL; +	if (active_run) +		reinit_completion(&ctx->aborted); +  	need_abort = (run_count || active_run);  	ctx->aborting = true; | 
