[NETROM]: Introduct stuct nr_private
Ralf Baechle [Mon, 12 Sep 2005 21:28:03 +0000 (14:28 -0700)]
NET/ROM's virtual interfaces don't have a proper private data
structure yet.  Create struct nr_private and put the statistics there.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

include/net/netrom.h
net/netrom/af_netrom.c
net/netrom/nr_dev.c

index ad05d7a..a6bf6e0 100644 (file)
@@ -6,6 +6,7 @@
 
 #ifndef _NETROM_H
 #define _NETROM_H 
+
 #include <linux/netrom.h>
 #include <linux/list.h>
 #include <net/sock.h>
@@ -58,6 +59,10 @@ enum {
 #define NR_MAX_WINDOW_SIZE             127                     /* Maximum Window Allowable - 127 */
 #define        NR_MAX_PACKET_SIZE              236                     /* Maximum Packet Length - 236 */
 
+struct nr_private {
+       struct net_device_stats stats;
+};
+
 struct nr_sock {
        struct sock             sock;
        ax25_address            user_addr, source_addr, dest_addr;
index 8c3d3a7..e5d82d7 100644 (file)
@@ -1392,8 +1392,7 @@ static int __init nr_proto_init(void)
                struct net_device *dev;
 
                sprintf(name, "nr%d", i);
-               dev = alloc_netdev(sizeof(struct net_device_stats), name,
-                                         nr_setup);
+               dev = alloc_netdev(sizeof(struct nr_private), name, nr_setup);
                if (!dev) {
                        printk(KERN_ERR "NET/ROM: nr_proto_init - unable to allocate device structure\n");
                        goto fail;
index 909aa7f..4e66eef 100644 (file)
@@ -160,10 +160,9 @@ static int nr_close(struct net_device *dev)
 
 static int nr_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct net_device_stats *stats = netdev_priv(dev);
-       unsigned int len;
-
-       len = skb->len;
+       struct nr_private *nr = netdev_priv(dev);
+       struct net_device_stats *stats = &nr->stats;
+       unsigned int len = skb->len;
 
        if (!nr_route_frame(skb, NULL)) {
                kfree_skb(skb);
@@ -179,7 +178,9 @@ static int nr_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static struct net_device_stats *nr_get_stats(struct net_device *dev)
 {
-       return netdev_priv(dev);
+       struct nr_private *nr = netdev_priv(dev);
+
+       return &nr->stats;
 }
 
 void nr_setup(struct net_device *dev)