From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36622) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UeNvb-0006Sx-Qb for qemu-devel@nongnu.org; Mon, 20 May 2013 07:07:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UeNvX-0003Nj-19 for qemu-devel@nongnu.org; Mon, 20 May 2013 07:06:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:24994) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UeNvW-0003Nd-Pj for qemu-devel@nongnu.org; Mon, 20 May 2013 07:06:50 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r4KB6neC029917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 20 May 2013 07:06:49 -0400 From: Pavel Hrdina Date: Mon, 20 May 2013 13:06:47 +0200 Message-Id: Subject: [Qemu-devel] [PATCH v2] scsi: reset cdrom tray statuses on scsi_disk_reset List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, pbonzini@redhat.com, phrdina@redhat.com Tray statuses should be also reset. Some guests may lock the tray and right after resetting the guest it should be unlocked and closed. This is done on power-on, reset and resume from suspend/hibernate on bare-metal. This fix is already committed for IDE CD. Check the commit a7f3d65b65b8c86a5ff0c0abcfefb45e2ec6fe4c. Test results on bare-metal: - on reset/power-on the CD-ROM tray is closed even before the monitor is turned on - on resume from suspend/hibernate the tray is also closed before the monitor is turned on >>From test results it seems that this behavior is OS and probably BIOS independent. Signed-off-by: Pavel Hrdina --- hw/scsi/scsi-disk.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index c8d2a99..02733dc 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1984,6 +1984,9 @@ static void scsi_disk_reset(DeviceState *dev) nb_sectors--; } s->qdev.max_lba = nb_sectors; + /* reset tray statuses */ + s->tray_locked = 0; + s->tray_open = 0; } static void scsi_destroy(SCSIDevice *dev) -- 1.8.1.4