Netdev List
 help / color / mirror / Atom feed
* [PATCH 11/20] netfilter: ipset: Use netlink callback dump args only
From: Pablo Neira Ayuso @ 2013-11-04 21:50 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383601842-4570-1-git-send-email-pablo@netfilter.org>

From: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>

Instead of cb->data, use callback dump args only and introduce symbolic
names instead of plain numbers at accessing the argument members.

Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 include/linux/netfilter/ipset/ip_set.h  |   10 +++++
 net/netfilter/ipset/ip_set_bitmap_gen.h |   11 ++---
 net/netfilter/ipset/ip_set_core.c       |   70 +++++++++++++++----------------
 net/netfilter/ipset/ip_set_hash_gen.h   |   20 +++++----
 net/netfilter/ipset/ip_set_list_set.c   |   11 ++---
 5 files changed, 68 insertions(+), 54 deletions(-)

diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h
index 7967516..c7174b8 100644
--- a/include/linux/netfilter/ipset/ip_set.h
+++ b/include/linux/netfilter/ipset/ip_set.h
@@ -316,6 +316,16 @@ ip_set_init_counter(struct ip_set_counter *counter,
 		atomic64_set(&(counter)->packets, (long long)(ext->packets));
 }
 
+/* Netlink CB args */
+enum {
+	IPSET_CB_NET = 0,
+	IPSET_CB_DUMP,
+	IPSET_CB_INDEX,
+	IPSET_CB_ARG0,
+	IPSET_CB_ARG1,
+	IPSET_CB_ARG2,
+};
+
 /* register and unregister set references */
 extern ip_set_id_t ip_set_get_byname(struct net *net,
 				     const char *name, struct ip_set **set);
