]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
powerpc/pseries: Fix oops in hotplug memory notifier
authorNathan Lynch <nathanl@linux.ibm.com>
Fri, 7 Jun 2019 05:04:07 +0000 (00:04 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:13:06 +0000 (09:13 +0200)
commit 0aa82c482ab2ece530a6f44897b63b274bb43c8e upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/platforms/pseries/hotplug-memory.c

index 47087832f8b2ecd56defcd64d7c5a467bac5085d..e6bd172bcf3057247adbbb9dfbe9bc2ae5fb85f4 100644 (file)
@@ -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;