Bug 1014351

Summary: Bluetooth (Anker 7721) getting disconnected on Leap42.2
Product: [openSUSE] openSUSE Distribution Reporter: Roberto Angelino <roberto.angelino>
Component: KernelAssignee: E-mail List <kernel-maintainers>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: acho, jslaby, roberto.angelino, tiwai
Version: Leap 42.2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Roberto Angelino 2016-12-07 18:46:42 UTC
I have a Dell m5510 & my Anker 7221 bluetooth keyboard keeps getting disconnected after a while.  Looking at log file and I found it's crashing (not the laptop):

root@cafe:~> uname -a
Linux cafe 4.4.27-2-default #1 SMP Thu Nov 3 14:59:54 UTC 2016 (5c21e7c) x86_64 x86_64 x86_64 GNU/Linux

root@cafe:~> lsmod | egrep btusb
btusb                  49152  0 
btrtl                  16384  1 btusb
btbcm                  16384  2 btusb,hci_uart
btintel                16384  2 btusb,hci_uart
bluetooth             532480  50 bnep,hidp,btbcm,btqca,btrtl,btusb,hci_uart,rfcomm,btintel
usbcore               270336  7 btusb,r8152,uvcvideo,usbnet,xhci_hcd,xhci_pci,cdc_ether

root@cafe:~> bluetoothctl
[NEW] Controller E4:A7:A0:E6:C8:81 cafe [default]
[NEW] Device C0:33:5E:05:7F:B8 Microsoft Sculpt Comfort Mouse
[NEW] Device 20:73:00:20:D3:29 Anker A7721


Dec 07 09:21:29 cafe PackageKit[3008]: refresh-cache transaction /1_bebadeac from uid 1000 finished with success after 16084ms
Dec 07 09:21:30 cafe PackageKit[3008]: get-updates transaction /2_daaedace from uid 1000 finished with success after 815ms
Dec 07 09:21:47 cafe kernel: apple 0005:05AC:022C.0003: unknown main item tag 0x0
Dec 07 09:21:47 cafe kernel: input: Anker A7721 as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:512/0005:05AC:022C.0003/input/input19
Dec 07 09:21:47 cafe kernel: apple 0005:05AC:022C.0003: input,hidraw2: BLUETOOTH HID v0.01 Keyboard [Anker A7721] on e4:a7:a0:e6:c8:81
Dec 07 09:21:47 cafe kernel: ------------[ cut here ]------------
Dec 07 09:21:47 cafe kernel: WARNING: CPU: 4 PID: 3464 at ../kernel/sched/core.c:7913 __might_sleep+0x76/0x80()
Dec 07 09:21:47 cafe kernel: do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffffa0f99fd5>] hidp_session_thread+0x135/0x860 [hidp]
Dec 07 09:21:47 cafe kernel: Modules linked in: hid_apple hid_generic hidp cmac ecb rfcomm vmnet(O) ppdev parport_pc parport nf_log_ipv6 xt_pkttype nf_log_ipv4 nf_log_common xt_LOG xt_limit fuse vmw_vso
ck_vmci_transport vsock vmw_vmci vmmon(O) af_packet ip6t_REJECT nf_reject_ipv6 xt_tcpudp nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_raw ipt_REJECT nf_reject_ipv4 iptable_raw xt_CT iptable_filter ip6table
_mangle nf_conntrack_netbios_ns nf_conntrack_broadcast nf_conntrack_ipv4 nf_defrag_ipv4 ip_tables xt_conntrack nf_conntrack ip6table_filter ip6_tables x_tables bnep hid_multitouch arc4 xfs libcrc32c snd
_hda_codec_hdmi dell_led snd_hda_codec_realtek snd_hda_codec_generic intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_hda_intel kvm irqbypass snd_hda_codec dell_rbtn snd_hda_core 
crct10dif_pclmul
Dec 07 09:21:47 cafe kernel:  uvcvideo iwlmvm crc32_pclmul snd_hwdep crc32c_intel videobuf2_vmalloc dell_laptop videobuf2_memops snd_pcm dell_wmi videobuf2_v4l2 cdc_ether iTCO_wdt videobuf2_core dcdbas 
iTCO_vendor_support v4l2_common usbnet i2c_designware_platform i2c_designware_core sparse_keymap snd_timer dell_smm_hwmon mac80211 drbg r8152 ansi_cprng snd videodev mii aesni_intel aes_x86_64 lrw hci_u
art gf128mul glue_helper ablk_helper btusb iwlwifi cryptd soundcore btrtl btqca pcspkr btbcm joydev idma64 i2c_i801 rtsx_pci_ms btintel cfg80211 virt_dma bluetooth memstick rfkill mei_me int3403_thermal
 intel_lpss_pci mei dell_smo8800 pinctrl_sunrisepoint int3400_thermal pinctrl_intel acpi_thermal_rel processor_thermal_device intel_soc_dts_iosf int3402_thermal int340x_thermal_zone fan intel_lpss_acpi 
