Skip to content

Commit

Permalink
crypto: hifn_795x - Use softirq kernel mapping in bh context
Browse files Browse the repository at this point in the history
Use KM_SOFTIRQ instead of KM_IRQ in tasklet context.
Added bug_on on input no-page condition.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Evgeniy Polyakov authored and Herbert Xu committed Dec 25, 2008
1 parent d6a10c8 commit 5f459f0
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/crypto/hifn_795x.c
Original file line number Diff line number Diff line change
Expand Up @@ -1393,10 +1393,12 @@ static int hifn_setup_dma(struct hifn_device *dev,
n = nbytes;
while (n) {
if (t->length && rctx->walk.flags & ASYNC_FLAGS_MISALIGNED) {
BUG_ON(!sg_page(t));
dpage = sg_page(t);
doff = 0;
len = t->length;
} else {
BUG_ON(!sg_page(dst));
dpage = sg_page(dst);
doff = dst->offset;
len = dst->length;
Expand Down Expand Up @@ -1791,17 +1793,17 @@ static void hifn_process_ready(struct ablkcipher_request *req, int error)
continue;
}

saddr = kmap_atomic(sg_page(t), KM_IRQ1);
saddr = kmap_atomic(sg_page(t), KM_SOFTIRQ0);

err = ablkcipher_get(saddr, &t->length, t->offset,
dst, nbytes, &nbytes);
if (err < 0) {
kunmap_atomic(saddr, KM_IRQ1);
kunmap_atomic(saddr, KM_SOFTIRQ0);
break;
}

idx += err;
kunmap_atomic(saddr, KM_IRQ1);
kunmap_atomic(saddr, KM_SOFTIRQ0);
}

ablkcipher_walk_exit(&rctx->walk);
Expand Down

0 comments on commit 5f459f0

Please sign in to comment.