[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YjhM9UMKs+1H8eIe@kroah.com>
Date: Mon, 21 Mar 2022 11:01:25 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: Miklos Szeredi <miklos@...redi.hu>
Cc: Carlos Llamas <cmllamas@...gle.com>,
Alessio Balsini <balsini@...roid.com>,
Masahiro Yamada <masahiroy@...nel.org>,
Arnd Bergmann <arnd@...db.de>,
kernel-team <kernel-team@...roid.com>,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] fuse: fix integer type usage in uapi header
On Mon, Mar 21, 2022 at 10:36:20AM +0100, Miklos Szeredi wrote:
> On Mon, 21 Mar 2022 at 09:50, Greg Kroah-Hartman
> <gregkh@...uxfoundation.org> wrote:
> >
> > On Mon, Mar 21, 2022 at 09:40:56AM +0100, Miklos Szeredi wrote:
> > > On Mon, 21 Mar 2022 at 03:07, Carlos Llamas <cmllamas@...gle.com> wrote:
> > > >
> > > > On Fri, Mar 18, 2022 at 08:24:55PM +0100, Miklos Szeredi wrote:
> > > > > On Fri, 18 Mar 2022 at 18:14, Carlos Llamas <cmllamas@...gle.com> wrote:
> > > > > >
> > > > > > Kernel uapi headers are supposed to use __[us]{8,16,32,64} defined by
> > > > > > <linux/types.h> instead of 'uint32_t' and similar. This patch changes
> > > > > > all the definitions in this header to use the correct type. Previous
> > > > > > discussion of this topic can be found here:
> > > > > >
> > > > > > https://lkml.org/lkml/2019/6/5/18
> > > > >
> > > > > This is effectively a revert of these two commits:
> > > > >
> > > > > 4c82456eeb4d ("fuse: fix type definitions in uapi header")
> > > > > 7e98d53086d1 ("Synchronize fuse header with one used in library")
> > > > >
> > > > > And so we've gone full circle and back to having to modify the header
> > > > > to be usable in the cross platform library...
> > > > >
> > > > > And also made lots of churn for what reason exactly?
> > > >
> > > > There are currently only two uapi headers making use of C99 types and
> > > > one is <linux/fuse.h>. This approach results in different typedefs being
> > > > selected when compiling for userspace vs the kernel.
> > >
> > > Why is this a problem if the size of the resulting types is the same?
> >
> > uint* are not "valid" variable types to cross the user/kernel boundary.
> > They are part of the userspace variable type namespace, not the kernel
> > variable type namespace. Linus wrong a long post about this somewhere
> > in the past, I'm sure someone can dig it up...
>
> Looking forward to the details. I cannot imagine why this would matter...
Here's the huge thread on the issue:
https://lore.kernel.org/all/19865.1101395592@redhat.com/
and specifically here's Linus's answer:
https://lore.kernel.org/all/Pine.LNX.4.58.0411281710490.22796@ppc970.osdl.org/
The whole thread is actually relevant for this .h file as well. Some
things never change :)
thanks,
greg k-h
Powered by blists - more mailing lists