NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/52606 CVS commit: src/sys/dev/ata



The following reply was made to PR kern/52606; it has been noted by GNATS.

From: "Jaromir Dolecek" <jdolecek%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/52606 CVS commit: src/sys/dev/ata
Date: Sat, 14 Oct 2017 13:15:14 +0000

 Module Name:	src
 Committed By:	jdolecek
 Date:		Sat Oct 14 13:15:14 UTC 2017
 
 Modified Files:
 	src/sys/dev/ata: wd.c
 
 Log Message:
 only call drive reset with AT_POLL when the command itself was
 polled, so that the logic for AT_POLL matches how e.g. ata_dmaerr() is
 called; this was the original intent of the change in 1.428.2.25,
 to make the error handling safe wrt. polled xfers
 
 this is stopgap fix for ATA channel wedge after DMA error, as reported
 by Martin Husemann in PR kern/52606, and PR kern/52605
 
 problem happened due to ata_reset_channel() being called once in ata_dmaerr()
 with flags == 0, which freezed channel and set flag to reset via thread,
 then ata_reset_channel() was called via wdc_drive_reset() with AT_POLL, which
 just executed the reset and cleared the flag, without clearing the extra
 freeze; that logic will be refactored in separate commit
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.430 -r1.431 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