lkml.org 
[lkml]   [2002]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Linux 2.4.19-pre3
    Can the authors of this patch post separately on what is fixed here?  I
    apply the following patch to work around an eventual hang of the machine
    due to IRQ0 being "attached" to the IO APIC, and I'm hoping that this
    2.4.19-pre3 patch fixes my problem the correct way. V.s. my workaround
    hack.

    Thanks much,
    --
    Ken.
    brownfld@irridia.com

    On Mon, Mar 11, 2002 at 06:08:19PM -0300, Marcelo Tosatti wrote:
    | - Fix through-8259A mode for IRQ0 routing on APIC (Maciej W. Rozycki/Joe Korty)


    --- linux/arch/i386/kernel/io_apic.c.orig Tue Nov 13 17:28:41 2001
    +++ linux/arch/i386/kernel/io_apic.c Tue Dec 18 15:10:45 2001
    @@ -172,6 +172,7 @@
    int pirq_entries [MAX_PIRQS];
    int pirqs_enabled;
    int skip_ioapic_setup;
    +int pintimer_setup;

    static int __init ioapic_setup(char *str)
    {
    @@ -179,7 +180,14 @@
    return 1;
    }

    +static int __init do_pintimer_setup(char *str)
    +{
    + pintimer_setup = 1;
    + return 1;
    +}
    +
    __setup("noapic", ioapic_setup);
    +__setup("pintimer", do_pintimer_setup);

    static int __init ioapic_pirq_setup(char *str)
    {
    @@ -1524,27 +1532,31 @@
    printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to IO-APIC\n");
    }

    - printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... ");
    - if (pin2 != -1) {
    - printk("\n..... (found pin %d) ...", pin2);
    - /*
    - * legacy devices should be connected to IO APIC #0
    - */
    - setup_ExtINT_IRQ0_pin(pin2, vector);
    - if (timer_irq_works()) {
    - printk("works.\n");
    - if (nmi_watchdog == NMI_IO_APIC) {
    - setup_nmi();
    - check_nmi_watchdog();
    + if ( pintimer_setup )
    + printk(KERN_INFO "...skipping 8259A init for IRQ0\n");
    + else {
    + printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... ");
    + if (pin2 != -1) {
    + printk("\n..... (found pin %d) ...", pin2);
    + /*
    + * legacy devices should be connected to IO APIC #0
    + */
    + setup_ExtINT_IRQ0_pin(pin2, vector);
    + if (timer_irq_works()) {
    + printk("works.\n");
    + if (nmi_watchdog == NMI_IO_APIC) {
    + setup_nmi();
    + check_nmi_watchdog();
    + }
    + return;
    }
    - return;
    + /*
    + * Cleanup, just in case ...
    + */
    + clear_IO_APIC_pin(0, pin2);
    }
    - /*
    - * Cleanup, just in case ...
    - */
    - clear_IO_APIC_pin(0, pin2);
    + printk(" failed.\n");
    }
    - printk(" failed.\n");

    if (nmi_watchdog) {
    printk(KERN_WARNING "timer doesnt work through the IO-APIC - disabling NMI Watchdog!\n");
    -
    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:24    [W:0.026 / U:0.536 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site