On Wed, 2009-08-19 at 22:36 +0400, Nikita V. Youshchenko wrote: > tags 542250 +patch > thanks > > > ... I may guess that line 74 should check for in_interrupt() instead of > > in_softirq(). > > I've tried that and it really fixed the problem. Server already runs the > same backup procedure for several hours. Previously it crashed within 15 > minutes. > > Here is the patch I've applied: > > --- a/drivers/xen/core/spinlock.c 2009-08-19 16:20:17.000000000 +0400 > +++ b/drivers/xen/core/spinlock.c 2009-08-19 17:36:55.000000000 +0400 > @@ -71,7 +71,7 @@ > BUG_ON(__get_cpu_var(spinning_bh).lock == lock); > spinning = &__get_cpu_var(spinning_irq); > } else { > - BUG_ON(!in_softirq()); > + BUG_ON(!in_interrupt()); > spinning = &__get_cpu_var(spinning_bh); > } > BUG_ON(spinning->lock);
I'm glad it works for you, but it isn't a proper fix. Ben. -- Ben Hutchings If at first you don't succeed, you're doing about average.
signature.asc
Description: This is a digitally signed message part