|
|
@@ -830,11 +830,14 @@ static int gcmaes_crypt_by_sg(bool enc, struct aead_request *req,
|
|
|
scatterwalk_map_and_copy(assoc, req->src, 0, assoclen, 0);
|
|
|
}
|
|
|
|
|
|
- src_sg = scatterwalk_ffwd(src_start, req->src, req->assoclen);
|
|
|
- scatterwalk_start(&src_sg_walk, src_sg);
|
|
|
- if (req->src != req->dst) {
|
|
|
- dst_sg = scatterwalk_ffwd(dst_start, req->dst, req->assoclen);
|
|
|
- scatterwalk_start(&dst_sg_walk, dst_sg);
|
|
|
+ if (left) {
|
|
|
+ src_sg = scatterwalk_ffwd(src_start, req->src, req->assoclen);
|
|
|
+ scatterwalk_start(&src_sg_walk, src_sg);
|
|
|
+ if (req->src != req->dst) {
|
|
|
+ dst_sg = scatterwalk_ffwd(dst_start, req->dst,
|
|
|
+ req->assoclen);
|
|
|
+ scatterwalk_start(&dst_sg_walk, dst_sg);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
kernel_fpu_begin();
|