x86/paravirt: Use a single ops structure
authorJuergen Gross <jgross@suse.com>
Tue, 28 Aug 2018 07:40:19 +0000 (09:40 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 3 Sep 2018 14:50:35 +0000 (16:50 +0200)
commit5c83511bdb9832c86be20fb86b783356e2f58062
treedf12dbf51a292da8d3f221d871b8933c081608c4
parent27876f3882fdd4acb3d3614a0133ecdc777fc292
x86/paravirt: Use a single ops structure

Instead of using six globally visible paravirt ops structures combine
them in a single structure, keeping the original structures as
sub-structures.

This avoids the need to assemble struct paravirt_patch_template at
runtime on the stack each time apply_paravirt() is being called (i.e.
when loading a module).

[ tglx: Made the struct and the initializer tabular for readability sake ]

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: xen-devel@lists.xenproject.org
Cc: virtualization@lists.linux-foundation.org
Cc: akataria@vmware.com
Cc: rusty@rustcorp.com.au
Cc: boris.ostrovsky@oracle.com
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/20180828074026.820-9-jgross@suse.com
27 files changed:
arch/arm/include/asm/paravirt.h
arch/arm/kernel/paravirt.c
arch/arm64/include/asm/paravirt.h
arch/arm64/kernel/paravirt.c
arch/x86/hyperv/mmu.c
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/paravirt_types.h
arch/x86/kernel/alternative.c
arch/x86/kernel/asm-offsets.c
arch/x86/kernel/asm-offsets_64.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/vmware.c
arch/x86/kernel/kvm.c
arch/x86/kernel/kvmclock.c
arch/x86/kernel/paravirt-spinlocks.c
arch/x86/kernel/paravirt.c
arch/x86/kernel/paravirt_patch_32.c
arch/x86/kernel/paravirt_patch_64.c
arch/x86/kernel/tsc.c
arch/x86/kernel/vsmp_64.c
arch/x86/xen/enlighten_pv.c
arch/x86/xen/irq.c
arch/x86/xen/mmu_hvm.c
arch/x86/xen/mmu_pv.c
arch/x86/xen/spinlock.c
arch/x86/xen/time.c
drivers/xen/time.c