26 Feb, 2019

2 commits

  • Add HCI_QUIRK_USE_BDADDR_PROPERTY to allow controllers to retrieve
    the public Bluetooth address from the firmware node property
    'local-bd-address'. If quirk is set and the property does not exist
    or is invalid the controller is marked as unconfigured.

    Signed-off-by: Matthias Kaehlcke
    Reviewed-by: Balakrishna Godavarthi
    Tested-by: Balakrishna Godavarthi
    Signed-off-by: Marcel Holtmann

    Matthias Kaehlcke
     
  • Make use of the struct_size() helper instead of an open-coded version
    in order to avoid any potential type mistakes, in particular in the
    context in which this code is being used.

    So, change the following form:

    sizeof(*rp) + (sizeof(rp->entry[0]) * count);

    to :

    struct_size(rp, entry, count)

    Notice that, in this case, variable rp_len is not necessary, hence
    it is removed.

    This code was detected with the help of Coccinelle.

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Marcel Holtmann

    Gustavo A. R. Silva
     

26 Sep, 2018

1 commit

  • In case unpair_device() was called through mgmt interface at the same time
    when pairing was in progress, Bluetooth kernel module crash was seen.

    [ 600.351225] general protection fault: 0000 [#1] SMP PTI
    [ 600.351235] CPU: 1 PID: 11096 Comm: btmgmt Tainted: G OE 4.19.0-rc1+ #1
    [ 600.351238] Hardware name: Dell Inc. Latitude E5440/08RCYC, BIOS A18 05/14/2017
    [ 600.351272] RIP: 0010:smp_chan_destroy.isra.10+0xce/0x2c0 [bluetooth]
    [ 600.351276] Code: c0 0f 84 b4 01 00 00 80 78 28 04 0f 84 53 01 00 00 4d 85 ed 0f 85 ab 00 00 00 48 8b 08 48 8b 50 08 be 10 00 00 00 48 89 51 08 89 0a 48 b9 00 02 00 00 00 00 ad de 48 89 48 08 48 8b 83 00 01
    [ 600.351279] RSP: 0018:ffffa9be839b3b50 EFLAGS: 00010246
    [ 600.351282] RAX: ffff9c999ac565a0 RBX: ffff9c9996e98c00 RCX: ffff9c999aa28b60
    [ 600.351285] RDX: dead000000000200 RSI: 0000000000000010 RDI: ffff9c999e403500
    [ 600.351287] RBP: ffffa9be839b3b70 R08: 0000000000000000 R09: ffffffff92a25c00
    [ 600.351290] R10: ffffa9be839b3ae8 R11: 0000000000000001 R12: ffff9c995375b800
    [ 600.351292] R13: 0000000000000000 R14: ffff9c99619a5000 R15: ffff9c9962a01c00
    [ 600.351295] FS: 00007fb2be27c700(0000) GS:ffff9c999e880000(0000) knlGS:0000000000000000
    [ 600.351298] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 600.351300] CR2: 00007fb2bdadbad0 CR3: 000000041c328001 CR4: 00000000001606e0
    [ 600.351302] Call Trace:
    [ 600.351325] smp_failure+0x4f/0x70 [bluetooth]
    [ 600.351345] smp_cancel_pairing+0x74/0x80 [bluetooth]
    [ 600.351370] unpair_device+0x1c1/0x330 [bluetooth]
    [ 600.351399] hci_sock_sendmsg+0x960/0x9f0 [bluetooth]
    [ 600.351409] ? apparmor_socket_sendmsg+0x1e/0x20
    [ 600.351417] sock_sendmsg+0x3e/0x50
    [ 600.351422] sock_write_iter+0x85/0xf0
    [ 600.351429] do_iter_readv_writev+0x12b/0x1b0
    [ 600.351434] do_iter_write+0x87/0x1a0
    [ 600.351439] vfs_writev+0x98/0x110
    [ 600.351443] ? ep_poll+0x16d/0x3d0
    [ 600.351447] ? ep_modify+0x73/0x170
    [ 600.351451] do_writev+0x61/0xf0
    [ 600.351455] ? do_writev+0x61/0xf0
    [ 600.351460] __x64_sys_writev+0x1c/0x20
    [ 600.351465] do_syscall_64+0x5a/0x110
    [ 600.351471] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [ 600.351474] RIP: 0033:0x7fb2bdb62fe0
    [ 600.351477] Code: 73 01 c3 48 8b 0d b8 6e 2c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d 69 c7 2c 00 00 75 10 b8 14 00 00 00 0f 05 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 de 80 01 00 48 89 04 24
    [ 600.351479] RSP: 002b:00007ffe062cb8f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014
    [ 600.351484] RAX: ffffffffffffffda RBX: 000000000255b3d0 RCX: 00007fb2bdb62fe0
    [ 600.351487] RDX: 0000000000000001 RSI: 00007ffe062cb920 RDI: 0000000000000004
    [ 600.351490] RBP: 00007ffe062cb920 R08: 000000000255bd80 R09: 0000000000000000
    [ 600.351494] R10: 0000000000000353 R11: 0000000000000246 R12: 0000000000000001
    [ 600.351497] R13: 00007ffe062cbbe0 R14: 0000000000000000 R15: 0000000000000000
    [ 600.351501] Modules linked in: algif_hash algif_skcipher af_alg cmac ipt_MASQUERADE nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_nat_ipv4 xt_addrtype iptable_filter ip_tables xt_conntrack x_tables nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c br_netfilter bridge stp llc overlay arc4 nls_iso8859_1 dm_crypt intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp dell_laptop kvm_intel crct10dif_pclmul dell_smm_hwmon crc32_pclmul ghash_clmulni_intel pcbc aesni_intel aes_x86_64 crypto_simd cryptd glue_helper intel_cstate intel_rapl_perf uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev media hid_multitouch input_leds joydev serio_raw dell_wmi snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic dell_smbios dcdbas sparse_keymap
    [ 600.351569] snd_hda_intel btusb snd_hda_codec btrtl btbcm btintel snd_hda_core bluetooth(OE) snd_hwdep snd_pcm iwlmvm ecdh_generic wmi_bmof dell_wmi_descriptor snd_seq_midi mac80211 snd_seq_midi_event lpc_ich iwlwifi snd_rawmidi snd_seq snd_seq_device snd_timer cfg80211 snd soundcore mei_me mei dell_rbtn dell_smo8800 mac_hid parport_pc ppdev lp parport autofs4 hid_generic usbhid hid i915 nouveau kvmgt vfio_mdev mdev vfio_iommu_type1 vfio kvm irqbypass i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt mxm_wmi psmouse ahci sdhci_pci cqhci libahci fb_sys_fops sdhci drm e1000e video wmi
    [ 600.351637] ---[ end trace e49e9f1df09c94fb ]---
    [ 600.351664] RIP: 0010:smp_chan_destroy.isra.10+0xce/0x2c0 [bluetooth]
    [ 600.351666] Code: c0 0f 84 b4 01 00 00 80 78 28 04 0f 84 53 01 00 00 4d 85 ed 0f 85 ab 00 00 00 48 8b 08 48 8b 50 08 be 10 00 00 00 48 89 51 08 89 0a 48 b9 00 02 00 00 00 00 ad de 48 89 48 08 48 8b 83 00 01
    [ 600.351669] RSP: 0018:ffffa9be839b3b50 EFLAGS: 00010246
    [ 600.351672] RAX: ffff9c999ac565a0 RBX: ffff9c9996e98c00 RCX: ffff9c999aa28b60
    [ 600.351674] RDX: dead000000000200 RSI: 0000000000000010 RDI: ffff9c999e403500
    [ 600.351676] RBP: ffffa9be839b3b70 R08: 0000000000000000 R09: ffffffff92a25c00
    [ 600.351679] R10: ffffa9be839b3ae8 R11: 0000000000000001 R12: ffff9c995375b800
    [ 600.351681] R13: 0000000000000000 R14: ffff9c99619a5000 R15: ffff9c9962a01c00
    [ 600.351684] FS: 00007fb2be27c700(0000) GS:ffff9c999e880000(0000) knlGS:0000000000000000
    [ 600.351686] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 600.351689] CR2: 00007fb2bdadbad0 CR3: 000000041c328001 CR4: 00000000001606e0

    Crash happened because list_del_rcu() was called twice for smp->ltk. This
    was possible if unpair_device was called right after ltk was generated
    but before keys were distributed.

    In this commit smp_cancel_pairing was refactored to cancel pairing if it
    is in progress and otherwise just removes keys. Once keys are removed from
    rcu list, pointers to smp context's keys are set to NULL to make sure
    removed list items are not accessed later.

    This commit also adjusts the functionality of mgmt unpair_device() little
    bit. Previously pairing was canceled only if pairing was in state that
    keys were already generated. With this commit unpair_device() cancels
    pairing already in earlier states.

    Bug was found by fuzzing kernel SMP implementation using Synopsys
    Defensics.

    Reported-by: Pekka Oikarainen
    Signed-off-by: Matias Karhumaa
    Signed-off-by: Johan Hedberg

    Matias Karhumaa
     

