From fbdf5266d5ad7412c4ffa2455c7636df844707d7 Mon Sep 17 00:00:00 2001 From: zbb Date: Thu, 16 Jul 2015 10:46:52 +0000 Subject: [PATCH] Fix KSTACK_PAGES issue when the default value was changed in KERNCONF If KSTACK_PAGES was changed to anything alse than the default, the value from param.h was taken instead in some places and the value from KENRCONF in some others. This resulted in inconsistency which caused corruption in SMP envorinment. Ensure all places where KSTACK_PAGES are used the opt_kstack_pages.h is included. The file opt_kstack_pages.h could not be included in param.h because was breaking the toolchain compilation. Reviewed by: kib Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3094 --- sys/arm/arm/machdep.c | 1 + sys/arm/at91/at91_machdep.c | 1 + sys/arm/cavium/cns11xx/econa_machdep.c | 2 ++ sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c | 1 + sys/arm/xscale/i80321/ep80219_machdep.c | 2 ++ sys/arm/xscale/i80321/iq31244_machdep.c | 2 ++ sys/arm/xscale/i8134x/crb_machdep.c | 2 ++ sys/arm/xscale/ixp425/avila_machdep.c | 2 ++ sys/arm/xscale/pxa/pxa_machdep.c | 1 + sys/arm64/arm64/locore.S | 3 +-- sys/arm64/arm64/mp_machdep.c | 1 + sys/arm64/arm64/swtch.S | 1 + sys/ddb/db_ps.c | 2 ++ sys/ddb/db_sym.c | 2 ++ sys/i386/i386/locore.s | 1 + sys/powerpc/booke/pmap.c | 2 ++ sys/sparc64/sparc64/exception.S | 1 + sys/sparc64/sparc64/stack_machdep.c | 2 ++ sys/sparc64/sparc64/support.S | 2 ++ sys/x86/xen/pv.c | 1 + 20 files changed, 30 insertions(+), 2 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 99d45722c17f..67e081d2dbab 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -44,6 +44,7 @@ #include "opt_compat.h" #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include "opt_platform.h" #include "opt_sched.h" #include "opt_timer.h" diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index 170d0296a077..62edfa674ab8 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -43,6 +43,7 @@ * Created : 17/09/94 */ +#include "opt_kstack_pages.h" #include "opt_platform.h" #include diff --git a/sys/arm/cavium/cns11xx/econa_machdep.c b/sys/arm/cavium/cns11xx/econa_machdep.c index b49053598718..1532cec8a798 100644 --- a/sys/arm/cavium/cns11xx/econa_machdep.c +++ b/sys/arm/cavium/cns11xx/econa_machdep.c @@ -38,6 +38,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include diff --git a/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c b/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c index fa60be53ea1f..bdd6cc6f449b 100644 --- a/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/samsung/s3c2xx0/s3c24x0_machdep.c @@ -44,6 +44,7 @@ */ #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index ad9190cfe3d6..98813718ba7d 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index 681238780674..0df3609a055a 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include diff --git a/sys/arm/xscale/i8134x/crb_machdep.c b/sys/arm/xscale/i8134x/crb_machdep.c index 1ea82eead136..568be9ff83d0 100644 --- a/sys/arm/xscale/i8134x/crb_machdep.c +++ b/sys/arm/xscale/i8134x/crb_machdep.c @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index cbcd0fb696da..f37aa2937a7a 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -48,6 +48,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #define _ARM32_BUS_DMA_PRIVATE #include #include diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index 51b1efc59b50..4480c954c52b 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -46,6 +46,7 @@ */ #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index 1cca2e381914..d5580bee8c35 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -27,6 +27,7 @@ */ #include "assym.s" +#include "opt_kstack_pages.h" #include #include #include @@ -51,8 +52,6 @@ * We are loaded at a 2MiB aligned address */ -#define INIT_STACK_SIZE (PAGE_SIZE * 4) - .text .globl _start _start: diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c index e966c950943d..469627e550d4 100644 --- a/sys/arm64/arm64/mp_machdep.c +++ b/sys/arm64/arm64/mp_machdep.c @@ -28,6 +28,7 @@ * */ +#include "opt_kstack_pages.h" #include "opt_platform.h" #include diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S index 6774e767e7ae..a987134bc3b3 100644 --- a/sys/arm64/arm64/swtch.S +++ b/sys/arm64/arm64/swtch.S @@ -30,6 +30,7 @@ */ #include "assym.s" +#include "opt_kstack_pages.h" #include "opt_sched.h" #include diff --git a/sys/ddb/db_ps.c b/sys/ddb/db_ps.c index 3fc7afe5e225..553c22e9e4a9 100644 --- a/sys/ddb/db_ps.c +++ b/sys/ddb/db_ps.c @@ -30,6 +30,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include diff --git a/sys/ddb/db_sym.c b/sys/ddb/db_sym.c index 61c1d5f67dae..ffcba7928476 100644 --- a/sys/ddb/db_sym.c +++ b/sys/ddb/db_sym.c @@ -31,6 +31,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include diff --git a/sys/i386/i386/locore.s b/sys/i386/i386/locore.s index 5bf7944568e9..f5737b4759d6 100644 --- a/sys/i386/i386/locore.s +++ b/sys/i386/i386/locore.s @@ -41,6 +41,7 @@ #include "opt_bootp.h" #include "opt_compat.h" +#include "opt_kstack_pages.h" #include "opt_nfsroot.h" #include "opt_pmap.h" diff --git a/sys/powerpc/booke/pmap.c b/sys/powerpc/booke/pmap.c index fc6917fc605d..656b7a336fb3 100644 --- a/sys/powerpc/booke/pmap.c +++ b/sys/powerpc/booke/pmap.c @@ -51,6 +51,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include diff --git a/sys/sparc64/sparc64/exception.S b/sys/sparc64/sparc64/exception.S index 09db4e0797b4..b3830c08049d 100644 --- a/sys/sparc64/sparc64/exception.S +++ b/sys/sparc64/sparc64/exception.S @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include #include diff --git a/sys/sparc64/sparc64/stack_machdep.c b/sys/sparc64/sparc64/stack_machdep.c index a4309ef45c48..923d72cc8d2d 100644 --- a/sys/sparc64/sparc64/stack_machdep.c +++ b/sys/sparc64/sparc64/stack_machdep.c @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include #include diff --git a/sys/sparc64/sparc64/support.S b/sys/sparc64/sparc64/support.S index d6468cf4f4fe..b446ddeac7ef 100644 --- a/sys/sparc64/sparc64/support.S +++ b/sys/sparc64/sparc64/support.S @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_kstack_pages.h" + #include #include diff --git a/sys/x86/xen/pv.c b/sys/x86/xen/pv.c index 233bf3e013b9..6b913fb9cb4e 100644 --- a/sys/x86/xen/pv.c +++ b/sys/x86/xen/pv.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include #include