Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/xen/gntdev.c find_grant_ptes() -> arbitrary_virt_to_machine()

Type Parameter Key Value
PARAM_VALUE 0 vaddr 4096-u64max
DATA_SOURCE 0 vaddr $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 ptl

drivers/xen/xenbus/xenbus_client.c map_ring_apply() -> arbitrary_virt_to_machine()

Type Parameter Key Value
PARAM_VALUE 0 vaddr 4096-u64max
DATA_SOURCE 0 vaddr $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 ptl

drivers/xen/xenbus/xenbus_client.c xenbus_unmap_ring_pv() -> arbitrary_virt_to_machine()

Type Parameter Key Value
PARAM_VALUE 0 vaddr 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pdev->dev_lock
HALF_LOCKED2 global &pvcalls_back_global.frontends_lock
HALF_LOCKED2 global &xenwatch_mutex

arch/x86/xen/enlighten_pv.c load_TLS_descriptor() -> arbitrary_virt_to_machine()

Type Parameter Key Value
PARAM_VALUE 0 vaddr 4096-ptr_max
LOCK2 irq

arch/x86/xen/enlighten_pv.c xen_write_gdt_entry() -> arbitrary_virt_to_machine()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt

arch/x86/xen/enlighten_pv.c xen_write_ldt_entry() -> arbitrary_virt_to_machine()

Type Parameter Key Value

arch/x86/xen/mmu.c arbitrary_virt_to_mfn() -> arbitrary_virt_to_machine()

Type Parameter Key Value
BUF_SIZE 0 vaddr (-1),128
BUF_SIZE 0 vaddr (-1),128
DATA_SOURCE 0 vaddr $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq

arch/x86/xen/mmu_pv.c xen_set_pmd_hyper() -> arbitrary_virt_to_machine()

Type Parameter Key Value
DATA_SOURCE 0 vaddr $0
PREEMPT_ADD <- disables preempt
LOCK2 irq

arch/x86/xen/mmu_pv.c xen_set_pud_hyper() -> arbitrary_virt_to_machine()

Type Parameter Key Value
DATA_SOURCE 0 vaddr $0
PREEMPT_ADD <- disables preempt
LOCK2 irq