mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
5f58bde726
Provide a very simple ARCH_HAS_DEBUG_VIRTUAL implementation. For now errors are only reported for the following cases: - Trying to translate a vmalloc or module address to a physical address - Translating a supposed to be ZONE_DMA virtual address into a physical address, and the resulting physical address is larger than two GiB Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
16 lines
356 B
C
16 lines
356 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <linux/mmdebug.h>
|
|
#include <linux/export.h>
|
|
#include <linux/mm.h>
|
|
#include <asm/page.h>
|
|
|
|
unsigned long __phys_addr(unsigned long x, bool is_31bit)
|
|
{
|
|
VIRTUAL_BUG_ON(is_vmalloc_or_module_addr((void *)(x)));
|
|
x = __pa_nodebug(x);
|
|
if (is_31bit)
|
|
VIRTUAL_BUG_ON(x >> 31);
|
|
return x;
|
|
}
|
|
EXPORT_SYMBOL(__phys_addr);
|