Lines Matching refs:devmem
496 struct dmirror_chunk *devmem; in dmirror_allocate_chunk() local
504 devmem = kzalloc(sizeof(*devmem), GFP_KERNEL); in dmirror_allocate_chunk()
505 if (!devmem) in dmirror_allocate_chunk()
514 devmem->pagemap.range.start = res->start; in dmirror_allocate_chunk()
515 devmem->pagemap.range.end = res->end; in dmirror_allocate_chunk()
516 devmem->pagemap.type = MEMORY_DEVICE_PRIVATE; in dmirror_allocate_chunk()
519 devmem->pagemap.range.start = (MINOR(mdevice->cdevice.dev) - 2) ? in dmirror_allocate_chunk()
522 devmem->pagemap.range.end = devmem->pagemap.range.start + in dmirror_allocate_chunk()
524 devmem->pagemap.type = MEMORY_DEVICE_COHERENT; in dmirror_allocate_chunk()
531 devmem->pagemap.nr_range = 1; in dmirror_allocate_chunk()
532 devmem->pagemap.ops = &dmirror_devmem_ops; in dmirror_allocate_chunk()
533 devmem->pagemap.owner = mdevice; in dmirror_allocate_chunk()
551 ptr = memremap_pages(&devmem->pagemap, numa_node_id()); in dmirror_allocate_chunk()
560 devmem->mdevice = mdevice; in dmirror_allocate_chunk()
561 pfn_first = devmem->pagemap.range.start >> PAGE_SHIFT; in dmirror_allocate_chunk()
562 pfn_last = pfn_first + (range_len(&devmem->pagemap.range) >> PAGE_SHIFT); in dmirror_allocate_chunk()
563 mdevice->devmem_chunks[mdevice->devmem_count++] = devmem; in dmirror_allocate_chunk()
591 if (res && devmem->pagemap.type == MEMORY_DEVICE_PRIVATE) in dmirror_allocate_chunk()
592 release_mem_region(devmem->pagemap.range.start, in dmirror_allocate_chunk()
593 range_len(&devmem->pagemap.range)); in dmirror_allocate_chunk()
595 kfree(devmem); in dmirror_allocate_chunk()
1255 static void dmirror_remove_free_pages(struct dmirror_chunk *devmem) in dmirror_remove_free_pages() argument
1257 struct dmirror_device *mdevice = devmem->mdevice; in dmirror_remove_free_pages()
1261 if (dmirror_page_to_chunk(page) == devmem) in dmirror_remove_free_pages()
1272 struct dmirror_chunk *devmem = in dmirror_device_remove_chunks() local
1276 devmem->remove = true; in dmirror_device_remove_chunks()
1277 dmirror_remove_free_pages(devmem); in dmirror_device_remove_chunks()
1280 dmirror_device_evict_chunk(devmem); in dmirror_device_remove_chunks()
1281 memunmap_pages(&devmem->pagemap); in dmirror_device_remove_chunks()
1282 if (devmem->pagemap.type == MEMORY_DEVICE_PRIVATE) in dmirror_device_remove_chunks()
1283 release_mem_region(devmem->pagemap.range.start, in dmirror_device_remove_chunks()
1284 range_len(&devmem->pagemap.range)); in dmirror_device_remove_chunks()
1285 kfree(devmem); in dmirror_device_remove_chunks()