Re: [PATCHv5 15/30] x86/boot: Port I/O: allow to hook up alternative helpers

From: Dave Hansen
Date: Wed Mar 02 2022 - 14:42:29 EST


On 3/2/22 09:42, Josh Poimboeuf wrote:
> At the very least, please remove the ability for future code to> accidentally bypass 'pio_ops'. Going forward, are we really expected
to> just remember to always use pio_ops for i/o? Or else TDX will just>
silently break? That's just not acceptable.
What did you have in mind here? The in/out() instruction wrappers could
be moved to a spot where they're impossible to call directly, for instance.

I guess we could get really fancy and use objtool to look for any I/O
instructions that show up outside of the "official" pio_ops copies.
That would prevent anyone using inline assembly.

In the end, though, TDX *is* a new sub-architecture. There are lots of
ways it's going to break silently and nobody will notice on bare metal.
SEV is the same way with things like the C (encryption) bit in the page
tables. Adding more safeguards sounds like a good idea but, in the end,
we're going to have to find the non-obvious issues with testing.