From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: Wei Yang <weiyang@linux.vnet.ibm.com>,
bhelgaas@google.com, linuxppc-dev@lists.ozlabs.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH V4 05/11] powerpc/powernv: create/release eeh_dev for VF
Date: Fri, 15 May 2015 16:53:30 +0800 [thread overview]
Message-ID: <20150515085330.GA26681@richard> (raw)
In-Reply-To: <20150515061916.GA29805@gwshan>
On Fri, May 15, 2015 at 04:19:16PM +1000, Gavin Shan wrote:
>On Fri, May 15, 2015 at 01:46:20PM +0800, Wei Yang wrote:
>>EEH on powerpc platform needs eeh_dev structure to track the PCI device
>>status. Since VFs are created/released dynamically, VF's eeh_dev is also
>>dynamically created/released in system.
>>
>>This patch creates/removes eeh_dev when pci_dn is created/removed for VFs,
>>and marks it with EEH_DEV_VF type.
>>
>>Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
>
>Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>
>After removing the unnecessary line of code as below.
>
>>---
>> arch/powerpc/include/asm/eeh.h | 1 +
>> arch/powerpc/kernel/eeh.c | 4 ++++
>> arch/powerpc/kernel/pci_dn.c | 11 +++++++++++
>> 3 files changed, 16 insertions(+)
>>
>>diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h
>>index a52db28..1b3614d 100644
>>--- a/arch/powerpc/include/asm/eeh.h
>>+++ b/arch/powerpc/include/asm/eeh.h
>>@@ -138,6 +138,7 @@ struct eeh_dev {
>> struct pci_controller *phb; /* Associated PHB */
>> struct pci_dn *pdn; /* Associated PCI device node */
>> struct pci_dev *pdev; /* Associated PCI device */
>>+ struct pci_dev *physfn; /* Associated PF PORT */
>> struct pci_bus *bus; /* PCI bus for partial hotplug */
>> };
>>
>>diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
>>index 6c7ce1b..221e280 100644
>>--- a/arch/powerpc/kernel/eeh.c
>>+++ b/arch/powerpc/kernel/eeh.c
>>@@ -1135,6 +1135,10 @@ void eeh_add_device_late(struct pci_dev *dev)
>> }
>>
>> edev->pdev = dev;
>>+#ifdef CONFIG_PCI_IOV
>>+ if (dev->is_virtfn)
>>+ edev->physfn = dev->physfn;
>>+#endif
>> dev->dev.archdata.edev = edev;
>>
>> if (eeh_has_flag(EEH_PROBE_MODE_DEV))
>>diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
>>index f771130..94806a4 100644
>>--- a/arch/powerpc/kernel/pci_dn.c
>>+++ b/arch/powerpc/kernel/pci_dn.c
>>@@ -180,7 +180,9 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent,
>> struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
>> {
>> #ifdef CONFIG_PCI_IOV
>>+ struct pci_controller *hose = pci_bus_to_host(pdev->bus);
>> struct pci_dn *parent, *pdn;
>>+ struct eeh_dev *edev;
>> int i;
>>
>> /* Only support IOV for now */
>>@@ -206,6 +208,8 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
>> __func__, i);
>> return NULL;
>> }
>>+ eeh_dev_init(pdn, hose);
>>+ edev = pdn_to_eeh_dev(pdn);
>
>Nothing is done to edev after getting it. So I think the last line of changes
>here isn't needed. Could you check and remove it if I'm correct?
You are right, removed.
>
>Thanks,
>Gavin
>
>> }
>> #endif /* CONFIG_PCI_IOV */
>>
>>@@ -254,10 +258,17 @@ void remove_dev_pci_data(struct pci_dev *pdev)
>> for (i = 0; i < pci_sriov_get_totalvfs(pdev); i++) {
>> list_for_each_entry_safe(pdn, tmp,
>> &parent->child_list, list) {
>>+ struct eeh_dev *edev;
>> if (pdn->busno != pci_iov_virtfn_bus(pdev, i) ||
>> pdn->devfn != pci_iov_virtfn_devfn(pdev, i))
>> continue;
>>
>>+ edev = pdn_to_eeh_dev(pdn);
>>+ if (edev) {
>>+ pdn->edev = NULL;
>>+ kfree(edev);
>>+ }
>>+
>> if (!list_empty(&pdn->list))
>> list_del(&pdn->list);
>>
>>--
>>1.7.9.5
>>
--
Richard Yang
Help you, Help me
WARNING: multiple messages have this Message-ID (diff)
From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: bhelgaas@google.com, linux-pci@vger.kernel.org,
Wei Yang <weiyang@linux.vnet.ibm.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH V4 05/11] powerpc/powernv: create/release eeh_dev for VF
Date: Fri, 15 May 2015 16:53:30 +0800 [thread overview]
Message-ID: <20150515085330.GA26681@richard> (raw)
In-Reply-To: <20150515061916.GA29805@gwshan>
On Fri, May 15, 2015 at 04:19:16PM +1000, Gavin Shan wrote:
>On Fri, May 15, 2015 at 01:46:20PM +0800, Wei Yang wrote:
>>EEH on powerpc platform needs eeh_dev structure to track the PCI device
>>status. Since VFs are created/released dynamically, VF's eeh_dev is also
>>dynamically created/released in system.
>>
>>This patch creates/removes eeh_dev when pci_dn is created/removed for VFs,
>>and marks it with EEH_DEV_VF type.
>>
>>Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
>
>Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>
>After removing the unnecessary line of code as below.
>
>>---
>> arch/powerpc/include/asm/eeh.h | 1 +
>> arch/powerpc/kernel/eeh.c | 4 ++++
>> arch/powerpc/kernel/pci_dn.c | 11 +++++++++++
>> 3 files changed, 16 insertions(+)
>>
>>diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h
>>index a52db28..1b3614d 100644
>>--- a/arch/powerpc/include/asm/eeh.h
>>+++ b/arch/powerpc/include/asm/eeh.h
>>@@ -138,6 +138,7 @@ struct eeh_dev {
>> struct pci_controller *phb; /* Associated PHB */
>> struct pci_dn *pdn; /* Associated PCI device node */
>> struct pci_dev *pdev; /* Associated PCI device */
>>+ struct pci_dev *physfn; /* Associated PF PORT */
>> struct pci_bus *bus; /* PCI bus for partial hotplug */
>> };
>>
>>diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
>>index 6c7ce1b..221e280 100644
>>--- a/arch/powerpc/kernel/eeh.c
>>+++ b/arch/powerpc/kernel/eeh.c
>>@@ -1135,6 +1135,10 @@ void eeh_add_device_late(struct pci_dev *dev)
>> }
>>
>> edev->pdev = dev;
>>+#ifdef CONFIG_PCI_IOV
>>+ if (dev->is_virtfn)
>>+ edev->physfn = dev->physfn;
>>+#endif
>> dev->dev.archdata.edev = edev;
>>
>> if (eeh_has_flag(EEH_PROBE_MODE_DEV))
>>diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
>>index f771130..94806a4 100644
>>--- a/arch/powerpc/kernel/pci_dn.c
>>+++ b/arch/powerpc/kernel/pci_dn.c
>>@@ -180,7 +180,9 @@ static struct pci_dn *add_one_dev_pci_data(struct pci_dn *parent,
>> struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
>> {
>> #ifdef CONFIG_PCI_IOV
>>+ struct pci_controller *hose = pci_bus_to_host(pdev->bus);
>> struct pci_dn *parent, *pdn;
>>+ struct eeh_dev *edev;
>> int i;
>>
>> /* Only support IOV for now */
>>@@ -206,6 +208,8 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
>> __func__, i);
>> return NULL;
>> }
>>+ eeh_dev_init(pdn, hose);
>>+ edev = pdn_to_eeh_dev(pdn);
>
>Nothing is done to edev after getting it. So I think the last line of changes
>here isn't needed. Could you check and remove it if I'm correct?
You are right, removed.
>
>Thanks,
>Gavin
>
>> }
>> #endif /* CONFIG_PCI_IOV */
>>
>>@@ -254,10 +258,17 @@ void remove_dev_pci_data(struct pci_dev *pdev)
>> for (i = 0; i < pci_sriov_get_totalvfs(pdev); i++) {
>> list_for_each_entry_safe(pdn, tmp,
>> &parent->child_list, list) {
>>+ struct eeh_dev *edev;
>> if (pdn->busno != pci_iov_virtfn_bus(pdev, i) ||
>> pdn->devfn != pci_iov_virtfn_devfn(pdev, i))
>> continue;
>>
>>+ edev = pdn_to_eeh_dev(pdn);
>>+ if (edev) {
>>+ pdn->edev = NULL;
>>+ kfree(edev);
>>+ }
>>+
>> if (!list_empty(&pdn->list))
>> list_del(&pdn->list);
>>
>>--
>>1.7.9.5
>>
--
Richard Yang
Help you, Help me
next prev parent reply other threads:[~2015-05-15 8:54 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-15 5:46 [PATCH V4 00/11] VF EEH on Power8 Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 5:46 ` [PATCH V4 01/11] pci/iov: rename and export virtfn_add/virtfn_remove Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 5:56 ` Gavin Shan
2015-05-15 5:56 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 02/11] powerpc/pci_dn: cache vf_index in pci_dn Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 5:57 ` Gavin Shan
2015-05-15 5:57 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 03/11] powerpc/pci: remove PCI devices in reverse order Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 5:46 ` [PATCH V4 04/11] powerpc/eeh: cache address range just for normal device Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 5:46 ` [PATCH V4 05/11] powerpc/powernv: create/release eeh_dev for VF Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 6:19 ` Gavin Shan
2015-05-15 6:19 ` Gavin Shan
2015-05-15 8:53 ` Wei Yang [this message]
2015-05-15 8:53 ` Wei Yang
2015-05-15 5:46 ` [PATCH V4 06/11] powerpc/eeh: create EEH_PE_VF for VF PE Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 6:26 ` Gavin Shan
2015-05-15 6:26 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 07/11] powerpc/powernv: Support EEH reset for VFs Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 7:12 ` Gavin Shan
2015-05-15 7:12 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 08/11] powerpc/powernv: Support PCI config restore " Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 7:27 ` Gavin Shan
2015-05-15 7:27 ` Gavin Shan
2015-05-15 9:18 ` Wei Yang
2015-05-15 9:18 ` Wei Yang
2015-05-15 5:46 ` [PATCH V4 09/11] powerpc/eeh: handle VF PE properly Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 7:31 ` Gavin Shan
2015-05-15 7:31 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 10/11] powerpc/powernv: use "compound" as the child's list_head for compound PE Wei Yang
2015-05-15 5:46 ` Wei Yang
2015-05-15 7:37 ` Gavin Shan
2015-05-15 7:37 ` Gavin Shan
2015-05-15 5:46 ` [PATCH V4 11/11] powerpc/powernv: compound PE for VFs Wei Yang
2015-05-15 5:46 ` Wei Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150515085330.GA26681@richard \
--to=weiyang@linux.vnet.ibm.com \
--cc=bhelgaas@google.com \
--cc=gwshan@linux.vnet.ibm.com \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.