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

From: Lai Jiangshan
Date: Thu Sep 02 2021 - 06:42:24 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.


It sounds better.

I should have moved the code of pushing pt_regs out of paranoid_entry(),
so that I could also have seen this.
(and we don't need do_paranoid_entry(), paranoid_entry() itself can be in C)

The \cfunc would need to be marked as entry_text, right?

Thanks
Lai