|
@@ -2121,12 +2121,13 @@ EXPORT_SYMBOL(rtmsg_ifinfo);
|
|
|
static int nlmsg_populate_fdb_fill(struct sk_buff *skb,
|
|
|
struct net_device *dev,
|
|
|
u8 *addr, u32 pid, u32 seq,
|
|
|
- int type, unsigned int flags)
|
|
|
+ int type, unsigned int flags,
|
|
|
+ int nlflags)
|
|
|
{
|
|
|
struct nlmsghdr *nlh;
|
|
|
struct ndmsg *ndm;
|
|
|
|
|
|
- nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), NLM_F_MULTI);
|
|
|
+ nlh = nlmsg_put(skb, pid, seq, type, sizeof(*ndm), nlflags);
|
|
|
if (!nlh)
|
|
|
return -EMSGSIZE;
|
|
|
|
|
@@ -2164,7 +2165,7 @@ static void rtnl_fdb_notify(struct net_device *dev, u8 *addr, int type)
|
|
|
if (!skb)
|
|
|
goto errout;
|
|
|
|
|
|
- err = nlmsg_populate_fdb_fill(skb, dev, addr, 0, 0, type, NTF_SELF);
|
|
|
+ err = nlmsg_populate_fdb_fill(skb, dev, addr, 0, 0, type, NTF_SELF, 0);
|
|
|
if (err < 0) {
|
|
|
kfree_skb(skb);
|
|
|
goto errout;
|
|
@@ -2389,7 +2390,8 @@ static int nlmsg_populate_fdb(struct sk_buff *skb,
|
|
|
|
|
|
err = nlmsg_populate_fdb_fill(skb, dev, ha->addr,
|
|
|
portid, seq,
|
|
|
- RTM_NEWNEIGH, NTF_SELF);
|
|
|
+ RTM_NEWNEIGH, NTF_SELF,
|
|
|
+ NLM_F_MULTI);
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
skip:
|