Defined in 1 files as a function:
Referenced in 5 files:
- drivers/net/ethernet/cavium/thunder/nicvf_queues.c, line 365
- drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c, line 163
- drivers/net/ethernet/google/gve/gve_rx.c
- include/linux/page_ref.h, line 157
- net/core/datagram.c
Smatch caller information:
drivers/net/ethernet/google/gve/gve_rx.c gve_rx_free_buffer() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/net/ethernet/google/gve/gve_rx.c gve_rx_prefill_pages() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/net/ethernet/google/gve/gve_rx.c gve_rx_prefill_pages() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/net/ethernet/google/gve/gve_rx.c gve_rx_unfill_pages() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/net/ethernet/google/gve/gve_rx.c gve_rx_unfill_pages() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
net/core/datagram.c zerocopy_fill_skb_from_iter() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | nr | 1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
net/core/datagram.c zerocopy_fill_skb_from_iter() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | nr | 1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
mm/shmem.c folio_ref_sub() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 1 | nr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | nr | unit_page |
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/memory.c folio_ref_sub() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 1 | nr | 1-s32max |
| CAPPED_DATA | 1 | nr | 1 |
| DATA_SOURCE | 1 | nr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | dst_ptl | ||
| LOCK2 | rcu_read | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
drivers/net/ethernet/cavium/thunder/nicvf_queues.c nicvf_free_rbdr() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | s32min-(-1),1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c gve_free_qpl_page_dqo() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
mm/khugepaged.c folio_ref_sub() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 1 | nr | s32min-(-1),1-s32max |
| DATA_SOURCE | 1 | nr | $1 |
| NOSPEC | 1 | nr | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 1 | nr | s32min-(-2),1-s32max[c][u] |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/swap_state.c folio_ref_sub() -> page_ref_sub()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 1 | nr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | vmf->ptl |