Re: 4.5 Regression - mouse not working after resume from suspend

From: Chris Clayton
Date: Sat Feb 06 2016 - 08:19:02 EST




On 06/02/16 11:38, Chris Clayton wrote:
>
>
> On 06/02/16 08:37, Chris Clayton wrote:
>> There seems to be a regression in resuming my laptop from a suspend to RAM or disk. The symptom is that my bluetooth
>> mouse doesn't work after the resume. The kernel is built after a pull of Linus' tree this morning (v4.5-rc2-340-g5af9c2e).
>>
>> Attached is the output from dmesg showing the boot, suspend (to RAM) and resume. You'll see that during the resume,
>> error -517 is being reported for some devices. Suspend/resume has worked perfectly with a 4.[234].x kernels.
>>
>> I'll start a bisection, but thought I'd give a heads up in case someone can see the problem before I get done with the
>> bisect.
>>
>
> The bisection ended up at:
>
> 2ff13894cfb877cb3d02d96a8402202f0a6f3efd is the first bad commit
> commit 2ff13894cfb877cb3d02d96a8402202f0a6f3efd
> Author: Johan Hedberg <johan.hedberg@xxxxxxxxx>
> Date: Wed Nov 25 16:15:44 2015 +0200
>
> Bluetooth: Perform HCI update for power on synchronously
>
> The request to update HCI during power on is always coming either from
> hdev->req_workqueue or through an ioctl, so it's safe to use
> hci_req_sync for it. This way we also eliminate potential races with
> incoming mgmt commands or other actions while powering on.
>
> Part of this refactoring is the splitting of mgmt_powered() into
> mgmt_power_on() and __mgmt_power_off() functions. The main reason is
> the different requirements as far as hdev locking is concerned, as
> highlighted with the __ prefix of the power off API.
>
> Since the power on in the case of clearing the AUTO_OFF flag cannot be
> done synchronously in the set_powered mgmt handler, the hci_power_on
> work callback is extended to cover this (which also simplifies the
> set_powered helper a lot).
>
> Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
> Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
>
> :040000 040000 a093d0be66f39f99c33a6a4725b2330ca9b41d03 a1eff79cec3ee7208e5aa200ab5069726bbeea8e M include
> :040000 040000 d2d122193b33d45fcb9c2bc69f2024487a7528a0 0036e1ec2e125f2432cfd420b5f79ca133ec34f7 M net
>
>

I've just built a kernel at bf943cbf76ecd3b9838a80d5e08777b0f4ccc665 (the commit prior to the one the bisect landed on)
and my BT mouse works fine after a suspend/resume. With a kernel built at 2ff13894cfb877cb3d02d96a8402202f0a6f3efd, the
mouse does not work after resume.

> The bisect log is:
>
> git bisect start
> # bad: [5af9c2e19da6514a1a50b07d97d93b74a7711873] Merge branch 'akpm' (patches from Andrew)
> git bisect bad 5af9c2e19da6514a1a50b07d97d93b74a7711873
> # good: [afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc] Linux 4.4
> git bisect good afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc
> # bad: [63b6da39bb38e8f1a1ef3180d32a39d6baf9da84] perf: Fix perf_event_exit_task() race
> git bisect bad 63b6da39bb38e8f1a1ef3180d32a39d6baf9da84
> # bad: [aee3bfa3307cd0da2126bdc0ea359dabea5ee8f7] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
> git bisect bad aee3bfa3307cd0da2126bdc0ea359dabea5ee8f7
> # good: [60b7eca1dc2ec066916b3b7ac6ad89bea13cb9af] Merge tag 'upstream-4.5-rc1' of git://git.infradead.org/linux-ubifs
> git bisect good 60b7eca1dc2ec066916b3b7ac6ad89bea13cb9af
> # bad: [a188222b6ed29404ac2d4232d35d1fe0e77af370] net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK
> git bisect bad a188222b6ed29404ac2d4232d35d1fe0e77af370
> # good: [1343c65f70ee1b1f968a08b30e1836a4e37116cd] fm10k: always check init_hw for errors
> git bisect good 1343c65f70ee1b1f968a08b30e1836a4e37116cd
> # good: [bc9b145a092aca91a7f6ef40cdb3628b6ada7ec9] Merge branch 'for-4.5-ancestor-test' of
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
> git bisect good bc9b145a092aca91a7f6ef40cdb3628b6ada7ec9
> # good: [a4fcad656e1100bdda9b0b752b93a1a276810469] fm10k: whitespace cleanups
> git bisect good a4fcad656e1100bdda9b0b752b93a1a276810469
> # bad: [7302b9d90117496049dd4bfa28755f7c2ed55b27] ieee802154/adf7242: Driver for ADF7242 MAC IEEE802154
> git bisect bad 7302b9d90117496049dd4bfa28755f7c2ed55b27
> # bad: [a0c38245153abe1fd844af9b166d1a5d5dafe7b1] Bluetooth: hci_intel: Use shorter timeout for HCI commands
> git bisect bad a0c38245153abe1fd844af9b166d1a5d5dafe7b1
> # good: [bf943cbf76ecd3b9838a80d5e08777b0f4ccc665] Bluetooth: Move fast connectable code to hci_request.c
> git bisect good bf943cbf76ecd3b9838a80d5e08777b0f4ccc665
> # bad: [742c59516822f4a4bc23b0961d88c569a7f1bf71] Bluetooth: Simplify setting Configuration Field
> git bisect bad 742c59516822f4a4bc23b0961d88c569a7f1bf71
> # bad: [02c04afea93fbba7925984df455bc63e7d92da97] Bluetooth: Simplify read_adv_features code
> git bisect bad 02c04afea93fbba7925984df455bc63e7d92da97
> # bad: [2ff13894cfb877cb3d02d96a8402202f0a6f3efd] Bluetooth: Perform HCI update for power on synchronously
> git bisect bad 2ff13894cfb877cb3d02d96a8402202f0a6f3efd
> # first bad commit: [2ff13894cfb877cb3d02d96a8402202f0a6f3efd] Bluetooth: Perform HCI update for power on synchronously
>
>
> Just shout if you need any additional diagnotics.
>
>
>> Chris
>>