[Skiboot] [PATCH v11 09/23] core/pci: Fix wrong reserved PE# in enumeration

Gavin Shan gwshan at linux.vnet.ibm.com
Wed Jun 8 20:32:34 AEST 2016

On Wed, Jun 08, 2016 at 02:58:05PM +1000, Stewart Smith wrote:
>Gavin Shan <gwshan at linux.vnet.ibm.com> writes:
>> When scanning to non-existing PCI device, EEH (frozen) error is
>> usually happening. We clear the unexpected frozen PE state after
>> it. The reserved PE number is assumed to be 0 wrongly. So the
>> frozen state on the reserved PE number isn't cleared properly.
>> This introduces struct phb_ops::get_info() to retrieve the reserved
>> PE number from platforms. Then the EEH frozen state checking and
>> clearing are applied to the reserved PE number.
>> Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
>> ---
>>  core/pci.c     | 15 ++++++++++++---
>>  hw/npu.c       |  1 +
>>  hw/p7ioc-phb.c | 15 +++++++++++++++
>>  hw/phb3.c      | 16 ++++++++++++++++
>>  include/pci.h  |  7 +++++++
>>  5 files changed, 51 insertions(+), 3 deletions(-)
>I'd prefer just a int64_t (or int46_t*) to the get_info() function
>unless there's a real set of other things we need to have a get_info
>method for. We can always add get_info() once we get a few - but in
>general, it looks a bit too ioctl() like for me.

Thanks for review, Stewart. Yeah, I was expecting the interface
is to be extended to return more PHB specific info in future.
For now, the reserved PE number is only info I need from this
interface. So it's fair enough to have below interface for now,
which will be reflected in next revision:

int64_t (*get_info)(void);


>Stewart Smith
>OPAL Architect, IBM.

More information about the Skiboot mailing list