intel-agp: fix a panic with 1M of shared memory, no GTT entries

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>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Lubomir Rintel 2009-03-10 12:55:54 -07:00 committed by Linus Torvalds
parent 229cc58ba2
commit 9c1e8a4ebc

View 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;
}