Commit f89d75f224dc530f1c173d9093f75865345840a1

Authored by Peter Zijlstra
Committed by Linus Torvalds
1 parent 9774a1f54f

[PATCH] lockdep: annotate bcsp driver

=============================================
    [ INFO: possible recursive locking detected ]
    2.6.18-1.2699.fc6 #1
    ---------------------------------------------
    swapper/0 is trying to acquire lock:
     (&list->lock#3){+...}, at: [<c05ad307>] skb_dequeue+0x12/0x43

    but task is already holding lock:
     (&list->lock#3){+...}, at: [<df98cd79>] bcsp_dequeue+0x6a/0x11e [hci_uart]

Two different list locks nest, annotate so.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

drivers/bluetooth/hci_bcsp.c
... ... @@ -330,7 +330,7 @@
330 330 reliable packet if the number of packets sent but not yet ack'ed
331 331 is < than the winsize */
332 332  
333   - spin_lock_irqsave(&bcsp->unack.lock, flags);
  333 + spin_lock_irqsave_nested(&bcsp->unack.lock, flags, SINGLE_DEPTH_NESTING);
334 334  
335 335 if (bcsp->unack.qlen < BCSP_TXWINSIZE && (skb = skb_dequeue(&bcsp->rel)) != NULL) {
336 336 struct sk_buff *nskb = bcsp_prepare_pkt(bcsp, skb->data, skb->len, bt_cb(skb)->pkt_type);
... ... @@ -696,7 +696,7 @@
696 696  
697 697 BT_DBG("hu %p retransmitting %u pkts", hu, bcsp->unack.qlen);
698 698  
699   - spin_lock_irqsave(&bcsp->unack.lock, flags);
  699 + spin_lock_irqsave_nested(&bcsp->unack.lock, flags, SINGLE_DEPTH_NESTING);
700 700  
701 701 while ((skb = __skb_dequeue_tail(&bcsp->unack)) != NULL) {
702 702 bcsp->msgq_txseq = (bcsp->msgq_txseq - 1) & 0x07;