diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index 7ca707536f8df712dc4d8d77cc66fe69ae72ecee..804c16bc2d614b9286ba22026623ac37837e35f8 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c @@ -650,8 +650,10 @@ static void omap_sham_finish_req(struct ahash_request *req, int err) ctx->flags |= BIT(FLAGS_ERROR); } + /* atomic operation is not needed here */ + dd->flags &= ~(BIT(FLAGS_BUSY) | BIT(FLAGS_FINAL) | BIT(FLAGS_CPU) | + BIT(FLAGS_DMA_READY) | BIT(FLAGS_OUTPUT_READY)); clk_disable(dd->iclk); - dd->flags &= ~BIT(FLAGS_BUSY); if (req->base.complete) req->base.complete(&req->base, err);