Add missing return value handling of drm_vma_node_allow_once() 
since the failure to insert the file tag for the node should 
indicate the whole mmap_offset_attach() failed as well.

v2: update changelog and return error directly as Chris Wilson, 
    Andi Shyti and Ville Syrjala suggested.
link to v1: https://lore.kernel.org/all/[email protected]/

Found by Linux Verification Center (linuxtesting.org) with svace.

Signed-off-by: Alexandr Sapozhnikov <[email protected]>
---
 drivers/gpu/drm/i915/gem/i915_gem_mman.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 75f5b0e871ef..eb76f8f2bd95 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -758,8 +758,11 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
        mmo = insert_mmo(obj, mmo);
        GEM_BUG_ON(lookup_mmo(obj, mmap_type) != mmo);
 out:
-       if (file)
-               drm_vma_node_allow_once(&mmo->vma_node, file);
+       if (file) {
+               err = drm_vma_node_allow_once(&mmo->vma_node, file);
+               if (err)
+                       return ERR_PTR(err);
+       }
        return mmo;
 
 err:
-- 
2.43.0

Reply via email to