s390/sclp: release SCLP early buffer after kernel initialization
authorAlexander Egorenkov <egorenar@linux.ibm.com>
Thu, 11 Nov 2021 11:33:59 +0000 (12:33 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Thu, 16 Dec 2021 18:58:07 +0000 (19:58 +0100)
The SCLP early buffer is used only during kernel initialization and can be
freed afterwards. The only way to ensure that it is not released while
being in use, is to release it in free_initmem().

Acked-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
[agordeev@linux.ibm.com: added debug output]
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/mm/init.c

index 8c6f258a61832a8578021e485bc6b9c02ea5f723..86ffd0d51fd593a9d86b22d1384fd94da5eb314a 100644 (file)
@@ -215,6 +215,9 @@ void free_initmem(void)
        __set_memory((unsigned long)_sinittext,
                     (unsigned long)(_einittext - _sinittext) >> PAGE_SHIFT,
                     SET_MEMORY_RW | SET_MEMORY_NX);
+       free_reserved_area(sclp_early_sccb,
+                          sclp_early_sccb + EXT_SCCB_READ_SCP,
+                          POISON_FREE_INITMEM, "unused early sccb");
        free_initmem_default(POISON_FREE_INITMEM);
 }