Re: [Fastboot] Re: [PATCH 1/4] stack overflow safe kdump (i386) - safe_smp_processor_id

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2005-11-28 at 21:16 -0700, Eric W. Biederman wrote: 
> Andi Kleen <[email protected]> writes:
> 
> > Fernando Luis Vazquez Cao <[email protected]> writes:
> >> 
> >> To circumvent this problem I suggest implementing
> >> "safe_smp_processor_id()" (it already exists on x86_64) for i386 and
> >> IA64 and use it as a replacement to smp_processor_id in the reboot path
> >> to the dump capture kernel. This is a possible implementation for i386.
> >
> > It's not fully safe, because a SMP kernel might run on a 32bit
> > system without APIC. Then hard_smp_processor_id() would fault. 
> > (this cannot happen on x86-64)
> >
> > You probably need to check one of the globals set by apic.c
> > when its disabled.
> 
> Right.  An SMP kernel on a uniprocessor, without apics.
> 
> To my knowledge all SMP systems that linux supports have
> apics.

Thank you for the comments. I have modified safe_smp_processor_id so
that it now checks whether APICs are enabled before using
hard_smp_processor_id. Would this check suffice?

int safe_smp_processor_id(void) {
        int apicid, cpuid;

        if (!boot_cpu_has(X86_FEATURE_APIC))
                return 0;

        apicid = hard_smp_processor_id();
        if (apicid == BAD_APICID)
                return 0;

        cpuid = convert_apicid_to_cpu(apicid);

        return cpuid >= 0 ? cpuid : 0;
}

I will be resending the stack overflow patches reflecting this change.
They should apply cleanly against kernel 2.6.15-rc3. I will send the nmi
handler-related patches separately once I have tested the code properly.

Regards,

Fernando

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux