Cumulative on previous patch 1/2.
The MCA setup performed in setup.[Sc] is only needed when CONFIG_MCA=y.
This wraps the setup with CONFIG_MCA and removes EXPORT_SYMBOL(machine_id) as no modules use it.
Moved MCA setup variables from processor.h to mca.h as nothing else uses them.
Signed-off-by: Andrew Hendry <[email protected] >
diff -uprN -X dontdiff linux-2.6.21-vanilla/arch/i386/boot/setup.S linux-2.6.21/arch/i386/boot/setup.S
--- linux-2.6.21-vanilla/arch/i386/boot/setup.S 2007-05-06 13:05:15.000000000 +1000
+++ linux-2.6.21/arch/i386/boot/setup.S 2007-05-06 17:39:22.000000000 +1000
@@ -453,6 +453,7 @@ no_disk1:
rep
stosb
is_disk1:
+#ifdef CONFIG_MCA
# check for Micro Channel (MCA) bus
movw %cs, %ax # aka SETUPSEG
subw $DELTA_INITSEG, %ax # aka INITSEG
@@ -483,6 +484,7 @@ sysdesc_ok:
movsb
popw %ds
no_mca:
+#endif
#ifdef CONFIG_X86_VOYAGER
movb $0xff, 0x40 # flag on config found
movb $0xc0, %al
diff -uprN -X dontdiff linux-2.6.21-vanilla/arch/i386/kernel/setup.c linux-2.6.21/arch/i386/kernel/setup.c
--- linux-2.6.21-vanilla/arch/i386/kernel/setup.c 2007-05-06 13:05:18.000000000 +1000
+++ linux-2.6.21/arch/i386/kernel/setup.c 2007-05-06 17:42:29.000000000 +1000
@@ -84,13 +84,11 @@ EXPORT_SYMBOL(boot_cpu_data);
unsigned long mmu_cr4_features;
-/* for MCA, but anyone else can use it if they want */
-unsigned int machine_id;
#ifdef CONFIG_MCA
-EXPORT_SYMBOL(machine_id);
-#endif
+unsigned int machine_id;
unsigned int machine_submodel_id;
unsigned int BIOS_revision;
+#endif
/* Boot loader ID as an integer, for the benefit of proc_dointvec */
int bootloader_type;
@@ -489,8 +487,6 @@ static void set_mca_bus(int x)
{
MCA_bus = x;
}
-#else
-static void set_mca_bus(int x) { }
#endif
/* Overridden in paravirt.c if CONFIG_PARAVIRT */
@@ -533,12 +529,15 @@ void __init setup_arch(char **cmdline_p)
apm_info.bios = APM_BIOS_INFO;
ist_info = IST_INFO;
saved_videomode = VIDEO_MODE;
+
+#ifdef CONFIG_MCA
if( SYS_DESC_TABLE.length != 0 ) {
set_mca_bus(SYS_DESC_TABLE.table[3] & 0x2);
machine_id = SYS_DESC_TABLE.table[0];
machine_submodel_id = SYS_DESC_TABLE.table[1];
BIOS_revision = SYS_DESC_TABLE.table[2];
}
+#endif
bootloader_type = LOADER_TYPE;
#ifdef CONFIG_BLK_DEV_RAM
diff -uprN -X dontdiff linux-2.6.21-vanilla/include/asm-i386/processor.h linux-2.6.21/include/asm-i386/processor.h
--- linux-2.6.21-vanilla/include/asm-i386/processor.h 2007-05-06 13:09:29.000000000 +1000
+++ linux-2.6.21/include/asm-i386/processor.h 2007-05-07 21:01:10.000000000 +1000
@@ -259,12 +259,6 @@ static inline void __mwait(unsigned long
extern void mwait_idle_with_hints(unsigned long eax, unsigned long ecx);
-/* from system description table in BIOS. Mostly for MCA use, but
-others may find it useful. */
-extern unsigned int machine_id;
-extern unsigned int machine_submodel_id;
-extern unsigned int BIOS_revision;
-
/* Boot loader type from the setup header */
extern int bootloader_type;
diff -uprN -X dontdiff linux-2.6.21-vanilla/include/linux/mca.h linux-2.6.21/include/linux/mca.h
--- linux-2.6.21-vanilla/include/linux/mca.h 2007-05-06 13:09:31.000000000 +1000
+++ linux-2.6.21/include/linux/mca.h 2007-05-07 21:01:01.000000000 +1000
@@ -34,6 +34,11 @@ typedef int (*MCA_ProcFn)(char* buf, int
*/
extern void mca_handle_nmi(void);
+/* From system description table in BIOS */
+extern unsigned int machine_id;
+extern unsigned int machine_submodel_id;
+extern unsigned int BIOS_revision;
+
enum MCA_AdapterStatus {
MCA_ADAPTER_NORMAL = 0,
MCA_ADAPTER_NONE = 1,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]