[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YSeVq7nvVKgCL4HL@alley>
Date: Thu, 26 Aug 2021 15:22:51 +0200
From: Petr Mladek <pmladek@...e.com>
To: Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc: Andy Shevchenko <andy.shevchenko@...il.com>,
kernel test robot <lkp@...el.com>,
Nick Desaulniers <nick.desaulniers@...il.com>,
clang-built-linux <clang-built-linux@...glegroups.com>,
kbuild-all@...ts.01.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Thomas Zimmermann <tzimmermann@...e.de>
Subject: Re: drivers/media/v4l2-core/v4l2-ioctl.c:303:28: warning: taking
address of packed member 'pixelformat' of class or structure
'v4l2_pix_format_mplane' may result in an unaligned pointer value
On Thu 2021-08-19 11:10:53, Sakari Ailus wrote:
> On Fri, Jul 16, 2021 at 03:12:11PM +0300, Andy Shevchenko wrote:
> > On Fri, Jul 16, 2021 at 02:41:05PM +0300, Sakari Ailus wrote:
> > > On Wed, Jul 14, 2021 at 10:45:26PM +0300, Andy Shevchenko wrote:
> > > > > >> drivers/media/v4l2-core/v4l2-ioctl.c:347:37: warning: taking address of packed member 'pixelformat' of class or structure 'v4l2_sdr_format' may result in an unaligned pointer value [-Waddress-of-packed-member]
> > > >
Is there any plan to fix this, please?
> > > > Why is it packed in the first place? Is it used on unaligned addresses
> > > > in other structures? But even so, why should it matter?
> > >
> > > It's packed since we wanted to avoid having holes in the structs. There are
> > > other ways to do that but it's ABI dependent and is prone to human errors,
> > > too.
> > What holes can you think about in the above mention structure?
>
> Probably not that one but it has happened in the past that the struct
> memory layout has been unintentionally different in different ABIs and that
> has not been the intention, but rather a bug.
What kind of bugs did the different ABI caused, please? Incompatibly
between 3rd party drivers that were built with different compilers?
I am not familiar with these problems. I wonder if there is a better
solution. I guess that it might be a common problem affecting most
drivers.
Anyway, the non-aligned struct members might create slower code.
> Packing has been added in newer structs to avoid that.
And this smells with cargo-cult programming. People might make all new
structures packed even when it is not really needed.
Best Regards,
Petr
Powered by blists - more mailing lists