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

From: Andrew Morton
Date: Wed Jul 12 2006 - 02:45:31 EST


On Tue, 11 Jul 2006 15:05:18 +0900
Fernando Luis Vázquez Cao <fernando@xxxxxxxxxxxxx> wrote:
> ...

With CONFIG_SMP=n:

arch/i386/kernel/crash.c: In function 'crash_save_self':
arch/i386/kernel/crash.c:91: warning: implicit declaration of function 'safe_smp_processor_id'

And it fails to link.


> --- linux-2.6.18-rc1/include/asm-i386/smp.h 2006-07-11 10:11:44.000000000 +0900
> +++ linux-2.6.18-rc1-sof/include/asm-i386/smp.h 2006-07-11 14:05:28.000000000 +0900
> @@ -89,12 +89,14 @@ static __inline int logical_smp_processo
>
> #endif
>
> +extern int safe_smp_processor_id(void);
> extern int __cpu_disable(void);
> extern void __cpu_die(unsigned int cpu);
> #endif /* !__ASSEMBLY__ */
>
> #else /* CONFIG_SMP */
>
> +#define safe_smp_processor_id() 0
> #define cpu_physical_id(cpu) boot_cpu_physical_apicid
>
> #define NO_PROC_ID 0xFF /* No processor magic marker */

The reason for this is that include/linux/smp.h only includes asm/smp.h if
CONFIG_SMP=y. This is not the cleverest thing we've ever done.

I fixed that in cowardly fashion:


--- a/arch/i386/kernel/crash.c~stack-overflow-safe-kdump-crash_use_safe_smp_processor_id-fix
+++ a/arch/i386/kernel/crash.c
@@ -23,6 +23,7 @@
#include <asm/hw_irq.h>
#include <asm/apic.h>
#include <asm/kdebug.h>
+#include <asm/smp.h>

#include <mach_ipi.h>

_

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