]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
intel-agp: fix a panic with 1M of shared memory, no GTT entries
authorLubomir Rintel <lkundrak@v3.sk>
Tue, 10 Mar 2009 19:55:54 +0000 (12:55 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 17 Mar 2009 00:52:53 +0000 (17:52 -0700)
commit 9c1e8a4ebcc04226cb6f3a1bf1d72f4cafd6b089 upstream.

When GTT size is equal to amount of video memory, the amount of GTT
entries is computed lower than zero, which is invalid and leads to
off-by-one error in intel_i915_configure()

Originally posted here:
http://bugzilla.kernel.org/show_bug.cgi?id=12539
http://bugzilla.redhat.com/show_bug.cgi?id=445592

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Cc: Lubomir Rintel <lkundrak@v3.sk>
Cc: Dave Airlie <airlied@linux.ie>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/char/agp/intel-agp.c

index 5eb23fa48bbf3ebb4bfb6c8993ff02ed2b221a65..c052627423dae7e867a4392e09ee961c24eae0c2 100644 (file)
@@ -633,13 +633,15 @@ static void intel_i830_init_gtt_entries(void)
                        break;
                }
        }
-       if (gtt_entries > 0)
+       if (gtt_entries > 0) {
                dev_info(&agp_bridge->dev->dev, "detected %dK %s memory\n",
                       gtt_entries / KB(1), local ? "local" : "stolen");
-       else
+               gtt_entries /= KB(4);
+       } else {
                dev_info(&agp_bridge->dev->dev,
                       "no pre-allocated video memory detected\n");
-       gtt_entries /= KB(4);
+               gtt_entries = 0;
+       }
 
        intel_private.gtt_entries = gtt_entries;
 }