Subject: Re: CVS commit: src/sys/arch/xen/i386
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: source-changes
Date: 06/26/2007 10:40:52
On Tue, Jun 26, 2007 at 08:23:49AM +0900, YAMAMOTO Takashi wrote:
> > Module Name:	src
> > Committed By:	bouyer
> > Date:		Mon Jun 25 20:09:34 UTC 2007
> > 
> > Modified Files:
> > 	src/sys/arch/xen/i386: spl.S vector.S
> > 
> > Log Message:
> > Various cleanups in interrupt code, and fix a potential crash in doreti:
> > if we enter doreti_checkast with only soft interrupt pendings, we would
> > jump to one of the soft* vector with %esi uninitialized, and the vector
> > would do a jump *%esi at the end ...
> > I don't know why nobody ever went into this; I guess in the common case
> > there's no soft irq pending without a hard irq in this code path ...
> 
> my understanding is that it can't happen because, when jumped from
> hypervisor_callback, doreti doesn't lower ipl.

You're right, after some sleep I can see it.
I'll keep the code as is, it'll save me some head scratching the next time
I'll look at it :)

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--