s390/cmm: add missing virt_to_phys() conversion

diag10_range() expects a pfn, however the current cmm code is shifting
a virtual address, instead of a physical address by PAGE_SHIFT bits,
which would give a wrong result in case if V!=R.

Use virt_to_pfn() to fix this.

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

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
Heiko Carstens 2021-12-07 19:24:00 +01:00
parent 9d6305c2a1
commit 69700fb438

View File

@ -90,7 +90,7 @@ static long cmm_alloc_pages(long nr, long *counter,
} else } else
free_page((unsigned long) npa); free_page((unsigned long) npa);
} }
diag10_range(addr >> PAGE_SHIFT, 1); diag10_range(virt_to_pfn(addr), 1);
pa->pages[pa->index++] = addr; pa->pages[pa->index++] = addr;
(*counter)++; (*counter)++;
spin_unlock(&cmm_lock); spin_unlock(&cmm_lock);