Module Name: src Committed By: jdolecek Date: Fri Mar 16 18:49:18 UTC 2018
Modified Files: src/sys/dev/ic: nvme.c nvmevar.h Log Message: stop using q_nccbs_avail for deciding whether there are available ccbs; no need to maintain a counter _and_ q_ccb_list this fixes deadlock when all ccbs happen to be taken before completion interrupt - nvme_q_complete() increased q_nccbs_avail only after processing all the completed commands, by then there was nothing left to actually kick the disk queue again into action this also fixes ccb leak on command errors e.g. with bus_dmamem_alloc() or bus_dmamel_load() - q_nccbs_avail was never decreased on the error path fixes PR kern/52769 by Martin Husemann, thanks to Paul Goyette for testing To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ic/nvme.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/ic/nvmevar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.