OSDN Git Service

Merge tag 'armsoc-newsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[uclinux-h8/linux.git] / crypto / ahash.c
index ca0d3e2..81e2767 100644 (file)
@@ -86,17 +86,17 @@ static int hash_walk_new_entry(struct crypto_hash_walk *walk)
 int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err)
 {
        unsigned int alignmask = walk->alignmask;
-       unsigned int nbytes = walk->entrylen;
 
        walk->data -= walk->offset;
 
-       if (nbytes && walk->offset & alignmask && !err) {
-               walk->offset = ALIGN(walk->offset, alignmask + 1);
-               nbytes = min(nbytes,
-                            ((unsigned int)(PAGE_SIZE)) - walk->offset);
-               walk->entrylen -= nbytes;
+       if (walk->entrylen && (walk->offset & alignmask) && !err) {
+               unsigned int nbytes;
 
+               walk->offset = ALIGN(walk->offset, alignmask + 1);
+               nbytes = min(walk->entrylen,
+                            (unsigned int)(PAGE_SIZE - walk->offset));
                if (nbytes) {
+                       walk->entrylen -= nbytes;
                        walk->data += walk->offset;
                        return nbytes;
                }
@@ -116,7 +116,7 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err)
        if (err)
                return err;
 
-       if (nbytes) {
+       if (walk->entrylen) {
                walk->offset = 0;
                walk->pg++;
                return hash_walk_next(walk);