* pull request (net-next): ipsec-next 2013-11-01
@ 2013-11-01 7:50 Steffen Klassert
2013-11-01 7:50 ` [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches Steffen Klassert
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Steffen Klassert @ 2013-11-01 7:50 UTC (permalink / raw)
To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
This pull request has a trivial merge conflict between git commit
e7d8f6c ("xfrm: Add refcount handling to queued policies") and
git commit 4d53eff ("xfrm: Don't queue retransmitted packets if
the original is still on the host"). It can be solved as it is
currently done in linux-next.
1) Use vmalloc_node for ipcomp percpu scratches to get proper
NUMA affinity, from Eric Dumazet
2) Avoid to retransmit packets if the original packet is
still in the xfrm hold queue.
3) Remove unused padlen field from struct esp_data.
From Mathias Krause.
4) Remove struct esp_data because now it consists of a single
pointer. From Mathias Krause.
Please pull or let me know if there are problems.
Thanks!
The following changes since commit 5bf47256f5433a9a5782754664e5ea04acb0537d:
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge (2013-10-19 19:52:42 -0400)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next.git master
for you to fetch changes up to 1c5ad13f7c2b2afe30e43858d04fff979dc9d243:
net: esp{4,6}: get rid of struct esp_data (2013-10-29 06:39:42 +0100)
----------------------------------------------------------------
Eric Dumazet (1):
xfrm: use vmalloc_node() for percpu scratches
Mathias Krause (2):
net: esp{4,6}: remove padlen from struct esp_data
net: esp{4,6}: get rid of struct esp_data
Steffen Klassert (1):
xfrm: Don't queue retransmitted packets if the original is still on the host
include/net/esp.h | 10 ----------
net/ipv4/esp4.c | 49 +++++++++++++++---------------------------------
net/ipv6/esp6.c | 48 +++++++++++++++--------------------------------
net/xfrm/xfrm_ipcomp.c | 6 ++++--
net/xfrm/xfrm_policy.c | 7 +++++++
5 files changed, 41 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
@ 2013-11-01 7:50 ` Steffen Klassert
2013-11-01 13:02 ` Sergei Shtylyov
2013-11-01 7:50 ` [PATCH 2/4] xfrm: Don't queue retransmitted packets if the original is still on the host Steffen Klassert
` (3 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Steffen Klassert @ 2013-11-01 7:50 UTC (permalink / raw)
To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
From: Eric Dumazet <edumazet@google.com>
scratches are per cpu, we can use vmalloc_node() for proper
NUMA affinity.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
net/xfrm/xfrm_ipcomp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c
index 2906d52..b943c7f 100644
--- a/net/xfrm/xfrm_ipcomp.c
+++ b/net/xfrm/xfrm_ipcomp.c
@@ -220,8 +220,8 @@ static void ipcomp_free_scratches(void)
static void * __percpu *ipcomp_alloc_scratches(void)
{
- int i;
void * __percpu *scratches;
+ int i;
if (ipcomp_scratch_users++)
return ipcomp_scratches;
@@ -233,7 +233,9 @@ static void * __percpu *ipcomp_alloc_scratches(void)
ipcomp_scratches = scratches;
for_each_possible_cpu(i) {
- void *scratch = vmalloc(IPCOMP_SCRATCH_SIZE);
+ void *scratch;
+
+ scratch = vmalloc_node(IPCOMP_SCRATCH_SIZE, cpu_to_node(i));
if (!scratch)
return NULL;
*per_cpu_ptr(scratches, i) = scratch;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] xfrm: Don't queue retransmitted packets if the original is still on the host
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
2013-11-01 7:50 ` [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches Steffen Klassert
@ 2013-11-01 7:50 ` Steffen Klassert
2013-11-01 7:50 ` [PATCH 3/4] net: esp{4,6}: remove padlen from struct esp_data Steffen Klassert
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Steffen Klassert @ 2013-11-01 7:50 UTC (permalink / raw)
To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
It does not make sense to queue retransmitted packets if the
original packet is still in some queue of this host. So add
a check to xdst_queue_output() and drop the packet if the
original packet is not yet sent.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Acked-by: Eric Dumazet <edumazet@google.com>
---
net/xfrm/xfrm_policy.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index ed38d5d..e09edfc 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1832,6 +1832,13 @@ static int xdst_queue_output(struct sk_buff *skb)
struct dst_entry *dst = skb_dst(skb);
struct xfrm_dst *xdst = (struct xfrm_dst *) dst;
struct xfrm_policy_queue *pq = &xdst->pols[0]->polq;
+ const struct sk_buff *fclone = skb + 1;
+
+ if (unlikely(skb->fclone == SKB_FCLONE_ORIG &&
+ fclone->fclone == SKB_FCLONE_CLONE)) {
+ kfree_skb(skb);
+ return 0;
+ }
if (pq->hold_queue.qlen > XFRM_MAX_QUEUE_LEN) {
kfree_skb(skb);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] net: esp{4,6}: remove padlen from struct esp_data
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
2013-11-01 7:50 ` [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches Steffen Klassert
2013-11-01 7:50 ` [PATCH 2/4] xfrm: Don't queue retransmitted packets if the original is still on the host Steffen Klassert
@ 2013-11-01 7:50 ` Steffen Klassert
2013-11-01 7:50 ` [PATCH 4/4] net: esp{4,6}: get rid of " Steffen Klassert
2013-11-02 6:14 ` pull request (net-next): ipsec-next 2013-11-01 David Miller
4 siblings, 0 replies; 8+ messages in thread
From: Steffen Klassert @ 2013-11-01 7:50 UTC (permalink / raw)
To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
From: Mathias Krause <mathias.krause@secunet.com>
The padlen member of struct esp_data is always zero. Get rid of it.
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
include/net/esp.h | 3 ---
net/ipv4/esp4.c | 9 +--------
net/ipv6/esp6.c | 9 +--------
3 files changed, 2 insertions(+), 19 deletions(-)
diff --git a/include/net/esp.h b/include/net/esp.h
index 1356dda..706b740 100644
--- a/include/net/esp.h
+++ b/include/net/esp.h
@@ -6,9 +6,6 @@
struct crypto_aead;
struct esp_data {
- /* 0..255 */
- int padlen;
-
/* Confidentiality & Integrity */
struct crypto_aead *aead;
};
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 109ee89..8b5386a 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -154,8 +154,6 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
}
blksize = ALIGN(crypto_aead_blocksize(aead), 4);
clen = ALIGN(skb->len + 2 + tfclen, blksize);
- if (esp->padlen)
- clen = ALIGN(clen, esp->padlen);
plen = clen - skb->len - tfclen;
err = skb_cow_data(skb, tfclen + plen + alen, &trailer);
@@ -461,7 +459,6 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
{
struct esp_data *esp = x->data;
u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- u32 align = max_t(u32, blksize, esp->padlen);
unsigned int net_adj;
switch (x->props.mode) {
@@ -477,7 +474,7 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
}
return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
- net_adj) & ~(align - 1)) + net_adj - 2;
+ net_adj) & ~(blksize - 1)) + net_adj - 2;
}
static void esp4_err(struct sk_buff *skb, u32 info)
@@ -659,8 +656,6 @@ static int esp_init_state(struct xfrm_state *x)
aead = esp->aead;
- esp->padlen = 0;
-
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
if (x->props.mode == XFRM_MODE_TUNNEL)
@@ -683,8 +678,6 @@ static int esp_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- if (esp->padlen)
- align = max_t(u32, align, esp->padlen);
x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
error:
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index d3618a7..0073cd0 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -181,8 +181,6 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
}
blksize = ALIGN(crypto_aead_blocksize(aead), 4);
clen = ALIGN(skb->len + 2 + tfclen, blksize);
- if (esp->padlen)
- clen = ALIGN(clen, esp->padlen);
plen = clen - skb->len - tfclen;
err = skb_cow_data(skb, tfclen + plen + alen, &trailer);
@@ -416,7 +414,6 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
{
struct esp_data *esp = x->data;
u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- u32 align = max_t(u32, blksize, esp->padlen);
unsigned int net_adj;
if (x->props.mode != XFRM_MODE_TUNNEL)
@@ -425,7 +422,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
net_adj = 0;
return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
- net_adj) & ~(align - 1)) + net_adj - 2;
+ net_adj) & ~(blksize - 1)) + net_adj - 2;
}
static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
@@ -606,8 +603,6 @@ static int esp6_init_state(struct xfrm_state *x)
aead = esp->aead;
- esp->padlen = 0;
-
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
switch (x->props.mode) {
@@ -626,8 +621,6 @@ static int esp6_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- if (esp->padlen)
- align = max_t(u32, align, esp->padlen);
x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
error:
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] net: esp{4,6}: get rid of struct esp_data
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
` (2 preceding siblings ...)
2013-11-01 7:50 ` [PATCH 3/4] net: esp{4,6}: remove padlen from struct esp_data Steffen Klassert
@ 2013-11-01 7:50 ` Steffen Klassert
2013-11-02 6:14 ` pull request (net-next): ipsec-next 2013-11-01 David Miller
4 siblings, 0 replies; 8+ messages in thread
From: Steffen Klassert @ 2013-11-01 7:50 UTC (permalink / raw)
To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
From: Mathias Krause <mathias.krause@secunet.com>
struct esp_data consists of a single pointer, vanishing the need for it
to be a structure. Fold the pointer into 'data' direcly, removing one
level of pointer indirection.
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
include/net/esp.h | 7 -------
net/ipv4/esp4.c | 40 ++++++++++++++--------------------------
net/ipv6/esp6.c | 39 ++++++++++++++-------------------------
3 files changed, 28 insertions(+), 58 deletions(-)
diff --git a/include/net/esp.h b/include/net/esp.h
index 706b740..c92213c 100644
--- a/include/net/esp.h
+++ b/include/net/esp.h
@@ -3,13 +3,6 @@
#include <linux/skbuff.h>
-struct crypto_aead;
-
-struct esp_data {
- /* Confidentiality & Integrity */
- struct crypto_aead *aead;
-};
-
void *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len);
struct ip_esp_hdr;
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 8b5386a..7785b28 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -121,7 +121,6 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
struct aead_givcrypt_request *req;
struct scatterlist *sg;
struct scatterlist *asg;
- struct esp_data *esp;
struct sk_buff *trailer;
void *tmp;
u8 *iv;
@@ -139,8 +138,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
/* skb is pure payload to encrypt */
- esp = x->data;
- aead = esp->aead;
+ aead = x->data;
alen = crypto_aead_authsize(aead);
tfclen = 0;
@@ -278,8 +276,7 @@ static int esp_input_done2(struct sk_buff *skb, int err)
{
const struct iphdr *iph;
struct xfrm_state *x = xfrm_input_state(skb);
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
int alen = crypto_aead_authsize(aead);
int hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead);
int elen = skb->len - hlen;
@@ -374,8 +371,7 @@ static void esp_input_done(struct crypto_async_request *base, int err)
static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
{
struct ip_esp_hdr *esph;
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
struct aead_request *req;
struct sk_buff *trailer;
int elen = skb->len - sizeof(*esph) - crypto_aead_ivsize(aead);
@@ -457,8 +453,8 @@ out:
static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
{
- struct esp_data *esp = x->data;
- u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
+ struct crypto_aead *aead = x->data;
+ u32 blksize = ALIGN(crypto_aead_blocksize(aead), 4);
unsigned int net_adj;
switch (x->props.mode) {
@@ -473,7 +469,7 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
BUG();
}
- return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
+ return ((mtu - x->props.header_len - crypto_aead_authsize(aead) -
net_adj) & ~(blksize - 1)) + net_adj - 2;
}
@@ -508,18 +504,16 @@ static void esp4_err(struct sk_buff *skb, u32 info)
static void esp_destroy(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
+ struct crypto_aead *aead = x->data;
- if (!esp)
+ if (!aead)
return;
- crypto_free_aead(esp->aead);
- kfree(esp);
+ crypto_free_aead(aead);
}
static int esp_init_aead(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
int err;
@@ -528,7 +522,7 @@ static int esp_init_aead(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
err = crypto_aead_setkey(aead, x->aead->alg_key,
(x->aead->alg_key_len + 7) / 8);
@@ -545,7 +539,6 @@ error:
static int esp_init_authenc(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
struct crypto_authenc_key_param *param;
struct rtattr *rta;
@@ -580,7 +573,7 @@ static int esp_init_authenc(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
keylen = (x->aalg ? (x->aalg->alg_key_len + 7) / 8 : 0) +
(x->ealg->alg_key_len + 7) / 8 + RTA_SPACE(sizeof(*param));
@@ -635,16 +628,11 @@ error:
static int esp_init_state(struct xfrm_state *x)
{
- struct esp_data *esp;
struct crypto_aead *aead;
u32 align;
int err;
- esp = kzalloc(sizeof(*esp), GFP_KERNEL);
- if (esp == NULL)
- return -ENOMEM;
-
- x->data = esp;
+ x->data = NULL;
if (x->aead)
err = esp_init_aead(x);
@@ -654,7 +642,7 @@ static int esp_init_state(struct xfrm_state *x)
if (err)
goto error;
- aead = esp->aead;
+ aead = x->data;
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
@@ -678,7 +666,7 @@ static int esp_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
+ x->props.trailer_len = align + 1 + crypto_aead_authsize(aead);
error:
return err;
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index 0073cd0..87eb79e 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -164,10 +164,9 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
u8 *iv;
u8 *tail;
__be32 *seqhi;
- struct esp_data *esp = x->data;
/* skb is pure payload to encrypt */
- aead = esp->aead;
+ aead = x->data;
alen = crypto_aead_authsize(aead);
tfclen = 0;
@@ -269,8 +268,7 @@ error:
static int esp_input_done2(struct sk_buff *skb, int err)
{
struct xfrm_state *x = xfrm_input_state(skb);
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
int alen = crypto_aead_authsize(aead);
int hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead);
int elen = skb->len - hlen;
@@ -323,8 +321,7 @@ static void esp_input_done(struct crypto_async_request *base, int err)
static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
{
struct ip_esp_hdr *esph;
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
struct aead_request *req;
struct sk_buff *trailer;
int elen = skb->len - sizeof(*esph) - crypto_aead_ivsize(aead);
@@ -412,8 +409,8 @@ out:
static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
{
- struct esp_data *esp = x->data;
- u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
+ struct crypto_aead *aead = x->data;
+ u32 blksize = ALIGN(crypto_aead_blocksize(aead), 4);
unsigned int net_adj;
if (x->props.mode != XFRM_MODE_TUNNEL)
@@ -421,7 +418,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
else
net_adj = 0;
- return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
+ return ((mtu - x->props.header_len - crypto_aead_authsize(aead) -
net_adj) & ~(blksize - 1)) + net_adj - 2;
}
@@ -452,18 +449,16 @@ static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
static void esp6_destroy(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
+ struct crypto_aead *aead = x->data;
- if (!esp)
+ if (!aead)
return;
- crypto_free_aead(esp->aead);
- kfree(esp);
+ crypto_free_aead(aead);
}
static int esp_init_aead(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
int err;
@@ -472,7 +467,7 @@ static int esp_init_aead(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
err = crypto_aead_setkey(aead, x->aead->alg_key,
(x->aead->alg_key_len + 7) / 8);
@@ -489,7 +484,6 @@ error:
static int esp_init_authenc(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
struct crypto_authenc_key_param *param;
struct rtattr *rta;
@@ -524,7 +518,7 @@ static int esp_init_authenc(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
keylen = (x->aalg ? (x->aalg->alg_key_len + 7) / 8 : 0) +
(x->ealg->alg_key_len + 7) / 8 + RTA_SPACE(sizeof(*param));
@@ -579,7 +573,6 @@ error:
static int esp6_init_state(struct xfrm_state *x)
{
- struct esp_data *esp;
struct crypto_aead *aead;
u32 align;
int err;
@@ -587,11 +580,7 @@ static int esp6_init_state(struct xfrm_state *x)
if (x->encap)
return -EINVAL;
- esp = kzalloc(sizeof(*esp), GFP_KERNEL);
- if (esp == NULL)
- return -ENOMEM;
-
- x->data = esp;
+ x->data = NULL;
if (x->aead)
err = esp_init_aead(x);
@@ -601,7 +590,7 @@ static int esp6_init_state(struct xfrm_state *x)
if (err)
goto error;
- aead = esp->aead;
+ aead = x->data;
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
@@ -621,7 +610,7 @@ static int esp6_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
+ x->props.trailer_len = align + 1 + crypto_aead_authsize(aead);
error:
return err;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches
2013-11-01 7:50 ` [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches Steffen Klassert
@ 2013-11-01 13:02 ` Sergei Shtylyov
2013-11-02 5:21 ` David Miller
0 siblings, 1 reply; 8+ messages in thread
From: Sergei Shtylyov @ 2013-11-01 13:02 UTC (permalink / raw)
To: Steffen Klassert, David Miller; +Cc: Herbert Xu, netdev
Hello.
On 01-11-2013 11:50, Steffen Klassert wrote:
> From: Eric Dumazet <edumazet@google.com>
> scratches are per cpu, we can use vmalloc_node() for proper
> NUMA affinity.
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
> ---
> net/xfrm/xfrm_ipcomp.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
> diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c
> index 2906d52..b943c7f 100644
> --- a/net/xfrm/xfrm_ipcomp.c
> +++ b/net/xfrm/xfrm_ipcomp.c
> @@ -220,8 +220,8 @@ static void ipcomp_free_scratches(void)
>
> static void * __percpu *ipcomp_alloc_scratches(void)
> {
> - int i;
> void * __percpu *scratches;
> + int i;
This collateral change is not described in the changelog.
WBR, Sergei
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches
2013-11-01 13:02 ` Sergei Shtylyov
@ 2013-11-02 5:21 ` David Miller
0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2013-11-02 5:21 UTC (permalink / raw)
To: sergei.shtylyov; +Cc: steffen.klassert, herbert, netdev
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date: Fri, 01 Nov 2013 17:02:51 +0400
>> @@ -220,8 +220,8 @@ static void ipcomp_free_scratches(void)
>>
>> static void * __percpu *ipcomp_alloc_scratches(void)
>> {
>> - int i;
>> void * __percpu *scratches;
>> + int i;
>
> This collateral change is not described in the changelog.
Yes, but I'm not going to block this series just for this.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: pull request (net-next): ipsec-next 2013-11-01
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
` (3 preceding siblings ...)
2013-11-01 7:50 ` [PATCH 4/4] net: esp{4,6}: get rid of " Steffen Klassert
@ 2013-11-02 6:14 ` David Miller
4 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2013-11-02 6:14 UTC (permalink / raw)
To: steffen.klassert; +Cc: herbert, netdev
From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Fri, 1 Nov 2013 08:50:53 +0100
> This pull request has a trivial merge conflict between git commit
> e7d8f6c ("xfrm: Add refcount handling to queued policies") and
> git commit 4d53eff ("xfrm: Don't queue retransmitted packets if
> the original is still on the host"). It can be solved as it is
> currently done in linux-next.
>
> 1) Use vmalloc_node for ipcomp percpu scratches to get proper
> NUMA affinity, from Eric Dumazet
>
> 2) Avoid to retransmit packets if the original packet is
> still in the xfrm hold queue.
>
> 3) Remove unused padlen field from struct esp_data.
> From Mathias Krause.
>
> 4) Remove struct esp_data because now it consists of a single
> pointer. From Mathias Krause.
>
> Please pull or let me know if there are problems.
Pulled, thanks a lot.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-11-02 6:14 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-01 7:50 pull request (net-next): ipsec-next 2013-11-01 Steffen Klassert
2013-11-01 7:50 ` [PATCH 1/4] xfrm: use vmalloc_node() for percpu scratches Steffen Klassert
2013-11-01 13:02 ` Sergei Shtylyov
2013-11-02 5:21 ` David Miller
2013-11-01 7:50 ` [PATCH 2/4] xfrm: Don't queue retransmitted packets if the original is still on the host Steffen Klassert
2013-11-01 7:50 ` [PATCH 3/4] net: esp{4,6}: remove padlen from struct esp_data Steffen Klassert
2013-11-01 7:50 ` [PATCH 4/4] net: esp{4,6}: get rid of " Steffen Klassert
2013-11-02 6:14 ` pull request (net-next): ipsec-next 2013-11-01 David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).