Defined in 1 files as a prototype:

Defined in 6 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/memory_hotplug.c __add_memory_resource() -> arch_remove_memory()

Type Parameter Key Value
PARAM_VALUE 1 size 1-u64max
PARAM_VALUE 2 altmap 0
PARAM_VALUE 2 altmap->base_pfn 0-4503599627370495
PARAM_VALUE 3 pgmap 0
BUF_SIZE 2 altmap 0
DATA_SOURCE 1 size r resource_size
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 start unit_byte
UNITS 1 size unit_byte
HALF_LOCKED2 global &device_hotplug_lock

mm/memory_hotplug.c create_altmaps_and_memory_blocks() -> arch_remove_memory()

Type Parameter Key Value
PARAM_VALUE 0 start 0-18446744073709551614
PARAM_VALUE 1 size 67108864-68719476736
PARAM_VALUE 2 altmap 1-u64max
PARAM_VALUE 3 pgmap 0
BUF_SIZE 2 altmap 48
CAPPED_DATA 0 start 1
CAPPED_DATA 0 start 1
DATA_SOURCE 1 size r memory_block_size_bytes
DATA_SOURCE 2 altmap r kmemdup_noprof
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 start unit_byte
UNITS 1 size unit_byte
HALF_LOCKED2 global &device_hotplug_lock

mm/memory_hotplug.c remove_memory_blocks_and_altmaps() -> arch_remove_memory()

Type Parameter Key Value
PARAM_VALUE 0 start 0-18446744073709551614
PARAM_VALUE 1 size 67108864-68719476736
PARAM_VALUE 3 pgmap 0
CAPPED_DATA 0 start 1
CAPPED_DATA 0 start 1
DATA_SOURCE 1 size r memory_block_size_bytes
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 start unit_byte
HALF_LOCKED2 global &device_hotplug_lock

mm/memory_hotplug.c try_remove_memory() -> arch_remove_memory()

Type Parameter Key Value
PARAM_VALUE 1 size 1-u64max
PARAM_VALUE 2 altmap 0
PARAM_VALUE 3 pgmap 0
DATA_SOURCE 0 start $0
DATA_SOURCE 1 size $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 start unit_byte
UNITS 1 size unit_byte
HALF_LOCKED2 global &device_hotplug_lock

mm/memremap.c pageunmap_range() -> arch_remove_memory()

Type Parameter Key Value
PARAM_VALUE 2 altmap 0,4096-ptr_max
PARAM_VALUE 3 pgmap 4096-ptr_max
PARAM_VALUE 3 pgmap->done.done 0-4294967293,u32max
PARAM_VALUE 3 pgmap->done.wait.lock.dep_map->name 0-255
PARAM_VALUE 3 pgmap->done.wait.lock.owner (-1)
PARAM_VALUE 3 pgmap->done.wait.lock.owner_cpu u32max
PARAM_VALUE 3 pgmap->done.wait.task_list.prev->next 4096-ptr_max
PARAM_VALUE 3 pgmap->done.wait.task_list.prev->next->next 4096-ptr_max
PARAM_VALUE 3 pgmap->nr_range 1-s32max
PARAM_VALUE 3 pgmap->ops->folio_free 0,1125799360645222400,2314884282337259520,3487804881100709888,4287620441410408448,4432558333617348608
PARAM_VALUE 3 pgmap->ops->migrate_to_ram 0,892366893655998464,2045318714023669760,8762592014959497216,9113542883503599616
PARAM_VALUE 3 pgmap->ranges 4096-ptr_max
PARAM_VALUE 3 pgmap->ref.data 0,4096-ptr_max
PARAM_VALUE 3 pgmap->ref.data->rcu.func 1-u64max
PARAM_VALUE 3 pgmap->ref.data->rcu.next 0
PARAM_VALUE 3 pgmap->type 0,2-u32max
BUF_SIZE 2 altmap (-1),48
BUF_SIZE 3 pgmap->ops (-1),32
BUF_SIZE 3 pgmap->owner (-1),64,472
DATA_SOURCE 3 pgmap $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &drm->dmem->mutex
HALF_LOCKED2 &mdevice->devmem_lock