On Tue, 22 Jan 2008, Nicolas Letellier wrote:

re driver freeze OpenBSD 4.2-current. This driver doesn't bug in NetBSD or FreeBSD. Users with re at pcie bus are suffering from this bug. Someting like:
> ppb2 at pci0 dev 28 function 1 "Intel 82801GB PCIE" rev 0x01: irq 10
> pci3 at ppb2 bus 3
> re0 at pci3 dev 0 function 0 "Realtek 8168" rev 0x01: RTL8168 2
> (0x3800), irq 10, address 00:1c:c0:0f:08:bf
> rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 2
In certain situation, we must force the re interface to 100baseTX, but it's not always true.

This did not help in my case. As I tracked down multicast packets as the cause for the freezes I tried to disable the multicast filter. This is no good fix for the problem, but the symptoms went away. This is by the way the same thing the linux driver does (did I mention that it is not a real fix?). After adding the following patch the box did not freeze any longer:

Index: re.c
===================================================================
RCS file: /var/cvs/src/sys/dev/ic/re.c,v
retrieving revision 1.75
diff -u -p -r1.75 re.c
--- re.c        16 Jan 2008 09:52:34 -0000      1.75
+++ re.c        22 Jan 2008 21:44:56 -0000
@@ -570,6 +570,7 @@ re_setmulti(struct rl_softc *sc)
        case RL_HWREV_8101E:
        case RL_HWREV_8168_SPIN1:
        case RL_HWREV_8168_SPIN2:
+               hashes[1] = hashes[0] = 0xffffffff;
                CSR_WRITE_4(sc, RL_MAR0, swap32(hashes[1]));
                CSR_WRITE_4(sc, RL_MAR4, swap32(hashes[0]));
                break;

dmesg part is this (full dmesg is in br#5599):
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
ppb1 at pci0 dev 6 function 0 "ATI RX480 PCIE" rev 0x00
pci2 at ppb1 bus 2
re0 at pci2 dev 0 function 0 "Realtek 8168" rev 0x01: RTL8168 2 (0x3800), apic 2 int 18 (irq 10), address 00:19:db:60:e4:a2
rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 2

So, is anybody using this driver *with a pcie bus* without problems? This situation could help to solve the problem.

Without problems I would not call that. And the patch is really a hack. But it works, and the box does not freeze if someone starts a linux computer in the same LAN segment which does that multicast autoconf thingy.

Best regards,
   Markus

Reply via email to