From: Atul Gupta <atul.gupta@chelsio.com>
Date: Thu, 17 Jan 2019 09:18:35 -0800
Subject: crypto: chelsio - avoid using sa_entry imm
Patch-mainline: v5.1-rc1
Git-commit: 4da66b758b25938a5e0b6df830d08e8d5c316936
References: bsc#1136353 jsc#SLE-4688
use is_eth_imm to determine immediate data than use sa_entry
field which is common for tunnel and not per skb.
Signed-off-by: Atul Gupta <atul.gupta@chelsio.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
drivers/crypto/chelsio/chcr_core.h | 2 +-
drivers/crypto/chelsio/chcr_ipsec.c | 10 ++++------
2 files changed, 5 insertions(+), 7 deletions(-)
--- a/drivers/crypto/chelsio/chcr_core.h
+++ b/drivers/crypto/chelsio/chcr_core.h
@@ -183,7 +183,7 @@ struct chcr_ipsec_aadiv {
struct ipsec_sa_entry {
int hmac_ctrl;
u16 esn;
- u16 imm;
+ u16 resv;
unsigned int enckey_len;
unsigned int kctx_len;
unsigned int authsize;
--- a/drivers/crypto/chelsio/chcr_ipsec.c
+++ b/drivers/crypto/chelsio/chcr_ipsec.c
@@ -415,12 +415,12 @@ inline void *copy_esn_pktxt(struct sk_bu
iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);
memcpy(aadiv->iv, iv, 8);
- if (sa_entry->imm) {
+ if (is_eth_imm(skb, sa_entry)) {
sc_imm = (struct ulptx_idata *)(pos +
(DIV_ROUND_UP(sizeof(struct chcr_ipsec_aadiv),
sizeof(__be64)) << 3));
- sc_imm->cmd_more = FILL_CMD_MORE(!sa_entry->imm);
- sc_imm->len = cpu_to_be32(sa_entry->imm);
+ sc_imm->cmd_more = FILL_CMD_MORE(0);
+ sc_imm->len = cpu_to_be32(skb->len);
}
pos += len;
return pos;
@@ -548,10 +548,8 @@ inline void *chcr_crypto_wreq(struct sk_
if (sa_entry->esn)
ivdrop = 1;
- if (is_eth_imm(skb, sa_entry)) {
+ if (is_eth_imm(skb, sa_entry))
immdatalen = skb->len;
- sa_entry->imm = immdatalen;
- }
if (sa_entry->esn)
esnlen = sizeof(struct chcr_ipsec_aadiv);