Module Name: src Committed By: jdolecek Date: Fri Jun 16 20:40:49 UTC 2017
Modified Files: src/sys/dev/ata [jdolecek-ncq]: ata.c ata_wdc.c atavar.h wd.c src/sys/dev/ic [jdolecek-ncq]: ahcisata_core.c mvsata.c siisata.c wdc.c src/sys/dev/scsipi [jdolecek-ncq]: atapi_wdc.c Log Message: adjust reset channel and dump paths - channel reset now always kills active transfer, even on dump path, but now doesn't touch the queued waiting transfers; also kill_xfer hook is always called, so that HBA can free any private xfer resources and thus the dump request has chance to work - kill_xfer routines now always call ata_deactivate_xfer(); added KASSERT()s to ata_free_xfer() to expect deactivated xfer - when called during channel reset before dump, ata_kill_active() drops any queued waiting transfers without processing - do not (re)queue any transfers in wddone() when dumping - kill AT_RST_NOCMD flag This should also hopefully fix the 'polled command has been queued' panic as reported in: PR kern/11811 by John Hawkinson PR kern/47041 by Taylor R Campbell PR kern/51979 by Martin Husemann dump tested working with piixide(4) and ahci(4). mvsata(4) dump times out, but otherwise tested working, will be fixed separately. siisata(4) mechanically changed and not tested. To generate a diff of this commit: cvs rdiff -u -r1.132.8.8 -r1.132.8.9 src/sys/dev/ata/ata.c cvs rdiff -u -r1.105.6.3 -r1.105.6.4 src/sys/dev/ata/ata_wdc.c cvs rdiff -u -r1.92.8.8 -r1.92.8.9 src/sys/dev/ata/atavar.h cvs rdiff -u -r1.428.2.15 -r1.428.2.16 src/sys/dev/ata/wd.c cvs rdiff -u -r1.57.6.12 -r1.57.6.13 src/sys/dev/ic/ahcisata_core.c cvs rdiff -u -r1.35.6.10 -r1.35.6.11 src/sys/dev/ic/mvsata.c cvs rdiff -u -r1.30.4.15 -r1.30.4.16 src/sys/dev/ic/siisata.c cvs rdiff -u -r1.283.2.4 -r1.283.2.5 src/sys/dev/ic/wdc.c cvs rdiff -u -r1.123.4.4 -r1.123.4.5 src/sys/dev/scsipi/atapi_wdc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.