Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/iommu/iommufd/io_pagetable.c iopt_table_enforce_dev_resv_regions() -> iommufd_should_fail()

Type Parameter Key Value
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_group)->lock

drivers/iommu/iommufd/pages.c iopt_pages_rw_page() -> iommufd_should_fail()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/pages.c pages_to_xarray() -> iommufd_should_fail()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &((&xas)->xa)->xa_lock
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
LOCK2 &pages->mutex
HALF_LOCKED2 &staccess->lock
HALF_LOCKED2 &vgpu->cache_lock
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c pfn_reader_user_pin() -> iommufd_should_fail()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

drivers/iommu/iommufd/pages.c pfn_reader_user_update_pinned() -> iommufd_should_fail()

Type Parameter Key Value
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

drivers/iommu/iommufd/pages.c temp_kmalloc() -> iommufd_should_fail()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

drivers/iommu/iommufd/main.c iommufd_get_object() -> iommufd_should_fail()

Type Parameter Key Value
HALF_LOCKED2 &access->ioas_lock