diff --git a/net/netfilter/ipset/ip_set_bitmap_gen.h b/net/netfilter/ipset/ip_set_bitmap_gen.h
index a13e15b..f2c7d83 100644
--- a/net/netfilter/ipset/ip_set_bitmap_gen.h
+++ b/net/netfilter/ipset/ip_set_bitmap_gen.h
@@ -198,13 +198,14 @@ mtype_list(const struct ip_set *set,
 	struct mtype *map = set->data;
 	struct nlattr *adt, *nested;
 	void *x;
-	u32 id, first = cb->args[2];
+	u32 id, first = cb->args[IPSET_CB_ARG0];
 
 	adt = ipset_nest_start(skb, IPSET_ATTR_ADT);
 	if (!adt)
 		return -EMSGSIZE;
-	for (; cb->args[2] < map->elements; cb->args[2]++) {
-		id = cb->args[2];
+	for (; cb->args[IPSET_CB_ARG0] < map->elements;
+	     cb->args[IPSET_CB_ARG0]++) {
+		id = cb->args[IPSET_CB_ARG0];
 		x = get_ext(set, map, id);
 		if (!test_bit(id, map->members) ||
 		    (SET_WITH_TIMEOUT(set) &&
@@ -231,14 +232,14 @@ mtype_list(const struct ip_set *set,
 	ipset_nest_end(skb, adt);
 
 	/* Set listing finished */
-	cb->args[2] = 0;
+	cb->args[IPSET_CB_ARG0] = 0;
 
 	return 0;
 
 nla_put_failure:
 	nla_nest_cancel(skb, nested);
 	if (unlikely(id == first)) {
-		cb->args[2] = 0;
+		cb->args[IPSET_CB_ARG0] = 0;
 		return -EMSGSIZE;
 	}
 	ipset_nest_end(skb, adt);
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
index dc9284b..bac7e01 100644
--- a/net/netfilter/ipset/ip_set_core.c
+++ b/net/netfilter/ipset/ip_set_core.c
@@ -1182,10 +1182,12 @@ ip_set_swap(struct sock *ctnl, struct sk_buff *skb,
 static int
 ip_set_dump_done(struct netlink_callback *cb)
 {
-	struct ip_set_net *inst = (struct ip_set_net *)cb->data;
-	if (cb->args[2]) {
-		pr_debug("release set %s\n", nfnl_set(inst, cb->args[1])->name);
-		__ip_set_put_byindex(inst, (ip_set_id_t) cb->args[1]);
+	struct ip_set_net *inst = (struct ip_set_net *)cb->args[IPSET_CB_NET];
+	if (cb->args[IPSET_CB_ARG0]) {
+		pr_debug("release set %s\n",
+			 nfnl_set(inst, cb->args[IPSET_CB_INDEX])->name);
+		__ip_set_put_byindex(inst,
+			(ip_set_id_t) cb->args[IPSET_CB_INDEX]);
 	}
 	return 0;
 }
@@ -1203,7 +1205,7 @@ dump_attrs(struct nlmsghdr *nlh)
 }
 
 static int
-dump_init(struct netlink_callback *cb)
+dump_init(struct netlink_callback *cb, struct ip_set_net *inst)
 {
 	struct nlmsghdr *nlh = nlmsg_hdr(cb->skb);
 	int min_len = nlmsg_total_size(sizeof(struct nfgenmsg));
@@ -1211,15 +1213,15 @@ dump_init(struct netlink_callback *cb)
 	struct nlattr *attr = (void *)nlh + min_len;
 	u32 dump_type;
 	ip_set_id_t index;
-	struct ip_set_net *inst = (struct ip_set_net *)cb->data;
 
 	/* Second pass, so parser can't fail */
 	nla_parse(cda, IPSET_ATTR_CMD_MAX,
 		  attr, nlh->nlmsg_len - min_len, ip_set_setname_policy);
 
-	/* cb->args[0] : dump single set/all sets
-	 *         [1] : set index
-	 *         [..]: type specific
+	/* cb->args[IPSET_CB_NET]:	net namespace
+	 *         [IPSET_CB_DUMP]:	dump single set/all sets
+	 *         [IPSET_CB_INDEX]: 	set index
+	 *         [IPSET_CB_ARG0]:	type specific
 	 */
 
 	if (cda[IPSET_ATTR_SETNAME]) {
@@ -1231,7 +1233,7 @@ dump_init(struct netlink_callback *cb)
 			return -ENOENT;
 
 		dump_type = DUMP_ONE;
-		cb->args[1] = index;
+		cb->args[IPSET_CB_INDEX] = index;
 	} else
 		dump_type = DUMP_ALL;
 
@@ -1239,7 +1241,8 @@ dump_init(struct netlink_callback *cb)
 		u32 f = ip_set_get_h32(cda[IPSET_ATTR_FLAGS]);
 		dump_type |= (f << 16);
 	}
-	cb->args[0] = dump_type;
+	cb->args[IPSET_CB_NET] = (unsigned long)inst;
+	cb->args[IPSET_CB_DUMP] = dump_type;
 
 	return 0;
 }
@@ -1251,12 +1254,12 @@ ip_set_dump_start(struct sk_buff *skb, struct netlink_callback *cb)
 	struct ip_set *set = NULL;
 	struct nlmsghdr *nlh = NULL;
 	unsigned int flags = NETLINK_CB(cb->skb).portid ? NLM_F_MULTI : 0;
+	struct ip_set_net *inst = ip_set_pernet(sock_net(skb->sk));
 	u32 dump_type, dump_flags;
 	int ret = 0;
-	struct ip_set_net *inst = (struct ip_set_net *)cb->data;
 
-	if (!cb->args[0]) {
-		ret = dump_init(cb);
+	if (!cb->args[IPSET_CB_DUMP]) {
+		ret = dump_init(cb, inst);
 		if (ret < 0) {
 			nlh = nlmsg_hdr(cb->skb);
 			/* We have to create and send the error message
@@ -1267,17 +1270,18 @@ ip_set_dump_start(struct sk_buff *skb, struct netlink_callback *cb)
 		}
 	}
 
-	if (cb->args[1] >= inst->ip_set_max)
+	if (cb->args[IPSET_CB_INDEX] >= inst->ip_set_max)
 		goto out;
 
-	dump_type = DUMP_TYPE(cb->args[0]);
-	dump_flags = DUMP_FLAGS(cb->args[0]);
-	max = dump_type == DUMP_ONE ? cb->args[1] + 1 : inst->ip_set_max;
+	dump_type = DUMP_TYPE(cb->args[IPSET_CB_DUMP]);
+	dump_flags = DUMP_FLAGS(cb->args[IPSET_CB_DUMP]);
+	max = dump_type == DUMP_ONE ? cb->args[IPSET_CB_INDEX] + 1
+				    : inst->ip_set_max;
 dump_last:
-	pr_debug("args[0]: %u %u args[1]: %ld\n",
-		 dump_type, dump_flags, cb->args[1]);
-	for (; cb->args[1] < max; cb->args[1]++) {
-		index = (ip_set_id_t) cb->args[1];
+	pr_debug("dump type, flag: %u %u index: %ld\n",
+		 dump_type, dump_flags, cb->args[IPSET_CB_INDEX]);
+	for (; cb->args[IPSET_CB_INDEX] < max; cb->args[IPSET_CB_INDEX]++) {
+		index = (ip_set_id_t) cb->args[IPSET_CB_INDEX];
 		set = nfnl_set(inst, index);
 		if (set == NULL) {
 			if (dump_type == DUMP_ONE) {
@@ -1294,7 +1298,7 @@ dump_last:
 		     !!(set->type->features & IPSET_DUMP_LAST)))
 			continue;
 		pr_debug("List set: %s\n", set->name);
-		if (!cb->args[2]) {
+		if (!cb->args[IPSET_CB_ARG0]) {
 			/* Start listing: make sure set won't be destroyed */
 			pr_debug("reference set\n");
 			__ip_set_get(set);
@@ -1311,7 +1315,7 @@ dump_last:
 			goto nla_put_failure;
 		if (dump_flags & IPSET_FLAG_LIST_SETNAME)
 			goto next_set;
-		switch (cb->args[2]) {
+		switch (cb->args[IPSET_CB_ARG0]) {
 		case 0:
 			/* Core header data */
 			if (nla_put_string(skb, IPSET_ATTR_TYPENAME,
@@ -1331,7 +1335,7 @@ dump_last:
 			read_lock_bh(&set->lock);
 			ret = set->variant->list(set, skb, cb);
 			read_unlock_bh(&set->lock);
-			if (!cb->args[2])
+			if (!cb->args[IPSET_CB_ARG0])
 				/* Set is done, proceed with next one */
 				goto next_set;
 			goto release_refcount;
@@ -1340,8 +1344,8 @@ dump_last:
 	/* If we dump all sets, continue with dumping last ones */
 	if (dump_type == DUMP_ALL) {
 		dump_type = DUMP_LAST;
-		cb->args[0] = dump_type | (dump_flags << 16);
-		cb->args[1] = 0;
+		cb->args[IPSET_CB_DUMP] = dump_type | (dump_flags << 16);
+		cb->args[IPSET_CB_INDEX] = 0;
 		goto dump_last;
 	}
 	goto out;
@@ -1350,15 +1354,15 @@ nla_put_failure:
 	ret = -EFAULT;
 next_set:
 	if (dump_type == DUMP_ONE)
-		cb->args[1] = IPSET_INVALID_ID;
+		cb->args[IPSET_CB_INDEX] = IPSET_INVALID_ID;
 	else
-		cb->args[1]++;
+		cb->args[IPSET_CB_INDEX]++;
 release_refcount:
 	/* If there was an error or set is done, release set */
-	if (ret || !cb->args[2]) {
+	if (ret || !cb->args[IPSET_CB_ARG0]) {
 		pr_debug("release set %s\n", nfnl_set(inst, index)->name);
 		__ip_set_put_byindex(inst, index);
-		cb->args[2] = 0;
+		cb->args[IPSET_CB_ARG0] = 0;
 	}
 out:
 	if (nlh) {
@@ -1375,8 +1379,6 @@ ip_set_dump(struct sock *ctnl, struct sk_buff *skb,
 	    const struct nlmsghdr *nlh,
 	    const struct nlattr * const attr[])
 {
-	struct ip_set_net *inst = ip_set_pernet(sock_net(ctnl));
-
 	if (unlikely(protocol_failed(attr)))
 		return -IPSET_ERR_PROTOCOL;
 
@@ -1384,7 +1386,6 @@ ip_set_dump(struct sock *ctnl, struct sk_buff *skb,
 		struct netlink_dump_control c = {
 			.dump = ip_set_dump_start,
 			.done = ip_set_dump_done,
-			.data = (void *)inst
 		};
 		return netlink_dump_start(ctnl, skb, nlh, &c);
 	}
@@ -1961,7 +1962,6 @@ static int __net_init
 ip_set_net_init(struct net *net)
 {
 	struct ip_set_net *inst = ip_set_pernet(net);
-
 	struct ip_set **list;
 
 	inst->ip_set_max = max_sets ? max_sets : CONFIG_IP_SET_MAX;
diff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h
index 6a80dbd..2f80c74 100644
--- a/net/netfilter/ipset/ip_set_hash_gen.h
+++ b/net/netfilter/ipset/ip_set_hash_gen.h
@@ -931,7 +931,7 @@ mtype_list(const struct ip_set *set,
 	struct nlattr *atd, *nested;
 	const struct hbucket *n;
 	const struct mtype_elem *e;
-	u32 first = cb->args[2];
+	u32 first = cb->args[IPSET_CB_ARG0];
 	/* We assume that one hash bucket fills into one page */
 	void *incomplete;
 	int i;
@@ -940,20 +940,22 @@ mtype_list(const struct ip_set *set,
 	if (!atd)
 		return -EMSGSIZE;
 	pr_debug("list hash set %s\n", set->name);
-	for (; cb->args[2] < jhash_size(t->htable_bits); cb->args[2]++) {
+	for (; cb->args[IPSET_CB_ARG0] < jhash_size(t->htable_bits);
+	     cb->args[IPSET_CB_ARG0]++) {
 		incomplete = skb_tail_pointer(skb);
-		n = hbucket(t, cb->args[2]);
-		pr_debug("cb->args[2]: %lu, t %p n %p\n", cb->args[2], t, n);
+		n = hbucket(t, cb->args[IPSET_CB_ARG0]);
+		pr_debug("cb->arg bucket: %lu, t %p n %p\n",
+			 cb->args[IPSET_CB_ARG0], t, n);
 		for (i = 0; i < n->pos; i++) {
 			e = ahash_data(n, i, set->dsize);
 			if (SET_WITH_TIMEOUT(set) &&
 			    ip_set_timeout_expired(ext_timeout(e, set)))
 				continue;
 			pr_debug("list hash %lu hbucket %p i %u, data %p\n",
-				 cb->args[2], n, i, e);
+				 cb->args[IPSET_CB_ARG0], n, i, e);
 			nested = ipset_nest_start(skb, IPSET_ATTR_DATA);
 			if (!nested) {
-				if (cb->args[2] == first) {
+				if (cb->args[IPSET_CB_ARG0] == first) {
 					nla_nest_cancel(skb, atd);
 					return -EMSGSIZE;
 				} else
@@ -968,16 +970,16 @@ mtype_list(const struct ip_set *set,
 	}
 	ipset_nest_end(skb, atd);
 	/* Set listing finished */
-	cb->args[2] = 0;
+	cb->args[IPSET_CB_ARG0] = 0;
 
 	return 0;
 
 nla_put_failure:
 	nlmsg_trim(skb, incomplete);
-	if (unlikely(first == cb->args[2])) {
+	if (unlikely(first == cb->args[IPSET_CB_ARG0])) {
 		pr_warning("Can't list set %s: one bucket does not fit into "
 			   "a message. Please report it!\n", set->name);
-		cb->args[2] = 0;
+		cb->args[IPSET_CB_ARG0] = 0;
 		return -EMSGSIZE;
 	}
 	ipset_nest_end(skb, atd);
diff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c
index ec6f6d1..3e2317f 100644
--- a/net/netfilter/ipset/ip_set_list_set.c
+++ b/net/netfilter/ipset/ip_set_list_set.c
@@ -490,14 +490,15 @@ list_set_list(const struct ip_set *set,
 {
 	const struct list_set *map = set->data;
 	struct nlattr *atd, *nested;
-	u32 i, first = cb->args[2];
+	u32 i, first = cb->args[IPSET_CB_ARG0];
 	const struct set_elem *e;
 
 	atd = ipset_nest_start(skb, IPSET_ATTR_ADT);
 	if (!atd)
 		return -EMSGSIZE;
-	for (; cb->args[2] < map->size; cb->args[2]++) {
-		i = cb->args[2];
+	for (; cb->args[IPSET_CB_ARG0] < map->size;
+	     cb->args[IPSET_CB_ARG0]++) {
+		i = cb->args[IPSET_CB_ARG0];
 		e = list_set_elem(set, map, i);
 		if (e->id == IPSET_INVALID_ID)
 			goto finish;
@@ -522,13 +523,13 @@ list_set_list(const struct ip_set *set,
 finish:
 	ipset_nest_end(skb, atd);
 	/* Set listing finished */
-	cb->args[2] = 0;
+	cb->args[IPSET_CB_ARG0] = 0;
 	return 0;
 
 nla_put_failure:
 	nla_nest_cancel(skb, nested);
 	if (unlikely(i == first)) {
-		cb->args[2] = 0;
+		cb->args[IPSET_CB_ARG0] = 0;
 		return -EMSGSIZE;
 	}
 	ipset_nest_end(skb, atd);
-- 
1.7.10.4

^ permalink raw reply related

* Re: [PATCH v6] net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)
From: Joe Perches @ 2013-11-04 22:03 UTC (permalink / raw)
  To: Arvid Brodin
  Cc: netdev@vger.kernel.org, David Miller, Stephen Hemminger,
	Javier Boticario, balferreira@googlemail.com,
	Elías Molina Muñoz
In-Reply-To: <5277F6D6.9040807@xdin.com>

On Mon, 2013-11-04 at 20:34 +0100, Arvid Brodin wrote:
> On 2013-10-30 21:15, Joe Perches wrote:
> > On Wed, 2013-10-30 at 21:10 +0100, Arvid Brodin wrote:
> >> High-availability Seamless Redundancy ("HSR") provides instant failover
> >> redundancy for Ethernet networks. It requires a special network topology where
> >> all nodes are connected in a ring (each node having two physical network
> >> interfaces). It is suited for applications that demand high availability and
> >> very short reaction time.
> > 
> > Thanks Arvid.  Maybe add a MAINTAINERS entry too?
> 
> Something like this?

Yes, with a nit below:

>  S:     Maintained
>  F:     drivers/net/usb/hso.c
>  
> +HSR NETWORK PROTOCOL
> +M:     Arvid Brodin <arvid.brodin@xdin.com>
> +L:     netdev@vger.kernel.org
> +S:     Maintained
> +F:     net/hsr/*

Using
F:	net/hsr/

will allow any subdirectories to also be under
the same "Maintained" block.

> This would indicate that people should CC me when they send patches or find bugs, 
> and that I should review the patch within a couple of weeks and get back to the
> sender and the list with my comments, right? Just making sure I understand what 
> would be expected of me.
> 
> And where should the MAINTAINERS patch go - to netdev or to lkml?

I think netdev with lkml cc'd.

^ permalink raw reply

* [PATCH 2/5] netfilter: nft_nat: Fix endianness issue reported by sparse
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

From: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>

This patch fixes this:

CHECK   net/netfilter/nft_nat.c
net/netfilter/nft_nat.c:50:43: warning: incorrect type in assignment (different base types)
net/netfilter/nft_nat.c:50:43:    expected restricted __be32 [addressable] [usertype] ip
net/netfilter/nft_nat.c:50:43:    got unsigned int [unsigned] [usertype] <noident>
net/netfilter/nft_nat.c:51:43: warning: incorrect type in assignment (different base types)
net/netfilter/nft_nat.c:51:43:    expected restricted __be32 [addressable] [usertype] ip
net/netfilter/nft_nat.c:51:43:    got unsigned int [unsigned] [usertype] <noident>
net/netfilter/nft_nat.c:65:37: warning: incorrect type in assignment (different base types)
net/netfilter/nft_nat.c:65:37:    expected restricted __be16 [addressable] [assigned] [usertype] all
net/netfilter/nft_nat.c:65:37:    got unsigned int [unsigned] <noident>
net/netfilter/nft_nat.c:66:37: warning: incorrect type in assignment (different base types)
net/netfilter/nft_nat.c:66:37:    expected restricted __be16 [addressable] [assigned] [usertype] all
net/netfilter/nft_nat.c:66:37:    got unsigned int [unsigned] <noident>

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/netfilter/nft_nat.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/net/netfilter/nft_nat.c b/net/netfilter/nft_nat.c
index b0b87b2..d3b1ffe 100644
--- a/net/netfilter/nft_nat.c
+++ b/net/netfilter/nft_nat.c
@@ -47,8 +47,10 @@ static void nft_nat_eval(const struct nft_expr *expr,
 	memset(&range, 0, sizeof(range));
 	if (priv->sreg_addr_min) {
 		if (priv->family == AF_INET) {
-			range.min_addr.ip = data[priv->sreg_addr_min].data[0];
-			range.max_addr.ip = data[priv->sreg_addr_max].data[0];
+			range.min_addr.ip = (__force __be32)
+					data[priv->sreg_addr_min].data[0];
+			range.max_addr.ip = (__force __be32)
+					data[priv->sreg_addr_max].data[0];
 
 		} else {
 			memcpy(range.min_addr.ip6,
@@ -62,8 +64,10 @@ static void nft_nat_eval(const struct nft_expr *expr,
 	}
 
 	if (priv->sreg_proto_min) {
-		range.min_proto.all = data[priv->sreg_proto_min].data[0];
-		range.max_proto.all = data[priv->sreg_proto_max].data[0];
+		range.min_proto.all = (__force __be16)
+					data[priv->sreg_proto_min].data[0];
+		range.max_proto.all = (__force __be16)
+					data[priv->sreg_proto_max].data[0];
 		range.flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
 	}
 
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 3/5] netfilter: bridge: nf_tables: add filter chain type
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

This patch adds the filter chain type which is required to
create filter chains in the bridge family from userspace.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/bridge/netfilter/nf_tables_bridge.c |   41 +++++++++++++++++++++++++++++--
 1 file changed, 39 insertions(+), 2 deletions(-)

diff --git a/net/bridge/netfilter/nf_tables_bridge.c b/net/bridge/netfilter/nf_tables_bridge.c
index e8cb016..cf54b22 100644
--- a/net/bridge/netfilter/nf_tables_bridge.c
+++ b/net/bridge/netfilter/nf_tables_bridge.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2008 Patrick McHardy <kaber@trash.net>
+ * Copyright (c) 2013 Pablo Neira Ayuso <pablo@netfilter.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -47,14 +48,50 @@ static struct pernet_operations nf_tables_bridge_net_ops = {
 	.exit	= nf_tables_bridge_exit_net,
 };
 
+static unsigned int
+nft_do_chain_bridge(const struct nf_hook_ops *ops,
+		    struct sk_buff *skb,
+		    const struct net_device *in,
+		    const struct net_device *out,
+		    int (*okfn)(struct sk_buff *))
+{
+	struct nft_pktinfo pkt;
+
+	nft_set_pktinfo(&pkt, ops, skb, in, out);
+
+	return nft_do_chain_pktinfo(&pkt, ops);
+}
+
+static struct nf_chain_type filter_bridge = {
+	.family		= NFPROTO_BRIDGE,
+	.name		= "filter",
+	.type		= NFT_CHAIN_T_DEFAULT,
+	.hook_mask	= (1 << NF_BR_LOCAL_IN) |
+			  (1 << NF_BR_FORWARD) |
+			  (1 << NF_BR_LOCAL_OUT),
+	.fn		= {
+		[NF_BR_LOCAL_IN]	= nft_do_chain_bridge,
+		[NF_BR_FORWARD]		= nft_do_chain_bridge,
+		[NF_BR_LOCAL_OUT]	= nft_do_chain_bridge,
+	},
+};
+
 static int __init nf_tables_bridge_init(void)
 {
-	return register_pernet_subsys(&nf_tables_bridge_net_ops);
+	int ret;
+
+	nft_register_chain_type(&filter_bridge);
+	ret = register_pernet_subsys(&nf_tables_bridge_net_ops);
+	if (ret < 0)
+		nft_unregister_chain_type(&filter_bridge);
+
+	return ret;
 }
 
 static void __exit nf_tables_bridge_exit(void)
 {
-	return unregister_pernet_subsys(&nf_tables_bridge_net_ops);
+	unregister_pernet_subsys(&nf_tables_bridge_net_ops);
+	nft_unregister_chain_type(&filter_bridge);
 }
 
 module_init(nf_tables_bridge_init);
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 4/5] netfilter: nf_tables: remove duplicated include from nf_tables_ipv4.c
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

Remove duplicated include.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/ipv4/netfilter/nf_tables_ipv4.c |    1 -
 1 file changed, 1 deletion(-)

diff --git a/net/ipv4/netfilter/nf_tables_ipv4.c b/net/ipv4/netfilter/nf_tables_ipv4.c
index 8f7536b..0f4cbfe 100644
--- a/net/ipv4/netfilter/nf_tables_ipv4.c
+++ b/net/ipv4/netfilter/nf_tables_ipv4.c
@@ -16,7 +16,6 @@
 #include <net/netfilter/nf_tables.h>
 #include <net/net_namespace.h>
 #include <net/ip.h>
-#include <net/net_namespace.h>
 #include <net/netfilter/nf_tables_ipv4.h>
 
 static unsigned int nft_ipv4_output(const struct nf_hook_ops *ops,
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 0/5] nf_tables updates for net-next
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev

Hi David,

This batch contains fives nf_tables patches for your net-next tree,
they are:

* Fix possible use after free in the module removal path of the
  x_tables compatibility layer, from Dan Carpenter.

* Add filter chain type for the bridge family, from myself.

* Fix Kconfig dependencies of the nf_tables bridge family with
  the core, from myself.

* Fix sparse warnings in nft_nat, from Tomasz Bursztyka.

* Remove duplicated include in the IPv4 family support for nf_tables,
  from Wei Yongjun.

You can pull these changes from:

  git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nftables.git master

Thanks!

----------------------------------------------------------------

The following changes since commit a5bb202b848c7962f942f81d93290a9ccdfb1a0f:

  netdev: inet_timewait_sock.h missing semi-colon when KMEMCHECK is enabled (2013-10-17 15:56:53 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nftables.git master

for you to fetch changes up to c359c4157cf0d852387aff2f2d83fef039aadc2c:

  netfilter: nft_compat: use _safe version of list_for_each (2013-11-04 22:58:30 +0100)

----------------------------------------------------------------
Dan Carpenter (1):
      netfilter: nft_compat: use _safe version of list_for_each

Pablo Neira Ayuso (2):
      netfilter: bridge: fix nf_tables bridge dependencies with main core
      netfilter: bridge: nf_tables: add filter chain type

Tomasz Bursztyka (1):
      netfilter: nft_nat: Fix endianness issue reported by sparse

Wei Yongjun (1):
      netfilter: nf_tables: remove duplicated include from nf_tables_ipv4.c

 net/bridge/netfilter/Kconfig            |    1 +
 net/bridge/netfilter/nf_tables_bridge.c |   41 +++++++++++++++++++++++++++++--
 net/ipv4/netfilter/nf_tables_ipv4.c     |    1 -
 net/netfilter/nft_compat.c              |    8 +++---
 net/netfilter/nft_nat.c                 |   12 ++++++---
 5 files changed, 52 insertions(+), 11 deletions(-)

^ permalink raw reply

* [PATCH 1/5] netfilter: bridge: fix nf_tables bridge dependencies with main core
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

when CONFIG_NF_TABLES[_MODULE] is not enabled,
but CONFIG_NF_TABLES_BRIDGE is enabled:

net/bridge/netfilter/nf_tables_bridge.c: In function 'nf_tables_bridge_init_net':
net/bridge/netfilter/nf_tables_bridge.c:24:5: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c:25:9: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c:28:2: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c:30:34: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c:35:11: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c: In function 'nf_tables_bridge_exit_net':
net/bridge/netfilter/nf_tables_bridge.c:41:27: error: 'struct net' has no member named 'nft'
net/bridge/netfilter/nf_tables_bridge.c:42:11: error: 'struct net' has no member named 'nft'

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/bridge/netfilter/Kconfig |    1 +
 1 file changed, 1 insertion(+)

diff --git a/net/bridge/netfilter/Kconfig b/net/bridge/netfilter/Kconfig
index 68f8128..5ca74a0 100644
--- a/net/bridge/netfilter/Kconfig
+++ b/net/bridge/netfilter/Kconfig
@@ -3,6 +3,7 @@
 #
 #
 config NF_TABLES_BRIDGE
+	depends on NF_TABLES
 	tristate "Ethernet Bridge nf_tables support"
 
 menuconfig BRIDGE_NF_EBTABLES
-- 
1.7.10.4

^ permalink raw reply related

* [PATCH 5/5] netfilter: nft_compat: use _safe version of list_for_each
From: Pablo Neira Ayuso @ 2013-11-04 22:05 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

From: Dan Carpenter <dan.carpenter@oracle.com>

We need to use the _safe version of list_for_each_entry() here otherwise
we have a use after free bug.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/netfilter/nft_compat.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
index 4811f76..a82667c 100644
--- a/net/netfilter/nft_compat.c
+++ b/net/netfilter/nft_compat.c
@@ -634,9 +634,9 @@ nft_match_select_ops(const struct nft_ctx *ctx,
 
 static void nft_match_release(void)
 {
-	struct nft_xt *nft_match;
+	struct nft_xt *nft_match, *tmp;
 
-	list_for_each_entry(nft_match, &nft_match_list, head)
+	list_for_each_entry_safe(nft_match, tmp, &nft_match_list, head)
 		kfree(nft_match);
 }
 
@@ -705,9 +705,9 @@ nft_target_select_ops(const struct nft_ctx *ctx,
 
 static void nft_target_release(void)
 {
-	struct nft_xt *nft_target;
+	struct nft_xt *nft_target, *tmp;
 
-	list_for_each_entry(nft_target, &nft_target_list, head)
+	list_for_each_entry_safe(nft_target, tmp, &nft_target_list, head)
 		kfree(nft_target);
 }
 
-- 
1.7.10.4

^ permalink raw reply related

* [patch v2] mlx5_core: delete some dead code
From: Dan Carpenter @ 2013-11-04 22:20 UTC (permalink / raw)
  To: Eli Cohen
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA, linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20131103070326.GA3051@mtldesk30>

The printk() looks like it is left over debug code.  I have removed it.

Signed-off-by: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
---
v2:  Remove the printk instead of moving it infront of the return.

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
index ba816c2..9b79067 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
@@ -192,10 +192,8 @@ static int alloc_4k(struct mlx5_core_dev *dev, u64 *addr)
 	struct fw_page *fp;
 	unsigned n;
 
-	if (list_empty(&dev->priv.free_list)) {
+	if (list_empty(&dev->priv.free_list))
 		return -ENOMEM;
-		mlx5_core_warn(dev, "\n");
-	}
 
 	fp = list_entry(dev->priv.free_list.next, struct fw_page, list);
 	n = find_first_bit(&fp->bitmask, 8 * sizeof(fp->bitmask));
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related

* Re: Bluetooth 6LoWPAN and routing
From: Alexander Aring @ 2013-11-04 22:53 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: Jukka Rissanen, netdev
In-Reply-To: <CAKT1EBeHs4T3YiFvze2RBbM537pXEj03gTcnCMEZprdBz882hg@mail.gmail.com>

On Mon, Nov 04, 2013 at 07:46:06PM -0200, Claudio Takahasi wrote:
> Hi Jukka,
> 
> On Thu, Oct 24, 2013 at 9:48 AM, Jukka Rissanen
> <jukka.rissanen@linux.intel.com> wrote:
> > Hi Alexander,
> >
> >
> > On 24.10.2013 15:25, Alexander Aring wrote:
> >>
> >> Hi Jukka,
> >>
> >> On Thu, Oct 24, 2013 at 09:45:40AM +0300, Jukka Rissanen wrote:
> >>>
> >>> Hi,
> >>>
> >>> I have been prototyping with BT 6LoWPAN support (using this draft
> >>> http://tools.ietf.org/html/draft-ietf-6lowpan-btle-12 as a
> >>> reference). I sent first version yesterday to linux-bluetooth ml
> >>> http://thread.gmane.org/gmane.linux.bluez.kernel/39394
> >>>
> >> I see you take many code from the 6lowpan ieee802154 implementation.
> >> (Just notice you drop the original authors from there)
> >
> >
> > Hmm, those got dropped, I am sorry about that. I will add the original
> > authors information of course.
> >
> >
> >>
> >> I have a couple of patches to fix a lot of bugs in the current 6LoWPAN
> >> ieee802154 implementation.
> >>
> >> Some bugs which I found:
> >>
> >>    - Fix race conditions in fragmentation handling
> >>    - Fix UDP compression/uncompressionm, which is completly broken
> >>    - Fragmentation handling isn't rfc4944 compatible
> >>
> >> And some other improvements. I see your rfc has the same issues (e.g.
> >> fragmentation race conditions).
> >>
> >> Currently I preparing these patches for mainlining.
> >
> >
> > Excellent news!
> 
> 
> Is it necessary to implement 6loWPAN fragmentation/reassembling? For
> Bluetooth, I thought L2CAP FAR (Fragmentation and Reassembling) could
> handle the transfer of IPv6 packets that doesn't fit in one single
> BTLE PDU.
> What am I missing here?
>
mhh, I look a little bit deeper in the 6LoWPAN bluetooth draft and indeed
it can be handled via L2CAP FAR. I saw the fragmentation struct in the
rfc implementation(struct lowpan_fragment) but it isn't used in any case
so Jukka can drop this from the rfc implementation. Sorry about that.

But I don't see udp compression/uncompression in Jukka's rfc
implementation. But this is a part of rfc 6282 which should blte 6LoWPAN
should use?

So the 6LoWPAN fragmentation thing (rfc4944) is only ieee802154 specific.

- Alex

^ permalink raw reply

* Re: [PATCH net-next] ipv4: introduce new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE
From: Hannes Frederic Sowa @ 2013-11-04 23:25 UTC (permalink / raw)
  To: David Miller, netdev, fweimer
In-Reply-To: <20131031094226.GB17210@order.stressinduktion.org>

Hi David!

On Thu, Oct 31, 2013 at 10:42:26AM +0100, Hannes Frederic Sowa wrote:
> On Thu, Oct 31, 2013 at 12:29:11AM -0400, David Miller wrote:
> > From: Hannes Frederic Sowa <hannes@stressinduktion.org>
> > Date: Wed, 30 Oct 2013 23:58:51 +0100
> > 
> > > DNS resolver can fallback to TCP for querying where we can honour the
> > > path MTU because it won't do any harm and ensures connectivity.
> > > 
> > > Also for TCP the socket is matched on the whole 4-tuple and we may
> > > fallback to a 2-tuple lookup on unconnected UDP sockets. The new socket
> > > option would let an application programmer choose to do path mtu discovery
> > > because it knows it will only use a connected socket. On unconnected
> > > sockets one can specify IP_PMTUDISC_INTERFACE to suppress the path MTU
> > > updates and always use the interface MTU without the DF-bit set.
> > 
> > This still sounds like a route scope policy with two binary states,
> > one for connected sockets and one for unconnected ones.
> 
> Orthogonally a user may want to decide per protocol. Path MTU discovery
> may happen on protocols where I have protection against fragment poisoning
> because of the TCP 3-WHS and want to drop path mtu discovery information
> on simple UDP request-response protocols even if they are used in
> connected state (this is the specific case I want to protect in DNS).
> 
> Do we accept path MTU information if we just send a spoofed TCP SYN
> request and then just fire a spoofed ICMP path mtu packet afterwards? I
> guess (I really have not checked), yes. If the UDP stack would use this
> information we again generate fragments and are vulnerable to UDP based
> cache poisoning attacks. So when can we really say we can match and
> trust the full socket ID?
> 
> Please note, dropping the path MTU on those sockets is merely an
> optimization.  All I care about is that we don't fragment packets locally
> and have the possibility to not set the DF-bit (so IP_PMTUDISC_PROBE
> without DF). I could very well remove the ip_sk_accept_pmtu logic from
> the patch.
> 
> I still think this patch is the reasonable way to solve this problem. If
> you still think it should be on a per-route basis I will look down on
> how this can be achieved but would focus on multiplexing the MTU per
> protocol somehow.

Sorry for being so pushy about this patch! :|

I did a proof of concept of a per-route setting to suppress local
datagram fragmentation. It does work and would solve the problem. I did
not find a clean way to deal with sockets already using IP_MTU_DISCOVER,
so I just overwrite the setting and fallback to the safe mode and don't
allow local fragmentation (but I don't touch the DF-flag). This could have
implications to applications which already set a policy for their sockets
and expect a certain behaviour (e.g. traceroute in some circumstances). I
don't like the approach, but I would like to see this problem solved. If
you would accept this patch I would retest and do a clean submission
(with the iproute2 bits) then. UI currently looks like this:

# ip r change default via 10.0.0.254 dgram_dont_local_frag 1

After all, I still think this should be a per-application/per-socket
setting because the application must deal with the fact that no local
fragmentation is possible so it has to be more sensitive to EMSGSIZE
errors. DNS has to negotiate the UDP buffer size with its peers already
(with the help of EDNS), so there is already logic to deal with the
size of fragments and so it should not be done transparently IMHO.

With the per-route setting DNS implementations can work around this by
querying the IP_MTU or handle the socket errors but I don't know about
other UDP applications on the same host. Everything is ok as long as
the DNS server is the only application on that system.

This is not the same as e.g. TCP_QUICKACK which can transparently be
dealt with by applications and thus makes sense to be a per-route
setting. Applications will see different behaviour when using
dgram_dont_frag. This really is no tuning parameter.

I also tried per-protocol path MTUs and abandoned the patch earlier
today. It got too complex and had problems with how to emulate a common
mtu for old iproutes.

Also, I would be happy to support this patch and the per-socket approach.

I would love to hear your feedback.

diff --git a/include/net/route.h b/include/net/route.h
index dd4ae00..3f6b04b 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -313,12 +313,23 @@ static inline int ip4_dst_hoplimit(const struct dst_entry *dst)
 	return hoplimit;
 }
 
+static inline bool ip_dgram_local_fragment(const struct dst_entry *dst,
+				      const struct sock *sk)
+{
+	if (sk->sk_protocol == IPPROTO_UDP &&
+	    dst_metric(dst, RTAX_DGRAM_DONT_LOCAL_FRAG))
+		return false;
+	return true;
+}
+
 static inline int ip_skb_dst_mtu(struct sk_buff *skb)
 {
 	struct inet_sock *inet = skb->sk ? inet_sk(skb->sk) : NULL;
+	struct dst_entry *dst = skb_dst(skb);
 
-	return (inet && inet->pmtudisc == IP_PMTUDISC_PROBE) ?
-	       skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb));
+	return (inet && (inet->pmtudisc == IP_PMTUDISC_PROBE ||
+			 !ip_dgram_local_fragment(dst, skb->sk))) ?
+	       dst->dev->mtu : dst_mtu(dst);
 }
 
 #endif	/* _ROUTE_H */
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index eb0f1a5..2e450f3 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -388,6 +388,8 @@ enum {
 #define RTAX_INITRWND RTAX_INITRWND
 	RTAX_QUICKACK,
 #define RTAX_QUICKACK RTAX_QUICKACK
+	RTAX_DGRAM_DONT_LOCAL_FRAG,
+#define RTAX_DGRAM_DONT_LOCAL_FRAG RTAX_DGRAM_DONT_LOCAL_FRAG
 	__RTAX_MAX
 };
 
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 51be64e..661c618 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -823,7 +823,8 @@ static int __ip_append_data(struct sock *sk,
 
 	fragheaderlen = sizeof(struct iphdr) + (opt ? opt->optlen : 0);
 	maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen;
-	maxnonfragsize = (inet->pmtudisc >= IP_PMTUDISC_DO) ?
+	maxnonfragsize = ((inet->pmtudisc >= IP_PMTUDISC_DO) ||
+			  !ip_dgram_local_fragment(&rt->dst, sk)) ?
 			 mtu : 0xFFFF;
 
 	if (cork->length + length > maxnonfragsize - fragheaderlen) {
@@ -1063,7 +1064,8 @@ static int ip_setup_cork(struct sock *sk, struct inet_cork *cork,
 	 * We steal reference to this route, caller should not release it
 	 */
 	*rtp = NULL;
-	cork->fragsize = inet->pmtudisc == IP_PMTUDISC_PROBE ?
+	cork->fragsize = ((inet->pmtudisc == IP_PMTUDISC_PROBE) ||
+			  !ip_dgram_local_fragment(&rt->dst, sk)) ?
 			 rt->dst.dev->mtu : dst_mtu(&rt->dst);
 	cork->dst = &rt->dst;
 	cork->length = 0;
@@ -1148,8 +1150,9 @@ ssize_t	ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page,
 
 	fragheaderlen = sizeof(struct iphdr) + (opt ? opt->optlen : 0);
 	maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen;
-	maxnonfragsize = (inet->pmtudisc >= IP_PMTUDISC_DO) ?
-			 mtu : 0xFFFF;
+	maxnonfragsize = ((inet->pmtudisc >= IP_PMTUDISC_DO) ||
+			  !ip_dgram_local_fragment(&rt->dst, sk)) ?
+		         mtu : 0xFFFF;
 
 	if (cork->length + size > maxnonfragsize - fragheaderlen) {
 		ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, mtu);
@@ -1309,7 +1312,8 @@ struct sk_buff *__ip_make_skb(struct sock *sk,
 	 * to fragment the frame generated here. No matter, what transforms
 	 * how transforms change size of the packet, it will come out.
 	 */
-	if (inet->pmtudisc < IP_PMTUDISC_DO)
+	if (inet->pmtudisc < IP_PMTUDISC_DO &&
+	    ip_dgram_local_fragment(&rt->dst, sk))
 		skb->local_df = 1;
 
 	/* DF bit is set when we want to see DF on outgoing frames.

Thank you,

  Hannes

^ permalink raw reply related

* 3.10.16 general protection fault kmem_cache_alloc+0x67/0x170
From: Shawn Bohrer @ 2013-11-04 23:54 UTC (permalink / raw)
  To: linux-mm; +Cc: linux-kernel, netdev

I had a machine crash this weekend running a 3.10.16 kernel that
additionally has a few backported networking patches for performance
improvements.  At this point I can't rule out that the bug isn't from
those patches, and I haven't yet tried to see if I can reproduce the
crash.  I did happen to have kdump configured so I've got a crash dump
that I've been poking at but I'm not an expert here so hopefully
someone can provide some guidance on what I'm looking at and/or where
the bug might be.

Below is the more detailed info with some of my comments interspersed.
If anyone has any questions or suggestions I'd appreciate it.

[1448642.601229] general protection fault: 0000 [#1] SMP 
[1448642.602448] Modules linked in: mpt2sas scsi_transport_sas raid_class mptctl mptbase dell_rbu ipmi_devintf ipmi_si ipmi_msghandler lockd 8021q mrp garp stp llc ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_addr iw_cxgb3 mlx4_ib ib_sa ib_mad ib_core mlx4_en ext4 jbd2 mbcache joydev fuse ses bnx2 coretemp mlx4_core cxgb3 hwmon mdio enclosure iTCO_wdt iTCO_vendor_support freq_table mperf wmi ehci_pci ehci_hcd dcdbas serio_raw microcode lpc_ich mfd_core sunrpc ipv6 autofs4 crc32c_intel megaraid_sas uhci_hcd dm_mirror dm_region_hash dm_log dm_mod
[1448642.616810] CPU: 11 PID: 27807 Comm: primary_nic_is_ Not tainted 3.10.16-1.rgm.fc16.x86_64 #1
[1448642.618941] Hardware name: Dell Inc. PowerEdge R610/0XDN97, BIOS 6.3.0 07/24/2012
[1448642.620639] task: ffff8806628c3880 ti: ffff880604370000 task.ti: ffff880604370000
[1448642.622335] RIP: 0010:[<ffffffff8112b117>]  [<ffffffff8112b117>] kmem_cache_alloc+0x67/0x170
[1448642.624286] RSP: 0018:ffff880604371d70  EFLAGS: 00010282
[1448642.625500] RAX: 0000000000000000 RBX: ffff8806628c3880 RCX: 000000007ecb996a
[1448642.627415] RDX: 000000007ecb9969 RSI: 00000000000000d0 RDI: 0000000000015900
[1448642.629077] RBP: ffff880604371dc0 R08: ffff880667d55900 R09: 0000000000000000
[1448642.630697] R10: 0000000000000000 R11: 0000000000015ea8 R12: ffff880c67003800
[1448642.632316] R13: d17b94d6641aebfb R14: ffffffff81064d68 R15: 00000000000000d0
[1448642.633936] FS:  00007f8018827700(0000) GS:ffff880667d40000(0000) knlGS:0000000000000000
[1448642.635768] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[1448642.637497] CR2: 00000000006eded4 CR3: 000000066368b000 CR4: 00000000000007e0
[1448642.639230] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[1448642.640849] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[1448642.642468] Stack:
[1448642.642950]  00000000ffffff9c ffff8806628c3880 ffff8806628c3880 0000000000000002
[1448642.644780]  ffff8806628c3880 ffff8806628c3880 0000000000000000 0000000001200011
[1448642.646848]  0000000000000000 00007f80188279d0 ffff880604371de0 ffffffff81064d68
[1448642.648987] Call Trace:
[1448642.649568]  [<ffffffff81064d68>] prepare_creds+0x28/0x160
[1448642.650822]  [<ffffffff81065436>] copy_creds+0x36/0x160
[1448642.652019]  [<ffffffff810393e0>] copy_process+0x310/0x14b0
[1448642.653295]  [<ffffffff811534f5>] ? __alloc_fd+0x45/0x110
[1448642.654529]  [<ffffffff8103a64c>] do_fork+0x9c/0x280
[1448642.655668]  [<ffffffff811535f0>] ? get_unused_fd_flags+0x30/0x40
[1448642.657473]  [<ffffffff8114147f>] ? __do_pipe_flags+0x7f/0xc0
[1448642.658808]  [<ffffffff8115362b>] ? __fd_install+0x2b/0x60
[1448642.660062]  [<ffffffff8103a8b6>] SyS_clone+0x16/0x20
[1448642.661222]  [<ffffffff814c2429>] stub_clone+0x69/0x90
[1448642.662399]  [<ffffffff814c2182>] ? system_call_fastpath+0x16/0x1b
[1448642.663807] Code: 00 49 8b 50 08 4d 8b 28 49 8b 40 10 4d 85 ed 0f 84 f7 00 00 00 48 85 c0 0f 84 ee 00 00 00 49 63 44 24 20 48 8d 4a 01 49 8b 3c 24 <49> 8b 5c 05 00 4c 89 e8 65 48 0f c7 0f 0f 94 c0 84 c0 74 b5 49 
[1448642.671081] RIP  [<ffffffff8112b117>] kmem_cache_alloc+0x67/0x170
[1448642.672508]  RSP <ffff880604371d70>
[1448642.673330] ---[ end trace fe4b503d6f77c801 ]---
[1448642.674408] general protection fault: 0000 [#2] SMP 
[1448642.675623] Modules linked in: mpt2sas scsi_transport_sas raid_class mptctl mptbase dell_rbu ipmi_devintf ipmi_si ipmi_msghandler lockd 8021q mrp garp stp llc ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_addr iw_cxgb3 mlx4_ib ib_sa ib_mad ib_core mlx4_en ext4 jbd2 mbcache joydev fuse ses bnx2 coretemp mlx4_core cxgb3 hwmon mdio enclosure iTCO_wdt iTCO_vendor_support freq_table mperf wmi ehci_pci ehci_hcd dcdbas serio_raw microcode lpc_ich mfd_core sunrpc ipv6 autofs4 crc32c_intel megaraid_sas uhci_hcd dm_mirror dm_region_hash dm_log dm_mod
[1448642.690185] CPU: 11 PID: 27807 Comm: primary_nic_is_ Tainted: G      D      3.10.16-1.rgm.fc16.x86_64 #1
[1448642.692328] Hardware name: Dell Inc. PowerEdge R610/0XDN97, BIOS 6.3.0 07/24/2012
[1448642.694027] task: ffff8806628c3880 ti: ffff880604370000 task.ti: ffff880604370000
[1448642.695726] RIP: 0010:[<ffffffff8112b117>]  [<ffffffff8112b117>] kmem_cache_alloc+0x67/0x170
[1448642.698133] RSP: 0018:ffff880667d43ad0  EFLAGS: 00010282
[1448642.792981] RAX: 0000000000000000 RBX: ffffffff81a9c580 RCX: 000000007ecb996a
[1448642.889673] RDX: 000000007ecb9969 RSI: 0000000000000020 RDI: 0000000000015900
[1448642.994115] RBP: ffff880667d43b20 R08: ffff880667d55900 R09: ffffffff81a9e5a0
[1448643.090682] R10: 00000000000043c7 R11: 000000003430080a R12: ffff880c67003800
[1448643.188603] R13: d17b94d6641aebfb R14: ffffffff81412f2a R15: 0000000000000020
[1448643.285514] FS:  00007f8018827700(0000) GS:ffff880667d40000(0000) knlGS:0000000000000000
[1448643.383646] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[1448643.492593] CR2: 00000000006eded4 CR3: 000000066368b000 CR4: 00000000000007e0
[1448643.611447] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[1448643.725885] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[1448643.842044] Stack:
[1448643.951844]  ffff880c623d6300 0000000000000000 000000000000003c ffffffff81ac3470
[1448644.064382]  0000000000000002 ffffffff81a9c580 ffff880664ba8800 0000000000000001
[1448644.172037]  00000000ffffffff 0000000000000011 ffff880667d43b70 ffffffff81412f2a
[1448644.275773] Call Trace:
[1448644.381953]  <IRQ> 
[1448644.382607] 
[1448644.481603]  [<ffffffff81412f2a>] dst_alloc+0x5a/0x180
[1448644.582555]  [<ffffffff8143c08c>] rt_dst_alloc+0x4c/0x50
[1448644.682248]  [<ffffffff8143d6af>] ip_route_input_noref+0x58f/0x930
[1448644.780543]  [<ffffffff8146e28c>] ? udp_v4_early_demux+0x19c/0x400
[1448644.876777]  [<ffffffff8143f98a>] ip_rcv_finish+0x18a/0x320
[1448644.971530]  [<ffffffff814400cb>] ip_rcv+0x1fb/0x300
[1448645.065453]  [<ffffffff8140aee2>] __netif_receive_skb_core+0x622/0x7b0
[1448645.154238]  [<ffffffff8140b091>] __netif_receive_skb+0x21/0x70
[1448645.232660]  [<ffffffff8140b281>] netif_receive_skb+0x31/0xb0
[1448645.309863]  [<ffffffffa05ff6da>] mlx4_en_process_rx_cq+0x3aa/0x860 [mlx4_en]
[1448645.387368]  [<ffffffffa05ffc2f>] mlx4_en_poll_rx_cq+0x3f/0x80 [mlx4_en]
[1448645.466734]  [<ffffffff8140b989>] net_rx_action+0x119/0x220
[1448645.545289]  [<ffffffff81043158>] __do_softirq+0xd8/0x280
[1448645.621214]  [<ffffffff8107e524>] ? tick_program_event+0x24/0x30
[1448645.696725]  [<ffffffff81062c31>] ? hrtimer_interrupt+0x141/0x240
[1448645.772942]  [<ffffffff814c333c>] call_softirq+0x1c/0x30
[1448645.849316]  [<ffffffff81004105>] do_softirq+0x55/0x90
[1448645.925047]  [<ffffffff81043435>] irq_exit+0x65/0x70
[1448646.004842]  [<ffffffff814c394e>] smp_apic_timer_interrupt+0x6e/0x99
[1448646.080536]  [<ffffffff814c2cca>] apic_timer_interrupt+0x6a/0x70
[1448646.155253]  <EOI> 
[1448646.155756] 
[1448646.230661]  [<ffffffff8103d8e6>] ? vprintk_emit+0x1d6/0x520
[1448646.304905]  [<ffffffff814b103a>] printk+0x4d/0x4f
[1448646.379754]  [<ffffffff8103b313>] print_oops_end_marker+0x23/0x30
[1448646.455985]  [<ffffffff8103b49f>] oops_exit+0x1f/0x30
[1448646.533918]  [<ffffffff814baceb>] oops_end+0x7b/0xf0
[1448646.608695]  [<ffffffff81005758>] die+0x58/0x90
[1448646.682638]  [<ffffffff81064d68>] ? prepare_creds+0x28/0x160
[1448646.757149]  [<ffffffff814ba80c>] do_general_protection+0xdc/0x160
[1448646.832144]  [<ffffffff814ba202>] general_protection+0x22/0x30
[1448646.908595]  [<ffffffff81064d68>] ? prepare_creds+0x28/0x160
[1448646.988953]  [<ffffffff8112b117>] ? kmem_cache_alloc+0x67/0x170
[1448647.065142]  [<ffffffff81064d68>] prepare_creds+0x28/0x160
[1448647.138887]  [<ffffffff81065436>] copy_creds+0x36/0x160
[1448647.211415]  [<ffffffff810393e0>] copy_process+0x310/0x14b0
[1448647.283149]  [<ffffffff811534f5>] ? __alloc_fd+0x45/0x110
[1448647.353624]  [<ffffffff8103a64c>] do_fork+0x9c/0x280
[1448647.423532]  [<ffffffff811535f0>] ? get_unused_fd_flags+0x30/0x40
[1448647.497069]  [<ffffffff8114147f>] ? __do_pipe_flags+0x7f/0xc0
[1448647.568373]  [<ffffffff8115362b>] ? __fd_install+0x2b/0x60
[1448647.633917]  [<ffffffff8103a8b6>] SyS_clone+0x16/0x20
[1448647.697775]  [<ffffffff814c2429>] stub_clone+0x69/0x90
[1448647.758626]  [<ffffffff814c2182>] ? system_call_fastpath+0x16/0x1b
[1448647.818728] Code: 00 49 8b 50 08 4d 8b 28 49 8b 40 10 4d 85 ed 0f 84 f7 00 00 00 48 85 c0 0f 84 ee 00 00 00 49 63 44 24 20 48 8d 4a 01 49 8b 3c 24 <49> 8b 5c 05 00 4c 89 e8 65 48 0f c7 0f 0f 94 c0 84 c0 74 b5 49 
[1448647.948966] RIP  [<ffffffff8112b117>] kmem_cache_alloc+0x67/0x170
[1448648.021914]  RSP <ffff880667d43ad0>

Here is the same backtrace from crash:

crash> bt
PID: 27807  TASK: ffff8806628c3880  CPU: 11  COMMAND: "primary_nic_is_"
 #0 [ffff880667d43870] machine_kexec at ffffffff81029c72
 #1 [ffff880667d438c0] crash_kexec at ffffffff8108cf98
 #2 [ffff880667d43990] oops_end at ffffffff814bad28
 #3 [ffff880667d439c0] die at ffffffff81005758
 #4 [ffff880667d439f0] do_general_protection at ffffffff814ba80c
 #5 [ffff880667d43a20] general_protection at ffffffff814ba202
    [exception RIP: kmem_cache_alloc+103]
    RIP: ffffffff8112b117  RSP: ffff880667d43ad0  RFLAGS: 00010282
    RAX: 0000000000000000  RBX: ffffffff81a9c580  RCX: 000000007ecb996a
    RDX: 000000007ecb9969  RSI: 0000000000000020  RDI: 0000000000015900
    RBP: ffff880667d43b20   R8: ffff880667d55900   R9: ffffffff81a9e5a0
    R10: 00000000000043c7  R11: 000000003430080a  R12: ffff880c67003800
    R13: d17b94d6641aebfb  R14: ffffffff81412f2a  R15: 0000000000000020
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
 #6 [ffff880667d43b28] dst_alloc at ffffffff81412f2a
 #7 [ffff880667d43b78] rt_dst_alloc at ffffffff8143c08c
 #8 [ffff880667d43b88] ip_route_input_noref at ffffffff8143d6af
 #9 [ffff880667d43c48] ip_rcv_finish at ffffffff8143f98a
#10 [ffff880667d43c78] ip_rcv at ffffffff814400cb
#11 [ffff880667d43cb8] __netif_receive_skb_core at ffffffff8140aee2
#12 [ffff880667d43d28] __netif_receive_skb at ffffffff8140b091
#13 [ffff880667d43d48] netif_receive_skb at ffffffff8140b281
#14 [ffff880667d43d78] mlx4_en_process_rx_cq at ffffffffa05ff6da [mlx4_en]
#15 [ffff880667d43e18] mlx4_en_poll_rx_cq at ffffffffa05ffc2f [mlx4_en]
#16 [ffff880667d43e58] net_rx_action at ffffffff8140b989
#17 [ffff880667d43ec8] __do_softirq at ffffffff81043158
#18 [ffff880667d43f48] call_softirq at ffffffff814c333c
#19 [ffff880667d43f60] do_softirq at ffffffff81004105
#20 [ffff880667d43f80] irq_exit at ffffffff81043435
#21 [ffff880667d43f90] smp_apic_timer_interrupt at ffffffff814c394e
#22 [ffff880667d43fb0] apic_timer_interrupt at ffffffff814c2cca
--- <IRQ stack> ---
#23 [ffff880604371a88] apic_timer_interrupt at ffffffff814c2cca
    [exception RIP: vprintk_emit+470]
    RIP: ffffffff8103d8e6  RSP: ffff880604371b38  RFLAGS: 00000246
    RAX: 0000000000000000  RBX: 0000000000000092  RCX: ffff880667d4e9e0
    RDX: 0000000000000000  RSI: ffff880667d4ce68  RDI: ffff880667d4ce60
    RBP: ffff880604371ba8   R8: 0000000000000000   R9: 0000000000000000
    R10: 00000000000003c7  R11: 0000000000000001  R12: 0000000000000004
    R13: 0000000000000001  R14: 0000000000000036  R15: ffffffff81abcf00
    ORIG_RAX: ffffffffffffff10  CS: 0010  SS: 0018
#24 [ffff880604371bb0] printk at ffffffff814b103a
#25 [ffff880604371c10] print_oops_end_marker at ffffffff8103b313
#26 [ffff880604371c20] oops_exit at ffffffff8103b49f
#27 [ffff880604371c30] oops_end at ffffffff814baceb
#28 [ffff880604371c60] die at ffffffff81005758
#29 [ffff880604371c90] do_general_protection at ffffffff814ba80c
#30 [ffff880604371cc0] general_protection at ffffffff814ba202
    [exception RIP: kmem_cache_alloc+103]
    RIP: ffffffff8112b117  RSP: ffff880604371d70  RFLAGS: 00010282
    RAX: 0000000000000000  RBX: ffff8806628c3880  RCX: 000000007ecb996a
    RDX: 000000007ecb9969  RSI: 00000000000000d0  RDI: 0000000000015900
    RBP: ffff880604371dc0   R8: ffff880667d55900   R9: 0000000000000000
    R10: 0000000000000000  R11: 0000000000015ea8  R12: ffff880c67003800
    R13: d17b94d6641aebfb  R14: ffffffff81064d68  R15: 00000000000000d0
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
#31 [ffff880604371dc8] prepare_creds at ffffffff81064d68
#32 [ffff880604371de8] copy_creds at ffffffff81065436
#33 [ffff880604371e28] copy_process at ffffffff810393e0
#34 [ffff880604371eb8] do_fork at ffffffff8103a64c
#35 [ffff880604371f38] sys_clone at ffffffff8103a8b6
#36 [ffff880604371f48] stub_clone at ffffffff814c2429
    RIP: 0000003ef6abd8a6  RSP: 00007fff494ae490  RFLAGS: 00000246
    RAX: 0000000000000038  RBX: 00007fff494ae490  RCX: ffffffffffffffff
    RDX: 0000000000000000  RSI: 0000000000000000  RDI: 0000000001200011
    RBP: 00007fff494ae510   R8: 0000000000006c9f   R9: 00007f8018827700
    R10: 00007f80188279d0  R11: 0000000000000246  R12: 0000000000000000
    R13: 0000000000006c9f  R14: 0000003199954fe3  R15: 0000000000000001
    ORIG_RAX: 0000000000000038  CS: 0033  SS: 002b

So it looks to me like the first fault was in a clone system call
when prepare_creds() called kmem_cache_alloc(), then shortly afterward
I received a network packet and faulted again when dst_alloc() called
kmem_cache_alloc().  Both events happened on CPU 11.

Looking at the arguments passed into kmem_cache_alloc:

crash> print cred_jar
$13 = (struct kmem_cache *) 0xffff880c67003800
crash> print ipv4_dst_ops.kmem_cachep
$15 = (struct kmem_cache *) 0xffff880c67003800

Both are using the same kmem_cache pointer.

crash> struct kmem_cache 0xffff880c67003800
struct kmem_cache {
  cpu_slab = 0x15900, 
  flags = 1073741824, 
  min_partial = 5, 
  size = 192, 
  object_size = 192, 
  offset = 0, 
  cpu_partial = 30, 
  oo = {
    x = 65578
  }, 
  max = {
    x = 65578
  }, 
  min = {
    x = 21
  }, 
  allocflags = 16384, 
  refcount = 10, 
  ctor = 0, 
  inuse = 192, 
  align = 8, 
  reserved = 0, 
  name = 0xffff880c67001010 "kmalloc-192", 
  list = {
    next = 0xffff880c67003968, 
    prev = 0xffff880c67003768
  }, 
  kobj = {
    name = 0xffff880662b84860 ":t-0000192", 
    entry = {
      next = 0xffff880c67003980, 
      prev = 0xffff880c67003780
    }, 
    parent = 0xffff880662b5f078, 
    kset = 0xffff880662b5f060, 
    ktype = 0xffffffff81a4fda0, 
    sd = 0xffff880662b9f150, 
    kref = {
      refcount = {
        counter = 1
      }
    }, 
    state_initialized = 1, 
    state_in_sysfs = 1, 
    state_add_uevent_sent = 1, 
    state_remove_uevent_sent = 0, 
    uevent_suppress = 0
  }, 
  remote_node_defrag_ratio = 1000, 
  node = {0xffff880c67000f00, 0xffff880667800f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x158e0, 0x40000000, 0x5, 0x8000000080, 0x1e00000000, 0x20, 0x20, 0x20, 0x700000000, 0x0, 0x800000080, 0x0, 0xffff880c67001060, 0xffff880c67003a68, 0xffff880c67003868, 0xffff880662b84890, 0xffff880c67003a80, 0xffff880c67003880, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662ba8000, 0x700000001, 0x3e8, 0xffff880c67000100, 0xffff880667800100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x158c0, 0x40000000, 0x5, 0x6000000060, 0x1e00000000, 0x2a, 0x2a, 0x2a, 0x100000000, 0x0, 0x800000060, 0x0, 0xffff880c67001000, 0xffff880c67003b68, 0xffff880c67003968, 0xffff880662b848c0, 0xffff880c67003b80, 0xffff880c67003980, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662ba8e70, 0x700000001, 0x3e8, 0xffff880c67000f40, 0xffff880667800f40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x158a0, 0x40000000, 0x5, 0x4000000040, 0x1e00000000, 0x40, 0x40, 0x40, 0xa00000000, 0x0, 0x800000040, 0x0, 0xffff880c67001050, 0xffff880c67003c68, 0xffff880c67003a68, 0xffff880662b848f0, 0xffff880c67003c80, 0xffff880c67003a80, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662ba9d20, 0x700000001, 0x3e8, 0xffff880c670000c0, 0xffff8806678000c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15880, 0x40000000, 0x5, 0x2000000020, 0x1e00000000, 0x80, 0x80, 0x80, 0x600000000, 0x0, 0x800000020, 0x0, 0xffff880c67001040, 0xffff880c67003d68, 0xffff880c67003b68, 0xffff880662b84920, 0xffff880c67003d80, 0xffff880c67003b80, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662baabd0, 0x700000001, 0x3e8, 0xffff880c67000f80, 0xffff880667800f80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15860, 0x40000000, 0x5, 0x1000000010, 0x1e00000000, 0x100, 0x100, 0x100, 0x100000000, 0x0, 0x800000010, 0x0, 0xffff880c67001030, 0xffff880c67003e68, 0xffff880c67003c68, 0xffff880662b84950, 0xffff880c67003e80, 0xffff880c67003c80, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662baba80, 0x700000001, 0x3e8, 0xffff880c67000080, 0xffff880667800080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15840, 0x40000000, 0x5, 0x800000008, 0x1e00000000, 0x200, 0x200, 0x200, 0x100000000, 0x0, 0x800000008, 0x0, 0xffff880c67001020, 0xffff880c67003f68, 0xffff880c67003d68, 0xffff880662b84980, 0xffff880c67003f80, 0xffff880c67003d80, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662bac930, 0x700000001, 0x3e8, 0xffff880c67000fc0, 0xffff880667800fc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15800, 0x40002000, 0x5, 0x4000000040, 0x1e00000000, 0x40, 0x40, 0x40, 0xffffffff00000000, 0x0, 0x4000000040, 0x0, 0xffffffff817a9ba4, 0xffff880c67002068, 0xffff880c67003e68, 0xffff880662b849b0, 0xffff880c67002080, 0xffff880c67003e80, 0xffff880662b5f078, 0xffff880662b5f060, 0xffffffff81a4fda0, 0xffff880662bad7e0, 0x700000001, 0x3e8, 0xffff880c67000000, 0xffff880667800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c616d6b2d616d64, 0x343230312d636f6c, 0x0, 0x0, 0x6c616d6b2d616d64, 0x383430322d636f6c, 0x0, 0x0, 0x6c616d6b2d616d64, 0x363930342d636f6c, 0x0, 0x0, 0x6c616d6b2d616d64, 0x323931382d636f6c, 0x0, 0x0, 0x705f646572616873, 0x6f6e5f7963696c6f, 0x6564, 0x0, 0x3000000000, 0x0, 0x0, 0x0...}
}

The cpu_slab pointer doesn't look valid to me and maybe that is the
problem.
crash> struct kmem_cache_cpu 0x15900
struct: invalid kernel virtual address: 0x15900

Here is the disassembly of the crash with source lines with should
match a stock 3.10.16:

crash> dis -lr kmem_cache_alloc+103
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2406
0xffffffff8112b0b0 <kmem_cache_alloc>:  data32 data32 data32 xchg %ax,%ax
0xffffffff8112b0b5 <kmem_cache_alloc+5>:        push   %rbp
0xffffffff8112b0b6 <kmem_cache_alloc+6>:        mov    %rsp,%rbp
0xffffffff8112b0b9 <kmem_cache_alloc+9>:        push   %r15
0xffffffff8112b0bb <kmem_cache_alloc+11>:       mov    %esi,%r15d
0xffffffff8112b0be <kmem_cache_alloc+14>:       push   %r14
0xffffffff8112b0c0 <kmem_cache_alloc+16>:       push   %r13
0xffffffff8112b0c2 <kmem_cache_alloc+18>:       push   %r12
0xffffffff8112b0c4 <kmem_cache_alloc+20>:       mov    %rdi,%r12
0xffffffff8112b0c7 <kmem_cache_alloc+23>:       push   %rbx
0xffffffff8112b0c8 <kmem_cache_alloc+24>:       sub    $0x28,%rsp
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 924
0xffffffff8112b0cc <kmem_cache_alloc+28>:       mov    0x9930de(%rip),%eax        # 0xffffffff81abe1b0
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2407
0xffffffff8112b0d2 <kmem_cache_alloc+34>:       mov    0x8(%rbp),%r14
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 924
0xffffffff8112b0d6 <kmem_cache_alloc+38>:       and    %esi,%eax
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 926
0xffffffff8112b0d8 <kmem_cache_alloc+40>:       test   $0x10,%al
0xffffffff8112b0da <kmem_cache_alloc+42>:       jne    0xffffffff8112b1e8 <kmem_cache_alloc+312>
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2348
0xffffffff8112b0e0 <kmem_cache_alloc+48>:       mov    (%r12),%r8
0xffffffff8112b0e4 <kmem_cache_alloc+52>:       add    %gs:0xcc28,%r8
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2356
0xffffffff8112b0ed <kmem_cache_alloc+61>:       mov    0x8(%r8),%rdx
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2359
0xffffffff8112b0f1 <kmem_cache_alloc+65>:       mov    (%r8),%r13
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2360
0xffffffff8112b0f4 <kmem_cache_alloc+68>:       mov    0x10(%r8),%rax
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2361
0xffffffff8112b0f8 <kmem_cache_alloc+72>:       test   %r13,%r13
0xffffffff8112b0fb <kmem_cache_alloc+75>:       je     0xffffffff8112b1f8 <kmem_cache_alloc+328>
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2046
0xffffffff8112b101 <kmem_cache_alloc+81>:       test   %rax,%rax
0xffffffff8112b104 <kmem_cache_alloc+84>:       je     0xffffffff8112b1f8 <kmem_cache_alloc+328>
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 251
0xffffffff8112b10a <kmem_cache_alloc+90>:       movslq 0x20(%r12),%rax
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 1683
0xffffffff8112b10f <kmem_cache_alloc+95>:       lea    0x1(%rdx),%rcx
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 2379
0xffffffff8112b113 <kmem_cache_alloc+99>:       mov    (%r12),%rdi
/usr/src/debug/kernel-3.10.fc16/linux-3.10.16-1.rgm.fc16.x86_64/mm/slub.c: 251
0xffffffff8112b117 <kmem_cache_alloc+103>:      mov    0x0(%r13,%rax,1),%rbx

The crash utility also has some macros to analyze the SLAB caches but
the output doesn't mean much to me.  The only thing that stood out to
me was that CPU 11 appears that everything is allocated.  The full
output of that is below for the cache in question.  I'm guessing the
problem here was the bad cpu_slab pointer but beyond that I'm not
sure.

CACHE            NAME                 OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE
ffff880c67003800 kmalloc-192              192       8867     14910    355     8k
CPU 0 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0031740e80  ffff880c5d03a000     0     40         40     0
  FREE / [ALLOCATED]
  [ffff880c5d03a000]
   ffff880c5d03a0c0  (cpu 0 cache)
   ffff880c5d03a180  (cpu 0 cache)
   ffff880c5d03a240  (cpu 0 cache)
  [ffff880c5d03a300]
  [ffff880c5d03a3c0]
   ffff880c5d03a480  (cpu 0 cache)
   ffff880c5d03a540  (cpu 0 cache)
  [ffff880c5d03a600]
   ffff880c5d03a6c0  (cpu 0 cache)
   ffff880c5d03a780  (cpu 0 cache)
   ffff880c5d03a840  (cpu 0 cache)
   ffff880c5d03a900  (cpu 0 cache)
   ffff880c5d03a9c0  (cpu 0 cache)
  [ffff880c5d03aa80]
   ffff880c5d03ab40  (cpu 0 cache)
  [ffff880c5d03ac00]
  [ffff880c5d03acc0]
  [ffff880c5d03ad80]
   ffff880c5d03ae40  (cpu 0 cache)
   ffff880c5d03af00  (cpu 0 cache)
   ffff880c5d03afc0  (cpu 0 cache)
  [ffff880c5d03b080]
   ffff880c5d03b140  (cpu 0 cache)
   ffff880c5d03b200  (cpu 0 cache)
   ffff880c5d03b2c0  (cpu 0 cache)
   ffff880c5d03b380  (cpu 0 cache)
   ffff880c5d03b440  (cpu 0 cache)
  [ffff880c5d03b500]
   ffff880c5d03b5c0  (cpu 0 cache)
   ffff880c5d03b680  (cpu 0 cache)
  [ffff880c5d03b740]
  [ffff880c5d03b800]
   ffff880c5d03b8c0  (cpu 0 cache)
   ffff880c5d03b980  (cpu 0 cache)
   ffff880c5d03ba40  (cpu 0 cache)
   ffff880c5d03bb00  (cpu 0 cache)
   ffff880c5d03bbc0  (cpu 0 cache)
  [ffff880c5d03bc80]
  [ffff880c5d03bd40]
CPU 1 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea001311d080  ffff8804c4742000     1     29         29     0
  FREE / [ALLOCATED]
  [ffff8804c4742000]
   ffff8804c47420c0  (cpu 1 cache)
   ffff8804c4742180  (cpu 1 cache)
  [ffff8804c4742240]
  [ffff8804c4742300]
  [ffff8804c47423c0]
  [ffff8804c4742480]
   ffff8804c4742540  (cpu 1 cache)
   ffff8804c4742600  (cpu 1 cache)
  [ffff8804c47426c0]
  [ffff8804c4742780]
   ffff8804c4742840  (cpu 1 cache)
   ffff8804c4742900  (cpu 1 cache)
  [ffff8804c47429c0]
   ffff8804c4742a80  (cpu 1 cache)
   ffff8804c4742b40  (cpu 1 cache)
   ffff8804c4742c00  (cpu 1 cache)
  [ffff8804c4742cc0]
   ffff8804c4742d80  (cpu 1 cache)
   ffff8804c4742e40  (cpu 1 cache)
  [ffff8804c4742f00]
  [ffff8804c4742fc0]
   ffff8804c4743080  (cpu 1 cache)
   ffff8804c4743140  (cpu 1 cache)
   ffff8804c4743200  (cpu 1 cache)
   ffff8804c47432c0  (cpu 1 cache)
   ffff8804c4743380  (cpu 1 cache)
  [ffff8804c4743440]
  [ffff8804c4743500]
CPU 2 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea003161b980  ffff880c586e6000     0     37         37     0
  FREE / [ALLOCATED]
  [ffff880c586e6000]
   ffff880c586e60c0  (cpu 2 cache)
   ffff880c586e6180  (cpu 2 cache)
  [ffff880c586e6240]
   ffff880c586e6300  (cpu 2 cache)
   ffff880c586e63c0  (cpu 2 cache)
   ffff880c586e6480  (cpu 2 cache)
  [ffff880c586e6540]
   ffff880c586e6600  (cpu 2 cache)
  [ffff880c586e66c0]
   ffff880c586e6780  (cpu 2 cache)
   ffff880c586e6840  (cpu 2 cache)
   ffff880c586e6900  (cpu 2 cache)
   ffff880c586e69c0  (cpu 2 cache)
  [ffff880c586e6a80]
   ffff880c586e6b40  (cpu 2 cache)
   ffff880c586e6c00  (cpu 2 cache)
   ffff880c586e6cc0  (cpu 2 cache)
   ffff880c586e6d80  (cpu 2 cache)
   ffff880c586e6e40  (cpu 2 cache)
   ffff880c586e6f00  (cpu 2 cache)
   ffff880c586e6fc0  (cpu 2 cache)
  [ffff880c586e7080]
  [ffff880c586e7140]
   ffff880c586e7200  (cpu 2 cache)
   ffff880c586e72c0  (cpu 2 cache)
   ffff880c586e7380  (cpu 2 cache)
   ffff880c586e7440  (cpu 2 cache)
   ffff880c586e7500  (cpu 2 cache)
   ffff880c586e75c0  (cpu 2 cache)
   ffff880c586e7680  (cpu 2 cache)
   ffff880c586e7740  (cpu 2 cache)
   ffff880c586e7800  (cpu 2 cache)
   ffff880c586e78c0  (cpu 2 cache)
   ffff880c586e7980  (cpu 2 cache)
   ffff880c586e7a40  (cpu 2 cache)
   ffff880c586e7b00  (cpu 2 cache)
CPU 3 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea001270b280  ffff88049c2ca000     1     16         16     0
  FREE / [ALLOCATED]
   ffff88049c2ca000  (cpu 3 cache)
  [ffff88049c2ca0c0]
  [ffff88049c2ca180]
  [ffff88049c2ca240]
   ffff88049c2ca300  (cpu 3 cache)
  [ffff88049c2ca3c0]
   ffff88049c2ca480  (cpu 3 cache)
  [ffff88049c2ca540]
  [ffff88049c2ca600]
  [ffff88049c2ca6c0]
   ffff88049c2ca780  (cpu 3 cache)
  [ffff88049c2ca840]
   ffff88049c2ca900  (cpu 3 cache)
  [ffff88049c2ca9c0]
  [ffff88049c2caa80]
   ffff88049c2cab40  (cpu 3 cache)
CPU 4 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea002f0ab780  ffff880bc2ade000     0      7          7     0
  FREE / [ALLOCATED]
  [ffff880bc2ade000]
  [ffff880bc2ade0c0]
  [ffff880bc2ade180]
  [ffff880bc2ade240]
  [ffff880bc2ade300]
  [ffff880bc2ade3c0]
   ffff880bc2ade480  (cpu 4 cache)
CPU 5 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0012702780  ffff88049c09e000     1     12         12     0
  FREE / [ALLOCATED]
  [ffff88049c09e000]
  [ffff88049c09e0c0]
  [ffff88049c09e180]
   ffff88049c09e240  (cpu 5 cache)
  [ffff88049c09e300]
  [ffff88049c09e3c0]
  [ffff88049c09e480]
  [ffff88049c09e540]
  [ffff88049c09e600]
  [ffff88049c09e6c0]
   ffff88049c09e780  (cpu 5 cache)
   ffff88049c09e840  (cpu 5 cache)
CPU 6 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0031728880  ffff880c5ca22000     0     31         31     0
  FREE / [ALLOCATED]
  [ffff880c5ca22000]
   ffff880c5ca220c0  (cpu 6 cache)
   ffff880c5ca22180  (cpu 6 cache)
   ffff880c5ca22240  (cpu 6 cache)
   ffff880c5ca22300  (cpu 6 cache)
   ffff880c5ca223c0  (cpu 6 cache)
   ffff880c5ca22480  (cpu 6 cache)
   ffff880c5ca22540  (cpu 6 cache)
   ffff880c5ca22600  (cpu 6 cache)
  [ffff880c5ca226c0]
   ffff880c5ca22780  (cpu 6 cache)
  [ffff880c5ca22840]
  [ffff880c5ca22900]
   ffff880c5ca229c0  (cpu 6 cache)
  [ffff880c5ca22a80]
   ffff880c5ca22b40  (cpu 6 cache)
   ffff880c5ca22c00  (cpu 6 cache)
   ffff880c5ca22cc0  (cpu 6 cache)
  [ffff880c5ca22d80]
   ffff880c5ca22e40  (cpu 6 cache)
  [ffff880c5ca22f00]
   ffff880c5ca22fc0  (cpu 6 cache)
  [ffff880c5ca23080]
  [ffff880c5ca23140]
   ffff880c5ca23200  (cpu 6 cache)
   ffff880c5ca232c0  (cpu 6 cache)
   ffff880c5ca23380  (cpu 6 cache)
   ffff880c5ca23440  (cpu 6 cache)
   ffff880c5ca23500  (cpu 6 cache)
   ffff880c5ca235c0  (cpu 6 cache)
   ffff880c5ca23680  (cpu 6 cache)
CPU 7 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea003184aa00  ffff880c612a8000     0     19         19     0
  FREE / [ALLOCATED]
  [ffff880c612a8000]
   ffff880c612a80c0  (cpu 7 cache)
  [ffff880c612a8180]
   ffff880c612a8240  (cpu 7 cache)
  [ffff880c612a8300]
  [ffff880c612a83c0]
  [ffff880c612a8480]
  [ffff880c612a8540]
   ffff880c612a8600  (cpu 7 cache)
   ffff880c612a86c0  (cpu 7 cache)
  [ffff880c612a8780]
  [ffff880c612a8840]
  [ffff880c612a8900]
  [ffff880c612a89c0]
  [ffff880c612a8a80]
  [ffff880c612a8b40]
   ffff880c612a8c00  (cpu 7 cache)
  [ffff880c612a8cc0]
   ffff880c612a8d80  (cpu 7 cache)
CPU 8 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea001812c880  ffff880604b22000     1     31         31     0
  FREE / [ALLOCATED]
  [ffff880604b22000]
   ffff880604b220c0  (cpu 8 cache)
   ffff880604b22180  (cpu 8 cache)
   ffff880604b22240  (cpu 8 cache)
   ffff880604b22300  (cpu 8 cache)
   ffff880604b223c0  (cpu 8 cache)
   ffff880604b22480  (cpu 8 cache)
  [ffff880604b22540]
   ffff880604b22600  (cpu 8 cache)
  [ffff880604b226c0]
  [ffff880604b22780]
  [ffff880604b22840]
  [ffff880604b22900]
   ffff880604b229c0  (cpu 8 cache)
  [ffff880604b22a80]
   ffff880604b22b40  (cpu 8 cache)
  [ffff880604b22c00]
   ffff880604b22cc0  (cpu 8 cache)
  [ffff880604b22d80]
  [ffff880604b22e40]
  [ffff880604b22f00]
   ffff880604b22fc0  (cpu 8 cache)
   ffff880604b23080  (cpu 8 cache)
   ffff880604b23140  (cpu 8 cache)
  [ffff880604b23200]
   ffff880604b232c0  (cpu 8 cache)
  [ffff880604b23380]
  [ffff880604b23440]
   ffff880604b23500  (cpu 8 cache)
   ffff880604b235c0  (cpu 8 cache)
   ffff880604b23680  (cpu 8 cache)
CPU 9 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0015fa6700  ffff88057e99c000     1     26         26     0
  FREE / [ALLOCATED]
  [ffff88057e99c000]
  [ffff88057e99c0c0]
   ffff88057e99c180  (cpu 9 cache)
  [ffff88057e99c240]
  [ffff88057e99c300]
   ffff88057e99c3c0  (cpu 9 cache)
   ffff88057e99c480  (cpu 9 cache)
   ffff88057e99c540  (cpu 9 cache)
   ffff88057e99c600  (cpu 9 cache)
  [ffff88057e99c6c0]
   ffff88057e99c780  (cpu 9 cache)
   ffff88057e99c840  (cpu 9 cache)
  [ffff88057e99c900]
  [ffff88057e99c9c0]
   ffff88057e99ca80  (cpu 9 cache)
  [ffff88057e99cb40]
  [ffff88057e99cc00]
   ffff88057e99ccc0  (cpu 9 cache)
  [ffff88057e99cd80]
  [ffff88057e99ce40]
   ffff88057e99cf00  (cpu 9 cache)
  [ffff88057e99cfc0]
  [ffff88057e99d080]
   ffff88057e99d140  (cpu 9 cache)
   ffff88057e99d200  (cpu 9 cache)
  [ffff88057e99d2c0]
CPU 10 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea002fb1c480  ffff880bec712000     0     40         40     0
  FREE / [ALLOCATED]
   ffff880bec712000  (cpu 10 cache)
   ffff880bec7120c0  (cpu 10 cache)
   ffff880bec712180  (cpu 10 cache)
   ffff880bec712240  (cpu 10 cache)
   ffff880bec712300  (cpu 10 cache)
  [ffff880bec7123c0]
   ffff880bec712480  (cpu 10 cache)
   ffff880bec712540  (cpu 10 cache)
   ffff880bec712600  (cpu 10 cache)
  [ffff880bec7126c0]
   ffff880bec712780  (cpu 10 cache)
   ffff880bec712840  (cpu 10 cache)
   ffff880bec712900  (cpu 10 cache)
  [ffff880bec7129c0]
  [ffff880bec712a80]
  [ffff880bec712b40]
  [ffff880bec712c00]
   ffff880bec712cc0  (cpu 10 cache)
  [ffff880bec712d80]
   ffff880bec712e40  (cpu 10 cache)
  [ffff880bec712f00]
  [ffff880bec712fc0]
  [ffff880bec713080]
   ffff880bec713140  (cpu 10 cache)
  [ffff880bec713200]
   ffff880bec7132c0  (cpu 10 cache)
   ffff880bec713380  (cpu 10 cache)
  [ffff880bec713440]
   ffff880bec713500  (cpu 10 cache)
   ffff880bec7135c0  (cpu 10 cache)
   ffff880bec713680  (cpu 10 cache)
   ffff880bec713740  (cpu 10 cache)
   ffff880bec713800  (cpu 10 cache)
   ffff880bec7138c0  (cpu 10 cache)
   ffff880bec713980  (cpu 10 cache)
   ffff880bec713a40  (cpu 10 cache)
  [ffff880bec713b00]
   ffff880bec713bc0  (cpu 10 cache)
   ffff880bec713c80  (cpu 10 cache)
   ffff880bec713d40  (cpu 10 cache)
CPU 11 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0029197f80  ffff880a465fe000     0     40         40     0
  FREE / [ALLOCATED]
  [ffff880a465fe000]
  [ffff880a465fe0c0]
  [ffff880a465fe180]
  [ffff880a465fe240]
  [ffff880a465fe300]
  [ffff880a465fe3c0]
  [ffff880a465fe480]
  [ffff880a465fe540]
  [ffff880a465fe600]
  [ffff880a465fe6c0]
  [ffff880a465fe780]
  [ffff880a465fe840]
  [ffff880a465fe900]
  [ffff880a465fe9c0]
  [ffff880a465fea80]
  [ffff880a465feb40]
  [ffff880a465fec00]
  [ffff880a465fecc0]
  [ffff880a465fed80]
  [ffff880a465fee40]
  [ffff880a465fef00]
  [ffff880a465fefc0]
  [ffff880a465ff080]
  [ffff880a465ff140]
  [ffff880a465ff200]
  [ffff880a465ff2c0]
  [ffff880a465ff380]
  [ffff880a465ff440]
  [ffff880a465ff500]
  [ffff880a465ff5c0]
  [ffff880a465ff680]
  [ffff880a465ff740]
  [ffff880a465ff800]
  [ffff880a465ff8c0]
  [ffff880a465ff980]
  [ffff880a465ffa40]
  [ffff880a465ffb00]
  [ffff880a465ffbc0]
  [ffff880a465ffc80]
  [ffff880a465ffd40]
CPU 12 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0030443280  ffff880c110ca000     0     34         34     0
  FREE / [ALLOCATED]
   ffff880c110ca000  (cpu 12 cache)
   ffff880c110ca0c0  (cpu 12 cache)
  [ffff880c110ca180]
   ffff880c110ca240  (cpu 12 cache)
   ffff880c110ca300  (cpu 12 cache)
   ffff880c110ca3c0  (cpu 12 cache)
   ffff880c110ca480  (cpu 12 cache)
   ffff880c110ca540  (cpu 12 cache)
   ffff880c110ca600  (cpu 12 cache)
   ffff880c110ca6c0  (cpu 12 cache)
   ffff880c110ca780  (cpu 12 cache)
   ffff880c110ca840  (cpu 12 cache)
  [ffff880c110ca900]
  [ffff880c110ca9c0]
  [ffff880c110caa80]
  [ffff880c110cab40]
   ffff880c110cac00  (cpu 12 cache)
   ffff880c110cacc0  (cpu 12 cache)
   ffff880c110cad80  (cpu 12 cache)
   ffff880c110cae40  (cpu 12 cache)
   ffff880c110caf00  (cpu 12 cache)
  [ffff880c110cafc0]
   ffff880c110cb080  (cpu 12 cache)
   ffff880c110cb140  (cpu 12 cache)
  [ffff880c110cb200]
   ffff880c110cb2c0  (cpu 12 cache)
   ffff880c110cb380  (cpu 12 cache)
   ffff880c110cb440  (cpu 12 cache)
   ffff880c110cb500  (cpu 12 cache)
   ffff880c110cb5c0  (cpu 12 cache)
   ffff880c110cb680  (cpu 12 cache)
   ffff880c110cb740  (cpu 12 cache)
   ffff880c110cb800  (cpu 12 cache)
   ffff880c110cb8c0  (cpu 12 cache)
CPU 13 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0018068100  ffff880601a04000     1     32         32     0
  FREE / [ALLOCATED]
  [ffff880601a04000]
   ffff880601a040c0  (cpu 13 cache)
  [ffff880601a04180]
  [ffff880601a04240]
   ffff880601a04300  (cpu 13 cache)
  [ffff880601a043c0]
  [ffff880601a04480]
  [ffff880601a04540]
  [ffff880601a04600]
  [ffff880601a046c0]
  [ffff880601a04780]
  [ffff880601a04840]
  [ffff880601a04900]
  [ffff880601a049c0]
  [ffff880601a04a80]
  [ffff880601a04b40]
  [ffff880601a04c00]
   ffff880601a04cc0  (cpu 13 cache)
  [ffff880601a04d80]
  [ffff880601a04e40]
  [ffff880601a04f00]
  [ffff880601a04fc0]
  [ffff880601a05080]
  [ffff880601a05140]
  [ffff880601a05200]
  [ffff880601a052c0]
  [ffff880601a05380]
   ffff880601a05440  (cpu 13 cache)
  [ffff880601a05500]
   ffff880601a055c0  (cpu 13 cache)
  [ffff880601a05680]
  [ffff880601a05740]
CPU 14 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0031535c80  ffff880c54d72000     0     37         37     0
  FREE / [ALLOCATED]
   ffff880c54d72000  (cpu 14 cache)
   ffff880c54d720c0  (cpu 14 cache)
   ffff880c54d72180  (cpu 14 cache)
  [ffff880c54d72240]
   ffff880c54d72300  (cpu 14 cache)
   ffff880c54d723c0  (cpu 14 cache)
   ffff880c54d72480  (cpu 14 cache)
   ffff880c54d72540  (cpu 14 cache)
  [ffff880c54d72600]
   ffff880c54d726c0  (cpu 14 cache)
   ffff880c54d72780  (cpu 14 cache)
   ffff880c54d72840  (cpu 14 cache)
   ffff880c54d72900  (cpu 14 cache)
   ffff880c54d729c0  (cpu 14 cache)
   ffff880c54d72a80  (cpu 14 cache)
   ffff880c54d72b40  (cpu 14 cache)
   ffff880c54d72c00  (cpu 14 cache)
   ffff880c54d72cc0  (cpu 14 cache)
   ffff880c54d72d80  (cpu 14 cache)
   ffff880c54d72e40  (cpu 14 cache)
   ffff880c54d72f00  (cpu 14 cache)
   ffff880c54d72fc0  (cpu 14 cache)
   ffff880c54d73080  (cpu 14 cache)
   ffff880c54d73140  (cpu 14 cache)
   ffff880c54d73200  (cpu 14 cache)
   ffff880c54d732c0  (cpu 14 cache)
   ffff880c54d73380  (cpu 14 cache)
   ffff880c54d73440  (cpu 14 cache)
   ffff880c54d73500  (cpu 14 cache)
   ffff880c54d735c0  (cpu 14 cache)
   ffff880c54d73680  (cpu 14 cache)
   ffff880c54d73740  (cpu 14 cache)
   ffff880c54d73800  (cpu 14 cache)
   ffff880c54d738c0  (cpu 14 cache)
  [ffff880c54d73980]
   ffff880c54d73a40  (cpu 14 cache)
   ffff880c54d73b00  (cpu 14 cache)
CPU 15 SLAB:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0018064800  ffff880601920000     1     17         17     0
  FREE / [ALLOCATED]
  [ffff880601920000]
   ffff8806019200c0  (cpu 15 cache)
  [ffff880601920180]
  [ffff880601920240]
  [ffff880601920300]
  [ffff8806019203c0]
  [ffff880601920480]
  [ffff880601920540]
  [ffff880601920600]
  [ffff8806019206c0]
  [ffff880601920780]
  [ffff880601920840]
  [ffff880601920900]
  [ffff8806019209c0]
  [ffff880601920a80]
  [ffff880601920b40]
  [ffff880601920c00]
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff880c67000f00     0    118       16        9
NODE 0 PARTIAL:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0031611f80  ffff880c5847e000     0      2          2     0
  ffffea00295f5600  ffff880a57d58000     0     13         13     0
  ffffea00315b4a80  ffff880c56d2a000     0     37         37     0
  ffffea002d703080  ffff880b5c0c2000     0      1          1     0
  ffffea0031608c80  ffff880c58232000     0      1          1     0
  ffffea00318ab980  ffff880c62ae6000     0      9          9     0
  ffffea0031721800  ffff880c5c860000     0     12         12     0
  ffffea0031745d80  ffff880c5d176000     0      4          4     0
  ffffea003161ae80  ffff880c586ba000     0      4          4     0
  ffffea00318f8f00  ffff880c63e3c000     0      5          5     0
  ffffea003176c680  ffff880c5db1a000     0      1          1     0
  ffffea0031899e00  ffff880c62678000     0      5          5     0
  ffffea00318f6f00  ffff880c63dbc000     0     36         36     0
  ffffea0029196d00  ffff880a465b4000     0      2          2     0
  ffffea002f0a6c00  ffff880bc29b0000     0      2          2     0
  ffffea0029107f80  ffff880a441fe000     0      1          1     0
NODE 0 FULL:
  (not tracked)
KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
ffff880667800f00     1    237      140        7
NODE 1 PARTIAL:
  SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
  ffffea0011484c80  ffff880452132000     1      0          0     0
  ffffea0012727d80  ffff88049c9f6000     1      0          0     0
  ffffea000d770080  ffff88035dc02000     1      0          0     0
  ffffea00181c1b80  ffff88060706e000     1      0          0     0
  ffffea001311b880  ffff8804c46e2000     1     26         26     0
  ffffea0012632780  ffff880498c9e000     1      0          0     0
  ffffea00181ab880  ffff880606ae2000     1      1          1     0
  ffffea001825d380  ffff88060974e000     1     13         13     0
  ffffea00198ee080  ffff880663b82000     1      5          5     0
  ffffea0011485780  ffff88045215e000     1      1          1     0
  ffffea0018131800  ffff880604c60000     1      2          2     0
  ffffea000d8c9680  ffff88036325a000     1      2          2     0
  ffffea00180b9380  ffff880602e4e000     1      1          1     0
  ffffea0019878280  ffff880661e0a000     1      9          9     0
  ffffea0019926400  ffff880664990000     1     25         25     0
  ffffea00198b6780  ffff880662d9e000     1     40         40     0
  ffffea00198bfb00  ffff880662fec000     1     22         22     0
  ffffea001812a880  ffff880604aa2000     1      4          4     0
  ffffea00198eca00  ffff880663b28000     1     12         12     0
  ffffea000d3a7800  ffff88034e9e0000     1      1          1     0
  ffffea0019896180  ffff880662586000     1     11         11     0
  ffffea0019853200  ffff8806614c8000     1      2          2     0
  ffffea0011483200  ffff8804520c8000     1      2          2     0
  ffffea0019858000  ffff880661600000     1      3          3     0
  ffffea001148ff80  ffff8804523fe000     1     11         11     0
  ffffea000d3ac080  ffff88034eb02000     1      1          1     0
  ffffea0015fa8a80  ffff88057ea2a000     1      2          2     0
  ffffea0019851c80  ffff880661472000     1     32         32     0
  ffffea0018068880  ffff880601a22000     1      2          2     0
  ffffea0019901000  ffff880664040000     1     15         15     0
  ffffea0018167280  ffff8806059ca000     1      1          1     0
  ffffea001148bd80  ffff8804522f6000     1      2          2     0
  ffffea0019896d80  ffff8806625b6000     1      3          3     0
  ffffea0018094900  ffff880602524000     1      7          7     0
  ffffea00180bdd00  ffff880602f74000     1      2          2     0
  ffffea00181d6200  ffff880607588000     1     13         13     0
  ffffea0019925c80  ffff880664972000     1     34         34     0
  ffffea0012722600  ffff88049c898000     1      1          1     0
  ffffea001817cc80  ffff880605f32000     1      2          2     0
  ffffea0019852f00  ffff8806614bc000     1      2          2     0
  ffffea0018091000  ffff880602440000     1      1          1     0
  ffffea0012729e00  ffff88049ca78000     1      1          1     0
  ffffea001813df00  ffff880604f7c000     1      1          1     0
  ffffea001818e480  ffff880606392000     1      1          1     0
  ffffea001263d600  ffff880498f58000     1      1          1     0
  ffffea000d6e8c00  ffff88035ba30000     1      1          1     0
  ffffea001270fc80  ffff88049c3f2000     1      2          2     0
  ffffea0011f96700  ffff88047e59c000     1      1          1     0
  ffffea00180dd680  ffff88060375a000     1      1          1     0
  ffffea000d6e2600  ffff88035b898000     1      1          1     0
  ffffea00180ef080  ffff880603bc2000     1      1          1     0
  ffffea0018102000  ffff880604080000     1      2          2     0
  ffffea001810d900  ffff880604364000     1      1          1     0
  ffffea0011f98000  ffff88047e600000     1      1          1     0
  ffffea001812ca00  ffff880604b28000     1      2          2     0
  ffffea00067d7600  ffff88019f5d8000     1      2          2     0
  ffffea00180e9b00  ffff880603a6c000     1      2          2     0
  ffffea0018158f00  ffff88060563c000     1      1          1     0
  ffffea00181dc800  ffff880607720000     1      1          1     0
  ffffea00180e2e80  ffff8806038ba000     1      1          1     0
  ffffea00180b8080  ffff880602e02000     1      3          3     0
  ffffea0018118b00  ffff88060462c000     1      2          2     0
  ffffea0018193f00  ffff8806064fc000     1      1          1     0
  ffffea001270c500  ffff88049c314000     1      2          2     0
  ffffea001811d500  ffff880604754000     1      1          1     0
  ffffea001983e300  ffff880660f8c000     1     16         16     0
  ffffea0019901e80  ffff88066407a000     1     17         17     0
  ffffea0018060f00  ffff88060183c000     1      5          5     0
  ffffea000d3a5700  ffff88034e95c000     1      7          7     0
  ffffea00180b7400  ffff880602dd0000     1      2          2     0
  ffffea0012425400  ffff880490950000     1      1          1     0
  ffffea001806bb00  ffff880601aec000     1      1          1     0
  ffffea0018083b00  ffff8806020ec000     1      1          1     0
  ffffea00180f9400  ffff880603e50000     1      1          1     0
  ffffea0011484b80  ffff88045212e000     1      1          1     0
  ffffea00181a5b80  ffff88060696e000     1      1          1     0
  ffffea00181ec180  ffff880607b06000     1      1          1     0
  ffffea0019852780  ffff88066149e000     1      2          2     0
  ffffea00180dc180  ffff880603706000     1      1          1     0
  ffffea00067d5200  ffff88019f548000     1      1          1     0
  ffffea0015fa4100  ffff88057e904000     1      1          1     0
  ffffea00067d3180  ffff88019f4c6000     1      1          1     0
  ffffea0013fad680  ffff8804feb5a000     1      1          1     0
  ffffea0013fa0180  ffff8804fe806000     1      2          2     0
  ffffea0018064e80  ffff88060193a000     1      1          1     0
  ffffea0018176580  ffff880605d96000     1      1          1     0
  ffffea00067d5280  ffff88019f54a000     1      1          1     0
  ffffea0018107d80  ffff8806041f6000     1      1          1     0
  ffffea001311dc00  ffff8804c4770000     1      1          1     0
  ffffea000d779e00  ffff88035de78000     1      1          1     0
  ffffea001815e100  ffff880605784000     1      1          1     0
  ffffea0013faea00  ffff8804feba8000     1      1          1     0
  ffffea0018177d80  ffff880605df6000     1      1          1     0
  ffffea00067d3c00  ffff88019f4f0000     1      2          2     0
  ffffea001813c780  ffff880604f1e000     1      1          1     0
  ffffea0018084200  ffff880602108000     1      2          2     0
  ffffea0012635700  ffff880498d5c000     1      1          1     0
  ffffea0012717500  ffff88049c5d4000     1      1          1     0
  ffffea001242ea00  ffff880490ba8000     1      1          1     0
  ffffea000d6e7f00  ffff88035b9fc000     1      1          1     0
  ffffea001810d480  ffff880604352000     1      2          2     0
  ffffea001270eb00  ffff88049c3ac000     1      1          1     0
  ffffea001818db80  ffff88060636e000     1      1          1     0
  ffffea00067d6700  ffff88019f59c000     1      2          2     0
  ffffea0013fa0380  ffff8804fe80e000     1      2          2     0
  ffffea00181ad780  ffff880606b5e000     1      1          1     0
  ffffea0013fa6600  ffff8804fe998000     1      1          1     0
  ffffea000d3adc80  ffff88034eb72000     1      1          1     0
  ffffea0011f9cf80  ffff88047e73e000     1      3          3     0
  ffffea0012729100  ffff88049ca44000     1      1          1     0
  ffffea0013fae480  ffff8804feb92000     1      2          2     0
  ffffea00198d2e80  ffff8806634ba000     1      3          3     0
  ffffea0018194180  ffff880606506000     1      1          1     0
  ffffea0011f91a00  ffff88047e468000     1      1          1     0
  ffffea00180f7900  ffff880603de4000     1      1          1     0
  ffffea0018136280  ffff880604d8a000     1      1          1     0
  ffffea001987b500  ffff880661ed4000     1     18         18     0
  ffffea00181c7b80  ffff8806071ee000     1      2          2     0
  ffffea000d6e5000  ffff88035b940000     1      3          3     0
  ffffea0018172880  ffff880605ca2000     1     20         20     0
  ffffea0012632700  ffff880498c9c000     1      2          2     0
  ffffea0018151b80  ffff88060546e000     1      2          2     0
  ffffea0018119000  ffff880604640000     1      4          4     0
  ffffea00181aa600  ffff880606a98000     1      1          1     0
  ffffea00180f7f00  ffff880603dfc000     1      2          2     0
  ffffea00180dc200  ffff880603708000     1      1          1     0
  ffffea0018240800  ffff880609020000     1     18         18     0
  ffffea00198d5080  ffff880663542000     1      1          1     0
  ffffea00180cf080  ffff8806033c2000     1      1          1     0
  ffffea00198e3a80  ffff8806638ea000     1     17         17     0
  ffffea0018074380  ffff880601d0e000     1      1          1     0
  ffffea001807c900  ffff880601f24000     1      1          1     0
  ffffea0018144a00  ffff880605128000     1      2          2     0
  ffffea001148af80  ffff8804522be000     1      1          1     0
  ffffea0012422800  ffff8804908a0000     1     10         10     0
  ffffea000d8c7a80  ffff8803631ea000     1      1          1     0
  ffffea00180c5e00  ffff880603178000     1      2          2     0
  ffffea00180dcf80  ffff88060373e000     1      1          1     0
  ffffea001814ec80  ffff8806053b2000     1     32         32     0
  ffffea0019899e80  ffff88066267a000     1      4          4     0
NODE 1 FULL:
  (not tracked)

Thanks,
Shawn

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* [PATCH] net: mv643xx_eth: Add missing phy_addr_set in DT mode
From: Jason Gunthorpe @ 2013-11-05  0:27 UTC (permalink / raw)
  To: Sebastian Hesselbarth
  Cc: Andrew Lunn, Jason Cooper, netdev, linux-kernel, linux-arm-kernel,
	linuxppc-dev, David Miller, Lennert Buytenhek

Commit cc9d4598 'net: mv643xx_eth: use of_phy_connect if phy_node
present' made the call to phy_scan optional, if the DT has a link to
the phy node.

However phy_scan has the side effect of calling phy_addr_set, which
writes the phy MDIO address to the ethernet controller. If phy_addr_set
is not called, and the bootloader has not set the correct address then
the driver will fail to function.

Tested on Kirkwood.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
---
Cc: David Miller <davem@davemloft.net>
Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: netdev@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/net/ethernet/marvell/mv643xx_eth.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 2c210ec..00e43b5 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -2890,6 +2890,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
 					 PHY_INTERFACE_MODE_GMII);
 		if (!mp->phy)
 			err = -ENODEV;
+		phy_addr_set(mp, mp->phy->addr);
 	} else if (pd->phy_addr != MV643XX_ETH_PHY_NONE) {
 		mp->phy = phy_scan(mp, pd->phy_addr);
 
-- 
1.8.1.2

^ permalink raw reply related

* Re: [PATCH] net: mv643xx_eth: Add missing phy_addr_set in DT mode
From: Jason Cooper @ 2013-11-05  0:36 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Andrew Lunn, netdev, linux-kernel, linux-arm-kernel,
	Benjamin Herrenschmidt, linuxppc-dev, David Miller,
	Lennert Buytenhek, Sebastian Hesselbarth
In-Reply-To: <1383611239-14556-1-git-send-email-jgunthorpe@obsidianresearch.com>

Jason,

On Mon, Nov 04, 2013 at 05:27:19PM -0700, Jason Gunthorpe wrote:
> Commit cc9d4598 'net: mv643xx_eth: use of_phy_connect if phy_node

fyi: set core.abbrev = 12 in your git config, according to Linus, 7/8
was a bad decision...

> present' made the call to phy_scan optional, if the DT has a link to
> the phy node.
> 
> However phy_scan has the side effect of calling phy_addr_set, which
> writes the phy MDIO address to the ethernet controller. If phy_addr_set
> is not called, and the bootloader has not set the correct address then
> the driver will fail to function.
> 
> Tested on Kirkwood.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

Fixes: cc9d459894b0 "net: mv643xx_eth: use of_phy_connect if phy_node present"
Acked-by: Jason Cooper <jason@lakedaemon.net>

And it should be suitable for v3.11+

thx,

Jason.

^ permalink raw reply

* Re: [PATCH 00/20] Netfilter/IPVS updates for net-next
From: David Miller @ 2013-11-05  0:47 UTC (permalink / raw)
  To: pablo; +Cc: netfilter-devel, netdev
In-Reply-To: <1383601842-4570-1-git-send-email-pablo@netfilter.org>

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Mon,  4 Nov 2013 22:50:22 +0100

> This is another batch containing Netfilter/IPVS updates for your net-next
> tree, they are:
 ...
> You can pull these changes from:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master

Looks good, pulled, thanks Pablo.

^ permalink raw reply

* Re: [PATCH 0/5] nf_tables updates for net-next
From: David Miller @ 2013-11-05  0:49 UTC (permalink / raw)
  To: pablo; +Cc: netfilter-devel, netdev
In-Reply-To: <1383602721-5728-1-git-send-email-pablo@netfilter.org>

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Mon,  4 Nov 2013 23:05:16 +0100

> This batch contains fives nf_tables patches for your net-next tree,
> they are:
> 
> * Fix possible use after free in the module removal path of the
>   x_tables compatibility layer, from Dan Carpenter.
> 
> * Add filter chain type for the bridge family, from myself.
> 
> * Fix Kconfig dependencies of the nf_tables bridge family with
>   the core, from myself.
> 
> * Fix sparse warnings in nft_nat, from Tomasz Bursztyka.
> 
> * Remove duplicated include in the IPv4 family support for nf_tables,
>   from Wei Yongjun.
> 
> You can pull these changes from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nftables.git master

Also looks fine, pulled, thanks!

^ permalink raw reply

* Re: [PATCH net-next] ipv4: introduce new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE
From: David Miller @ 2013-11-05  0:52 UTC (permalink / raw)
  To: hannes; +Cc: netdev, fweimer
In-Reply-To: <20131104232541.GD8832@order.stressinduktion.org>

From: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date: Tue, 5 Nov 2013 00:25:41 +0100

> Sorry for being so pushy about this patch! :|

I haven't ruled out applying your original patch, could you please
just repost it so that it gets queued up anew in patchwork?

I'll get to resolving this, please be patient.

Thanks.

^ permalink raw reply

* Re: [PATCH net-next] tcp: enable sockets to use MSG_FASTOPEN by default
From: David Miller @ 2013-11-05  0:58 UTC (permalink / raw)
  To: ycheng; +Cc: edumazet, netdev, ncardwell, sivasankar
In-Reply-To: <1383236372-1317-1-git-send-email-ycheng@google.com>

From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 31 Oct 2013 09:19:32 -0700

> Applications have started to use Fast Open (e.g., Chrome browser has
> such an optional flag) and the feature has gone through several
> generations of kernels since 3.7 with many real network tests. It's
> time to enable this flag by default for applications to test more
> conveniently and extensively.
> 
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>

Applied.

^ permalink raw reply

* Re: [PATCH net-next] tcp: properly handle stretch acks in slow start
From: David Miller @ 2013-11-05  0:58 UTC (permalink / raw)
  To: ycheng; +Cc: netdev, edumazet, ncardwell, vanj
In-Reply-To: <1383242851-26748-1-git-send-email-ycheng@google.com>

From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 31 Oct 2013 11:07:31 -0700

> Slow start now increases cwnd by 1 if an ACK acknowledges some packets,
> regardless the number of packets. Consequently slow start performance
> is highly dependent on the degree of the stretch ACKs caused by
> receiver or network ACK compression mechanisms (e.g., delayed-ACK,
> GRO, etc).  But slow start algorithm is to send twice the amount of
> packets of packets left so it should process a stretch ACK of degree
> N as if N ACKs of degree 1, then exits when cwnd exceeds ssthresh. A
> follow up patch will use the remainder of the N (if greater than 1)
> to adjust cwnd in the congestion avoidance phase.
> 
> In addition this patch retires the experimental limited slow start
> (LSS) feature. LSS has multiple drawbacks but questionable benefit. The
> fractional cwnd increase in LSS requires a loop in slow start even
> though it's rarely used. Configuring such an increase step via a global
> sysctl on different BDPS seems hard. Finally and most importantly the
> slow start overshoot concern is now better covered by the Hybrid slow
> start (hystart) enabled by default.
> 
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>
> Signed-off-by: Eric Dumazet <edumazet@google.com>

Applied.

^ permalink raw reply

* Re: [PATCH net-next] ipv4: introduce new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE
From: Hannes Frederic Sowa @ 2013-11-05  0:58 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, fweimer
In-Reply-To: <20131104.195230.1532629606565920528.davem@davemloft.net>

On Mon, Nov 04, 2013 at 07:52:30PM -0500, David Miller wrote:
> From: Hannes Frederic Sowa <hannes@stressinduktion.org>
> Date: Tue, 5 Nov 2013 00:25:41 +0100
> 
> > Sorry for being so pushy about this patch! :|
> 
> I haven't ruled out applying your original patch, could you please
> just repost it so that it gets queued up anew in patchwork?

Ok, will do, thanks!

> I'll get to resolving this, please be patient.

Sorry, I did not want to rush you.

Greetings,

  Hannes

^ permalink raw reply

* Re: pull-request: can-next 2013-10-31
From: David Miller @ 2013-11-05  1:00 UTC (permalink / raw)
  To: mkl; +Cc: netdev, linux-can, kernel
In-Reply-To: <5272B844.9010100@pengutronix.de>

From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: Thu, 31 Oct 2013 21:06:28 +0100

> here's a pull request for net-next.
> 
> It includes a patch by Oliver Hartkopp et al. that adds documentation
> for the broadcast manager to Documentation/networking/can.txt. Three
> patches by me that clean up the netlink handling code in the CAN core.
> And another patch that removes a not needed function from the ti_hecc
> driver.

Pulled, thanks a lot Marc.

^ permalink raw reply

* Re: [net-next PATCH V2] net: codel: Avoid undefined behavior from signed overflow
From: David Miller @ 2013-11-05  1:01 UTC (permalink / raw)
  To: brouer; +Cc: netdev, eric.dumazet, paulmck, dave.taht
In-Reply-To: <20131031211055.10355.98182.stgit@dragon>

From: Jesper Dangaard Brouer <brouer@redhat.com>
Date: Thu, 31 Oct 2013 22:10:55 +0100

> From: Jesper Dangaard Brouer <netoptimizer@brouer.com>
> 
> As described in commit 5a581b367 (jiffies: Avoid undefined
> behavior from signed overflow), according to the C standard
> 3.4.3p3, overflow of a signed integer results in undefined
> behavior.
> 
> To fix this, do as the above commit, and do an unsigned
> subtraction, and interpreting the result as a signed
> two's-complement number.  This is based on the theory from
> RFC 1982 and is nicely described in wikipedia here:
>  https://en.wikipedia.org/wiki/Serial_number_arithmetic#General_Solution
> 
> A side-note, I have seen practical issues with the previous logic
> when dealing with 16-bit, on a 64-bit machine (gcc version
> 4.4.5). This were 32-bit, which I have not observed issues with.
> 
> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Signed-off-by: Jesper Dangaard Brouer <netoptimizer@brouer.com>

Applied, thanks for working through this Jesper.

^ permalink raw reply

* Re: [PATCH net-next] vxlan: Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
From: David Miller @ 2013-11-05  1:03 UTC (permalink / raw)
  To: duanj.fnst; +Cc: netdev
In-Reply-To: <52733797.3010305@cn.fujitsu.com>

From: Duan Jiong <duanj.fnst@cn.fujitsu.com>
Date: Fri, 01 Nov 2013 13:09:43 +0800

> trivial patch converting ERR_PTR(PTR_ERR()) into ERR_CAST().
> No functional changes.
> 
> Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>

Applied, thank you.

^ permalink raw reply

* Re: [PATCH net-next V3 1/2] net: introduce skb_coalesce_rx_frag()
From: David Miller @ 2013-11-05  1:04 UTC (permalink / raw)
  To: jasowang
  Cc: mwdalton, mst, netdev, linux-kernel, virtualization, kmindg,
	edumazet
In-Reply-To: <1383286068-10421-1-git-send-email-jasowang@redhat.com>

From: Jason Wang <jasowang@redhat.com>
Date: Fri,  1 Nov 2013 14:07:47 +0800

> Sometimes we need to coalesce the rx frags to avoid frag list. One example is
> virtio-net driver which tries to use small frags for both MTU sized packet and
> GSO packet. So this patch introduce skb_coalesce_rx_frag() to do this.
> 
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Michael Dalton <mwdalton@google.com>
> Cc: Eric Dumazet <edumazet@google.com>
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> Changes from V2:
> - remove the skb_frag_unref() and let the called to put the page reference
> Changes from V1:
> - remove the useless off parameter.

Applied.

^ permalink raw reply

* Re: [PATCH net-next V3 2/2] virtio-net: coalesce rx frags when possible during rx
From: David Miller @ 2013-11-05  1:04 UTC (permalink / raw)
  To: jasowang
  Cc: mwdalton, mst, netdev, linux-kernel, virtualization, kmindg,
	edumazet
In-Reply-To: <1383286068-10421-2-git-send-email-jasowang@redhat.com>

From: Jason Wang <jasowang@redhat.com>
Date: Fri,  1 Nov 2013 14:07:48 +0800

> Commit 2613af0ed18a11d5c566a81f9a6510b73180660a (virtio_net: migrate mergeable
> rx buffers to page frag allocators) try to increase the payload/truesize for
> MTU-sized traffic. But this will introduce the extra overhead for GSO packets
> received because of the frag list. This commit tries to reduce this issue by
> coalesce the possible rx frags when possible during rx. Test result shows the
> about 15% improvement on full size GSO packet receiving (and even better than
> before commit 2613af0ed18a11d5c566a81f9a6510b73180660a).
...
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Michael Dalton <mwdalton@google.com>
> Cc: Eric Dumazet <edumazet@google.com>
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> Acked-by: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> Changes from V2:
> - call put_page() instead of depending on skb_coalesce_rx_frag()

Looks fantastic, applied, thanks Jason!

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox