Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
@@ -1627,13 +1627,13 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
cb->nlh->nlmsg_seq, 0,
|
||||
flags,
|
||||
ext_filter_mask);
|
||||
/* If we ran out of room on the first message,
|
||||
* we're in trouble
|
||||
*/
|
||||
WARN_ON((err == -EMSGSIZE) && (skb->len == 0));
|
||||
|
||||
if (err < 0)
|
||||
goto out;
|
||||
if (err < 0) {
|
||||
if (likely(skb->len))
|
||||
goto out;
|
||||
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
nl_dump_check_consistent(cb, nlmsg_hdr(skb));
|
||||
cont:
|
||||
@@ -1641,10 +1641,12 @@ cont:
|
||||
}
|
||||
}
|
||||
out:
|
||||
err = skb->len;
|
||||
out_err:
|
||||
cb->args[1] = idx;
|
||||
cb->args[0] = h;
|
||||
|
||||
return skb->len;
|
||||
return err;
|
||||
}
|
||||
|
||||
int rtnl_nla_parse_ifla(struct nlattr **tb, const struct nlattr *head, int len,
|
||||
@@ -3453,8 +3455,12 @@ static int rtnl_bridge_getlink(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
err = br_dev->netdev_ops->ndo_bridge_getlink(
|
||||
skb, portid, seq, dev,
|
||||
filter_mask, NLM_F_MULTI);
|
||||
if (err < 0 && err != -EOPNOTSUPP)
|
||||
break;
|
||||
if (err < 0 && err != -EOPNOTSUPP) {
|
||||
if (likely(skb->len))
|
||||
break;
|
||||
|
||||
goto out_err;
|
||||
}
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
@@ -3465,16 +3471,22 @@ static int rtnl_bridge_getlink(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
seq, dev,
|
||||
filter_mask,
|
||||
NLM_F_MULTI);
|
||||
if (err < 0 && err != -EOPNOTSUPP)
|
||||
break;
|
||||
if (err < 0 && err != -EOPNOTSUPP) {
|
||||
if (likely(skb->len))
|
||||
break;
|
||||
|
||||
goto out_err;
|
||||
}
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
err = skb->len;
|
||||
out_err:
|
||||
rcu_read_unlock();
|
||||
cb->args[0] = idx;
|
||||
|
||||
return skb->len;
|
||||
return err;
|
||||
}
|
||||
|
||||
static inline size_t bridge_nlmsg_size(void)
|
||||
|
Reference in New Issue
Block a user