Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
PARAM_VALUE 0 mem->altmap 0
DATA_SOURCE 0 mem r memory_block_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &device_hotplug_lock

drivers/base/node.c register_memory_blocks_under_nodes() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
PARAM_VALUE 0 mem->zone 0,4096-ptr_max
PARAM_VALUE 0 mem->zone->present_pages 1
PARAM_VALUE 0 mem->zone->spanned_pages 1-u64max
PARAM_VALUE 0 mem->zone->zone_start_pfn 0-18446744073709551614
DATA_SOURCE 0 mem r memory_block_get
NOCHECK_CALL

drivers/base/memory.c __add_memory_block() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
PARAM_VALUE 0 mem->dev->driver_data->cis_virt (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev->driver_data->fake_cis 0-255
PARAM_VALUE 0 mem->dev->driver_data->ops_mutex.first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev->driver_data->skt_mutex.first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev->kobj.parent->kset->kobj.release.timer->entry->next->pprev 1-u64max
PARAM_VALUE 0 mem->dev->kobj.release.timer->entry->next->pprev 1-u64max
PARAM_VALUE 0 mem->dev->kobj.release.timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 mem->dev.devres_head.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.devres_head.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.devres_head.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_io_tlb_mem->dyn_alloc.data.counter 9007199250546704
PARAM_VALUE 0 mem->dev.dma_io_tlb_mem->dyn_alloc.entry.prev 1473117533515866344
PARAM_VALUE 0 mem->dev.dma_io_tlb_mem->dyn_alloc.func 1583282886040592384
PARAM_VALUE 0 mem->dev.dma_io_tlb_mem->pools.prev 1473117533515866320
PARAM_VALUE 0 mem->dev.dma_io_tlb_pools.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_io_tlb_pools.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_io_tlb_pools.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_pools.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_pools.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.dma_pools.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.driver_data->battery_dev->id (-2)
PARAM_VALUE 0 mem->dev.driver_data->callback->add 5235430000054906880
PARAM_VALUE 0 mem->dev.driver_data->callback->early_resume 6956900869090054144
PARAM_VALUE 0 mem->dev.driver_data->callback->remove 1719268733136482304
PARAM_VALUE 0 mem->dev.driver_data->callback->requery 4713442613417914368
PARAM_VALUE 0 mem->dev.driver_data->callback->resume 5068206944467017728
PARAM_VALUE 0 mem->dev.driver_data->callback->suspend 2738892915008757760
PARAM_VALUE 0 mem->dev.driver_data->callback->validate 4934365872137547776
PARAM_VALUE 0 mem->dev.driver_data->cdev 0
PARAM_VALUE 0 mem->dev.driver_data->cdev->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.driver_data->cdev->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.driver_data->cdev->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.driver_data->cdev->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.driver_data->cis_mem.card_start 0-4294967295
PARAM_VALUE 0 mem->dev.driver_data->cis_mem.flags 0,2-254
PARAM_VALUE 0 mem->dev.driver_data->cis_mem.res 0
PARAM_VALUE 0 mem->dev.driver_data->cis_virt 0
PARAM_VALUE 0 mem->dev.driver_data->d_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->detaching.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.cpu s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.timer.flags 0-4294967295
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.work.flags 0-4294967295
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.work.is_hard 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.work.is_lazy 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.work.is_queued 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.kobj.release.work.is_soft 0-1
PARAM_VALUE 0 mem->dev.driver_data->dev.parent->kobj.release.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 mem->dev.driver_data->dev.parent->kobj.release.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->dev.parent->kobj.release.wq->saved_min_active s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->device_count 0-1
PARAM_VALUE 0 mem->dev.driver_data->functions 0-u16max
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->list.prev->prev 0,5159360019465732096
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->magic 5159360019465732096
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->task->blocked_on (-1)-0
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->ops_mutex.osq.tail.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->pcmcia_pfc 0-255
PARAM_VALUE 0 mem->dev.driver_data->present.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->resource_setup_done 0-255
PARAM_VALUE 0 mem->dev.driver_data->sfd_lock.raw_lock.cnts.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.first_waiter->task->blocked_on (-1)-0
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 mem->dev.driver_data->skt_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 mem->dev.driver_data->state 0-4294967295
PARAM_VALUE 0 mem->dev.driver_data->touch_dev->id (-2)
PARAM_VALUE 0 mem->dev.flags 4096-ptr_max
PARAM_VALUE 0 mem->dev.fwnode->dev 0
PARAM_VALUE 0 mem->dev.fwnode->secondary 0,4096-ptr_max
PARAM_VALUE 0 mem->dev.init_name 0
PARAM_VALUE 0 mem->dev.iommu_group->mutex->first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev.iommu_group->mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev.iommu_group->owner_cnt 0-4294967295
PARAM_VALUE 0 mem->dev.kobj.entry.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.entry.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.entry.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->entry.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->entry.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->entry.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.flags 0-4294967295
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.is_hard 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.is_lazy 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.is_queued 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->kset->kobj.release.work.is_soft 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->release->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.kobj.parent->release.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.parent->sd 0
PARAM_VALUE 0 mem->dev.kobj.parent->state_in_sysfs 0
PARAM_VALUE 0 mem->dev.kobj.release->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.kobj.release.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.kobj.release.work.flags 0-4294967295
PARAM_VALUE 0 mem->dev.kobj.release.work.is_hard 0-1
PARAM_VALUE 0 mem->dev.kobj.release.work.is_lazy 0-1
PARAM_VALUE 0 mem->dev.kobj.release.work.is_queued 0-1
PARAM_VALUE 0 mem->dev.kobj.release.work.is_soft 0-1
PARAM_VALUE 0 mem->dev.kobj.sd 0
PARAM_VALUE 0 mem->dev.kobj.sd->__parent 0
PARAM_VALUE 0 mem->dev.kobj.sd->active.counter (-2147483647)
PARAM_VALUE 0 mem->dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 mem->dev.links.consumers.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.consumers.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.consumers.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.defer_sync.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.defer_sync.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.defer_sync.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.defer_sync.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.suppliers.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.suppliers.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.links.suppliers.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.mutex->first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mem->dev.p 0
PARAM_VALUE 0 mem->dev.parent->kobj.release->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 mem->dev.parent->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.flags 0-4294967295
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.is_hard 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.is_lazy 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.is_queued 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.work.is_soft 0-1
PARAM_VALUE 0 mem->dev.parent->kobj.release.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 mem->dev.parent->kobj.release.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 mem->dev.parent->kobj.release.wq->saved_min_active s32min-s32max
PARAM_VALUE 0 mem->dev.physical_location 0,4096-ptr_max
PARAM_VALUE 0 mem->dev.pm_domain 0,4096-ptr_max
PARAM_VALUE 0 mem->dev.power.completion.done u32max
PARAM_VALUE 0 mem->dev.power.driver_flags 0
PARAM_VALUE 0 mem->dev.power.entry.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.entry.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.entry.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.in_dpm_list 0
PARAM_VALUE 0 mem->dev.power.irq_safe 0
PARAM_VALUE 0 mem->dev.power.qos->flags_req 0
PARAM_VALUE 0 mem->dev.power.qos->freq.max_freq.default_value s32max
PARAM_VALUE 0 mem->dev.power.qos->freq.max_freq.no_constraint_value s32max
PARAM_VALUE 0 mem->dev.power.qos->freq.max_freq.target_value s32max
PARAM_VALUE 0 mem->dev.power.subsys_data 0,4096-ptr_max
PARAM_VALUE 0 mem->dev.power.use_autosuspend 0
PARAM_VALUE 0 mem->dev.power.wait_queue.head.next->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.wait_queue.head.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->dev.power.wait_queue.head.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->group_next.next 4096-ptr_max
PARAM_VALUE 0 mem->group_next.next->next 4096-ptr_max
PARAM_VALUE 0 mem->group_next.prev 4096-ptr_max
PARAM_VALUE 0 mem->group_next.prev->next 4096-ptr_max
PARAM_VALUE 0 mem->group_next.prev->prev 4096-ptr_max
PARAM_VALUE 0 mem->state 0,2
BUF_SIZE 0 mem 1688
CAPPED_DATA 0 &mem->dev 1
DATA_SOURCE 0 mem $0
FUZZY_MAX 0 mem->state 2
BIT_INFO 0 mem->state 0x0,0x2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/base/memory.c add_memory_block() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 1-1025,1027-1029,1031-u64max
DATA_SOURCE 0 mem r memory_block_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/base/memory.c memblk_nr_poison_inc() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
DATA_SOURCE 0 mem r memory_block_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &mf_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock

drivers/base/memory.c memblk_nr_poison_sub() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
DATA_SOURCE 0 mem r memory_block_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &attr->mutex

drivers/base/memory.c remove_memory_block() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 4096-ptr_max
PARAM_VALUE 0 mem->dev.bus 3604595696917835776
PARAM_VALUE 0 mem->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 mem->group 0
DATA_SOURCE 0 mem $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/base/memory.c walk_memory_blocks() -> memory_block_put()

Type Parameter Key Value
PARAM_VALUE 0 mem 1-1025,1027-1029,1031-u64max
DATA_SOURCE 0 mem r memory_block_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &device_hotplug_lock