From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LL221-00035P-Lw for qemu-devel@nongnu.org; Thu, 08 Jan 2009 16:03:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LL221-00035D-0j for qemu-devel@nongnu.org; Thu, 08 Jan 2009 16:03:09 -0500 Received: from [199.232.76.173] (port=49971 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LL220-00035A-Ub for qemu-devel@nongnu.org; Thu, 08 Jan 2009 16:03:08 -0500 Received: from savannah.gnu.org ([199.232.41.3]:59707 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LL220-0007yL-GI for qemu-devel@nongnu.org; Thu, 08 Jan 2009 16:03:08 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1LL220-0008FH-41 for qemu-devel@nongnu.org; Thu, 08 Jan 2009 21:03:08 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1LL21z-0008FC-RP for qemu-devel@nongnu.org; Thu, 08 Jan 2009 21:03:08 +0000 MIME-Version: 1.0 Errors-To: aliguori Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Anthony Liguori Message-Id: Date: Thu, 08 Jan 2009 21:03:07 +0000 Subject: [Qemu-devel] [6252] IDE: Return zero when reading error register with slave selected ( Justin Chevrier) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 6252 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6252 Author: aliguori Date: 2009-01-08 21:03:07 +0000 (Thu, 08 Jan 2009) Log Message: ----------- IDE: Return zero when reading error register with slave selected (Justin Chevrier) During hardware detection Openserver issues commands to slaves on both primary and secondary ports. We already return a zero for the status register in this situation but after reading the status register the Openserver installer proceeds to check the value of the error register. Currently we return the existing value in the register. This confuses the installer and it tries to access the slave units later on. When the command that gets issued later gets ignored the installer freezes. The patch below returns zero when reading the error register if a slave unit is selected. Openserver can now successfully be installed using the emulated IDE hard drive. Return zero when reading error register with slave selected Signed-off-by: Justin Chevrier Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/hw/ide.c Modified: trunk/hw/ide.c =================================================================== --- trunk/hw/ide.c 2009-01-08 20:01:26 UTC (rev 6251) +++ trunk/hw/ide.c 2009-01-08 21:03:07 UTC (rev 6252) @@ -2467,7 +2467,8 @@ ret = 0xff; break; case 1: - if (!ide_if[0].bs && !ide_if[1].bs) + if ((!ide_if[0].bs && !ide_if[1].bs) || + (s != ide_if && !s->bs)) ret = 0; else if (!hob) ret = s->error;