diff options
| author | Lubomir Rintel <[email protected]> | 2009-03-10 12:55:54 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2009-03-10 15:55:11 -0700 |
| commit | 9c1e8a4ebcc04226cb6f3a1bf1d72f4cafd6b089 (patch) | |
| tree | 30a76767516304283f29d1997cd6a285e39d160a | |
| parent | 229cc58ba2b5a83b0b55764c6cb98695c106238a (diff) | |
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 <[email protected]>
Cc: Lubomir Rintel <[email protected]>
Cc: Dave Airlie <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
| -rw-r--r-- | drivers/char/agp/intel-agp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index c7714185f831..4373adb2119a 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c @@ -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; } |