aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/xcbc.c17
-rw-r--r--fs/afs/cell.c1
2 files changed, 10 insertions, 8 deletions
diff --git a/crypto/xcbc.c b/crypto/xcbc.c
index 2feb0f239c38..b63b633e549c 100644
--- a/crypto/xcbc.c
+++ b/crypto/xcbc.c
@@ -116,13 +116,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc,
116 struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent); 116 struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent);
117 struct crypto_cipher *tfm = ctx->child; 117 struct crypto_cipher *tfm = ctx->child;
118 int bs = crypto_hash_blocksize(parent); 118 int bs = crypto_hash_blocksize(parent);
119 unsigned int i = 0;
120 119
121 do { 120 for (;;) {
122 121 struct page *pg = sg_page(sg);
123 struct page *pg = sg_page(&sg[i]); 122 unsigned int offset = sg->offset;
124 unsigned int offset = sg[i].offset; 123 unsigned int slen = sg->length;
125 unsigned int slen = sg[i].length;
126 124
127 if (unlikely(slen > nbytes)) 125 if (unlikely(slen > nbytes))
128 slen = nbytes; 126 slen = nbytes;
@@ -182,8 +180,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc,
182 offset = 0; 180 offset = 0;
183 pg++; 181 pg++;
184 } 182 }
185 i++; 183
186 } while (nbytes>0); 184 if (!nbytes)
185 break;
186 sg = scatterwalk_sg_next(sg);
187 }
187 188
188 return 0; 189 return 0;
189} 190}
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 788865df1bc9..584bb0f9c36a 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -138,6 +138,7 @@ struct afs_cell *afs_cell_create(const char *name, char *vllist)
138 cell = afs_cell_alloc(name, vllist); 138 cell = afs_cell_alloc(name, vllist);
139 if (IS_ERR(cell)) { 139 if (IS_ERR(cell)) {
140 _leave(" = %ld", PTR_ERR(cell)); 140 _leave(" = %ld", PTR_ERR(cell));
141 up_write(&afs_cells_sem);
141 return cell; 142 return cell;
142 } 143 }
143 144