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.