Module Name: src Committed By: jdolecek Date: Mon Oct 22 20:13:47 UTC 2018
Modified Files: src/sys/dev/ata: TODO.ncq ata.c ata_subr.c ata_wdc.c atavar.h files.ata satapmp_subr.c wd.c wdvar.h src/sys/dev/ic: ahcisata_core.c ahcisatavar.h mvsata.c mvsatavar.h siisata.c siisatavar.h wdc.c src/sys/dev/scsipi: atapi_wdc.c src/sys/dev/usb: umass_isdata.c Added Files: src/sys/dev/ata: ata_recovery.c Log Message: Merge jdolecek-ncqfixes branch - ata_xfer's are dynamicall allocated as needed using a pool, no longer limited to number of possible openings supported by controller; dump and recovery paths use dedicated pre-allocated storage - moved callouts and condvars from ata_xfer to queue or channel, so that ata_xfer does not need special initialization - slot allocation now done when xfer is being activated, uncoupled from memory allocation; active slots are no longer tracked by controller code - channel and drive reset is done always via the atabus thread, and now executes with channel locked the whole time - NCQ recovery moved to shared function, and run via the thread also - added some workarounds for buggy error recovery AHCI emulation in QEMU and Parallels designed to primarily fix kern/52614, but might also help with kern/47041 and kern/53183 To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/dev/ata/TODO.ncq cvs rdiff -u -r1.141 -r1.142 src/sys/dev/ata/ata.c cvs rdiff -u -r0 -r1.2 src/sys/dev/ata/ata_recovery.c cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ata/ata_subr.c cvs rdiff -u -r1.111 -r1.112 src/sys/dev/ata/ata_wdc.c cvs rdiff -u -r1.99 -r1.100 src/sys/dev/ata/atavar.h cvs rdiff -u -r1.27 -r1.28 src/sys/dev/ata/files.ata cvs rdiff -u -r1.14 -r1.15 src/sys/dev/ata/satapmp_subr.c cvs rdiff -u -r1.441 -r1.442 src/sys/dev/ata/wd.c cvs rdiff -u -r1.46 -r1.47 src/sys/dev/ata/wdvar.h cvs rdiff -u -r1.63 -r1.64 src/sys/dev/ic/ahcisata_core.c cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ic/ahcisatavar.h cvs rdiff -u -r1.42 -r1.43 src/sys/dev/ic/mvsata.c cvs rdiff -u -r1.4 -r1.5 src/sys/dev/ic/mvsatavar.h cvs rdiff -u -r1.35 -r1.36 src/sys/dev/ic/siisata.c cvs rdiff -u -r1.7 -r1.8 src/sys/dev/ic/siisatavar.h cvs rdiff -u -r1.288 -r1.289 src/sys/dev/ic/wdc.c cvs rdiff -u -r1.130 -r1.131 src/sys/dev/scsipi/atapi_wdc.c cvs rdiff -u -r1.37 -r1.38 src/sys/dev/usb/umass_isdata.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.