Created attachment 164902 [details] Alexander L's example fix. Not a permanent solution. On two separate systems with Intel S5520HC motherboards, FreeBSD CURRENT cannot receive any packets on igb0. igb1 works fine, and igb0 works when booted into FreeBSD 9/stable. * Disabling tso, lro, rxcsum, and txcsum has no effect. * tcpdump reveals that igb0 transmits successfully, but fails to receive * Curiously, "netstat -I igb0" shows nonzero values for Ipkts, even though "tcpdump -i igb0" shows no inbound packets at all. * I can't really tell if IPv4 or IPv6 are working, because even ARP doesn't work. * SVN revisions 291495 and 292570 are both bad. I don't know any recent good revision. * Alexander Leidinger reported a similar problem, but didn't specify whether all igb ports were broken or only one (or even whether he had multiple ports). He reported that 11-CURRENT worked at svn r287323, but failed at r290633. * Alexander also provided the attached patch, which fixes the issue.
The system where I see the issue is a Intel S5520SCR mainboard with igb0@pci0:1:0:0: class=0x020000 card=0x34e28086 chip=0x10a78086 rev=0x02 hdr=0x00 It has two igb ports, but I have only the first connected. IPv6 is configured, but when I had the issue I didn't check if it works, I only tested IPv4.
Even if it isn't a permanent fix, it's pretty clear that call is the problem. I'm guessing both of you are using 82575-based adapters then? It might be that the fifo flush for those is put in the wrong place.
I can reproduce this, and as Eric stated, the problem is in e1000_rx_fifo_flush_82575(). We really can't just NOT call it, as it includes an IPv6 HW workaround.
Should be fixed in r295323.