intel_lpss acpi_als
Dec 07 09:21:47 cafe kernel:  shpchp acpi_pad ac kfifo_buf battery industrialio thermal processor fjes ext4 crc16 jbd2 mbcache sd_mod rtsx_pci_sdmmc mmc_core sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_
emc scsi_dh_alua serio_raw nouveau mxm_wmi i915 ttm xhci_pci ahci xhci_hcd libahci i2c_algo_bit libata rtsx_pci mfd_core usbcore drm_kms_helper syscopyarea usb_common sysfillrect scsi_mod sysimgblt fb_s
ys_fops drm i2c_hid wmi video button bbswitch(O) autofs4
Dec 07 09:21:47 cafe kernel: CPU: 4 PID: 3464 Comm: khidpd_05ac022c Tainted: G           O     4.4.27-2-default #1
Dec 07 09:21:47 cafe kernel: Hardware name: Dell Inc. Precision 5510/0N8J4R, BIOS 1.2.14 08/31/2016
Dec 07 09:21:47 cafe kernel:  0000000000000000 ffffffff81327657 ffff88082377fc70 ffffffff81a5e889
Dec 07 09:21:47 cafe kernel:  ffffffff8107e821 ffffffff81ac3bc3 ffff88082377fcc0 0000000000000987
Dec 07 09:21:47 cafe kernel:  0000000000000000 0000000000000000 ffffffff8107e89c ffffffff81a4f308
Dec 07 09:21:47 cafe kernel: Call Trace:
Dec 07 09:21:47 cafe kernel:  [<ffffffff81019e69>] dump_trace+0x59/0x320
Dec 07 09:21:47 cafe kernel:  [<ffffffff8101a22a>] show_stack_log_lvl+0xfa/0x180
Dec 07 09:21:47 cafe kernel:  [<ffffffff8101afd1>] show_stack+0x21/0x40
Dec 07 09:21:47 cafe kernel:  [<ffffffff81327657>] dump_stack+0x5c/0x85
Dec 07 09:21:47 cafe kernel:  [<ffffffff8107e821>] warn_slowpath_common+0x81/0xb0
Dec 07 09:21:47 cafe kernel:  [<ffffffff8107e89c>] warn_slowpath_fmt+0x4c/0x50
Dec 07 09:21:47 cafe kernel:  [<ffffffff810a3106>] __might_sleep+0x76/0x80
Dec 07 09:21:47 cafe kernel:  [<ffffffff814fb694>] lock_sock_nested+0x24/0x70
Dec 07 09:21:47 cafe kernel:  [<ffffffffa08e3a13>] l2cap_sock_sendmsg+0x53/0xf0 [bluetooth]
Dec 07 09:21:47 cafe kernel:  [<ffffffff814f6fb0>] sock_sendmsg+0x30/0x40
Dec 07 09:21:47 cafe kernel:  [<ffffffffa0f991ef>] hidp_send_frame+0x4f/0x80 [hidp]
Dec 07 09:21:47 cafe kernel:  [<ffffffffa0f99254>] hidp_process_transmit+0x34/0xb0 [hidp]
Dec 07 09:21:47 cafe kernel:  [<ffffffffa0f9a1e6>] hidp_session_thread+0x346/0x860 [hidp]
Dec 07 09:21:47 cafe kernel:  [<ffffffff8109d328>] kthread+0xc8/0xe0
Dec 07 09:21:47 cafe kernel:  [<ffffffff8160978f>] ret_from_fork+0x3f/0x70
Dec 07 09:21:47 cafe kernel: DWARF2 unwinder stuck at ret_from_fork+0x3f/0x70
Dec 07 09:21:47 cafe kernel:
Dec 07 09:21:47 cafe kernel: Leftover inexact backtrace:
Dec 07 09:21:47 cafe kernel:  [<ffffffff8109d260>] ? kthread_park+0x50/0x50
Dec 07 09:21:47 cafe kernel: ---[ end trace fc815241443b8872 ]---
Comment 1 Takashi Iwai 2016-12-07 20:25:53 UTC
Through a quick glance, I couldn't find any obvious bug in the relevant code path the Oops shows, so I suspect it being some unbalanced lock in other places.

