Re: 2.6.23-rc5: possible irq lock inversion dependency detected

From: jamal
Date: Mon Sep 10 2007 - 20:05:14 EST


On Mon, 2007-10-09 at 21:00 +0800, Herbert Xu wrote:


> The minimal fix would be to make sure that we disable BH on
> the first CPU.

disabling BH would make it more symmetric to the way we handle
egress. I couldnt reproduce the issue, but this should hopefully resolve
it.
Christian, can you test with this patch?

cheers,
jamal




[NET_SCHED] make ingress qlock symmetric to egress

Signed-off-by: Jamal Hadi Salim <hadi@xxxxxxxxxx>

--- a/net/sched/sch_generic.c 2007/09/10 23:19:45 1.1
+++ b/net/sched/sch_generic.c 2007/09/10 23:52:45
@@ -42,12 +42,12 @@
void qdisc_lock_tree(struct net_device *dev)
{
spin_lock_bh(&dev->queue_lock);
- spin_lock(&dev->ingress_lock);
+ spin_lock_bh(&dev->ingress_lock);
}

void qdisc_unlock_tree(struct net_device *dev)
{
- spin_unlock(&dev->ingress_lock);
+ spin_unlock_bh(&dev->ingress_lock);
spin_unlock_bh(&dev->queue_lock);
}