KVM: PPC: Avoid patching paravirt template code
Currently we patch the whole code include paravirt template code. This isn't safe for scratch area and has impact to performance. Signed-off-by: Liu Yu <yu.liu@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:

committed by
Avi Kivity

parent
570135243a
commit
befdc0a65a
@@ -665,6 +665,9 @@ static void kvm_check_ins(u32 *inst, u32 features)
|
||||
}
|
||||
}
|
||||
|
||||
extern u32 kvm_template_start[];
|
||||
extern u32 kvm_template_end[];
|
||||
|
||||
static void kvm_use_magic_page(void)
|
||||
{
|
||||
u32 *p;
|
||||
@@ -692,8 +695,14 @@ static void kvm_use_magic_page(void)
|
||||
*/
|
||||
local_irq_disable();
|
||||
|
||||
for (p = start; p < end; p++)
|
||||
for (p = start; p < end; p++) {
|
||||
/* Avoid patching the template code */
|
||||
if (p >= kvm_template_start && p < kvm_template_end) {
|
||||
p = kvm_template_end - 1;
|
||||
continue;
|
||||
}
|
||||
kvm_check_ins(p, features);
|
||||
}
|
||||
|
||||
local_irq_enable();
|
||||
|
||||
|
Reference in New Issue
Block a user