2.5.24-dj2: oops in finalize_mtrr_state with bochs

From: Manfred Spraul (manfred@colorfullife.com)
Date: Tue Jun 25 2002 - 14:30:34 EST


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

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;

- 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/



This archive was generated by hypermail 2b29 : Sun Jun 30 2002 - 22:00:10 EST