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