Source-Changes archive

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

CVS commit: [netbsd-4-0] src/sys/dev/ic



Module Name:    src
Committed By:   snj
Date:           Thu Feb 26 08:12:29 UTC 2009

Modified Files:
        src/sys/dev/ic [netbsd-4-0]: ahcisata_core.c

Log Message:
Pull up following revision(s) (requested by bouyer in ticket #1277):
        sys/dev/ic/ahcisata_core.c: revision 1.19
When an error is reported on a write, data may have been transfered
to the device's cache anyway and so cmdh_prdbc reports a completed
transfer. If we use it to update ata_bio->bcount this has 2 conseqences:
- the automatic LBA48 workaround doesn't qick in because bcount is used
  to compute the last sector of the transfer (wd(4) part of kern/40569)
- wd(4) will report a B_ERROR buffer with a b_resid of 0, which panics
  a DIAGNOSTIC kernel
Fix by ignoring cmdh_prdbc if we had a write with errors, and in this case
leave ata_bio->bcount at its initial value.
While there use NOERROR instead of 0 for ata_bio->error (cosmetic).
thanks to Matthias Scheler for tests.


To generate a diff of this commit:
cvs rdiff -r1.4.12.4 -r1.4.12.4.4.1 src/sys/dev/ic/ahcisata_core.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