Commit 69700fb4 authored by Heiko Carstens's avatar Heiko Carstens

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: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 9d6305c2
...@@ -90,7 +90,7 @@ static long cmm_alloc_pages(long nr, long *counter, ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment