[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 08/16] ahci: clear error register before NCQ cmd
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 08/16] ahci: clear error register before NCQ cmd |
Date: |
Mon, 22 Jun 2015 15:38:40 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Jun 19, 2015 at 09:50:39PM -0400, John Snow wrote:
> The legacy ide command execution layer will clear any errors outstanding
> before execution, but the NCQ layer doesn't.
> Even on success, this register will remain clogged.
>
> Clear it out before each NCQ command so the guest can tell if the
> error code produced after completion is meaningful or not.
>
> Signed-off-by: John Snow <address@hidden>
> ---
> hw/ide/ahci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
> index 6bded67..e63ba9b 100644
> --- a/hw/ide/ahci.c
> +++ b/hw/ide/ahci.c
> @@ -1048,6 +1048,8 @@ static void process_ncq_command(AHCIState *s, int port,
> uint8_t *cmd_fis,
> ncq_tfs->lba, ncq_tfs->lba + ncq_tfs->sector_count - 1,
> ide_state->nb_sectors - 1);
>
> + ide_state->error = 0;
I'm not sure it makes sense use ide_state at all in NCQ.
ide_state is per-port and NCQ can issue multiple asynchronous commands
per port. If process_ncq_command() modifies ide_state, it may do that
while other commands are still pending or about to be processed.
This will clobber ide_state->error.
pgpXP0LO27Gfk.pgp
Description: PGP signature
[Qemu-devel] [PATCH 07/16] ahci: ncq sector count correction, John Snow, 2015/06/19
[Qemu-devel] [PATCH 09/16] libqos/ahci: fix cmd_sanity for ncq, John Snow, 2015/06/19
[Qemu-devel] [PATCH 10/16] libqos/ahci: add NCQ frame support, John Snow, 2015/06/19
[Qemu-devel] [PATCH 11/16] libqos/ahci: edit wait to be ncq aware, John Snow, 2015/06/19
[Qemu-devel] [PATCH 12/16] libqos/ahci: adjust expected NCQ interrupts, John Snow, 2015/06/19
[Qemu-devel] [PATCH 13/16] libqos/ahci: set the NCQ tag on command_commit, John Snow, 2015/06/19
[Qemu-devel] [PATCH 14/16] libqos/ahci: Force all NCQ commands to be LBA48, John Snow, 2015/06/19