Documented in 1 files:
Defined in 1 files as a function:
Referenced in 61 files:
- arch/alpha/kernel/smp.c, line 147
- arch/arc/kernel/smp.c, line 171
- arch/arm/kernel/smp.c, line 433
- arch/arm64/kernel/smp.c, line 208
- arch/csky/kernel/smp.c, line 263
- arch/hexagon/kernel/smp.c, line 143
- arch/loongarch/kernel/traps.c, line 1165
- arch/mips/kernel/traps.c, line 2269
- arch/openrisc/kernel/smp.c, line 132
- arch/parisc/kernel/smp.c, line 294
- arch/powerpc/platforms/book3s/vas-api.c, line 88
- arch/riscv/kernel/smpboot.c, line 233
- arch/s390/kernel/processor.c, line 111
- arch/s390/kvm/pci.c, line 229
- arch/sh/kernel/smp.c, line 181
- arch/sparc/kernel/leon_smp.c, line 95
- arch/sparc/kernel/smp_64.c, line 130
- arch/sparc/kernel/sun4d_smp.c, line 97
- arch/sparc/kernel/sun4m_smp.c, line 63
- arch/sparc/kernel/traps_32.c, line 389
- arch/sparc/kernel/traps_64.c, line 2923
- arch/um/kernel/smp.c, line 154
- arch/x86/kernel/cpu/common.c, line 2504
- arch/xtensa/kernel/smp.c, line 145
- drivers/accel/amdxdna/amdxdna_ctx.c, line 646
- drivers/accel/amdxdna/amdxdna_pci_drv.c, line 138
- drivers/accel/amdxdna/amdxdna_ubuf.c, line 98
- drivers/android/binder_alloc.c, line 1237
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c, line 74
- drivers/gpu/drm/amd/amdkfd/kfd_svm.c, line 609
- drivers/gpu/drm/drm_gpusvm.c, line 475
- drivers/gpu/drm/xe/xe_sync.c, line 71
- drivers/infiniband/core/umem.c, line 210
- drivers/infiniband/hw/hfi1/mmu_rb.c, line 86
- drivers/infiniband/hw/mlx5/doorbell.c, line 121
- drivers/infiniband/hw/usnic/usnic_uiom.c, line 182
- drivers/iommu/iommu-sva.c, line 324
- drivers/iommu/iommufd/ioas.c, line 538
- drivers/iommu/iommufd/pages.c, line 1383
- drivers/misc/ocxl/link.c, line 623
- drivers/usb/gadget/function/f_fs.c
- drivers/usb/gadget/legacy/inode.c, line 551
- drivers/vdpa/vdpa_user/vduse_dev.c, line 1396
- drivers/vfio/vfio_iommu_spapr_tce.c, line 84
- drivers/vfio/vfio_iommu_type1.c
- drivers/vhost/vhost.c, line 693
- fs/proc/base.c
- include/linux/sched/mm.h, line 91
- io_uring/io_uring.c, line 3038
- io_uring/zcrx.c, line 958
- kernel/kthread.c, line 1628
- kernel/trace/trace_events_user.c, line 752
- mm/khugepaged.c
- mm/ksm.c, line 3083
- mm/mmap_lock.c, line 284
- mm/mmu_notifier.c
- mm/oom_kill.c
- mm/userfaultfd.c
- mm/vmscan.c, line 2936
- rust/helpers/mm.c, line 8
- virt/kvm/kvm_main.c, line 1109
Smatch caller information:
kernel/exit.c mmgrab_lazy_tlb() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| HALF_LOCKED2 | global &system_transition_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
kernel/trace/trace_events_user.c user_event_mm_alloc() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &group->reg_mutex |
mm/oom_kill.c __do_sys_process_mrelease() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 1-u64max |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/oom_kill.c __do_sys_process_mrelease() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 1-u64max |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/oom_kill.c __oom_kill_process() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | global &oom_lock |
mm/oom_kill.c mark_oom_victim() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &oom_lock | ||
| HALF_LOCKED2 | &tsk->alloc_lock |
drivers/vhost/vhost.c vhost_attach_mm() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &n->dev.mutex | ||
| TYPE_LOCK | (struct vhost_dev)->mutex |
mm/userfaultfd.c dup_userfaultfd() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_count.counter | 1 |
| CAPPED_DATA | 0 | mm->mm_id | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/userfaultfd.c new_userfaultfd() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/usb/gadget/legacy/inode.c ep_aio() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &epdata->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ep_data)->lock |
fs/proc/base.c __set_oom_adj() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | global &oom_adj_mutex |
fs/proc/base.c proc_mem_open() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | r mm_access |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
kernel/kthread.c kthread_use_mm() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &access->ioas_lock | ||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &kvm->arch.xen.shinfo_cache.lock | ||
| HALF_LOCKED2 | &wq->uc_lock |
kernel/kthread.c mmgrab_lazy_tlb() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &tsk->alloc_lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &access->ioas_lock | ||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &kvm->arch.xen.shinfo_cache.lock | ||
| HALF_LOCKED2 | &wq->uc_lock | ||
| TYPE_LOCK | (struct task_struct)->alloc_lock |
drivers/accel/amdxdna/amdxdna_ctx.c amdxdna_cmd_submit() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &client->hwctx_srcu | ||
| HALF_LOCKED2 | &xdna->client_lock | ||
| HALF_LOCKED2 | &xdna->dev_lock | ||
| TYPE_LOCK | (struct amdxdna_client)->hwctx_srcu |
drivers/iommu/iommufd/pages.c iopt_alloc_pages() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_init() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 1-u64max |
| DATA_SOURCE | 0 | mm | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
io_uring/zcrx.c io_register_zcrx() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 1-u64max |
| CAPABLE | 0 | 12 | |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &ctx->uring_lock | ||
| TYPE_LOCK | (struct io_ring_ctx)->uring_lock |
mm/ksm.c __ksm_enter() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
drivers/infiniband/core/umem.c __ib_umem_get_va() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &context->db_page_mutex |
io_uring/io_uring.c io_uring_create() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/vmscan.c get_next_mm() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm_list->lock | ||
| TYPE_LOCK | (struct lru_gen_mm_list)->lock |
drivers/android/binder_alloc.c __binder_alloc_init() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/gpu/drm/xe/xe_sync.c user_fence_create() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &vm->lock |
drivers/accel/amdxdna/amdxdna_ubuf.c amdxdna_get_ubuf() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/vdpa/vdpa_user/vduse_dev.c vduse_dev_reg_umem() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &dev->domain_lock | ||
| TYPE_LOCK | (struct vduse_dev)->domain_lock |
arch/x86/kernel/cpu/common.c cpu_init() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 7138969414219841536 |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | irq |
drivers/vfio/vfio_iommu_type1.c vfio_change_dma_owner() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| CAPABLE | 0 | 14 | |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &iommu->lock | ||
| TYPE_LOCK | (struct vfio_iommu)->lock |
drivers/vfio/vfio_iommu_type1.c vfio_dma_do_map() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 14 | |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &iommu->lock | ||
| TYPE_LOCK | (struct vfio_iommu)->lock |
drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_get_pages() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/mmu_notifier.c __mmu_interval_notifier_insert() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/mmu_notifier.c __mmu_notifier_register() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| BUF_SIZE | 0 | mm | (-1)-s32max |
| BUF_SIZE | 0 | mm | (-1)-s32max |
| BUF_SIZE | 0 | mm->notifier_subscriptions | 216,u64max |
| DATA_SOURCE | 0 | mm | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | global &mm_all_locks_mutex | ||
| HALF_LOCKED2 | &cli->mutex | ||
| HALF_LOCKED2 | global &kfd_processes_mutex | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
drivers/accel/amdxdna/amdxdna_pci_drv.c amdxdna_drm_open() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 21 | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_vram_node_new() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &prange->migrate_mutex | ||
| LOCK2 | &svms->lock | ||
| HALF_LOCKED2 | &process_info->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct svm_range)->migrate_mutex | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/iommu/iommufd/ioas.c change_mm() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &ictx->ioas_creation_lock | ||
| TYPE_LOCK | (struct iommufd_ctx)->ioas_creation_lock |
drivers/infiniband/hw/mlx5/doorbell.c mlx5_ib_db_map_user_desc() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &context->db_page_mutex | ||
| TYPE_LOCK | (struct mlx5_ib_ucontext)->db_page_mutex |
drivers/iommu/iommu-sva.c iommu_sva_domain_alloc() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | global &iommu_sva_lock | ||
| HALF_LOCKED2 | &idev->info_lock | ||
| HALF_LOCKED2 | &uacce->mutex | ||
| HALF_LOCKED2 | &wq->wq_lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c amdgpu_amdkfd_fence_create() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &p->mutex | ||
| HALF_LOCKED2 | &process_info->lock |
mm/mmap_lock.c vma_start_read() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/infiniband/hw/hfi1/mmu_rb.c hfi1_mmu_rb_unregister() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
drivers/usb/gadget/function/f_fs.c ffs_epfile_read_iter() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &pool->lock |
drivers/usb/gadget/function/f_fs.c ffs_epfile_write_iter() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &pool->lock |
arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_create_vm() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/khugepaged.c __khugepaged_enter() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/khugepaged.c madvise_collapse() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
kernel/sched/core.c mmgrab_lazy_tlb() -> mmgrab()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | irq |