Message ID | 20241015185124.64726-1-pstanner@redhat.com |
---|---|
Headers | show |
Series | Remove implicit devres from pci_intx() | expand |
On Tue, Oct 15, 2024 at 08:51:10PM +0200, Philipp Stanner wrote: > @Driver-Maintainers: Your driver might be touched by patch "Remove > devres from pci_intx()". You might want to take a look. > > Changes since the RFC [1]: > - Add a patch deprecating pci{m}_intx(). (Heiner, Andy, Me) > - Add Acked-by's already given. > - Export pcim_intx() as a GPL function. (Alex) > - Drop patch for rts5280, since this driver will be removed quite > soon. (Philipp Hortmann, Greg) > - Use early-return in pci_intx_unmanaged() and pci_intx(). (Andy) > > Hi all, > > this series removes a problematic feature from pci_intx(). That function > sometimes implicitly uses devres for automatic cleanup. We should get > rid of this implicit behavior. > > To do so, a pci_intx() version that is always-managed, and one that is > never-managed are provided. Then, all pci_intx() users are ported to the > version they need. Afterwards, pci_intx() can be cleaned up and the > users of the never-managed version be ported back to pci_intx(). > > This way we'd get this PCI API consistent again. > > Patch "Remove devres from pci_intx()" obviously reverts the previous > patches that made drivers use pci_intx_unmanaged(). But this way it's > easier to review and approve. It also makes sure that each checked out > commit should provide correct behavior, not just the entire series as a > whole. > > Merge plan for this is to enter through the PCI tree. > > [1] https://lore.kernel.org/all/20241009083519.10088-1-pstanner@redhat.com/ I *think* this series depends on resolution of Takashi's "Restore the original INTX_DISABLE bit by pcim_intx()" patch [2], right? For now I'm postponing this series, but let me know if that's not the right thing. [2] https://lore.kernel.org/r/20241024155539.19416-1-tiwai@suse.de > Philipp Stanner (13): > PCI: Prepare removing devres from pci_intx() > ALSA: hda_intel: Use always-managed version of pcim_intx() > drivers/xen: Use never-managed version of pci_intx() > net/ethernet: Use never-managed version of pci_intx() > net/ntb: Use never-managed version of pci_intx() > misc: Use never-managed version of pci_intx() > vfio/pci: Use never-managed version of pci_intx() > PCI: MSI: Use never-managed version of pci_intx() > ata: Use always-managed version of pci_intx() > wifi: qtnfmac: use always-managed version of pcim_intx() > HID: amd_sfh: Use always-managed version of pcim_intx() > Remove devres from pci_intx() > PCI: Deprecate pci_intx(), pcim_intx() > > drivers/ata/ahci.c | 2 +- > drivers/ata/ata_piix.c | 2 +- > drivers/ata/pata_rdc.c | 2 +- > drivers/ata/sata_sil24.c | 2 +- > drivers/ata/sata_sis.c | 2 +- > drivers/ata/sata_uli.c | 2 +- > drivers/ata/sata_vsc.c | 2 +- > drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 +-- > drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 2 +- > .../wireless/quantenna/qtnfmac/pcie/pcie.c | 2 +- > drivers/pci/devres.c | 29 +++++-------------- > drivers/pci/pci.c | 19 ++++-------- > include/linux/pci.h | 1 + > sound/pci/hda/hda_intel.c | 2 +- > 14 files changed, 26 insertions(+), 47 deletions(-) > > -- > 2.47.0 >
On Wed, 30 Oct 2024 23:17:37 +0100, Bjorn Helgaas wrote: > > On Tue, Oct 15, 2024 at 08:51:10PM +0200, Philipp Stanner wrote: > > @Driver-Maintainers: Your driver might be touched by patch "Remove > > devres from pci_intx()". You might want to take a look. > > > > Changes since the RFC [1]: > > - Add a patch deprecating pci{m}_intx(). (Heiner, Andy, Me) > > - Add Acked-by's already given. > > - Export pcim_intx() as a GPL function. (Alex) > > - Drop patch for rts5280, since this driver will be removed quite > > soon. (Philipp Hortmann, Greg) > > - Use early-return in pci_intx_unmanaged() and pci_intx(). (Andy) > > > > Hi all, > > > > this series removes a problematic feature from pci_intx(). That function > > sometimes implicitly uses devres for automatic cleanup. We should get > > rid of this implicit behavior. > > > > To do so, a pci_intx() version that is always-managed, and one that is > > never-managed are provided. Then, all pci_intx() users are ported to the > > version they need. Afterwards, pci_intx() can be cleaned up and the > > users of the never-managed version be ported back to pci_intx(). > > > > This way we'd get this PCI API consistent again. > > > > Patch "Remove devres from pci_intx()" obviously reverts the previous > > patches that made drivers use pci_intx_unmanaged(). But this way it's > > easier to review and approve. It also makes sure that each checked out > > commit should provide correct behavior, not just the entire series as a > > whole. > > > > Merge plan for this is to enter through the PCI tree. > > > > [1] https://lore.kernel.org/all/20241009083519.10088-1-pstanner@redhat.com/ > > I *think* this series depends on resolution of Takashi's "Restore the > original INTX_DISABLE bit by pcim_intx()" patch [2], right? IIUC, it's not really dependent, as pcim_intx() has been used in pci_intx() internally when the PCI device is already managed. My patch is to correct the already existing behavior. So I guess you can take this series, and I'll post the revised patch later (sorry, I was too busy for other tasks). thanks, Takashi > > For now I'm postponing this series, but let me know if that's not the > right thing. > > [2] https://lore.kernel.org/r/20241024155539.19416-1-tiwai@suse.de > > > Philipp Stanner (13): > > PCI: Prepare removing devres from pci_intx() > > ALSA: hda_intel: Use always-managed version of pcim_intx() > > drivers/xen: Use never-managed version of pci_intx() > > net/ethernet: Use never-managed version of pci_intx() > > net/ntb: Use never-managed version of pci_intx() > > misc: Use never-managed version of pci_intx() > > vfio/pci: Use never-managed version of pci_intx() > > PCI: MSI: Use never-managed version of pci_intx() > > ata: Use always-managed version of pci_intx() > > wifi: qtnfmac: use always-managed version of pcim_intx() > > HID: amd_sfh: Use always-managed version of pcim_intx() > > Remove devres from pci_intx() > > PCI: Deprecate pci_intx(), pcim_intx() > > > > drivers/ata/ahci.c | 2 +- > > drivers/ata/ata_piix.c | 2 +- > > drivers/ata/pata_rdc.c | 2 +- > > drivers/ata/sata_sil24.c | 2 +- > > drivers/ata/sata_sis.c | 2 +- > > drivers/ata/sata_uli.c | 2 +- > > drivers/ata/sata_vsc.c | 2 +- > > drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 +-- > > drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 2 +- > > .../wireless/quantenna/qtnfmac/pcie/pcie.c | 2 +- > > drivers/pci/devres.c | 29 +++++-------------- > > drivers/pci/pci.c | 19 ++++-------- > > include/linux/pci.h | 1 + > > sound/pci/hda/hda_intel.c | 2 +- > > 14 files changed, 26 insertions(+), 47 deletions(-) > > > > -- > > 2.47.0 > >
On Thu, 2024-10-31 at 10:19 +0100, Takashi Iwai wrote: > On Wed, 30 Oct 2024 23:17:37 +0100, > Bjorn Helgaas wrote: > > > > On Tue, Oct 15, 2024 at 08:51:10PM +0200, Philipp Stanner wrote: > > > @Driver-Maintainers: Your driver might be touched by patch > > > "Remove > > > devres from pci_intx()". You might want to take a look. > > > > > > Changes since the RFC [1]: > > > - Add a patch deprecating pci{m}_intx(). (Heiner, Andy, Me) > > > - Add Acked-by's already given. > > > - Export pcim_intx() as a GPL function. (Alex) > > > - Drop patch for rts5280, since this driver will be removed > > > quite > > > soon. (Philipp Hortmann, Greg) > > > - Use early-return in pci_intx_unmanaged() and pci_intx(). > > > (Andy) > > > > > > Hi all, > > > > > > this series removes a problematic feature from pci_intx(). That > > > function > > > sometimes implicitly uses devres for automatic cleanup. We should > > > get > > > rid of this implicit behavior. > > > > > > To do so, a pci_intx() version that is always-managed, and one > > > that is > > > never-managed are provided. Then, all pci_intx() users are ported > > > to the > > > version they need. Afterwards, pci_intx() can be cleaned up and > > > the > > > users of the never-managed version be ported back to pci_intx(). > > > > > > This way we'd get this PCI API consistent again. > > > > > > Patch "Remove devres from pci_intx()" obviously reverts the > > > previous > > > patches that made drivers use pci_intx_unmanaged(). But this way > > > it's > > > easier to review and approve. It also makes sure that each > > > checked out > > > commit should provide correct behavior, not just the entire > > > series as a > > > whole. > > > > > > Merge plan for this is to enter through the PCI tree. > > > > > > [1] > > > https://lore.kernel.org/all/20241009083519.10088-1-pstanner@redhat.com/ > > > > I *think* this series depends on resolution of Takashi's "Restore > > the > > original INTX_DISABLE bit by pcim_intx()" patch [2], right? > > IIUC, it's not really dependent, as pcim_intx() has been used in > pci_intx() internally when the PCI device is already managed. > My patch is to correct the already existing behavior. IOW, pcim_intx() does not behave correctly, independently from removing the call to it in pci_intx(). > So I guess you > can take this series, and I'll post the revised patch later (sorry, I > was too busy for other tasks). > > > thanks, > > Takashi > > > > > For now I'm postponing this series, but let me know if that's not > > the > > right thing. There are still several reviews / acks missing from the respective driver maintainers, so there's no hurry with this series regarding your side ;) Regards P. > > > > [2] https://lore.kernel.org/r/20241024155539.19416-1-tiwai@suse.de > > > > > Philipp Stanner (13): > > > PCI: Prepare removing devres from pci_intx() > > > ALSA: hda_intel: Use always-managed version of pcim_intx() > > > drivers/xen: Use never-managed version of pci_intx() > > > net/ethernet: Use never-managed version of pci_intx() > > > net/ntb: Use never-managed version of pci_intx() > > > misc: Use never-managed version of pci_intx() > > > vfio/pci: Use never-managed version of pci_intx() > > > PCI: MSI: Use never-managed version of pci_intx() > > > ata: Use always-managed version of pci_intx() > > > wifi: qtnfmac: use always-managed version of pcim_intx() > > > HID: amd_sfh: Use always-managed version of pcim_intx() > > > Remove devres from pci_intx() > > > PCI: Deprecate pci_intx(), pcim_intx() > > > > > > drivers/ata/ahci.c | 2 +- > > > drivers/ata/ata_piix.c | 2 +- > > > drivers/ata/pata_rdc.c | 2 +- > > > drivers/ata/sata_sil24.c | 2 +- > > > drivers/ata/sata_sis.c | 2 +- > > > drivers/ata/sata_uli.c | 2 +- > > > drivers/ata/sata_vsc.c | 2 +- > > > drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 +-- > > > drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 2 +- > > > .../wireless/quantenna/qtnfmac/pcie/pcie.c | 2 +- > > > drivers/pci/devres.c | 29 +++++-------- > > > ------ > > > drivers/pci/pci.c | 19 ++++-------- > > > include/linux/pci.h | 1 + > > > sound/pci/hda/hda_intel.c | 2 +- > > > 14 files changed, 26 insertions(+), 47 deletions(-) > > > > > > -- > > > 2.47.0 > > > >