Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1a018e6 authored by Harsh Jain's avatar Harsh Jain Committed by Herbert Xu
Browse files

crypto: chelsio - Remove dst sg size zero check



sg_nents_xlen will take care of zero length sg list.
Remove Destination sg list size zero check.

Signed-off-by: default avatarHarsh Jain <harsh@chelsio.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 3d64bd67
Loading
Loading
Loading
Loading
+13 −30
Original line number Diff line number Diff line
@@ -2109,20 +2109,14 @@ static struct sk_buff *create_authenc_wr(struct aead_request *req,
		null = 1;
		assoclen = 0;
	}
	dst_size = assoclen + req->cryptlen + (op_type ? -authsize :
						    authsize);
	error = chcr_aead_common_init(req, op_type);
	if (error)
		return ERR_PTR(error);
	if (dst_size) {
		dnents = sg_nents_xlen(req->dst, assoclen, CHCR_DST_SG_SIZE, 0);
		dnents += sg_nents_xlen(req->dst, req->cryptlen +
			(op_type ? -authsize : authsize), CHCR_DST_SG_SIZE,
			req->assoclen);
		dnents += MIN_AUTH_SG; // For IV
	} else {
		dnents = 0;
	}

	dst_size = get_space_for_phys_dsgl(dnents);
	kctx_len = (ntohl(KEY_CONTEXT_CTX_LEN_V(aeadctx->key_ctx_hdr)) << 4)
@@ -2687,8 +2681,6 @@ static struct sk_buff *create_aead_ccm_wr(struct aead_request *req,
	sub_type = get_aead_subtype(tfm);
	if (sub_type == CRYPTO_ALG_SUB_TYPE_AEAD_RFC4309)
		assoclen -= 8;
	dst_size = assoclen + req->cryptlen + (op_type ? -authsize :
						   authsize);
	error = chcr_aead_common_init(req, op_type);
	if (error)
		return ERR_PTR(error);
@@ -2698,15 +2690,11 @@ static struct sk_buff *create_aead_ccm_wr(struct aead_request *req,
	error = aead_ccm_validate_input(op_type, req, aeadctx, sub_type);
	if (error)
		goto err;
	if (dst_size) {
	dnents = sg_nents_xlen(req->dst, assoclen, CHCR_DST_SG_SIZE, 0);
	dnents += sg_nents_xlen(req->dst, req->cryptlen
			+ (op_type ? -authsize : authsize),
			CHCR_DST_SG_SIZE, req->assoclen);
	dnents += MIN_CCM_SG; // For IV and B0
	} else {
		dnents = 0;
	}
	dst_size = get_space_for_phys_dsgl(dnents);
	kctx_len = ((DIV_ROUND_UP(aeadctx->enckey_len, 16)) << 4) * 2;
	transhdr_len = CIPHER_TRANSHDR_SIZE(kctx_len, dst_size);
@@ -2801,19 +2789,14 @@ static struct sk_buff *create_gcm_wr(struct aead_request *req,
		assoclen = req->assoclen - 8;

	reqctx->b0_dma = 0;
	dst_size = assoclen + req->cryptlen + (op_type ? -authsize :  authsize);
	error = chcr_aead_common_init(req, op_type);
	if (error)
		return ERR_PTR(error);
	if (dst_size) {
	dnents = sg_nents_xlen(req->dst, assoclen, CHCR_DST_SG_SIZE, 0);
		dnents += sg_nents_xlen(req->dst,
			req->cryptlen + (op_type ? -authsize : authsize),
	dnents += sg_nents_xlen(req->dst, req->cryptlen +
				(op_type ? -authsize : authsize),
				CHCR_DST_SG_SIZE, req->assoclen);
	dnents += MIN_GCM_SG; // For IV
	} else {
		dnents = 0;
	}
	dst_size = get_space_for_phys_dsgl(dnents);
	kctx_len = ((DIV_ROUND_UP(aeadctx->enckey_len, 16)) << 4) +
		AEAD_H_SIZE;