powerpc/powernv: Bail upon invalid master PE
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Wed, 12 Nov 2014 02:36:10 +0000 (13:36 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 14 Nov 2014 06:24:25 +0000 (17:24 +1100)
When freezing compound PEs in pnv_ioda_freeze_pe(), we should bail
upon illegal master PE. We needn't freeze slave PE because it should
have been put into frozen state by hardware.

Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/pci-ioda.c

index 762ca14228ea45ba55a3472c405b17b7939649da..d0350351569228d865b82d896e3e851ceac9c1ef 100644 (file)
@@ -373,7 +373,9 @@ static void pnv_ioda_freeze_pe(struct pnv_phb *phb, int pe_no)
        /* Fetch master PE */
        if (pe->flags & PNV_IODA_PE_SLAVE) {
                pe = pe->master;
-               WARN_ON(!pe || !(pe->flags & PNV_IODA_PE_MASTER));
+               if (WARN_ON(!pe || !(pe->flags & PNV_IODA_PE_MASTER)))
+                       return;
+
                pe_no = pe->pe_number;
        }