diff options
| author | Juergen Gross <jgross@suse.com> | 2021-01-20 14:55:46 +0100 |
|---|---|---|
| committer | Borislav Petkov <bp@suse.de> | 2021-02-10 12:36:45 +0100 |
| commit | ab234a260b1f625b26cbefa93ca365b0ae66df33 (patch) | |
| tree | 3308ecacbf6f66119fb14707eb506de1ab43e027 /arch/x86/kernel/paravirt.c | |
| parent | afd30525a659ac0ae0904f0cb4a2ca75522c3123 (diff) | |
| download | linux-ab234a260b1f625b26cbefa93ca365b0ae66df33.tar.gz linux-ab234a260b1f625b26cbefa93ca365b0ae66df33.tar.bz2 linux-ab234a260b1f625b26cbefa93ca365b0ae66df33.zip | |
x86/pv: Rework arch_local_irq_restore() to not use popf
POPF is a rather expensive operation, so don't use it for restoring
irq flags. Instead, test whether interrupts are enabled in the flags
parameter and enable interrupts via STI in that case.
This results in the restore_fl paravirt op to be no longer needed.
Suggested-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20210120135555.32594-7-jgross@suse.com
Diffstat (limited to 'arch/x86/kernel/paravirt.c')
| -rw-r--r-- | arch/x86/kernel/paravirt.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 18560b71e717..c60222ab8ab9 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c @@ -320,7 +320,6 @@ struct paravirt_patch_template pv_ops = { /* Irq ops. */ .irq.save_fl = __PV_IS_CALLEE_SAVE(native_save_fl), - .irq.restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl), .irq.irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable), .irq.irq_enable = __PV_IS_CALLEE_SAVE(native_irq_enable), .irq.safe_halt = native_safe_halt, |
