summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-10-26 16:08:52 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2011-10-26 16:08:52 +0200
commit37d96c28ecf0af1215bb6bbf580dbb1fabb5a6ec (patch)
tree408d5c54b0601dfc20847c78799ddffc1bf75750 /net
parentMerge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/... (diff)
parentcaif: Fix BUG() with network namespaces (diff)
downloadlinux-37d96c28ecf0af1215bb6bbf580dbb1fabb5a6ec.tar.xz
linux-37d96c28ecf0af1215bb6bbf580dbb1fabb5a6ec.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: caif: Fix BUG() with network namespaces net: make bonding slaves honour master's skb->priority net: Unlock sock before calling sk_free()
Diffstat (limited to 'net')
-rw-r--r--net/caif/caif_dev.c5
-rw-r--r--net/core/sock.c1
2 files changed, 4 insertions, 2 deletions
diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
index 7f9ac0742d19..47fc8f3a47cf 100644
--- a/net/caif/caif_dev.c
+++ b/net/caif/caif_dev.c
@@ -212,8 +212,7 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
enum cfcnfg_phy_preference pref;
enum cfcnfg_phy_type phy_type;
struct cfcnfg *cfg;
- struct caif_device_entry_list *caifdevs =
- caif_device_list(dev_net(dev));
+ struct caif_device_entry_list *caifdevs;
if (dev->type != ARPHRD_CAIF)
return 0;
@@ -222,6 +221,8 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
if (cfg == NULL)
return 0;
+ caifdevs = caif_device_list(dev_net(dev));
+
switch (what) {
case NETDEV_REGISTER:
caifd = caif_device_alloc(dev);
diff --git a/net/core/sock.c b/net/core/sock.c
index 5a087626bb3a..4ed7b1d12f5e 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1257,6 +1257,7 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority)
/* It is still raw copy of parent, so invalidate
* destructor and make plain sk_free() */
newsk->sk_destruct = NULL;
+ bh_unlock_sock(newsk);
sk_free(newsk);
newsk = NULL;
goto out;