From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:60775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzV5y-0004o4-Il for qemu-devel@nongnu.org; Fri, 02 Sep 2011 10:51:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QzV5x-0000uS-IL for qemu-devel@nongnu.org; Fri, 02 Sep 2011 10:51:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:3669) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzV5x-0000uM-A3 for qemu-devel@nongnu.org; Fri, 02 Sep 2011 10:51:49 -0400 From: Markus Armbruster References: <1312376904-16115-1-git-send-email-armbru@redhat.com> <1312376904-16115-11-git-send-email-armbru@redhat.com> <4E60AE93.6090507@redhat.com> Date: Fri, 02 Sep 2011 16:51:43 +0200 In-Reply-To: <4E60AE93.6090507@redhat.com> (Kevin Wolf's message of "Fri, 02 Sep 2011 12:23:15 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH v2 10/45] ide/atapi: Track tray open/close state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: stefano.stabellini@eu.citrix.com, quintela@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, hare@suse.de, amit.shah@redhat.com, hch@lst.de Kevin Wolf writes: > Am 03.08.2011 15:07, schrieb Markus Armbruster: >> We already track it in BlockDriverState since commit 4be9762a. As >> discussed in that commit's message, we should track it in the device >> device models instead, because it's device state. >> >> Signed-off-by: Markus Armbruster >> --- >> hw/ide/atapi.c | 6 +++++- >> hw/ide/internal.h | 1 + >> 2 files changed, 6 insertions(+), 1 deletions(-) >> >> diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c >> index 17fbef8..96f7c31 100644 >> --- a/hw/ide/atapi.c >> +++ b/hw/ide/atapi.c >> @@ -510,7 +510,7 @@ static unsigned int event_status_media(IDEState *s, >> uint8_t event_code, media_status; >> >> media_status = 0; >> - if (s->bs->tray_open) { >> + if (s->tray_open) { >> media_status = MS_TRAY_OPEN; >> } else if (bdrv_is_inserted(s->bs)) { >> media_status = MS_MEDIA_PRESENT; >> @@ -915,6 +915,10 @@ static void cmd_start_stop_unit(IDEState *s, uint8_t* buf) >> ide_atapi_cmd_error(s, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); >> break; >> } >> + >> + if (loej && !err) { >> + s->tray_open = !start; >> + } >> } >> >> static void cmd_mechanism_status(IDEState *s, uint8_t* buf) >> diff --git a/hw/ide/internal.h b/hw/ide/internal.h >> index 46e84fa..cd8e977 100644 >> --- a/hw/ide/internal.h >> +++ b/hw/ide/internal.h >> @@ -442,6 +442,7 @@ struct IDEState { >> struct unreported_events events; >> uint8_t sense_key; >> uint8_t asc; >> + bool tray_open; >> uint8_t cdrom_changed; >> int packet_transfer_size; >> int elementary_transfer_size; > > Probably needs to be migrated. Correct, but I chose to fix that separately, in PATCH 27/45. Note that this patch neither breaks nor fixes anything. It just prepares the ground for fixes.