OSDN Git Service

drm/v3d: Fix BO stats accounting for dma-buf-imported buffers.
authorEric Anholt <eric@anholt.net>
Thu, 7 Feb 2019 23:26:13 +0000 (15:26 -0800)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Tue, 19 Feb 2019 10:07:36 +0000 (11:07 +0100)
We always decrement at GEM free, so make sure we increment at GEM
creation for dma-bufs.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20190207232613.24981-1-eric@anholt.net
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
drivers/gpu/drm/v3d/v3d_bo.c

index a08766d..b1766f0 100644 (file)
@@ -282,6 +282,7 @@ v3d_prime_import_sg_table(struct drm_device *dev,
                          struct dma_buf_attachment *attach,
                          struct sg_table *sgt)
 {
+       struct v3d_dev *v3d = to_v3d_dev(dev);
        struct drm_gem_object *obj;
        struct v3d_bo *bo;
 
@@ -296,6 +297,11 @@ v3d_prime_import_sg_table(struct drm_device *dev,
        obj->import_attach = attach;
        v3d_bo_get_pages(bo);
 
+       mutex_lock(&v3d->bo_lock);
+       v3d->bo_stats.num_allocated++;
+       v3d->bo_stats.pages_allocated += obj->size >> PAGE_SHIFT;
+       mutex_unlock(&v3d->bo_lock);
+
        v3d_mmu_insert_ptes(bo);
 
        return obj;