drm/i915/query: Use struct_size() helper
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 17 Jun 2020 22:03:31 +0000 (17:03 -0500)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 19 Jun 2020 09:17:42 +0000 (10:17 +0100)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200617220331.GA19550@embeddedor
drivers/gpu/drm/i915/i915_query.c

index ef25ce6..9a8fdd3 100644 (file)
@@ -113,8 +113,7 @@ query_engine_info(struct drm_i915_private *i915,
        for_each_uabi_engine(engine, i915)
                num_uabi_engines++;
 
-       len = sizeof(struct drm_i915_query_engine_info) +
-             num_uabi_engines * sizeof(struct drm_i915_engine_info);
+       len = struct_size(query_ptr, engines, num_uabi_engines);
 
        ret = copy_query_item(&query, sizeof(query), len, query_item);
        if (ret != 0)