[PATCH v2 5/7] drm/xe/rtp: Fix off-by-one when processing rules

Gustavo Sousa gustavo.sousa at intel.com
Fri Jul 26 16:19:38 UTC 2024


Quoting Lucas De Marchi (2024-07-26 03:43:35-03:00)
>Gustavo noticed an odd "+ 2" in rtp_mark_active() while processing
>rtp rules and pointed that it should be "+ 1". In fact, while processing
>entries without actions (OOB workarounds), if the WA is activated and
>has OR rules, it will also inadvertently activate the very next
>workaround.
>
>Test in a LNL B0 platform by moving 18024947630 on top of 16020292621,
>makes the latter become active:
>
>        $ cat /sys/kernel/debug/dri/0/gt0/workarounds
>        ...
>        OOB Workarounds
>                18024947630
>                16020292621
>                14018094691
>                16022287689
>                13011645652
>                22019338487_display
>
>In future a kunit test will be added to cover the rtp checks for entries
>without actions.
>
>Fixes: fe19328b900c ("drm/xe/rtp: Add support for entries with no action")
>Cc: Gustavo Sousa <gustavo.sousa at intel.com>
>Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

>---
> drivers/gpu/drm/xe/xe_rtp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
>index acb35b95a3f6..f054ac9cf06d 100644
>--- a/drivers/gpu/drm/xe/xe_rtp.c
>+++ b/drivers/gpu/drm/xe/xe_rtp.c
>@@ -232,7 +232,7 @@ static void rtp_mark_active(struct xe_device *xe,
>         if (first == last)
>                 bitmap_set(ctx->active_entries, first, 1);
>         else
>-                bitmap_set(ctx->active_entries, first, last - first + 2);
>+                bitmap_set(ctx->active_entries, first, last - first + 1);
> }
> 
> /**
>-- 
>2.43.0
>


More information about the Intel-xe mailing list