• Jarek Poplawski's avatar
    [NET] ifb: set separate lockdep classes for queue locks · 94833dfb
    Jarek Poplawski authored
    [   10.536424] =======================================================
    [   10.536424] [ INFO: possible circular locking dependency detected ]
    [   10.536424] 2.6.25-rc3-devel #3
    [   10.536424] -------------------------------------------------------
    [   10.536424] swapper/0 is trying to acquire lock:
    [   10.536424]  (&dev->queue_lock){-+..}, at: [<c0299b4a>] 
    dev_queue_xmit+0x175/0x2f3
    [   10.536424]
    [   10.536424] but task is already holding lock:
    [   10.536424]  (&p->tcfc_lock){-+..}, at: [<f8a67154>] tcf_mirred+0x20/0x178 
    [act_mirred]
    [   10.536424]
    [   10.536424] which lock already depends on the new lock.
    
    lockdep warns of locking order while using ifb with sch_ingress and
    act_mirred: ingress_lock, tcfc_lock, queue_lock (usually queue_lock
    is at the beginning). This patch is only to tell lockdep that ifb is
    a different device (e.g. from eth) and has its own pair of queue
    locks. (This warning is a false-positive in common scenario of using
    ifb; yet there are possible situations, when this order could be
    dangerous; lockdep should warn in such a case.) (With suggestions by
    David S. Miller)
    Reported-and-tested-by: default avatarDenys Fedoryshchenko <denys@visp.net.lb>
    Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
    Acked-by: default avatarJamal Hadi Salim <hadi@cyberus.ca>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    94833dfb
ifb.c 7.06 KB