lkml.org 
[lkml]   [2000]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Linux 2.4.0test11-ac1
    Alan,

    Here is a patch that should fix the problem. I could trim down
    verify_local_APIC() now, but given the code freeze I guess it's for
    post-2.4.

    Maciej

    --
    + Maciej W. Rozycki, Technical University of Gdansk, Poland +
    +--------------------------------------------------------------+
    + e-mail: macro@ds2.pg.gda.pl, PGP key available +
    diff -up --recursive --new-file linux-2.4.0-test11-ac2.macro/arch/i386/kernel/mpparse.c linux-2.4.0-test11-ac2/arch/i386/kernel/mpparse.c
    --- linux-2.4.0-test11-ac2.macro/arch/i386/kernel/mpparse.c Wed Nov 22 21:05:29 2000
    +++ linux-2.4.0-test11-ac2/arch/i386/kernel/mpparse.c Mon Nov 20 18:01:58 2000
    @@ -486,18 +486,6 @@ void __init get_smp_config (void)
    {
    struct intel_mp_floating *mpf = mpf_found;
    printk("Intel MultiProcessor Specification v1.%d\n", mpf->mpf_specification);
    -
    - /* Spot non intel cpus in boards whose bios is a bit loose with the MP
    - specification. If the CPU is intel then it may have an external APIC */
    -
    - if(boot_cpu_data.x86_vendor != X86_VENDOR_INTEL &&
    - !test_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability))
    - {
    - printk(KERN_WARNING "MP table found but your processor appears not to be SMP capable.\n");
    - printk(KERN_WARNING "Boot will continue single processor.\n");
    - return;
    - }
    -
    if (mpf->mpf_feature2 & (1<<7)) {
    printk(" IMCR and PIC compatibility mode.\n");
    pic_mode = 1;
    diff -up --recursive --new-file linux-2.4.0-test11-ac2.macro/arch/i386/kernel/setup.c linux-2.4.0-test11-ac2/arch/i386/kernel/setup.c
    --- linux-2.4.0-test11-ac2.macro/arch/i386/kernel/setup.c Wed Nov 22 21:05:29 2000
    +++ linux-2.4.0-test11-ac2/arch/i386/kernel/setup.c Wed Nov 22 22:22:15 2000
    @@ -779,9 +779,7 @@ void __init setup_arch(char **cmdline_p)
    paging_init();
    #ifdef CONFIG_X86_IO_APIC
    /*
    - * get boot-time SMP configuration:
    - * Don't try and use the SMP configuration/APIC unless the CPU
    - * has a local APIC.
    + * get boot-time SMP configuration:
    */
    if (smp_found_config)
    get_smp_config();
    diff -up --recursive --new-file linux-2.4.0-test11-ac2.macro/arch/i386/kernel/smpboot.c linux-2.4.0-test11-ac2/arch/i386/kernel/smpboot.c
    --- linux-2.4.0-test11-ac2.macro/arch/i386/kernel/smpboot.c Mon Nov 20 18:01:59 2000
    +++ linux-2.4.0-test11-ac2/arch/i386/kernel/smpboot.c Wed Nov 22 22:23:06 2000
    @@ -886,8 +886,10 @@ void __init smp_boot_cpus(void)
    /*
    * If we couldn't find a local APIC, then get out of here now!
    */
    - if (!verify_local_APIC()) {
    - printk(KERN_ERR "BIOS bug, local APIC at 0x%lX not detected!...\n", mp_lapic_addr);
    + if (APIC_INTEGRATED(apic_version[boot_cpu_id]) &&
    + !test_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability)) {
    + printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n",
    + boot_cpu_id);
    printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
    #ifndef CONFIG_VISWS
    io_apic_irqs = 0;
    @@ -896,6 +898,8 @@ void __init smp_boot_cpus(void)
    smp_num_cpus = 1;
    goto smp_done;
    }
    +
    + verify_local_APIC();

    /*
    * If SMP should be disabled, then really disable it!
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:47    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean