Lines Matching refs:dirty

13 #include "dirty.h"
20 return pds_vfio->dirty.is_enabled;
25 pds_vfio->dirty.is_enabled = true;
30 pds_vfio->dirty.is_enabled = false;
95 static void pds_vfio_dirty_free_bitmaps(struct pds_vfio_dirty *dirty)
97 if (!dirty->regions)
100 for (int i = 0; i < dirty->num_regions; i++) {
101 struct pds_vfio_region *region = &dirty->regions[i];
129 struct pds_vfio_dirty *dirty = &pds_vfio->dirty;
131 if (!dirty->regions)
134 for (int i = 0; i < dirty->num_regions; i++) {
135 struct pds_vfio_region *region = &dirty->regions[i];
173 static void pds_vfio_dirty_free_regions(struct pds_vfio_dirty *dirty)
175 vfree(dirty->regions);
176 dirty->regions = NULL;
177 dirty->num_regions = 0;
185 struct pds_vfio_dirty *dirty = &pds_vfio->dirty;
189 dirty->regions = vcalloc(num_regions, sizeof(struct pds_vfio_region));
190 if (!dirty->regions)
192 dirty->num_regions = num_regions;
196 struct pds_vfio_region *region = &dirty->regions[i];
208 dev_err(&pdev->dev, "Failed to alloc dirty bitmaps: %pe\n",
215 dev_err(&pdev->dev, "Failed to alloc dirty sg lists: %pe\n",
236 pds_vfio_dirty_free_bitmaps(dirty);
238 pds_vfio_dirty_free_regions(dirty);
258 dev_dbg(&pdev->dev, "vf%u: Start dirty page tracking\n",
264 /* find if dirty tracking is disabled, i.e. num_regions == 0 */
268 dev_err(&pdev->dev, "Failed to get dirty status, err %pe\n",
278 "Device doesn't support dirty tracking, max_regions %d\n",
332 "Failed to allocate %d regions for tracking dirty regions: %pe\n",
359 pds_vfio_dirty_free_bitmaps(&pds_vfio->dirty);
360 pds_vfio_dirty_free_regions(&pds_vfio->dirty);
507 struct pds_vfio_dirty *dirty = &pds_vfio->dirty;
509 for (int i = 0; i < dirty->num_regions; i++) {
510 struct pds_vfio_region *region = &dirty->regions[i];
530 dev_dbg(dev, "vf%u: Get dirty page bitmap\n", pds_vfio->vf_id);
533 dev_err(dev, "vf%u: Sync failed, dirty tracking is disabled\n",
581 "Syncing dirty bitmap, iova 0x%lx length 0x%lx, bmp_offset %llu bmp_bytes %llu\n",
601 unsigned long length, struct iova_bitmap *dirty)
609 err = pds_vfio_dirty_sync(pds_vfio, dirty, iova, length);