From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Mark Brown <broonie@kernel.org>
Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] spi: ensure timely release of driver-allocated resources
Date: Mon, 22 Mar 2021 12:38:15 -0700 [thread overview]
Message-ID: <YFjyJycuAXdTX42D@google.com> (raw)
In-Reply-To: <20210322123707.GB4681@sirena.org.uk>
On Mon, Mar 22, 2021 at 12:37:07PM +0000, Mark Brown wrote:
> On Sun, Mar 21, 2021 at 06:43:32PM -0700, Dmitry Torokhov wrote:
>
> > Note that this is not SPI-specific issue. I already send a similar
> > patch for I2C and will be sending more.
>
> This feels like it might make sense to push up to the driver core level
> then rather than doing in individual buses?
That is exactly the issue: we can't. Driver core already releases all
resources when a device is being unbound but that happens after bus
"remove" code is executed and therefore is too late. The device might
already be powered down, but various devm release() callbacks will be
trying to access it.
devm only works when you do not mix manual resources with managed ones,
and when bus code allocates resources themselves (attaching a device to
a power domain can be viewed as resource acquisition) we violate this
principle. We could, of course, to make SPI bus' probe() use
devm_add_action_or_reset() to work in removal of the device from the
power domain into the stream of devm resources, but that still requires
changes at bus code, and I believe will complicate matters if we need to
extend SPI bus code to allocate more resources in probe(). So I opted
for opening a devm group to separate resources allocated before and
after probe() to be able to release them in the right order.
Thanks.
--
Dmitry
next prev parent reply other threads:[~2021-03-22 19:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-22 1:43 [PATCH] spi: ensure timely release of driver-allocated resources Dmitry Torokhov
2021-03-22 12:37 ` Mark Brown
2021-03-22 19:38 ` Dmitry Torokhov [this message]
2021-03-23 17:36 ` Mark Brown
2021-03-23 19:04 ` Dmitry Torokhov
2021-03-24 21:32 ` Mark Brown
2021-03-24 22:27 ` Dmitry Torokhov
2021-03-24 23:39 ` Mark Brown
2021-03-25 0:17 ` Dmitry Torokhov
2021-03-30 17:19 ` Mark Brown
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=YFjyJycuAXdTX42D@google.com \
--to=dmitry.torokhov@gmail.com \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).