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.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to