# FreeBSD 7.1 Breaks re Network Interface Driver



## Weaseal (Jan 7, 2009)

What I did:1: edit my-sup-src (set tag=RELENG_7_1, was RELENG_7_0)
2: # csup my-sup-src
3: # cd /usr/src
3: # rm -rf /usr/obj/* (completes with no warnings)
4: # make -j2 buildworld
5: # make kernel KERNCONF=MYKERN7 (as to differentiate from MYKERN6)
6: # shutdown -r now
7: Grabbed a coke.
8: # cd /usr/src
9: # mergemaster -p
10:# make installworld
11:# mergemaster
12:# shutdown -r now​What happened:The system rebooted and hung on most network related rc.d scripts, such as sshd, samba, etc.  Ctrl+C worked, or I could wait for them to timeout, and the system would present me at a prompt.  Once at a prompt, I could login and explore the system, but had absolutely no network access, going in or out of the system.​What I tried:1: I rebooted again.  No luck.
2: # dhclient re0 (it was previously static).  No luck.
3: # ifconfig down delete re0
4. Removed the network cable from re0 and put it in re1.
5: # dhclient re1
6: Blah blah blah, 'DHCP receieved 10.3.0.111'.
7: Opened the coke.
8: Modified changed ifconfig_*re0="192.3.0.2" to read ifconfig_re1*="192.3.0.1".
9: # reboot (I was too lazy to look up the appropriate /etc/rc.d script).
10: Enjoyed some cola.
11: Enjoyed my fully restored network access.​Why it happened:I'll tell you when I find out.  I'll be doing a send-pr (bug report) shortly.  I will also check the svn/cvsup logs to see the last time the re driver was modified.​


----------



## Weaseal (Jan 7, 2009)

According to http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c?r1=1.95.2.36.2.2;only_with_tag=RELENG_7_1#rev1.95.2.36.2.2 the driver source was last modified on Tue Dec 9 11:05:59 2008 UTC (4 weeks ago) by yongari.  Maybe a hint.  I'm not a hacker, so that's all I can give you for now.


----------



## SirDice (Jan 7, 2009)

I have an rl interface that acts a bit funny. The machine dual boots with windows. If I boot windows and then reboot to fbsd the rl card somehow won't work. I have to turn the machine fully off and then boot fbsd for the card to function properly. Once I've booted fbsd with a working rl I can reboot without any problem. Until I boot Windows again.


----------



## danger@ (Jan 7, 2009)

guys, please report this to stable@freebsd.org mailing list, and add yongari@ to the cc: list.


----------



## Weaseal (Jan 7, 2009)

*Followup info*

I forgot to mention a few critical facts:

1. The network access was lost at the reboot between make kernel and make installworld, so the network access was lost as soon as the new kernel stepped in!

2. re0 and re1 are different model cards.  re0 is a PCI 8169S (I think, I'm guessing from memory, I'm at work and the machine is at home).  re1 is built into the motherboard (which is an MSI K8T Neo-2/F).

3. The system is amd64.


----------



## tangram (Jan 7, 2009)

Hope I don't introduce noise to thread but... I have a Realtek 8169S with the re (4) driver on 7.1-RELEASE and it's working fine on i386.

Upgraded from 7.0 to 7.1 through freebsd-update.

I'm planning to move into amd64 latter this week so if I come across any issues regarding re (4) I'll provide feedback.


----------



## Weaseal (Jan 7, 2009)

tangram: thanks, that may be a hint.  I'm running a custom kernel.  When I get home this evening I'll see if I can roll up a GENERIC and see what happens.


----------



## tingo (Jan 7, 2009)

@Weaseal:
does it help if you do a `% ifconfig re0 up` before starting dhclient?


----------



## Weaseal (Jan 7, 2009)

Booting with kernel.old, which is 7.0-RELEASE-p7 completely alleviates all problems.  I believe this roundly confirms that this is a bug in the 7.1-RELEASE re kernel drivers.

This is the first buggy FreeBSD RELEASE I've seen in a while, pretty disappointing  I've emailed the driver maintainer and submitted to stable@.  I've yet to hear anything back from the maintainer.


----------



## Andrius (Jan 8, 2009)

From what you wrote its not like 7.1 breaks re driver completely, because you can still use other NIC with the same driver. The problem is that new re no longer likes one of your NICs, so you may want to find exact models and post them here and/or to the mailing list.


----------



## Weaseal (Jan 8, 2009)

This is from pciconf -lv:
re0@pci0:0:8:0: class=0x020000 card=0x816910ec chip=0x816910ec rev=0x10 hdr=0x00
    vendor     = 'Realtek Semiconductor'
    device     = 'RTL8110SB Single-Chip Gigabit LOM Ethernet Controller'
    class      = network
    subclass   = ethernet


Hope that helps anyone working on the source.


----------



## Weaseal (Jan 8, 2009)

Andrius: Sorry, I didn't see your post sooner.  I meant to update last night to say that the re1 interface worked intermittently, not well, or stably.


----------



## Weaseal (Jan 10, 2009)

An update:
I was able to perform a full source downgrade to 7.0 and all is back online.  Curiously, re0 and re1 have switched; what was re0 is now re1 and vice versa.


----------

