Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

arch/x86/kernel/cpu/sgx/virt.c sgx_vepc_remove_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING

arch/x86/kernel/cpu/sgx/ioctl.c __sgx_encl_add_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c __sgx_encl_add_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page->owner 40
DATA_SOURCE 0 page $2
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c __sgx_encl_extend() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c __sgx_encl_extend() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page->owner 40
DATA_SOURCE 0 page $1
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c sgx_encl_create() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page->owner 40
DATA_SOURCE 0 page r sgx_alloc_epc_page

arch/x86/kernel/cpu/sgx/ioctl.c sgx_encl_init() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c sgx_encl_remove_pages() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c sgx_enclave_etrack() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c sgx_enclave_modify_types() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/ioctl.c sgx_enclave_restrict_permissions() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c __sgx_encl_eldu() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c __sgx_encl_eldu() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c __sgx_encl_eldu() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_alloc_va_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r sgx_alloc_epc_page
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &encl->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_debug_read() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_debug_write() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_eaug_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_eaug_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page->owner 40
DATA_SOURCE 0 page r sgx_alloc_epc_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_free_epc_page() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page->owner (-1),40
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &((&xas)->xa)->xa_lock
HALF_LOCKED2 &encl->lock

arch/x86/kernel/cpu/sgx/main.c __sgx_encl_ewb() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/main.c __sgx_sanitize_pages() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max

arch/x86/kernel/cpu/sgx/main.c sgx_encl_ewb() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/main.c sgx_encl_ewb() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock

arch/x86/kernel/cpu/sgx/main.c sgx_reclaimer_block() -> sgx_get_epc_virt_addr()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock