Blob Blame History Raw
From a8765c86f18d2af303131e546239133af6d5d68d Mon Sep 17 00:00:00 2001
From: Lucas De Marchi <lucas.demarchi@intel.com>
Date: Fri, 30 Jul 2021 12:11:15 -0700
Subject: drm/i915/xehp: Fix missing sentinel on mcr_ranges_xehp
Git-commit: 3989de0ef562a9168782258f3c6d2f517d82bbed
Patch-mainline: v5.15-rc1
References: jsc#SLE-22601

There's a missing sentinel since we are not using ARRAY_SIZE(), but rather
checking that the .start is 0 to stop the iteration in mcr_range().

	BUG: KASAN: global-out-of-bounds in mcr_range.isra.0+0x69/0xa0 [i915]
	Read of size 4 at addr ffffffffa0889928 by task modprobe/3881

Fixes: d8905ba705ab ("drm/i915/xehp: Define multicast register ranges")
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210730191115.2514581-1-lucas.demarchi@intel.com
Signed-off-by: Patrik Jakobsson <pjakobsson@suse.de>
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 9173df59821a..053fa7251cd0 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -2000,6 +2000,7 @@ static const struct mcr_range mcr_ranges_xehp[] = {
 	{ .start =  0xdc00, .end =  0xffff },
 	{ .start = 0x17000, .end = 0x17fff },
 	{ .start = 0x24a00, .end = 0x24a7f },
+	{},
 };
 
 static bool mcr_range(struct drm_i915_private *i915, u32 offset)
-- 
2.33.1