Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: [jdolecek-ncq] src/sys/dev
On Fri, Jun 16, 2017 at 08:40:49PM +0000, Jaromir Dolecek wrote:
> 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
Sounds like a recipe for more lost/corrupt data. Remember, channel reset
is requestable from userland.
> - 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
Again, as above.
> - 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.
>
Home |
Main Index |
Thread Index |
Old Index