aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/hotplug-memory.c
diff options
context:
space:
mode:
authorNathan Lynch <nathanl@linux.ibm.com>2019-06-07 00:04:07 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2019-06-14 15:36:33 +1000
commit0aa82c482ab2ece530a6f44897b63b274bb43c8e (patch)
treeab2a3c9ec73a676ff0d3a2bbdbff38bc0727ea68 /arch/powerpc/platforms/pseries/hotplug-memory.c
parentpowerpc/pseries/hvconsole: Fix stack overread via udbg (diff)
downloadlinux-dev-0aa82c482ab2ece530a6f44897b63b274bb43c8e.tar.xz
linux-dev-0aa82c482ab2ece530a6f44897b63b274bb43c8e.zip
powerpc/pseries: Fix oops in hotplug memory notifier
During post-migration device tree updates, we can oops in pseries_update_drconf_memory() if the source device tree has an ibm,dynamic-memory-v2 property and the destination has a ibm,dynamic_memory (v1) property. The notifier processes an "update" for the ibm,dynamic-memory property but it's really an add in this scenario. So make sure the old property object is there before dereferencing it. Fixes: 2b31e3aec1db ("powerpc/drmem: Add support for ibm, dynamic-memory-v2 property") Cc: stable@vger.kernel.org # v4.16+ Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/platforms/pseries/hotplug-memory.c')
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 47087832f8b2..e6bd172bcf30 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -980,6 +980,9 @@ static int pseries_update_drconf_memory(struct of_reconfig_data *pr)
if (!memblock_size)
return -EINVAL;
+ if (!pr->old_prop)
+ return 0;
+
p = (__be32 *) pr->old_prop->value;
if (!p)
return -EINVAL;