Re: [BUG] 2.6.38-rc2: Circular Locking Dependency

From: David Miller
Date: Tue Feb 08 2011 - 03:06:51 EST


From: Knut Petersen <Knut_Petersen@xxxxxxxxxxx>
Date: Tue, 08 Feb 2011 08:51:22 +0100

> I bisected the problem with the following result:
>
> aa9421041128abb4d269ee1dc502ff65fb3b7d69 is the first bad commit
> commit aa9421041128abb4d269ee1dc502ff65fb3b7d69
> Author: Changli Gao <xiaosuo@xxxxxxxxx>
> Date: Sat Dec 4 02:31:41 2010 +0000
>
> net: init ingress queue
>
> The dev field of ingress queue is forgot to initialized, then NULL
> pointer dereference happens in qdisc_alloc().
>
> Move inits of tx queues to netif_alloc_netdev_queues().
>
> Signed-off-by: Changli Gao <xiaosuo@xxxxxxxxx>
> Acked-by: Eric Dumazet <eric.dumazet@xxxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
>
> :040000 040000 dcbb6ab41c4308cba1bc6823d200dcf92aa402d8
> b5e190ec681d26ffe62d1d0214c4ef77b8034189 M net

Indeed, this initialization is now too early for the sake
of getting the lockdep bits right. The problem is that at
the point in which we call netif_alloc_netdev_queue() we
haven't initialized dev->type yet, it is therefore always
zero when we setup the lockdep class for ->_xmit_lock.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/