|
|
@@ -1040,8 +1040,6 @@ static void vnt_interrupt_process(struct vnt_private *priv)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- MACvIntDisable(priv->PortOffset);
|
|
|
-
|
|
|
spin_lock_irqsave(&priv->lock, flags);
|
|
|
|
|
|
/* Read low level stats */
|
|
|
@@ -1129,8 +1127,6 @@ static void vnt_interrupt_process(struct vnt_private *priv)
|
|
|
}
|
|
|
|
|
|
spin_unlock_irqrestore(&priv->lock, flags);
|
|
|
-
|
|
|
- MACvIntEnable(priv->PortOffset, IMR_MASK_VALUE);
|
|
|
}
|
|
|
|
|
|
static void vnt_interrupt_work(struct work_struct *work)
|
|
|
@@ -1140,6 +1136,8 @@ static void vnt_interrupt_work(struct work_struct *work)
|
|
|
|
|
|
if (priv->vif)
|
|
|
vnt_interrupt_process(priv);
|
|
|
+
|
|
|
+ MACvIntEnable(priv->PortOffset, IMR_MASK_VALUE);
|
|
|
}
|
|
|
|
|
|
static irqreturn_t vnt_interrupt(int irq, void *arg)
|
|
|
@@ -1148,6 +1146,8 @@ static irqreturn_t vnt_interrupt(int irq, void *arg)
|
|
|
|
|
|
schedule_work(&priv->interrupt_work);
|
|
|
|
|
|
+ MACvIntDisable(priv->PortOffset);
|
|
|
+
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|