Could you try kernel-debug package and see whether anything else can be caught?  Thanks.
Comment 2 Roberto Angelino 2016-12-07 20:28:32 UTC
(In reply to Takashi Iwai from comment #1)
> Through a quick glance, I couldn't find any obvious bug in the relevant code
> path the Oops shows, so I suspect it being some unbalanced lock in other
> places.
> 
> Could you try kernel-debug package and see whether anything else can be
> caught?  Thanks.

Just installed kernel-debug rpm?
Comment 3 Takashi Iwai 2016-12-07 20:32:27 UTC
Yes, install kernel-debug.rpm, boot with the debug kernel and retest.
Comment 4 Takashi Iwai 2016-12-07 20:33:24 UTC
... and give the kernel messages if you see a similar or relevant issue with kernel-debug.
Comment 5 Roberto Angelino 2017-04-16 06:59:38 UTC
(In reply to Takashi Iwai from comment #4)
> ... and give the kernel messages if you see a similar or relevant issue with
> kernel-debug.

For the record, do not boot a debug kernel on laptop with the power plugged into it.  The laptop is unusable.  So anyway, I tried this keyboard on tumbleweed and had the same issue.  So I've come to the conclusion that the problem is with the range of bluetooth signal the keyboard is capable of.  It's not that good unless you are very close to the laptop which kind of defeats the purpose of having a separate keyboard.

We can close this.  Thanks.
Comment 6 Jiri Slaby 2017-08-23 07:09:08 UTC
The original bug was fixed by:
commit 5da8e47d849d3d37b14129f038782a095b9ad049
Author: Jeffy Chen <jeffy.chen@rock-chips.com>
Date:   Tue Jun 27 17:34:44 2017 +0800

    Bluetooth: hidp: fix possible might sleep error in hidp_session_thread


I suppose...
Comment 7 Jiri Slaby 2017-08-23 07:16:13 UTC
.

*** This bug has been marked as a duplicate of bug 1031784 ***
Comment 8 Roberto Angelino 2017-08-23 13:26:07 UTC
(In reply to Jiri Slaby from comment #6)
> The original bug was fixed by:
> commit 5da8e47d849d3d37b14129f038782a095b9ad049
> Author: Jeffy Chen <jeffy.chen@rock-chips.com>
> Date:   Tue Jun 27 17:34:44 2017 +0800
> 
>     Bluetooth: hidp: fix possible might sleep error in hidp_session_thread
> 
> 
> I suppose...

I'm currently leap 43.  If this fix makes in the next leap kernel, I'll retest.
Comment 9 Jiri Slaby 2017-08-23 13:31:17 UTC
The fix is in 4.4.75-8 already.
Comment 10 Roberto Angelino 2017-08-23 13:33:52 UTC
(In reply to Jiri Slaby from comment #9)
> The fix is in 4.4.75-8 already.

OK.  I have to charge it since it's been sitting.  I'll test sometime this week.
Comment 11 Roberto Angelino 2017-08-27 22:03:14 UTC
(In reply to Jiri Slaby from comment #9)
> The fix is in 4.4.75-8 already.

Confirmed.  Have been using the Anker kbd for 2 days now.  I'm about 3.5-4 feet away and it doesn't disconnect like it used...  Awesome.  Thanks Jiri.