From 466d66e193341115f2a48e27997d61d8fddc811e Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 31 Oct 2014 16:29:56 +0100 Subject: [PATCH 19/19] ide: only constrain read/write requests to drive size, not other types Message-id: <1414772996-17272-6-git-send-email-armbru@redhat.com> Patchwork-id: 62017 O-Subject: [PATCH RHEL-7.1 qemu-kvm 5/5] ide: only constrain read/write requests to drive size, not other types Bugzilla: 1085232 RH-Acked-by: Paolo Bonzini RH-Acked-by: Fam Zheng From: Michael Tokarev 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 Signed-off-by: Markus Armbruster Signed-off-by: Stefan Hajnoczi (cherry picked from commit d66168ed687325aa6d338ce3a3cff18ce3098ed6) Signed-off-by: Miroslav Rezanina --- hw/ide/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/ide/core.c b/hw/ide/core.c index 4c36f52..24a1708 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -702,7 +702,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; -- 1.8.3.1