[PATCH] i386: PARAVIRT: Allow boot-time disable of paravirt_ops patching
Add "noreplace-paravirt" to disable paravirt_ops patching. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
752783c050
commit
959b4fdfe7
@ -64,6 +64,7 @@ parameter is applicable:
|
|||||||
GENERIC_TIME The generic timeofday code is enabled.
|
GENERIC_TIME The generic timeofday code is enabled.
|
||||||
NFS Appropriate NFS support is enabled.
|
NFS Appropriate NFS support is enabled.
|
||||||
OSS OSS sound support is enabled.
|
OSS OSS sound support is enabled.
|
||||||
|
PV_OPS A paravirtualized kernel
|
||||||
PARIDE The ParIDE subsystem is enabled.
|
PARIDE The ParIDE subsystem is enabled.
|
||||||
PARISC The PA-RISC architecture is enabled.
|
PARISC The PA-RISC architecture is enabled.
|
||||||
PCI PCI bus support is enabled.
|
PCI PCI bus support is enabled.
|
||||||
@ -1164,6 +1165,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
nomce [IA-32] Machine Check Exception
|
nomce [IA-32] Machine Check Exception
|
||||||
|
|
||||||
|
noreplace-paravirt [IA-32,PV_OPS] Don't patch paravirt_ops
|
||||||
|
|
||||||
noreplace-smp [IA-32,SMP] Don't replace SMP instructions
|
noreplace-smp [IA-32,SMP] Don't replace SMP instructions
|
||||||
with UP alternatives
|
with UP alternatives
|
||||||
|
|
||||||
|
@ -30,6 +30,16 @@ static int __init setup_noreplace_smp(char *str)
|
|||||||
}
|
}
|
||||||
__setup("noreplace-smp", setup_noreplace_smp);
|
__setup("noreplace-smp", setup_noreplace_smp);
|
||||||
|
|
||||||
|
#ifdef CONFIG_PARAVIRT
|
||||||
|
static int noreplace_paravirt = 0;
|
||||||
|
|
||||||
|
static int __init setup_noreplace_paravirt(char *str)
|
||||||
|
{
|
||||||
|
noreplace_paravirt = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
__setup("noreplace-paravirt", setup_noreplace_paravirt);
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DPRINTK(fmt, args...) if (debug_alternative) \
|
#define DPRINTK(fmt, args...) if (debug_alternative) \
|
||||||
printk(KERN_DEBUG fmt, args)
|
printk(KERN_DEBUG fmt, args)
|
||||||
@ -330,6 +340,9 @@ void apply_paravirt(struct paravirt_patch_site *start,
|
|||||||
{
|
{
|
||||||
struct paravirt_patch_site *p;
|
struct paravirt_patch_site *p;
|
||||||
|
|
||||||
|
if (noreplace_paravirt)
|
||||||
|
return;
|
||||||
|
|
||||||
for (p = start; p < end; p++) {
|
for (p = start; p < end; p++) {
|
||||||
unsigned int used;
|
unsigned int used;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user