|
@@ -3775,7 +3775,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data)
|
|
|
np->link_timeout = jiffies + LINK_TIMEOUT;
|
|
|
}
|
|
|
if (events & NVREG_IRQ_RECOVER_ERROR) {
|
|
|
- spin_lock_irq(&np->lock);
|
|
|
+ spin_lock_irqsave(&np->lock, flags);
|
|
|
/* disable interrupts on the nic */
|
|
|
writel(NVREG_IRQ_OTHER, base + NvRegIrqMask);
|
|
|
pci_push(base);
|
|
@@ -3785,7 +3785,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data)
|
|
|
np->recover_error = 1;
|
|
|
mod_timer(&np->nic_poll, jiffies + POLL_WAIT);
|
|
|
}
|
|
|
- spin_unlock_irq(&np->lock);
|
|
|
+ spin_unlock_irqrestore(&np->lock, flags);
|
|
|
break;
|
|
|
}
|
|
|
if (unlikely(i > max_interrupt_work)) {
|