2021-08-13 17:16:14

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] drm/i915/selftest: Fix use of err in igt_reset_{fail,nop}_engine()

Clang warns:

In file included from drivers/gpu/drm/i915/gt/intel_reset.c:1514:
drivers/gpu/drm/i915/gt/selftest_hangcheck.c:465:62: warning: variable
'err' is uninitialized when used here [-Wuninitialized]
pr_err("[%s] Create context failed: %d!\n", engine->name, err);
^~~
...
drivers/gpu/drm/i915/gt/selftest_hangcheck.c:580:62: warning: variable
'err' is uninitialized when used here [-Wuninitialized]
pr_err("[%s] Create context failed: %d!\n", engine->name, err);
^~~
...
2 warnings generated.

This appears to be a copy and paste issue. Use ce directly using the %pe
specifier to pretty print the error code so that err is not used
uninitialized in these functions.

Fixes: 3a7b72665ea5 ("drm/i915/selftest: Bump selftest timeouts for hangcheck")
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 08f011f893b2..2c1ed32ca5ac 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -462,7 +462,7 @@ static int igt_reset_nop_engine(void *arg)

ce = intel_context_create(engine);
if (IS_ERR(ce)) {
- pr_err("[%s] Create context failed: %d!\n", engine->name, err);
+ pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
return PTR_ERR(ce);
}

@@ -577,7 +577,7 @@ static int igt_reset_fail_engine(void *arg)

ce = intel_context_create(engine);
if (IS_ERR(ce)) {
- pr_err("[%s] Create context failed: %d!\n", engine->name, err);
+ pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
return PTR_ERR(ce);
}


base-commit: 927dfdd09d8c03ba100ed0c8c3915f8e1d1f5556
--
2.33.0.rc2


2021-08-23 19:09:43

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [Intel-gfx] [PATCH] drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine()

Ping? This is a pretty clear bug and it is not fixed in -next or
drm-intel at this point.

On Fri, Aug 13, 2021 at 10:11:58AM -0700, Nathan Chancellor wrote:
> Clang warns:
>
> In file included from drivers/gpu/drm/i915/gt/intel_reset.c:1514:
> drivers/gpu/drm/i915/gt/selftest_hangcheck.c:465:62: warning: variable
> 'err' is uninitialized when used here [-Wuninitialized]
> pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> ^~~
> ...
> drivers/gpu/drm/i915/gt/selftest_hangcheck.c:580:62: warning: variable
> 'err' is uninitialized when used here [-Wuninitialized]
> pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> ^~~
> ...
> 2 warnings generated.
>
> This appears to be a copy and paste issue. Use ce directly using the %pe
> specifier to pretty print the error code so that err is not used
> uninitialized in these functions.
>
> Fixes: 3a7b72665ea5 ("drm/i915/selftest: Bump selftest timeouts for hangcheck")
> Reported-by: Dan Carpenter <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
> drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> index 08f011f893b2..2c1ed32ca5ac 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> @@ -462,7 +462,7 @@ static int igt_reset_nop_engine(void *arg)
>
> ce = intel_context_create(engine);
> if (IS_ERR(ce)) {
> - pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> + pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
> return PTR_ERR(ce);
> }
>
> @@ -577,7 +577,7 @@ static int igt_reset_fail_engine(void *arg)
>
> ce = intel_context_create(engine);
> if (IS_ERR(ce)) {
> - pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> + pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
> return PTR_ERR(ce);
> }
>
>
> base-commit: 927dfdd09d8c03ba100ed0c8c3915f8e1d1f5556
> --
> 2.33.0.rc2

2021-08-24 09:54:45

by Joonas Lahtinen

[permalink] [raw]
Subject: Re: [Intel-gfx] [PATCH] drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine()

Quoting Nathan Chancellor (2021-08-23 22:08:37)
> Ping? This is a pretty clear bug and it is not fixed in -next or
> drm-intel at this point.

Pushed to drm-intel-gt-next with my R-b.

Regards, Joonas

> On Fri, Aug 13, 2021 at 10:11:58AM -0700, Nathan Chancellor wrote:
> > Clang warns:
> >
> > In file included from drivers/gpu/drm/i915/gt/intel_reset.c:1514:
> > drivers/gpu/drm/i915/gt/selftest_hangcheck.c:465:62: warning: variable
> > 'err' is uninitialized when used here [-Wuninitialized]
> > pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> > ^~~
> > ...
> > drivers/gpu/drm/i915/gt/selftest_hangcheck.c:580:62: warning: variable
> > 'err' is uninitialized when used here [-Wuninitialized]
> > pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> > ^~~
> > ...
> > 2 warnings generated.
> >
> > This appears to be a copy and paste issue. Use ce directly using the %pe
> > specifier to pretty print the error code so that err is not used
> > uninitialized in these functions.
> >
> > Fixes: 3a7b72665ea5 ("drm/i915/selftest: Bump selftest timeouts for hangcheck")
> > Reported-by: Dan Carpenter <[email protected]>
> > Signed-off-by: Nathan Chancellor <[email protected]>
> > ---
> > drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> > index 08f011f893b2..2c1ed32ca5ac 100644
> > --- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> > +++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
> > @@ -462,7 +462,7 @@ static int igt_reset_nop_engine(void *arg)
> >
> > ce = intel_context_create(engine);
> > if (IS_ERR(ce)) {
> > - pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> > + pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
> > return PTR_ERR(ce);
> > }
> >
> > @@ -577,7 +577,7 @@ static int igt_reset_fail_engine(void *arg)
> >
> > ce = intel_context_create(engine);
> > if (IS_ERR(ce)) {
> > - pr_err("[%s] Create context failed: %d!\n", engine->name, err);
> > + pr_err("[%s] Create context failed: %pe!\n", engine->name, ce);
> > return PTR_ERR(ce);
> > }
> >
> >
> > base-commit: 927dfdd09d8c03ba100ed0c8c3915f8e1d1f5556
> > --
> > 2.33.0.rc2