On Fri, Apr 12, 2024 at 04:40:58PM -0700, Xin Li (Intel) wrote:
Commit 55617fb991df
Use the full commit abbreviation when mentioning commits:
"Commit
55617fb991df ("x86/entry: Do not allow external 0x80 interrupts")
.."
added a bunch of tests to the int $0x80 path,
Added a bunch of tests?
What does that even mean?
however they are unnecessary and event wrong in fact under FRED.
Are the bunch of tests wrong or is do_int80_emulation() simply the wrong
handler to use on a FRED?
First FRED distinguishes external interrupts from software interrupts,
thus int80_emulation() should NEVER be called for handling an external
interrupt, and then int80_is_external() should be skipped under FRED.
Second, the FRED kernel entry handler NEVER dispatches INTx, which is
of event type EVENT_TYPE_SWINT, so the user mode checking in
do_int80_emulation() is redundant, and should be skipped.
It might be even better to strip down do_int80_emulation() to a lean
fred_int80_emulation(), not to mention int80_emulation() does a
CLEAR_BRANCH_HISTORY.
Yah, how about you do a FRED-specific INT80 handler instead of
sprinkling moar tests around? fred_intx() looks like the right place to
stuff it in...