]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
ide: only constrain read/write requests to drive size, not other types
authorMichael Tokarev <mjt@tls.msk.ru>
Wed, 13 Aug 2014 07:23:31 +0000 (11:23 +0400)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 26 Aug 2014 21:58:56 +0000 (16:58 -0500)
Commit 58ac321135a introduced a check to ide dma processing which
constrains all requests to drive size.  However, apparently, some
valid requests (like TRIM) does not fit in this constraint, and
fails in 2.1.  So check the range only for reads and writes.

Cc: qemu-stable@nongnu.org
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit d66168ed687325aa6d338ce3a3cff18ce3098ed6)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/ide/core.c

index db191a6c3e853be1025abd378d184e38f330ff2f..7256592ff6db237cb80c15e260cbf2d498f0a110 100644 (file)
@@ -688,7 +688,8 @@ void ide_dma_cb(void *opaque, int ret)
            sector_num, n, s->dma_cmd);
 #endif
 
-    if (!ide_sect_range_ok(s, sector_num, n)) {
+    if ((s->dma_cmd == IDE_DMA_READ || s->dma_cmd == IDE_DMA_WRITE) &&
+        !ide_sect_range_ok(s, sector_num, n)) {
         dma_buf_commit(s);
         ide_dma_error(s);
         return;