powerpc/mm/book3s64: Use 256M as the upper limit with coherent device memory attached
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Mon, 28 Aug 2023 07:46:58 +0000 (13:16 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 28 Aug 2023 12:40:58 +0000 (22:40 +1000)
Commit 4d15721177d5 ("powerpc/mm: Cleanup memory block size probing")
used 256MB as the memory block size when we have
ibm,coherent-device-memory device tree node present. Instead of
returning with 256MB memory block size, continue to check the rest of
the memory regions and make sure we can still map them using a 256MB
memory block size.

Fixes: 4d15721177d5 ("powerpc/mm: Cleanup memory block size probing")
Signed-off-by: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230828074658.59553-2-aneesh.kumar@linux.ibm.com
arch/powerpc/mm/init_64.c

index 9f76e109f96a7a0e8523d52909588d915ff7a024..70f8e9ce412e9368523ff34a7e14842be97d681f 100644 (file)
@@ -569,8 +569,12 @@ static int __init probe_memory_block_size(unsigned long node, const char *uname,
                 */
                compatible = of_get_flat_dt_prop(node, "compatible", NULL);
                if (compatible && !strcmp(compatible, "ibm,coherent-device-memory")) {
-                       *block_size = SZ_256M;
-                       return 1;
+                       if (*block_size > SZ_256M)
+                               *block_size = SZ_256M;
+                       /*
+                        * We keep 256M as the upper limit with GPU present.
+                        */
+                       return 0;
                }
        }
        /* continue looking for other memory device types */