From 3e3defbf73e3603c5dc6f168c3de764c14b50e27 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Thu, 6 Dec 2018 10:50:13 +1100 Subject: npu2: Return sensible PCI error when not frozen The current kernel calls OPAL_PCI_EEH_FREEZE_STATUS with an uninitialized @pci_error_type parameter and then analyzes it even if the OPAL call returned OPAL_SUCCESS. This is results in unexpected EEH events and NPU freezes. This initializes @pci_error_type and @severity to known safe values. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Andrew Donnellan Signed-off-by: Stewart Smith --- hw/npu2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'hw/npu2.c') diff --git a/hw/npu2.c b/hw/npu2.c index bf5e7a3..d637a44 100644 --- a/hw/npu2.c +++ b/hw/npu2.c @@ -1181,8 +1181,8 @@ static struct pci_slot *npu2_slot_create(struct phb *phb) int64_t npu2_freeze_status(struct phb *phb __unused, uint64_t pe_number __unused, uint8_t *freeze_state, - uint16_t *pci_error_type __unused, - uint16_t *severity __unused, + uint16_t *pci_error_type, + uint16_t *severity, uint64_t *phb_status __unused) { /* @@ -1192,6 +1192,10 @@ int64_t npu2_freeze_status(struct phb *phb __unused, * it keeps the skiboot PCI enumeration going. */ *freeze_state = OPAL_EEH_STOPPED_NOT_FROZEN; + *pci_error_type = OPAL_EEH_NO_ERROR; + if (severity) + *severity = OPAL_EEH_SEV_NO_ERROR; + return OPAL_SUCCESS; } -- cgit v1.1