Re: [PATCH v2-UPDATE2 3/4] resource: Add device-managed insert/remove_resource()
From: Toshi Kani
Date: Tue Mar 08 2016 - 18:11:38 EST
On Tue, 2016-03-08 at 14:44 -0800, Dan Williams wrote:
> On Tue, Mar 8, 2016 at 2:23 PM, Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Tue, Mar 8, 2016 at 12:59 PM, Dan Williams <dan.j.williams@xxxxxxxxx
> > > wrote:
> > >
> > > Here's the usage patch from Toshi  (copied below).ÂÂIt is indeed a
> > > resource injected by nfit / nvdimm bus implementation.ÂÂWe just
> > > happen
> > > to support nfit and libnvdimm as modules.
> > >
> > > The goal of these patches is to use the ACPI NFIT data to create a
> > > "Persistent Memory" rather than "reserved" resource.ÂÂThis is for
> > > platform-firmware implementations that use E820-Type2 rather than
> > > E820-Type7 to describe pmem.
> > So my worry is that there is likely exactly one or two of these kinds
> > of sites.
> > Why couldn't they just use insert_resource() and then remove it
> > manually?
> You mean instead of introducing a devm_insert_resource() as a helpful
> first-class-citizen api, just arrange for the resource to be inserted
> I assume Toshi was looking to keep the devm semantics like the rest of
> the nfit driver, but we can do that locally with devm_add_action() and
> skip the new general purpose api.
Yes, I prefer the devm semantics. Âinsert_resource() and remove_resource()
are not exported interfaces. ÂSo, with devm_add_action(), we still need to
introduce built-in exported wrappers for insert/remove_resource(), unless
we change to export them directly. ÂSince we need to export "something", I
think it is better to export their devm interfaces.