]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/core/rtnetlink.c
Merge tag 'v2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / net / core / rtnetlink.c
index f78d821bd9357dc3a88feb1259219478268858a3..841c287ef40a4706c3465425880f95abd608e954 100644 (file)
@@ -299,14 +299,6 @@ static void __rtnl_kill_links(struct net *net, struct rtnl_link_ops *ops)
        unregister_netdevice_many(&list_kill);
 }
 
-void rtnl_kill_links(struct net *net, struct rtnl_link_ops *ops)
-{
-       rtnl_lock();
-       __rtnl_kill_links(net, ops);
-       rtnl_unlock();
-}
-EXPORT_SYMBOL_GPL(rtnl_kill_links);
-
 /**
  * __rtnl_link_unregister - Unregister rtnl_link_ops from rtnetlink.
  * @ops: struct rtnl_link_ops * to unregister
@@ -355,16 +347,17 @@ static size_t rtnl_link_get_size(const struct net_device *dev)
        if (!ops)
                return 0;
 
-       size = nlmsg_total_size(sizeof(struct nlattr)) + /* IFLA_LINKINFO */
-              nlmsg_total_size(strlen(ops->kind) + 1);  /* IFLA_INFO_KIND */
+       size = nla_total_size(sizeof(struct nlattr)) + /* IFLA_LINKINFO */
+              nla_total_size(strlen(ops->kind) + 1);  /* IFLA_INFO_KIND */
 
        if (ops->get_size)
                /* IFLA_INFO_DATA + nested data */
-               size += nlmsg_total_size(sizeof(struct nlattr)) +
+               size += nla_total_size(sizeof(struct nlattr)) +
                        ops->get_size(dev);
 
        if (ops->get_xstats_size)
-               size += ops->get_xstats_size(dev);      /* IFLA_INFO_XSTATS */
+               /* IFLA_INFO_XSTATS */
+               size += nla_total_size(ops->get_xstats_size(dev));
 
        return size;
 }
@@ -612,36 +605,7 @@ static void copy_rtnl_link_stats(struct rtnl_link_stats *a,
 
 static void copy_rtnl_link_stats64(void *v, const struct rtnl_link_stats64 *b)
 {
-       struct rtnl_link_stats64 a;
-
-       a.rx_packets = b->rx_packets;
-       a.tx_packets = b->tx_packets;
-       a.rx_bytes = b->rx_bytes;
-       a.tx_bytes = b->tx_bytes;
-       a.rx_errors = b->rx_errors;
-       a.tx_errors = b->tx_errors;
-       a.rx_dropped = b->rx_dropped;
-       a.tx_dropped = b->tx_dropped;
-
-       a.multicast = b->multicast;
-       a.collisions = b->collisions;
-
-       a.rx_length_errors = b->rx_length_errors;
-       a.rx_over_errors = b->rx_over_errors;
-       a.rx_crc_errors = b->rx_crc_errors;
-       a.rx_frame_errors = b->rx_frame_errors;
-       a.rx_fifo_errors = b->rx_fifo_errors;
-       a.rx_missed_errors = b->rx_missed_errors;
-
-       a.tx_aborted_errors = b->tx_aborted_errors;
-       a.tx_carrier_errors = b->tx_carrier_errors;
-       a.tx_fifo_errors = b->tx_fifo_errors;
-       a.tx_heartbeat_errors = b->tx_heartbeat_errors;
-       a.tx_window_errors = b->tx_window_errors;
-
-       a.rx_compressed = b->rx_compressed;
-       a.tx_compressed = b->tx_compressed;
-       memcpy(v, &a, sizeof(a));
+       memcpy(v, b, sizeof(*b));
 }
 
 /* All VF info */