From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBGbk-0006De-Ta for qemu-devel@nongnu.org; Sat, 04 Jul 2015 02:07:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZBGbh-0003R5-Kt for qemu-devel@nongnu.org; Sat, 04 Jul 2015 02:07:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41249) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBGbh-0003Qw-FS for qemu-devel@nongnu.org; Sat, 04 Jul 2015 02:07:21 -0400 From: John Snow Date: Sat, 4 Jul 2015 02:06:46 -0400 Message-Id: <1435990034-8945-8-git-send-email-jsnow@redhat.com> In-Reply-To: <1435990034-8945-1-git-send-email-jsnow@redhat.com> References: <1435990034-8945-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PULL 07/35] ahci: add ncq_err helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, jsnow@redhat.com Set some appropriate error bits for NCQ for us. Signed-off-by: John Snow Reviewed-by: Stefan Hajnoczi Message-id: 1435016308-6150-4-git-send-email-jsnow@redhat.com --- hw/ide/ahci.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 3a8bff7..7b286a2 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -922,6 +922,15 @@ out: return r; } +static void ncq_err(NCQTransferState *ncq_tfs) +{ + IDEState *ide_state = &ncq_tfs->drive->port.ifs[0]; + + ide_state->error = ABRT_ERR; + ide_state->status = READY_STAT | ERR_STAT; + ncq_tfs->drive->port_regs.scr_err |= (1 << ncq_tfs->tag); +} + static void ncq_cb(void *opaque, int ret) { NCQTransferState *ncq_tfs = (NCQTransferState *)opaque; @@ -934,10 +943,7 @@ static void ncq_cb(void *opaque, int ret) ncq_tfs->drive->port_regs.scr_act &= ~(1 << ncq_tfs->tag); if (ret < 0) { - /* error */ - ide_state->error = ABRT_ERR; - ide_state->status = READY_STAT | ERR_STAT; - ncq_tfs->drive->port_regs.scr_err |= (1 << ncq_tfs->tag); + ncq_err(ncq_tfs); } else { ide_state->status = READY_STAT | SEEK_STAT; } -- 2.1.0