]> err.no Git - linux-2.6/blobdiff - drivers/net/loopback.c
Spidernet DMA coalescing
[linux-2.6] / drivers / net / loopback.c
index 93fbea1c9271ec4562a6e826367853f21011b101..2b739fd584f1ff9042d9034548a5740f84c6aed0 100644 (file)
@@ -153,14 +153,14 @@ static int loopback_xmit(struct sk_buff *skb, struct net_device *dev)
 #endif
        dev->last_rx = jiffies;
 
-       lb_stats = &per_cpu(pcpu_lstats, get_cpu());
+       /* it's OK to use __get_cpu_var() because BHs are off */
+       lb_stats = &__get_cpu_var(pcpu_lstats);
        lb_stats->bytes += skb->len;
        lb_stats->packets++;
-       put_cpu();
 
        netif_rx(skb);
 
-       return(0);
+       return 0;
 }
 
 static struct net_device_stats loopback_stats;
@@ -229,9 +229,11 @@ struct net_device loopback_dev = {
 };
 
 /* Setup and register the loopback device. */
-int __init loopback_init(void)
+static int __init loopback_init(void)
 {
        return register_netdev(&loopback_dev);
 };
 
+module_init(loopback_init);
+
 EXPORT_SYMBOL(loopback_dev);