Re: [PATCH 22/24] x86/entry: Implement and use do_paranoid_entry() and paranoid_exit()

From: Lai Jiangshan
Date: Thu Sep 02 2021 - 07:58:58 EST




On 2021/9/2 18:33, Peter Zijlstra wrote:
On Wed, Sep 01, 2021 at 01:50:23AM +0800, Lai Jiangshan wrote:

+ call do_paranoid_entry
ret

That's normally spelled like:

jmp do_paranoid_entry

But the same comment as for error_entry but more; pretty much all that's
left in asm is things like:


call paranoid_entry;

# setup args
call \cfunc

call paranoid_exit

which seems like prime material to also pull into C to avoid the
back-and-forth thing. In fact, why can't you call paranoid_entry/exit
from \cfunc itself? The IDT macros should be able to help.


Oh, #VC will need to switch stack. I think we need ASM code to switch
stack since the original stack need to be "free" for next #VC.