Hi, On 12/21/21 17:54, Greg KH wrote: > On Tue, Dec 21, 2021 at 08:44:57AM -0800, David E. Box wrote: >> On Tue, 2021-12-21 at 08:38 +0100, Greg KH wrote: >>> On Wed, Dec 08, 2021 at 01:30:06PM -0800, David E. Box wrote: >>>> 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. >>> >>> And who will notice that being required when that happens? >>> >>> Why is there no runtime PM for this driver? Do you not care about power >>> consumption? :) >> >> Of course. :) >> >> There's a backlog of patches waiting for this series. One adds support for the >> telemetry device (an auxdev) on the DG2 GPU. This device requires runtime pm in >> order for the slot to go D3. But this also requires changes to the telemetry >> driver in order for runtime pm to be handled correctly. These and other patches, >> including a series to have all current aux drivers use the new drvdata helpers, >> are waiting for this. > > I can take the aux driver drvdata patch now, through my tree, if you > want, no need to make it wait for this tiny driver. > > Feel free to send it independant of the existing patchset, and with the > cleanup patches at the same time, should be quite easy to get merged. If you're going to take that one, can you perhaps take patches 1-3 for 5.17 through your tree as well (patch 3 depends on 2/it) ? Note there is a v4 of this series, see please use that :) I assume the follow up patches are also going to need patch 3 (the actual conversion of the driver to aux-bus). Here is my Ack for the pdx86 bits in patch 3: Acked-by: Hans de Goede <hdegoede@xxxxxxxxxx> And patch 1 and 3 also have acks from the PCI resp. MFD subsys maintainers, so I guess taking this all upstream through your tree is fine. That leaves patches 4-6, 4 is the patching adding the new "Intel Software Defined Silicon driver" sysfs API and I would like to take some time to thoroughly review the new userspace API, which I don't see happening before the Christmas Holidays, so I don't plan to merge 4-6 (which depends on 3) until after 5.17-rc1. Regards, Hans