forked from Minki/linux
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:
parent
9d6305c2a1
commit
69700fb438
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user