[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 2 Feb 2022 20:20:26 +0300
From: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: mingo@...hat.com, bp@...en8.de, dave.hansen@...el.com,
luto@...nel.org, peterz@...radead.org,
sathyanarayanan.kuppuswamy@...ux.intel.com, aarcange@...hat.com,
ak@...ux.intel.com, dan.j.williams@...el.com, david@...hat.com,
hpa@...or.com, jgross@...e.com, jmattson@...gle.com,
joro@...tes.org, jpoimboe@...hat.com, knsathya@...nel.org,
pbonzini@...hat.com, sdeep@...are.com, seanjc@...gle.com,
tony.luck@...el.com, vkuznets@...hat.com, wanpengli@...cent.com,
x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv2 11/29] x86/boot: Allow to hook up alternative port I/O
helpers
On Tue, Feb 01, 2022 at 11:53:28PM +0100, Thomas Gleixner wrote:
> On Tue, Feb 01 2022 at 23:39, Thomas Gleixner wrote:
>
> > On Mon, Jan 24 2022 at 18:01, Kirill A. Shutemov wrote:
> >
> >> Port I/O instructions trigger #VE in the TDX environment. In response to
> >> the exception, kernel emulates these instructions using hypercalls.
> >>
> >> But during early boot, on the decompression stage, it is cumbersome to
> >> deal with #VE. It is cleaner to go to hypercalls directly, bypassing #VE
> >> handling.
> >>
> >> Add a way to hook up alternative port I/O helpers in the boot stub.
> >> All port I/O operations are routed via 'pio_ops'. By default 'pio_ops'
> >> initialized with native port I/O implementations.
> >>
> >> This is a preparation patch. The next patch will override 'pio_ops' if
> >> the kernel booted in the TDX environment.
> >>
> >> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
> >
> > Aside of Borislav's comments:
> >
> > Reviewed-by: Thomas Gleixner <tglx@...utronix.de>
>
> Second thoughts.
>
> > +#include <asm/shared/io.h>
> > +
> > +struct port_io_ops {
> > + unsigned char (*inb)(int port);
> > + unsigned short (*inw)(int port);
> > + unsigned int (*inl)(int port);
> > + void (*outb)(unsigned char v, int port);
> > + void (*outw)(unsigned short v, int port);
> > + void (*outl)(unsigned int v, int port);
> > +};
>
> Can we please make that u8, u16, u32 instead of unsigned char,short,int?
>
> That's the kernel convention for hardware related functions for many
> years now.
I inherited these prototypes from the main kernel I/O helpers. See patch
10/29.
Do you want 10/29 to be changed to use u8/16/32?
Maybe a separate patch to convert main kernel to u8/16/32 before
consolidation with boot stub?
--
Kirill A. Shutemov
Powered by blists - more mailing lists