Defined in 1 files as a function:
Referenced in 3 files:
- drivers/iommu/iommufd/device.c
- drivers/iommu/iommufd/io_pagetable.c
- drivers/iommu/iommufd/io_pagetable.h, line 126
Smatch caller information:
drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| DATA_SOURCE | 0 | area | $0 |
| LOCK2 | &iopt->iova_rwsem | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem |
drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| DATA_SOURCE | 0 | area | $0 |
| PARAM_COMPARE | 0 | area->node.start | == $1 |
| PARAM_COMPARE | 1 | iova | == $0->node.start |
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| CAPPED_DATA | 0 | area->pages->npages | 1 |
| DATA_SOURCE | 0 | area | $0 |
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
drivers/iommu/iommufd/io_pagetable.c iopt_get_pages() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| USER_DATA | 1 | iova | 0-18446744073709551614[c][u] |
| UNITS | 1 | iova | unit_byte |
| LOCK2 | &iopt->iova_rwsem | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem |
drivers/iommu/iommufd/device.c iommufd_access_rw() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HOST_DATA | 1 | iova | 0-u64max[c] |
| USER_DATA | 1 | iova | 0-u64max |
| UNITS | 1 | iova | unit_byte |
| 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/device.c iopt_area_contig_is_aligned() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| USER_DATA | 1 | iova | 0-u64max |
| UNITS | 1 | iova | unit_byte |
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &staccess->lock | ||
| HALF_LOCKED2 | &vgpu->cache_lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock |
drivers/iommu/iommufd/device.c iopt_area_contig_is_aligned() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &staccess->lock | ||
| HALF_LOCKED2 | &vgpu->cache_lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock |
drivers/iommu/iommufd/device.c iopt_area_iova_to_index() -> iopt_area_start_byte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | area | 4096-ptr_max |
| DATA_SOURCE | 0 | area | $0 |
| DATA_SOURCE | 1 | iova | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | iova | 0-u64max |
| UNITS | 1 | iova | unit_byte |
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &staccess->lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock |