qemu: include fix for TRIM passthrough for IDE devices

This commit is contained in:
Thomas Penteker 2014-08-28 20:18:59 +02:00
parent d025294eb7
commit 32c2168e1f
3 changed files with 19 additions and 2 deletions

View File

@ -1 +1,2 @@
4d032f7e42c4f75dc71701f92077a85a fix-trim-ide.patch
6726977292b448cbc7f89998fac6983b qemu-2.1.0.tar.bz2

View File

@ -7,12 +7,14 @@
name=qemu
version=2.1.0
release=1
source=(http://wiki.qemu.org/download/qemu-$version.tar.bz2)
release=2
source=(http://wiki.qemu.org/download/qemu-$version.tar.bz2 fix-trim-ide.patch)
build() {
cd $name-$version
# fix TRIM passthrough for IDE devices
patch -p1 -i $SRC/fix-trim-ide.patch
./configure --prefix=/usr \
--cc="${CC:=gcc}" \

14
qemu/fix-trim-ide.patch Normal file
View File

@ -0,0 +1,14 @@
diff --git a/hw/ide/core.c b/hw/ide/core.c
index db191a6..7256592 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -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;