OSDN Git Service

powerpc/pseries: Enable RAS hotplug events later
authorSam Bobroff <sam.bobroff@au1.ibm.com>
Mon, 12 Feb 2018 00:19:29 +0000 (11:19 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 13 Feb 2018 11:37:46 +0000 (22:37 +1100)
commitc9dccf1d074a67d36c510845f663980d69e3409b
tree9ecce5e6372c85b275f35d77c296a4f668c5774e
parent4dd5f8a99e791a8c6500e3592f3ce81ae7edcde1
powerpc/pseries: Enable RAS hotplug events later

Currently if the kernel receives a memory hot-unplug event early
enough, it may get stuck in an infinite loop in
dissolve_free_huge_pages(). This appears as a stall just after:

  pseries-hotplug-mem: Attempting to hot-remove XX LMB(s) at YYYYYYYY

It appears to be caused by "minimum_order" being uninitialized, due to
init_ras_IRQ() executing before hugetlb_init().

To correct this, extract the part of init_ras_IRQ() that enables
hotplug event processing and place it in the machine_late_initcall
phase, which is guaranteed to be after hugetlb_init() is called.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Acked-by: Balbir Singh <bsingharora@gmail.com>
[mpe: Reorder the functions to make the diff readable]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/pseries/ras.c