On Thu, Jul 09, 2015 at 08:41:50AM +0200, LABBE Corentin wrote: > > > > + /* get the partial hash only if something was written */ > > > + if (op->mode == SS_OP_SHA1) { > > > + for (i = 0; i < 5; i++) > > > + op->hash[i] = readl(ss->base + SS_MD0 + i * 4); > > > + } else { > > > + for (i = 0; i < 4; i++) > > > + op->hash[i] = readl(ss->base + SS_MD0 + i * 4); > > > + } > > > > You can avoid the op->mode check by storing the hash size in algt. > > > > It seems that I can use crypto_ahash_digestsize() that do the same thing. I don't think so because the partial hash size is not the same as the final digest size. > > > +int sun4i_hash_finup(struct ahash_request *areq) > > > +{ > > > + int err; > > > + > > > + err = sun4i_hash_update(areq); > > > + if (err != 0) > > > + return err; > > > + > > > + return sun4i_hash_final(areq); > > > > You can drop finup since the API provides a default finup that's > > exactly the same as this. You only need to provide finup if it > > can optimise on this. > > > > Ditto for digest. > > If I remove digest(), loading the driver crash the kernel with: You're right. We don't provide a default digest function for ahash, we only do it for shash. So I guess you'll have to keep digest around for now. 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 devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html