Thread (101 messages) 101 messages, 11 authors, 2020-12-11

Re: [PATCH v4 2/7] Input: use input_device_enabled()

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2020-12-09 06:38:42
Also in: linux-acpi, linux-arm-kernel, linux-iio, linux-pm, linux-samsung-soc, linux-tegra, lkml, platform-driver-x86

On Tue, Dec 08, 2020 at 11:05:42AM +0100, Marek Szyprowski wrote:
Hi Andrzej,

On 07.12.2020 16:50, Andrzej Pietrasiewicz wrote:
quoted
Hi Marek,

W dniu 07.12.2020 o 14:32, Marek Szyprowski pisze:
quoted
Hi Andrzej,

On 08.06.2020 13:22, Andrzej Pietrasiewicz wrote:
quoted
Use the newly added helper in relevant input drivers.

Signed-off-by: Andrzej Pietrasiewicz <redacted>
This patch landed recently in linux-next as commit d69f0a43c677 ("Input:
use input_device_enabled()"). Sadly it causes following warning during
system suspend/resume cycle on ARM 32bit Samsung Exynos5250-based Snow
Chromebook with kernel compiled from exynos_defconfig:

------------[ cut here ]------------
WARNING: CPU: 0 PID: 1777 at drivers/input/input.c:2230
input_device_enabled+0x68/0x6c
Modules linked in: cmac bnep mwifiex_sdio mwifiex sha256_generic
libsha256 sha256_arm cfg80211 btmrvl_sdio btmrvl bluetooth s5p_mfc
exynos_gsc v4l2_mem2mem videob
CPU: 0 PID: 1777 Comm: rtcwake Not tainted
5.10.0-rc6-next-20201207-00001-g49a0dc04c46d-dirty #9902
Hardware name: Samsung Exynos (Flattened Device Tree)
[<c0111718>] (unwind_backtrace) from [<c010d050>] (show_stack+0x10/0x14)
[<c010d050>] (show_stack) from [<c0b32810>] (dump_stack+0xb4/0xd4)
[<c0b32810>] (dump_stack) from [<c0126e24>] (__warn+0xd8/0x11c)
[<c0126e24>] (__warn) from [<c0126f18>] (warn_slowpath_fmt+0xb0/0xb8)
[<c0126f18>] (warn_slowpath_fmt) from [<c07fa2fc>]
(input_device_enabled+0x68/0x6c)
[<c07fa2fc>] (input_device_enabled) from [<c080a0f8>]
Apparently you are hitting this line of code in drivers/input/input.c:

lockdep_assert_held(&dev->mutex);

Inspecting input device's "users" member should happen under dev's lock.
This check and warning has been introduced by this patch. I assume that 
the suspend/resume paths are correct, but it looks that they were not 
tested with this patch thus it has not been noticed that they are not 
called under the input's lock. This needs a fix. Dmitry: how would you 
like to handle this issue?
The check is proper and the warning is legit, cyapa should not be
checking this field without holding the lock. I think we can simply
remove this check from the power ops for gen3 and gen5, and this should
shut up the warning on suspend, but there other places in cyapa that do
check 'users', and they also need to be fixed.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help