s390/vmcp: use page_to_virt instead of page_to_phys
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 25 Nov 2021 18:30:07 +0000 (19:30 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 6 Dec 2021 13:42:25 +0000 (14:42 +0100)
Fix wrong usage of page_to_phys/phys_to_page.

Note: this currently doesn't fix a real bug, since virtual addresses
are indentical to physical ones.

Acked-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/char/vmcp.c

index 9e06628..4cebfaa 100644 (file)
@@ -72,7 +72,7 @@ static void vmcp_response_alloc(struct vmcp_session *session)
        if (order > 2)
                page = cma_alloc(vmcp_cma, nr_pages, 0, false);
        if (page) {
-               session->response = (char *)page_to_phys(page);
+               session->response = (char *)page_to_virt(page);
                session->cma_alloc = 1;
                return;
        }
@@ -89,7 +89,7 @@ static void vmcp_response_free(struct vmcp_session *session)
        order = get_order(session->bufsize);
        nr_pages = ALIGN(session->bufsize, PAGE_SIZE) >> PAGE_SHIFT;
        if (session->cma_alloc) {
-               page = phys_to_page((unsigned long)session->response);
+               page = virt_to_page((unsigned long)session->response);
                cma_release(vmcp_cma, page, nr_pages);
                session->cma_alloc = 0;
        } else {