lkml.org 
[lkml]   [2003]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[RFC][PATCH] linux-2.5.69_clear-smi-fix_A0
From
Date
All,
I've been having problems with ACPI on a box here in our lab, it ends
up that when we clear_IO_APIC() at boot time, we clear the SMI pin that
is setup by the BIOS. This basically clobbers the SMI and we can then
never make the transition into ACPI mode.

I'm not sure if this is the right solution, but I figured I'd post it
and take the flamage if I'm just being dumb. Basically in
clear_IO_APIC_pin, I read the apic entry to make sure the delivery_mode
isn't dest_SMI. If it is, we leave the apic entry alone and return.

With this patch, the box boots and SMIs appear to function properly.

Let me know if you have any thoughts or suggestions.

thanks
-john


diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
--- a/arch/i386/kernel/io_apic.c Tue May 6 14:46:58 2003
+++ b/arch/i386/kernel/io_apic.c Tue May 6 14:46:58 2003
@@ -219,6 +219,14 @@
{
struct IO_APIC_route_entry entry;
unsigned long flags;
+
+ /* Check delivery_mode to be sure we're not clearing an SMI pin */
+ *(((int*)&entry) + 0) = io_apic_read(apic, 0x10 + 2 * pin);
+ *(((int*)&entry) + 1) = io_apic_read(apic, 0x11 + 2 * pin);
+ if (entry.delivery_mode == dest_SMI){
+ printk(KERN_INFO "apic %i pin %i is an SMI pin!\n", apic, pin);
+ return;
+ }

/*
* Disable it in the IO-APIC irq-routing table:


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

\
 
 \ /
  Last update: 2005-03-22 13:35    [W:0.190 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site