06 Aug, 2018

1 commit

  • Variables 'adv_set' and 'cp' are being assigned but are never used hence
    they are redundant and can be removed.

    Cleans up clang warnings:
    net/bluetooth/hci_event.c:1135:29: warning: variable 'adv_set' set but not used [-Wunused-but-set-variable]
    net/bluetooth/mgmt.c:3359:39: warning: variable 'cp' set but not used [-Wunused-but-set-variable]

    Signed-off-by: YueHaibing
    Signed-off-by: Johan Hedberg

    YueHaibing
     

30 Jul, 2018

8 commits

  • This patch adds support for advertising in primary and secondary
    channel on different PHYs. User can add the phy preference in
    the flag based on which phy type will be added in extended
    advertising parameter would be set.

    @ MGMT Command: Add Advertising (0x003e) plen 11
    Instance: 1
    Flags: 0x00000200
    Advertise in CODED on Secondary channel
    Duration: 0
    Timeout: 0
    Advertising data length: 0
    Scan response length: 0
    < HCI Command: LE Set Extended Advertising Enable (0x08|0x0039) plen 2
    Extended advertising: Disabled (0x00)
    Number of sets: Disable all sets (0x00)
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Extended Advertising Enable (0x08|0x0039) ncmd 2
    Status: Success (0x00)
    < HCI Command: LE Set Extended Advertising Parameters (0x08|0x0036) plen 25
    Handle: 0x00
    Properties: 0x0000
    Min advertising interval: 1280.000 msec (0x0800)
    Max advertising interval: 1280.000 msec (0x0800)
    Channel map: 37, 38, 39 (0x07)
    Own address type: Random (0x01)
    Peer address type: Public (0x00)
    Peer address: 00:00:00:00:00:00 (OUI 00-00-00)
    Filter policy: Allow Scan Request from Any, Allow Connect Request from Any (0x00)
    TX power: 127 dbm (0x7f)
    Primary PHY: LE Coded (0x03)
    Secondary max skip: 0x00
    Secondary PHY: LE Coded (0x03)
    SID: 0x00
    Scan request notifications: Disabled (0x00)

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This basically sets the random address for the adv instance
    Random address can be set only if the instance is created which
    is done in Set ext adv param.

    Random address and rpa expire timer and flags have been added
    to adv instance which will be used when the respective
    instance is scheduled.

    This introduces a hci_get_random_address() which returns the
    own address type and random address (rpa or nrpa) based
    on the instance flags and hdev flags. New function is required
    since own address type should be known before setting adv params
    but address can be set only after setting params.

    < HCI Command: LE Set Advertising Set Random Address (0x08|0x0035) plen 7
    Advertising handle: 0x00
    Advertising random address: 3C:8E:56:9B:77:84 (OUI 3C-8E-56)
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Advertising Set Random Address (0x08|0x0035) ncmd 1
    Status: Success (0x00)

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • If ext adv is enabled then use ext adv to disable as well.
    Also remove the adv set during LE disable.

    < HCI Command: LE Set Extended Advertising Enable (0x08|0x0039) plen 2
    Extended advertising: Disabled (0x00)
    Number of sets: Disable all sets (0x00)
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Extended Advertising Enable (0x08|0x0039) ncmd 2
    Status: Success (0x00)

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This patch implements Set Ext Adv data and Set Ext Scan rsp data
    if controller support extended advertising.

    Currently the operation is set as Complete data and fragment
    preference is set as no fragment

    < HCI Command: LE Set Extended Advertising Data (0x08|0x0037) plen 35
    Handle: 0x00
    Operation: Complete extended advertising data (0x03)
    Fragment preference: Minimize fragmentation (0x01)
    Data length: 0x15
    16-bit Service UUIDs (complete): 2 entries
    Heart Rate (0x180d)
    Battery Service (0x180f)
    Name (complete): Test LE
    Company: Google (224)
    Data: 0102
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Extended Advertising Data (0x08|0x0037) ncmd 1
    Status: Success (0x00)

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This patch basically replaces legacy adv with extended adv
    based on the controller support. Currently there is no
    design change. ie only one adv set will be enabled at a time.

    This also adds tx_power in instance and store whatever returns
    from Set_ext_parameter, use the same in adv data as well.
    For instance 0 tx_power is stored in hdev only.

    < HCI Command: LE Set Extended Advertising Parameters (0x08|0x0036) plen 25
    Handle: 0x00
    Properties: 0x0010
    Use legacy advertising PDUs: ADV_NONCONN_IND
    Min advertising interval: 1280.000 msec (0x0800)
    Max advertising interval: 1280.000 msec (0x0800)
    Channel map: 37, 38, 39 (0x07)
    Own address type: Random (0x01)
    Peer address type: Public (0x00)
    Peer address: 00:00:00:00:00:00 (OUI 00-00-00)
    Filter policy: Allow Scan Request from Any, Allow Connect Request from Any (0x00)
    TX power: 127 dbm (0x7f)
    Primary PHY: LE 1M (0x01)
    Secondary max skip: 0x00
    Secondary PHY: LE 1M (0x01)
    SID: 0x00
    Scan request notifications: Disabled (0x00)
    > HCI Event: Command Complete (0x0e) plen 5
    LE Set Extended Advertising Parameters (0x08|0x0036) ncmd 1
    Status: Success (0x00)
    TX power (selected): 7 dbm (0x07)
    < HCI Command: LE Set Extended Advertising Enable (0x08|0x0039) plen 6
    Extended advertising: Enabled (0x01)
    Number of sets: 1 (0x01)
    Entry 0
    Handle: 0x00
    Duration: 0 ms (0x00)
    Max ext adv events: 0
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Extended Advertising Enable (0x08|0x0039) ncmd 2
    Status: Success (0x00)

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This defines and implement phy changed event and send it to user
    whenever selected PHYs changes using SET_PHY_CONFIGURATION.

    This will be also trigerred when BREDR pkt_type is changed using
    the legacy ioctl HCISETPTYPE.

    @ MGMT Command: Set PHY Configuration (0x0045) plen 4
    Selected PHYs: 0x7fff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX
    < HCI Command: LE Set Default PHY (0x08|0x0031) plen 3
    All PHYs preference: 0x00
    TX PHYs preference: 0x07
    LE 1M
    LE 2M
    LE Coded
    RX PHYs preference: 0x07
    LE 1M
    LE 2M
    LE Coded
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Default PHY (0x08|0x0031) ncmd 1
    Status: Success (0x00)
    @ MGMT Event: Command Complete (0x0001) plen 3
    Set PHY Configuration (0x0045) plen 0
    Status: Success (0x00)
    @ MGMT Event: PHY Configuration Changed (0x0026) plen 4
    Selected PHYs: 0x7fff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This enables user to set phys which will be used in all subsequent
    connections. Also host will use the same in LE scanning as well.

    @ MGMT Command: Set PHY Configuration (0x0045) plen 4
    Selected PHYs: 0x7fff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX
    < HCI Command: LE Set Default PHY (0x08|0x0031) plen 3
    All PHYs preference: 0x00
    TX PHYs preference: 0x07
    LE 1M
    LE 2M
    LE Coded
    RX PHYs preference: 0x07
    LE 1M
    LE 2M
    LE Coded
    > HCI Event: Command Complete (0x0e) plen 4
    LE Set Default PHY (0x08|0x0031) ncmd 1
    Status: Success (0x00)
    @ MGMT Event: Command Complete (0x0001) plen 3
    Set PHY Configuration (0x0045) plen 0
    Status: Success (0x00)
    @ MGMT Event: PHY Configuration Changed (0x0026) plen 4
    Selected PHYs: 0x7fff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     
  • This commands basically retrieve the supported packet types of
    BREDR and supported PHYs of the controller.

    BR_1M_1SLOT, LE_1M_TX and LE_1M_RX would be supported by default.
    Other PHYs are supported based on the local features.

    Also this sets PHY_CONFIGURATION bit in supported settings.

    @ MGMT Command: Get PHY Configuration (0x0044) plen 0
    @ MGMT Event: Command Complete (0x0001) plen 15
    Get PHY Configuration (0x0044) plen 12
    Status: Success (0x00)
    Supported PHYs: 0x7fff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX
    Configurable PHYs: 0x79fe
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 2M TX
    LE 2M RX
    LE CODED TX
    LE CODED RX
    Selected PHYs: 0x07ff
    BR 1M 1SLOT
    BR 1M 3SLOT
    BR 1M 5SLOT
    EDR 2M 1SLOT
    EDR 2M 3SLOT
    EDR 2M 5SLOT
    EDR 3M 1SLOT
    EDR 3M 3SLOT
    EDR 3M 5SLOT
    LE 1M TX
    LE 1M RX

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     

