Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 7 files:
- fs/dax.c, line 471
- kernel/liveupdate/kexec_handover.c, line 510
- mm/compaction.c, line 1886
- mm/huge_memory.c, line 3728
- mm/hugetlb.c, line 3987
- mm/memremap.c, line 527
- mm/page_alloc.c, line 1882
Smatch caller information:
mm/huge_memory.c __split_folio_to_order() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_mapcount.counter | (-1) |
| PARAM_VALUE | 0 | page->compound_info | 0 |
| PARAM_VALUE | 1 | order | 1-254 |
| DATA_SOURCE | 1 | order | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | page | unit_page |
| LOCK2 | irq | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | rcu_read |
fs/dax.c dax_folio_init() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 1 | order | 9 |
| DATA_SOURCE | 1 | order | r dax_entry_order |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &(xas->xa)->xa_lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &inode->i_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &mapping->invalidate_lock |
mm/hugetlb.c demote_free_hugetlb_folios() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->compound_info | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &dst->resize_lock | ||
| LOCK2 | &of->mutex | ||
| LOCK2 | &src->resize_lock | ||
| HALF_LOCKED2 | &of->prealloc_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct hstate)->resize_lock | ||
| TYPE_LOCK | (struct kernfs_open_file)->mutex |
mm/compaction.c compaction_alloc_noprof() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 1 |
| PARAM_VALUE | 0 | page->private | 0 |
| PARAM_VALUE | 1 | order | 1-255 |
| CAPPED_DATA | 1 | order | 1 |
| DATA_SOURCE | 1 | order | r folio_order |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
mm/page_alloc.c prep_new_page() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->private | 0 |
| PARAM_VALUE | 1 | order | 1-63 |
| CAPPED_DATA | 1 | order | 1 |
| DATA_SOURCE | 0 | page | $0 |
| DATA_SOURCE | 1 | order | $1 |
| FUZZY_MAX | 1 | order | 4 |
| NOSPEC | 1 | order | |
| NOSPEC | 1 | order | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HOST_DATA | 1 | order | 1-10[c] |
| USER_DATA | 1 | order | 1-10[c] |
| UNITS | 0 | page | unit_page |
| UNITS | 1 | order | unit_byte |
mm/memremap.c zone_device_page_init() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 1 |
| PARAM_VALUE | 1 | order | 1-u32max |
| DATA_SOURCE | 0 | page | $0 |
| DATA_SOURCE | 1 | order | $2 |
| FUZZY_MAX | 1 | order | 9 |
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &driver_migrate_lock | ||
| HALF_LOCKED2 | &vm->lock | ||
| HALF_LOCKED2 | global &drm_unplug_srcu | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
kernel/liveupdate/kexec_handover.c kho_init_folio() -> prep_compound_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 1 |
| PARAM_VALUE | 0 | page->private | 0 |
| PARAM_VALUE | 1 | order | 1-u32max |
| DATA_SOURCE | 0 | page | $0 |
| DATA_SOURCE | 1 | order | $1 |
| FUZZY_MAX | 1 | order | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | _T->lock |