NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/52783 CVS commit: src/sys/dev/ata
The following reply was made to PR kern/52783; it has been noted by GNATS.
From: "Jaromir Dolecek" <jdolecek%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/52783 CVS commit: src/sys/dev/ata
Date: Fri, 10 Aug 2018 22:43:22 +0000
Module Name: src
Committed By: jdolecek
Date: Fri Aug 10 22:43:22 UTC 2018
Modified Files:
src/sys/dev/ata: ata_subr.c atavar.h wd.c
Log Message:
fix race in wd_lastclose() on systems with two ide disks on same
channel, which happened when one disk had pending I/O while the other
disk executed the final disk flush - need to restart bufq processing
once xfer is freed in this case
it could happen e.g. on boot when system executes fsck on different
partitions on the two drives in parallell and hence open and closes
the disk devices repeatedly
add KASSERT() for empty bufq on wd_lastclose(), and fix similar issue
also on suspend/standby path
this was introduced by the NCQ merge and not dksubr - before the merge
each drive had their own xfer, so they could not block each other
fixes PR kern/52783 by Onno van der Linden; many thanks for extensive
help with tracking this down
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ata/ata_subr.c
cvs rdiff -u -r1.98 -r1.99 src/sys/dev/ata/atavar.h
cvs rdiff -u -r1.440 -r1.441 src/sys/dev/ata/wd.c
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