2005/12/30, Francois Romieu <[EMAIL PROTECTED]>:
> Aritz Bastida <[EMAIL PROTECTED]> :
> [...]
I don't understand. Is there any problem with my email address?


>
> Interrupt Status Register bits are always set to 1, if the condition
> if present, regardless of the state of the corresponding mask bit.
>
> (courtesy of the 8139C(L)+ manual)

Yes, I did read the specifications. What I was trying to say, is that,
even though the RxOK flag is set (because there are pending packets to
be received), it couldn't trigger the interrupt because the mask is
"norx_intr_mask", so how is it possible that in the Status Register
the only  set bit is RxOK. There should be another one (which has not
been masked, like TxOK), which had triggered the hardware interrupt.

8139too (eth1): Interrupt: mask= norx_intr_mask (49198) status= RxOK (1)

> Can you send the content of the /proc/interrupts file ? It could be
> a shared interrupt (harmless at first sight).

Well, you were right. I guess the reason is I have two interfaces with
8139too chip, eth0 and eth1, and they have the same interrupt line
shared. When i turned off the eth0 interface those "strange" interrupts
disappeared.

Anyway I don't understand why shared interrupt should interfere. In
theory nothing would be done if a interface receives a irq triggered
by another. This is at the beginning of rtl8139_interrupt:

        /* shared irq? */
        if (unlikely((status & rtl8139_intr_mask) == 0))
                goto out;

So it would just ignore the interrupt, right? But sometimes it doesn't
"go out", as it receives packets even if the receive interrupts are
off (as you saw in the message I printed), which shouldn't be done
when working with NAPI.

Regards
Aritz
-
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