--- l-3.7.10-vs2.3.5.6/kernel/vserver/inet.c 2013-03-04 18:51:16.341699196 +0100 +++ l-3.7.10-vs2.3.5.6a1/kernel/vserver/inet.c 2013-04-29 16:13:04.440461407 +0200 @@ -181,7 +181,7 @@ } WARN_ON_ONCE(in_irq()); - spin_lock(&nxi->addr_lock); + spin_lock_bh(&nxi->addr_lock); for (ptr = &nxi->v4; ptr; ptr = ptr->next) { __be32 primary = ptr->ip[0].s_addr; __be32 mask = ptr->mask.s_addr; @@ -210,7 +210,7 @@ found = ipv4_is_loopback(fl4->daddr) ? IPI_LOOPBACK : nxi->v4.ip[0].s_addr; found_unlock: - spin_unlock(&nxi->addr_lock); + spin_unlock_bh(&nxi->addr_lock); found: /* assign src ip to flow */ fl4->saddr = found;