DF-4256 / fix.diff
diff --git a/sys/dev/agp/intel-gtt.c b/sys/dev/agp/intel-gtt.c index 1111111..2222222 100644 --- a/sys/dev/agp/intel-gtt.c +++ b/sys/dev/agp/intel-gtt.c @@ -694,6 +694,12 @@ agp_i915_get_stolen_size(device_t dev) gtt_size += 4; sc->stolen_size = stolen * 1024; + if (stolen < gtt_size) { + device_printf(dev, "stolen memory (%dk) smaller than the " + "GTT (%dk) - bad firmware configuration\n", stolen, gtt_size); + sc->stolen = 0; + return (0); + } sc->stolen = (stolen - gtt_size) * 1024 / 4096; return (0); |