s390/extmem: improve reporting of -ERANGE error
authorAlexander Gordeev <agordeev@linux.ibm.com>
Wed, 5 Jul 2023 12:17:11 +0000 (14:17 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 24 Jul 2023 10:12:24 +0000 (12:12 +0200)
Interface segment_warning() reports maximum mappable physical
address for -ERANGE error. Currently that address is the value
of VMEM_MAX_PHYS macro, but that well might change. A better
way to obtain that address is calling arch_get_mappable_range()
callback - one that is used by vmem_add_mapping() and generates
-ERANGE error in the first place.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/mm/extmem.c

index 1bc42ce..e41869f 100644 (file)
@@ -640,10 +640,13 @@ void segment_warning(int rc, char *seg_name)
                pr_err("There is not enough memory to load or query "
                       "DCSS %s\n", seg_name);
                break;
-       case -ERANGE:
-               pr_err("DCSS %s exceeds the kernel mapping range (%lu) "
-                      "and cannot be loaded\n", seg_name, VMEM_MAX_PHYS);
+       case -ERANGE: {
+               struct range mhp_range = arch_get_mappable_range();
+
+               pr_err("DCSS %s exceeds the kernel mapping range (%llu) "
+                      "and cannot be loaded\n", seg_name, mhp_range.end + 1);
                break;
+       }
        default:
                break;
        }