Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8699be3e authored by Ondrej Zary's avatar Ondrej Zary Committed by Eric Anholt
Browse files

intel_agp: Don't oops with zero stolen memory

When "onboard video memory" is set do "disabled" in BIOS on Asus P4P800-VM
board (i865G), kernel oopses with memory corruption:
https://bugs.freedesktop.org/show_bug.cgi?id=28430



Fix that by cleanly aborting the initialization.

Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 43b27f40
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -797,6 +797,10 @@ static int intel_i830_create_gatt_table(struct agp_bridge_data *bridge)

	/* we have to call this as early as possible after the MMIO base address is known */
	intel_i830_init_gtt_entries();
	if (intel_private.gtt_entries == 0) {
		iounmap(intel_private.registers);
		return -ENOMEM;
	}

	agp_bridge->gatt_table = NULL;

@@ -1279,6 +1283,11 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge)

	/* we have to call this as early as possible after the MMIO base address is known */
	intel_i830_init_gtt_entries();
	if (intel_private.gtt_entries == 0) {
		iounmap(intel_private.gtt);
		iounmap(intel_private.registers);
		return -ENOMEM;
	}

	agp_bridge->gatt_table = NULL;

@@ -1387,6 +1396,11 @@ static int intel_i965_create_gatt_table(struct agp_bridge_data *bridge)

	/* we have to call this as early as possible after the MMIO base address is known */
	intel_i830_init_gtt_entries();
	if (intel_private.gtt_entries == 0) {
		iounmap(intel_private.gtt);
		iounmap(intel_private.registers);
		return -ENOMEM;
	}

	agp_bridge->gatt_table = NULL;