From: Rob Herring <robherring2@gmail.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Rob Herring <rob.herring@calxeda.com>,
Grant Likely <grant.likely@linaro.org>,
Kishon Vijay Abraham I <kishon@ti.com>,
George Cherian <george.cherian@ti.com>,
linux-samsung-soc@vger.kernel.org,
devicetree-discuss@lists.ozlabs.org,
linux-kernel@vger.kernel.org, Felipe Balbi <balbi@ti.com>,
Kukjin Kim <kgene.kim@samsung.com>,
Vivek Gautam <gautam.vivek@samsung.com>,
linux-omap@vger.kernel.org,
Naveen Krishna Chatradhi <ch.naveen@samsung.com>,
Roger Quadros <rogerq@ti.com>
Subject: Re: [PATCH] of: provide of_platform_unpopulate()
Date: Sun, 21 Jul 2013 15:48:08 -0500 [thread overview]
Message-ID: <51EC4908.4040504@gmail.com> (raw)
In-Reply-To: <51EBF33A.4050207@gmail.com>
On 07/21/2013 09:42 AM, Rob Herring wrote:
> On 07/19/2013 01:14 PM, Sebastian Andrzej Siewior wrote:
>> So I called of_platform_populate() on a device to get each child device
>> probed and on rmmod and I need to reverse its doing. After a quick grep
>> I did what others did as well and rmmod ended in:
>>
>> | Unable to handle kernel NULL pointer dereference at virtual address 00000018
>> | PC is at release_resource+0x18/0x80
>> | Process rmmod (pid: 2005, stack limit = 0xedc30238)
>> | [<c003add0>] (release_resource+0x18/0x80) from [<c0300e08>] (platform_device_del+0x78/0xac)
>> | [<c0300e08>] (platform_device_del+0x78/0xac) from [<c0301358>] (platform_device_unregister+0xc/0x18)
>>
>> The problem is that platform_device_del() "releases" each ressource in its
>> tree. This does not work on platform_devices created by OF becuase they
>> were never added via insert_resource(). As a consequence old->parent in
>> __release_resource() is NULL and we explode while accessing ->child.
>> So I either I do something completly wrong _or_ nobody here tested the
>> rmmod path of their driver.
>
> Wouldn't the correct fix be to call insert_resource somehow? The problem
> I have is that while of_platform_populate is all about parsing the DT
> and creating devices, the removal side has nothing to do with DT. So
> this should not be in the DT code. I think the core device code should
> be able to handle removal if the device creation side is done correctly.
>
> It looks to me like of_device_add either needs to call
> platform_device_add rather than device_add. I think the device name
> setting in platform_device_add should be a nop. If not, a check that the
> name is already set could be added.
>
BTW, it looks like Grant has attempted this already:
commit 02bbde7849e68e193cefaa1885fe0df0f03c9fcd
Author: Grant Likely <grant.likely@secretlab.ca>
Date: Sun Feb 17 20:03:27 2013 +0000
Revert "of: use platform_device_add"
This reverts commit aac73f34542bc7ae4317928d2eabfeb21d247323. That
commit causes two kinds of breakage; it breaks registration of AMBA
devices when one of the parent nodes already contains overlapping
resource regions, and it breaks calls to request_region() by device
drivers in certain conditions where there are overlapping memory
regions. Both of these problems can probably be fixed, but it is better
to back out the commit and get a proper fix designed before trying
again.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Rob
next prev parent reply other threads:[~2013-07-21 20:48 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-19 18:14 [PATCH] of: provide of_platform_unpopulate() Sebastian Andrzej Siewior
[not found] ` <1374257691-31981-1-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2013-07-21 14:42 ` Rob Herring
2013-07-21 14:42 ` Rob Herring
[not found] ` <51EBF33A.4050207-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-21 19:47 ` Sebastian Andrzej Siewior
2013-07-21 19:47 ` Sebastian Andrzej Siewior
2013-07-21 20:48 ` Rob Herring [this message]
[not found] ` <51EC4908.4040504-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-21 23:44 ` Grant Likely
2013-07-21 23:44 ` Grant Likely
2013-07-22 21:16 ` Rob Herring
2013-07-24 14:19 ` Grant Likely
2013-07-31 15:21 ` Sebastian Andrzej Siewior
2013-07-29 9:33 ` Benjamin Herrenschmidt
2013-07-31 16:28 ` Rob Herring
2013-07-29 9:31 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
2013-07-20 5:03 NAVEEN KRISHNA CHATRADHI
2013-07-20 5:03 ` NAVEEN KRISHNA CHATRADHI
2013-07-20 5:43 NAVEEN KRISHNA CHATRADHI
2013-07-20 5:43 ` NAVEEN KRISHNA CHATRADHI
2013-07-22 8:25 ` Sebastian Andrzej Siewior
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=51EC4908.4040504@gmail.com \
--to=robherring2@gmail.com \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=ch.naveen@samsung.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=gautam.vivek@samsung.com \
--cc=george.cherian@ti.com \
--cc=grant.likely@linaro.org \
--cc=kgene.kim@samsung.com \
--cc=kishon@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=rob.herring@calxeda.com \
--cc=rogerq@ti.com \
/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.