diff options
Diffstat (limited to 'drivers/crypto/omap-sham.c')
-rw-r--r-- | drivers/crypto/omap-sham.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c index 4e2067df300d..710d86386965 100644 --- a/drivers/crypto/omap-sham.c +++ b/drivers/crypto/omap-sham.c | |||
@@ -636,11 +636,17 @@ static size_t omap_sham_append_buffer(struct omap_sham_reqctx *ctx, | |||
636 | static size_t omap_sham_append_sg(struct omap_sham_reqctx *ctx) | 636 | static size_t omap_sham_append_sg(struct omap_sham_reqctx *ctx) |
637 | { | 637 | { |
638 | size_t count; | 638 | size_t count; |
639 | const u8 *vaddr; | ||
639 | 640 | ||
640 | while (ctx->sg) { | 641 | while (ctx->sg) { |
642 | vaddr = kmap_atomic(sg_page(ctx->sg)); | ||
643 | |||
641 | count = omap_sham_append_buffer(ctx, | 644 | count = omap_sham_append_buffer(ctx, |
642 | sg_virt(ctx->sg) + ctx->offset, | 645 | vaddr + ctx->offset, |
643 | ctx->sg->length - ctx->offset); | 646 | ctx->sg->length - ctx->offset); |
647 | |||
648 | kunmap_atomic((void *)vaddr); | ||
649 | |||
644 | if (!count) | 650 | if (!count) |
645 | break; | 651 | break; |
646 | ctx->offset += count; | 652 | ctx->offset += count; |