Re: [PATCH RESEND V2 3/6] platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux