From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:52602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QobHf-0005MJ-Ia for qemu-devel@nongnu.org; Wed, 03 Aug 2011 09:14:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QobHe-0002VV-Nu for qemu-devel@nongnu.org; Wed, 03 Aug 2011 09:14:51 -0400 Received: from oxygen.pond.sub.org ([78.46.104.156]:36880) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QobHe-0002VE-G7 for qemu-devel@nongnu.org; Wed, 03 Aug 2011 09:14:50 -0400 From: Markus Armbruster Date: Wed, 3 Aug 2011 15:08:00 +0200 Message-Id: <1312376904-16115-22-git-send-email-armbru@redhat.com> In-Reply-To: <1312376904-16115-1-git-send-email-armbru@redhat.com> References: <1312376904-16115-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH v2 21/45] ide/atapi: Don't fail eject when tray is already open List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, quintela@redhat.com, stefano.stabellini@eu.citrix.com, lcapitulino@redhat.com, hare@suse.de, amit.shah@redhat.com, hch@lst.de MMC-5 6.40.2.6 specifies that START STOP UNIT succeeds when the drive already has the requested state. cmd_start_stop_unit() fails when asked to eject while the tray is open and locked. Fix that. Signed-off-by: Markus Armbruster --- hw/ide/atapi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c index 1be6cbf..9f384c8 100644 --- a/hw/ide/atapi.c +++ b/hw/ide/atapi.c @@ -899,7 +899,7 @@ static void cmd_start_stop_unit(IDEState *s, uint8_t* buf) bool loej = buf[4] & 2; if (loej) { - if (!start && s->tray_locked) { + if (!start && !s->tray_open && s->tray_locked) { sense = bdrv_is_inserted(s->bs) ? SENSE_NOT_READY : SENSE_ILLEGAL_REQUEST; ide_atapi_cmd_error(s, sense, ASC_MEDIA_REMOVAL_PREVENTED); -- 1.7.6