]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
dcbnl: Use dcbnl_newmsg() where possible
authorThomas Graf <tgraf@suug.ch>
Wed, 13 Jun 2012 02:54:57 +0000 (02:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Jun 2012 22:46:34 +0000 (15:46 -0700)
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dcb/dcbnl.c

index 5ed71674a4a134e0173852a491efba98dce3a332..4d9e0ef23d9fe681046d7953968e918b3de5ae3b 100644 (file)
@@ -1328,27 +1328,16 @@ static int dcbnl_notify(struct net_device *dev, int event, int cmd,
        struct net *net = dev_net(dev);
        struct sk_buff *skb;
        struct nlmsghdr *nlh;
-       struct dcbmsg *dcb;
        const struct dcbnl_rtnl_ops *ops = dev->dcbnl_ops;
        int err;
 
        if (!ops)
                return -EOPNOTSUPP;
 
-       skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
+       skb = dcbnl_newmsg(event, cmd, pid, seq, 0, &nlh);
        if (!skb)
                return -ENOBUFS;
 
-       nlh = nlmsg_put(skb, pid, 0, event, sizeof(*dcb), 0);
-       if (nlh == NULL) {
-               nlmsg_free(skb);
-               return -EMSGSIZE;
-       }
-
-       dcb = NLMSG_DATA(nlh);
-       dcb->dcb_family = AF_UNSPEC;
-       dcb->cmd = cmd;
-
        if (dcbx_ver == DCB_CAP_DCBX_VER_IEEE)
                err = dcbnl_ieee_fill(skb, dev);
        else
@@ -1356,8 +1345,7 @@ static int dcbnl_notify(struct net_device *dev, int event, int cmd,
 
        if (err < 0) {
                /* Report error to broadcast listeners */
-               nlmsg_cancel(skb, nlh);
-               kfree_skb(skb);
+               nlmsg_free(skb);
                rtnl_set_sk_err(net, RTNLGRP_DCB, err);
        } else {
                /* End nlmsg and notify broadcast listeners */