2.5.24-dj2: oops in finalize_mtrr_state with bochs

Manfred Spraul (manfred@colorfullife.com)
Tue, 25 Jun 2002 21:30:34 +0200


This is a multi-part message in MIME format.
--------------000202080702000500080905
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

The bochs cpu emulator (tries to emulate Pentium cpus) oopses in
finalize_mtrr_state():

mtrr_if is NULL, and thus use_intel() crashes.

Patch attached. I've modified is_cpu() as well, without checking if this
macro could be used if mtrr_if is not initialized.

Partially tested - bochs now hangs at the first access to the ide
interface :-(

--
	Manfred

--------------000202080702000500080905 Content-Type: text/plain; name="patch-mtrr-dj2" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-mtrr-dj2"

diff -u 2.5/arch/i386/kernel/cpu/mtrr/mtrr.h build-2.5/arch/i386/kernel/cpu/mtrr/mtrr.h --- 2.5/arch/i386/kernel/cpu/mtrr/mtrr.h Tue Jun 25 20:27:47 2002 +++ build-2.5/arch/i386/kernel/cpu/mtrr/mtrr.h Tue Jun 25 21:22:15 2002 @@ -88,8 +88,8 @@ extern u32 size_or_mask, size_and_mask; extern struct mtrr_ops * mtrr_if; -#define is_cpu(vnd) (mtrr_if->vendor == X86_VENDOR_##vnd) -#define use_intel() (mtrr_if->use_intel_if == 1) +#define is_cpu(vnd) (mtrr_if && mtrr_if->vendor == X86_VENDOR_##vnd) +#define use_intel() (mtrr_if && mtrr_if->use_intel_if == 1) extern unsigned int num_var_ranges;

--------------000202080702000500080905--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/