diff options
author | Jeff Garzik <jeff@garzik.org> | 2007-10-03 20:41:50 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:51:16 -0400 |
commit | 09f75cd7bf13720738e6a196cc0107ce9a5bd5a0 (patch) | |
tree | 4c85b0b395abe7f88c87162fc22570e5de255cb1 /drivers/net/mipsnet.c | |
parent | ff8ac60948ba819b89e9c87083e8050fc2f89999 (diff) |
[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code
We now have struct net_device_stats embedded in struct net_device,
and the default ->get_stats() hook does the obvious thing for us.
Run through drivers/net/* and remove the driver-local storage of
statistics, and driver-local ->get_stats() hook where applicable.
This was just the low-hanging fruit in drivers/net; plenty more drivers
remain to be updated.
[ Resolved conflicts with napi_struct changes and fix sunqe build
regression... -DaveM ]
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/mipsnet.c')
-rw-r--r-- | drivers/net/mipsnet.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/drivers/net/mipsnet.c b/drivers/net/mipsnet.c index c0f5ad38fb17..d593175ab6f0 100644 --- a/drivers/net/mipsnet.c +++ b/drivers/net/mipsnet.c | |||
@@ -21,10 +21,6 @@ | |||
21 | 21 | ||
22 | #define mipsnet_reg_address(dev, field) (dev->base_addr + field_offset(field)) | 22 | #define mipsnet_reg_address(dev, field) (dev->base_addr + field_offset(field)) |
23 | 23 | ||
24 | struct mipsnet_priv { | ||
25 | struct net_device_stats stats; | ||
26 | }; | ||
27 | |||
28 | static char mipsnet_string[] = "mipsnet"; | 24 | static char mipsnet_string[] = "mipsnet"; |
29 | 25 | ||
30 | /* | 26 | /* |
@@ -49,7 +45,6 @@ static inline ssize_t mipsnet_put_todevice(struct net_device *dev, | |||
49 | { | 45 | { |
50 | int count_to_go = skb->len; | 46 | int count_to_go = skb->len; |
51 | char *buf_ptr = skb->data; | 47 | char *buf_ptr = skb->data; |
52 | struct mipsnet_priv *mp = netdev_priv(dev); | ||
53 | 48 | ||
54 | pr_debug("%s: %s(): telling MIPSNET txDataCount(%d)\n", | 49 | pr_debug("%s: %s(): telling MIPSNET txDataCount(%d)\n", |
55 | dev->name, __FUNCTION__, skb->len); | 50 | dev->name, __FUNCTION__, skb->len); |
@@ -63,8 +58,8 @@ static inline ssize_t mipsnet_put_todevice(struct net_device *dev, | |||
63 | outb(*buf_ptr, mipsnet_reg_address(dev, txDataBuffer)); | 58 | outb(*buf_ptr, mipsnet_reg_address(dev, txDataBuffer)); |
64 | } | 59 | } |
65 | 60 | ||
66 | mp->stats.tx_packets++; | 61 | dev->stats.tx_packets++; |
67 | mp->stats.tx_bytes += skb->len; | 62 | dev->stats.tx_bytes += skb->len; |
68 | 63 | ||
69 | return skb->len; | 64 | return skb->len; |
70 | } | 65 | } |
@@ -87,10 +82,9 @@ static inline ssize_t mipsnet_get_fromdev(struct net_device *dev, size_t count) | |||
87 | { | 82 | { |
88 | struct sk_buff *skb; | 83 | struct sk_buff *skb; |
89 | size_t len = count; | 84 | size_t len = count; |
90 | struct mipsnet_priv *mp = netdev_priv(dev); | ||
91 | 85 | ||
92 | if (!(skb = alloc_skb(len + 2, GFP_KERNEL))) { | 86 | if (!(skb = alloc_skb(len + 2, GFP_KERNEL))) { |
93 | mp->stats.rx_dropped++; | 87 | dev->stats.rx_dropped++; |
94 | return -ENOMEM; | 88 | return -ENOMEM; |
95 | } | 89 | } |
96 | 90 | ||
@@ -105,8 +99,8 @@ static inline ssize_t mipsnet_get_fromdev(struct net_device *dev, size_t count) | |||
105 | dev->name, __FUNCTION__); | 99 | dev->name, __FUNCTION__); |
106 | netif_rx(skb); | 100 | netif_rx(skb); |
107 | 101 | ||
108 | mp->stats.rx_packets++; | 102 | dev->stats.rx_packets++; |
109 | mp->stats.rx_bytes += len; | 103 | dev->stats.rx_bytes += len; |
110 | 104 | ||
111 | return count; | 105 | return count; |
112 | } | 106 | } |
@@ -203,13 +197,6 @@ static int mipsnet_close(struct net_device *dev) | |||
203 | return 0; | 197 | return 0; |
204 | } | 198 | } |
205 | 199 | ||
206 | static struct net_device_stats *mipsnet_get_stats(struct net_device *dev) | ||
207 | { | ||
208 | struct mipsnet_priv *mp = netdev_priv(dev); | ||
209 | |||
210 | return &mp->stats; | ||
211 | } | ||
212 | |||
213 | static void mipsnet_set_mclist(struct net_device *dev) | 200 | static void mipsnet_set_mclist(struct net_device *dev) |
214 | { | 201 | { |
215 | // we don't do anything | 202 | // we don't do anything |
@@ -221,7 +208,7 @@ static int __init mipsnet_probe(struct device *dev) | |||
221 | struct net_device *netdev; | 208 | struct net_device *netdev; |
222 | int err; | 209 | int err; |
223 | 210 | ||
224 | netdev = alloc_etherdev(sizeof(struct mipsnet_priv)); | 211 | netdev = alloc_etherdev(0); |
225 | if (!netdev) { | 212 | if (!netdev) { |
226 | err = -ENOMEM; | 213 | err = -ENOMEM; |
227 | goto out; | 214 | goto out; |
@@ -232,7 +219,6 @@ static int __init mipsnet_probe(struct device *dev) | |||
232 | netdev->open = mipsnet_open; | 219 | netdev->open = mipsnet_open; |
233 | netdev->stop = mipsnet_close; | 220 | netdev->stop = mipsnet_close; |
234 | netdev->hard_start_xmit = mipsnet_xmit; | 221 | netdev->hard_start_xmit = mipsnet_xmit; |
235 | netdev->get_stats = mipsnet_get_stats; | ||
236 | netdev->set_multicast_list = mipsnet_set_mclist; | 222 | netdev->set_multicast_list = mipsnet_set_mclist; |
237 | 223 | ||
238 | /* | 224 | /* |