I have noticed that parameters of bus_setup_intr() are not in the correct order when em_allocate_legacy() registers the FAST IRQ handler. I have found this error in FreeBSD-7.0 release, and is still exists in HEAD version. Fix: In the attachment you can find the patch which solves the problem for the HEAD version. Patch attached with submission follows: How-To-Repeat: Configure your kernel to use em driver with fast interrupts and try to use it.
Responsible Changed From-To: freebsd-bugs->freebsd-net Over to maintainer(s).
Responsible Changed From-To: freebsd-net->jfv Over to maintainer.
Responsible Changed From-To: jfv->eadler I'll take it.
Responsible Changed From-To: eadler->jfv oops back to jfv
Please review bus_setup_intr(9). As I read it, you can use a filter function or an ithread function which have different requirements for locking and structure. As I read the code, the code is correct.