• Home
  • Raw
  • Download

Lines Matching refs:mem

107 	struct memory_block *mem = to_memory_block(dev);  in memory_block_release()  local
109 kfree(mem); in memory_block_release()
124 struct memory_block *mem = to_memory_block(dev); in phys_index_show() local
127 phys_index = mem->start_section_nr / sections_per_block; in phys_index_show()
148 struct memory_block *mem = to_memory_block(dev); in state_show() local
155 switch (mem->state) { in state_show()
167 return sysfs_emit(buf, "ERROR-UNKNOWN-%ld\n", mem->state); in state_show()
178 static int memory_block_online(struct memory_block *mem) in memory_block_online() argument
180 unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); in memory_block_online()
182 unsigned long nr_vmemmap_pages = mem->nr_vmemmap_pages; in memory_block_online()
186 zone = zone_for_pfn_range(mem->online_type, mem->nid, mem->group, in memory_block_online()
203 nr_pages - nr_vmemmap_pages, zone, mem->group); in memory_block_online()
215 adjust_present_page_count(pfn_to_page(start_pfn), mem->group, in memory_block_online()
221 static int memory_block_offline(struct memory_block *mem) in memory_block_offline() argument
223 unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); in memory_block_offline()
225 unsigned long nr_vmemmap_pages = mem->nr_vmemmap_pages; in memory_block_offline()
233 adjust_present_page_count(pfn_to_page(start_pfn), mem->group, in memory_block_offline()
237 nr_pages - nr_vmemmap_pages, mem->group); in memory_block_offline()
242 mem->group, nr_vmemmap_pages); in memory_block_offline()
257 memory_block_action(struct memory_block *mem, unsigned long action) in memory_block_action() argument
263 ret = memory_block_online(mem); in memory_block_action()
266 ret = memory_block_offline(mem); in memory_block_action()
270 "%ld\n", __func__, mem->start_section_nr, action, action); in memory_block_action()
277 static int memory_block_change_state(struct memory_block *mem, in memory_block_change_state() argument
282 if (mem->state != from_state_req) in memory_block_change_state()
286 mem->state = MEM_GOING_OFFLINE; in memory_block_change_state()
288 ret = memory_block_action(mem, to_state); in memory_block_change_state()
289 mem->state = ret ? from_state_req : to_state; in memory_block_change_state()
297 struct memory_block *mem = to_memory_block(dev); in memory_subsys_online() local
300 if (mem->state == MEM_ONLINE) in memory_subsys_online()
307 if (mem->online_type == MMOP_OFFLINE) in memory_subsys_online()
308 mem->online_type = MMOP_ONLINE; in memory_subsys_online()
310 ret = memory_block_change_state(mem, MEM_ONLINE, MEM_OFFLINE); in memory_subsys_online()
311 mem->online_type = MMOP_OFFLINE; in memory_subsys_online()
318 struct memory_block *mem = to_memory_block(dev); in memory_subsys_offline() local
320 if (mem->state == MEM_OFFLINE) in memory_subsys_offline()
323 return memory_block_change_state(mem, MEM_OFFLINE, MEM_ONLINE); in memory_subsys_offline()
330 struct memory_block *mem = to_memory_block(dev); in state_store() local
345 mem->online_type = online_type; in state_store()
346 ret = device_online(&mem->dev); in state_store()
349 ret = device_offline(&mem->dev); in state_store()
375 struct memory_block *mem = to_memory_block(dev); in phys_device_show() local
376 unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); in phys_device_show()
400 struct memory_block *mem = to_memory_block(dev); in valid_zones_show() local
401 unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); in valid_zones_show()
403 struct memory_group *group = mem->group; in valid_zones_show()
405 int nid = mem->nid; in valid_zones_show()
412 if (mem->state == MEM_ONLINE) { in valid_zones_show()
580 struct memory_block *mem; in find_memory_block_by_id() local
582 mem = xa_load(&memory_blocks, block_id); in find_memory_block_by_id()
583 if (mem) in find_memory_block_by_id()
584 get_device(&mem->dev); in find_memory_block_by_id()
585 return mem; in find_memory_block_by_id()
649 struct memory_block *mem; in init_memory_block() local
652 mem = find_memory_block_by_id(block_id); in init_memory_block()
653 if (mem) { in init_memory_block()
654 put_device(&mem->dev); in init_memory_block()
657 mem = kzalloc(sizeof(*mem), GFP_KERNEL); in init_memory_block()
658 if (!mem) in init_memory_block()
661 mem->start_section_nr = block_id * sections_per_block; in init_memory_block()
662 mem->state = state; in init_memory_block()
663 mem->nid = NUMA_NO_NODE; in init_memory_block()
664 mem->nr_vmemmap_pages = nr_vmemmap_pages; in init_memory_block()
665 INIT_LIST_HEAD(&mem->group_next); in init_memory_block()
667 ret = register_memory(mem); in init_memory_block()
672 mem->group = group; in init_memory_block()
673 list_add(&mem->group_next, &group->memory_blocks); in init_memory_block()
725 struct memory_block *mem; in create_memory_block_devices() local
743 mem = find_memory_block_by_id(block_id); in create_memory_block_devices()
744 if (WARN_ON_ONCE(!mem)) in create_memory_block_devices()
746 unregister_memory(mem); in create_memory_block_devices()
763 struct memory_block *mem; in remove_memory_block_devices() local
771 mem = find_memory_block_by_id(block_id); in remove_memory_block_devices()
772 if (WARN_ON_ONCE(!mem)) in remove_memory_block_devices()
774 unregister_memory_block_under_nodes(mem); in remove_memory_block_devices()
775 unregister_memory(mem); in remove_memory_block_devices()
780 bool is_memblock_offlined(struct memory_block *mem) in is_memblock_offlined() argument
782 return mem->state == MEM_OFFLINE; in is_memblock_offlined()
864 struct memory_block *mem; in walk_memory_blocks() local
872 mem = find_memory_block_by_id(block_id); in walk_memory_blocks()
873 if (!mem) in walk_memory_blocks()
876 ret = func(mem, arg); in walk_memory_blocks()
877 put_device(&mem->dev); in walk_memory_blocks()
891 struct memory_block *mem = to_memory_block(dev); in for_each_memory_block_cb() local
894 return cb_data->func(mem, cb_data->arg); in for_each_memory_block_cb()