diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-19 11:21:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-19 11:21:13 -0400 |
commit | 309d4b000b0c427dafece9111682dd15fbaae6a6 (patch) | |
tree | 51d3878c3c285009e9c83ae5e6e660910ee78e51 | |
parent | 61c901c56905256a4a4d7c2af92d66200a2ee7f2 (diff) | |
parent | 734b65417b24d6eea3e3d7457e1f11493890ee1d (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking changes from David Miller:
"Ok, we should be good to go now"
1) We have to statically initialize the init_net device list head rather
than do so in an initcall, otherwise netprio_cgroup crashes if it's
built statically rather than modular (Mark D. Rustad)
2) Fix SKB null oopser in CIPSO ipv4 option processing (Paul Moore)
3) Qlogic maintainers update (Anirban Chakraborty)
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
net: Statically initialize init_net.dev_base_head
MAINTAINERS: Changes in qlcnic and qlge maintainers list
cipso: don't follow a NULL pointer when setsockopt() is called
-rw-r--r-- | MAINTAINERS | 3 | ||||
-rw-r--r-- | net/core/dev.c | 3 | ||||
-rw-r--r-- | net/core/net_namespace.c | 4 | ||||
-rw-r--r-- | net/ipv4/cipso_ipv4.c | 6 |
4 files changed, 10 insertions, 6 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index c82c343168e8..fe643e7b9df6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -5565,7 +5565,7 @@ F: Documentation/networking/LICENSE.qla3xxx | |||
5565 | F: drivers/net/ethernet/qlogic/qla3xxx.* | 5565 | F: drivers/net/ethernet/qlogic/qla3xxx.* |
5566 | 5566 | ||
5567 | QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER | 5567 | QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER |
5568 | M: Anirban Chakraborty <anirban.chakraborty@qlogic.com> | 5568 | M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> |
5569 | M: Sony Chacko <sony.chacko@qlogic.com> | 5569 | M: Sony Chacko <sony.chacko@qlogic.com> |
5570 | M: linux-driver@qlogic.com | 5570 | M: linux-driver@qlogic.com |
5571 | L: netdev@vger.kernel.org | 5571 | L: netdev@vger.kernel.org |
@@ -5573,7 +5573,6 @@ S: Supported | |||
5573 | F: drivers/net/ethernet/qlogic/qlcnic/ | 5573 | F: drivers/net/ethernet/qlogic/qlcnic/ |
5574 | 5574 | ||
5575 | QLOGIC QLGE 10Gb ETHERNET DRIVER | 5575 | QLOGIC QLGE 10Gb ETHERNET DRIVER |
5576 | M: Anirban Chakraborty <anirban.chakraborty@qlogic.com> | ||
5577 | M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> | 5576 | M: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> |
5578 | M: Ron Mercer <ron.mercer@qlogic.com> | 5577 | M: Ron Mercer <ron.mercer@qlogic.com> |
5579 | M: linux-driver@qlogic.com | 5578 | M: linux-driver@qlogic.com |
diff --git a/net/core/dev.c b/net/core/dev.c index 0f28a9e0b8ad..1cb0d8a6aa6c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -6283,7 +6283,8 @@ static struct hlist_head *netdev_create_hash(void) | |||
6283 | /* Initialize per network namespace state */ | 6283 | /* Initialize per network namespace state */ |
6284 | static int __net_init netdev_init(struct net *net) | 6284 | static int __net_init netdev_init(struct net *net) |
6285 | { | 6285 | { |
6286 | INIT_LIST_HEAD(&net->dev_base_head); | 6286 | if (net != &init_net) |
6287 | INIT_LIST_HEAD(&net->dev_base_head); | ||
6287 | 6288 | ||
6288 | net->dev_name_head = netdev_create_hash(); | 6289 | net->dev_name_head = netdev_create_hash(); |
6289 | if (net->dev_name_head == NULL) | 6290 | if (net->dev_name_head == NULL) |
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index dddbacb8f28c..42f1e1c7514f 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c | |||
@@ -27,7 +27,9 @@ static DEFINE_MUTEX(net_mutex); | |||
27 | LIST_HEAD(net_namespace_list); | 27 | LIST_HEAD(net_namespace_list); |
28 | EXPORT_SYMBOL_GPL(net_namespace_list); | 28 | EXPORT_SYMBOL_GPL(net_namespace_list); |
29 | 29 | ||
30 | struct net init_net; | 30 | struct net init_net = { |
31 | .dev_base_head = LIST_HEAD_INIT(init_net.dev_base_head), | ||
32 | }; | ||
31 | EXPORT_SYMBOL(init_net); | 33 | EXPORT_SYMBOL(init_net); |
32 | 34 | ||
33 | #define INITIAL_NET_GEN_PTRS 13 /* +1 for len +2 for rcu_head */ | 35 | #define INITIAL_NET_GEN_PTRS 13 /* +1 for len +2 for rcu_head */ |
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c index c48adc565e92..667c1d4ca984 100644 --- a/net/ipv4/cipso_ipv4.c +++ b/net/ipv4/cipso_ipv4.c | |||
@@ -1725,8 +1725,10 @@ int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option) | |||
1725 | case CIPSO_V4_TAG_LOCAL: | 1725 | case CIPSO_V4_TAG_LOCAL: |
1726 | /* This is a non-standard tag that we only allow for | 1726 | /* This is a non-standard tag that we only allow for |
1727 | * local connections, so if the incoming interface is | 1727 | * local connections, so if the incoming interface is |
1728 | * not the loopback device drop the packet. */ | 1728 | * not the loopback device drop the packet. Further, |
1729 | if (!(skb->dev->flags & IFF_LOOPBACK)) { | 1729 | * there is no legitimate reason for setting this from |
1730 | * userspace so reject it if skb is NULL. */ | ||
1731 | if (skb == NULL || !(skb->dev->flags & IFF_LOOPBACK)) { | ||
1730 | err_offset = opt_iter; | 1732 | err_offset = opt_iter; |
1731 | goto validate_return_locked; | 1733 | goto validate_return_locked; |
1732 | } | 1734 | } |