Lennert Buytenhek <[EMAIL PROTECTED]> :
[...]
> The hack patch below makes it work.  There's two issues here:
> 
> 1. Writing zero to the upper part of the TxDescStartAddr register (via
>    the MMIO region) somehow also clears the lower part, and writing the
>    upper and lower halves the other way round fixes it.  The RxDescAddr
>    register doesn't seem to suffer from this problem.
> 
>    The Realtek r1000 driver writes the two halves in the same order as
>    r8169, but it doesn't happen there, which is a bit of a mystery to
>    me.
> 
> 2. SYSErr asserts pretty soon after upping eth0, and the PCI status
>    register reports a parity error when this happens.  In this case,
>    the restart logic seems to make things worse, and in fact, when
>    commenting it out, things work a lot better.
> 
> Have you ever seen these issues before?  Any suggestions on how to
> cleanly fix these issues?

1 - unknown so far. Realtek's driver actually use IO, not MM. I do not see
    why it would make a difference as long as posteed writes are correctly
    taken care of.

2 - I have already experienced SYSErr storms on startup. If memory serves me
    right, they were "cured" simply by disabling a bit in the irq mask
    (not sure if it was SYSErr, RxOverflow or RxFIFOOver though).

Can you try against -rc4:
1) the serie at http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.18-rc4/r8169
   There is a minor difference in the init of Realtek's driver for the 8110sb
   (patch 011). It could hurt different chipset but it should do no harm to
   the 8110sb.
2) same as 1) + your hunk below:
@@ -484,7 +488,7 @@ static int rtl8169_poll(struct net_devic
 #endif
 
 static const u16 rtl8169_intr_mask =
-       SYSErr | LinkChg | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | 
RxOK;
+       LinkChg | RxOverflow | RxFIFOOver | TxErr | TxOK | RxErr | RxOK;
 static const u16 rtl8169_napi_event =
        RxOK | RxOverflow | RxFIFOOver | TxOK | TxErr;
 static const unsigned int rtl8169_rx_config =
3) same as 2) + your TxDesc change.

If it does not break anything else, I'll push your magic. I'd rather avoid
completely disabling rtl8169_pcierr_interrupt() though.

-- 
Ueimor
-
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