diff --git a/[refs] b/[refs] index 73c0e19ab4de..bd4fec63c07f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9fbfca013176f9b90d186f3b446fd93e4d972b25 +refs/heads/master: d1fb62796cdac6899ebd4319e4a610684db063e9 diff --git a/trunk/net/tipc/eth_media.c b/trunk/net/tipc/eth_media.c index 81253d0b24b9..673fdf0b3222 100644 --- a/trunk/net/tipc/eth_media.c +++ b/trunk/net/tipc/eth_media.c @@ -142,6 +142,16 @@ static int enable_bearer(struct tipc_bearer *tb_ptr) struct eth_bearer *eb_ptr = ð_bearers[0]; struct eth_bearer *stop = ð_bearers[MAX_ETH_BEARERS]; char *driver_name = strchr((const char *)tb_ptr->name, ':') + 1; + int pending_dev = 0; + + /* Find unused Ethernet bearer structure */ + + while (eb_ptr->dev) { + if (!eb_ptr->bearer) + pending_dev++; + if (++eb_ptr == stop) + return pending_dev ? -EAGAIN : -EDQUOT; + } /* Find device with specified name */