lkml.org 
[lkml]   [2021]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH RESEND V2 3/6] platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus
    From
    Date
    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)

    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.

    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.

    David

    >
    > greg k-h


    \
     
     \ /
      Last update: 2021-12-08 20:11    [W:4.348 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site