Lines Matching refs:devmem

497 	struct dmirror_chunk *devmem;  in dmirror_allocate_chunk()  local
505 devmem = kzalloc(sizeof(*devmem), GFP_KERNEL); in dmirror_allocate_chunk()
506 if (!devmem) in dmirror_allocate_chunk()
515 devmem->pagemap.range.start = res->start; in dmirror_allocate_chunk()
516 devmem->pagemap.range.end = res->end; in dmirror_allocate_chunk()
517 devmem->pagemap.type = MEMORY_DEVICE_PRIVATE; in dmirror_allocate_chunk()
520 devmem->pagemap.range.start = (MINOR(mdevice->cdevice.dev) - 2) ? in dmirror_allocate_chunk()
523 devmem->pagemap.range.end = devmem->pagemap.range.start + in dmirror_allocate_chunk()
525 devmem->pagemap.type = MEMORY_DEVICE_COHERENT; in dmirror_allocate_chunk()
532 devmem->pagemap.nr_range = 1; in dmirror_allocate_chunk()
533 devmem->pagemap.ops = &dmirror_devmem_ops; in dmirror_allocate_chunk()
534 devmem->pagemap.owner = mdevice; in dmirror_allocate_chunk()
552 ptr = memremap_pages(&devmem->pagemap, numa_node_id()); in dmirror_allocate_chunk()
561 devmem->mdevice = mdevice; in dmirror_allocate_chunk()
562 pfn_first = devmem->pagemap.range.start >> PAGE_SHIFT; in dmirror_allocate_chunk()
563 pfn_last = pfn_first + (range_len(&devmem->pagemap.range) >> PAGE_SHIFT); in dmirror_allocate_chunk()
564 mdevice->devmem_chunks[mdevice->devmem_count++] = devmem; in dmirror_allocate_chunk()
592 if (res && devmem->pagemap.type == MEMORY_DEVICE_PRIVATE) in dmirror_allocate_chunk()
593 release_mem_region(devmem->pagemap.range.start, in dmirror_allocate_chunk()
594 range_len(&devmem->pagemap.range)); in dmirror_allocate_chunk()
596 kfree(devmem); in dmirror_allocate_chunk()
1233 static void dmirror_remove_free_pages(struct dmirror_chunk *devmem) in dmirror_remove_free_pages() argument
1235 struct dmirror_device *mdevice = devmem->mdevice; in dmirror_remove_free_pages()
1239 if (dmirror_page_to_chunk(page) == devmem) in dmirror_remove_free_pages()
1250 struct dmirror_chunk *devmem = in dmirror_device_remove_chunks() local
1254 devmem->remove = true; in dmirror_device_remove_chunks()
1255 dmirror_remove_free_pages(devmem); in dmirror_device_remove_chunks()
1258 dmirror_device_evict_chunk(devmem); in dmirror_device_remove_chunks()
1259 memunmap_pages(&devmem->pagemap); in dmirror_device_remove_chunks()
1260 if (devmem->pagemap.type == MEMORY_DEVICE_PRIVATE) in dmirror_device_remove_chunks()
1261 release_mem_region(devmem->pagemap.range.start, in dmirror_device_remove_chunks()
1262 range_len(&devmem->pagemap.range)); in dmirror_device_remove_chunks()
1263 kfree(devmem); in dmirror_device_remove_chunks()