From: Gavin Shan <shangw@linux.vnet.ibm.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org, Gavin Shan <shangw@linux.vnet.ibm.com>
Subject: Re: [PATCH 3/5] powerpc/powernv: Cleanup on PNV_EEH_STATE_ENABLED
Date: Sun, 23 Feb 2014 10:12:23 +0800 [thread overview]
Message-ID: <20140223021223.GA10442@shangw.(null)> (raw)
In-Reply-To: <1393012609.6771.90.camel@pasglop>
On Sat, Feb 22, 2014 at 06:56:49AM +1100, Benjamin Herrenschmidt wrote:
>On Fri, 2014-02-21 at 19:53 +0800, Gavin Shan wrote:
>> The flag PNV_EEH_STATE_ENABLED is put into pnv_phb::eeh_state, which
>> is protected by CONFIG_EEH. We needn't that. Instead, we can have
>> pnv_phb::flags and maintain all flags there, which is the purpose
>> of the patch.
>
>Can you explain a bit more why we want to create a new flag set
>that didn't exist before ? This adds confusion so we need a very
>good reason... Do we need to know about the enable state of EEH
>even when CNFIG_EEH is not set ?
>
The commit log was a bit confusing. We didn't create a new flag
here and I just renamed PNV_EEH_STATE_ENABLED to PNV_PHB_FLAG_EEH.
I'll say more in the commit log about it in next revision.
The flag is needed even we have CONFIG_EEH set because we need
switch to EEH, instead of detecting frozen PE and clearing it
in PCI config accessors after EEH is initialized and loaded :-)
Thanks,
Gavin
>> Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
>> ---
>> arch/powerpc/platforms/powernv/eeh-ioda.c | 2 +-
>> arch/powerpc/platforms/powernv/pci.c | 8 ++------
>> arch/powerpc/platforms/powernv/pci.h | 7 +++----
>> 3 files changed, 6 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/powerpc/platforms/powernv/eeh-ioda.c b/arch/powerpc/platforms/powernv/eeh-ioda.c
>> index 0d1d424..04b4710 100644
>> --- a/arch/powerpc/platforms/powernv/eeh-ioda.c
>> +++ b/arch/powerpc/platforms/powernv/eeh-ioda.c
>> @@ -153,7 +153,7 @@ static int ioda_eeh_post_init(struct pci_controller *hose)
>> }
>> #endif
>>
>> - phb->eeh_state |= PNV_EEH_STATE_ENABLED;
>> + phb->flags |= PNV_PHB_FLAG_EEH;
>>
>> return 0;
>> }
>> diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
>> index b555ebc..437c37d 100644
>> --- a/arch/powerpc/platforms/powernv/pci.c
>> +++ b/arch/powerpc/platforms/powernv/pci.c
>> @@ -396,7 +396,7 @@ int pnv_pci_cfg_read(struct device_node *dn,
>> if (phb_pe && (phb_pe->state & EEH_PE_ISOLATED))
>> return PCIBIOS_SUCCESSFUL;
>>
>> - if (phb->eeh_state & PNV_EEH_STATE_ENABLED) {
>> + if (phb->flags & PNV_PHB_FLAG_EEH) {
>> if (*val == EEH_IO_ERROR_VALUE(size) &&
>> eeh_dev_check_failure(of_node_to_eeh_dev(dn)))
>> return PCIBIOS_DEVICE_NOT_FOUND;
>> @@ -434,12 +434,8 @@ int pnv_pci_cfg_write(struct device_node *dn,
>> }
>>
>> /* Check if the PHB got frozen due to an error (no response) */
>> -#ifdef CONFIG_EEH
>> - if (!(phb->eeh_state & PNV_EEH_STATE_ENABLED))
>> + if (!(phb->flags & PNV_PHB_FLAG_EEH))
>> pnv_pci_config_check_eeh(phb, dn);
>> -#else
>> - pnv_pci_config_check_eeh(phb, dn);
>> -#endif
>>
>> return PCIBIOS_SUCCESSFUL;
>> }
>> diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h
>> index dbeba3d..adeb3c4 100644
>> --- a/arch/powerpc/platforms/powernv/pci.h
>> +++ b/arch/powerpc/platforms/powernv/pci.h
>> @@ -79,24 +79,23 @@ struct pnv_eeh_ops {
>> int (*configure_bridge)(struct eeh_pe *pe);
>> int (*next_error)(struct eeh_pe **pe);
>> };
>> -
>> -#define PNV_EEH_STATE_ENABLED (1 << 0) /* EEH enabled */
>> -
>> #endif /* CONFIG_EEH */
>>
>> +#define PNV_PHB_FLAG_EEH (1 << 0)
>> +
>> struct pnv_phb {
>> struct pci_controller *hose;
>> enum pnv_phb_type type;
>> enum pnv_phb_model model;
>> u64 hub_id;
>> u64 opal_id;
>> + int flags;
>> void __iomem *regs;
>> int initialized;
>> spinlock_t lock;
>>
>> #ifdef CONFIG_EEH
>> struct pnv_eeh_ops *eeh_ops;
>> - int eeh_state;
>> #endif
>>
>> #ifdef CONFIG_DEBUG_FS
>
>
next prev parent reply other threads:[~2014-02-23 2:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-21 11:53 [PATCH 1/5] powerpc/eeh: Remove EEH_PE_PHB_DEAD Gavin Shan
2014-02-21 11:53 ` [PATCH 2/5] powerpc/powernv: Remove PNV_EEH_STATE_REMOVED Gavin Shan
2014-02-21 11:53 ` [PATCH 3/5] powerpc/powernv: Cleanup on PNV_EEH_STATE_ENABLED Gavin Shan
2014-02-21 19:56 ` Benjamin Herrenschmidt
2014-02-23 2:12 ` Gavin Shan [this message]
2014-02-21 11:53 ` [PATCH 4/5] powerpc/powernv: Cache PHB diag-data Gavin Shan
2014-02-21 20:01 ` Benjamin Herrenschmidt
2014-02-23 4:52 ` Gavin Shan
2014-02-21 11:53 ` [PATCH 5/5] powerpc/powernv: Make PHB diag-data output short Gavin Shan
2014-02-21 20:05 ` Benjamin Herrenschmidt
2014-02-23 4:55 ` Gavin Shan
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='20140223021223.GA10442@shangw.(null)' \
--to=shangw@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@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.