Re: [PATCH] Bluetooth: Move smp_unregister() into hci_dev_do_close() function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel,

On Wed, Jan 28, 2015, Marcel Holtmann wrote:
> The smp_unregister() function needs to be called every time the
> controller is powered down. There are multiple entry points when
> this can happen. One is "hciconfig hci0 reset" which will throw
> a WARN_ON when LE support has been enabled.
> 
> [   78.564620] WARNING: CPU: 0 PID: 148 at net/bluetooth/smp.c:3075 smp_register+0xf1/0x170()
> [   78.564622] Modules linked in:
> [   78.564628] CPU: 0 PID: 148 Comm: kworker/u3:1 Not tainted 3.19.0-rc4-devel+ #404
> [   78.564629] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
> [   78.564635] Workqueue: hci0 hci_rx_work
> [   78.564638]  ffffffff81b4a7a2 ffff88001cb2fb38 ffffffff8161d881 0000000080000000
> [   78.564642]  0000000000000000 ffff88001cb2fb78 ffffffff8103b870 696e55206e6f6f6d
> [   78.564645]  ffff88001d965000 0000000000000000 0000000000000000 ffff88001d965000
> [   78.564648] Call Trace:
> [   78.564655]  [<ffffffff8161d881>] dump_stack+0x4f/0x7b
> [   78.564662]  [<ffffffff8103b870>] warn_slowpath_common+0x80/0xc0
> [   78.564667]  [<ffffffff81544b00>] ? add_uuid+0x1f0/0x1f0
> [   78.564671]  [<ffffffff8103b955>] warn_slowpath_null+0x15/0x20
> [   78.564674]  [<ffffffff81562d81>] smp_register+0xf1/0x170
> [   78.564680]  [<ffffffff81081236>] ? lock_timer_base.isra.30+0x26/0x50
> [   78.564683]  [<ffffffff81544bf0>] powered_complete+0xf0/0x120
> [   78.564688]  [<ffffffff8152e622>] hci_req_cmd_complete+0x82/0x260
> [   78.564692]  [<ffffffff8153554f>] hci_cmd_complete_evt+0x6cf/0x2e20
> [   78.564697]  [<ffffffff81623e43>] ? _raw_spin_unlock_irqrestore+0x13/0x30
> [   78.564701]  [<ffffffff8106b0af>] ? __wake_up_sync_key+0x4f/0x60
> [   78.564705]  [<ffffffff8153a2ab>] hci_event_packet+0xbcb/0x2e70
> [   78.564709]  [<ffffffff814094d3>] ? skb_release_all+0x23/0x30
> [   78.564711]  [<ffffffff81409529>] ? kfree_skb+0x29/0x40
> [   78.564715]  [<ffffffff815296c8>] hci_rx_work+0x1c8/0x3f0
> [   78.564719]  [<ffffffff8105bd91>] ? get_parent_ip+0x11/0x50
> [   78.564722]  [<ffffffff8105be25>] ? preempt_count_add+0x55/0xb0
> [   78.564727]  [<ffffffff8104f65f>] process_one_work+0x12f/0x360
> [   78.564731]  [<ffffffff8104ff9b>] worker_thread+0x6b/0x4b0
> [   78.564735]  [<ffffffff8104ff30>] ? cancel_delayed_work_sync+0x10/0x10
> [   78.564738]  [<ffffffff810542fa>] kthread+0xea/0x100
> [   78.564742]  [<ffffffff81620000>] ? __schedule+0x3e0/0x980
> [   78.564745]  [<ffffffff81054210>] ? kthread_create_on_node+0x180/0x180
> [   78.564749]  [<ffffffff816246ec>] ret_from_fork+0x7c/0xb0
> [   78.564752]  [<ffffffff81054210>] ? kthread_create_on_node+0x180/0x180
> [   78.564755] ---[ end trace 8b0d943af76d3736 ]---
> 
> This warning is not critical and has only been placed in the code to
> actually catch this exact situation. To avoid triggering it move
> the smp_unregister() into hci_dev_do_close() which will now also
> take care of remove the SMP channel. It is safe to call this function
> since it only remove the channel if it has been previously registered.
> 
> Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
> ---
>  net/bluetooth/hci_core.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)

Applied to bluetooth-next. Thanks.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux