powerpc/eeh: Create PHB PEs after EEH is initialized
Otherwise we end up not yet having computed the right diag data size
on powernv where EEH initialization is delayed, thus causing memory
corruption later on when calling OPAL.
Fixes: 5cb1f8fddd
("powerpc/powernv/pci: Dynamically allocate PHB diag data")
Cc: stable@vger.kernel.org # v4.13+
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Russell Currey <ruscur@russell.cc>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
这个提交包含在:

提交者
Michael Ellerman

父节点
8afafa6fba
当前提交
3e77adeea3
@@ -1019,6 +1019,10 @@ int eeh_init(void)
|
||||
} else if ((ret = eeh_ops->init()))
|
||||
return ret;
|
||||
|
||||
/* Initialize PHB PEs */
|
||||
list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
|
||||
eeh_dev_phb_init_dynamic(hose);
|
||||
|
||||
/* Initialize EEH event */
|
||||
ret = eeh_event_init();
|
||||
if (ret)
|
||||
|
@@ -78,21 +78,3 @@ void eeh_dev_phb_init_dynamic(struct pci_controller *phb)
|
||||
/* EEH PE for PHB */
|
||||
eeh_phb_pe_create(phb);
|
||||
}
|
||||
|
||||
/**
|
||||
* eeh_dev_phb_init - Create EEH devices for devices included in existing PHBs
|
||||
*
|
||||
* Scan all the existing PHBs and create EEH devices for their OF
|
||||
* nodes and their children OF nodes
|
||||
*/
|
||||
static int __init eeh_dev_phb_init(void)
|
||||
{
|
||||
struct pci_controller *phb, *tmp;
|
||||
|
||||
list_for_each_entry_safe(phb, tmp, &hose_list, list_node)
|
||||
eeh_dev_phb_init_dynamic(phb);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
core_initcall(eeh_dev_phb_init);
|
||||
|
在新工单中引用
屏蔽一个用户