* [Qemu-devel] [PULL for-2.4 0/2] Ide patches
@ 2015-07-31 22:27 John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 1/2] macio: re-add TRIM support John Snow
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: John Snow @ 2015-07-31 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, jsnow
The following changes since commit cb48f67ad8c7b33c617d4f8144a27706e69fd688:
bsd-user: Fix operand to cpu_x86_exec (2015-07-30 12:38:49 +0100)
are available in the git repository at:
https://github.com/jnsnow/qemu.git tags/ide-pull-request
for you to fetch changes up to 91ced514461e1a533bfb9e2eea32bd7df678b1cd:
ahci: fix ICC mask definition (2015-07-31 16:39:20 -0400)
----------------------------------------------------------------
Hopefully the last two minor fixes from me for 2.4.
There's a mapping leak in MacIO, but I think given the timeframe
that this is 2.4.1/2.5 work.
The first fixes TRIM support for MacIO which we accidentally
culled, and the second quiets a Clang analysis warning.
----------------------------------------------------------------
Aurelien Jarno (1):
macio: re-add TRIM support
John Snow (1):
ahci: fix ICC mask definition
hw/ide/ahci.h | 2 +-
hw/ide/macio.c | 28 ++++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
--
2.1.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL for-2.4 1/2] macio: re-add TRIM support
2015-07-31 22:27 [Qemu-devel] [PULL for-2.4 0/2] Ide patches John Snow
@ 2015-07-31 22:27 ` John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 2/2] ahci: fix ICC mask definition John Snow
2015-08-03 10:43 ` [Qemu-devel] [PULL for-2.4 0/2] Ide patches Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: John Snow @ 2015-07-31 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Mark Cave-Ayland, jsnow, Aurelien Jarno
From: Aurelien Jarno <aurelien@aurel32.net>
Commit bd4214fc dropped TRIM support by mistake. Given it is still
advertised to the host when using a drive with discard=on, this cause
the IDE bus to hang when the host issues a TRIM command.
This patch fixes that by re-adding the TRIM code, ported to the new
new DMA implementation.
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: John Snow <jsnow@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Message-id: 1438198068-32428-1-git-send-email-aurelien@aurel32.net
Signed-off-by: John Snow <jsnow@redhat.com>
---
hw/ide/macio.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index a55a479..66ac2ba 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -208,6 +208,33 @@ static void pmac_dma_write(BlockBackend *blk,
cb, io);
}
+static void pmac_dma_trim(BlockBackend *blk,
+ int64_t offset, int bytes,
+ void (*cb)(void *opaque, int ret), void *opaque)
+{
+ DBDMA_io *io = opaque;
+ MACIOIDEState *m = io->opaque;
+ IDEState *s = idebus_active_if(&m->bus);
+ dma_addr_t dma_addr, dma_len;
+ void *mem;
+
+ qemu_iovec_destroy(&io->iov);
+ qemu_iovec_init(&io->iov, io->len / MACIO_PAGE_SIZE + 1);
+
+ dma_addr = io->addr;
+ dma_len = io->len;
+ mem = dma_memory_map(&address_space_memory, dma_addr, &dma_len,
+ DMA_DIRECTION_TO_DEVICE);
+
+ qemu_iovec_add(&io->iov, mem, io->len);
+ s->io_buffer_size -= io->len;
+ s->io_buffer_index += io->len;
+ io->len = 0;
+
+ m->aiocb = ide_issue_trim(blk, (offset >> 9), &io->iov, (bytes >> 9),
+ cb, io);
+}
+
static void pmac_ide_atapi_transfer_cb(void *opaque, int ret)
{
DBDMA_io *io = opaque;
@@ -313,6 +340,7 @@ static void pmac_ide_transfer_cb(void *opaque, int ret)
pmac_dma_write(s->blk, offset, io->len, pmac_ide_transfer_cb, io);
break;
case IDE_DMA_TRIM:
+ pmac_dma_trim(s->blk, offset, io->len, pmac_ide_transfer_cb, io);
break;
}
--
2.1.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL for-2.4 2/2] ahci: fix ICC mask definition
2015-07-31 22:27 [Qemu-devel] [PULL for-2.4 0/2] Ide patches John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 1/2] macio: re-add TRIM support John Snow
@ 2015-07-31 22:27 ` John Snow
2015-08-03 10:43 ` [Qemu-devel] [PULL for-2.4 0/2] Ide patches Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: John Snow @ 2015-07-31 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, jsnow
There are likely others that could be updated, but we'll
go with a light touch for 2.4 for now.
Without the Unsigned specifier, this shifts bits into the
signed bit, which makes clang unhappy and could cause
unwanted behavior.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 1437501721-24495-1-git-send-email-jsnow@redhat.com
---
hw/ide/ahci.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h
index 68d5074..79a463d 100644
--- a/hw/ide/ahci.h
+++ b/hw/ide/ahci.h
@@ -127,7 +127,7 @@
#define PORT_CMD_SPIN_UP (1 << 1) /* Spin up device */
#define PORT_CMD_START (1 << 0) /* Enable port DMA engine */
-#define PORT_CMD_ICC_MASK (0xf << 28) /* i/f ICC state mask */
+#define PORT_CMD_ICC_MASK (0xfU << 28) /* i/f ICC state mask */
#define PORT_CMD_ICC_ACTIVE (0x1 << 28) /* Put i/f in active state */
#define PORT_CMD_ICC_PARTIAL (0x2 << 28) /* Put i/f in partial state */
#define PORT_CMD_ICC_SLUMBER (0x6 << 28) /* Put i/f in slumber state */
--
2.1.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PULL for-2.4 0/2] Ide patches
2015-07-31 22:27 [Qemu-devel] [PULL for-2.4 0/2] Ide patches John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 1/2] macio: re-add TRIM support John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 2/2] ahci: fix ICC mask definition John Snow
@ 2015-08-03 10:43 ` Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2015-08-03 10:43 UTC (permalink / raw)
To: John Snow; +Cc: QEMU Developers
On 31 July 2015 at 23:27, John Snow <jsnow@redhat.com> wrote:
> The following changes since commit cb48f67ad8c7b33c617d4f8144a27706e69fd688:
>
> bsd-user: Fix operand to cpu_x86_exec (2015-07-30 12:38:49 +0100)
>
> are available in the git repository at:
>
> https://github.com/jnsnow/qemu.git tags/ide-pull-request
>
> for you to fetch changes up to 91ced514461e1a533bfb9e2eea32bd7df678b1cd:
>
> ahci: fix ICC mask definition (2015-07-31 16:39:20 -0400)
>
> ----------------------------------------------------------------
>
> Hopefully the last two minor fixes from me for 2.4.
> There's a mapping leak in MacIO, but I think given the timeframe
> that this is 2.4.1/2.5 work.
>
> The first fixes TRIM support for MacIO which we accidentally
> culled, and the second quiets a Clang analysis warning.
>
> ----------------------------------------------------------------
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-08-03 10:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-31 22:27 [Qemu-devel] [PULL for-2.4 0/2] Ide patches John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 1/2] macio: re-add TRIM support John Snow
2015-07-31 22:27 ` [Qemu-devel] [PULL for-2.4 2/2] ahci: fix ICC mask definition John Snow
2015-08-03 10:43 ` [Qemu-devel] [PULL for-2.4 0/2] Ide patches Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).