Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: current dom0 panic on domu launch



On Wed, Oct 14, 2009 at 12:24:48PM +0200, Christoph Egger wrote:
> On Wednesday 14 October 2009 11:55:55 Manuel Bouyer wrote:
> > On Wed, Oct 14, 2009 at 08:05:43AM +0200, Christoph Egger wrote:
> > > Index: sys/dev/scsipi/sd.c
> > > ===================================================================
> > > RCS file: /cvsroot/src/sys/dev/scsipi/sd.c,v
> > > retrieving revision 1.289
> > > diff -u -p -r1.289 sd.c
> > > --- sys/dev/scsipi/sd.c   3 Aug 2009 09:40:45 -0000       1.289
> > > +++ sys/dev/scsipi/sd.c   14 Oct 2009 05:50:21 -0000
> > > @@ -1188,7 +1188,9 @@ sdioctl(dev_t dev, u_long cmd, void *add
> > >            */
> > >           if ((flag & FWRITE) == 0)
> > >                   return (EBADF);
> > > -         if (((sd->flags & SDF_DIRTY) != 0 || *(int *)addr != 0)) {
> > > +         if (((sd->flags & SDF_DIRTY) != 0 ||
> > > +            (addr && *(int *)addr != 0)))
> > > +         {
> > >                   error = sd_flush(sd, 0);
> > >                   if (error)
> > >                           sd->flags &= ~SDF_FLUSHING;
> >
> > that's probably the wrong thing to do, some cache flush operations
> > would be ignored. Better fix the caller to provice a non-NULL, non-0
> > int pointer.
> 
> This is the backtrace provided by Sarton in an earlier mail:
> 
> sdioctl() at netbsd:sdioctl+0x506
> VOP_IOCTL() at netbsd:VOP_IOCTL+0x31
> xbdback_do_io() at netbsd:xbdback_do_io+0xd2
> workqueue_worker() at netbsd:workqueue_worker+0x81
> 
> IN xbdback_do_io(), there's this line:
> 
>                 error = VOP_IOCTL(xbdi->xbdi_vp, DIOCCACHESYNC, NULL, FWRITE,
>                     kauth_cred_get());
> 
> where NULL is explicitely passed to addr.
> If sd.c is correct as is, then xbdback_do_io() is wrong.

I guess sd.c is correct, so I'd say xbdback_do_io() needs to be
changed to pass a non-0 int.

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           
Manuel.Bouyer%lip6.fr@localhost
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index