Port-xen archive

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

Re: panic: kernel diagnostic assertion "xbd_io->xio_mapped == 0" failed



On Wed, Aug 03, 2011 at 08:22:34PM -0700, Jeff Rizzo wrote:
> I have, most unfortunately, changed a number of things at once in
> the last few minutes, so it's hard to say which particular thing is
> the culprit:
> 
> - updated my dom0 to -current as of yesterday (5.99.55), both kernel
> and userland (had been running a slightly older 5.99.55 kernel with
> a 5.99.48 userland successfully for a while)
> 
> - updated the xentools33 package (or rather rebuilt it)
> 
> ...and now I get this panic shortly after xendomains starts:
> 
> panic: kernel diagnostic assertion "xbd_io->xio_mapped == 0" failed:
> file "/Users/riz/Documents/code/netbsd/src/sys/arch/xen/xen/xbdback_xenbus.c",
> line 1589

Looks like something I already tracked down. Could you try the attached patch ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--
Index: xbdback_xenbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/xbdback_xenbus.c,v
retrieving revision 1.41
diff -u -p -u -r1.41 xbdback_xenbus.c
--- xbdback_xenbus.c    24 Jul 2011 23:56:34 -0000      1.41
+++ xbdback_xenbus.c    4 Aug 2011 10:43:12 -0000
@@ -1657,19 +1657,17 @@ xbdback_shm_callback(void *arg)
                case 0:
                        xbd_io->xio_mapped = 1;
                        SIMPLEQ_REMOVE_HEAD(&xbdback_shmq, xbdi_on_hold);
-                       splx(s);
+                       (void)splbio();
                        xbdback_trampoline(xbdi, xbdi);
-                       s = splvm();
                        break;
                default:
                        SIMPLEQ_REMOVE_HEAD(&xbdback_shmq, xbdi_on_hold);
-                       splx(s);
+                       (void)splbio();
                        printf("xbdback_shm_callback: xen_shm error %d\n",
                               error);
                        xbdi->xbdi_cont = xbdi->xbdi_cont_aux;
                        xbdback_io_error(xbd_io, error);
                        xbdback_trampoline(xbdi, xbdi);
-                       s = splvm();
                        break;
                }
        }


Home | Main Index | Thread Index | Old Index