Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / drivers / net / xen-netback / interface.c
index 5925e0b..2cb9c92 100644 (file)
@@ -132,6 +132,7 @@ static void xenvif_up(struct xenvif *vif)
 static void xenvif_down(struct xenvif *vif)
 {
        disable_irq(vif->irq);
+       del_timer_sync(&vif->credit_timeout);
        xen_netbk_deschedule_xenvif(vif);
        xen_netbk_remove_xenvif(vif);
 }
@@ -271,8 +272,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid,
        vif->credit_bytes = vif->remaining_credit = ~0UL;
        vif->credit_usec  = 0UL;
        init_timer(&vif->credit_timeout);
-       /* Initialize 'expires' now: it's used to track the credit window. */
-       vif->credit_timeout.expires = jiffies;
+       vif->credit_window_start = get_jiffies_64();
 
        dev->netdev_ops = &xenvif_netdev_ops;
        dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
@@ -362,8 +362,6 @@ void xenvif_disconnect(struct xenvif *vif)
        atomic_dec(&vif->refcnt);
        wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0);
 
-       del_timer_sync(&vif->credit_timeout);
-
        if (vif->irq)
                unbind_from_irqhandler(vif->irq, vif);