[igt-dev] [PATCH igt] lib: Use C99 initialisers to clear context parameters
Chris Wilson
chris at chris-wilson.co.uk
Wed Mar 7 12:17:59 UTC 2018
valgrind complains we feed uninitialised stack into the CONTEXT_SETPARAM
ioctl. It is unused by the kernel, but valgrind doesn't know that and
it's easy enough to clear the struct to prevent the warning.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
lib/igt_gt.c | 29 ++++++++++++-----------------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/lib/igt_gt.c b/lib/igt_gt.c
index 799ca1ae..168c5a07 100644
--- a/lib/igt_gt.c
+++ b/lib/igt_gt.c
@@ -126,11 +126,10 @@ void igt_require_hang_ring(int fd, int ring)
static unsigned context_get_ban(int fd, unsigned ctx)
{
- struct drm_i915_gem_context_param param;
-
- param.param = I915_CONTEXT_PARAM_BANNABLE;
- param.value = 0;
- param.size = 0;
+ struct drm_i915_gem_context_param param = {
+ .ctx_id = ctx,
+ .param = I915_CONTEXT_PARAM_BANNABLE,
+ };
if (__gem_context_get_param(fd, ¶m) == -EINVAL) {
igt_assert(param.value == 0);
@@ -143,13 +142,11 @@ static unsigned context_get_ban(int fd, unsigned ctx)
static void context_set_ban(int fd, unsigned ctx, unsigned ban)
{
- struct drm_i915_gem_context_param param;
-
- memset(¶m, 0, sizeof(param));
- param.ctx_id = ctx;
- param.value = ban;
- param.size = 0;
- param.param = I915_CONTEXT_PARAM_BANNABLE;
+ struct drm_i915_gem_context_param param = {
+ .ctx_id = ctx,
+ .param = I915_CONTEXT_PARAM_BANNABLE,
+ .value = ban,
+ };
if(__gem_context_set_param(fd, ¶m) == -EINVAL) {
igt_assert(param.value == ban);
@@ -160,7 +157,9 @@ static void context_set_ban(int fd, unsigned ctx, unsigned ban)
igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags)
{
- struct drm_i915_gem_context_param param;
+ struct drm_i915_gem_context_param param = {
+ .ctx_id = ctx,
+ };
unsigned ban;
igt_assert(igt_sysfs_set_parameter
@@ -172,9 +171,6 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags)
if (!igt_check_boolean_env_var("IGT_HANG_WITHOUT_RESET", false))
igt_require(has_gpu_reset(fd));
- param.ctx_id = ctx;
- param.size = 0;
-
if ((flags & HANG_ALLOW_CAPTURE) == 0) {
param.param = I915_CONTEXT_PARAM_NO_ERROR_CAPTURE;
param.value = 1;
@@ -194,7 +190,6 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags)
void igt_disallow_hang(int fd, igt_hang_t arg)
{
-
context_set_ban(fd, arg.ctx, arg.ban);
if ((arg.flags & HANG_ALLOW_CAPTURE) == 0) {
--
2.16.2
More information about the igt-dev
mailing list