Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
Conflicts: net/xfrm/xfrm_policy.c Minor merge conflict in xfrm_policy.c, consisting of overlapping changes which were trivial to resolve. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -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;
|
||||
|
@@ -1844,6 +1844,13 @@ static int xdst_queue_output(struct sk_buff *skb)
|
||||
struct xfrm_dst *xdst = (struct xfrm_dst *) dst;
|
||||
struct xfrm_policy *pol = xdst->pols[0];
|
||||
struct xfrm_policy_queue *pq = &pol->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);
|
||||
|
Reference in New Issue
Block a user