Lines Matching refs:dirty

20 	return pds_vfio->dirty.is_enabled;  in pds_vfio_dirty_is_enabled()
25 pds_vfio->dirty.is_enabled = true; in pds_vfio_dirty_set_enabled()
30 pds_vfio->dirty.is_enabled = false; in pds_vfio_dirty_set_disabled()
73 static int pds_vfio_dirty_alloc_bitmaps(struct pds_vfio_dirty *dirty, in pds_vfio_dirty_alloc_bitmaps() argument
88 dirty->host_seq.bmp = host_seq_bmp; in pds_vfio_dirty_alloc_bitmaps()
89 dirty->host_ack.bmp = host_ack_bmp; in pds_vfio_dirty_alloc_bitmaps()
94 static void pds_vfio_dirty_free_bitmaps(struct pds_vfio_dirty *dirty) in pds_vfio_dirty_free_bitmaps() argument
96 vfree(dirty->host_seq.bmp); in pds_vfio_dirty_free_bitmaps()
97 vfree(dirty->host_ack.bmp); in pds_vfio_dirty_free_bitmaps()
98 dirty->host_seq.bmp = NULL; in pds_vfio_dirty_free_bitmaps()
99 dirty->host_ack.bmp = NULL; in pds_vfio_dirty_free_bitmaps()
120 if (pds_vfio->dirty.host_seq.sgl) in pds_vfio_dirty_free_sgl()
121 __pds_vfio_dirty_free_sgl(pds_vfio, &pds_vfio->dirty.host_seq); in pds_vfio_dirty_free_sgl()
122 if (pds_vfio->dirty.host_ack.sgl) in pds_vfio_dirty_free_sgl()
123 __pds_vfio_dirty_free_sgl(pds_vfio, &pds_vfio->dirty.host_ack); in pds_vfio_dirty_free_sgl()
160 struct pds_vfio_dirty *dirty = &pds_vfio->dirty; in pds_vfio_dirty_alloc_sgl() local
163 err = __pds_vfio_dirty_alloc_sgl(pds_vfio, &dirty->host_seq, in pds_vfio_dirty_alloc_sgl()
168 err = __pds_vfio_dirty_alloc_sgl(pds_vfio, &dirty->host_ack, in pds_vfio_dirty_alloc_sgl()
171 __pds_vfio_dirty_free_sgl(pds_vfio, &dirty->host_seq); in pds_vfio_dirty_alloc_sgl()
184 struct pds_vfio_dirty *dirty = &pds_vfio->dirty; in pds_vfio_dirty_enable() local
277 err = pds_vfio_dirty_alloc_bitmaps(dirty, page_count / BITS_PER_BYTE); in pds_vfio_dirty_enable()
291 dirty->region_start = region_start; in pds_vfio_dirty_enable()
292 dirty->region_size = region_size; in pds_vfio_dirty_enable()
293 dirty->region_page_size = region_page_size; in pds_vfio_dirty_enable()
303 pds_vfio_dirty_free_bitmaps(dirty); in pds_vfio_dirty_enable()
316 pds_vfio_dirty_free_bitmaps(&pds_vfio->dirty); in pds_vfio_dirty_disable()
408 return pds_vfio_dirty_seq_ack(pds_vfio, &pds_vfio->dirty.host_ack, in pds_vfio_dirty_write_ack()
415 return pds_vfio_dirty_seq_ack(pds_vfio, &pds_vfio->dirty.host_seq, in pds_vfio_dirty_read_seq()
423 u64 page_size = pds_vfio->dirty.region_page_size; in pds_vfio_dirty_process_bitmaps()
424 u64 region_start = pds_vfio->dirty.region_start; in pds_vfio_dirty_process_bitmaps()
430 seq = (__le64 *)((u64)pds_vfio->dirty.host_seq.bmp + bmp_offset); in pds_vfio_dirty_process_bitmaps()
431 ack = (__le64 *)((u64)pds_vfio->dirty.host_ack.bmp + bmp_offset); in pds_vfio_dirty_process_bitmaps()
459 struct pds_vfio_dirty *dirty = &pds_vfio->dirty; in pds_vfio_dirty_sync() local
472 pages = DIV_ROUND_UP(length, pds_vfio->dirty.region_page_size); in pds_vfio_dirty_sync()
478 pds_vfio->vf_id, iova, length, pds_vfio->dirty.region_page_size, in pds_vfio_dirty_sync()
481 if (!length || ((iova - dirty->region_start + length) > dirty->region_size)) { in pds_vfio_dirty_sync()
488 bmp_bytes = ALIGN(DIV_ROUND_UP(length / dirty->region_page_size, in pds_vfio_dirty_sync()
498 bmp_offset = DIV_ROUND_UP((iova - dirty->region_start) / in pds_vfio_dirty_sync()
499 dirty->region_page_size, sizeof(u64)); in pds_vfio_dirty_sync()
522 unsigned long length, struct iova_bitmap *dirty) in pds_vfio_dma_logging_report() argument
530 err = pds_vfio_dirty_sync(pds_vfio, dirty, iova, length); in pds_vfio_dma_logging_report()