Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp368411pxu; Fri, 11 Dec 2020 04:25:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZj2zOkV7/lipIYMJhoN3VJLgmsX8+7Ux+bIf/hqSWJNmDhT8dAmj4XhH6ToOo6VwaHjes X-Received: by 2002:a05:6402:17:: with SMTP id d23mr1859408edu.341.1607689555085; Fri, 11 Dec 2020 04:25:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607689555; cv=none; d=google.com; s=arc-20160816; b=t6ghLOHjEASxzrLhee4t9i1MENyyZUAYyt2fDrqP6l+IRNf/q8c6mJiDOlRE/HvbgB 14lFoV7iS4dyjmI0RJ10OJ5NhmNpZoQMUD1mxAik1I3q3zTqAw2rJ6pu3+ZcssSpShMU kETEDsfunTtkW9mBa5ffK5hppnXKAQmanxoDehLRMBFHPcfRDprATMjy1R50237eYdw+ LQb+DF7bGKxqZy7TUb4nfdxOwSFcm2WgVnW83V6IQicDwekLbDP7WM3+c9RFjmLMYI9K zfBFhFodMv3A+E5cF6Drqmb29uJlGjSMye7Y+wM/NFDV2JSswijuGHHNN6tKxIfm5eUO 7WVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:cc:to:subject:dkim-signature:dkim-filter; bh=EPWpPxaL1kgGyP4y1rAeD68RhW99/C5QTk2XWnaps1g=; b=usRzz30wGnU+ZOWmStZiAEpozK5KLMrYlryYojPhSwz101is5nuKtViP1ooz24IuCN bKB6eI+MxXTVpnzL98xA6iHUXz81d/UoF2ZcpbxsCS2AD2OMOLq6xMUHE6wcliiRXw7J +L1WbOs00kof1SJ/daYYFgle85bIoRZEcE91bPtw0PhsmmkgJGmPdpTuC0E21PnB12fz Zsn0uQM5oYNw1VnujDuM/CSSQ4YOOZSQ5r3Rw1ODnl3PDvhsSNEAB0cX54Ey2Zlh9UPb KK3LiSEsP/z9x7OLgiSaCsp4fGSc8DB3BijZpRTtZ1bv9yQC0VZO/EGm3r2UJiTz02Sg T+Jw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=BFcvi7Sn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g2si4637886edn.233.2020.12.11.04.25.31; Fri, 11 Dec 2020 04:25:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=BFcvi7Sn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2436888AbgLKIYf (ORCPT + 99 others); Fri, 11 Dec 2020 03:24:35 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:39862 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2436846AbgLKIXm (ORCPT ); Fri, 11 Dec 2020 03:23:42 -0500 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20201211082248euoutp01223b0ffab667998e16dd12475dea9633~Pm93IjYgv2667426674euoutp01Z; Fri, 11 Dec 2020 08:22:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20201211082248euoutp01223b0ffab667998e16dd12475dea9633~Pm93IjYgv2667426674euoutp01Z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1607674968; bh=EPWpPxaL1kgGyP4y1rAeD68RhW99/C5QTk2XWnaps1g=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=BFcvi7Sntxic0Qz/yiSYIPzrCMJj80D0pRsJa35lcsVuwX6w/uR/2lAnQiJ3Q5M+Y huuFjjD52OiSdOWrpyG3KoW6hKlLysiZJmWlWaJtUCLizWE52E5tDqe/jImvOaAcG9 570Hczk8jN+jlagxXl3mQHVj2BitBELQJBcieEtQ= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20201211082248eucas1p22f70923933f5ab50cc44ebf033385af0~Pm92j1pHn2458824588eucas1p2Y; Fri, 11 Dec 2020 08:22:48 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 72.48.27958.85C23DF5; Fri, 11 Dec 2020 08:22:48 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20201211082247eucas1p2bcbb136330cf83031d697b08dafa89b0~Pm92EC00a1636416364eucas1p22; Fri, 11 Dec 2020 08:22:47 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201211082247eusmtrp22baf72f4d261456b2730397a38aca3b9~Pm92Cvw9Z2764927649eusmtrp2V; Fri, 11 Dec 2020 08:22:47 +0000 (GMT) X-AuditID: cbfec7f2-f15ff70000006d36-55-5fd32c585127 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 1E.15.16282.75C23DF5; Fri, 11 Dec 2020 08:22:47 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20201211082245eusmtip132375ffa3fbef40063d97e5055ac2005~Pm90JJ9H22215522155eusmtip1j; Fri, 11 Dec 2020 08:22:45 +0000 (GMT) Subject: Re: [PATCH] Input: cyapa - do not call input_device_enabled from power mode handler To: Dmitry Torokhov Cc: Andrzej Pietrasiewicz , linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-input@vger.kernel.org, linux-tegra@vger.kernel.org, patches@opensource.cirrus.com, ibm-acpi-devel@lists.sourceforge.net, platform-driver-x86@vger.kernel.org, "Rafael J . Wysocki" , Len Brown , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Kukjin Kim , Krzysztof Kozlowski , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Vladimir Zapolskiy , Sylvain Lemieux , Laxman Dewangan , Thierry Reding , Jonathan Hunter , Barry Song , Michael Hennerich , Nick Dyer , Hans de Goede , Ferruh Yigit , Sangwon Jee , Peter Hutterer , Henrique de Moraes Holschuh , kernel@collabora.com, Bartlomiej Zolnierkiewicz From: Marek Szyprowski Message-ID: Date: Fri, 11 Dec 2020 09:22:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: Content-Transfer-Encoding: 8bit Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA02Ta1CUZRTHe/a97AItvVyMB6Vy1miEuE41nUQR1KF36oPpVBPOKG36CkyA uCuoUalA4i4yXOTmLgjYBrVExELALhvEQjINDtDCBhhQCCYRLCGMCITE7kLx7XfO+Z/nnP+Z eQSE80N6qyA67gwniRPHiGh7sv7WYpfvez69EQED9ykoHxshoaawmoJxQwYBbTcnELTPtpEw ajoIUx0FPFC27YaiP6oQpN2VUfB7spoHqYqbJNR2XaVAnaclIXPsLwJ0q1MEdHd/ywfVtRIK vmiuJEE7Ok1DRXMmAs3YLxTcaDeTIF/6ioDBBw8p6NUV0TCX0Y6gsLuZB7J5BQ1ZbbV8MF5P J2BupoWChu9beFCpnyBgWXeLD7c7jRSsNGhImKhzgxyDBBZ1N0hYXUohQrzYSVMo2zisQuzl 5GhWqxjms3/PHmOXf0CsRi2j2VrVBbapdI7HLhTeRqxqykCxj8tySTYjxUyzNeZGHltQtIrY zJWAt54+Yr/7BBcTnchJ/IPft4+qkHfS8Tne5+5p0vgXkX6HHNkJMPMy1sru0RZ2Zr5EuD/9 HTmyX+N5hBdalklbMIfwbGfamkpg7Vgs59nyFQjfb9oIZhHunJdRlqdcmGO4rK+ftLAr448b lEvIIiKYKQfc0jzCtxRoJhDLp+XW2UImGA/2FVrzJOOJS7X5hIW3MB/gavmjdY0T/un6uPVR O8YbL7SqrUwwz+GU75SEjd3wnfES60aYueqA9R1mymb0ANaXqvk2dsGTHXXr7IFXtRsNKQiP dlXx17sR7k0uRDZVEB7qWrIegGC8cLXO35YOxUOVGsp2F0c8MO1kW8IR59QXELa0EF+57GxT v4AVHd/8N7a1x0hkIZFikzXFJjuKTXYU/88tRaQauXEJ0thIThoYx531k4pjpQlxkX7HT8Vq 0NrX6Hzc8aARFU/O+hkQT4AMCAsIkavwGdIY4Sw8IT7/ESc5FSFJiOGkBrRNQIrchGrl1xHO TKT4DPchx8Vzko0qT2C39SIv97D5bmyM91FBnV5SFda9X2X++c1+n5CavpHwZ5v33gkOvVDn MnKEC2nTFmfkPnUetTY86Z7VkHhQudfrUJCLp/GzOmV+j0mQ8eI+utih4HPfmaBB/0NziR6/ nkseSl/kQ5LHdhM/CuSer1TAteEudJZIn3nV6xNR6tv00KWECbHkz+d3qU6HmwJ2Xjr9T/2e dz8OWSljdmUnPXI8PFCbTYuwap/n+JjypOLHeLsnjO4p3cbQlyA8LybMW+aeEFmbGPT6UY9e X9dPDalOupXf8pLa83t8jofsvOJvf9J5akSoFfRklwvY17bYvaGvjN2TzzTFGbc79m/bYQor 2S90Ui6LSGmUONCbkEjF/wJuvZSbiQQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Se0xTVxzHd+6jvahkl4fjhG1IrlkcRAvl5Q+DKMvmbljmiHNuwU2seAPI 07YsYsxswKiUERAZj0J4KGgsc2qLg/J0hagEhIWXY1sN77DyWkVGCgNGwSX898k538/3/E7y Y0jHqyJXJiZBKcgTZHGcaAvVvvLEtOfL3T0R3pV/usGtkRcUPCi4R8OoMZOElhsTCFotLRQM 9X0GU0/yCShqCYLi8bsIrgyn0zCYqiXgkuYGBfrO72nQ/mCgIGtkkoS61SkSurrui6HieikN lU1VFBiGpkVwuykLgW6kn4aS1hkK1It3SBh4+Q8NPXXFIpjLbEVQ0NVEQPorjQiyW/Ri6C7M IGFutpmGmsZmAqoaJkhYqnssho72bhqWa3QUTFS7QI5RDta6EgpWF9PIgx68uS+ErzVVIP5y agxv0JjE/N+WE/zSI8TrtOkiXl9xka8vmyP4hYIOxFdMGWl+pTyX4jPTZkT8g5lags8vXkV8 1rJ32FvhkiB5YrJScI9OVCj3c8el4CORBoLExy9QIvXd+80+H3/OKzjotBAX860g9wo+KYm+ rW4XJeV4nhvTXRGrUMNONWIYzPph6y1CjbYwjmwlwrn6AVKN7NbO38FteSp6g53wv/1q0UZo FmFzzQJhu3BiT+Dy3ueUjZ1ZL1xTtIhsIZJ9uRXrr02+ru0n8Yq+c71WxEqxetpWZcfYs8F4 oLdAbGOKfQ+XGfJI20jb2VP4WbvDRsQBtxWOrj9gx3rihV+060yyAbhEP0Ru8A6c9rDoNbvg 30dLiWzkqNmkazYpmk2KZpNShigtchaSFfFR8QofiUIWr0hOiJJEJsbr0NpK/vzYWl2L7pgt EiMiGGREmCE5Z/t3qe4IR/vTspTzgjwxQp4cJyiMyH/tO9dI1+2RiWs7naCMkAZ4+0v9AgK9 /QMDfDkXe7/WHyMc2SiZUogVhCRB/r9HMHauKiIo9dxfR76YdL/YmPPr+7PPlz5oI3NLfxKH unsd2GkxhXIvUp55pOTPHBKb5o9rXXJHxqeaw6q3NkaW/8aEDj7S/qE2DmwbHsvv9QvL6/Uw fHThzAXzYd8aw+Vt8pPhboTFOjYQq/180nSoe/xr5XUf+3sOPd1lGvH0sVN3G/Y9zSCeyjjL KEd/qj//YZZxrzUnq+WY69vKuMbqs28erh8ci7o5bFb0XVquD+LGVwsr5ZqKKoNv+GyO73CB g+vRoxlT7BvzM/W7g5M/bl3u2BHLueMxj/kDnWSf+TvzK+eHZ7/65Iyqzm5aV++0/+AeryQm W9JWFWI94naVDk1Q3Q/ZpWI4ShEtk3qScoXsP1vWUG0bBAAA X-CMS-MailID: 20201211082247eucas1p2bcbb136330cf83031d697b08dafa89b0 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20201207133237eucas1p26f8484944760a14e51dc7353ed33cd28 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20201207133237eucas1p26f8484944760a14e51dc7353ed33cd28 References: <2336e15d-ff4b-bbb6-c701-dbf3aa110fcd@redhat.com> <20200608112211.12125-1-andrzej.p@collabora.com> <20200608112211.12125-3-andrzej.p@collabora.com> <27ce1176-6318-45aa-4e22-3dec9f3df15d@samsung.com> <9c784a23-eade-eacd-3e67-d344a5758b83@collabora.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11.12.2020 08:09, Dmitry Torokhov wrote: > Input device's user counter is supposed to be accessed only while holding > input->mutex. Commit d69f0a43c677 ("Input: use input_device_enabled()") > recently switched cyapa to using the dedicated API and it uncovered the > fact that cyapa driver violated this constraint. > > This patch removes checks whether the input device is open when clearing > device queues when changing device's power mode as there is no harm in > sending input events through closed input device - the events will simply > be dropped by the input core. > > Note that there are more places in cyapa driver that call > input_device_enabled() without holding input->mutex, those are left > unfixed for now. > > Reported-by: Marek Szyprowski > Signed-off-by: Dmitry Torokhov > --- > > Marek, could you please try this one? The warning is still there: ------------[ cut here ]------------ WARNING: CPU: 1 PID: 1787 at drivers/input/input.c:2230 input_device_enabled+0x68/0x6c Modules linked in: cmac bnep mwifiex_sdio mwifiex sha256_generic libsha256 sha256_arm btmrvl_sdio btmrvl cfg80211 bluetooth s5p_mfc exynos_gsc v4l2_mem2mem videob CPU: 1 PID: 1787 Comm: rtcwake Not tainted 5.10.0-rc7-next-20201210-00001-g70a81f43fddf #2204 Hardware name: Samsung Exynos (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0xb4/0xd4) [] (dump_stack) from [] (__warn+0xd8/0x11c) [] (__warn) from [] (warn_slowpath_fmt+0xb0/0xb8) [] (warn_slowpath_fmt) from [] (input_device_enabled+0x68/0x6c) [] (input_device_enabled) from [] (cyapa_reinitialize+0x4c/0x154) [] (cyapa_reinitialize) from [] (cyapa_resume+0x48/0x98) [] (cyapa_resume) from [] (dpm_run_callback+0xb0/0x3c8) [] (dpm_run_callback) from [] (device_resume+0xbc/0x260) [] (device_resume) from [] (dpm_resume+0x14c/0x51c) [] (dpm_resume) from [] (dpm_resume_end+0xc/0x18) [] (dpm_resume_end) from [] (suspend_devices_and_enter+0x1b4/0xbd4) [] (suspend_devices_and_enter) from [] (pm_suspend+0x314/0x42c) [] (pm_suspend) from [] (state_store+0x6c/0xc8) [] (state_store) from [] (kernfs_fop_write+0x10c/0x228) [] (kernfs_fop_write) from [] (vfs_write+0xc8/0x530) [] (vfs_write) from [] (ksys_write+0x60/0xd8) [] (ksys_write) from [] (ret_fast_syscall+0x0/0x2c) Exception stack(0xc3923fa8 to 0xc3923ff0) irq event stamp: 54139 hardirqs last  enabled at (54147): [] vprintk_emit+0x2b8/0x308 hardirqs last disabled at (54154): [] vprintk_emit+0x27c/0x308 softirqs last  enabled at (50722): [] __do_softirq+0x528/0x684 softirqs last disabled at (50671): [] irq_exit+0x1ec/0x1f8 ---[ end trace 1fbefe3f239ae597 ]--- > drivers/input/mouse/cyapa_gen3.c | 5 +---- > drivers/input/mouse/cyapa_gen5.c | 3 +-- > 2 files changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/input/mouse/cyapa_gen3.c b/drivers/input/mouse/cyapa_gen3.c > index a97f4acb6452..4a9022faf945 100644 > --- a/drivers/input/mouse/cyapa_gen3.c > +++ b/drivers/input/mouse/cyapa_gen3.c > @@ -907,7 +907,6 @@ static u16 cyapa_get_wait_time_for_pwr_cmd(u8 pwr_mode) > static int cyapa_gen3_set_power_mode(struct cyapa *cyapa, u8 power_mode, > u16 always_unused, enum cyapa_pm_stage pm_stage) > { > - struct input_dev *input = cyapa->input; > u8 power; > int tries; > int sleep_time; > @@ -953,7 +952,6 @@ static int cyapa_gen3_set_power_mode(struct cyapa *cyapa, u8 power_mode, > * depending on the command's content. > */ > if (cyapa->operational && > - input && input_device_enabled(input) && > (pm_stage == CYAPA_PM_RUNTIME_SUSPEND || > pm_stage == CYAPA_PM_RUNTIME_RESUME)) { > /* Try to polling in 120Hz, read may fail, just ignore it. */ > @@ -1223,8 +1221,7 @@ static int cyapa_gen3_try_poll_handler(struct cyapa *cyapa) > (data.finger_btn & OP_DATA_VALID) != OP_DATA_VALID) > return -EINVAL; > > - return cyapa_gen3_event_process(cyapa, &data); > - > + return cyapa->input ? cyapa_gen3_event_process(cyapa, &data) : 0; > } > > static int cyapa_gen3_initialize(struct cyapa *cyapa) { return 0; } > diff --git a/drivers/input/mouse/cyapa_gen5.c b/drivers/input/mouse/cyapa_gen5.c > index abf42f77b4c5..afc5aa4dcf47 100644 > --- a/drivers/input/mouse/cyapa_gen5.c > +++ b/drivers/input/mouse/cyapa_gen5.c > @@ -518,8 +518,7 @@ int cyapa_empty_pip_output_data(struct cyapa *cyapa, > *len = length; > /* Response found, success. */ > return 0; > - } else if (cyapa->operational && > - input && input_device_enabled(input) && > + } else if (cyapa->operational && input && > (pm_stage == CYAPA_PM_RUNTIME_RESUME || > pm_stage == CYAPA_PM_RUNTIME_SUSPEND)) { > /* Parse the data and report it if it's valid. */ > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland