• Chris Lu's avatar
    Bluetooth: btmtk: Fix kernel crash when entering btmtk_usb_suspend · d09009bc
    Chris Lu authored
    If MediaTek's Bluetooth setup is unsuccessful, a NULL pointer issue
    occur when the system is suspended and the anchored kill function
    is called. To avoid this, add protection to prevent executing the
    anchored kill function if the setup is unsuccessful.
    
    [    6.922106] Hardware name: Acer Tomato (rev2) board (DT)
    [    6.922114] Workqueue: pm pm_runtime_work
    [    6.922132] pstate: 804000c9
    (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [    6.922147] pc : usb_kill_anchored_urbs+0x6c/0x1e0
    [    6.922164] lr : usb_kill_anchored_urbs+0x48/0x1e0
    [    6.922181] sp : ffff800080903b60
    [    6.922187] x29: ffff800080903b60
    x28: ffff2c7b85c32b80 x27: ffff2c7bbb370930
    [    6.922211] x26: 00000000000f4240
    x25: 00000000ffffffff x24: ffffd49ece2dcb48
    [    6.922255] x20: ffffffffffffffd8
    x19: 0000000000000000 x18: 0000000000000006
    [    6.922276] x17: 6531656337386238
    x16: 3632373862333863 x15: ffff800080903480
    [    6.922297] x14: 0000000000000000
    x13: 303278302f303178 x12: ffffd49ecf090e30
    [    6.922318] x11: 0000000000000001
    x10: 0000000000000001 x9 : ffffd49ecd2c5bb4
    [    6.922339] x8 : c0000000ffffdfff
    x7 : ffffd49ecefe0db8 x6 : 00000000000affa8
    [    6.922360] x5 : ffff2c7bbb35dd48
    x4 : 0000000000000000 x3 : 0000000000000000
    [    6.922379] x2 : 0000000000000000
    x1 : 0000000000000003 x0 : ffffffffffffffd8
    [    6.922400] Call trace:
    [    6.922405]  usb_kill_anchored_urbs+0x6c/0x1e0
    [    6.922422]  btmtk_usb_suspend+0x20/0x38
    [btmtk 5f200a97badbdfda4266773fee49acfc8e0224d5]
    [    6.922444]  btusb_suspend+0xd0/0x210
    [btusb 0bfbf19a87ff406c83b87268b87ce1e80e9a829b]
    [    6.922469]  usb_suspend_both+0x90/0x288
    [    6.922487]  usb_runtime_suspend+0x3c/0xa8
    [    6.922507]  __rpm_callback+0x50/0x1f0
    [    6.922523]  rpm_callback+0x70/0x88
    [    6.922538]  rpm_suspend+0xe4/0x5a0
    [    6.922553]  pm_runtime_work+0xd4/0xe0
    [    6.922569]  process_one_work+0x18c/0x440
    [    6.922588]  worker_thread+0x314/0x428
    [    6.922606]  kthread+0x128/0x138
    [    6.922621]  ret_from_fork+0x10/0x20
    [    6.922644] Code: f100a274 54000520 d503201f d100a260 (b8370000)
    [    6.922654] ---[ end trace 0000000000000000 ]---
    
    Fixes: ceac1cb0 ("Bluetooth: btusb: mediatek: add ISO data transmission functions")
    Signed-off-by: default avatarChris Lu <chris.lu@mediatek.com>
    Reported-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> #KernelCI
    Tested-by: default avatarNícolas F. R. A. Prado <nfraprado@collabora.com>
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    d09009bc
btmtk.c 36.5 KB