Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 14 files:

Smatch caller information:

mm/madvise.c try_vma_read_lock() -> lock_vma_under_rcu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 address 0-u64max
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

mm/userfaultfd.c uffd_lock_vma() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 address $1
NOSPEC 1 address
USER_DATA 1 address 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 1 address
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

mm/userfaultfd.c uffd_move_lock() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 0 mm->task_size 1-u64max
PARAM_VALUE 1 address 0-18446744073709551614
CAPPED_DATA 0 mm 1
CAPPED_DATA 1 address 1
CAPPED_DATA 1 address 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 address $2
NOSPEC 1 address
USER_DATA 1 address 0-18446744073709551614[c]
NO_OVERFLOW_SIMPLE 1 address
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

kernel/bpf/stackmap.c stack_map_lock_vma() -> lock_vma_under_rcu()

Type Parameter Key Value
DATA_SOURCE 1 address $1
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

mm/damon/vaddr.c damon_va_walk_page_range() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
PARAM_VALUE 0 mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 mm->mmap_lock.first_waiter->type 0-1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 address $1
UNITS 1 address unit_byte
HALF_LOCKED2 &ctx->walk_control_lock

arch/x86/mm/fault.c do_user_addr_fault() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
DATA_SOURCE 1 address $2
UNITS 0 mm unit_byte

net/ipv4/tcp.c find_tcp_vma() -> lock_vma_under_rcu()

Type Parameter Key Value
CAPPED_DATA 1 address 1
CAPPED_DATA 1 address 1
DATA_SOURCE 0 mm $0
DATA_SOURCE 1 address $1
BIT_INFO 1 address 0x0,0xfffffffffffff000
BIT_INFO 1 address 0x0,0xfffffffffffff000
RX_PATH
USER_DATA 1 address 0-u64max[c]
UNITS 0 mm unit_byte
HALF_LOCKED2 sk

drivers/android/binder_alloc.c binder_alloc_free_page() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

drivers/android/binder_alloc.c binder_page_insert() -> lock_vma_under_rcu()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
PARAM_VALUE 0 mm->mm_users.counter 0-s32max
PARAM_VALUE 1 address 0,4096-18446744073709551614
CAPPED_DATA 1 address 1
CAPPED_DATA 1 address 1
DATA_SOURCE 1 address $1
UNITS 0 mm unit_byte
UNITS 1 address unit_byte

kernel/bpf/task_iter.c bpf_iter_task_vma_find_next() -> lock_vma_under_rcu()

Type Parameter Key Value
UNITS 0 mm unit_byte
UNITS 1 address unit_byte