powerpc/powernv: Allow to reserve one PE for multiple times
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Fri, 19 Jun 2015 02:26:16 +0000 (12:26 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 13 Jul 2015 06:12:00 +0000 (16:12 +1000)
The PE numbers are reserved according to root port's M64 window,
which is aligned to M64 segment finely. So one PE shouldn't be
reserved for multiple times. We will reserve PE numbers according
to the M64 BARs of PCI device in subsequent patches, which aren't
aligned to M64 segment size finely. It means one particular PE
could be reserved for multiple times.

The patch allows one PE to be reserved for multiple times and we
print the warning message at debugging level.

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 2c286b57e520ef4aa20de1d15de9e3ccb06c7645..4775f9544f5cca5bc27d7dec3de82145275d96f3 100644 (file)
@@ -140,11 +140,9 @@ static void pnv_ioda_reserve_pe(struct pnv_phb *phb, int pe_no)
                return;
        }
 
-       if (test_and_set_bit(pe_no, phb->ioda.pe_alloc)) {
-               pr_warn("%s: PE %d was assigned on PHB#%x\n",
-                       __func__, pe_no, phb->hose->global_number);
-               return;
-       }
+       if (test_and_set_bit(pe_no, phb->ioda.pe_alloc))
+               pr_debug("%s: PE %d was reserved on PHB#%x\n",
+                        __func__, pe_no, phb->hose->global_number);
 
        phb->ioda.pe_array[pe_no].phb = phb;
        phb->ioda.pe_array[pe_no].pe_number = pe_no;