Commit c4a80d7e67b1a084e061853d39a1ba6f500027fd
Committed by
David S. Miller
1 parent
5ec38f3023
Exists in
master
and in
20 other branches
uwb: convert devices to net_device_ops
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: David Vrabel <david.vrabel@csr.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 5 changed files with 16 additions and 26 deletions Side-by-side Diff
drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h
... | ... | @@ -221,7 +221,6 @@ |
221 | 221 | struct net_device *net_dev; |
222 | 222 | |
223 | 223 | spinlock_t lock; |
224 | - struct net_device_stats stats; | |
225 | 224 | |
226 | 225 | /* RX context handling */ |
227 | 226 | struct sk_buff *rx_skb; |
... | ... | @@ -271,7 +270,6 @@ |
271 | 270 | extern int i1480u_hard_start_xmit(struct sk_buff *, struct net_device *); |
272 | 271 | extern void i1480u_tx_timeout(struct net_device *); |
273 | 272 | extern int i1480u_set_config(struct net_device *, struct ifmap *); |
274 | -extern struct net_device_stats *i1480u_get_stats(struct net_device *); | |
275 | 273 | extern int i1480u_change_mtu(struct net_device *, int); |
276 | 274 | extern void i1480u_uwb_notifs_cb(void *, struct uwb_dev *, enum uwb_notifs); |
277 | 275 |
drivers/uwb/i1480/i1480u-wlp/lc.c
... | ... | @@ -181,6 +181,15 @@ |
181 | 181 | } |
182 | 182 | #endif |
183 | 183 | |
184 | +static const struct net_device_ops i1480u_netdev_ops = { | |
185 | + .ndo_open = i1480u_open, | |
186 | + .ndo_stop = i1480u_stop, | |
187 | + .ndo_start_xmit = i1480u_hard_start_xmit, | |
188 | + .ndo_tx_timeout = i1480u_tx_timeout, | |
189 | + .ndo_set_config = i1480u_set_config, | |
190 | + .ndo_change_mtu = i1480u_change_mtu, | |
191 | +}; | |
192 | + | |
184 | 193 | static |
185 | 194 | int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface) |
186 | 195 | { |
... | ... | @@ -235,13 +244,7 @@ |
235 | 244 | net_dev->features |= NETIF_F_HIGHDMA; |
236 | 245 | net_dev->watchdog_timeo = 5*HZ; /* FIXME: a better default? */ |
237 | 246 | |
238 | - net_dev->open = i1480u_open; | |
239 | - net_dev->stop = i1480u_stop; | |
240 | - net_dev->hard_start_xmit = i1480u_hard_start_xmit; | |
241 | - net_dev->tx_timeout = i1480u_tx_timeout; | |
242 | - net_dev->get_stats = i1480u_get_stats; | |
243 | - net_dev->set_config = i1480u_set_config; | |
244 | - net_dev->change_mtu = i1480u_change_mtu; | |
247 | + net_dev->netdev_ops = &i1480u_netdev_ops; | |
245 | 248 | |
246 | 249 | #ifdef i1480u_FLOW_CONTROL |
247 | 250 | /* Notification endpoint setup (submitted when we open the device) */ |
drivers/uwb/i1480/i1480u-wlp/netdev.c
... | ... | @@ -262,15 +262,6 @@ |
262 | 262 | return 0; |
263 | 263 | } |
264 | 264 | |
265 | - | |
266 | -/** Report statistics */ | |
267 | -struct net_device_stats *i1480u_get_stats(struct net_device *net_dev) | |
268 | -{ | |
269 | - struct i1480u *i1480u = netdev_priv(net_dev); | |
270 | - return &i1480u->stats; | |
271 | -} | |
272 | - | |
273 | - | |
274 | 265 | /** |
275 | 266 | * |
276 | 267 | * Change the interface config--we probably don't have to do anything. |
drivers/uwb/i1480/i1480u-wlp/rx.c
... | ... | @@ -167,7 +167,7 @@ |
167 | 167 | do { \ |
168 | 168 | if (printk_ratelimit()) \ |
169 | 169 | dev_err(&i1480u->usb_iface->dev, msg); \ |
170 | - i1480u->stats.rx_dropped++; \ | |
170 | + i1480u->net_dev->stats.rx_dropped++; \ | |
171 | 171 | } while (0) |
172 | 172 | |
173 | 173 | |
... | ... | @@ -193,10 +193,8 @@ |
193 | 193 | if (!should_parse) |
194 | 194 | goto out; |
195 | 195 | i1480u->rx_skb->protocol = eth_type_trans(i1480u->rx_skb, net_dev); |
196 | - i1480u->stats.rx_packets++; | |
197 | - i1480u->stats.rx_bytes += i1480u->rx_untd_pkt_size; | |
198 | - net_dev->last_rx = jiffies; | |
199 | - /* FIXME: flow control: check netif_rx() retval */ | |
196 | + net_dev->stats.rx_packets++; | |
197 | + net_dev->stats.rx_bytes += i1480u->rx_untd_pkt_size; | |
200 | 198 | |
201 | 199 | netif_rx(i1480u->rx_skb); /* deliver */ |
202 | 200 | out: |
drivers/uwb/i1480/i1480u-wlp/tx.c
... | ... | @@ -117,8 +117,8 @@ |
117 | 117 | switch (urb->status) { |
118 | 118 | case 0: |
119 | 119 | spin_lock_irqsave(&i1480u->lock, flags); |
120 | - i1480u->stats.tx_packets++; | |
121 | - i1480u->stats.tx_bytes += urb->actual_length; | |
120 | + net_dev->stats.tx_packets++; | |
121 | + net_dev->stats.tx_bytes += urb->actual_length; | |
122 | 122 | spin_unlock_irqrestore(&i1480u->lock, flags); |
123 | 123 | break; |
124 | 124 | case -ECONNRESET: /* Not an error, but a controlled situation; */ |
... | ... | @@ -530,7 +530,7 @@ |
530 | 530 | return NETDEV_TX_OK; |
531 | 531 | error: |
532 | 532 | dev_kfree_skb_any(skb); |
533 | - i1480u->stats.tx_dropped++; | |
533 | + net_dev->stats.tx_dropped++; | |
534 | 534 | out: |
535 | 535 | return NETDEV_TX_OK; |
536 | 536 | } |