From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Cox Subject: Re: Windows Bug Check 0x101 issue Date: Wed, 26 Mar 2008 10:27:44 +0000 Message-ID: <20080326102744.3124cbb4@core> References: <7k4pawfnxs.fsf@pingu.sky.yk.fujitsu.co.jp> <7k1w5zf50j.fsf@pingu.sky.yk.fujitsu.co.jp> <18408.57824.846687.465435@mariner.uk.xensource.com> <20080325175718.GT4411@implementation.uk.xensource.com> <7ky786dkup.fsf@pingu.sky.yk.fujitsu.co.jp> <18410.9596.488204.878357@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <18410.9596.488204.878357@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Jackson Cc: xen-devel@lists.xensource.com, Keir Fraser , Kouya Shimura , Samuel Thibault List-Id: xen-devel@lists.xenproject.org > > +static void ide_flush_cb(void *opaque, int ret) > > +{ > > + IDEState *s = opaque; > > + > > + s->status = READY_STAT; > > + ide_set_irq(s); > > You need to check the return value (ret) and set an appropriate IDE > error status if the operation failed. ide_abort_command may be of > some use. Flush errors are a bit hard to emulate. On a flush failing you have to provide back an error state indicating the LBA block number (LBA28 or LBA48 according to which flush command) of the specific failing block. Calling the cache flush again restarts the flushing process having dropped that block. Alan