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