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    [W:0.022 / U:335.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site