uwb: convert devices to net_device_ops
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 8 Jan 2009 02:09:07 +0000 (18:09 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Jan 2009 02:09:07 +0000 (18:09 -0800)
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>
drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h
drivers/uwb/i1480/i1480u-wlp/lc.c
drivers/uwb/i1480/i1480u-wlp/netdev.c
drivers/uwb/i1480/i1480u-wlp/rx.c
drivers/uwb/i1480/i1480u-wlp/tx.c

index 5f1b2951bb836acfcb5699427ddbb96af1db8cd4..3421d3339d7dfeec955ac525bf9b80eeb9e0b2aa 100644 (file)
@@ -221,7 +221,6 @@ struct i1480u {
        struct net_device *net_dev;
 
        spinlock_t lock;
-       struct net_device_stats stats;
 
        /* RX context handling */
        struct sk_buff *rx_skb;
@@ -271,7 +270,6 @@ extern int i1480u_stop(struct net_device *);
 extern int i1480u_hard_start_xmit(struct sk_buff *, struct net_device *);
 extern void i1480u_tx_timeout(struct net_device *);
 extern int i1480u_set_config(struct net_device *, struct ifmap *);
-extern struct net_device_stats *i1480u_get_stats(struct net_device *);
 extern int i1480u_change_mtu(struct net_device *, int);
 extern void i1480u_uwb_notifs_cb(void *, struct uwb_dev *, enum uwb_notifs);
 
index 049c05d4cc6aa42c1228209210f1786d2ce3c0ff..f272dfe54d491ed75dc0a0a8d0b3e3450f6f7e32 100644 (file)
@@ -181,6 +181,15 @@ error:
 }
 #endif
 
+static const struct net_device_ops i1480u_netdev_ops = {
+       .ndo_open       = i1480u_open,
+       .ndo_stop       = i1480u_stop,
+       .ndo_start_xmit = i1480u_hard_start_xmit,
+       .ndo_tx_timeout = i1480u_tx_timeout,
+       .ndo_set_config = i1480u_set_config,
+       .ndo_change_mtu = i1480u_change_mtu,
+};
+
 static
 int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface)
 {
@@ -235,13 +244,7 @@ int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface)
        net_dev->features |= NETIF_F_HIGHDMA;
        net_dev->watchdog_timeo = 5*HZ;         /* FIXME: a better default? */
 
-       net_dev->open = i1480u_open;
-       net_dev->stop = i1480u_stop;
-       net_dev->hard_start_xmit = i1480u_hard_start_xmit;
-       net_dev->tx_timeout = i1480u_tx_timeout;
-       net_dev->get_stats = i1480u_get_stats;
-       net_dev->set_config = i1480u_set_config;
-       net_dev->change_mtu = i1480u_change_mtu;
+       net_dev->netdev_ops = &i1480u_netdev_ops;
 
 #ifdef i1480u_FLOW_CONTROL
        /* Notification endpoint setup (submitted when we open the device) */
index e3873ffb942cb3803fe2443d98ab822ec8b659f2..73055530e60f487b8176225c659bb63870fd479d 100644 (file)
@@ -262,15 +262,6 @@ int i1480u_stop(struct net_device *net_dev)
        return 0;
 }
 
-
-/** Report statistics */
-struct net_device_stats *i1480u_get_stats(struct net_device *net_dev)
-{
-       struct i1480u *i1480u = netdev_priv(net_dev);
-       return &i1480u->stats;
-}
-
-
 /**
  *
  * Change the interface config--we probably don't have to do anything.
index 34f4cf9a7d3414a1a83c6837abbdedf5e9cda593..25a2758beb61d2d078d51de5847e30d92dd42c82 100644 (file)
@@ -167,7 +167,7 @@ do {                                                        \
 do {                                                   \
        if (printk_ratelimit())                         \
                dev_err(&i1480u->usb_iface->dev, msg);  \
-       i1480u->stats.rx_dropped++;                     \
+       i1480u->net_dev->stats.rx_dropped++;                    \
 } while (0)
 
 
@@ -193,10 +193,8 @@ void i1480u_skb_deliver(struct i1480u *i1480u)
        if (!should_parse)
                goto out;
        i1480u->rx_skb->protocol = eth_type_trans(i1480u->rx_skb, net_dev);
-       i1480u->stats.rx_packets++;
-       i1480u->stats.rx_bytes += i1480u->rx_untd_pkt_size;
-       net_dev->last_rx = jiffies;
-       /* FIXME: flow control: check netif_rx() retval */
+       net_dev->stats.rx_packets++;
+       net_dev->stats.rx_bytes += i1480u->rx_untd_pkt_size;
 
        netif_rx(i1480u->rx_skb);               /* deliver */
 out:
index 39032cc3503e8aee7e183862c595ce6c3f5c1801..26bacc009c6568f28f74fd82054b5b5b5e6e78f4 100644 (file)
@@ -117,8 +117,8 @@ void i1480u_tx_cb(struct urb *urb)
        switch (urb->status) {
        case 0:
                spin_lock_irqsave(&i1480u->lock, flags);
-               i1480u->stats.tx_packets++;
-               i1480u->stats.tx_bytes += urb->actual_length;
+               net_dev->stats.tx_packets++;
+               net_dev->stats.tx_bytes += urb->actual_length;
                spin_unlock_irqrestore(&i1480u->lock, flags);
                break;
        case -ECONNRESET:       /* Not an error, but a controlled situation; */
@@ -530,7 +530,7 @@ int i1480u_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
        return NETDEV_TX_OK;
 error:
        dev_kfree_skb_any(skb);
-       i1480u->stats.tx_dropped++;
+       net_dev->stats.tx_dropped++;
 out:
        return NETDEV_TX_OK;
 }