Lines Matching refs:lmb
120 static struct memory_block *lmb_to_memblock(struct of_drconf_cell *lmb) in lmb_to_memblock() argument
126 section_nr = pfn_to_section_nr(PFN_DOWN(lmb->base_addr)); in lmb_to_memblock()
192 static bool lmb_is_removable(struct of_drconf_cell *lmb) in lmb_is_removable() argument
199 if (!(lmb->flags & DRCONF_MEM_ASSIGNED)) in lmb_is_removable()
204 phys_addr = lmb->base_addr; in lmb_is_removable()
220 static int dlpar_remove_lmb(struct of_drconf_cell *lmb) in dlpar_remove_lmb() argument
226 if (!lmb_is_removable(lmb)) in dlpar_remove_lmb()
229 mem_block = lmb_to_memblock(lmb); in dlpar_remove_lmb()
239 nid = memory_add_physaddr_to_nid(lmb->base_addr); in dlpar_remove_lmb()
241 remove_memory(nid, lmb->base_addr, block_sz); in dlpar_remove_lmb()
244 memblock_remove(lmb->base_addr, block_sz); in dlpar_remove_lmb()
246 dlpar_release_drc(lmb->drc_index); in dlpar_remove_lmb()
248 lmb->flags &= ~DRCONF_MEM_ASSIGNED; in dlpar_remove_lmb()
372 static int dlpar_remove_lmb(struct of_drconf_cell *lmb) in dlpar_remove_lmb() argument
388 static int dlpar_add_lmb(struct of_drconf_cell *lmb) in dlpar_add_lmb() argument
394 if (lmb->flags & DRCONF_MEM_ASSIGNED) in dlpar_add_lmb()
399 rc = dlpar_acquire_drc(lmb->drc_index); in dlpar_add_lmb()
404 nid = memory_add_physaddr_to_nid(lmb->base_addr); in dlpar_add_lmb()
407 rc = add_memory(nid, lmb->base_addr, block_sz); in dlpar_add_lmb()
409 dlpar_release_drc(lmb->drc_index); in dlpar_add_lmb()
414 rc = memblock_add(lmb->base_addr, block_sz); in dlpar_add_lmb()
416 remove_memory(nid, lmb->base_addr, block_sz); in dlpar_add_lmb()
417 dlpar_release_drc(lmb->drc_index); in dlpar_add_lmb()
421 mem_block = lmb_to_memblock(lmb); in dlpar_add_lmb()
423 remove_memory(nid, lmb->base_addr, block_sz); in dlpar_add_lmb()
424 dlpar_release_drc(lmb->drc_index); in dlpar_add_lmb()
431 remove_memory(nid, lmb->base_addr, block_sz); in dlpar_add_lmb()
432 dlpar_release_drc(lmb->drc_index); in dlpar_add_lmb()
436 lmb->flags |= DRCONF_MEM_ASSIGNED; in dlpar_add_lmb()