diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-08-20 06:05:01 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-27 11:12:52 -0400 |
commit | f4848472cd99487e182b64fb2a5d0e4fedbe86ad (patch) | |
tree | d407ce2579e01beca7bee81df5fa3dbfe99cc512 /arch/x86/kernel/mpparse.c | |
parent | 6b18ae3e2ff62daa9f181401759161dd8de0aadf (diff) |
x86: Sanitize smp_record and move it to x86_init_ops
The x86 quirkification introduced an extra ugly hackery with a
variable pointer in the mpparse code. If the pointer is initialized
then it is dereferenced and the variable set to 0 or incremented.
Create a x86_init_ops function and let the affected numaq code
hold the function. Default init is a setup noop.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/mpparse.c')
-rw-r--r-- | arch/x86/kernel/mpparse.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 651c93b28862..b2179fdf0ff7 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c | |||
@@ -320,8 +320,7 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | |||
320 | /* | 320 | /* |
321 | * Now process the configuration blocks. | 321 | * Now process the configuration blocks. |
322 | */ | 322 | */ |
323 | if (x86_quirks->mpc_record) | 323 | x86_init.mpparse.mpc_record(0); |
324 | *x86_quirks->mpc_record = 0; | ||
325 | 324 | ||
326 | while (count < mpc->length) { | 325 | while (count < mpc->length) { |
327 | switch (*mpt) { | 326 | switch (*mpt) { |
@@ -353,8 +352,7 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | |||
353 | count = mpc->length; | 352 | count = mpc->length; |
354 | break; | 353 | break; |
355 | } | 354 | } |
356 | if (x86_quirks->mpc_record) | 355 | x86_init.mpparse.mpc_record(1); |
357 | (*x86_quirks->mpc_record)++; | ||
358 | } | 356 | } |
359 | 357 | ||
360 | #ifdef CONFIG_X86_BIGSMP | 358 | #ifdef CONFIG_X86_BIGSMP |