CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2010/09/13 19:39:44
Modified files: sys/scsi : scsi_base.c scsiconf.h Log message: the openings member of scsi_link is the maximum number of commands that a scsi device can have in flight. instead of counting users of openings on the bus by taking away from the openings value, count the number of pending commands on the bus in a new pending variable. this lets us know how many outstanding commands there are. we can then use that to make sure that all commands a device has generated get completed before detaching the device. this helps avoid resource leaks and use after frees. tested by me on pci ehci/umass, fc mpi, and sas mpi. tested by jakemsr on cardbus ohci umass. it found issues in sas mpi which were fixed as a result of this diff. ok krw@