diff mbox

powerpc/eeh: Delay probing EEH device during hotplug

Message ID 1430436135-15721-1-git-send-email-gwshan@linux.vnet.ibm.com (mailing list archive)
State Accepted
Commit d91dafc02f42e23c1a906202ebde5d7c49ef058d
Delegated to: Michael Ellerman
Headers show

Commit Message

Gavin Shan April 30, 2015, 11:22 p.m. UTC
Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
devices in early stage, which is reasonable to pSeries platform.
However, it's wrong for PowerNV platform because the PE# isn't
determined until the resources (IO and MMIO) are assigned to
PE in hotplug case. So we have to delay probing EEH devices
for PowerNV platform until the PE# is assigned.

Fixes: 1c509148b ("powerpc/eeh: Do probe on pci_dn")
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/eeh.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Michael Ellerman April 30, 2015, 11:50 p.m. UTC | #1
On Fri, 2015-05-01 at 09:22 +1000, Gavin Shan wrote:
> Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
> devices in early stage, which is reasonable to pSeries platform.
> However, it's wrong for PowerNV platform because the PE# isn't
> determined until the resources (IO and MMIO) are assigned to
> PE in hotplug case. So we have to delay probing EEH devices
> for PowerNV platform until the PE# is assigned.
> 
> Fixes: 1c509148b ("powerpc/eeh: Do probe on pci_dn")

I don't have that SHA.

I've have a commit with the same subject which is ff57b454ddb9.

Is that the same thing?

I also have 89a51df5ab1d, which Fixes that commit (ff57..).

cheers
Gavin Shan May 1, 2015, 1:28 a.m. UTC | #2
On Fri, May 01, 2015 at 09:50:57AM +1000, Michael Ellerman wrote:
>On Fri, 2015-05-01 at 09:22 +1000, Gavin Shan wrote:
>> Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
>> devices in early stage, which is reasonable to pSeries platform.
>> However, it's wrong for PowerNV platform because the PE# isn't
>> determined until the resources (IO and MMIO) are assigned to
>> PE in hotplug case. So we have to delay probing EEH devices
>> for PowerNV platform until the PE# is assigned.
>> 
>> Fixes: 1c509148b ("powerpc/eeh: Do probe on pci_dn")
>
>I don't have that SHA.
>
>I've have a commit with the same subject which is ff57b454ddb9.
>
>Is that the same thing?
>

Yes, they're same thing.

>I also have 89a51df5ab1d, which Fixes that commit (ff57..).
>

There seems something wrong at local because "git show 1c509148b" leads
me to the patch as well. However, I believe ff57b454ddb9 is the correct
one. I'll send v2 to fix it up.

---

gwshan@gwshan:~/sandbox/linux$ git show 1c509148b
1 commit 1c509148bd6b5199dc1d97e146eda496f9f22a06
2 Author: Gavin Shan <gwshan@linux.vnet.ibm.com>
3 Date:   Tue Mar 17 10:49:45 2015 +1100
4 
5     powerpc/eeh: Do probe on pci_dn

gwshan@gwshan:~/sandbox/linux$ git show ff57b454ddb9
      1 commit ff57b454ddb938d98d48d8df356357000fedc88c
      2 Author: Gavin Shan <gwshan@linux.vnet.ibm.com>
      3 Date:   Tue Mar 17 16:15:06 2015 +1100
      4 
      5     powerpc/eeh: Do probe on pci_dn

Thanks,
Gavin

>cheers
>
>
Michael Ellerman May 1, 2015, 3:51 a.m. UTC | #3
On Fri, 2015-05-01 at 11:28 +1000, Gavin Shan wrote:
> On Fri, May 01, 2015 at 09:50:57AM +1000, Michael Ellerman wrote:
> >On Fri, 2015-05-01 at 09:22 +1000, Gavin Shan wrote:
> >> Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
> >> devices in early stage, which is reasonable to pSeries platform.
> >> However, it's wrong for PowerNV platform because the PE# isn't
> >> determined until the resources (IO and MMIO) are assigned to
> >> PE in hotplug case. So we have to delay probing EEH devices
> >> for PowerNV platform until the PE# is assigned.
> >> 
> >> Fixes: 1c509148b ("powerpc/eeh: Do probe on pci_dn")
> >
> >I don't have that SHA.
> >
> >I've have a commit with the same subject which is ff57b454ddb9.
> >
> >Is that the same thing?
> 
> Yes, they're same thing.

OK.

> There seems something wrong at local because "git show 1c509148b" leads
> me to the patch as well. However, I believe ff57b454ddb9 is the correct
> one. I'll send v2 to fix it up.

You just have it in your tree from when you were developing it I guess?

If you do:

  $ git show --format=fuller 1c509148b

It should show you the committer etc.

cheers
Gavin Shan May 1, 2015, 4:05 a.m. UTC | #4
On Fri, May 01, 2015 at 01:51:37PM +1000, Michael Ellerman wrote:
>On Fri, 2015-05-01 at 11:28 +1000, Gavin Shan wrote:
>> On Fri, May 01, 2015 at 09:50:57AM +1000, Michael Ellerman wrote:
>> >On Fri, 2015-05-01 at 09:22 +1000, Gavin Shan wrote:
>> >> Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
>> >> devices in early stage, which is reasonable to pSeries platform.
>> >> However, it's wrong for PowerNV platform because the PE# isn't
>> >> determined until the resources (IO and MMIO) are assigned to
>> >> PE in hotplug case. So we have to delay probing EEH devices
>> >> for PowerNV platform until the PE# is assigned.
>> >> 
>> >> Fixes: 1c509148b ("powerpc/eeh: Do probe on pci_dn")
>> >
>> >I don't have that SHA.
>> >
>> >I've have a commit with the same subject which is ff57b454ddb9.
>> >
>> >Is that the same thing?
>> 
>> Yes, they're same thing.
>
>OK.
>
>> There seems something wrong at local because "git show 1c509148b" leads
>> me to the patch as well. However, I believe ff57b454ddb9 is the correct
>> one. I'll send v2 to fix it up.
>
>You just have it in your tree from when you were developing it I guess?
>
>If you do:
>
>  $ git show --format=fuller 1c509148b
>
>It should show you the committer etc.
>

Yeah, it's true. The committer is myself for commit 1c509148b.

Thanks,
Gavin
diff mbox

Patch

diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
index b798c86..04b5d94 100644
--- a/arch/powerpc/kernel/eeh.c
+++ b/arch/powerpc/kernel/eeh.c
@@ -1061,6 +1061,9 @@  void eeh_add_device_early(struct pci_dn *pdn)
 	if (!edev || !eeh_enabled())
 		return;
 
+	if (!eeh_has_flag(EEH_PROBE_MODE_DEVTREE))
+		return;
+
 	/* USB Bus children of PCI devices will not have BUID's */
 	phb = edev->phb;
 	if (NULL == phb ||
@@ -1115,6 +1118,9 @@  void eeh_add_device_late(struct pci_dev *dev)
 		return;
 	}
 
+	if (eeh_has_flag(EEH_PROBE_MODE_DEV))
+		eeh_ops->probe(pdn, NULL);
+
 	/*
 	 * The EEH cache might not be removed correctly because of
 	 * unbalanced kref to the device during unplug time, which