Re: [PATCH 00/28] iio: zero init stack with { } instead of memset()

Jonathan Cameron
2025-06-14T14:21:31Z

On Sat, 14 Jun 2025 13:18:44 +0100
Jonathan Cameron <jic23@kernel.org> wrote:

> On Sat, 14 Jun 2025 08:47:25 +0200
> Pavel Machek <pavel@ucw.cz> wrote:
>
> > On Thu 2025-06-12 22:10:07, Andy Shevchenko wrote:
> > > On Thu, Jun 12, 2025 at 08:54:07PM +0200, Pavel Machek wrote:
> > > > > On Thursday, 12 June 2025 11:17:52 Central European Summer Time Pavel Machek wrote:
> > > > > >
> > > > > > > Jonathan mentioned recently that he would like to get away from using
> > > > > > > memset() to zero-initialize stack memory in the IIO subsystem. And we
> > > > > > > have it on good authority that initializing a struct or array with = { }
> > > > > > > is the preferred way to do this in the kernel [1]. So here is a series
> > > > > > > to take care of that.
> > > > > >
> > > > > > 1) Is it worth the churn?
> > > > > >
> > > > > > 2) Will this fail to initialize padding with some obscure compiler?
> > > > >
> > > > > as of right now, the only two C compilers that are supported are
> > > > > GCC >= 8.1, and Clang >= 13.0.1. If anyone even manages to get the
> > > > > kernel
> > > >
> > > > Well... I'm pretty sure parts of this would make it into -stable as a
> > > > dependency, or because AUTOSEL decides it is a bugfix. So..
> > > >
> > > > GNU C 4.9 gcc --version
> > > > Clang/LLVM (optional) 10.0.1 clang --version
> > >
> > > Even though, what the kernel versions are you referring to? I am sure there
> > > plenty of cases with {} there.
> >
> > 5.10, for example. I'm sure they are, uninitialized padding is a
> > security hole, but rather hard to detect if they are not specifically
> > looking.
>
> The stack kunit test is there back to 5.0-rc4
> 50ceaa95ea09 ("lib: Introduce test_stackinit module")
>
> So I think we should be pretty well defended against issues.
>
> Hence I plan to pick this up curently.
>
> Thanks all for inputs on this.
>
> Fun corners of the C spec vs implementations!
>
> Jonathan
>
I want to give this some testing exposure from 0-day etc in case
we missed any build related issues so I've queued it up on my testing branch.
I can still pick up tags / rebase etc for now.

Thanks,

Jonathan

> >
> > BR,
> > Pavel
>
>