On 03/10/2018 13:42, Chris Wilson wrote:
Quoting Chris Wilson (2018-10-03 13:28:09)
Quoting Tvrtko Ursulin (2018-10-03 10:58:55)
+static int
+query_engine_info(struct drm_i915_private *i915,
+ struct drm_i915_query_item *query_item)
+{
+ for_each_engine(engine, i915, id) {
+ struct drm_i915_engine_info info;
+
+ if (__copy_from_user(&info, info_ptr, sizeof(info)))
+ return -EFAULT;
+
+ if (memcmp(&info, &zero_info, sizeof(info)))
+ return -EINVAL;
You want to have this be an in/out?
I am not sure, perhaps there isn't any benefit in checking that
userspace provided a zeroed block at this level since it is an out only
block. Instead I could just zero the unused fields for them?
Fwiw, you can use memchr_inv() instead of having a zeroed struct.
Ah cool, thanks, saw that one before but forgot about it.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx