hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/crypto/rockchip/rk_crypto_utils.c
....@@ -72,14 +72,18 @@
7272 {
7373 int in, out, align;
7474
75
+ /* The last piece has no need for length alignment */
7576 in = IS_ALIGNED((u32)sg_src->offset, 4) &&
76
- IS_ALIGNED((u32)sg_src->length, align_mask) &&
77
+ (!sg_next(sg_src) ||
78
+ IS_ALIGNED((u32)sg_src->length, align_mask)) &&
7779 (sg_phys(sg_src) < SZ_4G);
7880 if (!sg_dst)
7981 return in;
8082
83
+ /* The last piece has no need for length alignment */
8184 out = IS_ALIGNED((u32)sg_dst->offset, 4) &&
82
- IS_ALIGNED((u32)sg_dst->length, align_mask) &&
85
+ (!sg_next(sg_dst) ||
86
+ IS_ALIGNED((u32)sg_dst->length, align_mask)) &&
8387 (sg_phys(sg_dst) < SZ_4G);
8488 align = in && out;
8589