Skip to contentSkip to conversation

2.5.24-dj2: oops in finalize_mtrr_state with bochs

PATCH Manfred Spraul 1 participant 1 message Jun 25, 2002

lore
Share & tools
lore
#0 lore raw

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

arch/i386/kernel/cpu/mtrr/mtrr.h +2 -2
diff -u 2.5/arch/i386/kernel/cpu/mtrr/mtrr.h build-2.5/arch/i386/kernel/cpu/mtrr/mtrr.h
@@ -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;