diff -NurpP --minimal a/kernel/vserver/cvirt.c b/kernel/vserver/cvirt.c --- a/kernel/vserver/cvirt.c 2006-06-01 15:44:14.000000000 +0200 +++ b/kernel/vserver/cvirt.c 2006-07-19 22:27:02.000000000 +0200 @@ -68,8 +68,9 @@ void vx_update_load(struct vx_info *vxi) uint32_t now, last, delta; unsigned int nr_running, nr_uninterruptible; unsigned int total; + unsigned long flags; - spin_lock(&vxi->cvirt.load_lock); + spin_lock_irqsave(&vxi->cvirt.load_lock, flags); now = jiffies; last = vxi->cvirt.load_last; @@ -92,7 +93,7 @@ void vx_update_load(struct vx_info *vxi) vxi->cvirt.load_last = now; out: atomic_inc(&vxi->cvirt.load_updates); - spin_unlock(&vxi->cvirt.load_lock); + spin_unlock_irqrestore(&vxi->cvirt.load_lock, flags); }