Alexey Kardashevskiy wrote: [..] > > diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig > > index 0c662f9813eb..5c3f896ac9f4 100644 > > --- a/drivers/pci/Kconfig > > +++ b/drivers/pci/Kconfig > > @@ -135,6 +135,20 @@ config PCI_IDE_STREAM_MAX > > track the maximum possibility of 256 streams per host bridge > > in the typical case. > > > > +config PCI_TSM > > + bool "PCI TSM: Device security protocol support" > > + select PCI_IDE > > + select PCI_DOE > > select TSM Yup, already in v5. > etc. > > but this is kinda wrong as it is quite bizarre to call > drivers/virt/coco/tsm-core.c's tsm_ide_stream_unregister() from > drivers/pci/ide.c's pci_ide_stream_release(), i.e. "virt" from "pci > core". imho the caller of pci_ide_stream_release() should just call > tsm_ide_stream_unregister() too, and so on. Thanks, So I agree it is odd, and I orginally did not have this tie until the DEFINE_FREE(pci_ide_stream_release, ...) proposal. With that I want to allow for TSM drivers to teardown everything associated with IDE setup with one scope-based-cleanup helper. It is not a mid-layer because nothing requires a TSM driver to call tsm_ide_stream_register(), but if they do register it then the PCI core helper will handle cleaning it up on error along with the rest of the resources.