| .. | .. |
|---|
| 286 | 286 | struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); |
|---|
| 287 | 287 | struct rk_crypto_algt *algt = rk_ahash_get_algt(tfm); |
|---|
| 288 | 288 | struct scatterlist *src_sg; |
|---|
| 289 | | - unsigned long flags; |
|---|
| 290 | 289 | unsigned int nbytes; |
|---|
| 291 | 290 | int ret = 0; |
|---|
| 292 | 291 | |
|---|
| .. | .. |
|---|
| 378 | 377 | ctx->hash_tmp_len, ctx->lastc_len, nbytes); |
|---|
| 379 | 378 | |
|---|
| 380 | 379 | if (nbytes) { |
|---|
| 381 | | - spin_lock_irqsave(&rk_dev->lock, flags); |
|---|
| 382 | 380 | if (ctx->calc_cnt == 0) |
|---|
| 383 | 381 | alg_ctx->ops.hw_init(rk_dev, algt->algo, algt->type); |
|---|
| 384 | 382 | |
|---|
| 385 | 383 | /* flush all 64byte key buffer for hmac */ |
|---|
| 386 | 384 | alg_ctx->ops.hw_write_key(ctx->rk_dev, ctx->authkey, sizeof(ctx->authkey)); |
|---|
| 387 | 385 | ret = rk_ahash_set_data_start(rk_dev, rctx->flag); |
|---|
| 388 | | - spin_unlock_irqrestore(&rk_dev->lock, flags); |
|---|
| 389 | 386 | } |
|---|
| 390 | 387 | exit: |
|---|
| 391 | 388 | return ret; |
|---|