crypto: chelsio - avoid using sa_entry imm
authorAtul Gupta <atul.gupta@chelsio.com>
Thu, 17 Jan 2019 17:18:35 +0000 (09:18 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 25 Jan 2019 10:41:51 +0000 (18:41 +0800)
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>
drivers/crypto/chelsio/chcr_core.h
drivers/crypto/chelsio/chcr_ipsec.c

index 1159dee964ed0d405251284a481aacfe57ea2675..ad874d548aa59b9559aa0d0427cabef555d4d31d 100644 (file)
@@ -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;
index 2fb48cce4462033d2601acfb24ba160369636aaf..4f2464654519ccfb515fe4d331f18b2222d73ea9 100644 (file)
@@ -415,12 +415,12 @@ inline void *copy_esn_pktxt(struct sk_buff *skb,
        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_buff *skb,
        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);