all the chips rings are protected by a single mutex, which is used in both the scsi_cmd and intr paths. scsi_done can restart io though, which means the mutex will be tried recursively which panics.
all the chips rings are protected by a single mutex, which is used in both
the scsi_cmd and intr paths. scsi_done can restart io though, which means
the mutex will be tried recursively which panics.

defer scsi_done calls after mtx_leave by putting completed ccbs on a list
on the stack that we can walk.

i hate locks.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars