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

Reply via email to