From: Gavin Shan <shangw@linux.vnet.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2] powernv: eeh: add buffer for P7IOC hub error data
Date: Mon, 23 Dec 2013 09:33:33 +0800 [thread overview]
Message-ID: <20131223013333.GA7199@shangw.(null)> (raw)
In-Reply-To: <20131220190601.GC5480@oc3347516403.ibm.com>
On Fri, Dec 20, 2013 at 01:06:01PM -0600, Brian W Hart wrote:
>V2: Replace driver-global 'hub_diag' with a per-PHB hub diag structure.
>
>Prevent ioda_eeh_hub_diag() from clobbering itself when called by supplying
>a per-PHB buffer for P7IOC hub diagnostic data. Take care to inform OPAL of
>the correct size for the buffer.
>
>Signed-off-by: Brian W Hart <hartb@linux.vnet.ibm.com>
Acked-by: Gavin Shan <shangw@linux.vnet.ibm.com>
We also need backport it to stable kernel 3.11+
>---
> arch/powerpc/platforms/powernv/eeh-ioda.c | 15 ++-------------
> arch/powerpc/platforms/powernv/pci.h | 4 +++-
> 2 files changed, 5 insertions(+), 14 deletions(-)
>
>diff --git a/arch/powerpc/platforms/powernv/eeh-ioda.c b/arch/powerpc/platforms/powernv/eeh-ioda.c
>index 8184ef5..4790275 100644
>--- a/arch/powerpc/platforms/powernv/eeh-ioda.c
>+++ b/arch/powerpc/platforms/powernv/eeh-ioda.c
>@@ -36,7 +36,6 @@
> #include "powernv.h"
> #include "pci.h"
>
>-static char *hub_diag = NULL;
> static int ioda_eeh_nb_init = 0;
>
> static int ioda_eeh_event(struct notifier_block *nb,
>@@ -140,15 +139,6 @@ static int ioda_eeh_post_init(struct pci_controller *hose)
> ioda_eeh_nb_init = 1;
> }
>
>- /* We needn't HUB diag-data on PHB3 */
>- if (phb->type == PNV_PHB_IODA1 && !hub_diag) {
>- hub_diag = (char *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
>- if (!hub_diag) {
>- pr_err("%s: Out of memory !\n", __func__);
>- return -ENOMEM;
>- }
>- }
>-
> #ifdef CONFIG_DEBUG_FS
> if (phb->dbgfs) {
> debugfs_create_file("err_injct_outbound", 0600,
>@@ -633,11 +623,10 @@ static void ioda_eeh_hub_diag_common(struct OpalIoP7IOCErrorData *data)
> static void ioda_eeh_hub_diag(struct pci_controller *hose)
> {
> struct pnv_phb *phb = hose->private_data;
>- struct OpalIoP7IOCErrorData *data;
>+ struct OpalIoP7IOCErrorData *data = &phb->diag.hub_diag;
> long rc;
>
>- data = (struct OpalIoP7IOCErrorData *)ioda_eeh_hub_diag;
>- rc = opal_pci_get_hub_diag_data(phb->hub_id, data, PAGE_SIZE);
>+ rc = opal_pci_get_hub_diag_data(phb->hub_id, data, sizeof *data);
> if (rc != OPAL_SUCCESS) {
> pr_warning("%s: Failed to get HUB#%llx diag-data (%ld)\n",
> __func__, phb->hub_id, rc);
>diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h
>index 911c24e..1ed8d5f 100644
>--- a/arch/powerpc/platforms/powernv/pci.h
>+++ b/arch/powerpc/platforms/powernv/pci.h
>@@ -172,11 +172,13 @@ struct pnv_phb {
> } ioda;
> };
>
>- /* PHB status structure */
>+ /* PHB and hub status structure */
> union {
> unsigned char blob[PNV_PCI_DIAG_BUF_SIZE];
> struct OpalIoP7IOCPhbErrorData p7ioc;
>+ struct OpalIoP7IOCErrorData hub_diag;
> } diag;
>+
> };
>
> extern struct pci_ops pnv_pci_ops;
Thanks,
Gavin
prev parent reply other threads:[~2013-12-23 1:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-20 19:06 [PATCH v2] powernv: eeh: add buffer for P7IOC hub error data Brian W Hart
2013-12-23 1:33 ` Gavin Shan [this message]
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='20131223013333.GA7199@shangw.(null)' \
--to=shangw@linux.vnet.ibm.com \
--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.