lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 101/452] PM / devfreq: rk3399_dmc: Disable edev on remove()
    Date
    From: Brian Norris <briannorris@chromium.org>

    [ Upstream commit 2fccf9e6050e0e3b8b4cd275d41daf7f7fa22804 ]

    Otherwise we hit an unablanced enable-count when unbinding the DFI
    device:

    [ 1279.659119] ------------[ cut here ]------------
    [ 1279.659179] WARNING: CPU: 2 PID: 5638 at drivers/devfreq/devfreq-event.c:360 devfreq_event_remove_edev+0x84/0x8c
    ...
    [ 1279.659352] Hardware name: Google Kevin (DT)
    [ 1279.659363] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO BTYPE=--)
    [ 1279.659371] pc : devfreq_event_remove_edev+0x84/0x8c
    [ 1279.659380] lr : devm_devfreq_event_release+0x1c/0x28
    ...
    [ 1279.659571] Call trace:
    [ 1279.659582] devfreq_event_remove_edev+0x84/0x8c
    [ 1279.659590] devm_devfreq_event_release+0x1c/0x28
    [ 1279.659602] release_nodes+0x1cc/0x244
    [ 1279.659611] devres_release_all+0x44/0x60
    [ 1279.659621] device_release_driver_internal+0x11c/0x1ac
    [ 1279.659629] device_driver_detach+0x20/0x2c
    [ 1279.659641] unbind_store+0x7c/0xb0
    [ 1279.659650] drv_attr_store+0x2c/0x40
    [ 1279.659663] sysfs_kf_write+0x44/0x58
    [ 1279.659672] kernfs_fop_write_iter+0xf4/0x190
    [ 1279.659684] vfs_write+0x2b0/0x2e4
    [ 1279.659693] ksys_write+0x80/0xec
    [ 1279.659701] __arm64_sys_write+0x24/0x30
    [ 1279.659714] el0_svc_common+0xf0/0x1d8
    [ 1279.659724] do_el0_svc_compat+0x28/0x3c
    [ 1279.659738] el0_svc_compat+0x10/0x1c
    [ 1279.659746] el0_sync_compat_handler+0xa8/0xcc
    [ 1279.659758] el0_sync_compat+0x188/0x1c0
    [ 1279.659768] ---[ end trace cec200e5094155b4 ]---

    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/devfreq/rk3399_dmc.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
    index 2e912166a993..7e52375d9818 100644
    --- a/drivers/devfreq/rk3399_dmc.c
    +++ b/drivers/devfreq/rk3399_dmc.c
    @@ -485,6 +485,8 @@ static int rk3399_dmcfreq_remove(struct platform_device *pdev)
    {
    struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);

    + devfreq_event_disable_edev(dmcfreq->edev);
    +
    /*
    * Before remove the opp table we need to unregister the opp notifier.
    */
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 19:29    [W:2.501 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site