From d6fd56dcac3d367fbe449b1ba824f105767e837a Mon Sep 17 00:00:00 2001 From: Evgeniy Polyakov Date: Tue, 25 Nov 2008 23:17:10 +0800 Subject: [PATCH] --- yaml --- r: 120617 b: refs/heads/master c: 5f459f0adc7581da01cdd9b7f84db14a4559a390 h: refs/heads/master i: 120615: d760687d17b9e6745c8d6d53022abbfdec0c7ed1 v: v3 --- [refs] | 2 +- trunk/drivers/crypto/hifn_795x.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 8e3d0bda7485..a413f86fabd2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d6a10c84a2a2b08bdd637852c9cc42c41e109b25 +refs/heads/master: 5f459f0adc7581da01cdd9b7f84db14a4559a390 diff --git a/trunk/drivers/crypto/hifn_795x.c b/trunk/drivers/crypto/hifn_795x.c index ab4f94bec4ff..0c79fe7f1567 100644 --- a/trunk/drivers/crypto/hifn_795x.c +++ b/trunk/drivers/crypto/hifn_795x.c @@ -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);