Re: [PATCH v2] crypto: omap-sham: kmap SG pages before appending

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 05, 2014 at 04:18:12AM +0000, Fernandes, Joel wrote:
> 
> 
> > On Mar 4, 2014, at 8:00 PM, "Herbert Xu" <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
> > 
> >> On Tue, Mar 04, 2014 at 12:30:54PM -0600, Joel Fernandes wrote:
> >> HIGHMEM pages may not be mapped so we must kmap them before accessing.
> >> This resolves a random OOPs error that was showing up during OpenSSL SHA tests.
> >> 
> >> Signed-off-by: Joel Fernandes <joelf@xxxxxx>
> >> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> >> ---
> >> v2 changes:
> >>    - don't check for HIGHMEM, kmap/kunmap do them anyway (Thanks Herbert).
> >> 
> >> drivers/crypto/omap-sham.c |    8 +++++++-
> >> 1 file changed, 7 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
> >> index e45aaaf..207eac1 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,
> >> static size_t omap_sham_append_sg(struct omap_sham_reqctx *ctx)
> >> {
> >>    size_t count;
> >> +    const u8 *vaddr;
> >> 
> >>    while (ctx->sg) {
> >> +        vaddr = kmap(sg_page(ctx->sg));
> > 
> > Are you sure you can safely use kmap here as opposed to kmap_atomic?
> 
> Yes I made sure it is not called in interrupt context and also tested the patch.

What about omap_sham_update => omap_sham_append_sg? As the former
can be called in softirq context what is preventing it from calling
kmap?

Cheers,
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux