mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
powerpc/powernv: Fix corrupted PE allocation bitmap on releasing PE
In pnv_ioda_free_pe(), the PE object (including the associated PE
number) is cleared before resetting the corresponding bit in the
PE allocation bitmap. It means PE#0 is always released to the bitmap
wrongly.
This fixes above issue by caching the PE number before the PE object
is cleared.
Fixes: 1e9167726c ("powerpc/powernv: Use PE instead of number during setup and release"
Cc: [email protected] # v4.7+
Signed-off-by: Gavin Shan <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
This commit is contained in:
1 parent
b314427a52
commit
caa58f8088
1 file changed
+2
-1
@@ -162,11 +162,12 @@ static struct pnv_ioda_pe *pnv_ioda_alloc_pe(struct pnv_phb *phb)
|
||||
static void pnv_ioda_free_pe(struct pnv_ioda_pe *pe)
|
||||
{
|
||||
struct pnv_phb *phb = pe->phb;
|
||||
unsigned int pe_num = pe->pe_number;
|
||||
|
||||
WARN_ON(pe->pdev);
|
||||
|
||||
memset(pe, 0, sizeof(struct pnv_ioda_pe));
|
||||
clear_bit(pe->pe_number, phb->ioda.pe_alloc);
|
||||
clear_bit(pe_num, phb->ioda.pe_alloc);
|
||||
}
|
||||
|
||||
/* The default M64 BAR is shared by all PEs */
|
||||
|
||||
Reference in new issue
Block a user