NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/52769 CVS commit: src/sys/dev/ic
The following reply was made to PR kern/52769; it has been noted by GNATS.
From: "Jaromir Dolecek" <jdolecek%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/52769 CVS commit: src/sys/dev/ic
Date: Fri, 16 Mar 2018 18:49:18 +0000
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.
Home |
Main Index |
Thread Index |
Old Index