]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/gem: Comment on inability to check args.pad for MMAP_OFFSET
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 7 Dec 2019 22:26:44 +0000 (22:26 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 9 Dec 2019 09:57:57 +0000 (09:57 +0000)
Since we didn't check and insist that args.pad must be zero for MMAP_GTT
historically, we cannot insert a check now as old userspace may be
feeding in garbage. As such the lack of check is enshrined into the ABI,
so add a comment to remind us we cannot add the check later.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191207222644.2830129-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_mman.c

index 3a3f30bc8ac77e07dd52a239e39adbb256632698..879fff8adc48ae1f85cd2061c275726100ee5af1 100644 (file)
@@ -620,6 +620,15 @@ i915_gem_mmap_offset_ioctl(struct drm_device *dev, void *data,
        enum i915_mmap_type type;
        int err;
 
+       /*
+        * Historically we failed to check args.pad and args.offset
+        * and so we cannot use those fields for user input and we cannot
+        * add -EINVAL for them as the ABI is fixed, i.e. old userspace
+        * may be feeding in garbage in those fields.
+        *
+        * if (args->pad) return -EINVAL; is verbotten!
+        */
+
        err = i915_user_extensions(u64_to_user_ptr(args->extensions),
                                   NULL, 0, NULL);
        if (err)