diff --git a/[refs] b/[refs] index 978d4f868cd1..008d2fa69cf1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eaa7dcde1d092c792cbca4be81d2e506e84c6122 +refs/heads/master: 4c0833bcd4d302fe783b9f8286a00ca2999d6200 diff --git a/trunk/net/bridge/br_multicast.c b/trunk/net/bridge/br_multicast.c index 326e599f83fb..85a0398b221e 100644 --- a/trunk/net/bridge/br_multicast.c +++ b/trunk/net/bridge/br_multicast.c @@ -654,11 +654,13 @@ static struct net_bridge_mdb_entry *br_multicast_new_group( struct net_bridge_mdb_htable *mdb; struct net_bridge_mdb_entry *mp; int hash; + int err; mdb = rcu_dereference_protected(br->mdb, 1); if (!mdb) { - if (br_mdb_rehash(&br->mdb, BR_HASH_SIZE, 0)) - return NULL; + err = br_mdb_rehash(&br->mdb, BR_HASH_SIZE, 0); + if (err) + return ERR_PTR(err); goto rehash; } @@ -680,7 +682,7 @@ static struct net_bridge_mdb_entry *br_multicast_new_group( mp = kzalloc(sizeof(*mp), GFP_ATOMIC); if (unlikely(!mp)) - goto out; + return ERR_PTR(-ENOMEM); mp->br = br; mp->addr = *group; @@ -713,7 +715,7 @@ static int br_multicast_add_group(struct net_bridge *br, mp = br_multicast_new_group(br, port, group); err = PTR_ERR(mp); - if (unlikely(IS_ERR(mp) || !mp)) + if (IS_ERR(mp)) goto err; if (!port) {