From: "David E. Box" <david.e.box@linux.intel.com>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: lee.jones@linaro.org, hdegoede@redhat.com, bhelgaas@google.com,
andriy.shevchenko@linux.intel.com, srinivas.pandruvada@intel.com,
mgross@linux.intel.com, linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org, linux-pci@vger.kernel.org,
Mark Gross <markgross@kernel.org>
Subject: Re: [PATCH RESEND V2 3/6] platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus
Date: Wed, 08 Dec 2021 13:30:06 -0800 [thread overview]
Message-ID: <622887d53eaf6e6ae36354bfa0ed483df1cd9214.camel@linux.intel.com> (raw)
In-Reply-To: <YbEFuN7fwdiNI8vW@kroah.com>
On Wed, 2021-12-08 at 20:21 +0100, Greg KH wrote:
> On Wed, Dec 08, 2021 at 11:09:48AM -0800, David E. Box wrote:
> > On Wed, 2021-12-08 at 19:11 +0100, Greg KH wrote:
> > > On Wed, Dec 08, 2021 at 09:47:26AM -0800, David E. Box wrote:
> > > > On Wed, 2021-12-08 at 17:22 +0100, Greg KH wrote:
> > > > > On Tue, Dec 07, 2021 at 05:50:12PM -0800, David E. Box wrote:
> > > > > > +static struct pci_driver intel_vsec_pci_driver = {
> > > > > > + .name = "intel_vsec",
> > > > > > + .id_table = intel_vsec_pci_ids,
> > > > > > + .probe = intel_vsec_pci_probe,
> > > > > > +};
> > > > >
> > > > > So when the PCI device is removed from the system you leak resources and
> > > > > have dangling devices?
> > > >
> > > > No.
> > > >
> > > > >
> > > > > Why no PCI remove driver callback?
> > > >
> > > > After probe all resources are device managed. There's nothing to explicitly clean up. When
> > > > the
> > > > PCI
> > > > device is removed, all aux devices are automatically removed. This is the case for the SDSi
> > > > driver
> > > > as well.
> > >
> > > Where is the "automatic cleanup" happening? As this pci driver is bound
> > > to the PCI device, when the device is removed, what is called in this
> > > driver to remove the resources allocated in the probe callback?
> > >
> > > confused,
> >
> > devm_add_action_or_reset(&pdev->dev, intel_vsec_remove_aux, auxdev)
>
> Wow that is opaque. Why not do it on remove instead?
This code is common for auxdev cleanup. AFAICT most auxiliary bus code is done by drivers that have
some other primary function. They clean up their primary function resources in remove, but they
clean up the auxdev using the method above. In this case the sole purpose of this driver is to
create the auxdev. There are no other resources beyond what the auxdev is using.
Adding runtime pm to the pci driver will change this. Remove will be needed then.
>
> > intel_vsec_remove_aux() gets called when the PCI device is removed. It calls
> > auxiliary_device_unit()
> > which in turn calls the auxdev release() function that cleans up resources.
>
> Does this happen when the device is removed, or when the binding of
> driver <-> device is removed?
It happens when the device is removed as tested by unbinding it.
>
> > When the auxdev is removed, all resources that were dev_m added by the SDSi driver are released
> > too
> > which is why it has no remove() either. I'll add the tests that check this.
>
> Please do so and document it well, as that is an odd "pattern".
Sure, but I don't think it's that odd in practice given what I already mentioned.
David
>
> thanks,
>
> greg k-h
next prev parent reply other threads:[~2021-12-08 21:53 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 1:50 [PATCH RESEND V2 0/6] Auxiliary bus driver support for Intel PCIe VSEC/DVSEC David E. Box
2021-12-08 1:50 ` [PATCH RESEND V2 1/6] PCI: Add #defines for accessing PCIe DVSEC fields David E. Box
2021-12-08 1:50 ` [PATCH RESEND V2 2/6] driver core: auxiliary bus: Add driver data helpers David E. Box
2021-12-08 1:50 ` [PATCH RESEND V2 3/6] platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus David E. Box
2021-12-08 16:22 ` Greg KH
2021-12-08 17:47 ` David E. Box
2021-12-08 18:11 ` Greg KH
2021-12-08 19:09 ` David E. Box
2021-12-08 19:21 ` Greg KH
2021-12-08 21:30 ` David E. Box [this message]
2021-12-21 7:38 ` Greg KH
2021-12-21 16:44 ` David E. Box
2021-12-21 16:54 ` Greg KH
2021-12-21 17:04 ` Hans de Goede
2021-12-21 18:16 ` David E. Box
2021-12-21 18:38 ` Hans de Goede
2021-12-22 12:57 ` Greg KH
2021-12-08 1:50 ` [PATCH RESEND V2 4/6] platform/x86: Add Intel Software Defined Silicon driver David E. Box
2021-12-08 16:23 ` Greg KH
2021-12-08 16:24 ` Greg KH
2021-12-08 17:49 ` David E. Box
2021-12-08 18:12 ` Greg KH
2021-12-08 18:30 ` David E. Box
2021-12-08 18:42 ` Greg KH
2021-12-08 16:29 ` Greg KH
2021-12-08 18:11 ` David E. Box
2021-12-08 16:43 ` Keith Busch
2021-12-08 1:50 ` [PATCH RESEND V2 5/6] sample/sdsi: Sample of SDSi provisiong using sysfs David E. Box
2021-12-08 1:50 ` [PATCH RESEND V2 6/6] selftests: sdsi: test sysfs setup David E. Box
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=622887d53eaf6e6ae36354bfa0ed483df1cd9214.camel@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=markgross@kernel.org \
--cc=mgross@linux.intel.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=srinivas.pandruvada@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox