Commit 5f459f0a authored by Evgeniy Polyakov's avatar Evgeniy Polyakov Committed by Herbert Xu
Browse files

crypto: hifn_795x - Use softirq kernel mapping in bh context



Use KM_SOFTIRQ instead of KM_IRQ in tasklet context.
Added bug_on on input no-page condition.

Signed-off-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent d6a10c84
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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);