Ayaz Abdulla wrote:

        if (nv_alloc_rx(dev)) {
-               spin_lock(&np->lock);
+               spin_lock_irqsave(&np->lock, flags);
Tiny point:
there is not need for irqsave(): we are in timer context, that guarantees:
- bottom half disabled
- interrupts enabled

Just use spin_lock_irq() and spin_unlock_irq().

@@ -2882,11 +2900,12 @@
        writel(mask, base + NvRegIrqMask);
        pci_push(base);
[within nv_do_nic_poll(): reenable the interrupts that were disabled to prevent a livelock within the irq handler]

I still don't understand how this works for the msi-x case:
nv_nic_irq_tx writes NVREG_IRQ_TX_ALL to NvRegIrqMask to disable the tx interrupts. nv_do_nic_poll does exactly the same thing, and this should reenable them. Is that correct?
If yes, please add a comment.

--
   Manfred
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to