On 07/01/2014 07:36 AM, Kevin Wolf wrote:
Am 01.07.2014 um 13:13 hat reza.jel...@tuhh.de geschrieben:
From: Reza Jelveh <reza.jel...@tuhh.de>
The data byte count(DBC) read from the description information is defined for
bits 21:00. Bits 30:22 are reserved and bit 31 is the Interrupt on Completion
(I) flag.
Completion interrupts are triggered after every transaction instead of on
I-flag in QEMU. tbl_entry_size is a signed integer and improperly reading the
DBC leads to a negative offset that causes sglist allocation to fail.
Signed-off-by: Reza Jelveh <reza.jel...@tuhh.de>
---
This requires a custom ovmf image with sata controller for testing:
http://reza.jelveh.me/assets/OVMF.fd.bz2
Signed-off-by: Reza Jelveh <reza.jel...@tuhh.de>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
The spec also seems to require an even byte count, which we don't seem
to check. Do we want to add this? (In a separate patch, of course.)
We'll also want a qtest case to verify the fix and for regression
testing. John?
And finally, please don't forget to CC the block maintainers (Stefan and
me) for any AHCI patches.
Kevin
The test_identify case I submitted a patch for (
http://lists.gnu.org/archive/html/qemu-devel/2014-07/msg01241.html )
does attempt to use the interrupt bit, and as such, will fail without
Reza's patch.
The current version of the test only warns when it doesn't see the
interrupt posted, though, but that's not relevant to testing this
particular fix.
--John