02 Apr, 2018

1 commit


30 Oct, 2017

1 commit


29 Oct, 2017

1 commit

  • If command is added to req then it should be freed in case if
    hdev is down or HCI_ADVERTISING flag is set.

    This introduces a helper in hci_request to purge the cmd_q
    to make cmd_q internal to hci_request which is used to fix
    the leak.

    This also replace accessing of cmd_q in hci_conn with the
    new helper.

    Signed-off-by: Jaganath Kanakkassery
    Signed-off-by: Marcel Holtmann

    Jaganath Kanakkassery
     

20 Oct, 2016

1 commit


06 Oct, 2016

1 commit


22 Sep, 2016

2 commits

  • Scan response data should not be updated unless there
    is an advertising instance.

    Signed-off-by: Michał Narajowski
    Signed-off-by: Marcel Holtmann

    Michał Narajowski
     
  • Adds missing callback assignment to cmd_complete in pending management command
    context. Dump path involves security procedure performed on legacy (pre-SSP)
    devices with service security requirements set to HIGH (16digits PIN).
    It fails when shorter PIN is delivered by user.

    [ 1.517950] Bluetooth: PIN code is not 16 bytes long
    [ 1.518491] BUG: unable to handle kernel NULL pointer dereference at (null)
    [ 1.518584] IP: [< (null)>] (null)
    [ 1.518584] PGD 9e08067 PUD 9fdf067 PMD 0
    [ 1.518584] Oops: 0010 [#1] SMP
    [ 1.518584] Modules linked in:
    [ 1.518584] CPU: 0 PID: 1002 Comm: kworker/u3:2 Not tainted 4.8.0-rc6-354649-gaf4168c #16
    [ 1.518584] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.9.3-20160701_074356-anatol 04/01/2014
    [ 1.518584] Workqueue: hci0 hci_rx_work
    [ 1.518584] task: ffff880009ce14c0 task.stack: ffff880009e10000
    [ 1.518584] RIP: 0010:[] [< (null)>] (null)
    [ 1.518584] RSP: 0018:ffff880009e13bc8 EFLAGS: 00010293
    [ 1.518584] RAX: 0000000000000000 RBX: ffff880009eed100 RCX: 0000000000000006
    [ 1.518584] RDX: ffff880009ddc000 RSI: 0000000000000000 RDI: ffff880009eed100
    [ 1.518584] RBP: ffff880009e13be0 R08: 0000000000000000 R09: 0000000000000001
    [ 1.518584] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
    [ 1.518584] R13: ffff880009e13ccd R14: ffff880009ddc000 R15: ffff880009ddc010
    [ 1.518584] FS: 0000000000000000(0000) GS:ffff88000bc00000(0000) knlGS:0000000000000000
    [ 1.518584] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1.518584] CR2: 0000000000000000 CR3: 0000000009fdd000 CR4: 00000000000006f0
    [ 1.518584] Stack:
    [ 1.518584] ffffffff81909808 ffff880009e13cce ffff880009e0d40b ffff880009e13c68
    [ 1.518584] ffffffff818f428d 00000000024000c0 ffff880009e13c08 ffffffff810ca903
    [ 1.518584] ffff880009e13c48 ffffffff811ade34 ffffffff8178c31f ffff880009ee6200
    [ 1.518584] Call Trace:
    [ 1.518584] [] ? mgmt_pin_code_neg_reply_complete+0x38/0x60
    [ 1.518584] [] hci_cmd_complete_evt+0x69d/0x3200
    [ 1.518584] [] ? rcu_read_lock_sched_held+0x53/0x60
    [ 1.518584] [] ? kmem_cache_alloc+0x1a4/0x200
    [ 1.518584] [] ? skb_clone+0x4f/0xa0
    [ 1.518584] [] hci_event_packet+0x8e1/0x28e0
    [ 1.518584] [] ? _raw_spin_unlock_irqrestore+0x31/0x50
    [ 1.518584] [] ? trace_hardirqs_on_caller+0xee/0x1b0
    [ 1.518584] [] hci_rx_work+0x1e1/0x5b0
    [ 1.518584] [] ? process_one_work+0x1ed/0x6b0
    [ 1.518584] [] process_one_work+0x268/0x6b0
    [ 1.518584] [] ? process_one_work+0x1ed/0x6b0
    [ 1.518584] [] worker_thread+0x43/0x4e0
    [ 1.518584] [] ? process_one_work+0x6b0/0x6b0
    [ 1.518584] [] ? process_one_work+0x6b0/0x6b0
    [ 1.518584] [] kthread+0xdf/0x100
    [ 1.518584] [] ret_from_fork+0x1f/0x40
    [ 1.518584] [] ? kthread_create_on_node+0x210/0x210

    Signed-off-by: Arek Lichwa
    Signed-off-by: Marcel Holtmann

    Arek Lichwa
     

20 Sep, 2016

20 commits


13 Jul, 2016

1 commit