From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Wei Yang <weiyang@linux.vnet.ibm.com>,
gwshan@linux.vnet.ibm.com, bhelgaas@google.com,
mpe@ellerman.id.au
Cc: linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH V10 06/12] powerpc/powernv: EEH device for VF
Date: Fri, 30 Oct 2015 14:33:49 +1100 [thread overview]
Message-ID: <5632E51D.30805@ozlabs.ru> (raw)
In-Reply-To: <1445829362-2738-7-git-send-email-weiyang@linux.vnet.ibm.com>
On 10/26/2015 02:15 PM, Wei Yang wrote:
> VFs and their corresponding pci_dn instances are created and released
> dynamically as their PF's SRIOV capability is enabled and disabled.
> The patch creates and releases EEH devices for VFs when creating and
> releasing their pci_dn instances, which means EEH devices and pci_dn
> instances have same life cycle. Also, VF's EEH device is identified
> by (struct eeh_dev::physfn).
The add_dev_pci_data() helper (the one you hack) does not create pci_dn
instances. The add_one_dev_pci_data() helper does.
>
> [gwshan: changelog and removed CONFIG_PCI_IOV]
> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
> Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/eeh.h | 1 +
> arch/powerpc/kernel/pci_dn.c | 12 ++++++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h
> index c5eb86f..6c383ad 100644
> --- a/arch/powerpc/include/asm/eeh.h
> +++ b/arch/powerpc/include/asm/eeh.h
> @@ -140,6 +140,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/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
> index f771130..f0ddde7 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,9 @@ 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);
In theory, pdn_to_eeh_dev() can return NULL. In this patch, it is not clear
if pdn->edev gets initialized before or after add_dev_pci_data().
> + edev->physfn = pdev;
> }
> #endif /* CONFIG_PCI_IOV */
>
> @@ -254,10 +259,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);
>
>
--
Alexey
next prev parent reply other threads:[~2015-10-30 3:33 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-26 3:15 [PATCH V10 00/12] VF EEH on Power8 Wei Yang
2015-10-26 3:15 ` [PATCH V10 01/12] PCI/IOV: Rename and export virtfn_add/virtfn_remove Wei Yang
2015-10-27 1:31 ` Andrew Donnellan
2015-10-27 23:06 ` Bjorn Helgaas
2015-10-28 1:21 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 02/12] PCI: Add pcibios_bus_add_device() weak function Wei Yang
2015-10-27 5:07 ` Andrew Donnellan
2015-10-26 3:15 ` [PATCH V10 03/12] powerpc/pci: Cache VF index in pci_dn Wei Yang
2015-10-27 5:01 ` Andrew Donnellan
2015-10-27 22:04 ` Daniel Axtens
2015-10-28 1:45 ` Wei Yang
2015-10-30 2:05 ` Alexey Kardashevskiy
2015-10-30 2:48 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 04/12] powerpc/pci: Remove VFs prior to PF Wei Yang
2015-10-30 3:04 ` Alexey Kardashevskiy
2015-10-30 6:31 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 05/12] powerpc/eeh: Cache only BARs, not windows or IOV BARs Wei Yang
2015-10-29 3:29 ` Daniel Axtens
2015-10-29 8:57 ` Wei Yang
2015-10-30 3:22 ` Alexey Kardashevskiy
2015-10-30 6:37 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 06/12] powerpc/powernv: EEH device for VF Wei Yang
2015-10-30 3:33 ` Alexey Kardashevskiy [this message]
2015-10-30 6:52 ` Wei Yang
2015-10-30 7:36 ` Alexey Kardashevskiy
2015-10-30 7:58 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 07/12] powerpc/eeh: Create PE for VFs Wei Yang
2015-10-30 3:46 ` Alexey Kardashevskiy
2015-10-30 6:59 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 08/12] powerpc/powernv: Support EEH reset for VF PE Wei Yang
2015-10-30 4:11 ` Alexey Kardashevskiy
2015-10-30 7:18 ` Wei Yang
2015-10-30 8:05 ` Alexey Kardashevskiy
2015-11-02 22:45 ` Wei Yang
2015-10-26 3:15 ` [PATCH V10 09/12] powerpc/powernv: Support PCI config restore for VFs Wei Yang
2015-10-30 4:56 ` Alexey Kardashevskiy
2015-10-30 8:17 ` Wei Yang
2015-10-26 3:16 ` [PATCH V10 10/12] powerpc/eeh: Support error recovery for VF PE Wei Yang
2015-10-30 5:20 ` Alexey Kardashevskiy
2015-11-01 1:53 ` Wei Yang
2015-11-01 23:40 ` Alexey Kardashevskiy
2015-11-02 9:39 ` Wei Yang
2015-10-26 3:16 ` [PATCH V10 11/12] powerpc/eeh: Don't block PCI config on resetting " Wei Yang
2015-10-30 5:42 ` Alexey Kardashevskiy
2015-10-30 7:19 ` Wei Yang
2015-10-26 3:16 ` [PATCH V10 12/12] powerpc/eeh: Handle hot removed VF when PF is EEH aware Wei Yang
2015-10-30 5:35 ` Alexey Kardashevskiy
2015-10-30 7:29 ` Wei Yang
2015-10-27 23:11 ` [PATCH V10 00/12] VF EEH on Power8 Bjorn Helgaas
2015-10-28 1:50 ` 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=5632E51D.30805@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=bhelgaas@google.com \
--cc=gwshan@linux.vnet.ibm.com \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=weiyang@linux.vnet.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).