[PATCH][next] drm/xe/guc: Fix inverted logic on snapshot->copy check

Colin Ian King posted 1 patch 1 month, 2 weeks ago
drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH][next] drm/xe/guc: Fix inverted logic on snapshot->copy check
Posted by Colin Ian King 1 month, 2 weeks ago
Currently the check to see if snapshot->copy has been allocated is
inverted and ends up dereferencing snapshot->copy when free'ing
objects in the array when it is null or not free'ing the objects
when snapshot->copy is allocated. Fix this by using the correct
non-null pointer check logic.

Fixes: d8ce1a977226 ("drm/xe/guc: Use a two stage dump for GuC logs and add more info")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index 93921f04153f..cc70f448d879 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -122,7 +122,7 @@ void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot)
 	if (!snapshot)
 		return;
 
-	if (!snapshot->copy) {
+	if (snapshot->copy) {
 		for (i = 0; i < snapshot->num_chunks; i++)
 			kfree(snapshot->copy[i]);
 		kfree(snapshot->copy);
-- 
2.39.5
Re: [PATCH][next] drm/xe/guc: Fix inverted logic on snapshot->copy check
Posted by John Harrison 1 month, 2 weeks ago
On 10/9/2024 09:05, Colin Ian King wrote:
> Currently the check to see if snapshot->copy has been allocated is
> inverted and ends up dereferencing snapshot->copy when free'ing
> objects in the array when it is null or not free'ing the objects
> when snapshot->copy is allocated. Fix this by using the correct
> non-null pointer check logic.
>
> Fixes: d8ce1a977226 ("drm/xe/guc: Use a two stage dump for GuC logs and add more info")
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>

Thanks for the fix.

> ---
>   drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
> index 93921f04153f..cc70f448d879 100644
> --- a/drivers/gpu/drm/xe/xe_guc_log.c
> +++ b/drivers/gpu/drm/xe/xe_guc_log.c
> @@ -122,7 +122,7 @@ void xe_guc_log_snapshot_free(struct xe_guc_log_snapshot *snapshot)
>   	if (!snapshot)
>   		return;
>   
> -	if (!snapshot->copy) {
> +	if (snapshot->copy) {
>   		for (i = 0; i < snapshot->num_chunks; i++)
>   			kfree(snapshot->copy[i]);
>   		kfree(snapshot->copy);
Re: [PATCH][next] drm/xe/guc: Fix inverted logic on snapshot->copy check
Posted by Thomas Hellström 1 month, 2 weeks ago
On Wed, 2024-10-09 at 09:32 -0700, John Harrison wrote:
> On 10/9/2024 09:05, Colin Ian King wrote:
> > Currently the check to see if snapshot->copy has been allocated is
> > inverted and ends up dereferencing snapshot->copy when free'ing
> > objects in the array when it is null or not free'ing the objects
> > when snapshot->copy is allocated. Fix this by using the correct
> > non-null pointer check logic.
> > 
> > Fixes: d8ce1a977226 ("drm/xe/guc: Use a two stage dump for GuC logs
> > and add more info")
> > Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
> 
> Thanks for the fix.

Pushed to drm-xe-next. Thanks.

/Thomas



> 
> > ---
> >   drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc_log.c
> > b/drivers/gpu/drm/xe/xe_guc_log.c
> > index 93921f04153f..cc70f448d879 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_log.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_log.c
> > @@ -122,7 +122,7 @@ void xe_guc_log_snapshot_free(struct
> > xe_guc_log_snapshot *snapshot)
> >   	if (!snapshot)
> >   		return;
> >   
> > -	if (!snapshot->copy) {
> > +	if (snapshot->copy) {
> >   		for (i = 0; i < snapshot->num_chunks; i++)
> >   			kfree(snapshot->copy[i]);
> >   		kfree(snapshot->copy);
>