All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@codeaurora.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Guenter Roeck <linux@roeck-us.net>,
	Stephen Boyd <swboyd@chromium.org>,
	andy.gross@linaro.org, david.brown@linaro.org,
	linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ulf Hansson <ulf.hansson@linaro.org>
Subject: Re: [PATCH] soc: qcom: update config dependencies for QCOM_RPMPD
Date: Tue, 22 Jan 2019 16:05:45 +0530	[thread overview]
Message-ID: <57f73ea8-3be4-470c-1ef8-d870af605347@codeaurora.org> (raw)
In-Reply-To: <20190122100854.nuepsz5ddbt4jda4@vireshk-i7>


On 1/22/2019 3:38 PM, Viresh Kumar wrote:
> On 22-01-19, 15:24, Rajendra Nayak wrote:
>> I was doing some quick testing by adding the calls to of_genpd_remove_last() as
>> suggested by Ulf for cleaning up the genpd registrations, and I run into this
>> backtrace when the driver re-probes followed by a remove
>>
>> [   59.204525] kobject ((____ptrval____)): tried to init an initialized object, something is seriously wr.
>> [   59.214262] CPU: 3 PID: 1600 Comm: sh Not tainted 5.0.0-rc1-00012-g0513915837c5-dirty #32
>> [   59.222500] Hardware name: Qualcomm Technologies, Inc. SDM845 MTP (DT)
>> [   59.229081] Call trace:
>> [   59.231574]  dump_backtrace+0x0/0x148
>> [   59.235276]  show_stack+0x14/0x20
>> [   59.238631]  dump_stack+0x8c/0xac
>> [   59.241980]  kobject_init+0x8c/0xa0
>> [   59.245506]  device_initialize+0x34/0xc8
>> [   59.249474]  pm_genpd_init+0x170/0x260
>> [   59.253261]  rpmhpd_probe+0x194/0x2b0
>> [   59.256966]  platform_drv_probe+0x4c/0xa8
>> [   59.261011]  really_probe+0x1e4/0x2c8
>> [   59.264711]  driver_probe_device+0x58/0x10
>> [   59.268927]  bind_store+0xdc/0x178
>> [   59.272356]  drv_attr_store+0x20/0x30
>> [   59.276061]  sysfs_kf_write+0x48/0x58
>> [   59.279760]  kernfs_fop_write+0xcc/0x1c8
>> [   59.283728]  __vfs_write+0x34/0x170
>> [   59.287245]  vfs_write+0xa8/0x1b8
>> [   59.290592]  ksys_write+0x5c/0xc8
>> [   59.293941]  __arm64_sys_write+0x14/0x20
>> [   59.297897]  el0_svc_common+0xb4/0x118
>> [   59.301676]  el0_svc_handler+0x2c/0x80
>> [   59.305455]  el0_svc+0x8/0xc
>>
>> Viresh/Ulf, looks like we need some cleanup of whats done by device_initialize()
>> in pm_genpd_init() to happen as part of the pm_genpd_remove()?
> 
> Yeah, we normally need to call put_device() for that. Maybe something like this:
> 
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index 500de1dee967..d5b984f042ec 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1812,6 +1812,7 @@ static int genpd_remove(struct generic_pm_domain *genpd)
>          genpd_unlock(genpd);
>          cancel_work_sync(&genpd->power_off_work);
>          kfree(genpd->free);
> +       put_device(&genpd->dev);
>          pr_debug("%s: removed %s\n", __func__, genpd->name);
>   
>          return 0;

Seeing this now during remove

