[PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes

Timothy Pearson posted 6 patches 2 months, 3 weeks ago
arch/powerpc/kernel/eeh.c         |   1 +
arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
arch/powerpc/kernel/eeh_pe.c      |  10 +-
arch/powerpc/kernel/pci-hotplug.c |   3 +
drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
5 files changed, 263 insertions(+), 43 deletions(-)
[PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Timothy Pearson 2 months, 3 weeks ago
Hello all,

This series includes several fixes for bugs in the PowerNV PCIe hotplug
driver that were discovered in testing with a Microsemi Switchtec PM8533
PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
PCIe switches that don't correctly implement slot presence detection
such as the aforementioned one. Without the workaround, the switch works
and downstream devices can be hot-unplugged, but the devices never come
back online after being plugged in again until the system is rebooted.
Other hotplug drivers (like pciehp_hpc) use a similar workaround.

Also included are fixes for the EEH driver to make it hotplug safe,
and a small patch to enable all three attention indicator states per
the PCIe specification.

Thanks,

Shawn Anastasio (2):
  PCI: pnv_php: Properly clean up allocated IRQs on unplug
  PCI: pnv_php: Work around switches with broken presence detection

Timothy Pearson (4):
  powerpc/eeh: Export eeh_unfreeze_pe()
  powerpc/eeh: Make EEH driver device hotplug safe
  PCI: pnv_php: Fix surprise plug detection and recovery
  PCI: pnv_php: Enable third attention indicator state

 arch/powerpc/kernel/eeh.c         |   1 +
 arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
 arch/powerpc/kernel/eeh_pe.c      |  10 +-
 arch/powerpc/kernel/pci-hotplug.c |   3 +
 drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
 5 files changed, 263 insertions(+), 43 deletions(-)

-- 
2.39.5
Re: [PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Ganesh G R 2 months, 2 weeks ago
On 7/16/25 3:01 AM, Timothy Pearson wrote:
> Hello all,
> 
> This series includes several fixes for bugs in the PowerNV PCIe hotplug
> driver that were discovered in testing with a Microsemi Switchtec PM8533
> PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
> PCIe switches that don't correctly implement slot presence detection
> such as the aforementioned one. Without the workaround, the switch works
> and downstream devices can be hot-unplugged, but the devices never come
> back online after being plugged in again until the system is rebooted.
> Other hotplug drivers (like pciehp_hpc) use a similar workaround.
> 
> Also included are fixes for the EEH driver to make it hotplug safe,
> and a small patch to enable all three attention indicator states per
> the PCIe specification.
> 
> Thanks,
> 
> Shawn Anastasio (2):
>    PCI: pnv_php: Properly clean up allocated IRQs on unplug
>    PCI: pnv_php: Work around switches with broken presence detection
> 
> Timothy Pearson (4):
>    powerpc/eeh: Export eeh_unfreeze_pe()
>    powerpc/eeh: Make EEH driver device hotplug safe
>    PCI: pnv_php: Fix surprise plug detection and recovery
>    PCI: pnv_php: Enable third attention indicator state
> 
>   arch/powerpc/kernel/eeh.c         |   1 +
>   arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
>   arch/powerpc/kernel/eeh_pe.c      |  10 +-
>   arch/powerpc/kernel/pci-hotplug.c |   3 +
>   drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
>   5 files changed, 263 insertions(+), 43 deletions(-)
> 
Tested the patch series for EEH and hotplug on powernv, recovery is 
working as expected, EEH changes looks good to me.
Tested-by: Ganesh Goudar <ganeshgr@linux.ibm.com>

Thanks
Ganesh
Re: [PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Bjorn Helgaas 2 months, 3 weeks ago
On Tue, Jul 15, 2025 at 04:31:49PM -0500, Timothy Pearson wrote:
> Hello all,
> 
> This series includes several fixes for bugs in the PowerNV PCIe hotplug
> driver that were discovered in testing with a Microsemi Switchtec PM8533
> PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
> PCIe switches that don't correctly implement slot presence detection
> such as the aforementioned one. Without the workaround, the switch works
> and downstream devices can be hot-unplugged, but the devices never come
> back online after being plugged in again until the system is rebooted.
> Other hotplug drivers (like pciehp_hpc) use a similar workaround.
> 
> Also included are fixes for the EEH driver to make it hotplug safe,
> and a small patch to enable all three attention indicator states per
> the PCIe specification.
> 
> Thanks,
> 
> Shawn Anastasio (2):
>   PCI: pnv_php: Properly clean up allocated IRQs on unplug
>   PCI: pnv_php: Work around switches with broken presence detection
> 
> Timothy Pearson (4):
>   powerpc/eeh: Export eeh_unfreeze_pe()
>   powerpc/eeh: Make EEH driver device hotplug safe
>   PCI: pnv_php: Fix surprise plug detection and recovery
>   PCI: pnv_php: Enable third attention indicator state
> 
>  arch/powerpc/kernel/eeh.c         |   1 +
>  arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
>  arch/powerpc/kernel/eeh_pe.c      |  10 +-
>  arch/powerpc/kernel/pci-hotplug.c |   3 +
>  drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
>  5 files changed, 263 insertions(+), 43 deletions(-)

I'm OK with this from a PCI perspective, and I optimistically put it
on pci/hotplug.

I'm happy to merge via the PCI tree, but would need acks from the
powerpc folks for the arch/powerpc parts.

Alternatively it could be merged via powerpc with my ack on the
drivers/pci patches:

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

If you do merge via powerpc, I made some comment formatting and commit
log tweaks that I would like reflected in the drivers/pci part.  These
are on
https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=hotplug

Bjorn
Re: [PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Bjorn Helgaas 2 months, 2 weeks ago
[-> to: Madhavan, Michael, Mahesh; seeking acks]

On Thu, Jul 17, 2025 at 06:27:52PM -0500, Bjorn Helgaas wrote:
> On Tue, Jul 15, 2025 at 04:31:49PM -0500, Timothy Pearson wrote:
> > Hello all,
> > 
> > This series includes several fixes for bugs in the PowerNV PCIe hotplug
> > driver that were discovered in testing with a Microsemi Switchtec PM8533
> > PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
> > PCIe switches that don't correctly implement slot presence detection
> > such as the aforementioned one. Without the workaround, the switch works
> > and downstream devices can be hot-unplugged, but the devices never come
> > back online after being plugged in again until the system is rebooted.
> > Other hotplug drivers (like pciehp_hpc) use a similar workaround.
> > 
> > Also included are fixes for the EEH driver to make it hotplug safe,
> > and a small patch to enable all three attention indicator states per
> > the PCIe specification.
> > 
> > Thanks,
> > 
> > Shawn Anastasio (2):
> >   PCI: pnv_php: Properly clean up allocated IRQs on unplug
> >   PCI: pnv_php: Work around switches with broken presence detection
> > 
> > Timothy Pearson (4):
> >   powerpc/eeh: Export eeh_unfreeze_pe()
> >   powerpc/eeh: Make EEH driver device hotplug safe
> >   PCI: pnv_php: Fix surprise plug detection and recovery
> >   PCI: pnv_php: Enable third attention indicator state
> > 
> >  arch/powerpc/kernel/eeh.c         |   1 +
> >  arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
> >  arch/powerpc/kernel/eeh_pe.c      |  10 +-
> >  arch/powerpc/kernel/pci-hotplug.c |   3 +
> >  drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
> >  5 files changed, 263 insertions(+), 43 deletions(-)
> 
> I'm OK with this from a PCI perspective, and I optimistically put it
> on pci/hotplug.
> 
> I'm happy to merge via the PCI tree, but would need acks from the
> powerpc folks for the arch/powerpc parts.
> 
> Alternatively it could be merged via powerpc with my ack on the
> drivers/pci patches:
> 
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> 
> If you do merge via powerpc, I made some comment formatting and commit
> log tweaks that I would like reflected in the drivers/pci part.  These
> are on
> https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=hotplug

Powerpc folks: let me know how you want to handle this.  I haven't
included it in pci/next yet because I don't have acks for the
arch/powerpc parts.

Bjorn
Re: [PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Madhavan Srinivasan 2 months, 2 weeks ago

On 7/23/25 2:17 AM, Bjorn Helgaas wrote:
> [-> to: Madhavan, Michael, Mahesh; seeking acks]
> 
> On Thu, Jul 17, 2025 at 06:27:52PM -0500, Bjorn Helgaas wrote:
>> On Tue, Jul 15, 2025 at 04:31:49PM -0500, Timothy Pearson wrote:
>>> Hello all,
>>>
>>> This series includes several fixes for bugs in the PowerNV PCIe hotplug
>>> driver that were discovered in testing with a Microsemi Switchtec PM8533
>>> PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
>>> PCIe switches that don't correctly implement slot presence detection
>>> such as the aforementioned one. Without the workaround, the switch works
>>> and downstream devices can be hot-unplugged, but the devices never come
>>> back online after being plugged in again until the system is rebooted.
>>> Other hotplug drivers (like pciehp_hpc) use a similar workaround.
>>>
>>> Also included are fixes for the EEH driver to make it hotplug safe,
>>> and a small patch to enable all three attention indicator states per
>>> the PCIe specification.
>>>
>>> Thanks,
>>>
>>> Shawn Anastasio (2):
>>>   PCI: pnv_php: Properly clean up allocated IRQs on unplug
>>>   PCI: pnv_php: Work around switches with broken presence detection
>>>
>>> Timothy Pearson (4):
>>>   powerpc/eeh: Export eeh_unfreeze_pe()
>>>   powerpc/eeh: Make EEH driver device hotplug safe
>>>   PCI: pnv_php: Fix surprise plug detection and recovery
>>>   PCI: pnv_php: Enable third attention indicator state
>>>
>>>  arch/powerpc/kernel/eeh.c         |   1 +
>>>  arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
>>>  arch/powerpc/kernel/eeh_pe.c      |  10 +-
>>>  arch/powerpc/kernel/pci-hotplug.c |   3 +
>>>  drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
>>>  5 files changed, 263 insertions(+), 43 deletions(-)
>>
>> I'm OK with this from a PCI perspective, and I optimistically put it
>> on pci/hotplug.
>>
>> I'm happy to merge via the PCI tree, but would need acks from the
>> powerpc folks for the arch/powerpc parts.
>>
>> Alternatively it could be merged via powerpc with my ack on the
>> drivers/pci patches:
>>
>> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>>
>> If you do merge via powerpc, I made some comment formatting and commit
>> log tweaks that I would like reflected in the drivers/pci part.  These
>> are on
>> https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=hotplug
> 
> Powerpc folks: let me know how you want to handle this.  I haven't
> included it in pci/next yet because I don't have acks for the
> arch/powerpc parts.
> 

Patchset looks fine to be. 

I am fine to take it via my tree since I already have your Acked-by.

Maddy


> Bjorn
>
Re: [PATCH v3 0/6] PowerNV PCIe Hotplug Driver Fixes
Posted by Bjorn Helgaas 2 months, 2 weeks ago
On Wed, Jul 23, 2025 at 04:30:18PM +0530, Madhavan Srinivasan wrote:
> 
> 
> On 7/23/25 2:17 AM, Bjorn Helgaas wrote:
> > On Thu, Jul 17, 2025 at 06:27:52PM -0500, Bjorn Helgaas wrote:
> >> On Tue, Jul 15, 2025 at 04:31:49PM -0500, Timothy Pearson wrote:
> >>> Hello all,
> >>>
> >>> This series includes several fixes for bugs in the PowerNV PCIe hotplug
> >>> driver that were discovered in testing with a Microsemi Switchtec PM8533
> >>> PFX 48xG3 PCIe switch on a PowerNV system, as well as one workaround for
> >>> PCIe switches that don't correctly implement slot presence detection
> >>> such as the aforementioned one. Without the workaround, the switch works
> >>> and downstream devices can be hot-unplugged, but the devices never come
> >>> back online after being plugged in again until the system is rebooted.
> >>> Other hotplug drivers (like pciehp_hpc) use a similar workaround.
> >>>
> >>> Also included are fixes for the EEH driver to make it hotplug safe,
> >>> and a small patch to enable all three attention indicator states per
> >>> the PCIe specification.
> >>>
> >>> Thanks,
> >>>
> >>> Shawn Anastasio (2):
> >>>   PCI: pnv_php: Properly clean up allocated IRQs on unplug
> >>>   PCI: pnv_php: Work around switches with broken presence detection
> >>>
> >>> Timothy Pearson (4):
> >>>   powerpc/eeh: Export eeh_unfreeze_pe()
> >>>   powerpc/eeh: Make EEH driver device hotplug safe
> >>>   PCI: pnv_php: Fix surprise plug detection and recovery
> >>>   PCI: pnv_php: Enable third attention indicator state
> >>>
> >>>  arch/powerpc/kernel/eeh.c         |   1 +
> >>>  arch/powerpc/kernel/eeh_driver.c  |  48 ++++--
> >>>  arch/powerpc/kernel/eeh_pe.c      |  10 +-
> >>>  arch/powerpc/kernel/pci-hotplug.c |   3 +
> >>>  drivers/pci/hotplug/pnv_php.c     | 244 +++++++++++++++++++++++++++---
> >>>  5 files changed, 263 insertions(+), 43 deletions(-)
> >>
> >> I'm OK with this from a PCI perspective, and I optimistically put it
> >> on pci/hotplug.
> >>
> >> I'm happy to merge via the PCI tree, but would need acks from the
> >> powerpc folks for the arch/powerpc parts.
> >>
> >> Alternatively it could be merged via powerpc with my ack on the
> >> drivers/pci patches:
> >>
> >> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> >>
> >> If you do merge via powerpc, I made some comment formatting and commit
> >> log tweaks that I would like reflected in the drivers/pci part.  These
> >> are on
> >> https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=hotplug
> > 
> > Powerpc folks: let me know how you want to handle this.  I haven't
> > included it in pci/next yet because I don't have acks for the
> > arch/powerpc parts.
> 
> Patchset looks fine to be. 
> 
> I am fine to take it via my tree since I already have your Acked-by.

OK, I'll assume this will be merged via your tree.  Please cherry-pick 
the drivers/pci patches from my tree to preserve my tweaks.  I moved
them from pci/hotplug to pci/hotplug-pnv_php:

  https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=hotplug-pnv_php