Re: [PATCH RFC] misc/pvpanic: add support for normal shutdowns

From: Willy Tarreau
Date: Sun Nov 05 2023 - 02:20:16 EST


On Sat, Nov 04, 2023 at 06:32:57PM +0100, Thomas Weißschuh wrote:
> On 2023-11-04 18:07:21+0100, Greg Kroah-Hartman wrote:
> > On Sat, Nov 04, 2023 at 02:56:34PM +0100, Willy Tarreau wrote:
> > > On Sat, Nov 04, 2023 at 02:53:37PM +0100, Thomas Weißschuh wrote:
> > > > > > The real reason probably doesn't matter today as the header propably
> > > > > > can't be dropped from Linux anyways for compatibility reasons.
> > > > > >
> > > > > > > And if they need to be here, why not use the proper BIT() macro for it?
> > > > > >
> > > > > > This was for uniformity with the existing code.
> > > > > > I can send a (standalone?) patch to fix it up.
> > > > >
> > > > > If we keep it, sure, that would be nice. But let's try to drop it if
> > > > > possible :)
> > > >
> > > > It will break the mentioned scripts/update-linux-headers.sh from qemu.
> > > >
> > > >
> > > > Note:
> > > >
> > > > BIT() is part of include/vdso/bits.h which is not part of the
> > > > uapi. How is it supposed to work?
> > > > Some other uapi header also use BIT() but that seems to work by accident
> > > > as the users have the macro defined themselves.
> > >
> > > Be careful here, we don't want to expose this kernel macro to userland,
> > > it would break programs that define their own (possibly different) BIT
> > > macro. BIT() is used in kernel headers but we should not presume that
> > > it is available from userland.
> >
> > It's already there :(
> >
> > I thought we had a uapi-safe version somewhere, but I can't seem to find
> > it anymore, so I don't remember what it is called.
>
> It seems to be _BITUL() and _BITULL() from include/uapi/linux/const.h.
>
> But first we'd need to figure out if we he can drop the pvpanic.h uapi
> header. I hoped you could give a definitive answer for that.
> Personally I'd hate to break stuff for qemu.

Agreed, and I tend as well to be careful not to change uapi stuff in
ways that can break, as it can take time to flow to applications and
cause subtle breakage much later :-/

Willy