[   34.008216] ------------[ cut here ]------------
[   34.012894] Device 'mss' does not have a release() function, it is broken and must be fixed. See Docum.
[   34.024143] WARNING: CPU: 6 PID: 1600 at drivers/base/core.c:922 device_release+0x84/0x98
[   34.032379] Modules linked in:
[   34.035477] CPU: 6 PID: 1600 Comm: sh Not tainted 5.0.0-rc1-00012-g0513915837c5-dirty #34
[   34.043724] Hardware name: Qualcomm Technologies, Inc. SDM845 MTP (DT)
[   34.050305] pstate: 60400005 (nZCv daif +PAN -UAO)
[   34.055141] pc : device_release+0x84/0x98
[   34.059186] lr : device_release+0x84/0x98
[   34.063229] sp : ffff0000183c3b40
[   34.066574] x29: ffff0000183c3b40 x28: ffff800174b55100
[   34.071930] x27: 0000000000000000 x26: 0000000000000000
[   34.077285] x25: 0000000056000000 x24: 0000000000000015
[   34.082640] x23: dead000000000100 x22: dead000000000200
[   34.087997] x21: 0000000000000000 x20: ffff0000112f9780
[   34.093352] x19: ffff0000112f9770 x18: ffff0000111dd6c8
[   34.098719] x17: 0000000000000000 x16: 0000000000000000
[   34.104072] x15: ffff0000983c3867 x14: 6966206562207473
[   34.109438] x13: 756d20646e61206e x12: 656b6f7262207369
[   34.114791] x11: 207469202c6e6f69 x10: 74636e7566202928
[   34.120147] x9 : 657361656c657220 x8 : 742e7463656a626f
[   34.125514] x7 : 6b2f6e6f69746174 x6 : 0000000000000149
[   34.130867] x5 : 0000000000000020 x4 : 000000000001c200
[   34.136223] x3 : 00000000ffffffff x2 : ffff0000111f5828
[   34.141579] x1 : bc1d8ed5415ab200 x0 : 0000000000000000
[   34.146936] Call trace:
[   34.149413]  device_release+0x84/0x98
[   34.153116]  kobject_put+0x98/0xe8
[   34.156551]  put_device+0x14/0x28
[   34.159899]  genpd_remove+0x108/0x190
[   34.163598]  of_genpd_remove_last+0xbc/0xf0
[   34.167828]  rpmhpd_remove+0x2c/0x48
[   34.171436]  platform_drv_remove+0x24/0x68
[   34.175574]  device_release_driver_internal+0x184/0x218
[   34.180845]  device_release_driver+0x14/0x20
[   34.185152]  unbind_store+0xec/0x138
[   34.188760]  drv_attr_store+0x20/0x30
[   34.192465]  sysfs_kf_write+0x48/0x58
[   34.196163]  kernfs_fop_write+0xcc/0x1c8
[   34.200129]  __vfs_write+0x34/0x170
[   34.203654]  vfs_write+0xa8/0x1b8
[   34.206998]  ksys_write+0x5c/0xc8
[   34.210345]  __arm64_sys_write+0x14/0x20
[   34.214318]  el0_svc_common+0xb4/0x118
[   34.218107]  el0_svc_handler+0x2c/0x80
[   34.221899]  el0_svc+0x8/0xc
[   34.224804] ---[ end trace 9cee1458d0b6c175 ]---
[   34.229490] ------------[ cut here ]------------

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

  reply	other threads:[~2019-01-22 10:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-18  4:48 [PATCH] soc: qcom: update config dependencies for QCOM_RPMPD Rajendra Nayak
2019-01-18 17:39 ` Stephen Boyd
2019-01-18 17:39   ` Stephen Boyd
2019-01-22  2:30   ` Rajendra Nayak
2019-01-22  5:08     ` Guenter Roeck
2019-01-22  9:54       ` Rajendra Nayak
2019-01-22 10:08         ` Viresh Kumar
2019-01-22 10:35           ` Rajendra Nayak [this message]
2019-01-23 11:16             ` Viresh Kumar
2019-01-23 14:22               ` Guenter Roeck
2019-01-24  6:45                 ` Viresh Kumar
2019-01-31  1:32   ` Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57f73ea8-3be4-470c-1ef8-d870af605347@codeaurora.org \
    --to=rnayak@codeaurora.org \
    --cc=andy.gross@linaro.org \
    --cc=david.brown@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=swboyd@chromium.org \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.