When a machine is subjected to CPUs add/remove, using dlpar
operations, the number of collected CPU_NOTES can change.
As per PAPR, collected dump size should not be more than
allocated size. Reflecting the same in source.

Signed-off-by: Shivang Upadhyay <[email protected]>
---
 arch/powerpc/platforms/pseries/rtas-fadump.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/pseries/rtas-fadump.c 
b/arch/powerpc/platforms/pseries/rtas-fadump.c
index 3bb4ac2ab6cc..19a5adaf326b 100644
--- a/arch/powerpc/platforms/pseries/rtas-fadump.c
+++ b/arch/powerpc/platforms/pseries/rtas-fadump.c
@@ -469,7 +469,8 @@ static int __init rtas_fadump_process(struct fw_dump 
*fadump_conf)
                                pr_err("Dump taken by platform is not valid 
(%d)\n", i);
                                rc = -EINVAL;
                        }
-                       if (fdm_active->rgn[i].bytes_dumped != 
fdm_active->rgn[i].source_len) {
+                       if (be64_to_cpu(fdm_active->rgn[i].bytes_dumped)
+                           > be64_to_cpu(fdm_active->rgn[i].source_len)) {
                                pr_err("Dump taken by platform is incomplete 
(%d)\n", i);
                                rc = -EINVAL;
                        }
-- 
2.54.0


Reply via email to