Sync with HEAD. Revisions merged:
- rev. 1.76. Removed FreeBSD 4.x code.
- rev. 1.77, 1.79. Together with rev. 1.71 (already merged) this fixes problems when some code is executed in driver when em_process_receive_interrupts() drops lock. This can occur at runtime, when polling(4) mode is changed to interrupt driver or vise versa, but more likely this can happen when administrator issues some ifconfig commands.
- rev. 1.78. In em_process_receive_interrupts(), call bus_dmamap_sync() for the descriptors set each time we modify one descriptor, instead of doing it only at the function exit.
- rev. 1.80. Loop in em_intr() until interrupt cause register is clear, don't mask overrun interrupt.
- rev. 1.81. Several locking and other fixes.
See particular revision logs for more detailed information.
Approved by: re