lkml.org 
[lkml]   [2004]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: 2.6.7-rc2-mm1 (nforce2 lockup)
Date
Hi Sid,

Can you try the attached patch, please? I reproduced the problem on
my Proliant DL360, and this patch fixes it for me.

The problem was that drivers/serial/8250_acpi.c found COM1 in the
ACPI namespace and called acpi_register_gsi() to set up its IRQ.
ACPI tells us that the COM1 IRQ is edge triggered, active high,
but acpi_register_gsi() was ignoring the edge_level argument,
so it blindly set the COM1 IRQ to be level-triggered.

This is against 2.6.7-rc3-mm1.

diff -u -Nur linux-2.6.7-rc3-mm1.orig/arch/i386/kernel/acpi/boot.c linux-2.6.7-rc3-mm1/arch/i386/kernel/acpi/boot.c
--- linux-2.6.7-rc3-mm1.orig/arch/i386/kernel/acpi/boot.c 2004-06-10 16:26:55.000000000 -0600
+++ linux-2.6.7-rc3-mm1/arch/i386/kernel/acpi/boot.c 2004-06-10 16:30:22.000000000 -0600
@@ -451,10 +451,12 @@
static u16 irq_mask;
extern void eisa_set_level_irq(unsigned int irq);

- if ((gsi < 16) && !((1 << gsi) & irq_mask)) {
- Dprintk(KERN_DEBUG PREFIX "Setting GSI %u as level-triggered\n", gsi);
- irq_mask |= (1 << gsi);
- eisa_set_level_irq(gsi);
+ if (edge_level == ACPI_LEVEL_SENSITIVE) {
+ if ((gsi < 16) && !((1 << gsi) & irq_mask)) {
+ Dprintk(KERN_DEBUG PREFIX "Setting GSI %u as level-triggered\n", gsi);
+ irq_mask |= (1 << gsi);
+ eisa_set_level_irq(gsi);
+ }
}
}
#endif
-
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 14:03    [from the cache]
©2003-2011 Jasper Spaans