x86: fix 27-rc crash on vsmp due to paravirt during module load
authorRavikiran G Thirumalai <kiran@scalex86.org>
Tue, 23 Sep 2008 05:58:47 +0000 (22:58 -0700)
committerIngo Molnar <mingo@elte.hu>
Tue, 23 Sep 2008 08:31:26 +0000 (10:31 +0200)
commit05e12e1c4c09cd35ac9f4e6af1e42b0036375d72
treeb952128eccb3611e7ed2e64fec53f52c6e33c03c
parentb61e06f258e50b25c38a73bea782bdb6876f0f70
x86: fix 27-rc crash on vsmp due to paravirt during module load

27-rc fails to boot up if configured to use modules.

Turns out vsmp_patch was marked __init, and vsmp_patch being the
pvops 'patch' routine for vsmp, a call to vsmp_patch just turns out
to execute a code page with series of 0xcc (POISON_FREE_INITMEM -- int3).

vsmp_patch has been marked with __init ever since pvops, however,
apply_paravirt can be called during module load causing calls to
freed memory location.

Since apply_paravirt can only be called during init/module load, make
vsmp_patch with "__init_or_module"

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/vsmp_64.c