Lock iir(4) and mark it MPSAFE.
- Add a per-device mutex to the softc and use it for bus_dma tags, CAM SIMs, callouts, and interrupt handler.
- Switch from timeout(9) to callout(9).
- Add a separate global mutex to protect the global event buffer ring.
- Return completed index from iir_intr_locked() and remove the global gdt_wait_* variables.
- Remove global list of gdt softcs and replace its use with devclass_get_device().
- Use si_drv1 to store softc pointer in the SDEV_PER_HBA case instead of minor numbers.
- Do math on osreldate instead of dubious char math on osrelease[] that didn't work on 10.0+.
- Use bus_*() instead of bus_space_*().
- Use device_printf() instead of printf() with a unit number.
Tested by: no one