crypto: chelsio - avoid using sa_entry imm
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>
This commit is contained in:
parent
2b5ac17463
commit
4da66b758b
|
@ -183,7 +183,7 @@ struct chcr_ipsec_aadiv {
|
||||||
struct ipsec_sa_entry {
|
struct ipsec_sa_entry {
|
||||||
int hmac_ctrl;
|
int hmac_ctrl;
|
||||||
u16 esn;
|
u16 esn;
|
||||||
u16 imm;
|
u16 resv;
|
||||||
unsigned int enckey_len;
|
unsigned int enckey_len;
|
||||||
unsigned int kctx_len;
|
unsigned int kctx_len;
|
||||||
unsigned int authsize;
|
unsigned int authsize;
|
||||||
|
|
|
@ -415,12 +415,12 @@ inline void *copy_esn_pktxt(struct sk_buff *skb,
|
||||||
iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);
|
iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);
|
||||||
memcpy(aadiv->iv, iv, 8);
|
memcpy(aadiv->iv, iv, 8);
|
||||||
|
|
||||||
if (sa_entry->imm) {
|
if (is_eth_imm(skb, sa_entry)) {
|
||||||
sc_imm = (struct ulptx_idata *)(pos +
|
sc_imm = (struct ulptx_idata *)(pos +
|
||||||
(DIV_ROUND_UP(sizeof(struct chcr_ipsec_aadiv),
|
(DIV_ROUND_UP(sizeof(struct chcr_ipsec_aadiv),
|
||||||
sizeof(__be64)) << 3));
|
sizeof(__be64)) << 3));
|
||||||
sc_imm->cmd_more = FILL_CMD_MORE(!sa_entry->imm);
|
sc_imm->cmd_more = FILL_CMD_MORE(0);
|
||||||
sc_imm->len = cpu_to_be32(sa_entry->imm);
|
sc_imm->len = cpu_to_be32(skb->len);
|
||||||
}
|
}
|
||||||
pos += len;
|
pos += len;
|
||||||
return pos;
|
return pos;
|
||||||
|
@ -548,10 +548,8 @@ inline void *chcr_crypto_wreq(struct sk_buff *skb,
|
||||||
if (sa_entry->esn)
|
if (sa_entry->esn)
|
||||||
ivdrop = 1;
|
ivdrop = 1;
|
||||||
|
|
||||||
if (is_eth_imm(skb, sa_entry)) {
|
if (is_eth_imm(skb, sa_entry))
|
||||||
immdatalen = skb->len;
|
immdatalen = skb->len;
|
||||||
sa_entry->imm = immdatalen;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sa_entry->esn)
|
if (sa_entry->esn)
|
||||||
esnlen = sizeof(struct chcr_ipsec_aadiv);
|
esnlen = sizeof(struct chcr_ipsec_aadiv);
|
||||||
|
|
Loading…
Reference in New Issue