Hi, today I've compiled new world and kernel. Last kernel was from November, I think. The platform is amd64, mainboard Gigabyte K8VNXP. I'm talking about -STABLE here (RELENG_5 tag). (I've deleted /usr/obj before making world and used the usual procedure to update.) After reboot, re(4) "Realtek RTL8110S" could not be detected automatically. It is statically compiled into the kernel. The dmesg said something like "Could not send TCP packet in loopback mode" or similar. I tried "kldload if_re". It worked fine (e.a. the interface works after /etc/netstart restart), but I got few warnings ("already exists"). Next, I added if_re_load="YES" to /boot/loader.conf (tried a workaround). The PC always rebooted before reaching the "beastie menu". I can boot now using /boot/loader.old and the re(4)-module seems to load with same warnings as above. If I remove if_re_load="YES", even using the old loader my re0 won't be detected (same problem as above). Conclusion: It seems there are two problems. The new loader seems to crash while loading if_re (maybe because of the handling of the warning). And something changed in the detection routine of the re(4) driver, which broke support for RTL8110S. -- I won't have access to this PC until after New Year, so it will be difficult to do further research. I can imagine that there are more people who have this mainboard, so maybe someone can confirm the problem? Martin
Martin wrote:> Hi, > > today I've compiled new world and kernel. Last kernel was > from November, I think. > > The platform is amd64, mainboard Gigabyte K8VNXP. I'm > talking about -STABLE here (RELENG_5 tag). > > (I've deleted /usr/obj before making world and used > the usual procedure to update.) > > After reboot, re(4) "Realtek RTL8110S" could not be detected > automatically. It is statically compiled into the kernel. > The dmesg said something like "Could not send TCP packet in > loopback mode" or similar. > > I tried "kldload if_re". It worked fine (e.a. the interface > works after /etc/netstart restart), but I got few > warnings ("already exists"). > > Next, I added if_re_load="YES" to /boot/loader.conf (tried > a workaround). The PC always rebooted before reaching the > "beastie menu". > > I can boot now using /boot/loader.old and the > re(4)-module seems to load with same warnings as above. > > If I remove if_re_load="YES", even using the old loader > my re0 won't be detected (same problem as above). > > Conclusion: > It seems there are two problems. The new loader seems > to crash while loading if_re (maybe because of the handling > of the warning). And something changed in the detection routine > of the re(4) driver, which broke support for RTL8110S. > > -- > > I won't have access to this PC until after New Year, so it > will be difficult to do further research. I can imagine that > there are more people who have this mainboard, so maybe > someone can confirm the problem? > > Martin >This might be another victim of my busdma fixes. There are definite mistakes in the if_re driver that I need to fix; let me know when you have some time to test them and I'll generate patches. Scott
Here a followup:> After reboot, re(4) "Realtek RTL8110S" could not be detected > automatically. It is statically compiled into the kernel. > The dmesg said something like "Could not send TCP packet in > loopback mode" or similar.This has been fixed for me, some time in January.> Next, I added if_re_load="YES" to /boot/loader.conf (tried > a workaround). The PC always rebooted before reaching the > "beastie menu".This problem still remains. I know it's weird to load a module while it has been compiled in statically, but it's still a bug, IMO. Steps to reproduce: 1) On FreeBSD/amd64, compile re(4) support into a STABLE kernel. 2) Add if_re_load="YES" to /boot/loader.conf. 3) Reboot. What happens? After loading the kernel image, re(4) module is about to be loaded and the machine does a a hard reset instantly. I hope it helps to find the problem. Martin