Re: [PATH] i915: Read outside array bounds
From: Jesse Barnes <hidden>
Date: 2009-08-02 23:45:25
On Wed, 29 Jul 2009 23:06:14 +0200 "Rafael J. Wysocki" [off-list ref] wrote:
On Tuesday 28 July 2009, Andrew Morton wrote:quoted
(cc jbarnes) On Sun, 26 Jul 2009 00:50:38 +0200 Roel Kluin [off-list ref] wrote:quoted
dev_priv->saveSWF1 is a 16 element array, but this reads up to index 22 Signed-off-by: Roel Kluin <redacted> --- save_state does not do this addition, can it be removed? please review.diff --git a/drivers/gpu/drm/i915/i915_suspend.cb/drivers/gpu/drm/i915/i915_suspend.c index 9e1d16e..1d04e19 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c+++ b/drivers/gpu/drm/i915/i915_suspend.c@@ -598,7 +598,7 @@ int i915_restore_state(struct drm_device *dev) for (i = 0; i < 16; i++) { I915_WRITE(SWF00 + (i << 2),dev_priv->saveSWF0[i]); - I915_WRITE(SWF10 + (i << 2), dev_priv->saveSWF1[i+7]); + I915_WRITE(SWF10 + (i << 2), dev_priv->saveSWF1[i]); } for (i = 0; i < 3; i++) I915_WRITE(SWF30 + (i << 2), dev_priv->saveSWF2[i]);This looks rather correct and the original code looked rather wrong. Someone please tell me that this might fix one of our splendid number of i915 bugs :(Hmm, Jesse, what's your opinion about this one? It looks correct to me.
Yeah, the fix looks fine. And yes, we're upstreaming bug fixes as quickly as we responsibly can. Jesse