From: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
To: Johan Hedberg <johan.hedberg@gmail.com>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH v3 00/16] Bluetooth: Add HCI transaction framework
Date: Thu, 28 Feb 2013 20:05:44 -0300 [thread overview]
Message-ID: <20130228230544.GA25750@samus> (raw)
In-Reply-To: <1361951844-13719-1-git-send-email-johan.hedberg@gmail.com>
Hi Johan,
On 09:57 Wed 27 Feb, Johan Hedberg wrote:
> Hi,
>
> Here's a revised set with the left-over init_last_cmd patch inserted
> where it belongs in the set.
>
> The other changes are based on an (off-list) review from Gustavo
> Padovan, resulting in removing unnecessary _irqsave versions of spinlock
> functions (for the skb queue), adding a hci_ prefix to some static
> hci_core.c functions as well as really removing the HCI_PENDING_CLASS
> flag (and not just its users).
Just got this while pluging a controller while bluetoothd was already running
(don't know if this is relevant):
[ 294.725077] usb 1-2: new full-speed USB device number 2 using uhci_hcd
[ 294.880486] usb 1-2: New USB device found, idVendor=0409, idProduct=55aa
[ 294.881671] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 294.882815] usb 1-2: Product: QEMU USB Hub
[ 294.883476] usb 1-2: Manufacturer: QEMU
[ 294.884092] usb 1-2: SerialNumber: 314159-0000:00:01.2-2
[ 294.887922] hub 1-2:1.0: USB hub found
[ 294.889696] hub 1-2:1.0: 8 ports detected
[ 295.333565] usb 1-2.1: new full-speed USB device number 3 using uhci_hcd
[ 295.590206] usb 1-2.1: New USB device found, idVendor=0a5c, idProduct=21e8
[ 295.590928] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 295.591799] usb 1-2.1: Product: BCM20702A0
[ 295.592315] usb 1-2.1: Manufacturer: Broadcom Corp
[ 295.592810] usb 1-2.1: SerialNumber: 000272D69969
[ 295.627414] usbcore: registered new interface driver btusb
[ 295.629706]
[ 295.630090] =================================
[ 295.630668] [ INFO: inconsistent lock state ]
[ 295.630668] 3.8.0-rc1-13045-g6303877 #1 Tainted: G W
[ 295.630668] ---------------------------------
[ 295.630668] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[ 295.630668] swapper/1/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 295.630668] (&(&list->lock)->rlock#5){?.+...}, at: [<ffffffff813c5a41>] skb_queue_tail+0x1c/0x46
[ 295.630668] {HARDIRQ-ON-W} state was registered at:
[ 295.630668] [<ffffffff8106256e>] __lock_acquire+0x323/0xe85
[ 295.630668] [<ffffffff8106353f>] lock_acquire+0x93/0xb1
[ 295.630668] [<ffffffff814fd240>] _raw_spin_lock+0x40/0x74
[ 295.630668] [<ffffffffa0004345>] hci_transaction_run+0x4d/0xb3 [bluetooth]
[ 295.630668] [<ffffffffa000449a>] __hci_request+0xef/0x1c7 [bluetooth]
[ 295.630668] [<ffffffffa000565e>] hci_dev_open+0x15d/0x29a [bluetooth]
[ 295.630668] [<ffffffffa00057d6>] hci_power_on+0x3b/0x8a [bluetooth]
[ 295.630668] [<ffffffff8103eb46>] process_one_work+0x1c2/0x31b
[ 295.630668] [<ffffffff8103ef7e>] worker_thread+0x12e/0x1cc
[ 295.630668] [<ffffffff8104393d>] kthread+0x9d/0xa5
[ 295.630668] [<ffffffff814fe7bc>] ret_from_fork+0x7c/0xb0
[ 295.630668] irq event stamp: 289936
[ 295.630668] hardirqs last enabled at (289933): [<ffffffff81008a7c>] default_idle+0x25/0x4a
[ 295.630668] hardirqs last disabled at (289934): [<ffffffff814fdf2d>] common_interrupt+0x6d/0x72
[ 295.630668] softirqs last enabled at (289936): [<ffffffff810309f9>] _local_bh_enable+0xe/0x10
[ 295.630668] softirqs last disabled at (289935): [<ffffffff81030fb5>] irq_enter+0x3f/0x71
[ 295.630668]
[ 295.630668] other info that might help us debug this:
[ 295.630668] Possible unsafe locking scenario:
[ 295.630668]
[ 295.630668] CPU0
[ 295.630668] ----
[ 295.630668] lock(&(&list->lock)->rlock#5);
[ 295.630668] <Interrupt>
[ 295.630668] lock(&(&list->lock)->rlock#5);
[ 295.630668]
[ 295.630668] *** DEADLOCK ***
[ 295.630668]
[ 295.630668] no locks held by swapper/1/0.
[ 295.630668]
[ 295.630668] stack backtrace:
[ 295.630668] Pid: 0, comm: swapper/1 Tainted: G W 3.8.0-rc1-13045-g6303877 #1
[ 295.630668] Call Trace:
[ 295.630668] <IRQ> [<ffffffff814f6c7c>] print_usage_bug+0x1f7/0x208
[ 295.630668] [<ffffffff8100c3d6>] ? save_stack_trace+0x27/0x44
[ 295.630668] [<ffffffff81060548>] ? check_usage_backwards+0x96/0x96
[ 295.630668] [<ffffffff81060d45>] mark_lock+0x11b/0x247
[ 295.630668] [<ffffffff810624ff>] __lock_acquire+0x2b4/0xe85
[ 295.630668] [<ffffffff81060c57>] ? mark_lock+0x2d/0x247
[ 295.630668] [<ffffffff8106353f>] lock_acquire+0x93/0xb1
[ 295.630668] [<ffffffff813c5a41>] ? skb_queue_tail+0x1c/0x46
[ 295.630668] [<ffffffff810c2992>] ? __kmalloc_track_caller+0xf2/0x10a
[ 295.630668] [<ffffffff814fdccb>] _raw_spin_lock_irqsave+0x55/0x8f
[ 295.630668] [<ffffffff813c5a41>] ? skb_queue_tail+0x1c/0x46
[ 295.630668] [<ffffffff810583aa>] ? timekeeping_get_ns.constprop.10+0x12/0x38
[ 295.630668] [<ffffffff813c5a41>] skb_queue_tail+0x1c/0x46
[ 295.630668] [<ffffffffa000132f>] hci_recv_frame+0x57/0x71 [bluetooth]
[ 295.630668] [<ffffffffa0002422>] hci_reassembly+0x15d/0x196 [bluetooth]
[ 295.630668] [<ffffffffa00024f8>] hci_recv_fragment+0x41/0x66 [bluetooth]
[ 295.630668] [<ffffffffa006d31d>] btusb_intr_complete+0x8f/0x123 [btusb]
[ 295.630668] [<ffffffff81355f46>] usb_hcd_giveback_urb+0x76/0xbe
[ 295.630668] [<ffffffff813746b1>] uhci_giveback_urb+0x107/0x20c
[ 295.630668] [<ffffffff81060c57>] ? mark_lock+0x2d/0x247
[ 295.630668] [<ffffffff81374cfa>] uhci_scan_schedule+0x544/0x7b2
[ 295.630668] [<ffffffff81061c4b>] ? lock_acquired+0x1b5/0x1cf
[ 295.630668] [<ffffffff81376034>] uhci_irq+0xf4/0x10a
[ 295.630668] [<ffffffff813553bb>] usb_hcd_irq+0x41/0x75
[ 295.630668] [<ffffffff8107afaa>] handle_irq_event_percpu+0x2a/0x135
[ 295.630668] [<ffffffff8107b0f1>] handle_irq_event+0x3c/0x5f
[ 295.630668] [<ffffffff814fd26c>] ? _raw_spin_lock+0x6c/0x74
[ 295.630668] [<ffffffff8107d778>] ? handle_fasteoi_irq+0x19/0xb0
[ 295.630668] [<ffffffff8107d7d9>] handle_fasteoi_irq+0x7a/0xb0
[ 295.630668] [<ffffffff81003593>] handle_irq+0x1a/0x24
[ 295.630668] [<ffffffff810032aa>] do_IRQ+0x48/0xa0
[ 295.630668] [<ffffffff814fdf32>] common_interrupt+0x72/0x72
[ 295.630668] <EOI> [<ffffffff8101eca3>] ? native_safe_halt+0x6/0x8
[ 295.630668] [<ffffffff810610c4>] ? trace_hardirqs_on+0xd/0xf
[ 295.630668] [<ffffffff81008a81>] default_idle+0x2a/0x4a
[ 295.630668] [<ffffffff8100920d>] cpu_idle+0x6a/0xb8
[ 295.630668] [<ffffffff814f0814>] start_secondary+0x21e/0x220
Cheers,
--
Vinicius
next prev parent reply other threads:[~2013-02-28 23:05 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-27 7:57 [PATCH v3 00/16] Bluetooth: Add HCI transaction framework Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 01/16] Bluetooth: Fix __hci_request() handling of empty requests Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 02/16] Bluetooth: Split HCI init sequence into three stages Johan Hedberg
2013-02-28 19:54 ` Marcel Holtmann
2013-03-01 6:55 ` Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 03/16] Bluetooth: Add initial skeleton for HCI transaction framework Johan Hedberg
2013-02-28 19:52 ` Marcel Holtmann
2013-03-01 7:04 ` Johan Hedberg
2013-03-01 7:30 ` Marcel Holtmann
2013-03-01 10:03 ` Johan Hedberg
2013-03-01 10:10 ` Johan Hedberg
2013-03-01 16:07 ` Marcel Holtmann
2013-03-01 16:13 ` Marcel Holtmann
2013-02-27 7:57 ` [PATCH v3 04/16] Bluetooth: Refactor HCI command skb creation Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 05/16] Bluetooth: Introduce new hci_transaction_cmd function Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 06/16] Bluetooth: Introduce a hci_transaction_from_skb function Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 07/16] Bluetooth: Add transaction cmd_complete and cmd_status functions Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 08/16] Bluetooth: Convert hci_request to use HCI transaction framework Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 09/16] Bluetooth: Remove unused hdev->init_last_cmd Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 10/16] Bluetooth: Move power on HCI command updates to their own function Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 11/16] Bluetooth: Update mgmt powered HCI commands to use transactions Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 12/16] Bluetooth: Wait for HCI command completion with mgmt_set_powered Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 13/16] Bluetooth: Fix busy condition testing for EIR and class updates Johan Hedberg
2013-02-28 20:01 ` Marcel Holtmann
2013-03-01 7:32 ` Johan Hedberg
2013-03-01 8:00 ` Marcel Holtmann
2013-03-01 8:39 ` Johan Hedberg
2013-03-01 16:02 ` Marcel Holtmann
2013-02-27 7:57 ` [PATCH v3 14/16] Bluetooth: Fix UUID/class mgmt command response synchronization Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 15/16] Bluetooth: Remove useless HCI_PENDING_CLASS flag Johan Hedberg
2013-02-27 7:57 ` [PATCH v3 16/16] Bluetooth: Remove empty HCI event handlers Johan Hedberg
2013-02-28 23:05 ` Vinicius Costa Gomes [this message]
2013-03-01 8:46 ` [PATCH v3 00/16] Bluetooth: Add HCI transaction framework Johan Hedberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130228230544.GA25750@samus \
--to=vinicius.gomes@openbossa.org \
--cc=johan.hedberg@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox